From 600f0068bf0212a26474a110adffe22670ffbafb Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Sun, 3 May 2020 12:02:12 -0300 Subject: [PATCH] [feature][ui] it is possible to view details of some initialization tasks by clicking on their icons --- CHANGELOG.md | 13 +++ bauh/api/abstract/handler.py | 9 ++ bauh/gems/arch/pacman.py | 3 +- bauh/gems/arch/resources/locale/ca | 2 +- bauh/gems/arch/resources/locale/de | 2 +- bauh/gems/arch/resources/locale/en | 2 +- bauh/gems/arch/resources/locale/es | 2 +- bauh/gems/arch/resources/locale/it | 2 +- bauh/gems/arch/resources/locale/pt | 2 +- bauh/gems/arch/resources/locale/ru | 2 +- bauh/gems/arch/resources/locale/tr | 2 +- bauh/gems/arch/worker.py | 36 ++++--- bauh/view/qt/prepare.py | 117 ++++++++++++++++++--- bauh/view/qt/root.py | 18 +++- bauh/view/resources/locale/ca | 2 + bauh/view/resources/locale/de | 2 + bauh/view/resources/locale/en | 2 + bauh/view/resources/locale/es | 2 + bauh/view/resources/locale/it | 2 + bauh/view/resources/locale/pt | 2 + bauh/view/resources/locale/ru | 2 + bauh/view/resources/locale/tr | 2 + pictures/releases/0.9.2/backup_mode.png | Bin 0 -> 16312 bytes pictures/releases/0.9.2/prepare_icon.png | Bin 0 -> 473876 bytes pictures/releases/0.9.2/prepare_output.png | Bin 0 -> 637751 bytes 25 files changed, 184 insertions(+), 44 deletions(-) create mode 100644 pictures/releases/0.9.2/backup_mode.png create mode 100644 pictures/releases/0.9.2/prepare_icon.png create mode 100644 pictures/releases/0.9.2/prepare_output.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 021936db..85cf0745 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [0.9.2] 2020 +### Features +- UI + - it is possible to view details of some initialization tasks by clicking on their icons +

+ +

+

+ +

+ ### Improvements - Backup - new **type** field on settings to specify the Timeshift backup mode: **RSYNC** or **BTRFS** +

+ +

