Пример #1
0
    def renameMaterial(self, message: QDBusMessage):
        machine_manager = Application.getInstance().getMachineManager()

        material_id = message.arguments()[0]
        new_material_name = message.arguments()[1]

        machine_manager.renameMaterial(material_id, new_material_name)
Пример #2
0
    def duplicateMaterial(self, message: QDBusMessage):
        from cura.Settings.ContainerManager import ContainerManager
        container_manager = ContainerManager.getInstance()

        base_material_id = message.arguments()[0]  # material to duplicate from
        new_id = message.arguments()[1]  # (preferred) duplicated material ID

        container_manager.duplicateMaterial(base_material_id, new_id)
Пример #3
0
    def createMaterial(self, message: QDBusMessage):
        from cura.Settings.ContainerManager import ContainerManager
        container_manager = ContainerManager.getInstance()

        new_id = message.arguments()[0]
        new_name = message.arguments()[1]

        container_manager.createMaterial(new_id=new_id, new_name=new_name)
Пример #4
0
 def handle_dbus_add(self, msg: QDBusMessage):
     if 'org.freedesktop.UDisks2.Drive' in msg.arguments()[1]:
         vendor = msg.arguments(
         )[1]['org.freedesktop.UDisks2.Drive']['Vendor']
         model = msg.arguments(
         )[1]['org.freedesktop.UDisks2.Drive']['Model']
         # serial = msg.arguments()[1]['org.freedesktop.UDisks2.Drive']['Serial']
         print(f"Dbus detected new device: {vendor} {model}")
         self.drives_list.refresh()
Пример #5
0
    def exportMaterial(self, message: QDBusMessage):
        material_id = message.arguments()[0]
        material_file_path = message.arguments()[1]

        from cura.Settings.ContainerManager import ContainerManager
        container_manager = ContainerManager.getInstance()
        container_manager.exportContainer(
            material_id,
            container_manager.getContainerNameFilters("material")[0],
            material_file_path)
Пример #6
0
    def saveFile(self, message: QDBusMessage):
        if not message.arguments() or len(message.arguments()) > 2:
            return
        file_path = message.arguments()[0]
        mime_type = "text/x-gcode"
        if len(message.arguments()) == 2:
            mime_type = message.arguments()[1]

        nodes = Application.getInstance().getController().getScene().getRoot()
        output_device = Application.getInstance().getOutputDeviceManager(
        ).getOutputDevice("local_file")
        output_device.requestWrite(nodes,
                                   file_path, [mime_type],
                                   silent=True,
                                   preferred_mimetype=mime_type)
Пример #7
0
 def _on_interfaces_added(self, msg: QDBusMessage):
     objpath, interfaces = msg.arguments()
     print("added", objpath)
     for interface, properties in interfaces.items():
         print("  ", interface)
         for name, value in properties.items():
             print("    ", name, "=", value)
Пример #8
0
 def _on_interfaces_added(self, msg: QDBusMessage):
     objpath, interfaces = msg.arguments()
     print("added", objpath)
     for interface, properties in interfaces.items():
         print("  ", interface)
         for name, value in properties.items():
             print("    ", name, "=", value)
Пример #9
0
    def hasMaterial(self, message: QDBusMessage):
        machine_manager = Application.getInstance().getMachineManager()

        material_id = message.arguments()[0]

        reply = message.createReply()
        reply.setArguments([machine_manager.hasMaterial(material_id)])
        self._session_bus.send(reply)
Пример #10
0
    def setQualityProfile(self, message: QDBusMessage):
        qualityProfileName = message.arguments()[0]

        machine_manager = Application.getInstance().getMachineManager()
        machine_manager.setActiveQuality(qualityProfileName)

        reply = message.createReply()
        self._session_bus.send(reply)
Пример #11
0
    def hasMachine(self, message: QDBusMessage):
        machine_name = message.arguments()[0]

        machine_manager = Application.getInstance().getMachineManager()
        result = machine_manager.hasMachine(machine_name)
        reply = message.createReply()
        reply.setArguments([result])
        self._session_bus.send(reply)
Пример #12
0
    def GetCapabilities(self, message: QDBusMessage) -> List[str]:
        assert not message.signature()
        assert not message.arguments()
        assert message.type() == QDBusMessage.MethodCallMessage

        capabilities = ["actions", "x-kde-origin-name"]
        if self.supports_body_markup:
            capabilities.append("body-markup")

        return capabilities
Пример #13
0
    def _handle_close(self, msg: QDBusMessage) -> None:
        """Handle NotificationClosed from DBus."""
        try:
            self._verify_message(msg, "uu", QDBusMessage.SignalMessage)
        except Error:
            if not self._quirks.wrong_closes_type:
                raise
            self._verify_message(msg, "ui", QDBusMessage.SignalMessage)

        notification_id, _close_reason = msg.arguments()
        self.close_id.emit(notification_id)
