Skip to content

Commit

Permalink
Merge pull request #18199 from Ultimaker/CURA-11558-crash-while-openi…
Browse files Browse the repository at this point in the history
…ng-printer-setting

crash while opening printer setting
  • Loading branch information
HellAholic authored Feb 6, 2024
2 parents d67f069 + 7d9a699 commit 117d5f4
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 11 deletions.
17 changes: 8 additions & 9 deletions cura/CuraApplication.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@
from cura.Settings.SidebarCustomMenuItemsModel import SidebarCustomMenuItemsModel
from cura.Settings.SimpleModeSettingsManager import SimpleModeSettingsManager
from cura.TaskManagement.OnExitCallbackManager import OnExitCallbackManager
from cura.UI import CuraSplashScreen, MachineActionManager, PrintInformation
from cura.UI import CuraSplashScreen, PrintInformation
from cura.UI.MachineActionManager import MachineActionManager
from cura.UI.AddPrinterPagesModel import AddPrinterPagesModel
from cura.UI.MachineSettingsManager import MachineSettingsManager
from cura.UI.ObjectsModel import ObjectsModel
Expand Down Expand Up @@ -186,7 +187,7 @@ def __init__(self, *args, **kwargs):

self._cura_formula_functions = None # type: Optional[CuraFormulaFunctions]

self._machine_action_manager = None # type: Optional[MachineActionManager.MachineActionManager]
self._machine_action_manager: Optional[MachineActionManager] = None

self.empty_container = None # type: EmptyInstanceContainer
self.empty_definition_changes_container = None # type: EmptyInstanceContainer
Expand Down Expand Up @@ -352,7 +353,7 @@ def initialize(self) -> None:
self.__addAllEmptyContainers()
self.__setLatestResouceVersionsForVersionUpgrade()

self._machine_action_manager = MachineActionManager.MachineActionManager(self)
self._machine_action_manager = MachineActionManager(self)
self._machine_action_manager.initialize()

def __sendCommandToSingleInstance(self):
Expand Down Expand Up @@ -1129,18 +1130,16 @@ def getSettingInheritanceManager(self, *args) -> SettingInheritanceManager:
self._setting_inheritance_manager = SettingInheritanceManager.createSettingInheritanceManager()
return self._setting_inheritance_manager

def getMachineActionManager(self, *args: Any) -> MachineActionManager.MachineActionManager:
@pyqtSlot(result = QObject)
def getMachineActionManager(self, *args: Any) -> MachineActionManager:
"""Get the machine action manager
We ignore any *args given to this, as we also register the machine manager as qml singleton.
It wants to give this function an engine and script engine, but we don't care about that.
"""

return cast(MachineActionManager.MachineActionManager, self._machine_action_manager)
return self._machine_action_manager

@pyqtSlot(result = QObject)
def getMachineActionManagerQml(self)-> MachineActionManager.MachineActionManager:
return cast(QObject, self._machine_action_manager)

@pyqtSlot(result = QObject)
def getMaterialManagementModel(self) -> MaterialManagementModel:
Expand Down Expand Up @@ -1264,7 +1263,7 @@ def registerObjects(self, engine):
qmlRegisterSingletonType(IntentManager, "Cura", 1, 6, self.getIntentManager, "IntentManager")
qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, self.getSettingInheritanceManager, "SettingInheritanceManager")
qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 0, self.getSimpleModeSettingsManagerWrapper, "SimpleModeSettingsManager")
qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, self.getMachineActionManagerWrapper, "MachineActionManager")
qmlRegisterSingletonType(MachineActionManager, "Cura", 1, 0, self.getMachineActionManagerWrapper, "MachineActionManager")

self.processEvents()
qmlRegisterType(NetworkingUtil, "Cura", 1, 5, "NetworkingUtil")
Expand Down
4 changes: 2 additions & 2 deletions resources/qml/Preferences/MachinesPage.qml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import Cura 1.0 as Cura
UM.ManagementPage
{
id: base
property var machineActionManager: CuraApplication.getMachineActionManagerQml()
property var machineActionManager: CuraApplication.getMachineActionManager()
Item { enabled: false; UM.I18nCatalog { id: catalog; name: "cura"} }

title: catalog.i18nc("@title:tab", "Printers")
Expand Down Expand Up @@ -63,7 +63,7 @@ UM.ManagementPage
Repeater
{
id: machineActionRepeater
model: base.currentItem ? machineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null
model: base.currentItem.id ? machineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null

Item
{
Expand Down

0 comments on commit 117d5f4

Please sign in to comment.