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)
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)
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)
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()
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)
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)
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)
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)
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)
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)
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
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)
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
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)
def addMachine(self, message: QDBusMessage): definition_id, machine_name = message.arguments()[:2] machine_manager = Application.getInstance().getMachineManager() machine_manager.addMachine(machine_name, definition_id)
def openFile(self, message: QDBusMessage): if len(message.arguments()) != 1: return file_path = message.arguments()[0] Application.getInstance().readLocalFile(QUrl.fromLocalFile(file_path))
def setQualityProfile(self, message: QDBusMessage): qualityProfileName = message.arguments()[0] machine_manager = Application.getInstance().getMachineManager() machine_manager.setActiveQuality(qualityProfileName)
def removeMachine(self, message: QDBusMessage): machine_name = message.arguments()[0] machine_manager = Application.getInstance().getMachineManager() machine_manager.removeMachine(machine_name)
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)
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)
def _on_interfaces_removed(self, msg: QDBusMessage): print("removed", msg.arguments())
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()
def setActiveMaterial(self, message: QDBusMessage): material_id = message.arguments()[0] machine_manager = Application.getInstance().getMachineManager() machine_manager.setActiveMaterial(material_id)
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)
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
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)
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()))
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)