diff --git a/contrib/build-wine/deterministic.spec b/contrib/build-wine/deterministic.spec index c133de4e6..62b471c23 100644 --- a/contrib/build-wine/deterministic.spec +++ b/contrib/build-wine/deterministic.spec @@ -62,6 +62,7 @@ a = Analysis([home+'run_electrum', home+'electrum/bitcoin.py', home+'electrum/dnssec.py', home+'electrum/commands.py', + home+'electrum/plugins/trustedcoin/qt.py', home+'electrum/plugins/cosigner_pool/qt.py', home+'electrum/plugins/trezor/qt.py', home+'electrum/plugins/safe_t/client.py', diff --git a/contrib/osx/osx.spec b/contrib/osx/osx.spec index b4fb53df9..4f3a53acb 100644 --- a/contrib/osx/osx.spec +++ b/contrib/osx/osx.spec @@ -67,6 +67,7 @@ a = Analysis([electrum+ MAIN_SCRIPT, electrum+'electrum/bitcoin.py', electrum+'electrum/dnssec.py', electrum+'electrum/commands.py', + electrum+'electrum/plugins/trustedcoin/qt.py', electrum+'electrum/plugins/cosigner_pool/qt.py', electrum+'electrum/plugins/trezor/qt.py', electrum+'electrum/plugins/safe_t/client.py', diff --git a/electrum/gui/common_qt/__init__.py b/electrum/gui/common_qt/__init__.py index e69de29bb..b2be0c9a4 100644 --- a/electrum/gui/common_qt/__init__.py +++ b/electrum/gui/common_qt/__init__.py @@ -0,0 +1,16 @@ +# Copyright (C) 2023 The Electrum developers +# Distributed under the MIT software license, see the accompanying +# file LICENCE or http://www.opensource.org/licenses/mit-license.php + +import sys + + +# FIXME: remove when both desktop and mobile are Qt6 +def get_qt_major_version() -> int: + _GUI_QT_VERSION = getattr(sys, '_GUI_QT_VERSION', None) + if _GUI_QT_VERSION is None: + # used by pyinstaller when building (analysis phase) + _GUI_QT_VERSION = 5 + if _GUI_QT_VERSION in (5, 6): + return _GUI_QT_VERSION + raise Exception(f"unexpected {_GUI_QT_VERSION=}") diff --git a/electrum/gui/common_qt/plugins.py b/electrum/gui/common_qt/plugins.py index 0934477b4..9edaa9b19 100644 --- a/electrum/gui/common_qt/plugins.py +++ b/electrum/gui/common_qt/plugins.py @@ -1,9 +1,13 @@ import sys -if getattr(sys, '_GUI_QT_VERSION') == 5: # FIXME: remove when both desktop and mobile are Qt6 +from . import get_qt_major_version + +if (qt_ver := get_qt_major_version()) == 5: from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject -else: +elif qt_ver == 6: from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject +else: + raise Exception(f"unexpected {qt_ver=}") from electrum.logging import get_logger diff --git a/electrum/plugins/trustedcoin/common_qt.py b/electrum/plugins/trustedcoin/common_qt.py index 31b9954e7..01836d972 100644 --- a/electrum/plugins/trustedcoin/common_qt.py +++ b/electrum/plugins/trustedcoin/common_qt.py @@ -4,10 +4,14 @@ import base64 import sys from typing import TYPE_CHECKING -if getattr(sys, '_GUI_QT_VERSION') == 5: # FIXME: remove when both desktop and mobile are Qt6 +from electrum.gui.common_qt import get_qt_major_version + +if (qt_ver := get_qt_major_version()) == 5: from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot -else: +elif qt_ver == 6: from PyQt6.QtCore import pyqtSignal, pyqtProperty, pyqtSlot +else: + raise Exception(f"unexpected {qt_ver=}") from electrum.i18n import _ from electrum.bip32 import BIP32Node