mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 15:15:56 +08:00
Added first stubs of MachineActions
CURA-1385
This commit is contained in:
parent
9009fb9d3d
commit
633d14d925
8
cura/MachineAction.py
Normal file
8
cura/MachineAction.py
Normal file
@ -0,0 +1,8 @@
|
||||
from PyQt5.QtCore import QObject
|
||||
from UM.PluginObject import PluginObject
|
||||
|
||||
|
||||
class MachineAction(QObject, PluginObject):
|
||||
def __init__(self, key, label = ""):
|
||||
self._key = key
|
||||
self._label = label
|
53
cura/MachineActionManager.py
Normal file
53
cura/MachineActionManager.py
Normal file
@ -0,0 +1,53 @@
|
||||
from UM.Logger import Logger
|
||||
|
||||
|
||||
class MachineActionManager:
|
||||
def __init__(self):
|
||||
## Dict of all known machine actions
|
||||
self._machine_actions = {}
|
||||
|
||||
## Dict of all required actions by machine reference.
|
||||
self._required_actions = {}
|
||||
|
||||
## Dict of all supported actions by machine reference
|
||||
self._supported_actions = {}
|
||||
|
||||
## Dict of all actions that need to be done when first added by machine reference.
|
||||
self._first_start_actions = {}
|
||||
|
||||
## Add a required action
|
||||
def addRequiredAction(self, machine, action_key):
|
||||
if action_key in self._machine_actions:
|
||||
if machine in self._required_actions:
|
||||
self._required_actions[machine].append(action_key)
|
||||
else:
|
||||
self._required_actions[machine] = set(action_key)
|
||||
else:
|
||||
# Todo: define specific Exception types (instead of general type)
|
||||
raise Exception("Action %s, which is required for %s is not known." % (action_key, machine.getKey()))
|
||||
|
||||
## Add a (unique) MachineAction
|
||||
# if the Key of the action is not unique, an exception is raised.
|
||||
def addMachineAction(self, action):
|
||||
if action.getKey() not in self._machine_action:
|
||||
self._machine_action[action.getKey()] = action
|
||||
else:
|
||||
# Todo: define specific Exception types (instead of general type)
|
||||
raise Exception("MachineAction with key %s was already added. Actions must have unique keys.", action.getKey())
|
||||
|
||||
## Remove Machine action from manager
|
||||
# \param action to remove
|
||||
def removeMachineAction(self, action):
|
||||
try:
|
||||
del self._machine_actions[action.getKey()]
|
||||
except KeyError:
|
||||
Logger.log("w", "Trying to remove MachineAction (%s) that was already removed", action.getKey())
|
||||
|
||||
## Get MachineAction by key
|
||||
# \param key String of key to select
|
||||
# \return Machine action if found, None otherwise
|
||||
def getMachineAction(self, key):
|
||||
if key in self._machine_actions:
|
||||
return self._machine_actions[key]
|
||||
else:
|
||||
return None
|
Loading…
x
Reference in New Issue
Block a user