mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-23 22:29:41 +08:00
Merge branch 'CURA-8591_upgrade_to_qt62' of github.com:Ultimaker/Cura into PyQt6_upgrade
This commit is contained in:
commit
28924a1c87
@ -1,8 +1,8 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
import enum
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, pyqtProperty, QTimer, Q_ENUMS
|
from PyQt6.QtCore import QObject, pyqtSignal, pyqtSlot, pyqtProperty, QTimer, pyqtEnum
|
||||||
from typing import Any, Optional, Dict, TYPE_CHECKING, Callable
|
from typing import Any, Optional, Dict, TYPE_CHECKING, Callable
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -18,7 +18,7 @@ if TYPE_CHECKING:
|
|||||||
i18n_catalog = i18nCatalog("cura")
|
i18n_catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
|
|
||||||
class SyncState:
|
class SyncState(enum.IntEnum):
|
||||||
"""QML: Cura.AccountSyncState"""
|
"""QML: Cura.AccountSyncState"""
|
||||||
SYNCING = 0
|
SYNCING = 0
|
||||||
SUCCESS = 1
|
SUCCESS = 1
|
||||||
@ -41,7 +41,7 @@ class Account(QObject):
|
|||||||
|
|
||||||
# The interval in which sync services are automatically triggered
|
# The interval in which sync services are automatically triggered
|
||||||
SYNC_INTERVAL = 60.0 # seconds
|
SYNC_INTERVAL = 60.0 # seconds
|
||||||
Q_ENUMS(SyncState)
|
pyqtEnum(SyncState)
|
||||||
|
|
||||||
loginStateChanged = pyqtSignal(bool)
|
loginStateChanged = pyqtSignal(bool)
|
||||||
"""Signal emitted when user logged in or out"""
|
"""Signal emitted when user logged in or out"""
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty
|
from PyQt6.QtCore import QObject, pyqtSignal, pyqtProperty
|
||||||
|
|
||||||
from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
from typing import Optional, TYPE_CHECKING
|
from typing import Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtProperty
|
from PyQt6.QtCore import QObject, pyqtProperty
|
||||||
|
|
||||||
from cura.API.Backups import Backups
|
from cura.API.Backups import Backups
|
||||||
from cura.API.ConnectionStatus import ConnectionStatus
|
from cura.API.ConnectionStatus import ConnectionStatus
|
||||||
@ -34,12 +34,13 @@ class CuraAPI(QObject):
|
|||||||
raise RuntimeError("Tried to create singleton '{class_name}' more than once.".format(class_name = CuraAPI.__name__))
|
raise RuntimeError("Tried to create singleton '{class_name}' more than once.".format(class_name = CuraAPI.__name__))
|
||||||
if application is None:
|
if application is None:
|
||||||
raise RuntimeError("Upon first time creation, the application must be set.")
|
raise RuntimeError("Upon first time creation, the application must be set.")
|
||||||
cls.__instance = super(CuraAPI, cls).__new__(cls)
|
instance = super(CuraAPI, cls).__new__(cls)
|
||||||
cls._application = application
|
cls._application = application
|
||||||
return cls.__instance
|
return instance
|
||||||
|
|
||||||
def __init__(self, application: Optional["CuraApplication"] = None) -> None:
|
def __init__(self, application: Optional["CuraApplication"] = None) -> None:
|
||||||
super().__init__(parent = CuraAPI._application)
|
super().__init__(parent = CuraAPI._application)
|
||||||
|
CuraAPI.__instance = self
|
||||||
|
|
||||||
self._account = Account(self._application)
|
self._account = Account(self._application)
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt6.QtCore import QTimer
|
||||||
from typing import Any, TYPE_CHECKING
|
from typing import Any, TYPE_CHECKING
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -31,7 +31,7 @@ from cura.Settings.GlobalStack import GlobalStack
|
|||||||
from cura.Scene.CuraSceneNode import CuraSceneNode
|
from cura.Scene.CuraSceneNode import CuraSceneNode
|
||||||
from cura.Settings.ExtruderManager import ExtruderManager
|
from cura.Settings.ExtruderManager import ExtruderManager
|
||||||
|
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt6.QtCore import QTimer
|
||||||
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
|
|
||||||
from PyQt5.QtCore import QVariantAnimation, QEasingCurve
|
from PyQt6.QtCore import QVariantAnimation, QEasingCurve
|
||||||
from PyQt5.QtGui import QVector3D
|
from PyQt6.QtGui import QVector3D
|
||||||
|
|
||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ class CameraAnimation(QVariantAnimation):
|
|||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self._camera_tool = None
|
self._camera_tool = None
|
||||||
self.setDuration(300)
|
self.setDuration(300)
|
||||||
self.setEasingCurve(QEasingCurve.OutQuad)
|
self.setEasingCurve(QEasingCurve.Type.OutQuad)
|
||||||
|
|
||||||
def setCameraTool(self, camera_tool):
|
def setCameraTool(self, camera_tool):
|
||||||
self._camera_tool = camera_tool
|
self._camera_tool = camera_tool
|
||||||
|
@ -20,9 +20,9 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
with_sentry_sdk = False
|
with_sentry_sdk = False
|
||||||
|
|
||||||
from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QUrl
|
from PyQt6.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QUrl
|
||||||
from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox, QCheckBox, QPushButton
|
from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox, QCheckBox, QPushButton
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt6.QtGui import QDesktopServices
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -136,8 +136,8 @@ class CrashHandler:
|
|||||||
|
|
||||||
# "backup and start clean" and "close" buttons
|
# "backup and start clean" and "close" buttons
|
||||||
buttons = QDialogButtonBox()
|
buttons = QDialogButtonBox()
|
||||||
buttons.addButton(QDialogButtonBox.Close)
|
buttons.addButton(QDialogButtonBox.StandardButton.Close)
|
||||||
buttons.addButton(catalog.i18nc("@action:button", "Backup and Reset Configuration"), QDialogButtonBox.AcceptRole)
|
buttons.addButton(catalog.i18nc("@action:button", "Backup and Reset Configuration"), QDialogButtonBox.ButtonRole.AcceptRole)
|
||||||
buttons.rejected.connect(self._closeEarlyCrashDialog)
|
buttons.rejected.connect(self._closeEarlyCrashDialog)
|
||||||
buttons.accepted.connect(self._backupAndStartClean)
|
buttons.accepted.connect(self._backupAndStartClean)
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ class CrashHandler:
|
|||||||
QDesktopServices.openUrl(QUrl.fromLocalFile( path ))
|
QDesktopServices.openUrl(QUrl.fromLocalFile( path ))
|
||||||
|
|
||||||
def _showDetailedReport(self):
|
def _showDetailedReport(self):
|
||||||
self.dialog.exec_()
|
self.dialog.exec()
|
||||||
|
|
||||||
def _createDialog(self):
|
def _createDialog(self):
|
||||||
"""Creates a modal dialog."""
|
"""Creates a modal dialog."""
|
||||||
@ -409,12 +409,12 @@ class CrashHandler:
|
|||||||
|
|
||||||
def _buttonsWidget(self):
|
def _buttonsWidget(self):
|
||||||
buttons = QDialogButtonBox()
|
buttons = QDialogButtonBox()
|
||||||
buttons.addButton(QDialogButtonBox.Close)
|
buttons.addButton(QDialogButtonBox.StandardButton.Close)
|
||||||
# Like above, this will be served as a separate detailed report dialog if the application has not yet been
|
# Like above, this will be served as a separate detailed report dialog if the application has not yet been
|
||||||
# fully loaded. In this case, "send report" will be a check box in the early crash dialog, so there is no
|
# fully loaded. In this case, "send report" will be a check box in the early crash dialog, so there is no
|
||||||
# need for this extra button.
|
# need for this extra button.
|
||||||
if self.has_started:
|
if self.has_started:
|
||||||
buttons.addButton(catalog.i18nc("@action:button", "Send report"), QDialogButtonBox.AcceptRole)
|
buttons.addButton(catalog.i18nc("@action:button", "Send report"), QDialogButtonBox.ButtonRole.AcceptRole)
|
||||||
buttons.accepted.connect(self._sendCrashReport)
|
buttons.accepted.connect(self._sendCrashReport)
|
||||||
buttons.rejected.connect(self.dialog.close)
|
buttons.rejected.connect(self.dialog.close)
|
||||||
|
|
||||||
@ -449,5 +449,5 @@ class CrashHandler:
|
|||||||
def _show(self):
|
def _show(self):
|
||||||
# When the exception is in the skip_exception_types list, the dialog is not created, so we don't need to show it
|
# When the exception is in the skip_exception_types list, the dialog is not created, so we don't need to show it
|
||||||
if self.dialog:
|
if self.dialog:
|
||||||
self.dialog.exec_()
|
self.dialog.exec()
|
||||||
os._exit(1)
|
os._exit(1)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, QUrl
|
from PyQt6.QtCore import QObject, QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt6.QtGui import QDesktopServices
|
||||||
from typing import List, cast
|
from typing import List, cast
|
||||||
|
|
||||||
from UM.Event import CallFunctionEvent
|
from UM.Event import CallFunctionEvent
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
import enum
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
@ -8,10 +8,10 @@ import time
|
|||||||
from typing import cast, TYPE_CHECKING, Optional, Callable, List, Any, Dict
|
from typing import cast, TYPE_CHECKING, Optional, Callable, List, Any, Dict
|
||||||
|
|
||||||
import numpy
|
import numpy
|
||||||
from PyQt5.QtCore import QObject, QTimer, QUrl, pyqtSignal, pyqtProperty, QEvent, Q_ENUMS
|
from PyQt6.QtCore import QObject, QTimer, QUrl, pyqtSignal, pyqtProperty, QEvent, pyqtEnum
|
||||||
from PyQt5.QtGui import QColor, QIcon
|
from PyQt6.QtGui import QColor, QIcon
|
||||||
from PyQt5.QtQml import qmlRegisterUncreatableType, qmlRegisterSingletonType, qmlRegisterType
|
from PyQt6.QtQml import qmlRegisterUncreatableType, qmlRegisterUncreatableMetaObject, qmlRegisterSingletonType, qmlRegisterType
|
||||||
from PyQt5.QtWidgets import QMessageBox
|
from PyQt6.QtWidgets import QMessageBox
|
||||||
|
|
||||||
import UM.Util
|
import UM.Util
|
||||||
import cura.Settings.cura_empty_instance_containers
|
import cura.Settings.cura_empty_instance_containers
|
||||||
@ -133,7 +133,7 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
Created = False
|
Created = False
|
||||||
|
|
||||||
class ResourceTypes:
|
class ResourceTypes(enum.IntEnum):
|
||||||
QmlFiles = Resources.UserType + 1
|
QmlFiles = Resources.UserType + 1
|
||||||
Firmware = Resources.UserType + 2
|
Firmware = Resources.UserType + 2
|
||||||
QualityInstanceContainer = Resources.UserType + 3
|
QualityInstanceContainer = Resources.UserType + 3
|
||||||
@ -147,7 +147,7 @@ class CuraApplication(QtApplication):
|
|||||||
SettingVisibilityPreset = Resources.UserType + 11
|
SettingVisibilityPreset = Resources.UserType + 11
|
||||||
IntentInstanceContainer = Resources.UserType + 12
|
IntentInstanceContainer = Resources.UserType + 12
|
||||||
|
|
||||||
Q_ENUMS(ResourceTypes)
|
pyqtEnum(ResourceTypes)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(name = ApplicationMetadata.CuraAppName,
|
super().__init__(name = ApplicationMetadata.CuraAppName,
|
||||||
@ -682,8 +682,8 @@ class CuraApplication(QtApplication):
|
|||||||
def messageBox(self, title, text,
|
def messageBox(self, title, text,
|
||||||
informativeText = "",
|
informativeText = "",
|
||||||
detailedText = "",
|
detailedText = "",
|
||||||
buttons = QMessageBox.Ok,
|
buttons = QMessageBox.StandardButton.Ok,
|
||||||
icon = QMessageBox.NoIcon,
|
icon = QMessageBox.Icon.NoIcon,
|
||||||
callback = None,
|
callback = None,
|
||||||
callback_arguments = []
|
callback_arguments = []
|
||||||
):
|
):
|
||||||
@ -870,7 +870,7 @@ class CuraApplication(QtApplication):
|
|||||||
self._auto_save = AutoSave(self)
|
self._auto_save = AutoSave(self)
|
||||||
self._auto_save.initialize()
|
self._auto_save.initialize()
|
||||||
|
|
||||||
self.exec_()
|
self.exec()
|
||||||
|
|
||||||
def __setUpSingleInstanceServer(self):
|
def __setUpSingleInstanceServer(self):
|
||||||
if self._use_single_instance:
|
if self._use_single_instance:
|
||||||
@ -1087,7 +1087,7 @@ class CuraApplication(QtApplication):
|
|||||||
def event(self, event):
|
def event(self, event):
|
||||||
"""Handle Qt events"""
|
"""Handle Qt events"""
|
||||||
|
|
||||||
if event.type() == QEvent.FileOpen:
|
if event.type() == QEvent.Type.FileOpen:
|
||||||
if self._plugins_loaded:
|
if self._plugins_loaded:
|
||||||
self._openFile(event.file())
|
self._openFile(event.file())
|
||||||
else:
|
else:
|
||||||
@ -1133,16 +1133,16 @@ class CuraApplication(QtApplication):
|
|||||||
engine.rootContext().setContextProperty("CuraSDKVersion", ApplicationMetadata.CuraSDKVersion)
|
engine.rootContext().setContextProperty("CuraSDKVersion", ApplicationMetadata.CuraSDKVersion)
|
||||||
|
|
||||||
self.processEvents()
|
self.processEvents()
|
||||||
qmlRegisterUncreatableType(CuraApplication, "Cura", 1, 0, "ResourceTypes", "Just an Enum type")
|
qmlRegisterUncreatableMetaObject(CuraApplication.staticMetaObject, "Cura", 1, 0, "ResourceTypes", "ResourceTypes is an enum-only type")
|
||||||
|
|
||||||
self.processEvents()
|
self.processEvents()
|
||||||
qmlRegisterSingletonType(CuraSceneController, "Cura", 1, 0, "SceneController", self.getCuraSceneController)
|
qmlRegisterSingletonType(CuraSceneController, "Cura", 1, 0, self.getCuraSceneController, "SceneController")
|
||||||
qmlRegisterSingletonType(ExtruderManager, "Cura", 1, 0, "ExtruderManager", self.getExtruderManager)
|
qmlRegisterSingletonType(ExtruderManager, "Cura", 1, 0, self.getExtruderManager, "ExtruderManager")
|
||||||
qmlRegisterSingletonType(MachineManager, "Cura", 1, 0, "MachineManager", self.getMachineManager)
|
qmlRegisterSingletonType(MachineManager, "Cura", 1, 0, self.getMachineManager, "MachineManager")
|
||||||
qmlRegisterSingletonType(IntentManager, "Cura", 1, 6, "IntentManager", self.getIntentManager)
|
qmlRegisterSingletonType(IntentManager, "Cura", 1, 6, self.getIntentManager, "IntentManager")
|
||||||
qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, "SettingInheritanceManager", self.getSettingInheritanceManager)
|
qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, self.getSettingInheritanceManager, "SettingInheritanceManager")
|
||||||
qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 0, "SimpleModeSettingsManager", self.getSimpleModeSettingsManager)
|
qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 0, self.getSimpleModeSettingsManager, "SimpleModeSettingsManager")
|
||||||
qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager)
|
qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, self.getMachineActionManager, "MachineActionManager")
|
||||||
|
|
||||||
self.processEvents()
|
self.processEvents()
|
||||||
qmlRegisterType(NetworkingUtil, "Cura", 1, 5, "NetworkingUtil")
|
qmlRegisterType(NetworkingUtil, "Cura", 1, 5, "NetworkingUtil")
|
||||||
@ -1165,16 +1165,16 @@ class CuraApplication(QtApplication):
|
|||||||
qmlRegisterType(FavoriteMaterialsModel, "Cura", 1, 0, "FavoriteMaterialsModel")
|
qmlRegisterType(FavoriteMaterialsModel, "Cura", 1, 0, "FavoriteMaterialsModel")
|
||||||
qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel")
|
qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel")
|
||||||
qmlRegisterType(MaterialBrandsModel, "Cura", 1, 0, "MaterialBrandsModel")
|
qmlRegisterType(MaterialBrandsModel, "Cura", 1, 0, "MaterialBrandsModel")
|
||||||
qmlRegisterSingletonType(QualityManagementModel, "Cura", 1, 0, "QualityManagementModel", self.getQualityManagementModel)
|
qmlRegisterSingletonType(QualityManagementModel, "Cura", 1, 0, self.getQualityManagementModel, "QualityManagementModel")
|
||||||
qmlRegisterSingletonType(MaterialManagementModel, "Cura", 1, 5, "MaterialManagementModel", self.getMaterialManagementModel)
|
qmlRegisterSingletonType(MaterialManagementModel, "Cura", 1, 5, self.getMaterialManagementModel, "MaterialManagementModel")
|
||||||
|
|
||||||
self.processEvents()
|
self.processEvents()
|
||||||
qmlRegisterType(DiscoveredPrintersModel, "Cura", 1, 0, "DiscoveredPrintersModel")
|
qmlRegisterType(DiscoveredPrintersModel, "Cura", 1, 0, "DiscoveredPrintersModel")
|
||||||
qmlRegisterType(DiscoveredCloudPrintersModel, "Cura", 1, 7, "DiscoveredCloudPrintersModel")
|
qmlRegisterType(DiscoveredCloudPrintersModel, "Cura", 1, 7, "DiscoveredCloudPrintersModel")
|
||||||
qmlRegisterSingletonType(QualityProfilesDropDownMenuModel, "Cura", 1, 0,
|
qmlRegisterSingletonType(QualityProfilesDropDownMenuModel, "Cura", 1, 0,
|
||||||
"QualityProfilesDropDownMenuModel", self.getQualityProfilesDropDownMenuModel)
|
self.getQualityProfilesDropDownMenuModel, "QualityProfilesDropDownMenuModel")
|
||||||
qmlRegisterSingletonType(CustomQualityProfilesDropDownMenuModel, "Cura", 1, 0,
|
qmlRegisterSingletonType(CustomQualityProfilesDropDownMenuModel, "Cura", 1, 0,
|
||||||
"CustomQualityProfilesDropDownMenuModel", self.getCustomQualityProfilesDropDownMenuModel)
|
self.getCustomQualityProfilesDropDownMenuModel, "CustomQualityProfilesDropDownMenuModel")
|
||||||
qmlRegisterType(NozzleModel, "Cura", 1, 0, "NozzleModel")
|
qmlRegisterType(NozzleModel, "Cura", 1, 0, "NozzleModel")
|
||||||
qmlRegisterType(IntentModel, "Cura", 1, 6, "IntentModel")
|
qmlRegisterType(IntentModel, "Cura", 1, 6, "IntentModel")
|
||||||
qmlRegisterType(IntentCategoryModel, "Cura", 1, 6, "IntentCategoryModel")
|
qmlRegisterType(IntentCategoryModel, "Cura", 1, 6, "IntentCategoryModel")
|
||||||
@ -1186,14 +1186,14 @@ class CuraApplication(QtApplication):
|
|||||||
qmlRegisterType(FirstStartMachineActionsModel, "Cura", 1, 0, "FirstStartMachineActionsModel")
|
qmlRegisterType(FirstStartMachineActionsModel, "Cura", 1, 0, "FirstStartMachineActionsModel")
|
||||||
qmlRegisterType(MachineNameValidator, "Cura", 1, 0, "MachineNameValidator")
|
qmlRegisterType(MachineNameValidator, "Cura", 1, 0, "MachineNameValidator")
|
||||||
qmlRegisterType(UserChangesModel, "Cura", 1, 0, "UserChangesModel")
|
qmlRegisterType(UserChangesModel, "Cura", 1, 0, "UserChangesModel")
|
||||||
qmlRegisterSingletonType(ContainerManager, "Cura", 1, 0, "ContainerManager", ContainerManager.getInstance)
|
qmlRegisterSingletonType(ContainerManager, "Cura", 1, 0, ContainerManager.getInstance, "ContainerManager")
|
||||||
qmlRegisterType(SidebarCustomMenuItemsModel, "Cura", 1, 0, "SidebarCustomMenuItemsModel")
|
qmlRegisterType(SidebarCustomMenuItemsModel, "Cura", 1, 0, "SidebarCustomMenuItemsModel")
|
||||||
|
|
||||||
qmlRegisterType(PrinterOutputDevice, "Cura", 1, 0, "PrinterOutputDevice")
|
qmlRegisterType(PrinterOutputDevice, "Cura", 1, 0, "PrinterOutputDevice")
|
||||||
|
|
||||||
from cura.API import CuraAPI
|
from cura.API import CuraAPI
|
||||||
qmlRegisterSingletonType(CuraAPI, "Cura", 1, 1, "API", self.getCuraAPI)
|
qmlRegisterSingletonType(CuraAPI, "Cura", 1, 1, self.getCuraAPI, "API")
|
||||||
qmlRegisterUncreatableType(Account, "Cura", 1, 0, "AccountSyncState", "Could not create AccountSyncState")
|
qmlRegisterUncreatableMetaObject(CuraApplication.staticMetaObject, "Cura", 1, 0, "AccountSyncState", "AccountSyncState is an enum-only type")
|
||||||
|
|
||||||
# As of Qt5.7, it is necessary to get rid of any ".." in the path for the singleton to work.
|
# As of Qt5.7, it is necessary to get rid of any ".." in the path for the singleton to work.
|
||||||
actions_url = QUrl.fromLocalFile(os.path.abspath(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles, "Actions.qml")))
|
actions_url = QUrl.fromLocalFile(os.path.abspath(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles, "Actions.qml")))
|
||||||
|
@ -11,7 +11,7 @@ from UM.Resources import Resources #To find storage paths for some resource type
|
|||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from UM.Qt.QtApplication import QtApplication
|
from UM.Qt.QtApplication import QtApplication
|
||||||
from PyQt5.QtCore import QObject
|
from PyQt6.QtCore import QObject
|
||||||
|
|
||||||
|
|
||||||
class CuraPackageManager(PackageManager):
|
class CuraPackageManager(PackageManager):
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, QUrl
|
from PyQt6.QtCore import pyqtProperty, QUrl
|
||||||
|
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.View.View import View
|
from UM.View.View import View
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import os
|
import os
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, QUrl, pyqtSlot, pyqtProperty, pyqtSignal
|
from PyQt6.QtCore import QObject, QUrl, pyqtSlot, pyqtProperty, pyqtSignal
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.PluginObject import PluginObject
|
from UM.PluginObject import PluginObject
|
||||||
|
@ -5,7 +5,7 @@ import time
|
|||||||
|
|
||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, QTimer, pyqtSignal, pyqtProperty
|
from PyQt6.QtCore import QObject, QTimer, pyqtSignal, pyqtProperty
|
||||||
from typing import Optional, Any, Set
|
from typing import Optional, Any, Set
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -129,7 +129,7 @@ class MachineNode(ContainerNode):
|
|||||||
if name not in groups_by_name:
|
if name not in groups_by_name:
|
||||||
# CURA-6599
|
# CURA-6599
|
||||||
# For some reason, QML will get null or fail to convert type for MachineManager.activeQualityChangesGroup() to
|
# For some reason, QML will get null or fail to convert type for MachineManager.activeQualityChangesGroup() to
|
||||||
# a QObject. Setting the object ownership to QQmlEngine.CppOwnership doesn't work, but setting the object
|
# a QObject. Setting the object ownership to QQmlEngine.ObjectOwnership.CppOwnership doesn't work, but setting the object
|
||||||
# parent to application seems to work.
|
# parent to application seems to work.
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
groups_by_name[name] = QualityChangesGroup(name, quality_type = quality_changes["quality_type"],
|
groups_by_name[name] = QualityChangesGroup(name, quality_type = quality_changes["quality_type"],
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Dict, Set
|
from typing import Dict, Set
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, QTimer, pyqtSignal, pyqtProperty
|
from PyQt6.QtCore import Qt, QTimer, pyqtSignal, pyqtProperty
|
||||||
|
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -61,22 +61,22 @@ class BaseMaterialsModel(ListModel):
|
|||||||
ContainerTree.getInstance().materialsChanged.connect(self._materialsListChanged)
|
ContainerTree.getInstance().materialsChanged.connect(self._materialsListChanged)
|
||||||
self._application.getMaterialManagementModel().favoritesChanged.connect(self._onChanged)
|
self._application.getMaterialManagementModel().favoritesChanged.connect(self._onChanged)
|
||||||
|
|
||||||
self.addRoleName(Qt.UserRole + 1, "root_material_id")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 1, "root_material_id")
|
||||||
self.addRoleName(Qt.UserRole + 2, "id")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 2, "id")
|
||||||
self.addRoleName(Qt.UserRole + 3, "GUID")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 3, "GUID")
|
||||||
self.addRoleName(Qt.UserRole + 4, "name")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 4, "name")
|
||||||
self.addRoleName(Qt.UserRole + 5, "brand")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 5, "brand")
|
||||||
self.addRoleName(Qt.UserRole + 6, "description")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 6, "description")
|
||||||
self.addRoleName(Qt.UserRole + 7, "material")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 7, "material")
|
||||||
self.addRoleName(Qt.UserRole + 8, "color_name")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 8, "color_name")
|
||||||
self.addRoleName(Qt.UserRole + 9, "color_code")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 9, "color_code")
|
||||||
self.addRoleName(Qt.UserRole + 10, "density")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 10, "density")
|
||||||
self.addRoleName(Qt.UserRole + 11, "diameter")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 11, "diameter")
|
||||||
self.addRoleName(Qt.UserRole + 12, "approximate_diameter")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 12, "approximate_diameter")
|
||||||
self.addRoleName(Qt.UserRole + 13, "adhesion_info")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 13, "adhesion_info")
|
||||||
self.addRoleName(Qt.UserRole + 14, "is_read_only")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 14, "is_read_only")
|
||||||
self.addRoleName(Qt.UserRole + 15, "container_node")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 15, "container_node")
|
||||||
self.addRoleName(Qt.UserRole + 16, "is_favorite")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 16, "is_favorite")
|
||||||
|
|
||||||
def _onChanged(self) -> None:
|
def _onChanged(self) -> None:
|
||||||
self._update_timer.start()
|
self._update_timer.start()
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt6.QtCore import Qt
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
|
|
||||||
|
|
||||||
class BuildPlateModel(ListModel):
|
class BuildPlateModel(ListModel):
|
||||||
NameRole = Qt.UserRole + 1
|
NameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
ContainerNodeRole = Qt.UserRole + 2
|
ContainerNodeRole = Qt.ItemDataRole.UserRole + 2
|
||||||
|
|
||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -10,7 +10,7 @@ from cura.Machines.ContainerTree import ContainerTree
|
|||||||
from cura.Machines.Models.QualityProfilesDropDownMenuModel import QualityProfilesDropDownMenuModel
|
from cura.Machines.Models.QualityProfilesDropDownMenuModel import QualityProfilesDropDownMenuModel
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from PyQt5.QtCore import QObject
|
from PyQt6.QtCore import QObject
|
||||||
from UM.Settings.Interfaces import ContainerInterface
|
from UM.Settings.Interfaces import ContainerInterface
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from typing import Optional, TYPE_CHECKING, List, Dict
|
from typing import Optional, TYPE_CHECKING, List, Dict
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSlot, Qt, pyqtSignal, pyqtProperty
|
from PyQt6.QtCore import QObject, pyqtSlot, Qt, pyqtSignal, pyqtProperty
|
||||||
|
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
|
|
||||||
@ -12,10 +12,10 @@ class DiscoveredCloudPrintersModel(ListModel):
|
|||||||
"""Model used to inform the application about newly added cloud printers, which are discovered from the user's
|
"""Model used to inform the application about newly added cloud printers, which are discovered from the user's
|
||||||
account """
|
account """
|
||||||
|
|
||||||
DeviceKeyRole = Qt.UserRole + 1
|
DeviceKeyRole = Qt.ItemDataRole.UserRole + 1
|
||||||
DeviceNameRole = Qt.UserRole + 2
|
DeviceNameRole = Qt.ItemDataRole.UserRole + 2
|
||||||
DeviceTypeRole = Qt.UserRole + 3
|
DeviceTypeRole = Qt.ItemDataRole.UserRole + 3
|
||||||
DeviceFirmwareVersionRole = Qt.UserRole + 4
|
DeviceFirmwareVersionRole = Qt.ItemDataRole.UserRole + 4
|
||||||
|
|
||||||
cloudPrintersDetectedChanged = pyqtSignal(bool)
|
cloudPrintersDetectedChanged = pyqtSignal(bool)
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Callable, Dict, List, Optional, TYPE_CHECKING
|
from typing import Callable, Dict, List, Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSlot, pyqtProperty, pyqtSignal, QObject, QTimer
|
from PyQt6.QtCore import pyqtSlot, pyqtProperty, pyqtSignal, QObject, QTimer
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal, pyqtProperty, QTimer
|
from PyQt6.QtCore import Qt, pyqtSignal, pyqtProperty, QTimer
|
||||||
from typing import Iterable, TYPE_CHECKING
|
from typing import Iterable, TYPE_CHECKING
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
@ -23,43 +23,43 @@ class ExtrudersModel(ListModel):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# The ID of the container stack for the extruder.
|
# The ID of the container stack for the extruder.
|
||||||
IdRole = Qt.UserRole + 1
|
IdRole = Qt.ItemDataRole.UserRole + 1
|
||||||
|
|
||||||
NameRole = Qt.UserRole + 2
|
NameRole = Qt.ItemDataRole.UserRole + 2
|
||||||
"""Human-readable name of the extruder."""
|
"""Human-readable name of the extruder."""
|
||||||
|
|
||||||
ColorRole = Qt.UserRole + 3
|
ColorRole = Qt.ItemDataRole.UserRole + 3
|
||||||
"""Colour of the material loaded in the extruder."""
|
"""Colour of the material loaded in the extruder."""
|
||||||
|
|
||||||
IndexRole = Qt.UserRole + 4
|
IndexRole = Qt.ItemDataRole.UserRole + 4
|
||||||
"""Index of the extruder, which is also the value of the setting itself.
|
"""Index of the extruder, which is also the value of the setting itself.
|
||||||
|
|
||||||
An index of 0 indicates the first extruder, an index of 1 the second one, and so on. This is the value that will
|
An index of 0 indicates the first extruder, an index of 1 the second one, and so on. This is the value that will
|
||||||
be saved in instance containers. """
|
be saved in instance containers. """
|
||||||
|
|
||||||
# The ID of the definition of the extruder.
|
# The ID of the definition of the extruder.
|
||||||
DefinitionRole = Qt.UserRole + 5
|
DefinitionRole = Qt.ItemDataRole.UserRole + 5
|
||||||
|
|
||||||
# The material of the extruder.
|
# The material of the extruder.
|
||||||
MaterialRole = Qt.UserRole + 6
|
MaterialRole = Qt.ItemDataRole.UserRole + 6
|
||||||
|
|
||||||
# The variant of the extruder.
|
# The variant of the extruder.
|
||||||
VariantRole = Qt.UserRole + 7
|
VariantRole = Qt.ItemDataRole.UserRole + 7
|
||||||
StackRole = Qt.UserRole + 8
|
StackRole = Qt.ItemDataRole.UserRole + 8
|
||||||
|
|
||||||
MaterialBrandRole = Qt.UserRole + 9
|
MaterialBrandRole = Qt.ItemDataRole.UserRole + 9
|
||||||
ColorNameRole = Qt.UserRole + 10
|
ColorNameRole = Qt.ItemDataRole.UserRole + 10
|
||||||
|
|
||||||
EnabledRole = Qt.UserRole + 11
|
EnabledRole = Qt.ItemDataRole.UserRole + 11
|
||||||
"""Is the extruder enabled?"""
|
"""Is the extruder enabled?"""
|
||||||
|
|
||||||
MaterialTypeRole = Qt.UserRole + 12
|
MaterialTypeRole = Qt.ItemDataRole.UserRole + 12
|
||||||
"""The type of the material (e.g. PLA, ABS, PETG, etc.)."""
|
"""The type of the material (e.g. PLA, ABS, PETG, etc.)."""
|
||||||
|
|
||||||
defaultColors = ["#ffc924", "#86ec21", "#22eeee", "#245bff", "#9124ff", "#ff24c8"]
|
defaultColors = ["#ffc924", "#86ec21", "#22eeee", "#245bff", "#9124ff", "#ff24c8"]
|
||||||
"""List of colours to display if there is no material or the material has no known colour. """
|
"""List of colours to display if there is no material or the material has no known colour. """
|
||||||
|
|
||||||
MaterialNameRole = Qt.UserRole + 13
|
MaterialNameRole = Qt.ItemDataRole.UserRole + 13
|
||||||
|
|
||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
"""Initialises the extruders model, defining the roles and listening for changes in the data.
|
"""Initialises the extruders model, defining the roles and listening for changes in the data.
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Optional, Dict, Any, TYPE_CHECKING
|
from typing import Optional, Dict, Any, TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot
|
from PyQt6.QtCore import QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot
|
||||||
|
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
|
|
||||||
@ -19,9 +19,9 @@ class FirstStartMachineActionsModel(ListModel):
|
|||||||
- action : the MachineAction object itself
|
- action : the MachineAction object itself
|
||||||
"""
|
"""
|
||||||
|
|
||||||
TitleRole = Qt.UserRole + 1
|
TitleRole = Qt.ItemDataRole.UserRole + 1
|
||||||
ContentRole = Qt.UserRole + 2
|
ContentRole = Qt.ItemDataRole.UserRole + 2
|
||||||
ActionRole = Qt.UserRole + 3
|
ActionRole = Qt.ItemDataRole.UserRole + 3
|
||||||
|
|
||||||
def __init__(self, application: "CuraApplication", parent: Optional[QObject] = None) -> None:
|
def __init__(self, application: "CuraApplication", parent: Optional[QObject] = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, QTimer, pyqtProperty, pyqtSignal
|
from PyQt6.QtCore import Qt, QTimer, pyqtProperty, pyqtSignal
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
@ -15,14 +15,14 @@ from cura.UltimakerCloud.UltimakerCloudConstants import META_CAPABILITIES # To
|
|||||||
|
|
||||||
|
|
||||||
class GlobalStacksModel(ListModel):
|
class GlobalStacksModel(ListModel):
|
||||||
NameRole = Qt.UserRole + 1
|
NameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
IdRole = Qt.UserRole + 2
|
IdRole = Qt.ItemDataRole.UserRole + 2
|
||||||
HasRemoteConnectionRole = Qt.UserRole + 3
|
HasRemoteConnectionRole = Qt.ItemDataRole.UserRole + 3
|
||||||
ConnectionTypeRole = Qt.UserRole + 4
|
ConnectionTypeRole = Qt.ItemDataRole.UserRole + 4
|
||||||
MetaDataRole = Qt.UserRole + 5
|
MetaDataRole = Qt.ItemDataRole.UserRole + 5
|
||||||
DiscoverySourceRole = Qt.UserRole + 6 # For separating local and remote printers in the machine management page
|
DiscoverySourceRole = Qt.ItemDataRole.UserRole + 6 # For separating local and remote printers in the machine management page
|
||||||
RemovalWarningRole = Qt.UserRole + 7
|
RemovalWarningRole = Qt.ItemDataRole.UserRole + 7
|
||||||
IsOnlineRole = Qt.UserRole + 8
|
IsOnlineRole = Qt.ItemDataRole.UserRole + 8
|
||||||
|
|
||||||
def __init__(self, parent = None) -> None:
|
def __init__(self, parent = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
#Cura is released under the terms of the LGPLv3 or higher.
|
#Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
from PyQt5.QtCore import Qt, QTimer
|
from PyQt6.QtCore import Qt, QTimer
|
||||||
from typing import TYPE_CHECKING, Optional, Dict
|
from typing import TYPE_CHECKING, Optional, Dict
|
||||||
|
|
||||||
from cura.Machines.Models.IntentModel import IntentModel
|
from cura.Machines.Models.IntentModel import IntentModel
|
||||||
from cura.Settings.IntentManager import IntentManager
|
from cura.Settings.IntentManager import IntentManager
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
from UM.Settings.ContainerRegistry import ContainerRegistry #To update the list if anything changes.
|
from UM.Settings.ContainerRegistry import ContainerRegistry #To update the list if anything changes.
|
||||||
from PyQt5.QtCore import pyqtSignal
|
from PyQt6.QtCore import pyqtSignal
|
||||||
import cura.CuraApplication
|
import cura.CuraApplication
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from UM.Settings.ContainerRegistry import ContainerInterface
|
from UM.Settings.ContainerRegistry import ContainerInterface
|
||||||
@ -21,11 +21,11 @@ catalog = i18nCatalog("cura")
|
|||||||
class IntentCategoryModel(ListModel):
|
class IntentCategoryModel(ListModel):
|
||||||
"""Lists the intent categories that are available for the current printer configuration. """
|
"""Lists the intent categories that are available for the current printer configuration. """
|
||||||
|
|
||||||
NameRole = Qt.UserRole + 1
|
NameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
IntentCategoryRole = Qt.UserRole + 2
|
IntentCategoryRole = Qt.ItemDataRole.UserRole + 2
|
||||||
WeightRole = Qt.UserRole + 3
|
WeightRole = Qt.ItemDataRole.UserRole + 3
|
||||||
QualitiesRole = Qt.UserRole + 4
|
QualitiesRole = Qt.ItemDataRole.UserRole + 4
|
||||||
DescriptionRole = Qt.UserRole + 5
|
DescriptionRole = Qt.ItemDataRole.UserRole + 5
|
||||||
|
|
||||||
modelUpdated = pyqtSignal()
|
modelUpdated = pyqtSignal()
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
from typing import Optional, Dict, Any, Set, List
|
from typing import Optional, Dict, Any, Set, List
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, QObject, pyqtProperty, pyqtSignal, QTimer
|
from PyQt6.QtCore import Qt, QObject, pyqtProperty, pyqtSignal, QTimer
|
||||||
|
|
||||||
import cura.CuraApplication
|
import cura.CuraApplication
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
@ -15,11 +15,11 @@ from cura.Machines.QualityGroup import QualityGroup
|
|||||||
|
|
||||||
|
|
||||||
class IntentModel(ListModel):
|
class IntentModel(ListModel):
|
||||||
NameRole = Qt.UserRole + 1
|
NameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
QualityTypeRole = Qt.UserRole + 2
|
QualityTypeRole = Qt.ItemDataRole.UserRole + 2
|
||||||
LayerHeightRole = Qt.UserRole + 3
|
LayerHeightRole = Qt.ItemDataRole.UserRole + 3
|
||||||
AvailableRole = Qt.UserRole + 4
|
AvailableRole = Qt.ItemDataRole.UserRole + 4
|
||||||
IntentRole = Qt.UserRole + 5
|
IntentRole = Qt.ItemDataRole.UserRole + 5
|
||||||
|
|
||||||
def __init__(self, parent: Optional[QObject] = None) -> None:
|
def __init__(self, parent: Optional[QObject] = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt6.QtCore import Qt, pyqtSignal
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
from cura.Machines.Models.BaseMaterialsModel import BaseMaterialsModel
|
from cura.Machines.Models.BaseMaterialsModel import BaseMaterialsModel
|
||||||
|
|
||||||
@ -10,9 +10,9 @@ class MaterialTypesModel(ListModel):
|
|||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
|
||||||
self.addRoleName(Qt.UserRole + 1, "name")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 1, "name")
|
||||||
self.addRoleName(Qt.UserRole + 2, "brand")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 2, "brand")
|
||||||
self.addRoleName(Qt.UserRole + 3, "colors")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 3, "colors")
|
||||||
|
|
||||||
class MaterialBrandsModel(BaseMaterialsModel):
|
class MaterialBrandsModel(BaseMaterialsModel):
|
||||||
|
|
||||||
@ -21,8 +21,8 @@ class MaterialBrandsModel(BaseMaterialsModel):
|
|||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
|
||||||
self.addRoleName(Qt.UserRole + 1, "name")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 1, "name")
|
||||||
self.addRoleName(Qt.UserRole + 2, "material_types")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 2, "material_types")
|
||||||
|
|
||||||
self._update()
|
self._update()
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import copy # To duplicate materials.
|
import copy # To duplicate materials.
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QUrl
|
from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt6.QtGui import QDesktopServices
|
||||||
from typing import Any, Dict, Optional, TYPE_CHECKING
|
from typing import Any, Dict, Optional, TYPE_CHECKING
|
||||||
import uuid # To generate new GUIDs for new materials.
|
import uuid # To generate new GUIDs for new materials.
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QTimer, pyqtSignal, pyqtProperty
|
from PyQt6.QtCore import QTimer, pyqtSignal, pyqtProperty
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Scene.Camera import Camera
|
from UM.Scene.Camera import Camera
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt6.QtCore import Qt
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
@ -10,9 +10,9 @@ from cura.Machines.ContainerTree import ContainerTree
|
|||||||
|
|
||||||
|
|
||||||
class NozzleModel(ListModel):
|
class NozzleModel(ListModel):
|
||||||
IdRole = Qt.UserRole + 1
|
IdRole = Qt.ItemDataRole.UserRole + 1
|
||||||
HotendNameRole = Qt.UserRole + 2
|
HotendNameRole = Qt.ItemDataRole.UserRole + 2
|
||||||
ContainerNodeRole = Qt.UserRole + 3
|
ContainerNodeRole = Qt.ItemDataRole.UserRole + 3
|
||||||
|
|
||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from typing import Any, cast, Dict, Optional, TYPE_CHECKING
|
from typing import Any, cast, Dict, Optional, TYPE_CHECKING
|
||||||
from PyQt5.QtCore import pyqtSlot, QObject, Qt, QTimer
|
from PyQt6.QtCore import pyqtSlot, QObject, Qt, QTimer
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
@ -29,13 +29,13 @@ if TYPE_CHECKING:
|
|||||||
class QualityManagementModel(ListModel):
|
class QualityManagementModel(ListModel):
|
||||||
"""This the QML model for the quality management page."""
|
"""This the QML model for the quality management page."""
|
||||||
|
|
||||||
NameRole = Qt.UserRole + 1
|
NameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
IsReadOnlyRole = Qt.UserRole + 2
|
IsReadOnlyRole = Qt.ItemDataRole.UserRole + 2
|
||||||
QualityGroupRole = Qt.UserRole + 3
|
QualityGroupRole = Qt.ItemDataRole.UserRole + 3
|
||||||
QualityTypeRole = Qt.UserRole + 4
|
QualityTypeRole = Qt.ItemDataRole.UserRole + 4
|
||||||
QualityChangesGroupRole = Qt.UserRole + 5
|
QualityChangesGroupRole = Qt.ItemDataRole.UserRole + 5
|
||||||
IntentCategoryRole = Qt.UserRole + 6
|
IntentCategoryRole = Qt.ItemDataRole.UserRole + 6
|
||||||
SectionNameRole = Qt.UserRole + 7
|
SectionNameRole = Qt.ItemDataRole.UserRole + 7
|
||||||
|
|
||||||
def __init__(self, parent: Optional["QObject"] = None) -> None:
|
def __init__(self, parent: Optional["QObject"] = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, QTimer
|
from PyQt6.QtCore import Qt, QTimer
|
||||||
|
|
||||||
import cura.CuraApplication # Imported this way to prevent circular dependencies.
|
import cura.CuraApplication # Imported this way to prevent circular dependencies.
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -13,14 +13,14 @@ from cura.Machines.Models.MachineModelUtils import fetchLayerHeight
|
|||||||
class QualityProfilesDropDownMenuModel(ListModel):
|
class QualityProfilesDropDownMenuModel(ListModel):
|
||||||
"""QML Model for all built-in quality profiles. This model is used for the drop-down quality menu."""
|
"""QML Model for all built-in quality profiles. This model is used for the drop-down quality menu."""
|
||||||
|
|
||||||
NameRole = Qt.UserRole + 1
|
NameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
QualityTypeRole = Qt.UserRole + 2
|
QualityTypeRole = Qt.ItemDataRole.UserRole + 2
|
||||||
LayerHeightRole = Qt.UserRole + 3
|
LayerHeightRole = Qt.ItemDataRole.UserRole + 3
|
||||||
LayerHeightUnitRole = Qt.UserRole + 4
|
LayerHeightUnitRole = Qt.ItemDataRole.UserRole + 4
|
||||||
AvailableRole = Qt.UserRole + 5
|
AvailableRole = Qt.ItemDataRole.UserRole + 5
|
||||||
QualityGroupRole = Qt.UserRole + 6
|
QualityGroupRole = Qt.ItemDataRole.UserRole + 6
|
||||||
QualityChangesGroupRole = Qt.UserRole + 7
|
QualityChangesGroupRole = Qt.ItemDataRole.UserRole + 7
|
||||||
IsExperimentalRole = Qt.UserRole + 8
|
IsExperimentalRole = Qt.ItemDataRole.UserRole + 8
|
||||||
|
|
||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2020 Ultimaker B.V.
|
# Copyright (c) 2020 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, Qt
|
from PyQt6.QtCore import pyqtProperty, pyqtSignal, Qt
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
import cura.CuraApplication
|
import cura.CuraApplication
|
||||||
@ -16,13 +16,13 @@ import os
|
|||||||
class QualitySettingsModel(ListModel):
|
class QualitySettingsModel(ListModel):
|
||||||
"""This model is used to show details settings of the selected quality in the quality management page."""
|
"""This model is used to show details settings of the selected quality in the quality management page."""
|
||||||
|
|
||||||
KeyRole = Qt.UserRole + 1
|
KeyRole = Qt.ItemDataRole.UserRole + 1
|
||||||
LabelRole = Qt.UserRole + 2
|
LabelRole = Qt.ItemDataRole.UserRole + 2
|
||||||
UnitRole = Qt.UserRole + 3
|
UnitRole = Qt.ItemDataRole.UserRole + 3
|
||||||
ProfileValueRole = Qt.UserRole + 4
|
ProfileValueRole = Qt.ItemDataRole.UserRole + 4
|
||||||
ProfileValueSourceRole = Qt.UserRole + 5
|
ProfileValueSourceRole = Qt.ItemDataRole.UserRole + 5
|
||||||
UserValueRole = Qt.UserRole + 6
|
UserValueRole = Qt.ItemDataRole.UserRole + 6
|
||||||
CategoryRole = Qt.UserRole + 7
|
CategoryRole = Qt.ItemDataRole.UserRole + 7
|
||||||
|
|
||||||
GLOBAL_STACK_POSITION = -1
|
GLOBAL_STACK_POSITION = -1
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Optional, List
|
from typing import Optional, List
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject
|
from PyQt6.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Preferences import Preferences
|
from UM.Preferences import Preferences
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import os
|
import os
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSlot, Qt
|
from PyQt6.QtCore import pyqtSlot, Qt
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -15,12 +15,12 @@ from UM.Qt.ListModel import ListModel
|
|||||||
|
|
||||||
|
|
||||||
class UserChangesModel(ListModel):
|
class UserChangesModel(ListModel):
|
||||||
KeyRole = Qt.UserRole + 1
|
KeyRole = Qt.ItemDataRole.UserRole + 1
|
||||||
LabelRole = Qt.UserRole + 2
|
LabelRole = Qt.ItemDataRole.UserRole + 2
|
||||||
ExtruderRole = Qt.UserRole + 3
|
ExtruderRole = Qt.ItemDataRole.UserRole + 3
|
||||||
OriginalValueRole = Qt.UserRole + 4
|
OriginalValueRole = Qt.ItemDataRole.UserRole + 4
|
||||||
UserValueRole = Qt.UserRole + 6
|
UserValueRole = Qt.ItemDataRole.UserRole + 6
|
||||||
CategoryRole = Qt.UserRole + 7
|
CategoryRole = Qt.ItemDataRole.UserRole + 7
|
||||||
|
|
||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
super().__init__(parent = parent)
|
super().__init__(parent = parent)
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Any, Dict, Optional
|
from typing import Any, Dict, Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal
|
from PyQt6.QtCore import QObject, pyqtProperty, pyqtSignal
|
||||||
|
|
||||||
|
|
||||||
class QualityChangesGroup(QObject):
|
class QualityChangesGroup(QObject):
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from hashlib import sha512
|
from hashlib import sha512
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt6.QtNetwork import QNetworkReply
|
||||||
import secrets
|
import secrets
|
||||||
from typing import Callable, Optional
|
from typing import Callable, Optional
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
|
@ -6,8 +6,8 @@ from datetime import datetime, timedelta
|
|||||||
from typing import Callable, Dict, Optional, TYPE_CHECKING, Union
|
from typing import Callable, Dict, Optional, TYPE_CHECKING, Union
|
||||||
from urllib.parse import urlencode, quote_plus
|
from urllib.parse import urlencode, quote_plus
|
||||||
|
|
||||||
from PyQt5.QtCore import QUrl
|
from PyQt6.QtCore import QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt6.QtGui import QDesktopServices
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2020 Ultimaker B.V.
|
# Copyright (c) 2020 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt6.QtCore import QTimer
|
||||||
from shapely.errors import TopologicalError # To capture errors if Shapely messes up.
|
from shapely.errors import TopologicalError # To capture errors if Shapely messes up.
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from PyQt5.QtGui import QImage
|
from PyQt6.QtGui import QImage
|
||||||
from PyQt5.QtQuick import QQuickImageProvider
|
from PyQt6.QtQuick import QQuickImageProvider
|
||||||
from PyQt5.QtCore import QSize
|
from PyQt6.QtCore import QSize
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
@ -8,7 +8,7 @@ from typing import Tuple
|
|||||||
|
|
||||||
class PrintJobPreviewImageProvider(QQuickImageProvider):
|
class PrintJobPreviewImageProvider(QQuickImageProvider):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__(QQuickImageProvider.Image)
|
super().__init__(QQuickImageProvider.ImageType.Image)
|
||||||
|
|
||||||
def requestImage(self, id: str, size: QSize) -> Tuple[QImage, QSize]:
|
def requestImage(self, id: str, size: QSize) -> Tuple[QImage, QSize]:
|
||||||
"""Request a new image.
|
"""Request a new image.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, QUrl, pyqtSignal, pyqtProperty
|
from PyQt6.QtCore import QObject, QUrl, pyqtSignal, pyqtProperty
|
||||||
|
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import TYPE_CHECKING, Set, Union, Optional
|
from typing import TYPE_CHECKING, Set, Union, Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt6.QtCore import QTimer
|
||||||
|
|
||||||
from .PrinterOutputController import PrinterOutputController
|
from .PrinterOutputController import PrinterOutputController
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, QObject, pyqtSignal
|
from PyQt6.QtCore import pyqtProperty, QObject, pyqtSignal
|
||||||
|
|
||||||
from .MaterialOutputModel import MaterialOutputModel
|
from .MaterialOutputModel import MaterialOutputModel
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Optional, TYPE_CHECKING
|
from typing import Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, pyqtSlot
|
from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject, pyqtSlot
|
||||||
|
|
||||||
from .ExtruderConfigurationModel import ExtruderConfigurationModel
|
from .ExtruderConfigurationModel import ExtruderConfigurationModel
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, QObject
|
from PyQt6.QtCore import pyqtProperty, QObject
|
||||||
|
|
||||||
|
|
||||||
class MaterialOutputModel(QObject):
|
class MaterialOutputModel(QObject):
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
from typing import Optional, TYPE_CHECKING, List
|
from typing import Optional, TYPE_CHECKING, List
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, pyqtSlot, QUrl
|
from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject, pyqtSlot, QUrl
|
||||||
from PyQt5.QtGui import QImage
|
from PyQt6.QtGui import QImage
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from cura.PrinterOutput.PrinterOutputController import PrinterOutputController
|
from cura.PrinterOutput.PrinterOutputController import PrinterOutputController
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, QObject, pyqtSignal
|
from PyQt6.QtCore import pyqtProperty, QObject, pyqtSignal
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
MYPY = False
|
MYPY = False
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant, pyqtSlot, QUrl
|
from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant, pyqtSlot, QUrl
|
||||||
from typing import List, Dict, Optional, TYPE_CHECKING
|
from typing import List, Dict, Optional, TYPE_CHECKING
|
||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
from cura.PrinterOutput.Peripheral import Peripheral
|
from cura.PrinterOutput.Peripheral import Peripheral
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
# Copyright (c) 2018 Aldo Hoeben / fieldOfView
|
# Copyright (c) 2018 Aldo Hoeben / fieldOfView
|
||||||
# NetworkMJPGImage is released under the terms of the LGPLv3 or higher.
|
# NetworkMJPGImage is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QUrl, pyqtProperty, pyqtSignal, pyqtSlot, QRect, QByteArray
|
from PyQt6.QtCore import QUrl, pyqtProperty, pyqtSignal, pyqtSlot, QRect, QByteArray
|
||||||
from PyQt5.QtGui import QImage, QPainter
|
from PyQt6.QtGui import QImage, QPainter
|
||||||
from PyQt5.QtQuick import QQuickPaintedItem
|
from PyQt6.QtQuick import QQuickPaintedItem
|
||||||
from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply, QNetworkAccessManager
|
from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply, QNetworkAccessManager
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
|
||||||
|
@ -9,8 +9,8 @@ from cura.CuraApplication import CuraApplication
|
|||||||
|
|
||||||
from cura.PrinterOutput.PrinterOutputDevice import PrinterOutputDevice, ConnectionState, ConnectionType
|
from cura.PrinterOutput.PrinterOutputDevice import PrinterOutputDevice, ConnectionState, ConnectionType
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QHttpMultiPart, QHttpPart, QNetworkRequest, QNetworkAccessManager, QNetworkReply, QAuthenticator
|
from PyQt6.QtNetwork import QHttpMultiPart, QHttpPart, QNetworkRequest, QNetworkAccessManager, QNetworkReply, QAuthenticator
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, QUrl, QCoreApplication
|
from PyQt6.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, QUrl, QCoreApplication
|
||||||
from time import time
|
from time import time
|
||||||
from typing import Callable, Dict, List, Optional, Union
|
from typing import Callable, Dict, List, Optional, Union
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
@ -146,8 +146,8 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice):
|
|||||||
url = QUrl("http://" + self._address + self._api_prefix + target)
|
url = QUrl("http://" + self._address + self._api_prefix + target)
|
||||||
request = QNetworkRequest(url)
|
request = QNetworkRequest(url)
|
||||||
if content_type is not None:
|
if content_type is not None:
|
||||||
request.setHeader(QNetworkRequest.ContentTypeHeader, content_type)
|
request.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, content_type)
|
||||||
request.setHeader(QNetworkRequest.UserAgentHeader, self._user_agent)
|
request.setHeader(QNetworkRequest.KnownHeaders.UserAgentHeader, self._user_agent)
|
||||||
return request
|
return request
|
||||||
|
|
||||||
def createFormPart(self, content_header: str, data: bytes, content_type: Optional[str] = None) -> QHttpPart:
|
def createFormPart(self, content_header: str, data: bytes, content_type: Optional[str] = None) -> QHttpPart:
|
||||||
@ -162,10 +162,10 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice):
|
|||||||
|
|
||||||
if not content_header.startswith("form-data;"):
|
if not content_header.startswith("form-data;"):
|
||||||
content_header = "form-data; " + content_header
|
content_header = "form-data; " + content_header
|
||||||
part.setHeader(QNetworkRequest.ContentDispositionHeader, content_header)
|
part.setHeader(QNetworkRequest.KnownHeaders.ContentDispositionHeader, content_header)
|
||||||
|
|
||||||
if content_type is not None:
|
if content_type is not None:
|
||||||
part.setHeader(QNetworkRequest.ContentTypeHeader, content_type)
|
part.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, content_type)
|
||||||
|
|
||||||
part.setBody(data)
|
part.setBody(data)
|
||||||
return part
|
return part
|
||||||
@ -311,7 +311,7 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice):
|
|||||||
|
|
||||||
def postForm(self, target: str, header_data: str, body_data: bytes, on_finished: Optional[Callable[[QNetworkReply], None]], on_progress: Callable = None) -> None:
|
def postForm(self, target: str, header_data: str, body_data: bytes, on_finished: Optional[Callable[[QNetworkReply], None]], on_progress: Callable = None) -> None:
|
||||||
post_part = QHttpPart()
|
post_part = QHttpPart()
|
||||||
post_part.setHeader(QNetworkRequest.ContentDispositionHeader, header_data)
|
post_part.setHeader(QNetworkRequest.KnownHeaders.ContentDispositionHeader, header_data)
|
||||||
post_part.setBody(body_data)
|
post_part.setBody(body_data)
|
||||||
|
|
||||||
self.postFormWithParts(target, [post_part], on_finished, on_progress)
|
self.postFormWithParts(target, [post_part], on_finished, on_progress)
|
||||||
@ -357,10 +357,10 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice):
|
|||||||
def _handleOnFinished(self, reply: QNetworkReply) -> None:
|
def _handleOnFinished(self, reply: QNetworkReply) -> None:
|
||||||
# Due to garbage collection, we need to cache certain bits of post operations.
|
# Due to garbage collection, we need to cache certain bits of post operations.
|
||||||
# As we don't want to keep them around forever, delete them if we get a reply.
|
# As we don't want to keep them around forever, delete them if we get a reply.
|
||||||
if reply.operation() == QNetworkAccessManager.PostOperation:
|
if reply.operation() == QNetworkAccessManager.Operation.PostOperation:
|
||||||
self._clearCachedMultiPart(reply)
|
self._clearCachedMultiPart(reply)
|
||||||
|
|
||||||
if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) is None:
|
if reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute) is None:
|
||||||
# No status code means it never even reached remote.
|
# No status code means it never even reached remote.
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2022 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
from typing import Callable, List, Optional, Union
|
from typing import Callable, List, Optional, Union
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, QObject, QTimer, QUrl
|
from PyQt6.QtCore import pyqtProperty, pyqtSignal, QObject, QTimer, QUrl
|
||||||
from PyQt5.QtWidgets import QMessageBox
|
from PyQt6.QtWidgets import QMessageBox
|
||||||
|
|
||||||
import cura.CuraApplication # Imported like this to prevent circular imports.
|
import cura.CuraApplication # Imported like this to prevent circular imports.
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -137,7 +137,11 @@ class PrinterOutputDevice(QObject, OutputDevice):
|
|||||||
"""
|
"""
|
||||||
if self.connectionState != connection_state:
|
if self.connectionState != connection_state:
|
||||||
self._connection_state = connection_state
|
self._connection_state = connection_state
|
||||||
cura.CuraApplication.CuraApplication.getInstance().getGlobalContainerStack().setMetaDataEntry("is_online", self.isConnected())
|
application = cura.CuraApplication.CuraApplication.getInstance()
|
||||||
|
if application is not None: # Might happen during the closing of Cura or in a test.
|
||||||
|
global_stack = application.getGlobalContainerStack()
|
||||||
|
if global_stack is not None:
|
||||||
|
global_stack.setMetaDataEntry("is_online", self.isConnected())
|
||||||
self.connectionStateChanged.emit(self._id)
|
self.connectionStateChanged.emit(self._id)
|
||||||
|
|
||||||
@pyqtProperty(int, constant = True)
|
@pyqtProperty(int, constant = True)
|
||||||
|
@ -5,7 +5,7 @@ import enum
|
|||||||
import functools # For partial methods to use as callbacks with information pre-filled.
|
import functools # For partial methods to use as callbacks with information pre-filled.
|
||||||
import json # To serialise metadata for API calls.
|
import json # To serialise metadata for API calls.
|
||||||
import os # To delete the archive when we're done.
|
import os # To delete the archive when we're done.
|
||||||
from PyQt5.QtCore import QUrl
|
from PyQt6.QtCore import QUrl
|
||||||
import tempfile # To create an archive before we upload it.
|
import tempfile # To create an archive before we upload it.
|
||||||
|
|
||||||
import cura.CuraApplication # Imported like this to prevent circular imports.
|
import cura.CuraApplication # Imported like this to prevent circular imports.
|
||||||
@ -21,7 +21,7 @@ from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
|
|||||||
|
|
||||||
from typing import Any, cast, Dict, List, Optional, TYPE_CHECKING
|
from typing import Any, cast, Dict, List, Optional, TYPE_CHECKING
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt6.QtNetwork import QNetworkReply
|
||||||
from cura.UltimakerCloud.CloudMaterialSync import CloudMaterialSync
|
from cura.UltimakerCloud.CloudMaterialSync import CloudMaterialSync
|
||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2020 Ultimaker B.V.
|
# Copyright (c) 2020 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt6.QtCore import QTimer
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Math.Polygon import Polygon
|
from UM.Math.Polygon import Polygon
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSlot, QObject, QTimer
|
from PyQt6.QtCore import Qt, pyqtSlot, QObject, QTimer
|
||||||
from PyQt5.QtWidgets import QApplication
|
from PyQt6.QtWidgets import QApplication
|
||||||
|
|
||||||
from UM.Scene.Camera import Camera
|
from UM.Scene.Camera import Camera
|
||||||
from cura.UI.ObjectsModel import ObjectsModel
|
from cura.UI.ObjectsModel import ObjectsModel
|
||||||
|
@ -6,8 +6,8 @@ import urllib.parse
|
|||||||
import uuid
|
import uuid
|
||||||
from typing import Any, cast, Dict, List, TYPE_CHECKING, Union
|
from typing import Any, cast, Dict, List, TYPE_CHECKING, Union
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, QUrl
|
from PyQt6.QtCore import QObject, QUrl
|
||||||
from PyQt5.QtWidgets import QMessageBox
|
from PyQt6.QtWidgets import QMessageBox
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.FlameProfiler import pyqtSlot
|
from UM.FlameProfiler import pyqtSlot
|
||||||
@ -47,11 +47,11 @@ class ContainerManager(QObject):
|
|||||||
def __init__(self, application: "CuraApplication") -> None:
|
def __init__(self, application: "CuraApplication") -> None:
|
||||||
if ContainerManager.__instance is not None:
|
if ContainerManager.__instance is not None:
|
||||||
raise RuntimeError("Try to create singleton '%s' more than once" % self.__class__.__name__)
|
raise RuntimeError("Try to create singleton '%s' more than once" % self.__class__.__name__)
|
||||||
ContainerManager.__instance = self
|
|
||||||
try:
|
try:
|
||||||
super().__init__(parent = application)
|
super().__init__(parent = application)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
ContainerManager.__instance = self
|
||||||
|
|
||||||
self._container_name_filters = {} # type: Dict[str, Dict[str, Any]]
|
self._container_name_filters = {} # type: Dict[str, Dict[str, Any]]
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import re
|
|||||||
import configparser
|
import configparser
|
||||||
|
|
||||||
from typing import Any, cast, Dict, Optional, List, Union, Tuple
|
from typing import Any, cast, Dict, Optional, List, Union, Tuple
|
||||||
from PyQt5.QtWidgets import QMessageBox
|
from PyQt6.QtWidgets import QMessageBox
|
||||||
|
|
||||||
from UM.Decorators import override
|
from UM.Decorators import override
|
||||||
from UM.Settings.ContainerFormatError import ContainerFormatError
|
from UM.Settings.ContainerFormatError import ContainerFormatError
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from typing import Any, cast, List, Optional, Dict
|
from typing import Any, cast, List, Optional, Dict
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, QObject
|
from PyQt6.QtCore import pyqtProperty, pyqtSignal, QObject
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Decorators import override
|
from UM.Decorators import override
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2020 Ultimaker B.V.
|
# Copyright (c) 2020 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant # For communicating data and events to Qt.
|
from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant # For communicating data and events to Qt.
|
||||||
from UM.FlameProfiler import pyqtSlot
|
from UM.FlameProfiler import pyqtSlot
|
||||||
|
|
||||||
import cura.CuraApplication # To get the global container stack to find the current machine.
|
import cura.CuraApplication # To get the global container stack to find the current machine.
|
||||||
@ -31,9 +31,9 @@ class ExtruderManager(QObject):
|
|||||||
|
|
||||||
if ExtruderManager.__instance is not None:
|
if ExtruderManager.__instance is not None:
|
||||||
raise RuntimeError("Try to create singleton '%s' more than once" % self.__class__.__name__)
|
raise RuntimeError("Try to create singleton '%s' more than once" % self.__class__.__name__)
|
||||||
ExtruderManager.__instance = self
|
|
||||||
|
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
ExtruderManager.__instance = self
|
||||||
|
|
||||||
self._application = cura.CuraApplication.CuraApplication.getInstance()
|
self._application = cura.CuraApplication.CuraApplication.getInstance()
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Any, Dict, TYPE_CHECKING, Optional
|
from typing import Any, Dict, TYPE_CHECKING, Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal
|
from PyQt6.QtCore import pyqtProperty, pyqtSignal
|
||||||
|
|
||||||
from UM.Decorators import override
|
from UM.Decorators import override
|
||||||
from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase
|
from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase
|
||||||
|
@ -6,7 +6,7 @@ import threading
|
|||||||
from typing import Any, Dict, Optional, Set, TYPE_CHECKING, List
|
from typing import Any, Dict, Optional, Set, TYPE_CHECKING, List
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSlot, pyqtSignal
|
from PyQt6.QtCore import pyqtProperty, pyqtSlot, pyqtSignal
|
||||||
|
|
||||||
from UM.Decorators import deprecated, override
|
from UM.Decorators import deprecated, override
|
||||||
from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase
|
from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, pyqtSlot
|
from PyQt6.QtCore import QObject, pyqtProperty, pyqtSignal, pyqtSlot
|
||||||
from typing import Any, Dict, List, Set, Tuple, TYPE_CHECKING
|
from typing import Any, Dict, List, Set, Tuple, TYPE_CHECKING
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -6,7 +6,7 @@ import re
|
|||||||
import unicodedata
|
import unicodedata
|
||||||
from typing import Any, List, Dict, TYPE_CHECKING, Optional, cast, Set
|
from typing import Any, List, Dict, TYPE_CHECKING, Optional, cast, Set
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, QTimer
|
from PyQt6.QtCore import QObject, pyqtProperty, pyqtSignal, QTimer
|
||||||
|
|
||||||
from UM.ConfigurationErrorMessage import ConfigurationErrorMessage
|
from UM.ConfigurationErrorMessage import ConfigurationErrorMessage
|
||||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSlot, pyqtProperty, QObject, pyqtSignal, QRegExp
|
from PyQt6.QtCore import pyqtSlot, pyqtProperty, QObject, pyqtSignal
|
||||||
from PyQt5.QtGui import QValidator
|
from PyQt6.QtGui import QValidator
|
||||||
import os #For statvfs.
|
import os #For statvfs.
|
||||||
import urllib #To escape machine names for how they're saved to file.
|
import urllib #To escape machine names for how they're saved to file.
|
||||||
|
|
||||||
@ -65,6 +65,6 @@ class MachineNameValidator(QObject):
|
|||||||
self.validation_regex = "a^" #Never matches (unless you manage to get "a" before the start of the string... good luck).
|
self.validation_regex = "a^" #Never matches (unless you manage to get "a" before the start of the string... good luck).
|
||||||
self.validationChanged.emit()
|
self.validationChanged.emit()
|
||||||
|
|
||||||
@pyqtProperty("QRegExp", notify=validationChanged)
|
@pyqtProperty(str, notify=validationChanged)
|
||||||
def machineNameRegex(self):
|
def machineNameRegex(self):
|
||||||
return QRegExp(self.machine_name_regex)
|
return str(self.machine_name_regex)
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
from typing import List, Optional, TYPE_CHECKING
|
from typing import List, Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, QTimer, pyqtProperty, pyqtSignal
|
from PyQt6.QtCore import QObject, QTimer, pyqtProperty, pyqtSignal
|
||||||
from UM.FlameProfiler import pyqtSlot
|
from UM.FlameProfiler import pyqtSlot
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -3,7 +3,7 @@ import urllib.parse
|
|||||||
from configparser import ConfigParser
|
from configparser import ConfigParser
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, QObject, pyqtSignal
|
from PyQt6.QtCore import pyqtProperty, QObject, pyqtSignal
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.MimeTypeDatabase import MimeTypeDatabase
|
from UM.MimeTypeDatabase import MimeTypeDatabase
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
from PyQt5.QtCore import pyqtSlot, Qt
|
from PyQt6.QtCore import pyqtSlot, Qt
|
||||||
|
|
||||||
|
|
||||||
class SidebarCustomMenuItemsModel(ListModel):
|
class SidebarCustomMenuItemsModel(ListModel):
|
||||||
name_role = Qt.UserRole + 1
|
name_role = Qt.ItemDataRole.UserRole + 1
|
||||||
actions_role = Qt.UserRole + 2
|
actions_role = Qt.ItemDataRole.UserRole + 2
|
||||||
menu_item_role = Qt.UserRole + 3
|
menu_item_role = Qt.ItemDataRole.UserRole + 3
|
||||||
menu_item_icon_name_role = Qt.UserRole + 5
|
menu_item_icon_name_role = Qt.ItemDataRole.UserRole + 5
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2017 Ultimaker B.V.
|
# Copyright (c) 2017 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty
|
from PyQt6.QtCore import QObject, pyqtSignal, pyqtProperty
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import json
|
|||||||
import os
|
import os
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QLocalServer, QLocalSocket
|
from PyQt6.QtNetwork import QLocalServer, QLocalSocket
|
||||||
|
|
||||||
from UM.Qt.QtApplication import QtApplication #For typing.
|
from UM.Qt.QtApplication import QtApplication #For typing.
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
import numpy
|
import numpy
|
||||||
|
|
||||||
from PyQt5 import QtCore
|
from PyQt6 import QtCore
|
||||||
from PyQt5.QtCore import QCoreApplication
|
from PyQt6.QtCore import QCoreApplication
|
||||||
from PyQt5.QtGui import QImage
|
from PyQt6.QtGui import QImage
|
||||||
|
|
||||||
from cura.PreviewPass import PreviewPass
|
from cura.PreviewPass import PreviewPass
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, QUrl
|
from PyQt6.QtCore import pyqtProperty, QUrl
|
||||||
|
|
||||||
from UM.Stage import Stage
|
from UM.Stage import Stage
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Copyright (c) 2020 Ultimaker B.V.
|
# Copyright (c) 2020 Ultimaker B.V.
|
||||||
# Uranium is released under the terms of the LGPLv3 or higher.
|
# Uranium is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, QCoreApplication, QTimer
|
from PyQt6.QtCore import Qt, QCoreApplication, QTimer
|
||||||
from PyQt5.QtGui import QPixmap, QColor, QFont, QPen, QPainter
|
from PyQt6.QtGui import QPixmap, QColor, QFont, QPen, QPainter
|
||||||
from PyQt5.QtWidgets import QSplashScreen
|
from PyQt6.QtWidgets import QSplashScreen
|
||||||
|
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
@ -63,8 +63,8 @@ class CuraSplashScreen(QSplashScreen):
|
|||||||
|
|
||||||
painter.save()
|
painter.save()
|
||||||
painter.setPen(QColor(255, 255, 255, 255))
|
painter.setPen(QColor(255, 255, 255, 255))
|
||||||
painter.setRenderHint(QPainter.Antialiasing)
|
painter.setRenderHint(QPainter.RenderHint.Antialiasing)
|
||||||
painter.setRenderHint(QPainter.Antialiasing, True)
|
painter.setRenderHint(QPainter.RenderHint.Antialiasing, True)
|
||||||
|
|
||||||
version = Application.getInstance().getVersion().split("-")
|
version = Application.getInstance().getVersion().split("-")
|
||||||
|
|
||||||
@ -72,12 +72,12 @@ class CuraSplashScreen(QSplashScreen):
|
|||||||
font = QFont() # Using system-default font here
|
font = QFont() # Using system-default font here
|
||||||
font.setPixelSize(18)
|
font.setPixelSize(18)
|
||||||
painter.setFont(font)
|
painter.setFont(font)
|
||||||
painter.drawText(60, 70 + self._version_y_offset, round(330 * self._scale), round(230 * self._scale), Qt.AlignLeft | Qt.AlignTop, version[0] if not ApplicationMetadata.IsAlternateVersion else ApplicationMetadata.CuraBuildType)
|
painter.drawText(60, 70 + self._version_y_offset, round(330 * self._scale), round(230 * self._scale), Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop, version[0] if not ApplicationMetadata.IsAlternateVersion else ApplicationMetadata.CuraBuildType)
|
||||||
if len(version) > 1:
|
if len(version) > 1:
|
||||||
font.setPixelSize(16)
|
font.setPixelSize(16)
|
||||||
painter.setFont(font)
|
painter.setFont(font)
|
||||||
painter.setPen(QColor(200, 200, 200, 255))
|
painter.setPen(QColor(200, 200, 200, 255))
|
||||||
painter.drawText(247, 105 + self._version_y_offset, round(330 * self._scale), round(255 * self._scale), Qt.AlignLeft | Qt.AlignTop, version[1])
|
painter.drawText(247, 105 + self._version_y_offset, round(330 * self._scale), round(255 * self._scale), Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop, version[1])
|
||||||
painter.setPen(QColor(255, 255, 255, 255))
|
painter.setPen(QColor(255, 255, 255, 255))
|
||||||
|
|
||||||
# Draw the loading image
|
# Draw the loading image
|
||||||
@ -96,7 +96,7 @@ class CuraSplashScreen(QSplashScreen):
|
|||||||
painter.setPen(pen)
|
painter.setPen(pen)
|
||||||
painter.setFont(font)
|
painter.setFont(font)
|
||||||
painter.drawText(100, 128, 170, 64,
|
painter.drawText(100, 128, 170, 64,
|
||||||
Qt.AlignLeft | Qt.AlignVCenter | Qt.TextWordWrap,
|
Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignVCenter | Qt.TextFlag.TextWordWrap,
|
||||||
self._current_message)
|
self._current_message)
|
||||||
|
|
||||||
painter.restore()
|
painter.restore()
|
||||||
@ -108,7 +108,7 @@ class CuraSplashScreen(QSplashScreen):
|
|||||||
|
|
||||||
self._current_message = message
|
self._current_message = message
|
||||||
self.messageChanged.emit(message)
|
self.messageChanged.emit(message)
|
||||||
QCoreApplication.flush()
|
QCoreApplication.processEvents() # Used to be .flush() -- this might be the closest alternative, but uncertain.
|
||||||
self.repaint()
|
self.repaint()
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import TYPE_CHECKING, Optional, List, Set, Dict
|
from typing import TYPE_CHECKING, Optional, List, Set, Dict
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject
|
from PyQt6.QtCore import QObject
|
||||||
|
|
||||||
from UM.FlameProfiler import pyqtSlot
|
from UM.FlameProfiler import pyqtSlot
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from typing import Optional, TYPE_CHECKING
|
from typing import Optional, TYPE_CHECKING
|
||||||
from PyQt5.QtCore import QObject, pyqtSlot
|
from PyQt6.QtCore import QObject, pyqtSlot
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ from UM.Logger import Logger
|
|||||||
import re
|
import re
|
||||||
from typing import Dict, List, Optional, Union
|
from typing import Dict, List, Optional, Union
|
||||||
|
|
||||||
from PyQt5.QtCore import QTimer, Qt
|
from PyQt6.QtCore import QTimer, Qt
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
@ -34,14 +34,14 @@ class _NodeInfo:
|
|||||||
class ObjectsModel(ListModel):
|
class ObjectsModel(ListModel):
|
||||||
"""Keep track of all objects in the project"""
|
"""Keep track of all objects in the project"""
|
||||||
|
|
||||||
NameRole = Qt.UserRole + 1
|
NameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
SelectedRole = Qt.UserRole + 2
|
SelectedRole = Qt.ItemDataRole.UserRole + 2
|
||||||
OutsideAreaRole = Qt.UserRole + 3
|
OutsideAreaRole = Qt.ItemDataRole.UserRole + 3
|
||||||
BuilplateNumberRole = Qt.UserRole + 4
|
BuilplateNumberRole = Qt.ItemDataRole.UserRole + 4
|
||||||
NodeRole = Qt.UserRole + 5
|
NodeRole = Qt.ItemDataRole.UserRole + 5
|
||||||
PerObjectSettingsCountRole = Qt.UserRole + 6
|
PerObjectSettingsCountRole = Qt.ItemDataRole.UserRole + 6
|
||||||
MeshTypeRole = Qt.UserRole + 7
|
MeshTypeRole = Qt.ItemDataRole.UserRole + 7
|
||||||
ExtruderNumberRole = Qt.UserRole + 8
|
ExtruderNumberRole = Qt.ItemDataRole.UserRole + 8
|
||||||
|
|
||||||
def __init__(self, parent = None) -> None:
|
def __init__(self, parent = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -6,7 +6,7 @@ import math
|
|||||||
import os
|
import os
|
||||||
from typing import Dict, List, Optional, TYPE_CHECKING
|
from typing import Dict, List, Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty, pyqtSlot, QTimer
|
from PyQt6.QtCore import QObject, pyqtSignal, pyqtProperty, pyqtSlot, QTimer
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Qt.Duration import Duration
|
from UM.Qt.Duration import Duration
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSlot
|
from PyQt6.QtCore import QObject, pyqtSlot
|
||||||
|
|
||||||
from cura import CuraApplication
|
from cura import CuraApplication
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import collections
|
import collections
|
||||||
from typing import Optional, Dict, List, cast
|
from typing import Optional, Dict, List, cast
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSlot
|
from PyQt6.QtCore import QObject, pyqtSlot
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
|
@ -6,7 +6,7 @@ import os
|
|||||||
from collections import deque
|
from collections import deque
|
||||||
from typing import TYPE_CHECKING, Optional, List, Dict, Any
|
from typing import TYPE_CHECKING, Optional, List, Dict, Any
|
||||||
|
|
||||||
from PyQt5.QtCore import QUrl, Qt, pyqtSlot, pyqtProperty, pyqtSignal
|
from PyQt6.QtCore import QUrl, Qt, pyqtSlot, pyqtProperty, pyqtSignal
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -14,7 +14,7 @@ from UM.Qt.ListModel import ListModel
|
|||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from PyQt5.QtCore import QObject
|
from PyQt6.QtCore import QObject
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
|
|
||||||
|
|
||||||
@ -36,11 +36,11 @@ class WelcomePagesModel(ListModel):
|
|||||||
Note that in any case, a page that has its "should_show_function" == False will ALWAYS be skipped.
|
Note that in any case, a page that has its "should_show_function" == False will ALWAYS be skipped.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
IdRole = Qt.UserRole + 1 # Page ID
|
IdRole = Qt.ItemDataRole.UserRole + 1 # Page ID
|
||||||
PageUrlRole = Qt.UserRole + 2 # URL to the page's QML file
|
PageUrlRole = Qt.ItemDataRole.UserRole + 2 # URL to the page's QML file
|
||||||
NextPageIdRole = Qt.UserRole + 3 # The next page ID it should go to
|
NextPageIdRole = Qt.ItemDataRole.UserRole + 3 # The next page ID it should go to
|
||||||
NextPageButtonTextRole = Qt.UserRole + 4 # The text for the next page button
|
NextPageButtonTextRole = Qt.ItemDataRole.UserRole + 4 # The text for the next page button
|
||||||
PreviousPageButtonTextRole = Qt.UserRole + 5 # The text for the previous page button
|
PreviousPageButtonTextRole = Qt.ItemDataRole.UserRole + 5 # The text for the previous page button
|
||||||
|
|
||||||
def __init__(self, application: "CuraApplication", parent: Optional["QObject"] = None) -> None:
|
def __init__(self, application: "CuraApplication", parent: Optional["QObject"] = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import os
|
import os
|
||||||
from typing import Optional, Dict, List, Tuple, TYPE_CHECKING
|
from typing import Optional, Dict, List, Tuple, TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSlot
|
from PyQt6.QtCore import pyqtProperty, pyqtSlot
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
@ -12,7 +12,7 @@ from UM.Resources import Resources
|
|||||||
from cura.UI.WelcomePagesModel import WelcomePagesModel
|
from cura.UI.WelcomePagesModel import WelcomePagesModel
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from PyQt5.QtCore import QObject
|
from PyQt6.QtCore import QObject
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, QUrl
|
from PyQt6.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt6.QtGui import QDesktopServices
|
||||||
from typing import Dict, Optional, TYPE_CHECKING
|
from typing import Dict, Optional, TYPE_CHECKING
|
||||||
import zipfile # To export all materials in a .zip archive.
|
import zipfile # To export all materials in a .zip archive.
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QNetworkRequest
|
from PyQt6.QtNetwork import QNetworkRequest
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.TaskManagement.HttpRequestScope import DefaultUserAgentScope
|
from UM.TaskManagement.HttpRequestScope import DefaultUserAgentScope
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import socket
|
import socket
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSlot
|
from PyQt6.QtCore import QObject, pyqtSlot
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
14
cura_app.py
14
cura_app.py
@ -16,7 +16,7 @@ import argparse
|
|||||||
import faulthandler
|
import faulthandler
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QSslConfiguration, QSslSocket
|
from PyQt6.QtNetwork import QSslConfiguration, QSslSocket
|
||||||
|
|
||||||
from UM.Platform import Platform
|
from UM.Platform import Platform
|
||||||
from cura import ApplicationMetadata
|
from cura import ApplicationMetadata
|
||||||
@ -148,15 +148,15 @@ def exceptHook(hook_type, value, traceback):
|
|||||||
# The flag "CuraApplication.Created" is set to True when CuraApplication finishes its constructor call.
|
# The flag "CuraApplication.Created" is set to True when CuraApplication finishes its constructor call.
|
||||||
#
|
#
|
||||||
# Before the "started" flag is set to True, the Qt event loop has not started yet. The event loop is a blocking
|
# Before the "started" flag is set to True, the Qt event loop has not started yet. The event loop is a blocking
|
||||||
# call to the QApplication.exec_(). In this case, we need to:
|
# call to the QApplication.exec(). In this case, we need to:
|
||||||
# 1. Remove all scheduled events so no more unnecessary events will be processed, such as loading the main dialog,
|
# 1. Remove all scheduled events so no more unnecessary events will be processed, such as loading the main dialog,
|
||||||
# loading the machine, etc.
|
# loading the machine, etc.
|
||||||
# 2. Start the Qt event loop with exec_() and show the Crash Dialog.
|
# 2. Start the Qt event loop with exec() and show the Crash Dialog.
|
||||||
#
|
#
|
||||||
# If the application has finished its initialization and was running fine, and then something causes a crash,
|
# If the application has finished its initialization and was running fine, and then something causes a crash,
|
||||||
# we run the old routine to show the Crash Dialog.
|
# we run the old routine to show the Crash Dialog.
|
||||||
#
|
#
|
||||||
from PyQt5.Qt import QApplication
|
from PyQt6.QtWidgets import QApplication
|
||||||
if CuraApplication.Created:
|
if CuraApplication.Created:
|
||||||
_crash_handler = CrashHandler(hook_type, value, traceback, has_started)
|
_crash_handler = CrashHandler(hook_type, value, traceback, has_started)
|
||||||
if CuraApplication.splash is not None:
|
if CuraApplication.splash is not None:
|
||||||
@ -164,7 +164,7 @@ def exceptHook(hook_type, value, traceback):
|
|||||||
if not has_started:
|
if not has_started:
|
||||||
CuraApplication.getInstance().removePostedEvents(None)
|
CuraApplication.getInstance().removePostedEvents(None)
|
||||||
_crash_handler.early_crash_dialog.show()
|
_crash_handler.early_crash_dialog.show()
|
||||||
sys.exit(CuraApplication.getInstance().exec_())
|
sys.exit(CuraApplication.getInstance().exec())
|
||||||
else:
|
else:
|
||||||
_crash_handler.show()
|
_crash_handler.show()
|
||||||
else:
|
else:
|
||||||
@ -175,7 +175,7 @@ def exceptHook(hook_type, value, traceback):
|
|||||||
if CuraApplication.splash is not None:
|
if CuraApplication.splash is not None:
|
||||||
CuraApplication.splash.close()
|
CuraApplication.splash.close()
|
||||||
_crash_handler.early_crash_dialog.show()
|
_crash_handler.early_crash_dialog.show()
|
||||||
sys.exit(application.exec_())
|
sys.exit(application.exec())
|
||||||
|
|
||||||
|
|
||||||
# Set exception hook to use the crash dialog handler
|
# Set exception hook to use the crash dialog handler
|
||||||
@ -228,7 +228,7 @@ if Platform.isLinux():
|
|||||||
|
|
||||||
if ApplicationMetadata.CuraDebugMode:
|
if ApplicationMetadata.CuraDebugMode:
|
||||||
ssl_conf = QSslConfiguration.defaultConfiguration()
|
ssl_conf = QSslConfiguration.defaultConfiguration()
|
||||||
ssl_conf.setPeerVerifyMode(QSslSocket.VerifyNone)
|
ssl_conf.setPeerVerifyMode(QSslSocket.PeerVerifyMode.VerifyNone)
|
||||||
QSslConfiguration.setDefaultConfiguration(ssl_conf)
|
QSslConfiguration.setDefaultConfiguration(ssl_conf)
|
||||||
|
|
||||||
app = CuraApplication()
|
app = CuraApplication()
|
||||||
|
@ -34,7 +34,7 @@ from cura.Settings.CuraContainerStack import _ContainerIndexes
|
|||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
from cura.Utils.Threading import call_on_qt_thread
|
from cura.Utils.Threading import call_on_qt_thread
|
||||||
|
|
||||||
from PyQt5.QtCore import QCoreApplication
|
from PyQt6.QtCore import QCoreApplication
|
||||||
|
|
||||||
from .WorkspaceDialog import WorkspaceDialog
|
from .WorkspaceDialog import WorkspaceDialog
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt6.QtCore import Qt
|
||||||
|
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
from cura.Settings.GlobalStack import GlobalStack
|
from cura.Settings.GlobalStack import GlobalStack
|
||||||
@ -25,10 +25,10 @@ class UpdatableMachinesModel(ListModel):
|
|||||||
def __init__(self, parent = None) -> None:
|
def __init__(self, parent = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
|
||||||
self.addRoleName(Qt.UserRole + 1, "id")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 1, "id")
|
||||||
self.addRoleName(Qt.UserRole + 2, "name")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 2, "name")
|
||||||
self.addRoleName(Qt.UserRole + 3, "displayName")
|
self.addRoleName(Qt.ItemDataRole.UserRole + 3, "displayName")
|
||||||
self.addRoleName(Qt.UserRole + 4, "type") # Either "default_option" or "machine"
|
self.addRoleName(Qt.ItemDataRole.UserRole + 4, "type") # Either "default_option" or "machine"
|
||||||
|
|
||||||
def update(self, machines: List[GlobalStack]) -> None:
|
def update(self, machines: List[GlobalStack]) -> None:
|
||||||
items = [create_new_list_item] # type: List[Dict[str, str]]
|
items = [create_new_list_item] # type: List[Dict[str, str]]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
from typing import List, Optional, Dict, cast
|
from typing import List, Optional, Dict, cast
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, QObject, pyqtProperty, QCoreApplication
|
from PyQt6.QtCore import pyqtSignal, QObject, pyqtProperty, QCoreApplication
|
||||||
from UM.FlameProfiler import pyqtSlot
|
from UM.FlameProfiler import pyqtSlot
|
||||||
from UM.PluginRegistry import PluginRegistry
|
from UM.PluginRegistry import PluginRegistry
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
|
@ -13,7 +13,7 @@ from cura.CuraApplication import CuraApplication
|
|||||||
from cura.Utils.Threading import call_on_qt_thread
|
from cura.Utils.Threading import call_on_qt_thread
|
||||||
from cura.Snapshot import Snapshot
|
from cura.Snapshot import Snapshot
|
||||||
|
|
||||||
from PyQt5.QtCore import QBuffer
|
from PyQt6.QtCore import QBuffer
|
||||||
|
|
||||||
import Savitar
|
import Savitar
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import threading
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, Dict, Optional
|
from typing import Any, Dict, Optional
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt6.QtNetwork import QNetworkReply
|
||||||
|
|
||||||
from UM.Job import Job
|
from UM.Job import Job
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from typing import Any, Optional, List, Dict, Callable
|
from typing import Any, Optional, List, Dict, Callable
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt6.QtNetwork import QNetworkReply
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Signal import Signal, signalemitter
|
from UM.Signal import Signal, signalemitter
|
||||||
|
@ -5,7 +5,7 @@ import os
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, cast, Dict, List, Optional
|
from typing import Any, cast, Dict, List, Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal
|
from PyQt6.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal
|
||||||
|
|
||||||
from UM.Extension import Extension
|
from UM.Extension import Extension
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -7,7 +7,7 @@ import threading
|
|||||||
from tempfile import NamedTemporaryFile
|
from tempfile import NamedTemporaryFile
|
||||||
from typing import Optional, Any, Dict
|
from typing import Optional, Any, Dict
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
|
from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
|
||||||
|
|
||||||
from UM.Job import Job
|
from UM.Job import Job
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -53,7 +53,7 @@ class RestoreBackupJob(Job):
|
|||||||
def _onRestoreRequestCompleted(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None) -> None:
|
def _onRestoreRequestCompleted(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None) -> None:
|
||||||
if not HttpRequestManager.replyIndicatesSuccess(reply, error):
|
if not HttpRequestManager.replyIndicatesSuccess(reply, error):
|
||||||
Logger.warning("Requesting backup failed, response code %s while trying to connect to %s",
|
Logger.warning("Requesting backup failed, response code %s while trying to connect to %s",
|
||||||
reply.attribute(QNetworkRequest.HttpStatusCodeAttribute), reply.url())
|
reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute), reply.url())
|
||||||
self.restore_backup_error_message = self.DEFAULT_ERROR_MESSAGE
|
self.restore_backup_error_message = self.DEFAULT_ERROR_MESSAGE
|
||||||
self._job_done.set()
|
self._job_done.set()
|
||||||
return
|
return
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
import argparse #To run the engine in debug mode if the front-end is in debug mode.
|
import argparse #To run the engine in debug mode if the front-end is in debug mode.
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
import os
|
import os
|
||||||
from PyQt5.QtCore import QObject, QTimer, QUrl, pyqtSlot
|
from PyQt6.QtCore import QObject, QTimer, QUrl, pyqtSlot
|
||||||
import sys
|
import sys
|
||||||
from time import time
|
from time import time
|
||||||
from typing import Any, cast, Dict, List, Optional, Set, TYPE_CHECKING
|
from typing import Any, cast, Dict, List, Optional, Set, TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt5.QtGui import QDesktopServices, QImage
|
from PyQt6.QtGui import QDesktopServices, QImage
|
||||||
|
|
||||||
from UM.Backend.Backend import Backend, BackendState
|
from UM.Backend.Backend import Backend, BackendState
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Scene.SceneNode import SceneNode
|
||||||
|
@ -8,7 +8,7 @@ import time
|
|||||||
from typing import Any, cast, Dict, List, Optional, Set
|
from typing import Any, cast, Dict, List, Optional, Set
|
||||||
import re
|
import re
|
||||||
import Arcus #For typing.
|
import Arcus #For typing.
|
||||||
from PyQt5.QtCore import QCoreApplication
|
from PyQt6.QtCore import QCoreApplication
|
||||||
|
|
||||||
from UM.Job import Job
|
from UM.Job import Job
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -5,9 +5,9 @@ import threading
|
|||||||
from json import JSONDecodeError
|
from json import JSONDecodeError
|
||||||
from typing import List, Dict, Any, Callable, Union, Optional
|
from typing import List, Dict, Any, Callable, Union, Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import QUrl
|
from PyQt6.QtCore import QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt6.QtGui import QDesktopServices
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt6.QtNetwork import QNetworkReply
|
||||||
|
|
||||||
from UM.FileHandler.FileHandler import FileHandler
|
from UM.FileHandler.FileHandler import FileHandler
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply
|
from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply
|
||||||
from typing import Callable, Any, cast, Optional, Union
|
from typing import Callable, Any, cast, Optional, Union
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -120,9 +120,9 @@ class DFFileUploader:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
Logger.log("i", "Finished callback %s %s",
|
Logger.log("i", "Finished callback %s %s",
|
||||||
reply.attribute(QNetworkRequest.HttpStatusCodeAttribute), reply.url().toString())
|
reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute), reply.url().toString())
|
||||||
|
|
||||||
status_code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) # type: Optional[int]
|
status_code = reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute) # type: Optional[int]
|
||||||
if not status_code:
|
if not status_code:
|
||||||
Logger.log("e", "Reply contained no status code.")
|
Logger.log("e", "Reply contained no status code.")
|
||||||
self._onUploadError(reply, None)
|
self._onUploadError(reply, None)
|
||||||
|
@ -7,7 +7,7 @@ import re
|
|||||||
from time import time
|
from time import time
|
||||||
from typing import List, Any, Optional, Union, Type, Tuple, Dict, cast, TypeVar, Callable
|
from typing import List, Any, Optional, Union, Type, Tuple, Dict, cast, TypeVar, Callable
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
|
from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
||||||
@ -228,7 +228,7 @@ class DigitalFactoryApiClient:
|
|||||||
self._anti_gc_callbacks.remove(parse)
|
self._anti_gc_callbacks.remove(parse)
|
||||||
|
|
||||||
# Don't try to parse the reply if we didn't get one
|
# Don't try to parse the reply if we didn't get one
|
||||||
if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) is None:
|
if reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute) is None:
|
||||||
if on_error is not None:
|
if on_error is not None:
|
||||||
on_error()
|
on_error()
|
||||||
return
|
return
|
||||||
@ -250,7 +250,7 @@ class DigitalFactoryApiClient:
|
|||||||
:return: A tuple with a status code and a dictionary.
|
:return: A tuple with a status code and a dictionary.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
status_code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
|
status_code = reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute)
|
||||||
try:
|
try:
|
||||||
response = bytes(reply.readAll()).decode()
|
response = bytes(reply.readAll()).decode()
|
||||||
return status_code, json.loads(response)
|
return status_code, json.loads(response)
|
||||||
|
@ -10,9 +10,9 @@ from enum import IntEnum
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional, List, Dict, Any, cast
|
from typing import Optional, List, Dict, Any, cast
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, QObject, pyqtSlot, pyqtProperty, Q_ENUMS, QTimer, QUrl
|
from PyQt6.QtCore import pyqtSignal, QObject, pyqtSlot, pyqtProperty, pyqtEnum, QTimer, QUrl
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt6.QtNetwork import QNetworkReply
|
||||||
from PyQt5.QtQml import qmlRegisterType, qmlRegisterUncreatableType
|
from PyQt6.QtQml import qmlRegisterType, qmlRegisterUncreatableMetaObject
|
||||||
|
|
||||||
from UM.FileHandler.FileHandler import FileHandler
|
from UM.FileHandler.FileHandler import FileHandler
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
@ -50,7 +50,7 @@ class DFRetrievalStatus(QObject):
|
|||||||
be used within QML objects as DigitalFactory.RetrievalStatus.<status>
|
be used within QML objects as DigitalFactory.RetrievalStatus.<status>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Q_ENUMS(RetrievalStatus)
|
pyqtEnum(RetrievalStatus)
|
||||||
|
|
||||||
|
|
||||||
class DigitalFactoryController(QObject):
|
class DigitalFactoryController(QObject):
|
||||||
@ -439,7 +439,7 @@ class DigitalFactoryController(QObject):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _onEngineCreated() -> None:
|
def _onEngineCreated() -> None:
|
||||||
qmlRegisterUncreatableType(DFRetrievalStatus, "DigitalFactory", 1, 0, "RetrievalStatus", "Could not create RetrievalStatus enum type")
|
qmlRegisterUncreatableMetaObject(DigitalFactoryController.staticMetaObject, "DigitalFactory", 1, 0, "RetrievalStatus", "RetrievalStatus is an Enum-only type")
|
||||||
|
|
||||||
def _applicationInitializationFinished(self) -> None:
|
def _applicationInitializationFinished(self) -> None:
|
||||||
self._supported_file_types = self._application.getInstance().getMeshFileHandler().getSupportedFileTypesRead()
|
self._supported_file_types = self._application.getInstance().getMeshFileHandler().getSupportedFileTypesRead()
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
from typing import List, Dict, Callable
|
from typing import List, Dict, Callable
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt6.QtCore import Qt, pyqtSignal
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
@ -13,13 +13,13 @@ DIGITAL_FACTORY_DISPLAY_DATETIME_FORMAT = "%d-%m-%Y %H:%M"
|
|||||||
|
|
||||||
|
|
||||||
class DigitalFactoryFileModel(ListModel):
|
class DigitalFactoryFileModel(ListModel):
|
||||||
FileNameRole = Qt.UserRole + 1
|
FileNameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
FileIdRole = Qt.UserRole + 2
|
FileIdRole = Qt.ItemDataRole.UserRole + 2
|
||||||
FileSizeRole = Qt.UserRole + 3
|
FileSizeRole = Qt.ItemDataRole.UserRole + 3
|
||||||
LibraryProjectIdRole = Qt.UserRole + 4
|
LibraryProjectIdRole = Qt.ItemDataRole.UserRole + 4
|
||||||
DownloadUrlRole = Qt.UserRole + 5
|
DownloadUrlRole = Qt.ItemDataRole.UserRole + 5
|
||||||
UsernameRole = Qt.UserRole + 6
|
UsernameRole = Qt.ItemDataRole.UserRole + 6
|
||||||
UploadedAtRole = Qt.UserRole + 7
|
UploadedAtRole = Qt.ItemDataRole.UserRole + 7
|
||||||
|
|
||||||
dfFileModelChanged = pyqtSignal()
|
dfFileModelChanged = pyqtSignal()
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt6.QtCore import Qt, pyqtSignal
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
@ -12,12 +12,12 @@ PROJECT_UPDATED_AT_DATETIME_FORMAT = "%d-%m-%Y"
|
|||||||
|
|
||||||
|
|
||||||
class DigitalFactoryProjectModel(ListModel):
|
class DigitalFactoryProjectModel(ListModel):
|
||||||
DisplayNameRole = Qt.UserRole + 1
|
DisplayNameRole = Qt.ItemDataRole.UserRole + 1
|
||||||
LibraryProjectIdRole = Qt.UserRole + 2
|
LibraryProjectIdRole = Qt.ItemDataRole.UserRole + 2
|
||||||
DescriptionRole = Qt.UserRole + 3
|
DescriptionRole = Qt.ItemDataRole.UserRole + 3
|
||||||
ThumbnailUrlRole = Qt.UserRole + 5
|
ThumbnailUrlRole = Qt.ItemDataRole.UserRole + 5
|
||||||
UsernameRole = Qt.UserRole + 6
|
UsernameRole = Qt.ItemDataRole.UserRole + 6
|
||||||
LastUpdatedRole = Qt.UserRole + 7
|
LastUpdatedRole = Qt.ItemDataRole.UserRole + 7
|
||||||
|
|
||||||
dfProjectModelChanged = pyqtSignal()
|
dfProjectModelChanged = pyqtSignal()
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QUrl
|
from PyQt6.QtCore import QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt6.QtGui import QDesktopServices
|
||||||
|
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ from UM.i18n import i18nCatalog
|
|||||||
from UM.Settings.ContainerRegistry import ContainerRegistry
|
from UM.Settings.ContainerRegistry import ContainerRegistry
|
||||||
from cura.PrinterOutput.FirmwareUpdater import FirmwareUpdateState
|
from cura.PrinterOutput.FirmwareUpdater import FirmwareUpdateState
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject
|
from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
MYPY = False
|
MYPY = False
|
||||||
|
@ -5,8 +5,8 @@ import numpy
|
|||||||
|
|
||||||
import math
|
import math
|
||||||
|
|
||||||
from PyQt5.QtGui import QImage, qRed, qGreen, qBlue, qAlpha
|
from PyQt6.QtGui import QImage, qRed, qGreen, qBlue, qAlpha
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt6.QtCore import Qt
|
||||||
|
|
||||||
from UM.Mesh.MeshReader import MeshReader
|
from UM.Mesh.MeshReader import MeshReader
|
||||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user