From 416cf53c5d812aa4896fa75d710bf12b55bc86e8 Mon Sep 17 00:00:00 2001
From: Andreas Bolin <andbo467@student.liu.se>
Date: Mon, 11 Jul 2022 15:57:35 +0200
Subject: [PATCH] fix bugs related to PyQt5

---
 b_asic/scheduler-gui/main_window.py | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/b_asic/scheduler-gui/main_window.py b/b_asic/scheduler-gui/main_window.py
index 736b9cbc..98a31ca7 100644
--- a/b_asic/scheduler-gui/main_window.py
+++ b/b_asic/scheduler-gui/main_window.py
@@ -28,18 +28,18 @@ from qtpy.QtCore    import QCoreApplication, Qt, Slot, QSettings, QStandardPaths
 #QtCore QSize, QPoint
 from qtpy.QtGui     import QCloseEvent
 from qtpy.QtWidgets import (
-    QApplication, QMainWindow, QMessageBox, QFileDialog, QInputDialog, QCheckBox)
+    QApplication, QMainWindow, QMessageBox, QFileDialog, QInputDialog, QCheckBox, QAbstractButton)
 
 # QGraphics and QPainter imports
 from qtpy.QtWidgets import (
     QGraphicsView, QGraphicsScene, QGraphicsWidget,
     QGraphicsLayout, QGraphicsLinearLayout, QGraphicsGridLayout, QGraphicsLayoutItem, QGraphicsAnchorLayout,
-    QGraphicsItem, QGraphicsItemGroup, QGraphicsItemAnimation)
+    QGraphicsItem, QGraphicsItemGroup)
 from qtpy.QtGui     import (
     QPaintEvent, QPainter, QPainterPath, QColor, QBrush, QPen, QFont, QPolygon,
     QLinearGradient)
 from qtpy.QtCore    import (
-    QRect)
+    QRect, QPoint, QSize, QByteArray)
 
 # B-ASIC
 import logger
@@ -62,7 +62,8 @@ if __debug__:
         import PySide2
         print('PySide version:          ', PySide2.__version__)
     if QT_API.lower().startswith('pyqt'):
-        print('PyQt version:            ', str(Qt.PYQT_VERSION_STR))
+        from qtpy.QtCore import PYQT_VERSION_STR
+        print('PyQt version:            ', PYQT_VERSION_STR)
     print('QtPy version:            ', qtpy.__version__)
     
     # Autocompile the .ui form to a python file.
@@ -73,9 +74,11 @@ if __debug__:
         #     return (dir+'/ui/', file_base+'_ui.py')
         # uic.compileUiDir('.', map=_map_func)
         
-        uic.compileUiDir('.', map=(lambda dir,file: dir, 'ui_' + file))
+        uic.compileUiDir('.', map=(lambda dir,file: (dir, 'ui_' + file)))
     except:
         try:                                    # PySide2, try manual compile
+            print("fail!")
+            exit(1)
             import subprocess
             os_ = sys.platform
             if os_.startswith('linux'):
@@ -271,9 +274,12 @@ class MainWindow(QMainWindow, Ui_MainWindow):
                         '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></p>')
             box.setIcon(QMessageBox.Question)
             box.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
-            box.setButtonText(QMessageBox.Yes, self.tr("&Exit"))
-            box.setButtonText(QMessageBox.No, self.tr("&Cancel"))
-            checkbox = QCheckBox('Don\'t ask again')
+            buttons: list[QAbstractButton] = box.buttons()
+            buttons[0].setText(self.tr('&Exit'))
+            buttons[1].setText(self.tr('&Cancel'))
+            #box.setButtonText(QMessageBox.Yes, self.tr('&Exit'))
+            #box.setButtonText(QMessageBox.No, self.tr('&Cancel'))
+            checkbox = QCheckBox(self.tr('Don\'t ask again'))
             box.setCheckBox(checkbox)
             ret = box.exec_()
         
@@ -319,10 +325,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
     def _read_settings(self) -> None:
         """Read settings from Settings to MainWindow."""
         s = QSettings()
-        self.restoreGeometry(               s.value('mainwindow/geometry'))
-        self.restoreState(                  s.value('mainwindow/state'))
+        self.restoreGeometry(               s.value('mainwindow/geometry', type=QByteArray))
+        self.restoreState(                  s.value('mainwindow/state', type=QByteArray))
         self.menu_node_info.setChecked(     s.value('mainwindow/menu/node_info', True, type=bool))
-        self.splitter_center.restoreState(  s.value('mainwindow/splitter/state'))
+        self.splitter_center.restoreState(  s.value('mainwindow/splitter/state', type=QByteArray))
 
         log.debug('Settings read from \'{}\'.'.format(s.fileName()))
 
-- 
GitLab