Browse Source

Add AddPrinterPagesModel

CURA-6435
Lipu Fei 6 years ago
parent
commit
a18bb9d953
2 changed files with 38 additions and 0 deletions
  1. 8 0
      cura/CuraApplication.py
  2. 30 0
      cura/UI/AddPrinterPagesModel.py

+ 8 - 0
cura/CuraApplication.py

@@ -112,6 +112,7 @@ from cura.UI import CuraSplashScreen, MachineActionManager, PrintInformation
 from cura.UI.MachineSettingsManager import MachineSettingsManager
 from cura.UI.MachineSettingsManager import MachineSettingsManager
 from cura.UI.ObjectsModel import ObjectsModel
 from cura.UI.ObjectsModel import ObjectsModel
 from cura.UI.TextManager import TextManager
 from cura.UI.TextManager import TextManager
+from cura.UI.AddPrinterPagesModel import AddPrinterPagesModel
 from cura.UI.WelcomePagesModel import WelcomePagesModel
 from cura.UI.WelcomePagesModel import WelcomePagesModel
 
 
 from .SingleInstance import SingleInstance
 from .SingleInstance import SingleInstance
@@ -217,6 +218,7 @@ class CuraApplication(QtApplication):
         self._discovered_printer_model = DiscoveredPrintersModel(self)
         self._discovered_printer_model = DiscoveredPrintersModel(self)
         self._first_start_machine_actions_model = FirstStartMachineActionsModel(self)
         self._first_start_machine_actions_model = FirstStartMachineActionsModel(self)
         self._welcome_pages_model = WelcomePagesModel(self)
         self._welcome_pages_model = WelcomePagesModel(self)
+        self._add_printer_pages_model = AddPrinterPagesModel(self)
         self._text_manager = TextManager(self)
         self._text_manager = TextManager(self)
 
 
         self._quality_profile_drop_down_menu_model = None
         self._quality_profile_drop_down_menu_model = None
@@ -762,6 +764,7 @@ class CuraApplication(QtApplication):
 
 
         self._output_device_manager.start()
         self._output_device_manager.start()
         self._welcome_pages_model.initialize()
         self._welcome_pages_model.initialize()
+        self._add_printer_pages_model.initialize()
 
 
         # Detect in which mode to run and execute that mode
         # Detect in which mode to run and execute that mode
         if self._is_headless:
         if self._is_headless:
@@ -873,6 +876,10 @@ class CuraApplication(QtApplication):
     def getWelcomePagesModel(self, *args) -> "WelcomePagesModel":
     def getWelcomePagesModel(self, *args) -> "WelcomePagesModel":
         return self._welcome_pages_model
         return self._welcome_pages_model
 
 
+    @pyqtSlot(result = QObject)
+    def getAddPrinterPagesModel(self, *args) -> "AddPrinterPagesModel":
+        return self._add_printer_pages_model
+
     @pyqtSlot(result = QObject)
     @pyqtSlot(result = QObject)
     def getMachineSettingsManager(self, *args) -> "MachineSettingsManager":
     def getMachineSettingsManager(self, *args) -> "MachineSettingsManager":
         return self._machine_settings_manager
         return self._machine_settings_manager
@@ -1014,6 +1021,7 @@ class CuraApplication(QtApplication):
         qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager)
         qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager)
 
 
         qmlRegisterType(WelcomePagesModel, "Cura", 1, 0, "WelcomePagesModel")
         qmlRegisterType(WelcomePagesModel, "Cura", 1, 0, "WelcomePagesModel")
+        qmlRegisterType(AddPrinterPagesModel, "Cura", 1, 0, "AddPrinterPagesModel")
         qmlRegisterType(TextManager, "Cura", 1, 0, "TextManager")
         qmlRegisterType(TextManager, "Cura", 1, 0, "TextManager")
 
 
         qmlRegisterType(NetworkMJPGImage, "Cura", 1, 0, "NetworkMJPGImage")
         qmlRegisterType(NetworkMJPGImage, "Cura", 1, 0, "NetworkMJPGImage")

+ 30 - 0
cura/UI/AddPrinterPagesModel.py

@@ -0,0 +1,30 @@
+# Copyright (c) 2019 Ultimaker B.V.
+# Cura is released under the terms of the LGPLv3 or higher.
+
+from .WelcomePagesModel import WelcomePagesModel
+
+
+#
+# This Qt ListModel is more or less the same the WelcomePagesModel, except that this model is only for adding a printer,
+# so only the steps for adding a printer is included.
+#
+class AddPrinterPagesModel(WelcomePagesModel):
+
+    def initialize(self) -> None:
+        self._pages.append({"id": "add_network_or_local_printer",
+                            "page_url": self._getBuiltinWelcomePagePath("AddNetworkOrLocalPrinterContent.qml"),
+                            "next_page_id": "machine_actions",
+                            "next_page_button_text": self._catalog.i18nc("@action:button", "Add"),
+                            })
+        self._pages.append({"id": "add_printer_by_ip",
+                            "page_url": self._getBuiltinWelcomePagePath("AddPrinterByIpContent.qml"),
+                            "next_page_id": "machine_actions",
+                            })
+        self._pages.append({"id": "machine_actions",
+                            "page_url": self._getBuiltinWelcomePagePath("FirstStartMachineActionsContent.qml"),
+                            "should_show_function": self.shouldShowMachineActions,
+                            })
+        self.setItems(self._pages)
+
+
+__all__ = ["AddPrinterPagesModel"]