Skip to content

Commit

Permalink
Improve compatibility with unofficial releases before Cura 5.0
Browse files Browse the repository at this point in the history
Some versions of Cura tried to use the system-installed PyQt6 when they should still be using PyQt5 (which can be installed in parallel)

Fixes #295
  • Loading branch information
fieldOfView committed Oct 10, 2022
1 parent 1d2b410 commit 9c43ea6
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 11 deletions.
8 changes: 6 additions & 2 deletions DiscoverOctoPrintAction.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@
from cura.MachineAction import MachineAction
from cura.Settings.CuraStackBuilder import CuraStackBuilder

USE_QT5 = False
try:
from cura.ApplicationMetadata import CuraSDKVersion
except ImportError: # Cura <= 3.6
CuraSDKVersion = "6.0.0"
USE_QT5 = False
if CuraSDKVersion >= "8.0.0":
from PyQt6.QtCore import pyqtSignal, pyqtProperty, pyqtSlot, QUrl, QObject, QTimer
from PyQt6.QtGui import QDesktopServices
from PyQt6.QtNetwork import (
Expand All @@ -29,7 +33,7 @@
QNetworkRequestAttributes = QNetworkRequest.Attribute
QSslSocketPeerVerifyModes = QSslSocket.PeerVerifyMode

except ImportError:
else:
from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot, QUrl, QObject, QTimer
from PyQt5.QtGui import QDesktopServices
from PyQt5.QtNetwork import (
Expand Down
6 changes: 5 additions & 1 deletion NetworkMJPGImage.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
# NetworkMJPGImage is released under the terms of the LGPLv3 or higher.

try:
from cura.ApplicationMetadata import CuraSDKVersion
except ImportError: # Cura <= 3.6
CuraSDKVersion = "6.0.0"
if CuraSDKVersion >= "8.0.0":
from PyQt6.QtCore import QUrl, pyqtProperty, pyqtSignal, pyqtSlot, QRect, QByteArray
from PyQt6.QtGui import QImage, QPainter
from PyQt6.QtQuick import QQuickPaintedItem
Expand All @@ -14,7 +18,7 @@
)
QNetworkRequestAttributes = QNetworkRequest.Attribute
QSslSocketPeerVerifyModes = QSslSocket.PeerVerifyMode
except ImportError:
else:
from PyQt5.QtCore import QUrl, pyqtProperty, pyqtSignal, pyqtSlot, QRect, QByteArray
from PyQt5.QtGui import QImage, QPainter
from PyQt5.QtQuick import QQuickPaintedItem
Expand Down
6 changes: 5 additions & 1 deletion NetworkReplyTimeout.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@
# NetworkReplyTimeout is released under the terms of the AGPLv3 or higher.

try:
from cura.ApplicationMetadata import CuraSDKVersion
except ImportError: # Cura <= 3.6
CuraSDKVersion = "6.0.0"
if CuraSDKVersion >= "8.0.0":
from PyQt6.QtCore import QObject, QTimer
from PyQt6.QtNetwork import QNetworkReply
except ImportError:
else:
from PyQt5.QtCore import QObject, QTimer
from PyQt5.QtNetwork import QNetworkReply

Expand Down
8 changes: 6 additions & 2 deletions OctoPrintOutputDevice.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,12 @@

from cura.PrinterOutput.NetworkedPrinterOutputDevice import NetworkedPrinterOutputDevice

USE_QT5 = False
try:
from cura.ApplicationMetadata import CuraSDKVersion
except ImportError: # Cura <= 3.6
CuraSDKVersion = "6.0.0"
USE_QT5 = False
if CuraSDKVersion >= "8.0.0":
from PyQt6.QtNetwork import (
QHttpPart,
QNetworkRequest,
Expand All @@ -58,7 +62,7 @@
QNetworkReplyNetworkErrors = QNetworkReply.NetworkError
QSslSocketPeerVerifyModes = QSslSocket.PeerVerifyMode

except ImportError:
else:
from PyQt5.QtNetwork import (
QHttpPart,
QNetworkRequest,
Expand Down
6 changes: 5 additions & 1 deletion OctoPrintOutputDevicePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,12 @@
from UM.Settings.ContainerStack import ContainerStack

try:
from cura.ApplicationMetadata import CuraSDKVersion
except ImportError: # Cura <= 3.6
CuraSDKVersion = "6.0.0"
if CuraSDKVersion >= "8.0.0":
from PyQt6.QtCore import QTimer
except ImportError:
else:
from PyQt5.QtCore import QTimer

import time
Expand Down
8 changes: 6 additions & 2 deletions UploadOptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@
from UM.Version import Version
from UM.Util import parseBool

USE_QT5 = False
try:
from cura.ApplicationMetadata import CuraSDKVersion
except ImportError: # Cura <= 3.6
CuraSDKVersion = "6.0.0"
USE_QT5 = False
if CuraSDKVersion >= "8.0.0":
from PyQt6.QtCore import QObject, pyqtSignal, pyqtProperty, pyqtSlot
except ImportError:
else:
from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty, pyqtSlot
USE_QT5 = True

Expand Down
6 changes: 5 additions & 1 deletion WebcamsModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@
# OctoPrintPlugin is released under the terms of the AGPLv3 or higher.

try:
from cura.ApplicationMetadata import CuraSDKVersion
except ImportError: # Cura <= 3.6
CuraSDKVersion = "6.0.0"
if CuraSDKVersion >= "8.0.0":
from PyQt6.QtCore import Qt
except ImportError:
else:
from PyQt5.QtCore import Qt

from UM.Qt.ListModel import ListModel
Expand Down
6 changes: 5 additions & 1 deletion __init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@
from UM.Logger import Logger

try:
from cura.ApplicationMetadata import CuraSDKVersion
except ImportError: # Cura <= 3.6
CuraSDKVersion = "6.0.0"
if CuraSDKVersion >= "8.0.0":
from PyQt6.QtQml import qmlRegisterType
except ImportError:
else:
from PyQt5.QtQml import qmlRegisterType

def getMetaData():
Expand Down

0 comments on commit 9c43ea6

Please sign in to comment.