Browse Source

Fix machine management page section

Lipu Fei 6 years ago
parent
commit
49233216ec
2 changed files with 14 additions and 4 deletions
  1. 12 4
      cura/GlobalStacksModel.py
  2. 2 0
      resources/qml/Preferences/MachinesPage.qml

+ 12 - 4
cura/GlobalStacksModel.py

@@ -1,14 +1,13 @@
 # Copyright (c) 2018 Ultimaker B.V.
 # Cura is released under the terms of the LGPLv3 or higher.
 
+from PyQt5.QtCore import pyqtProperty, Qt, QTimer
 
 from UM.Qt.ListModel import ListModel
-
-from PyQt5.QtCore import pyqtProperty, Qt, QTimer
+from UM.i18n import i18nCatalog
 
 from cura.PrinterOutputDevice import ConnectionType
 from cura.Settings.CuraContainerRegistry import CuraContainerRegistry
-
 from cura.Settings.GlobalStack import GlobalStack
 
 
@@ -18,13 +17,18 @@ class GlobalStacksModel(ListModel):
     HasRemoteConnectionRole = Qt.UserRole + 3
     ConnectionTypeRole = Qt.UserRole + 4
     MetaDataRole = Qt.UserRole + 5
+    SectionNameRole = Qt.UserRole + 6  # For separating local and remote printers in the machine management page
 
     def __init__(self, parent = None):
         super().__init__(parent)
+
+        self._catalog = i18nCatalog("cura")
+
         self.addRoleName(self.NameRole, "name")
         self.addRoleName(self.IdRole, "id")
         self.addRoleName(self.HasRemoteConnectionRole, "hasRemoteConnection")
         self.addRoleName(self.MetaDataRole, "metadata")
+        self.addRoleName(self.SectionNameRole, "sectionName")
         self._container_stacks = []
 
         self._change_timer = QTimer()
@@ -62,9 +66,13 @@ class GlobalStacksModel(ListModel):
             if container_stack.getMetaDataEntry("hidden", False) in ["True", True]:
                 continue
 
+            section_name = "Network enabled printers" if has_remote_connection else "Local printers"
+            section_name = self._catalog.i18nc("@info:title", section_name)
+
             items.append({"name": container_stack.getMetaDataEntry("group_name", container_stack.getName()),
                           "id": container_stack.getId(),
                           "hasRemoteConnection": has_remote_connection,
-                          "metadata": container_stack.getMetaData().copy()})
+                          "metadata": container_stack.getMetaData().copy(),
+                          "sectionName": section_name})
         items.sort(key=lambda i: not i["hasRemoteConnection"])
         self.setItems(items)

+ 2 - 0
resources/qml/Preferences/MachinesPage.qml

@@ -16,6 +16,8 @@ UM.ManagementPage
     title: catalog.i18nc("@title:tab", "Printers");
     model: Cura.GlobalStacksModel { }
 
+    sectionRole: "sectionName"
+
     activeId: Cura.MachineManager.activeMachineId
     activeIndex: activeMachineIndex()