From d3880e5473d422b47bd333d06f72025304ec39d9 Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Wed, 10 Jun 2020 17:02:02 -0300 Subject: [PATCH] [improvements][fix][ui] displaying wait cursor over some components | not hiding custom actions button when an action finishes --- CHANGELOG.md | 2 ++ bauh/view/qt/prepare.py | 8 ++++++++ bauh/view/qt/window.py | 13 +++++++++++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c93007a3..f393ad24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - able to update AppImages with continuous releases - UI - filters algorithm speed and sorting + - displaying wait cursor over some components ### Fixes - AppImage - allowing some apps to be filled with empty category elements @@ -18,6 +19,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - handling web page fetch errors - UI - displaying empty categories + - minor fixes ## [0.9.5] 2020-06-07 ### Features diff --git a/bauh/view/qt/prepare.py b/bauh/view/qt/prepare.py index 15a4a9ee..b6e238d6 100644 --- a/bauh/view/qt/prepare.py +++ b/bauh/view/qt/prepare.py @@ -158,6 +158,7 @@ class PreparePanel(QWidget, TaskManager): self.progress_thread.signal_change.connect(self._change_progress) self.label_top = QLabel() + self.label_top.setCursor(QCursor(Qt.WaitCursor)) self.label_top.setText("{}...".format(self.i18n['prepare_panel.title.start'].capitalize())) self.label_top.setAlignment(Qt.AlignHCenter) self.label_top.setStyleSheet("QLabel { font-size: 14px; font-weight: bold; }") @@ -165,6 +166,7 @@ class PreparePanel(QWidget, TaskManager): self.layout().addWidget(QLabel()) self.table = QTableWidget() + self.table.setCursor(QCursor(Qt.WaitCursor)) self.table.setStyleSheet("QTableWidget { background-color: transparent; }") self.table.setFocusPolicy(Qt.NoFocus) self.table.setShowGrid(False) @@ -209,12 +211,14 @@ class PreparePanel(QWidget, TaskManager): 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.progress_bar.setCursor(QCursor(Qt.WaitCursor)) 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) + self.bt_skip.setCursor(QCursor(Qt.WaitCursor)) self.bt_bar.addWidget(self.bt_skip) self.layout().addWidget(self.bt_bar) @@ -278,6 +282,7 @@ class PreparePanel(QWidget, TaskManager): icon_widget.setLayout(QHBoxLayout()) icon_widget.layout().setContentsMargins(10, 0, 10, 0) bt_icon = QToolButton() + bt_icon.setCursor(QCursor(Qt.WaitCursor)) bt_icon.setEnabled(False) bt_icon.setToolTip(self.i18n['prepare.bt_icon.no_output']) bt_icon.setFixedSize(QSize(24, 24)) @@ -310,18 +315,21 @@ class PreparePanel(QWidget, TaskManager): self.table.setCellWidget(task_row, 0, icon_widget) lb_status = QLabel(label) + lb_status.setCursor(Qt.WaitCursor) lb_status.setMinimumWidth(50) lb_status.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) lb_status.setStyleSheet("QLabel { font-weight: bold; }") self.table.setCellWidget(task_row, 1, lb_status) lb_sub = QLabel() + lb_status.setCursor(Qt.WaitCursor) lb_sub.setContentsMargins(10, 0, 10, 0) lb_sub.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) lb_sub.setMinimumWidth(50) self.table.setCellWidget(task_row, 2, lb_sub) lb_progress = QLabel('{0:.2f}'.format(0) + '%') + lb_progress.setCursor(Qt.WaitCursor) lb_progress.setContentsMargins(10, 0, 10, 0) lb_progress.setStyleSheet("QLabel { font-weight: bold; }") lb_progress.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) diff --git a/bauh/view/qt/window.py b/bauh/view/qt/window.py index a313baa5..8457c52f 100755 --- a/bauh/view/qt/window.py +++ b/bauh/view/qt/window.py @@ -256,10 +256,13 @@ class ManageWindow(QWidget): self.layout.addWidget(self.toolbar) + self.table_container = QWidget() + self.table_container.setLayout(QVBoxLayout()) self.table_apps = AppsTable(self, self.icon_cache, download_icons=bool(self.config['download']['icons'])) self.table_apps.change_headers_policy() + self.table_container.layout().addWidget(self.table_apps) - self.layout.addWidget(self.table_apps) + self.layout.addWidget(self.table_container) toolbar_console = QToolBar() @@ -287,6 +290,7 @@ class ManageWindow(QWidget): self.toolbar_substatus = QToolBar() self.toolbar_substatus.addWidget(new_spacer()) self.label_substatus = QLabel() + self.label_substatus.setCursor(QCursor(Qt.WaitCursor)) self.toolbar_substatus.addWidget(self.label_substatus) self.toolbar_substatus.addWidget(new_spacer()) self.layout.addWidget(self.toolbar_substatus) @@ -329,6 +333,7 @@ class ManageWindow(QWidget): self.toolbar_bottom.addWidget(new_spacer()) self.progress_bar = QProgressBar() + self.progress_bar.setCursor(QCursor(Qt.WaitCursor)) self.progress_bar.setStyleSheet(styles.PROGRESS_BAR) self.progress_bar.setMaximumHeight(10 if QApplication.instance().style().objectName().lower() == 'windows' else 4) @@ -387,7 +392,6 @@ class ManageWindow(QWidget): def update_custom_actions(self): self.custom_actions = self.manager.get_custom_actions() - self.ref_bt_custom_actions.setVisible(bool(self.custom_actions)) def _update_process_progress(self, val: int): if self.progress_controll_enabled: @@ -677,6 +681,7 @@ class ManageWindow(QWidget): self.refresh_packages(pkg_types={res['app'].model.__class__} if len(self.pkgs) > 1 else None) self.update_custom_actions() + notify_tray() else: if self._can_notify_user(): @@ -974,6 +979,7 @@ class ManageWindow(QWidget): self.textarea_output.appendPlainText(output) def _begin_action(self, action_label: str, keep_search: bool = False, keep_bt_installed: bool = True, clear_filters: bool = False): + self.table_container.setCursor(QCursor(Qt.WaitCursor)) self.ref_input_name_filter.setVisible(False) self.ref_combo_filter_type.setVisible(False) self.ref_combo_categories.setVisible(False) @@ -985,6 +991,7 @@ class ManageWindow(QWidget): self.ref_progress_bar.setVisible(True) self.label_status.setText(action_label + "...") + self.label_status.setCursor(QCursor(Qt.WaitCursor)) self.ref_bt_upgrade.setVisible(False) self.ref_bt_refresh.setVisible(False) @@ -1012,6 +1019,7 @@ class ManageWindow(QWidget): self.combo_filter_type.setEnabled(False) def finish_action(self, keep_filters: bool = False): + self.table_container.unsetCursor() self.thread_animate_progress.stop = True self.thread_animate_progress.wait(msecs=1000) self.ref_progress_bar.setVisible(False) @@ -1028,6 +1036,7 @@ class ManageWindow(QWidget): self.table_apps.setEnabled(True) self.input_search.setEnabled(True) self.label_status.setText('') + self.label_status.unsetCursor() self.label_substatus.setText('') self.ref_toolbar_search.setVisible(True) self.ref_toolbar_search.setEnabled(True)