- Trim - the dialog is now displayed before the upgrading process (but the operation is only executed after a successful upgrade) - Settings diff --git a/bauh/api/abstract/handler.py b/bauh/api/abstract/handler.py index b1249191..d4c9f4ed 100644 --- a/bauh/api/abstract/handler.py +++ b/bauh/api/abstract/handler.py @@ -102,6 +102,15 @@ class TaskManager: """ pass + def update_output(self, task_id: str, output: str): + """ + updates the task output + :param task_id: + :param output: + :return: + """ + pass + def finish_task(self, task_id: str): """ marks a task as finished diff --git a/bauh/gems/arch/pacman.py b/bauh/gems/arch/pacman.py index 1399e853..e253e340 100644 --- a/bauh/gems/arch/pacman.py +++ b/bauh/gems/arch/pacman.py @@ -500,8 +500,7 @@ def get_current_mirror_countries() -> List[str]: def is_mirrors_available() -> bool: - res = run_cmd('which pacman-mirrors', print_error=False) - return res and not res.strip().startswith('which ') + return bool(run_cmd('which pacman-mirrors', print_error=False)) def get_update_size(pkgs: List[str]) -> Dict[str, int]: # bytes: diff --git a/bauh/gems/arch/resources/locale/ca b/bauh/gems/arch/resources/locale/ca index 2de00529..57b78ef1 100644 --- a/bauh/gems/arch/resources/locale/ca +++ b/bauh/gems/arch/resources/locale/ca @@ -168,7 +168,7 @@ arch.task.disk_cache.prepared=Llegits arch.task.disk_cache.reading=Determinant els paquets instal·lats arch.task.mirrors=Refreshing mirrors arch.task.optimizing=Optimizing {} -arch.task.sync_databases.waiting=Waiting for mirrors refreshing +arch.task.sync_databases.waiting=Waiting for {} arch.task.sync_sb.status=Actualitzen {} arch.uncompressing.package=S’està descomprimint el paquet arch.uninstall.clean_cached.error=No s'ha pogut eliminar {} versions antigues que es troba al disc diff --git a/bauh/gems/arch/resources/locale/de b/bauh/gems/arch/resources/locale/de index c513c70b..fbfde2f1 100644 --- a/bauh/gems/arch/resources/locale/de +++ b/bauh/gems/arch/resources/locale/de @@ -168,7 +168,7 @@ arch.task.disk_cache.prepared=Read arch.task.disk_cache.reading=Determining installed packages arch.task.mirrors=Refreshing mirrors arch.task.optimizing=Optimizing {} -arch.task.sync_databases.waiting=Waiting for mirrors refreshing +arch.task.sync_databases.waiting=Waiting for {} arch.task.sync_sb.status=Updating {} arch.uncompressing.package=Paket entpacken arch.uninstall.clean_cached.error=It was not possible to remove old {} versions found on disk diff --git a/bauh/gems/arch/resources/locale/en b/bauh/gems/arch/resources/locale/en index 6c9fbcbf..00a28ba4 100644 --- a/bauh/gems/arch/resources/locale/en +++ b/bauh/gems/arch/resources/locale/en @@ -168,7 +168,7 @@ arch.task.disk_cache.prepared=Read arch.task.disk_cache.reading=Determining installed packages arch.task.mirrors=Refreshing mirrors arch.task.optimizing=Optimizing {} -arch.task.sync_databases.waiting=Waiting for mirrors refreshing +arch.task.sync_databases.waiting=Waiting for {} arch.task.sync_sb.status=Updating {} arch.uncompressing.package=Uncompressing the package arch.uninstall.clean_cached.error=It was not possible to remove old {} versions found on disk diff --git a/bauh/gems/arch/resources/locale/es b/bauh/gems/arch/resources/locale/es index 81e1bf6a..d0d47b55 100644 --- a/bauh/gems/arch/resources/locale/es +++ b/bauh/gems/arch/resources/locale/es @@ -168,7 +168,7 @@ arch.task.disk_cache.prepared=Lidos arch.task.disk_cache.reading=Determinando los paquetes instalados arch.task.mirrors=Actualizando espejos arch.task.optimizing=Optimizando {} -arch.task.sync_databases.waiting=Esperando por actualización de espejos +arch.task.sync_databases.waiting=Esperando por {} arch.task.sync_sb.status=Actualizando {} arch.uncompressing.package=Descomprimindo el paquete arch.uninstall.clean_cached.error=No fue posible eliminar versiones antiguas de {} encontradas en disco diff --git a/bauh/gems/arch/resources/locale/it b/bauh/gems/arch/resources/locale/it index a9596784..fdcba133 100644 --- a/bauh/gems/arch/resources/locale/it +++ b/bauh/gems/arch/resources/locale/it @@ -168,7 +168,7 @@ arch.task.disk_cache.prepared=Letti arch.task.disk_cache.reading=Determinando i pacchetti installati arch.task.mirrors=Aggiornando i mirror arch.task.optimizing=Ottimizzando {} -arch.task.sync_databases.waiting=In attesa dell'aggiornamento dei mirror +arch.task.sync_databases.waiting=Waiting for {} arch.task.sync_sb.status=Aggiornando {} arch.uncompressing.package=Non comprimere il pacchetto arch.uninstall.clean_cached.error=Non è stato possibile rimuovere le vecchie {} versioni trovate sul disco diff --git a/bauh/gems/arch/resources/locale/pt b/bauh/gems/arch/resources/locale/pt index 6a740b45..cee36abe 100644 --- a/bauh/gems/arch/resources/locale/pt +++ b/bauh/gems/arch/resources/locale/pt @@ -168,7 +168,7 @@ arch.task.disk_cache.prepared=Lidos arch.task.disk_cache.reading=Determinando pacotes instalados arch.task.mirrors=Atualizando espelhos arch.task.optimizing=Otimizando {} -arch.task.sync_databases.waiting=Aguardando atualização de espelhos +arch.task.sync_databases.waiting=Aguardando por {} arch.task.sync_sb.status=Atualizando {} arch.uncompressing.package=Descompactando o pacote arch.uninstall.clean_cached.error=Não foi possível remover versões antigas de {} encontradas em disco diff --git a/bauh/gems/arch/resources/locale/ru b/bauh/gems/arch/resources/locale/ru index 042ea5bd..0b51d6e5 100644 --- a/bauh/gems/arch/resources/locale/ru +++ b/bauh/gems/arch/resources/locale/ru @@ -168,7 +168,7 @@ arch.task.disk_cache.prepared=Read arch.task.disk_cache.reading=Determining installed packages arch.task.mirrors=Обновление зеркал arch.task.optimizing=Optimizing {} -arch.task.sync_databases.waiting=Ожидание обновления зеркал +arch.task.sync_databases.waiting=Waiting for {} arch.task.sync_sb.status=Updating {} arch.uncompressing.package=Распаковка пакета arch.uninstall.clean_cached.error=It was not possible to remove old {} versions found on disk diff --git a/bauh/gems/arch/resources/locale/tr b/bauh/gems/arch/resources/locale/tr index 2234d951..d2a8f2bd 100644 --- a/bauh/gems/arch/resources/locale/tr +++ b/bauh/gems/arch/resources/locale/tr @@ -168,7 +168,7 @@ arch.task.disk_cache.prepared=oku arch.task.disk_cache.reading=Kurulu paketler belirleniyor arch.task.mirrors=Yansılar yenileniyor arch.task.optimizing=Uygun hale getiriliyor {} -arch.task.sync_databases.waiting=Yansıların yenilenmesi bekleniyor +arch.task.sync_databases.waiting=Waiting for {} arch.task.sync_sb.status={} güncelleniyor arch.uncompressing.package=Paket arşivden çıkarılıyor arch.uninstall.clean_cached.error=Diskte bulunan eski {} sürümleri kaldırılamadı diff --git a/bauh/gems/arch/worker.py b/bauh/gems/arch/worker.py index 558f7269..bc39fdd9 100644 --- a/bauh/gems/arch/worker.py +++ b/bauh/gems/arch/worker.py @@ -292,21 +292,24 @@ class RefreshMirrors(Thread): self.task_id = "arch_mirrors" self.sort_limit = sort_limit + def _notify_output(self, output: str): + self.taskman.update_output(self.task_id, output) + def run(self): - self.logger.info("Refreshing mirrors") self.taskman.register_task(self.task_id, self.i18n['arch.task.mirrors'], get_icon_path()) + self.logger.info("Refreshing mirrors") handler = ProcessHandler() try: self.taskman.update_progress(self.task_id, 10, '') - success, output = handler.handle_simple(pacman.refresh_mirrors(self.root_password)) + success, output = handler.handle_simple(pacman.refresh_mirrors(self.root_password), output_handler=self._notify_output) if success: if self.sort_limit is not None and self.sort_limit >= 0: self.taskman.update_progress(self.task_id, 50, self.i18n['arch.custom_action.refresh_mirrors.status.updating']) try: - handler.handle_simple(pacman.sort_fastest_mirrors(self.root_password, self.sort_limit)) + handler.handle_simple(pacman.sort_fastest_mirrors(self.root_password, self.sort_limit), output_handler=self._notify_output) except: self.logger.error("Could not sort mirrors by speed") traceback.print_exc() @@ -340,7 +343,7 @@ class SyncDatabases(Thread): self.taskman.register_task(self.task_id, self.i18n['arch.sync_databases.substatus'], get_icon_path()) if self.refresh_mirrors and self.refresh_mirrors.is_alive(): - self.taskman.update_progress(self.task_id, 0, self.i18n['arch.task.sync_databases.waiting']) + self.taskman.update_progress(self.task_id, 0, self.i18n['arch.task.sync_databases.waiting'].format('"{}"'.format(self.i18n['arch.task.mirrors']))) self.refresh_mirrors.join() progress = 10 @@ -357,20 +360,25 @@ class SyncDatabases(Thread): for o in p.stdout: line = o.decode().strip() - if line and line.startswith('downloading'): - db = line.split(' ')[1].strip() + if line: + self.task_man.update_output(self.task_id, line) + if line.startswith('downloading'): + db = line.split(' ')[1].strip() - if last_db is None or last_db != db: - last_db = db - dbs_read += 1 - progress = dbs_read * inc - else: - progress += 0.25 + if last_db is None or last_db != db: + last_db = db + dbs_read += 1 + progress = dbs_read * inc + else: + progress += 0.25 - self.taskman.update_progress(self.task_id, progress, self.i18n['arch.task.sync_sb.status'].format(db)) + self.taskman.update_progress(self.task_id, progress, self.i18n['arch.task.sync_sb.status'].format(db)) for o in p.stderr: - o.decode() + line = o.decode().strip() + + if line: + self.task_man.update_output(self.task_id, line) p.wait() diff --git a/bauh/view/qt/prepare.py b/bauh/view/qt/prepare.py index 6eaee648..257474be 100644 --- a/bauh/view/qt/prepare.py +++ b/bauh/view/qt/prepare.py @@ -5,9 +5,9 @@ from functools import reduce from typing import Tuple from PyQt5.QtCore import QSize, Qt, QThread, pyqtSignal, QCoreApplication -from PyQt5.QtGui import QIcon +from PyQt5.QtGui import QIcon, QCursor from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QSizePolicy, QTableWidget, QHeaderView, QPushButton, QToolBar, \ - QProgressBar, QApplication + QProgressBar, QApplication, QPlainTextEdit, QToolButton, QHBoxLayout from bauh import __app_name__ from bauh.api.abstract.context import ApplicationContext @@ -27,6 +27,7 @@ class Prepare(QThread, TaskManager): signal_finished = pyqtSignal(str) signal_started = pyqtSignal() signal_ask_password = pyqtSignal() + signal_output = pyqtSignal(str, str) def __init__(self, context: ApplicationContext, manager: SoftwareManager, i18n: I18n): super(Prepare, self).__init__() @@ -63,6 +64,9 @@ class Prepare(QThread, TaskManager): def update_progress(self, task_id: str, progress: float, substatus: str): self.signal_update.emit(task_id, progress, substatus) + def update_output(self, task_id: str, output: str): + self.signal_output.emit(task_id, output) + def register_task(self, id_: str, label: str, icon_path: str): self.signal_register.emit(id_, label, icon_path) @@ -79,6 +83,7 @@ class CheckFinished(QThread): self.finished = None def run(self): + time.sleep(3) while True: if self.total is not None and self.finished is not None: if self.total == self.finished: @@ -117,8 +122,7 @@ class PreparePanel(QWidget, TaskManager): signal_password_response = pyqtSignal(str, bool) def __init__(self, context: ApplicationContext, manager: SoftwareManager, screen_size: QSize, i18n: I18n, manage_window: QWidget): - super(PreparePanel, self).__init__() - self.setWindowFlag(Qt.WindowCloseButtonHint, False) + super(PreparePanel, self).__init__(flags=Qt.CustomizeWindowHint | Qt.WindowTitleHint) self.i18n = i18n self.context = context self.manage_window = manage_window @@ -130,6 +134,7 @@ class PreparePanel(QWidget, TaskManager): self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) self.manager = manager self.tasks = {} + self.output = {} self.ntasks = 0 self.ftasks = 0 self.self_close = False @@ -140,6 +145,7 @@ class PreparePanel(QWidget, TaskManager): self.prepare_thread.signal_finished.connect(self.finish_task) self.prepare_thread.signal_started.connect(self.start) self.prepare_thread.signal_ask_password.connect(self.ask_root_password) + self.prepare_thread.signal_output.connect(self.update_output) self.signal_password_response.connect(self.prepare_thread.set_password_reply) self.check_thread = CheckFinished() @@ -170,27 +176,60 @@ class PreparePanel(QWidget, TaskManager): self.table.setHorizontalHeaderLabels(['' for _ in range(4)]) self.layout().addWidget(self.table) - toolbar = QToolBar() + self.textarea_output = QPlainTextEdit(self) + self.textarea_output.resize(self.table.size()) + self.textarea_output.setStyleSheet("background: black; color: white;") + self.layout().addWidget(self.textarea_output) + self.textarea_output.setVisible(False) + self.textarea_output.setReadOnly(True) + self.textarea_output.setMaximumHeight(100) + self.current_output_task = None + + self.bottom_widget = QWidget() + self.bottom_widget.setLayout(QHBoxLayout()) + self.bottom_widget.layout().addStretch() + bt_hide_output = QPushButton('Hide details') + bt_hide_output.setStyleSheet('QPushButton { text-decoration: underline; border: 0px; background: none } ') + bt_hide_output.clicked.connect(self.hide_output) + bt_hide_output.setCursor(QCursor(Qt.PointingHandCursor)) + self.bottom_widget.layout().addWidget(bt_hide_output) + self.bottom_widget.layout().addStretch() + self.layout().addWidget(self.bottom_widget) + self.bottom_widget.setVisible(False) + + self.bt_bar = QToolBar() self.bt_close = QPushButton(self.i18n['close'].capitalize()) + self.bt_close.setCursor(QCursor(Qt.PointingHandCursor)) self.bt_close.clicked.connect(self.close) self.bt_close.setVisible(False) - self.ref_bt_close = toolbar.addWidget(self.bt_close) + self.ref_bt_close = self.bt_bar.addWidget(self.bt_close) - toolbar.addWidget(new_spacer()) + self.bt_bar.addWidget(new_spacer()) self.progress_bar = QProgressBar() self.progress_bar.setStyleSheet(styles.PROGRESS_BAR) self.progress_bar.setMaximumHeight(10 if QApplication.instance().style().objectName().lower() == 'windows' else 4) self.progress_bar.setTextVisible(False) self.progress_bar.setVisible(False) - self.ref_progress_bar = toolbar.addWidget(self.progress_bar) - toolbar.addWidget(new_spacer()) + self.ref_progress_bar = self.bt_bar.addWidget(self.progress_bar) + self.bt_bar.addWidget(new_spacer()) self.bt_skip = QPushButton(self.i18n['prepare_panel.bt_skip.label'].capitalize()) self.bt_skip.clicked.connect(self.finish) self.bt_skip.setEnabled(False) - toolbar.addWidget(self.bt_skip) + self.bt_bar.addWidget(self.bt_skip) - self.layout().addWidget(toolbar) + self.layout().addWidget(self.bt_bar) + + def hide_output(self): + self.current_output_task = None + self.textarea_output.setVisible(False) + self.textarea_output.clear() + self.bottom_widget.setVisible(False) + self._resize_columns() + self.setFocus(Qt.NoFocusReason) + + if not self.bt_bar.isVisible(): + self.bt_bar.setVisible(True) def ask_root_password(self): root_pwd, ok = root.ask_root_password(self.context, self.i18n) @@ -198,6 +237,7 @@ class PreparePanel(QWidget, TaskManager): def _enable_skip_button(self): self.bt_skip.setEnabled(True) + self.bt_skip.setCursor(QCursor(Qt.PointingHandCursor)) def _change_progress(self, value: int): self.progress_bar.setValue(value) @@ -235,14 +275,40 @@ class PreparePanel(QWidget, TaskManager): task_row = self.ntasks - 1 - lb_icon = QLabel() - lb_icon.setContentsMargins(10, 0, 10, 0) - lb_icon.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) + icon_widget = QWidget() + icon_widget.setLayout(QHBoxLayout()) + icon_widget.layout().setContentsMargins(10, 0, 10, 0) + bt_icon = QToolButton() + bt_icon.setEnabled(False) + bt_icon.setToolTip(self.i18n['prepare.bt_icon.no_output']) + bt_icon.setFixedSize(QSize(24, 24)) + bt_icon.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) if icon_path: - lb_icon.setPixmap(QIcon(icon_path).pixmap(14, 14)) + bt_icon.setIcon(QIcon(icon_path)) - self.table.setCellWidget(task_row, 0, lb_icon) + def _show_output(): + lines = self.output[id_] + + if lines: + self.current_output_task = id_ + self.textarea_output.clear() + self.textarea_output.setVisible(True) + + for l in lines: + self.textarea_output.appendPlainText(l) + + self.bottom_widget.setVisible(True) + + self.setFocus(Qt.NoFocusReason) + + if self.bt_bar.isVisible(): + self.bt_bar.setVisible(False) + + bt_icon.clicked.connect(_show_output) + icon_widget.layout().addWidget(bt_icon) + + self.table.setCellWidget(task_row, 0, icon_widget) lb_status = QLabel(label) lb_status.setMinimumWidth(50) @@ -263,7 +329,8 @@ class PreparePanel(QWidget, TaskManager): self.table.setCellWidget(task_row, 3, lb_progress) - self.tasks[id_] = {'lb_status': lb_status, + self.tasks[id_] = {'bt_icon': bt_icon, + 'lb_status': lb_status, 'lb_prog': lb_progress, 'progress': 0, 'lb_sub': lb_sub, @@ -285,6 +352,22 @@ class PreparePanel(QWidget, TaskManager): self._resize_columns() + def update_output(self, task_id: str, output: str): + full_output = self.output.get(task_id) + + if full_output is None: + full_output = [] + self.output[task_id] = full_output + task = self.tasks[task_id] + task['bt_icon'].setEnabled(True) + task['bt_icon'].setCursor(QCursor(Qt.PointingHandCursor)) + task['bt_icon'].setToolTip(self.i18n['prepare.bt_icon.output']) + + full_output.append(output) + + if self.current_output_task == task_id: + self.textarea_output.appendPlainText(output) + def finish_task(self, task_id: str): task = self.tasks[task_id] task['lb_sub'].setText('') diff --git a/bauh/view/qt/root.py b/bauh/view/qt/root.py index be75eae9..d35a8ff0 100644 --- a/bauh/view/qt/root.py +++ b/bauh/view/qt/root.py @@ -1,14 +1,16 @@ import os from typing import Tuple -from PyQt5.QtWidgets import QInputDialog, QLineEdit +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QCursor, QIcon +from PyQt5.QtWidgets import QInputDialog, QLineEdit, QDialogButtonBox from bauh.api.abstract.context import ApplicationContext from bauh.api.abstract.view import MessageType from bauh.commons.system import new_subprocess from bauh.view.core.config import read_config +from bauh.view.qt import css from bauh.view.qt.dialog import show_message -from bauh.view.qt.view_utils import load_resource_icon from bauh.view.util import util from bauh.view.util.translation import I18n @@ -25,7 +27,7 @@ def ask_root_password(context: ApplicationContext, i18n: I18n, app_config: dict if store_password and context.root_password and validate_password(context.root_password): return context.root_password, True - diag = QInputDialog() + diag = QInputDialog(flags=Qt.CustomizeWindowHint | Qt.WindowTitleHint) diag.setStyleSheet("""QLineEdit { border-radius: 5px; font-size: 16px; border: 1px solid lightblue }""") diag.setInputMode(QInputDialog.TextInput) diag.setTextEchoMode(QLineEdit.Password) @@ -34,6 +36,16 @@ def ask_root_password(context: ApplicationContext, i18n: I18n, app_config: dict diag.setLabelText('') diag.setOkButtonText(i18n['popup.root.continue'].capitalize()) diag.setCancelButtonText(i18n['popup.button.cancel'].capitalize()) + + bt_box = [c for c in diag.children() if isinstance(c, QDialogButtonBox)][0] + + for bt in bt_box.buttons(): + if bt_box.buttonRole(bt) == QDialogButtonBox.AcceptRole: + bt.setStyleSheet(css.OK_BUTTON) + + bt.setCursor(QCursor(Qt.PointingHandCursor)) + bt.setIcon(QIcon()) + diag.resize(400, 200) for attempt in range(3): diff --git a/bauh/view/resources/locale/ca b/bauh/view/resources/locale/ca index ec9edcd9..6d210ddf 100644 --- a/bauh/view/resources/locale/ca +++ b/bauh/view/resources/locale/ca @@ -334,6 +334,8 @@ popup.root.bad_password.title=Error popup.root.continue=continuar popup.root.title=Requireix la vostra contrasenya per a continuar popup.screenshots.no_screenshot.body=no s’han pogut recuperar captures de pantalla del {} +prepare.bt_icon.no_output=There are no progress details for this task to be displayed +prepare.bt_icon.output=Click here to display the progress details of this task prepare_panel.bt_skip.label=saltar prepare_panel.title.finish=Llest prepare_panel.title.start=Iniciando diff --git a/bauh/view/resources/locale/de b/bauh/view/resources/locale/de index 0a2306ff..2138baba 100644 --- a/bauh/view/resources/locale/de +++ b/bauh/view/resources/locale/de @@ -333,6 +333,8 @@ popup.root.bad_password.title=Fehler popup.root.continue=Fortfahren popup.root.title=Zum Fortfahren wird das Passwort benötigt. popup.screenshots.no_screenshot.body={} Screenshots konnten nicht heruntergeladen werden. +prepare.bt_icon.no_output=There are no progress details for this task to be displayed +prepare.bt_icon.output=Click here to display the progress details of this task prepare_panel.bt_skip.label=skip prepare_panel.title.finish=Bereit prepare_panel.title.start=Initialisierung diff --git a/bauh/view/resources/locale/en b/bauh/view/resources/locale/en index 404372f1..058cbe36 100644 --- a/bauh/view/resources/locale/en +++ b/bauh/view/resources/locale/en @@ -333,6 +333,8 @@ popup.root.bad_password.title=Error popup.root.continue=continue popup.root.title=Requires your password to continue popup.screenshots.no_screenshot.body=it was not possible to retrieve {} screenshots +prepare.bt_icon.no_output=There are no progress details for this task to be displayed +prepare.bt_icon.output=Click here to display the progress details of this task prepare_panel.bt_skip.label=skip prepare_panel.title.finish=Ready prepare_panel.title.start=Initializing diff --git a/bauh/view/resources/locale/es b/bauh/view/resources/locale/es index 76fb99b0..1b96957b 100644 --- a/bauh/view/resources/locale/es +++ b/bauh/view/resources/locale/es @@ -334,6 +334,8 @@ popup.root.bad_password.title=Error popup.root.continue=continuar popup.root.title=Proporcione su contraseña para continuar popup.screenshots.no_screenshot.body=No fue posible recuperar las fotos de {} +prepare.bt_icon.no_output=No hay detalles del progreso de esta tarea para mostrar +prepare.bt_icon.output=Haga clic aquí para mostrar los detalles del progreso de esta tarea prepare_panel.bt_skip.label=omitir prepare_panel.title.finish=Listo prepare_panel.title.start=Inicializando diff --git a/bauh/view/resources/locale/it b/bauh/view/resources/locale/it index def0b8db..e5cf47fc 100644 --- a/bauh/view/resources/locale/it +++ b/bauh/view/resources/locale/it @@ -336,6 +336,8 @@ popup.root.continue=continuare popup.root.title=Richiede la tua password per continuare popup.screenshots.no_screenshot.body=non è stato possibile recuperare {} schermate prepar_panel.bt_skip.label=saltare +prepare.bt_icon.no_output=There are no progress details for this task to be displayed +prepare.bt_icon.output=Click here to display the progress details of this task prepare_panel.bt_skip.label=skip prepare_panel.title.finish=Pronto prepare_panel.title.start=Inizializzazione diff --git a/bauh/view/resources/locale/pt b/bauh/view/resources/locale/pt index 0ecf7902..f64a1926 100644 --- a/bauh/view/resources/locale/pt +++ b/bauh/view/resources/locale/pt @@ -333,6 +333,8 @@ popup.root.bad_password.title=Erro popup.root.continue=prosseguir popup.root.title=Requer sua senha para prosseguir popup.screenshots.no_screenshot.body=Não foi possível obter as fotos de {} +prepare.bt_icon.no_output=Não existe detalhes do progresso dessa tarefa para ser exibido +prepare.bt_icon.output=Clique aqui para exibir detalhes do progresso dessa tarefa prepare_panel.bt_skip.label=Pular prepare_panel.title.finish=Pronto prepare_panel.title.start=Iniciando diff --git a/bauh/view/resources/locale/ru b/bauh/view/resources/locale/ru index 311da13c..16684f12 100644 --- a/bauh/view/resources/locale/ru +++ b/bauh/view/resources/locale/ru @@ -333,6 +333,8 @@ popup.root.bad_password.title=Ошибка popup.root.continue=Продолжить popup.root.title=Требуется ваш пароль, чтобы продолжить popup.screenshots.no_screenshot.body=не удалось получить скриншоты {} +prepare.bt_icon.no_output=There are no progress details for this task to be displayed +prepare.bt_icon.output=Click here to display the progress details of this task prepare_panel.bt_skip.label=Пропустить prepare_panel.title.finish=Ready prepare_panel.title.start=Initializing diff --git a/bauh/view/resources/locale/tr b/bauh/view/resources/locale/tr index a3178561..f1116006 100644 --- a/bauh/view/resources/locale/tr +++ b/bauh/view/resources/locale/tr @@ -333,6 +333,8 @@ popup.root.bad_password.title=Hata popup.root.continue=devam popup.root.title=Devam etmek için şifre girmelisiniz popup.screenshots.no_screenshot.body={} ekran görüntüsünü almak mümkün değildi +prepare.bt_icon.no_output=There are no progress details for this task to be displayed +prepare.bt_icon.output=Click here to display the progress details of this task prepare_panel.bt_skip.label=atla prepare_panel.title.finish=Hazır prepare_panel.title.start=Başlatılıyor diff --git a/pictures/releases/0.9.2/backup_mode.png b/pictures/releases/0.9.2/backup_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..35c9bec99f11ca77da9aec150d23fa383d85e502 GIT binary patch literal 16312 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 M6Xz}F*8KTj03cJzIsgCw literal 0 HcmV?d00001 diff --git a/pictures/releases/0.9.2/prepare_icon.png b/pictures/releases/0.9.2/prepare_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3155caf6bf691e2e488d8818db6b8a346fbb94a3 GIT binary patch literal 473876 zcmeI52YeL87sp?yp(M0G2)#Gyp?64-CPffIiWCL0AcBaXB25Ksh+QloMflT2nkZG8 z5PI*OP(lwi1pf1zFz4mCyVOf^$?xTJ*}dJF*_rR|&CHwkW_E0wR!zJz=E*1`Ud@^Y zwiQWTK<$6+nNI!BfA?X25swdE4hU$|EFhrJ8w2|Fe)+XtBBjO;9bdQUKMnG&>(;JC zP5$oZ|J#a^}6Rer0>u$ z>wW1zU|`#UY>;KfAft!2> z6qxnXk{Yk>$@A)wuU1xUyZyWGmbQ8`cj>a-vt4?XxSUB&Qb?<}9Q?(^Xf`W`>IY)$c<059zlAh!IHA$+o_|l=QT@z_ z5uGQ!wCCcSMdNm*FVv#zw0^@!1$18+c;MA~S1w-;xpd5b&V%=*-rxaWjyqN1oVqRP zdbVg1C=c;BY5DZ8)R7EtG=1((5%0D5czpAOcV2Zc{lI1|8>c^=Hnn%PnoV{EA5n+= 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 literal 0 HcmV?d00001 diff --git a/pictures/releases/0.9.2/prepare_output.png b/pictures/releases/0.9.2/prepare_output.png new file mode 100644 index 0000000000000000000000000000000000000000..7cecf1d23e0d903bcbc2d846dd630443c02080bf GIT binary patch literal 637751 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 literal 0 HcmV?d00001