From 0c6e239e48b4c3c438ac1f2141e970cb04d335f1 Mon Sep 17 00:00:00 2001 From: Landon Epps Date: Thu, 17 Aug 2023 01:43:25 -0400 Subject: [PATCH 1/2] Add Qt5 backwards compatibility for UI generation --- morph/readability_settings_ui.py | 5 ++++- morph/readability_ui.py | 5 ++++- scripts/build_ui.py | 19 ++++++++++++------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/morph/readability_settings_ui.py b/morph/readability_settings_ui.py index 9e411702..682e29cd 100644 --- a/morph/readability_settings_ui.py +++ b/morph/readability_settings_ui.py @@ -6,7 +6,10 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtWidgets +try: + from PyQt6 import QtCore, QtGui, QtWidgets +except: + from PyQt5 import QtCore, QtGui, QtWidgets class Ui_ReadabilitySettingsDialog(object): diff --git a/morph/readability_ui.py b/morph/readability_ui.py index 327ab314..208bce21 100644 --- a/morph/readability_ui.py +++ b/morph/readability_ui.py @@ -6,7 +6,10 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +try: + from PyQt6 import QtCore, QtGui, QtWidgets +except: + from PyQt5 import QtCore, QtGui, QtWidgets class Ui_ReadabilityDialog(object): diff --git a/scripts/build_ui.py b/scripts/build_ui.py index 576154b9..051fc371 100644 --- a/scripts/build_ui.py +++ b/scripts/build_ui.py @@ -1,14 +1,19 @@ import subprocess - def build_ui(in_file, out_file): - stdout = subprocess.run(["pyuic6", in_file], stdout=subprocess.PIPE).stdout - - lines = stdout.decode("utf-8").replace("__relpath__", "") - - with open(out_file, "w") as sources: - sources.write(lines) + stdout = subprocess.Popen(["pyuic6", in_file], stdout=subprocess.PIPE, text=True).stdout + with open(out_file, 'w') as sources: + for line in iter(stdout.readline, ""): + if line.startswith("from PyQt6 import"): + imports = line.split("import")[1].strip() + sources.write(f"""try: + from PyQt6 import {imports} +except: + from PyQt5 import {imports} +""") + else: + sources.write(line) build_ui("morph/readability.ui", "morph/readability_ui.py") build_ui("morph/readability_settings.ui", "morph/readability_settings_ui.py") From 3624650651da09af5ee7fa031e844effaa81d4ff Mon Sep 17 00:00:00 2001 From: Landon Epps Date: Thu, 17 Aug 2023 02:59:12 -0400 Subject: [PATCH 2/2] Add AlignmentFlag alias --- morph/readability_settings_ui.py | 2 ++ morph/readability_ui.py | 2 ++ scripts/build_ui.py | 2 ++ 3 files changed, 6 insertions(+) diff --git a/morph/readability_settings_ui.py b/morph/readability_settings_ui.py index 682e29cd..74635fbc 100644 --- a/morph/readability_settings_ui.py +++ b/morph/readability_settings_ui.py @@ -10,6 +10,8 @@ from PyQt6 import QtCore, QtGui, QtWidgets except: from PyQt5 import QtCore, QtGui, QtWidgets + QtCore.Qt.AlignmentFlag.AlignLeading = QtCore.Qt.AlignLeading + QtCore.Qt.AlignmentFlag.AlignTrailing = QtCore.Qt.AlignTrailing class Ui_ReadabilitySettingsDialog(object): diff --git a/morph/readability_ui.py b/morph/readability_ui.py index 208bce21..deeff18d 100644 --- a/morph/readability_ui.py +++ b/morph/readability_ui.py @@ -10,6 +10,8 @@ from PyQt6 import QtCore, QtGui, QtWidgets except: from PyQt5 import QtCore, QtGui, QtWidgets + QtCore.Qt.AlignmentFlag.AlignLeading = QtCore.Qt.AlignLeading + QtCore.Qt.AlignmentFlag.AlignTrailing = QtCore.Qt.AlignTrailing class Ui_ReadabilityDialog(object): diff --git a/scripts/build_ui.py b/scripts/build_ui.py index 051fc371..ea466321 100644 --- a/scripts/build_ui.py +++ b/scripts/build_ui.py @@ -11,6 +11,8 @@ def build_ui(in_file, out_file): from PyQt6 import {imports} except: from PyQt5 import {imports} + QtCore.Qt.AlignmentFlag.AlignLeading = QtCore.Qt.AlignLeading + QtCore.Qt.AlignmentFlag.AlignTrailing = QtCore.Qt.AlignTrailing """) else: sources.write(line)