mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-12 01:07:52 -06:00
Add properties of whether the queue can be manipulated
Not all printers can do that. Contributes to issue CURA-9220.
This commit is contained in:
parent
483911dc4a
commit
b4c4371929
2 changed files with 50 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2022 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from time import time
|
from time import time
|
||||||
|
@ -96,6 +96,8 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
|
||||||
|
|
||||||
# Trigger the printersChanged signal when the private signal is triggered.
|
# Trigger the printersChanged signal when the private signal is triggered.
|
||||||
self.printersChanged.connect(self._cloudClusterPrintersChanged)
|
self.printersChanged.connect(self._cloudClusterPrintersChanged)
|
||||||
|
# Trigger the permissionsChanged signal when the account's permissions change.
|
||||||
|
self._account.permissionsChanged.connect(self.permissionsChanged)
|
||||||
|
|
||||||
# Keep server string of the last generated time to avoid updating models more than once for the same response
|
# Keep server string of the last generated time to avoid updating models more than once for the same response
|
||||||
self._received_printers = None # type: Optional[List[ClusterPrinterStatus]]
|
self._received_printers = None # type: Optional[List[ClusterPrinterStatus]]
|
||||||
|
@ -340,6 +342,30 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
|
||||||
def openPrinterControlPanel(self) -> None:
|
def openPrinterControlPanel(self) -> None:
|
||||||
QDesktopServices.openUrl(QUrl(self.clusterCloudUrl + "?utm_source=cura&utm_medium=software&utm_campaign=monitor-manage-printer"))
|
QDesktopServices.openUrl(QUrl(self.clusterCloudUrl + "?utm_source=cura&utm_medium=software&utm_campaign=monitor-manage-printer"))
|
||||||
|
|
||||||
|
permissionsChanged = pyqtSignal()
|
||||||
|
|
||||||
|
@pyqtProperty(bool, notify = permissionsChanged)
|
||||||
|
def canReadPrintJobs(self) -> bool:
|
||||||
|
"""
|
||||||
|
Whether this user can read the list of print jobs and their properties.
|
||||||
|
"""
|
||||||
|
return "digital-factory.print-job.read" in self._account.permissions
|
||||||
|
|
||||||
|
@pyqtProperty(bool, notify = permissionsChanged)
|
||||||
|
def canWriteOthersPrintJobs(self) -> bool:
|
||||||
|
"""
|
||||||
|
Whether this user can change things about print jobs made by other
|
||||||
|
people.
|
||||||
|
"""
|
||||||
|
return "digital-factory.print-job.write" in self._account.permissions
|
||||||
|
|
||||||
|
@pyqtProperty(bool, notify = permissionsChanged)
|
||||||
|
def canWriteOwnPrintJobs(self) -> bool:
|
||||||
|
"""
|
||||||
|
Whether this user can change things about print jobs made by themself.
|
||||||
|
"""
|
||||||
|
return "digital-factory.print-job.write.own" in self._account.permissions
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def clusterData(self) -> CloudClusterResponse:
|
def clusterData(self) -> CloudClusterResponse:
|
||||||
"""Gets the cluster response from which this device was created."""
|
"""Gets the cluster response from which this device was created."""
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2022 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
import os
|
import os
|
||||||
from typing import Optional, Dict, List, Callable, Any
|
from typing import Optional, Dict, List, Callable, Any
|
||||||
|
@ -103,6 +103,28 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice):
|
||||||
"""
|
"""
|
||||||
return True # This API always supports print job queueing.
|
return True # This API always supports print job queueing.
|
||||||
|
|
||||||
|
@pyqtProperty(bool, constant = True)
|
||||||
|
def canReadPrintJobs(self) -> bool:
|
||||||
|
"""
|
||||||
|
Whether this user can read the list of print jobs and their properties.
|
||||||
|
"""
|
||||||
|
return False # On LAN, the user can always read it.
|
||||||
|
|
||||||
|
@pyqtProperty(bool, constant = True)
|
||||||
|
def canWriteOthersPrintJobs(self) -> bool:
|
||||||
|
"""
|
||||||
|
Whether this user can change things about print jobs made by other
|
||||||
|
people.
|
||||||
|
"""
|
||||||
|
return True # On LAN, the user can always change this.
|
||||||
|
|
||||||
|
@pyqtProperty(bool, constant = True)
|
||||||
|
def canWriteOwnPrintJobs(self) -> bool:
|
||||||
|
"""
|
||||||
|
Whether this user can change things about print jobs made by themself.
|
||||||
|
"""
|
||||||
|
return True # On LAN, the user can always change this.
|
||||||
|
|
||||||
def setJobState(self, print_job_uuid: str, action: str) -> None:
|
def setJobState(self, print_job_uuid: str, action: str) -> None:
|
||||||
"""Set the remote print job state.
|
"""Set the remote print job state.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue