From 6cdd554a9d41d7c1fd64efefde55548ada28cbd0 Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Sat, 2 Dec 2023 15:02:15 -0300 Subject: [PATCH] [view.qt] using the showEvent callback instead of show to try fix centralisation issues --- bauh/view/qt/prepare.py | 6 +++--- bauh/view/qt/settings.py | 8 ++++---- bauh/view/qt/window.py | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bauh/view/qt/prepare.py b/bauh/view/qt/prepare.py index 160f64e5..67bb08fb 100644 --- a/bauh/view/qt/prepare.py +++ b/bauh/view/qt/prepare.py @@ -5,7 +5,7 @@ from functools import reduce from typing import Tuple, Optional from PyQt5.QtCore import QSize, Qt, QThread, pyqtSignal, QCoreApplication, QMutex -from PyQt5.QtGui import QIcon, QCursor, QCloseEvent +from PyQt5.QtGui import QIcon, QCursor, QCloseEvent, QShowEvent from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QSizePolicy, QTableWidget, QHeaderView, QPushButton, \ QProgressBar, QPlainTextEdit, QToolButton, QHBoxLayout @@ -287,14 +287,14 @@ class PreparePanel(QWidget, TaskManager): self.resize(int(self.get_table_width() * 1.05), self.sizeHint().height()) - def show(self): + def showEvent(self, event: Optional[QShowEvent]) -> None: + super().showEvent(event) self.prepare_thread.start() screen_size = get_current_screen_geometry() self.setMinimumWidth(int(screen_size.width() * 0.5)) self.setMinimumHeight(int(screen_size.height() * 0.35)) self.setMaximumHeight(int(screen_size.height() * 0.95)) centralize(self) - super(PreparePanel, self).show() def start(self, tasks: int): self.started_at = time.time() diff --git a/bauh/view/qt/settings.py b/bauh/view/qt/settings.py index 8a70adb2..2b1d9bdd 100644 --- a/bauh/view/qt/settings.py +++ b/bauh/view/qt/settings.py @@ -3,7 +3,7 @@ from io import StringIO from typing import Optional from PyQt5.QtCore import Qt, QCoreApplication, QThread, pyqtSignal -from PyQt5.QtGui import QCursor +from PyQt5.QtGui import QCursor, QShowEvent from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QPushButton, QHBoxLayout, QApplication from bauh import __app_name__ @@ -81,10 +81,10 @@ class SettingsWindow(QWidget): self.thread_reload_panel.signal_finished.connect(self._reload_manage_panel) centralize(self) - def show(self): - super(SettingsWindow, self).show() - centralize(self) + def showEvent(self, event: Optional[QShowEvent]): + super(SettingsWindow, self).showEvent(event) self.setMinimumWidth(int(self.sizeHint().width())) + centralize(self) def closeEvent(self, event): if self.window and self.window.settings_window == self: diff --git a/bauh/view/qt/window.py b/bauh/view/qt/window.py index ae39fd33..6d119595 100755 --- a/bauh/view/qt/window.py +++ b/bauh/view/qt/window.py @@ -6,7 +6,7 @@ from pathlib import Path from typing import List, Type, Set, Tuple, Optional, Dict, Any from PyQt5.QtCore import QEvent, Qt, pyqtSignal, QRect -from PyQt5.QtGui import QIcon, QWindowStateChangeEvent, QCursor, QCloseEvent +from PyQt5.QtGui import QIcon, QWindowStateChangeEvent, QCursor, QCloseEvent, QShowEvent from PyQt5.QtWidgets import QWidget, QVBoxLayout, QCheckBox, QHeaderView, QToolBar, \ QLabel, QPlainTextEdit, QProgressBar, QPushButton, QComboBox, QApplication, QListView, QSizePolicy, \ QMenu, QHBoxLayout @@ -607,14 +607,14 @@ class ManageWindow(QWidget): if warnings: dialog.show_message(title=self.i18n['warning'].capitalize(), body='

{}

'.format('

'.join(warnings)), type_=MessageType.WARNING) - def show(self): + def showEvent(self, event: Optional[QShowEvent]) -> None: + super().showEvent(event) if not self.thread_warnings.isFinished(): self.thread_warnings.start() self._screen_geometry = get_current_screen_geometry() self._update_size_limits() qt_utils.centralize(self) - super(ManageWindow, self).show() def verify_warnings(self): self.thread_warnings.start()