Пример #14
0
    def Notify(self, dbus_message: QDBusMessage) -> int:
        assert dbus_message.signature() == 'susssasa{sv}i'
        assert dbus_message.type() == QDBusMessage.MethodCallMessage

        message = self._parse_notify_args(*dbus_message.arguments())

        if message.replaces_id == 0:
            message_id = next(self._message_id_gen)
        else:
            message_id = message.replaces_id
        self.messages[message_id] = message

        self.last_id = message_id
        return message_id
Пример #15
0
    def getMaterial(self, message: QDBusMessage):
        from UM.Settings.ContainerRegistry import ContainerRegistry
        container_registry = ContainerRegistry.getInstance()

        material_id = message.arguments()[0]

        material = container_registry.findInstanceContainers(id=material_id,
                                                             type="material")
        material_data = None
        if material:
            material = material[0]
            material_data = material.serializeMetaData()

        reply = message.createReply()
        reply.setArguments([material_data])
        self._session_bus.send(reply)
Пример #16
0
 def addMachine(self, message: QDBusMessage):
     definition_id, machine_name = message.arguments()[:2]
     machine_manager = Application.getInstance().getMachineManager()
     machine_manager.addMachine(machine_name, definition_id)
Пример #17
0
 def openFile(self, message: QDBusMessage):
     if len(message.arguments()) != 1:
         return
     file_path = message.arguments()[0]
     Application.getInstance().readLocalFile(QUrl.fromLocalFile(file_path))
Пример #18
0
    def setQualityProfile(self, message: QDBusMessage):
        qualityProfileName = message.arguments()[0]

        machine_manager = Application.getInstance().getMachineManager()
        machine_manager.setActiveQuality(qualityProfileName)
Пример #19
0
    def removeMachine(self, message: QDBusMessage):
        machine_name = message.arguments()[0]

        machine_manager = Application.getInstance().getMachineManager()
        machine_manager.removeMachine(machine_name)
Пример #20
0
 def _handle_action(self, msg: QDBusMessage) -> None:
     """Handle ActionInvoked from DBus."""
     self._verify_message(msg, "us", QDBusMessage.SignalMessage)
     notification_id, action_key = msg.arguments()
     if action_key == "default":
         self.click_id.emit(notification_id)
Пример #21
0
    def importMaterial(self, message: QDBusMessage):
        material_file_path = message.arguments()[0]

        from cura.Settings.ContainerManager import ContainerManager
        container_manager = ContainerManager.getInstance()
        container_manager.importContainer(material_file_path)
Пример #22
0
 def _on_interfaces_removed(self, msg: QDBusMessage):
     print("removed", msg.arguments())
Пример #23
0
 def handle_dbus_remove(self, msg: QDBusMessage):
     if 'org.freedesktop.UDisks2.Drive' in msg.arguments()[1]:
         print(f"Dbus detected device removal")
         self.drives_list.refresh()
Пример #24
0
 def _on_interfaces_removed(self, msg: QDBusMessage):
     print("removed", msg.arguments())
Пример #25
0
    def setActiveMaterial(self, message: QDBusMessage):
        material_id = message.arguments()[0]

        machine_manager = Application.getInstance().getMachineManager()
        machine_manager.setActiveMaterial(material_id)
Пример #26
0
 def _handle_close(self, msg: QDBusMessage) -> None:
     """Handle NotificationClosed from DBus."""
     self._verify_message(msg, "uu", QDBusMessage.SignalMessage)
     notification_id, _close_reason = msg.arguments()
     self.close_id.emit(notification_id)
Пример #27
0
    def CloseNotification(self, dbus_message: QDBusMessage) -> None:
        assert dbus_message.signature() == 'u'
        assert dbus_message.type() == QDBusMessage.MethodCallMessage

        message_id = dbus_message.arguments()[0]
        self.messages[message_id].closed_via_web = True
Пример #28
0
 def setActiveExtruder(self, message: QDBusMessage):
     if len(message.arguments()) != 1:
         return
     extruder_position = int(message.arguments()[0])
     extruder_manager = Application.getInstance().getExtruderManager()
     extruder_manager.setActiveExtruderIndex(extruder_position)
Пример #29
0
def get_result(msg: QtDBus.QDBusMessage) -> Any:
    if msg.type() == msg.MessageType.ReplyMessage:
        return msg.arguments()[0]
    else:
        raise DBusException("DBus call failed: {}".format(msg.arguments()))
Пример #30
0
 def renameMachine(self, message: QDBusMessage):
     old_machine_name, new_machine_name = message.arguments()[:2]
     machine_manager = Application.getInstance().getMachineManager()
     machine_manager.renameMachine(old_machine_name, new_machine_name)