From 22cc14e23e86c726009f45e121fae4306e1ab1d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Thu, 8 Oct 2020 13:04:52 -0400 Subject: [PATCH 1/4] WLCalc: inherit from QWidget --- gwhat/HydroCalc2.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gwhat/HydroCalc2.py b/gwhat/HydroCalc2.py index 7a274e1c8..225e5c4bb 100644 --- a/gwhat/HydroCalc2.py +++ b/gwhat/HydroCalc2.py @@ -21,7 +21,8 @@ from PyQt5.QtCore import pyqtSignal as QSignal from PyQt5.QtWidgets import ( QGridLayout, QComboBox, QTextEdit, QSizePolicy, QPushButton, QLabel, - QTabWidget, QApplication, QWidget, QMainWindow, QToolBar, QFrame) + QTabWidget, QApplication, QWidget, QMainWindow, QToolBar, QFrame, + QMessageBox) import matplotlib as mpl import matplotlib.dates as mdates @@ -38,7 +39,6 @@ # ---- Local imports from gwhat.config.main import CONF from gwhat.gwrecharge.gwrecharge_gui import RechgEvalWidget -from gwhat.common.widgets import DialogWindow from gwhat.config.gui import FRAME_SYLE from gwhat.utils import icons from gwhat.utils.icons import QToolButtonNormal, get_iconsize @@ -49,7 +49,7 @@ from gwhat.widgets.fileio import SaveFileMixin -class WLCalc(DialogWindow, SaveFileMixin): +class WLCalc(QWidget, SaveFileMixin): """ This is the interface where are plotted the water level time series. It is possible to dynamically zoom and span the data, change the display, @@ -59,7 +59,7 @@ class WLCalc(DialogWindow, SaveFileMixin): sig_new_mrc = QSignal() def __init__(self, datamanager, parent=None): - DialogWindow.__init__(self, parent, maximize=True) + QWidget.__init__(self, parent) SaveFileMixin.__init__(self) self._navig_and_select_tools = [] @@ -506,6 +506,9 @@ def __initUI__(self): main_layout.setHorizontalSpacing(15) main_layout.setColumnStretch(0, 100) + def emit_warning(self, message, title='Warning'): + QMessageBox.warning(self, title, message, QMessageBox.Ok) + @property def water_lvl(self): return np.array([]) if self.wldset is None else self.wldset.waterlevels From 82e28d841e06fbe83fccda07de1aa83d9f3923af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Thu, 8 Oct 2020 13:05:12 -0400 Subject: [PATCH 2/4] HydroprintGUI: inherit from QWidget --- gwhat/HydroPrint2.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gwhat/HydroPrint2.py b/gwhat/HydroPrint2.py index c407d5847..da16835f8 100644 --- a/gwhat/HydroPrint2.py +++ b/gwhat/HydroPrint2.py @@ -43,12 +43,12 @@ from gwhat.widgets.buttons import LangToolButton -class HydroprintGUI(myqt.DialogWindow): +class HydroprintGUI(QWidget): ConsoleSignal = QSignal(str) def __init__(self, datamanager, parent=None): - super(HydroprintGUI, self).__init__(parent, maximize=True) + super().__init__(parent) self.__updateUI = True @@ -366,6 +366,9 @@ def __init__(self, items, parent=None): return tabscales + def emit_warning(self, message, title='Warning'): + QMessageBox.warning(self, title, message, QMessageBox.Ok) + def close(self): """Close HydroPrint widget.""" self.color_palette_win.close() From 806e4eb07ca2a6587ea8fa70e4aead0175354e22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Thu, 8 Oct 2020 13:05:33 -0400 Subject: [PATCH 3/4] WeatherViewer: inherit from QDialog --- gwhat/meteo/weather_viewer.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gwhat/meteo/weather_viewer.py b/gwhat/meteo/weather_viewer.py index 7c609f5f0..4f616d06f 100644 --- a/gwhat/meteo/weather_viewer.py +++ b/gwhat/meteo/weather_viewer.py @@ -27,7 +27,7 @@ from PyQt5.QtGui import QImage from PyQt5.QtWidgets import ( QMenu, QToolButton, QGridLayout, QFileDialog, QApplication, QTableWidget, - QTableWidgetItem, QLabel, QHBoxLayout, QHeaderView, QToolBar) + QTableWidgetItem, QLabel, QHBoxLayout, QHeaderView, QToolBar, QDialog) # ---- Local library imports from gwhat.config.ospath import ( @@ -35,7 +35,6 @@ from gwhat.utils import icons from gwhat.config.gui import FRAME_SYLE from gwhat.utils.icons import QToolButtonVRectSmall, QToolButtonNormal -from gwhat.common.widgets import DialogWindow from gwhat.widgets.buttons import RangeSpinBoxes from gwhat.common.utils import save_content_to_file from gwhat.meteo.weather_reader import WXDataFrameBase @@ -44,14 +43,18 @@ mpl.rc('font', **{'family': 'sans-serif', 'sans-serif': ['Arial']}) -class WeatherViewer(DialogWindow): +class WeatherViewer(QDialog): """ GUI that allows to plot weather normals, save the graphs to file, see various stats about the dataset, etc... """ def __init__(self, parent=None): - super(WeatherViewer, self).__init__(parent, False, False) + super().__init__(parent) + self.setWindowFlags( + Qt.Window | Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint) + self.setWindowTitle('Weather Normals Viewer') + self.setWindowIcon(icons.get_icon('master')) self.wxdset = None self.normals = None @@ -60,8 +63,6 @@ def __init__(self, parent=None): self.__initUI__() def __initUI__(self): - self.setWindowTitle('Weather Averages') - self.setWindowIcon(icons.get_icon('master')) # ---- Toolbar @@ -141,6 +142,7 @@ def __initUI__(self): main_layout.addWidget(self.grid_weather_normals, 2, 0) main_layout.setRowStretch(2, 1) main_layout.setColumnStretch(0, 1) + main_layout.setSizeConstraint(main_layout.SetFixedSize) def show_monthly_grid(self): if self.grid_weather_normals.isHidden(): From 9852ca25dab47d80f9f8da5e4656cc05a3a26acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Thu, 8 Oct 2020 13:05:45 -0400 Subject: [PATCH 4/4] Remove DialogWindow --- gwhat/common/widgets.py | 51 ----------------------------------------- 1 file changed, 51 deletions(-) diff --git a/gwhat/common/widgets.py b/gwhat/common/widgets.py index 284226aad..b6db385ff 100644 --- a/gwhat/common/widgets.py +++ b/gwhat/common/widgets.py @@ -89,57 +89,6 @@ def value(self): return self.__value -class DialogWindow(QDialog): - - def __init__(self, parent=None, resizable=False, maximize=True): - super(DialogWindow, self).__init__(parent) - - self.__firstshow = True - if maximize is True: - self.__resizable = True - self.setWindowFlags(Qt.Window) - else: - self.__resizable = resizable - self.setWindowFlags(Qt.Window | - Qt.WindowMinimizeButtonHint | - Qt.WindowCloseButtonHint) - - self.setWindowIcon(icons.get_icon('master')) - - def emit_warning(self, msg, title='Warning'): - btn = QMessageBox.Ok - QMessageBox.warning(self, title, msg, btn) - - def show(self): - if self.__firstshow is True: - self.__firstshow = False - - self.setAttribute(Qt.WA_DontShowOnScreen, True) - super(DialogWindow, self).show() - super(DialogWindow, self).close() - self.setAttribute(Qt.WA_DontShowOnScreen, False) - - qr = self.frameGeometry() - if self.parentWidget(): - parent = self.parentWidget() - wp = parent.frameGeometry().width() - hp = parent.frameGeometry().height() - cp = parent.mapToGlobal(QPoint(wp/2, hp/2)) - else: - cp = QDesktopWidget().availableGeometry().center() - qr.moveCenter(cp) - self.move(qr.topLeft()) - - super(DialogWindow, self).show() - - if self.__resizable is False: - self.setFixedSize(self.size()) - else: - super(DialogWindow, self).show() - - self.raise_() - - class QToolPanel(QWidget): """ A custom widget that mimicks the behavior of the "Tools" sidepanel in