mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
CURA-5164 The Preferences is not a singleton class anymore since in some point
several instances need to be created. - In the ThreeMFWorkspaceReader we need to create some temporal instances of Preferences that makes it not singleton anymore. - The current preferences are kept in the Application class and so all the calls to the preferences are changed to get the preferences from Application. - The method getInstance in Preferences is kept as deprecated since some external plugins.
This commit is contained in:
parent
42ecb12614
commit
43657010ba
22 changed files with 102 additions and 119 deletions
|
@ -459,7 +459,7 @@ class CuraApplication(QtApplication):
|
||||||
self._container_registry.loadAllMetadata()
|
self._container_registry.loadAllMetadata()
|
||||||
|
|
||||||
# set the setting version for Preferences
|
# set the setting version for Preferences
|
||||||
preferences = Preferences.getInstance()
|
preferences = self.getPreferences()
|
||||||
preferences.addPreference("metadata/setting_version", 0)
|
preferences.addPreference("metadata/setting_version", 0)
|
||||||
preferences.setValue("metadata/setting_version", self.SettingVersion) #Don't make it equal to the default so that the setting version always gets written to the file.
|
preferences.setValue("metadata/setting_version", self.SettingVersion) #Don't make it equal to the default so that the setting version always gets written to the file.
|
||||||
|
|
||||||
|
@ -484,7 +484,7 @@ class CuraApplication(QtApplication):
|
||||||
preferences.addPreference("view/filter_current_build_plate", False)
|
preferences.addPreference("view/filter_current_build_plate", False)
|
||||||
preferences.addPreference("cura/sidebar_collapsed", False)
|
preferences.addPreference("cura/sidebar_collapsed", False)
|
||||||
|
|
||||||
self._need_to_show_user_agreement = not Preferences.getInstance().getValue("general/accepted_user_agreement")
|
self._need_to_show_user_agreement = not self.getPreferences().getValue("general/accepted_user_agreement")
|
||||||
|
|
||||||
for key in [
|
for key in [
|
||||||
"dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin
|
"dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin
|
||||||
|
@ -546,7 +546,7 @@ class CuraApplication(QtApplication):
|
||||||
|
|
||||||
def discardOrKeepProfileChanges(self):
|
def discardOrKeepProfileChanges(self):
|
||||||
has_user_interaction = False
|
has_user_interaction = False
|
||||||
choice = Preferences.getInstance().getValue("cura/choice_on_profile_override")
|
choice = self.getPreferences().getValue("cura/choice_on_profile_override")
|
||||||
if choice == "always_discard":
|
if choice == "always_discard":
|
||||||
# don't show dialog and DISCARD the profile
|
# don't show dialog and DISCARD the profile
|
||||||
self.discardOrKeepProfileChangesClosed("discard")
|
self.discardOrKeepProfileChangesClosed("discard")
|
||||||
|
@ -597,12 +597,12 @@ class CuraApplication(QtApplication):
|
||||||
|
|
||||||
@pyqtSlot(str, result = QUrl)
|
@pyqtSlot(str, result = QUrl)
|
||||||
def getDefaultPath(self, key):
|
def getDefaultPath(self, key):
|
||||||
default_path = Preferences.getInstance().getValue("local_file/%s" % key)
|
default_path = self.getPreferences().getValue("local_file/%s" % key)
|
||||||
return QUrl.fromLocalFile(default_path)
|
return QUrl.fromLocalFile(default_path)
|
||||||
|
|
||||||
@pyqtSlot(str, str)
|
@pyqtSlot(str, str)
|
||||||
def setDefaultPath(self, key, default_path):
|
def setDefaultPath(self, key, default_path):
|
||||||
Preferences.getInstance().setValue("local_file/%s" % key, QUrl(default_path).toLocalFile())
|
self.getPreferences().setValue("local_file/%s" % key, QUrl(default_path).toLocalFile())
|
||||||
|
|
||||||
## Handle loading of all plugin types (and the backend explicitly)
|
## Handle loading of all plugin types (and the backend explicitly)
|
||||||
# \sa PluginRegistry
|
# \sa PluginRegistry
|
||||||
|
@ -672,7 +672,7 @@ class CuraApplication(QtApplication):
|
||||||
# Initialize setting visibility presets model
|
# Initialize setting visibility presets model
|
||||||
self._setting_visibility_presets_model = SettingVisibilityPresetsModel(self)
|
self._setting_visibility_presets_model = SettingVisibilityPresetsModel(self)
|
||||||
default_visibility_profile = self._setting_visibility_presets_model.getItem(0)
|
default_visibility_profile = self._setting_visibility_presets_model.getItem(0)
|
||||||
Preferences.getInstance().setDefault("general/visible_settings", ";".join(default_visibility_profile["settings"]))
|
self.getPreferences().setDefault("general/visible_settings", ";".join(default_visibility_profile["settings"]))
|
||||||
|
|
||||||
# Detect in which mode to run and execute that mode
|
# Detect in which mode to run and execute that mode
|
||||||
if self._is_headless:
|
if self._is_headless:
|
||||||
|
@ -934,7 +934,7 @@ class CuraApplication(QtApplication):
|
||||||
# Default
|
# Default
|
||||||
self.getController().setActiveTool("TranslateTool")
|
self.getController().setActiveTool("TranslateTool")
|
||||||
|
|
||||||
if Preferences.getInstance().getValue("view/center_on_select"):
|
if self.getPreferences().getValue("view/center_on_select"):
|
||||||
self._center_after_select = True
|
self._center_after_select = True
|
||||||
else:
|
else:
|
||||||
if self.getController().getActiveTool():
|
if self.getController().getActiveTool():
|
||||||
|
@ -1329,15 +1329,15 @@ class CuraApplication(QtApplication):
|
||||||
categories = list(set(categories))
|
categories = list(set(categories))
|
||||||
categories.sort()
|
categories.sort()
|
||||||
joined = ";".join(categories)
|
joined = ";".join(categories)
|
||||||
if joined != Preferences.getInstance().getValue("cura/categories_expanded"):
|
if joined != self.getPreferences().getValue("cura/categories_expanded"):
|
||||||
Preferences.getInstance().setValue("cura/categories_expanded", joined)
|
self.getPreferences().setValue("cura/categories_expanded", joined)
|
||||||
self.expandedCategoriesChanged.emit()
|
self.expandedCategoriesChanged.emit()
|
||||||
|
|
||||||
expandedCategoriesChanged = pyqtSignal()
|
expandedCategoriesChanged = pyqtSignal()
|
||||||
|
|
||||||
@pyqtProperty("QStringList", notify = expandedCategoriesChanged)
|
@pyqtProperty("QStringList", notify = expandedCategoriesChanged)
|
||||||
def expandedCategories(self):
|
def expandedCategories(self):
|
||||||
return Preferences.getInstance().getValue("cura/categories_expanded").split(";")
|
return self.getPreferences().getValue("cura/categories_expanded").split(";")
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def mergeSelected(self):
|
def mergeSelected(self):
|
||||||
|
@ -1600,8 +1600,8 @@ class CuraApplication(QtApplication):
|
||||||
|
|
||||||
self.fileLoaded.emit(filename)
|
self.fileLoaded.emit(filename)
|
||||||
arrange_objects_on_load = (
|
arrange_objects_on_load = (
|
||||||
not Preferences.getInstance().getValue("cura/use_multi_build_plate") or
|
not self.getPreferences().getValue("cura/use_multi_build_plate") or
|
||||||
not Preferences.getInstance().getValue("cura/not_arrange_objects_on_load"))
|
not self.getPreferences().getValue("cura/not_arrange_objects_on_load"))
|
||||||
target_build_plate = self.getMultiBuildPlateModel().activeBuildPlate if arrange_objects_on_load else -1
|
target_build_plate = self.getMultiBuildPlateModel().activeBuildPlate if arrange_objects_on_load else -1
|
||||||
|
|
||||||
root = self.getController().getScene().getRoot()
|
root = self.getController().getScene().getRoot()
|
||||||
|
|
|
@ -8,9 +8,9 @@ from configparser import ConfigParser
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, Qt, pyqtSignal, pyqtSlot
|
from PyQt5.QtCore import pyqtProperty, Qt, pyqtSignal, pyqtSlot
|
||||||
|
|
||||||
|
from UM.Application import Application
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeTypeNotFoundError
|
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeTypeNotFoundError
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ class SettingVisibilityPresetsModel(ListModel):
|
||||||
basic_item = self.items[1]
|
basic_item = self.items[1]
|
||||||
basic_visibile_settings = ";".join(basic_item["settings"])
|
basic_visibile_settings = ";".join(basic_item["settings"])
|
||||||
|
|
||||||
self._preferences = Preferences.getInstance()
|
self._preferences = Application.getInstance().getPreferences()
|
||||||
# Preference to store which preset is currently selected
|
# Preference to store which preset is currently selected
|
||||||
self._preferences.addPreference("cura/active_setting_visibility_preset", "basic")
|
self._preferences.addPreference("cura/active_setting_visibility_preset", "basic")
|
||||||
# Preference that stores the "custom" set so it can always be restored (even after a restart)
|
# Preference that stores the "custom" set so it can always be restored (even after a restart)
|
||||||
|
|
|
@ -8,7 +8,6 @@ from UM.Qt.ListModel import ListModel
|
||||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
|
@ -20,7 +19,7 @@ class ObjectsModel(ListModel):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
Application.getInstance().getController().getScene().sceneChanged.connect(self._updateDelayed)
|
Application.getInstance().getController().getScene().sceneChanged.connect(self._updateDelayed)
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._updateDelayed)
|
Application.getInstance().getPreferences().preferenceChanged.connect(self._updateDelayed)
|
||||||
|
|
||||||
self._update_timer = QTimer()
|
self._update_timer = QTimer()
|
||||||
self._update_timer.setInterval(100)
|
self._update_timer.setInterval(100)
|
||||||
|
@ -38,7 +37,7 @@ class ObjectsModel(ListModel):
|
||||||
|
|
||||||
def _update(self, *args):
|
def _update(self, *args):
|
||||||
nodes = []
|
nodes = []
|
||||||
filter_current_build_plate = Preferences.getInstance().getValue("view/filter_current_build_plate")
|
filter_current_build_plate = Application.getInstance().getPreferences().getValue("view/filter_current_build_plate")
|
||||||
active_build_plate_number = self._build_plate_number
|
active_build_plate_number = self._build_plate_number
|
||||||
group_nr = 1
|
group_nr = 1
|
||||||
for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()):
|
for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()):
|
||||||
|
|
|
@ -8,7 +8,6 @@ from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Preferences import Preferences
|
|
||||||
|
|
||||||
from cura.Scene.ConvexHullDecorator import ConvexHullDecorator
|
from cura.Scene.ConvexHullDecorator import ConvexHullDecorator
|
||||||
|
|
||||||
|
@ -36,8 +35,8 @@ class PlatformPhysics:
|
||||||
self._max_overlap_checks = 10 # How many times should we try to find a new spot per tick?
|
self._max_overlap_checks = 10 # How many times should we try to find a new spot per tick?
|
||||||
self._minimum_gap = 2 # It is a minimum distance (in mm) between two models, applicable for small models
|
self._minimum_gap = 2 # It is a minimum distance (in mm) between two models, applicable for small models
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("physics/automatic_push_free", True)
|
Application.getInstance().getPreferences().addPreference("physics/automatic_push_free", True)
|
||||||
Preferences.getInstance().addPreference("physics/automatic_drop_down", True)
|
Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", True)
|
||||||
|
|
||||||
def _onSceneChanged(self, source):
|
def _onSceneChanged(self, source):
|
||||||
if not source.getMeshData():
|
if not source.getMeshData():
|
||||||
|
@ -71,7 +70,7 @@ class PlatformPhysics:
|
||||||
# Move it downwards if bottom is above platform
|
# Move it downwards if bottom is above platform
|
||||||
move_vector = Vector()
|
move_vector = Vector()
|
||||||
|
|
||||||
if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down
|
if Application.getInstance().getPreferences().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down
|
||||||
z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0
|
z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0
|
||||||
move_vector = move_vector.set(y = -bbox.bottom + z_offset)
|
move_vector = move_vector.set(y = -bbox.bottom + z_offset)
|
||||||
|
|
||||||
|
@ -80,7 +79,7 @@ class PlatformPhysics:
|
||||||
node.addDecorator(ConvexHullDecorator())
|
node.addDecorator(ConvexHullDecorator())
|
||||||
|
|
||||||
# only push away objects if this node is a printing mesh
|
# only push away objects if this node is a printing mesh
|
||||||
if not node.callDecoration("isNonPrintingMesh") and Preferences.getInstance().getValue("physics/automatic_push_free"):
|
if not node.callDecoration("isNonPrintingMesh") and Application.getInstance().getPreferences().getValue("physics/automatic_push_free"):
|
||||||
# Check for collisions between convex hulls
|
# Check for collisions between convex hulls
|
||||||
for other_node in BreadthFirstIterator(root):
|
for other_node in BreadthFirstIterator(root):
|
||||||
# Ignore root, ourselves and anything that is not a normal SceneNode.
|
# Ignore root, ourselves and anything that is not a normal SceneNode.
|
||||||
|
|
|
@ -12,7 +12,6 @@ from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty, pyqtSlot
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Qt.Duration import Duration
|
from UM.Qt.Duration import Duration
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Scene.SceneNode import SceneNode
|
||||||
|
|
||||||
|
@ -80,7 +79,7 @@ class PrintInformation(QObject):
|
||||||
self._application.workspaceLoaded.connect(self.setProjectName)
|
self._application.workspaceLoaded.connect(self.setProjectName)
|
||||||
self._multi_build_plate_model.activeBuildPlateChanged.connect(self._onActiveBuildPlateChanged)
|
self._multi_build_plate_model.activeBuildPlateChanged.connect(self._onActiveBuildPlateChanged)
|
||||||
|
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
|
self._application.getInstance().getPreferences().preferenceChanged.connect(self._onPreferencesChanged)
|
||||||
|
|
||||||
self._application.getMachineManager().rootMaterialChanged.connect(self._onActiveMaterialsChanged)
|
self._application.getMachineManager().rootMaterialChanged.connect(self._onActiveMaterialsChanged)
|
||||||
self._onActiveMaterialsChanged()
|
self._onActiveMaterialsChanged()
|
||||||
|
@ -208,7 +207,7 @@ class PrintInformation(QObject):
|
||||||
self._material_costs[build_plate_number] = []
|
self._material_costs[build_plate_number] = []
|
||||||
self._material_names[build_plate_number] = []
|
self._material_names[build_plate_number] = []
|
||||||
|
|
||||||
material_preference_values = json.loads(Preferences.getInstance().getValue("cura/material_settings"))
|
material_preference_values = json.loads(self._application.getInstance().getPreferences().getValue("cura/material_settings"))
|
||||||
|
|
||||||
extruder_stacks = global_stack.extruders
|
extruder_stacks = global_stack.extruders
|
||||||
for position, extruder_stack in extruder_stacks.items():
|
for position, extruder_stack in extruder_stacks.items():
|
||||||
|
@ -299,7 +298,7 @@ class PrintInformation(QObject):
|
||||||
self._setAbbreviatedMachineName()
|
self._setAbbreviatedMachineName()
|
||||||
if self._pre_sliced:
|
if self._pre_sliced:
|
||||||
self._job_name = catalog.i18nc("@label", "Pre-sliced file {0}", base_name)
|
self._job_name = catalog.i18nc("@label", "Pre-sliced file {0}", base_name)
|
||||||
elif Preferences.getInstance().getValue("cura/jobname_prefix"):
|
elif self._application.getInstance().getPreferences().getValue("cura/jobname_prefix"):
|
||||||
# Don't add abbreviation if it already has the exact same abbreviation.
|
# Don't add abbreviation if it already has the exact same abbreviation.
|
||||||
if base_name.startswith(self._abbr_machine + "_"):
|
if base_name.startswith(self._abbr_machine + "_"):
|
||||||
self._job_name = base_name
|
self._job_name = base_name
|
||||||
|
|
|
@ -16,7 +16,6 @@ from UM.FlameProfiler import pyqtSlot
|
||||||
from UM import Util
|
from UM import Util
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
|
|
||||||
|
@ -97,12 +96,12 @@ class MachineManager(QObject):
|
||||||
ExtruderManager.getInstance().activeExtruderChanged.connect(self.activeStackChanged)
|
ExtruderManager.getInstance().activeExtruderChanged.connect(self.activeStackChanged)
|
||||||
self.activeStackChanged.connect(self.activeStackValueChanged)
|
self.activeStackChanged.connect(self.activeStackValueChanged)
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("cura/active_machine", "")
|
self._application.getPreferences().addPreference("cura/active_machine", "")
|
||||||
|
|
||||||
self._global_event_keys = set()
|
self._global_event_keys = set()
|
||||||
|
|
||||||
self._printer_output_devices = [] # type: List[PrinterOutputDevice]
|
self._printer_output_devices = [] # type: List[PrinterOutputDevice]
|
||||||
Application.getInstance().getOutputDeviceManager().outputDevicesChanged.connect(self._onOutputDevicesChanged)
|
self._application.getOutputDeviceManager().outputDevicesChanged.connect(self._onOutputDevicesChanged)
|
||||||
# There might already be some output devices by the time the signal is connected
|
# There might already be some output devices by the time the signal is connected
|
||||||
self._onOutputDevicesChanged()
|
self._onOutputDevicesChanged()
|
||||||
|
|
||||||
|
@ -163,7 +162,7 @@ class MachineManager(QObject):
|
||||||
rootMaterialChanged = pyqtSignal()
|
rootMaterialChanged = pyqtSignal()
|
||||||
|
|
||||||
def setInitialActiveMachine(self) -> None:
|
def setInitialActiveMachine(self) -> None:
|
||||||
active_machine_id = Preferences.getInstance().getValue("cura/active_machine")
|
active_machine_id = self._application.getPreferences().getValue("cura/active_machine")
|
||||||
if active_machine_id != "" and ContainerRegistry.getInstance().findContainerStacksMetadata(id = active_machine_id):
|
if active_machine_id != "" and ContainerRegistry.getInstance().findContainerStacksMetadata(id = active_machine_id):
|
||||||
# An active machine was saved, so restore it.
|
# An active machine was saved, so restore it.
|
||||||
self.setActiveMachine(active_machine_id)
|
self.setActiveMachine(active_machine_id)
|
||||||
|
@ -172,7 +171,7 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
def _onOutputDevicesChanged(self) -> None:
|
def _onOutputDevicesChanged(self) -> None:
|
||||||
self._printer_output_devices = []
|
self._printer_output_devices = []
|
||||||
for printer_output_device in Application.getInstance().getOutputDeviceManager().getOutputDevices():
|
for printer_output_device in self._application.getOutputDeviceManager().getOutputDevices():
|
||||||
if isinstance(printer_output_device, PrinterOutputDevice):
|
if isinstance(printer_output_device, PrinterOutputDevice):
|
||||||
self._printer_output_devices.append(printer_output_device)
|
self._printer_output_devices.append(printer_output_device)
|
||||||
|
|
||||||
|
@ -239,7 +238,7 @@ class MachineManager(QObject):
|
||||||
extruder_stack.containersChanged.disconnect(self._onContainersChanged)
|
extruder_stack.containersChanged.disconnect(self._onContainersChanged)
|
||||||
|
|
||||||
# Update the local global container stack reference
|
# Update the local global container stack reference
|
||||||
self._global_container_stack = Application.getInstance().getGlobalContainerStack()
|
self._global_container_stack = self._application.getGlobalContainerStack()
|
||||||
if self._global_container_stack:
|
if self._global_container_stack:
|
||||||
self.updateDefaultExtruder()
|
self.updateDefaultExtruder()
|
||||||
self.updateNumberExtrudersEnabled()
|
self.updateNumberExtrudersEnabled()
|
||||||
|
@ -247,7 +246,7 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
# after switching the global stack we reconnect all the signals and set the variant and material references
|
# after switching the global stack we reconnect all the signals and set the variant and material references
|
||||||
if self._global_container_stack:
|
if self._global_container_stack:
|
||||||
Preferences.getInstance().setValue("cura/active_machine", self._global_container_stack.getId())
|
self._application.getPreferences().setValue("cura/active_machine", self._global_container_stack.getId())
|
||||||
|
|
||||||
self._global_container_stack.nameChanged.connect(self._onMachineNameChanged)
|
self._global_container_stack.nameChanged.connect(self._onMachineNameChanged)
|
||||||
self._global_container_stack.containersChanged.connect(self._onContainersChanged)
|
self._global_container_stack.containersChanged.connect(self._onContainersChanged)
|
||||||
|
@ -271,7 +270,7 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
if self._global_container_stack.getId() in self.machine_extruder_material_update_dict:
|
if self._global_container_stack.getId() in self.machine_extruder_material_update_dict:
|
||||||
for func in self.machine_extruder_material_update_dict[self._global_container_stack.getId()]:
|
for func in self.machine_extruder_material_update_dict[self._global_container_stack.getId()]:
|
||||||
Application.getInstance().callLater(func)
|
self._application.callLater(func)
|
||||||
del self.machine_extruder_material_update_dict[self._global_container_stack.getId()]
|
del self.machine_extruder_material_update_dict[self._global_container_stack.getId()]
|
||||||
|
|
||||||
self.activeQualityGroupChanged.emit()
|
self.activeQualityGroupChanged.emit()
|
||||||
|
@ -361,7 +360,7 @@ class MachineManager(QObject):
|
||||||
global_stack = containers[0]
|
global_stack = containers[0]
|
||||||
ExtruderManager.getInstance().setActiveExtruderIndex(0) # Switch to first extruder
|
ExtruderManager.getInstance().setActiveExtruderIndex(0) # Switch to first extruder
|
||||||
self._global_container_stack = global_stack
|
self._global_container_stack = global_stack
|
||||||
Application.getInstance().setGlobalContainerStack(global_stack)
|
self._application.setGlobalContainerStack(global_stack)
|
||||||
ExtruderManager.getInstance()._globalContainerStackChanged()
|
ExtruderManager.getInstance()._globalContainerStackChanged()
|
||||||
self._initMachineState(containers[0])
|
self._initMachineState(containers[0])
|
||||||
self._onGlobalContainerChanged()
|
self._onGlobalContainerChanged()
|
||||||
|
@ -835,7 +834,7 @@ class MachineManager(QObject):
|
||||||
## Set the amount of extruders on the active machine (global stack)
|
## Set the amount of extruders on the active machine (global stack)
|
||||||
# \param extruder_count int the number of extruders to set
|
# \param extruder_count int the number of extruders to set
|
||||||
def setActiveMachineExtruderCount(self, extruder_count: int) -> None:
|
def setActiveMachineExtruderCount(self, extruder_count: int) -> None:
|
||||||
extruder_manager = Application.getInstance().getExtruderManager()
|
extruder_manager = self._application.getExtruderManager()
|
||||||
|
|
||||||
definition_changes_container = self._global_container_stack.definitionChanges
|
definition_changes_container = self._global_container_stack.definitionChanges
|
||||||
if not self._global_container_stack or definition_changes_container == self._empty_definition_changes_container:
|
if not self._global_container_stack or definition_changes_container == self._empty_definition_changes_container:
|
||||||
|
@ -852,7 +851,7 @@ class MachineManager(QObject):
|
||||||
self.correctExtruderSettings()
|
self.correctExtruderSettings()
|
||||||
|
|
||||||
# Check to see if any objects are set to print with an extruder that will no longer exist
|
# Check to see if any objects are set to print with an extruder that will no longer exist
|
||||||
root_node = Application.getInstance().getController().getScene().getRoot()
|
root_node = self._application.getController().getScene().getRoot()
|
||||||
for node in DepthFirstIterator(root_node):
|
for node in DepthFirstIterator(root_node):
|
||||||
if node.getMeshData():
|
if node.getMeshData():
|
||||||
extruder_nr = node.callDecoration("getActiveExtruderPosition")
|
extruder_nr = node.callDecoration("getActiveExtruderPosition")
|
||||||
|
@ -885,7 +884,7 @@ class MachineManager(QObject):
|
||||||
global_user_container.removeInstance(setting_key)
|
global_user_container.removeInstance(setting_key)
|
||||||
|
|
||||||
# Signal that the global stack has changed
|
# Signal that the global stack has changed
|
||||||
Application.getInstance().globalContainerStackChanged.emit()
|
self._application.globalContainerStackChanged.emit()
|
||||||
self.forceUpdateAllSettings()
|
self.forceUpdateAllSettings()
|
||||||
|
|
||||||
@pyqtSlot(int, result = QObject)
|
@pyqtSlot(int, result = QObject)
|
||||||
|
@ -1117,7 +1116,7 @@ class MachineManager(QObject):
|
||||||
def _setGlobalVariant(self, container_node):
|
def _setGlobalVariant(self, container_node):
|
||||||
self._global_container_stack.variant = container_node.getContainer()
|
self._global_container_stack.variant = container_node.getContainer()
|
||||||
if not self._global_container_stack.variant:
|
if not self._global_container_stack.variant:
|
||||||
self._global_container_stack.variant = Application.getInstance().empty_variant_container
|
self._global_container_stack.variant = self._application.empty_variant_container
|
||||||
|
|
||||||
def _setMaterial(self, position, container_node = None):
|
def _setMaterial(self, position, container_node = None):
|
||||||
if container_node and container_node.getContainer():
|
if container_node and container_node.getContainer():
|
||||||
|
@ -1359,7 +1358,7 @@ class MachineManager(QObject):
|
||||||
self._setQualityGroup(quality_group)
|
self._setQualityGroup(quality_group)
|
||||||
|
|
||||||
# See if we need to show the Discard or Keep changes screen
|
# See if we need to show the Discard or Keep changes screen
|
||||||
if not no_dialog and self.hasUserSettings and Preferences.getInstance().getValue("cura/active_mode") == 1:
|
if not no_dialog and self.hasUserSettings and self._application.getPreferences().getValue("cura/active_mode") == 1:
|
||||||
self._application.discardOrKeepProfileChanges()
|
self._application.discardOrKeepProfileChanges()
|
||||||
|
|
||||||
@pyqtProperty(QObject, fset = setQualityGroup, notify = activeQualityGroupChanged)
|
@pyqtProperty(QObject, fset = setQualityGroup, notify = activeQualityGroupChanged)
|
||||||
|
@ -1373,7 +1372,7 @@ class MachineManager(QObject):
|
||||||
self._setQualityChangesGroup(quality_changes_group)
|
self._setQualityChangesGroup(quality_changes_group)
|
||||||
|
|
||||||
# See if we need to show the Discard or Keep changes screen
|
# See if we need to show the Discard or Keep changes screen
|
||||||
if not no_dialog and self.hasUserSettings and Preferences.getInstance().getValue("cura/active_mode") == 1:
|
if not no_dialog and self.hasUserSettings and self._application.getPreferences().getValue("cura/active_mode") == 1:
|
||||||
self._application.discardOrKeepProfileChanges()
|
self._application.discardOrKeepProfileChanges()
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
|
|
|
@ -456,7 +456,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
num_visible_settings = len(visible_settings_string.split(";"))
|
num_visible_settings = len(visible_settings_string.split(";"))
|
||||||
active_mode = temp_preferences.getValue("cura/active_mode")
|
active_mode = temp_preferences.getValue("cura/active_mode")
|
||||||
if not active_mode:
|
if not active_mode:
|
||||||
active_mode = Preferences.getInstance().getValue("cura/active_mode")
|
active_mode = Application.getInstance().getPreferences().getValue("cura/active_mode")
|
||||||
except KeyError:
|
except KeyError:
|
||||||
# If there is no preferences file, it's not a workspace, so notify user of failure.
|
# If there is no preferences file, it's not a workspace, so notify user of failure.
|
||||||
Logger.log("w", "File %s is not a valid workspace.", file_name)
|
Logger.log("w", "File %s is not a valid workspace.", file_name)
|
||||||
|
@ -575,7 +575,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
temp_preferences.deserialize(serialized)
|
temp_preferences.deserialize(serialized)
|
||||||
|
|
||||||
# Copy a number of settings from the temp preferences to the global
|
# Copy a number of settings from the temp preferences to the global
|
||||||
global_preferences = Preferences.getInstance()
|
global_preferences = application.getInstance().getPreferences()
|
||||||
|
|
||||||
visible_settings = temp_preferences.getValue("general/visible_settings")
|
visible_settings = temp_preferences.getValue("general/visible_settings")
|
||||||
if visible_settings is None:
|
if visible_settings is None:
|
||||||
|
|
|
@ -51,7 +51,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter):
|
||||||
self._writeContainerToArchive(container, archive)
|
self._writeContainerToArchive(container, archive)
|
||||||
|
|
||||||
# Write preferences to archive
|
# Write preferences to archive
|
||||||
original_preferences = Preferences.getInstance() #Copy only the preferences that we use to the workspace.
|
original_preferences = Application.getInstance().getPreferences() #Copy only the preferences that we use to the workspace.
|
||||||
temp_preferences = Preferences()
|
temp_preferences = Preferences()
|
||||||
for preference in {"general/visible_settings", "cura/active_mode", "cura/categories_expanded"}:
|
for preference in {"general/visible_settings", "cura/active_mode", "cura/categories_expanded"}:
|
||||||
temp_preferences.addPreference(preference, None)
|
temp_preferences.addPreference(preference, None)
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt5.QtCore import QTimer
|
||||||
|
|
||||||
from UM.Extension import Extension
|
from UM.Extension import Extension
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -14,14 +13,14 @@ class AutoSave(Extension):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._triggerTimer)
|
Application.getInstance().getPreferences().preferenceChanged.connect(self._triggerTimer)
|
||||||
|
|
||||||
self._global_stack = None
|
self._global_stack = None
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("cura/autosave_delay", 1000 * 10)
|
Application.getInstance().getPreferences().addPreference("cura/autosave_delay", 1000 * 10)
|
||||||
|
|
||||||
self._change_timer = QTimer()
|
self._change_timer = QTimer()
|
||||||
self._change_timer.setInterval(Preferences.getInstance().getValue("cura/autosave_delay"))
|
self._change_timer.setInterval(Application.getInstance().getPreferences().getValue("cura/autosave_delay"))
|
||||||
self._change_timer.setSingleShot(True)
|
self._change_timer.setSingleShot(True)
|
||||||
|
|
||||||
self._saving = False
|
self._saving = False
|
||||||
|
@ -72,6 +71,6 @@ class AutoSave(Extension):
|
||||||
|
|
||||||
Application.getInstance().saveSettings()
|
Application.getInstance().saveSettings()
|
||||||
|
|
||||||
Preferences.getInstance().writeToFile(Resources.getStoragePath(Resources.Preferences, Application.getInstance().getApplicationName() + ".cfg"))
|
Application.getInstance().getPreferences().writeToFile(Resources.getStoragePath(Resources.Preferences, Application.getInstance().getApplicationName() + ".cfg"))
|
||||||
|
|
||||||
self._saving = False
|
self._saving = False
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Extension import Extension
|
from UM.Extension import Extension
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.PluginRegistry import PluginRegistry
|
from UM.PluginRegistry import PluginRegistry
|
||||||
from UM.Version import Version
|
from UM.Version import Version
|
||||||
|
@ -29,7 +28,7 @@ class ChangeLog(Extension, QObject,):
|
||||||
|
|
||||||
self._change_logs = None
|
self._change_logs = None
|
||||||
Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated)
|
Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated)
|
||||||
Preferences.getInstance().addPreference("general/latest_version_changelog_shown", "2.0.0") #First version of CURA with uranium
|
Application.getInstance().getPreferences().addPreference("general/latest_version_changelog_shown", "2.0.0") #First version of CURA with uranium
|
||||||
self.addMenuItem(catalog.i18nc("@item:inmenu", "Show Changelog"), self.showChangelog)
|
self.addMenuItem(catalog.i18nc("@item:inmenu", "Show Changelog"), self.showChangelog)
|
||||||
|
|
||||||
def getChangeLogs(self):
|
def getChangeLogs(self):
|
||||||
|
@ -79,12 +78,12 @@ class ChangeLog(Extension, QObject,):
|
||||||
if not self._current_app_version:
|
if not self._current_app_version:
|
||||||
return #We're on dev branch.
|
return #We're on dev branch.
|
||||||
|
|
||||||
if Preferences.getInstance().getValue("general/latest_version_changelog_shown") == "master":
|
if Application.getInstance().getPreferences().getValue("general/latest_version_changelog_shown") == "master":
|
||||||
latest_version_shown = Version("0.0.0")
|
latest_version_shown = Version("0.0.0")
|
||||||
else:
|
else:
|
||||||
latest_version_shown = Version(Preferences.getInstance().getValue("general/latest_version_changelog_shown"))
|
latest_version_shown = Version(Application.getInstance().getPreferences().getValue("general/latest_version_changelog_shown"))
|
||||||
|
|
||||||
Preferences.getInstance().setValue("general/latest_version_changelog_shown", Application.getInstance().getVersion())
|
Application.getInstance().getPreferences().setValue("general/latest_version_changelog_shown", Application.getInstance().getVersion())
|
||||||
|
|
||||||
# Do not show the changelog when there is no global container stack
|
# Do not show the changelog when there is no global container stack
|
||||||
# This implies we are running Cura for the first time.
|
# This implies we are running Cura for the first time.
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
from UM.Backend.Backend import Backend, BackendState
|
from UM.Backend.Backend import Backend, BackendState
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Signal import Signal
|
from UM.Signal import Signal
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
|
@ -72,7 +71,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
Logger.log("i", "Found CuraEngine at: %s", default_engine_location)
|
Logger.log("i", "Found CuraEngine at: %s", default_engine_location)
|
||||||
|
|
||||||
default_engine_location = os.path.abspath(default_engine_location)
|
default_engine_location = os.path.abspath(default_engine_location)
|
||||||
Preferences.getInstance().addPreference("backend/location", default_engine_location)
|
Application.getInstance().getPreferences().addPreference("backend/location", default_engine_location)
|
||||||
|
|
||||||
# Workaround to disable layer view processing if layer view is not active.
|
# Workaround to disable layer view processing if layer view is not active.
|
||||||
self._layer_view_active = False
|
self._layer_view_active = False
|
||||||
|
@ -121,7 +120,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
self._slice_start_time = None
|
self._slice_start_time = None
|
||||||
self._is_disabled = False
|
self._is_disabled = False
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("general/auto_slice", False)
|
Application.getInstance().getPreferences().addPreference("general/auto_slice", False)
|
||||||
|
|
||||||
self._use_timer = False
|
self._use_timer = False
|
||||||
# When you update a setting and other settings get changed through inheritance, many propertyChanged signals are fired.
|
# When you update a setting and other settings get changed through inheritance, many propertyChanged signals are fired.
|
||||||
|
@ -131,7 +130,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
self._change_timer.setSingleShot(True)
|
self._change_timer.setSingleShot(True)
|
||||||
self._change_timer.setInterval(500)
|
self._change_timer.setInterval(500)
|
||||||
self.determineAutoSlicing()
|
self.determineAutoSlicing()
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
|
Application.getInstance().getPreferences().preferenceChanged.connect(self._onPreferencesChanged)
|
||||||
|
|
||||||
self._application.initializationFinished.connect(self.initialize)
|
self._application.initializationFinished.connect(self.initialize)
|
||||||
|
|
||||||
|
@ -170,7 +169,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
# \return list of commands and args / parameters.
|
# \return list of commands and args / parameters.
|
||||||
def getEngineCommand(self):
|
def getEngineCommand(self):
|
||||||
json_path = Resources.getPath(Resources.DefinitionContainers, "fdmprinter.def.json")
|
json_path = Resources.getPath(Resources.DefinitionContainers, "fdmprinter.def.json")
|
||||||
return [Preferences.getInstance().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, ""]
|
return [Application.getInstance().getPreferences().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, ""]
|
||||||
|
|
||||||
## Emitted when we get a message containing print duration and material amount.
|
## Emitted when we get a message containing print duration and material amount.
|
||||||
# This also implies the slicing has finished.
|
# This also implies the slicing has finished.
|
||||||
|
@ -408,7 +407,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
enable_timer = True
|
enable_timer = True
|
||||||
self._is_disabled = False
|
self._is_disabled = False
|
||||||
|
|
||||||
if not Preferences.getInstance().getValue("general/auto_slice"):
|
if not Application.getInstance().getPreferences().getValue("general/auto_slice"):
|
||||||
enable_timer = False
|
enable_timer = False
|
||||||
for node in DepthFirstIterator(self._scene.getRoot()):
|
for node in DepthFirstIterator(self._scene.getRoot()):
|
||||||
if node.callDecoration("isBlockSlicing"):
|
if node.callDecoration("isBlockSlicing"):
|
||||||
|
|
|
@ -6,7 +6,6 @@ import gc
|
||||||
from UM.Job import Job
|
from UM.Job import Job
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Mesh.MeshData import MeshData
|
from UM.Mesh.MeshData import MeshData
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.View.GL.OpenGLContext import OpenGLContext
|
from UM.View.GL.OpenGLContext import OpenGLContext
|
||||||
|
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
|
@ -199,7 +198,7 @@ class ProcessSlicedLayersJob(Job):
|
||||||
material_color_map[0, :] = color
|
material_color_map[0, :] = color
|
||||||
|
|
||||||
# We have to scale the colors for compatibility mode
|
# We have to scale the colors for compatibility mode
|
||||||
if OpenGLContext.isLegacyOpenGL() or bool(Preferences.getInstance().getValue("view/force_layer_view_compatibility_mode")):
|
if OpenGLContext.isLegacyOpenGL() or bool(Application.getInstance().getPreferences().getValue("view/force_layer_view_compatibility_mode")):
|
||||||
line_type_brightness = 0.5 # for compatibility mode
|
line_type_brightness = 0.5 # for compatibility mode
|
||||||
else:
|
else:
|
||||||
line_type_brightness = 1.0
|
line_type_brightness = 1.0
|
||||||
|
|
|
@ -5,8 +5,7 @@ from PyQt5.QtCore import QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt5.QtGui import QDesktopServices
|
||||||
|
|
||||||
from UM.Extension import Extension
|
from UM.Extension import Extension
|
||||||
from UM.Preferences import Preferences
|
from UM.Application import Application
|
||||||
from UM.Logger import Logger
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from cura.Settings.GlobalStack import GlobalStack
|
from cura.Settings.GlobalStack import GlobalStack
|
||||||
|
|
||||||
|
@ -27,12 +26,12 @@ class FirmwareUpdateChecker(Extension):
|
||||||
|
|
||||||
# Initialize the Preference called `latest_checked_firmware` that stores the last version
|
# Initialize the Preference called `latest_checked_firmware` that stores the last version
|
||||||
# checked for the UM3. In the future if we need to check other printers' firmware
|
# checked for the UM3. In the future if we need to check other printers' firmware
|
||||||
Preferences.getInstance().addPreference("info/latest_checked_firmware", "")
|
Application.getInstance().getPreferences().addPreference("info/latest_checked_firmware", "")
|
||||||
|
|
||||||
# Listen to a Signal that indicates a change in the list of printers, just if the user has enabled the
|
# Listen to a Signal that indicates a change in the list of printers, just if the user has enabled the
|
||||||
# 'check for updates' option
|
# 'check for updates' option
|
||||||
Preferences.getInstance().addPreference("info/automatic_update_check", True)
|
Application.getInstance().getPreferences().addPreference("info/automatic_update_check", True)
|
||||||
if Preferences.getInstance().getValue("info/automatic_update_check"):
|
if Application.getInstance().getPreferences().getValue("info/automatic_update_check"):
|
||||||
ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded)
|
ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded)
|
||||||
|
|
||||||
self._download_url = None
|
self._download_url = None
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2017 Ultimaker B.V.
|
# Copyright (c) 2017 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 UM.Preferences import Preferences
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -51,11 +50,11 @@ class FirmwareUpdateCheckerJob(Job):
|
||||||
current_version = reader(current_version_file).readline().rstrip()
|
current_version = reader(current_version_file).readline().rstrip()
|
||||||
|
|
||||||
# If it is the first time the version is checked, the checked_version is ''
|
# If it is the first time the version is checked, the checked_version is ''
|
||||||
checked_version = Preferences.getInstance().getValue("info/latest_checked_firmware")
|
checked_version = Application.getInstance().getPreferences().getValue("info/latest_checked_firmware")
|
||||||
|
|
||||||
# If the checked_version is '', it's because is the first time we check firmware and in this case
|
# If the checked_version is '', it's because is the first time we check firmware and in this case
|
||||||
# we will not show the notification, but we will store it for the next time
|
# we will not show the notification, but we will store it for the next time
|
||||||
Preferences.getInstance().setValue("info/latest_checked_firmware", current_version)
|
Application.getInstance().getPreferences().setValue("info/latest_checked_firmware", current_version)
|
||||||
Logger.log("i", "Reading firmware version of %s: checked = %s - latest = %s", machine_name, checked_version, current_version)
|
Logger.log("i", "Reading firmware version of %s: checked = %s - latest = %s", machine_name, checked_version, current_version)
|
||||||
|
|
||||||
# The first time we want to store the current version, the notification will not be shown,
|
# The first time we want to store the current version, the notification will not be shown,
|
||||||
|
|
|
@ -10,7 +10,6 @@ from UM.Math.Vector import Vector
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
from cura.Scene.CuraSceneNode import CuraSceneNode
|
from cura.Scene.CuraSceneNode import CuraSceneNode
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Preferences import Preferences
|
|
||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
|
@ -43,7 +42,7 @@ class FlavorParser:
|
||||||
self._current_layer_thickness = 0.2 # default
|
self._current_layer_thickness = 0.2 # default
|
||||||
self._filament_diameter = 2.85 # default
|
self._filament_diameter = 2.85 # default
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("gcodereader/show_caution", True)
|
Application.getInstance().getPreferences().addPreference("gcodereader/show_caution", True)
|
||||||
|
|
||||||
def _clearValues(self):
|
def _clearValues(self):
|
||||||
self._extruder_number = 0
|
self._extruder_number = 0
|
||||||
|
@ -462,7 +461,7 @@ class FlavorParser:
|
||||||
|
|
||||||
Logger.log("d", "GCode loading finished")
|
Logger.log("d", "GCode loading finished")
|
||||||
|
|
||||||
if Preferences.getInstance().getValue("gcodereader/show_caution"):
|
if Application.getInstance().getPreferences().getValue("gcodereader/show_caution"):
|
||||||
caution_message = Message(catalog.i18nc(
|
caution_message = Message(catalog.i18nc(
|
||||||
"@info:generic",
|
"@info:generic",
|
||||||
"Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate."),
|
"Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate."),
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
from UM.FileHandler.FileReader import FileReader
|
from UM.FileHandler.FileReader import FileReader
|
||||||
from UM.Mesh.MeshReader import MeshReader
|
from UM.Mesh.MeshReader import MeshReader
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Preferences import Preferences
|
from UM.Application import Application
|
||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
from . import MarlinFlavorParser, RepRapFlavorParser
|
from . import MarlinFlavorParser, RepRapFlavorParser
|
||||||
|
@ -22,7 +22,7 @@ class GCodeReader(MeshReader):
|
||||||
self._supported_extensions = [".gcode", ".g"]
|
self._supported_extensions = [".gcode", ".g"]
|
||||||
self._flavor_reader = None
|
self._flavor_reader = None
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("gcodereader/show_caution", True)
|
Application.getInstance().getPreferences().addPreference("gcodereader/show_caution", True)
|
||||||
|
|
||||||
def preReadFromStream(self, stream, *args, **kwargs):
|
def preReadFromStream(self, stream, *args, **kwargs):
|
||||||
for line in stream.split("\n"):
|
for line in stream.split("\n"):
|
||||||
|
|
|
@ -5,7 +5,6 @@ from UM.Tool import Tool
|
||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
||||||
from cura.Settings.ExtruderManager import ExtruderManager
|
from cura.Settings.ExtruderManager import ExtruderManager
|
||||||
from UM.Settings.SettingInstance import SettingInstance
|
from UM.Settings.SettingInstance import SettingInstance
|
||||||
|
@ -27,7 +26,7 @@ class PerObjectSettingsTool(Tool):
|
||||||
|
|
||||||
Selection.selectionChanged.connect(self.propertyChanged)
|
Selection.selectionChanged.connect(self.propertyChanged)
|
||||||
|
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._onPreferenceChanged)
|
Application.getInstance().getPreferences().preferenceChanged.connect(self._onPreferenceChanged)
|
||||||
self._onPreferenceChanged("cura/active_mode")
|
self._onPreferenceChanged("cura/active_mode")
|
||||||
|
|
||||||
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
|
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
|
||||||
|
@ -106,7 +105,7 @@ class PerObjectSettingsTool(Tool):
|
||||||
|
|
||||||
def _onPreferenceChanged(self, preference):
|
def _onPreferenceChanged(self, preference):
|
||||||
if preference == "cura/active_mode":
|
if preference == "cura/active_mode":
|
||||||
self._advanced_mode = Preferences.getInstance().getValue(preference) == 1
|
self._advanced_mode = Application.getInstance().getPreferences().getValue(preference) == 1
|
||||||
self._updateEnabled()
|
self._updateEnabled()
|
||||||
|
|
||||||
def _onGlobalContainerChanged(self):
|
def _onGlobalContainerChanged(self):
|
||||||
|
|
|
@ -16,7 +16,6 @@ from UM.Mesh.MeshBuilder import MeshBuilder
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
from UM.Platform import Platform
|
from UM.Platform import Platform
|
||||||
from UM.PluginRegistry import PluginRegistry
|
from UM.PluginRegistry import PluginRegistry
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
|
@ -81,30 +80,30 @@ class SimulationView(View):
|
||||||
self._show_travel_moves = False
|
self._show_travel_moves = False
|
||||||
self._nozzle_node = None
|
self._nozzle_node = None
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("view/top_layer_count", 5)
|
Application.getInstance().getPreferences().addPreference("view/top_layer_count", 5)
|
||||||
Preferences.getInstance().addPreference("view/only_show_top_layers", False)
|
Application.getInstance().getPreferences().addPreference("view/only_show_top_layers", False)
|
||||||
Preferences.getInstance().addPreference("view/force_layer_view_compatibility_mode", False)
|
Application.getInstance().getPreferences().addPreference("view/force_layer_view_compatibility_mode", False)
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("layerview/layer_view_type", 0)
|
Application.getInstance().getPreferences().addPreference("layerview/layer_view_type", 0)
|
||||||
Preferences.getInstance().addPreference("layerview/extruder_opacities", "")
|
Application.getInstance().getPreferences().addPreference("layerview/extruder_opacities", "")
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("layerview/show_travel_moves", False)
|
Application.getInstance().getPreferences().addPreference("layerview/show_travel_moves", False)
|
||||||
Preferences.getInstance().addPreference("layerview/show_helpers", True)
|
Application.getInstance().getPreferences().addPreference("layerview/show_helpers", True)
|
||||||
Preferences.getInstance().addPreference("layerview/show_skin", True)
|
Application.getInstance().getPreferences().addPreference("layerview/show_skin", True)
|
||||||
Preferences.getInstance().addPreference("layerview/show_infill", True)
|
Application.getInstance().getPreferences().addPreference("layerview/show_infill", True)
|
||||||
|
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
|
Application.getInstance().getPreferences().preferenceChanged.connect(self._onPreferencesChanged)
|
||||||
self._updateWithPreferences()
|
self._updateWithPreferences()
|
||||||
|
|
||||||
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count"))
|
self._solid_layers = int(Application.getInstance().getPreferences().getValue("view/top_layer_count"))
|
||||||
self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers"))
|
self._only_show_top_layers = bool(Application.getInstance().getPreferences().getValue("view/only_show_top_layers"))
|
||||||
self._compatibility_mode = self._evaluateCompatibilityMode()
|
self._compatibility_mode = self._evaluateCompatibilityMode()
|
||||||
|
|
||||||
self._wireprint_warning_message = Message(catalog.i18nc("@info:status", "Cura does not accurately display layers when Wire Printing is enabled"),
|
self._wireprint_warning_message = Message(catalog.i18nc("@info:status", "Cura does not accurately display layers when Wire Printing is enabled"),
|
||||||
title = catalog.i18nc("@info:title", "Simulation View"))
|
title = catalog.i18nc("@info:title", "Simulation View"))
|
||||||
|
|
||||||
def _evaluateCompatibilityMode(self):
|
def _evaluateCompatibilityMode(self):
|
||||||
return OpenGLContext.isLegacyOpenGL() or bool(Preferences.getInstance().getValue("view/force_layer_view_compatibility_mode"))
|
return OpenGLContext.isLegacyOpenGL() or bool(Application.getInstance().getPreferences().getValue("view/force_layer_view_compatibility_mode"))
|
||||||
|
|
||||||
def _resetSettings(self):
|
def _resetSettings(self):
|
||||||
self._layer_view_type = 0 # 0 is material color, 1 is color by linetype, 2 is speed, 3 is layer thickness
|
self._layer_view_type = 0 # 0 is material color, 1 is color by linetype, 2 is speed, 3 is layer thickness
|
||||||
|
@ -543,23 +542,23 @@ class SimulationView(View):
|
||||||
self._top_layers_job = None
|
self._top_layers_job = None
|
||||||
|
|
||||||
def _updateWithPreferences(self):
|
def _updateWithPreferences(self):
|
||||||
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count"))
|
self._solid_layers = int(Application.getInstance().getPreferences().getValue("view/top_layer_count"))
|
||||||
self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers"))
|
self._only_show_top_layers = bool(Application.getInstance().getPreferences().getValue("view/only_show_top_layers"))
|
||||||
self._compatibility_mode = self._evaluateCompatibilityMode()
|
self._compatibility_mode = self._evaluateCompatibilityMode()
|
||||||
|
|
||||||
self.setSimulationViewType(int(float(Preferences.getInstance().getValue("layerview/layer_view_type"))));
|
self.setSimulationViewType(int(float(Application.getInstance().getPreferences().getValue("layerview/layer_view_type"))));
|
||||||
|
|
||||||
for extruder_nr, extruder_opacity in enumerate(Preferences.getInstance().getValue("layerview/extruder_opacities").split("|")):
|
for extruder_nr, extruder_opacity in enumerate(Application.getInstance().getPreferences().getValue("layerview/extruder_opacities").split("|")):
|
||||||
try:
|
try:
|
||||||
opacity = float(extruder_opacity)
|
opacity = float(extruder_opacity)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
opacity = 1.0
|
opacity = 1.0
|
||||||
self.setExtruderOpacity(extruder_nr, opacity)
|
self.setExtruderOpacity(extruder_nr, opacity)
|
||||||
|
|
||||||
self.setShowTravelMoves(bool(Preferences.getInstance().getValue("layerview/show_travel_moves")))
|
self.setShowTravelMoves(bool(Application.getInstance().getPreferences().getValue("layerview/show_travel_moves")))
|
||||||
self.setShowHelpers(bool(Preferences.getInstance().getValue("layerview/show_helpers")))
|
self.setShowHelpers(bool(Application.getInstance().getPreferences().getValue("layerview/show_helpers")))
|
||||||
self.setShowSkin(bool(Preferences.getInstance().getValue("layerview/show_skin")))
|
self.setShowSkin(bool(Application.getInstance().getPreferences().getValue("layerview/show_skin")))
|
||||||
self.setShowInfill(bool(Preferences.getInstance().getValue("layerview/show_infill")))
|
self.setShowInfill(bool(Application.getInstance().getPreferences().getValue("layerview/show_infill")))
|
||||||
|
|
||||||
self._startUpdateTopLayers()
|
self._startUpdateTopLayers()
|
||||||
self.preferencesChanged.emit()
|
self.preferencesChanged.emit()
|
||||||
|
|
|
@ -10,7 +10,6 @@ from PyQt5.QtCore import pyqtSlot, QObject
|
||||||
|
|
||||||
from UM.Extension import Extension
|
from UM.Extension import Extension
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
|
@ -34,13 +33,13 @@ class SliceInfo(QObject, Extension):
|
||||||
QObject.__init__(self, parent)
|
QObject.__init__(self, parent)
|
||||||
Extension.__init__(self)
|
Extension.__init__(self)
|
||||||
Application.getInstance().getOutputDeviceManager().writeStarted.connect(self._onWriteStarted)
|
Application.getInstance().getOutputDeviceManager().writeStarted.connect(self._onWriteStarted)
|
||||||
Preferences.getInstance().addPreference("info/send_slice_info", True)
|
Application.getInstance().getPreferences().addPreference("info/send_slice_info", True)
|
||||||
Preferences.getInstance().addPreference("info/asked_send_slice_info", False)
|
Application.getInstance().getPreferences().addPreference("info/asked_send_slice_info", False)
|
||||||
|
|
||||||
self._more_info_dialog = None
|
self._more_info_dialog = None
|
||||||
self._example_data_content = None
|
self._example_data_content = None
|
||||||
|
|
||||||
if not Preferences.getInstance().getValue("info/asked_send_slice_info"):
|
if not Application.getInstance().getPreferences().getValue("info/asked_send_slice_info"):
|
||||||
self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymized usage statistics."),
|
self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymized usage statistics."),
|
||||||
lifetime = 0,
|
lifetime = 0,
|
||||||
dismissable = False,
|
dismissable = False,
|
||||||
|
@ -62,7 +61,7 @@ class SliceInfo(QObject, Extension):
|
||||||
## Perform action based on user input.
|
## Perform action based on user input.
|
||||||
# Note that clicking "Disable" won't actually disable the data sending, but rather take the user to preferences where they can disable it.
|
# Note that clicking "Disable" won't actually disable the data sending, but rather take the user to preferences where they can disable it.
|
||||||
def messageActionTriggered(self, message_id, action_id):
|
def messageActionTriggered(self, message_id, action_id):
|
||||||
Preferences.getInstance().setValue("info/asked_send_slice_info", True)
|
Application.getInstance().getPreferences().setValue("info/asked_send_slice_info", True)
|
||||||
if action_id == "MoreInfo":
|
if action_id == "MoreInfo":
|
||||||
self.showMoreInfoDialog()
|
self.showMoreInfoDialog()
|
||||||
self.send_slice_info_message.hide()
|
self.send_slice_info_message.hide()
|
||||||
|
@ -88,11 +87,11 @@ class SliceInfo(QObject, Extension):
|
||||||
|
|
||||||
@pyqtSlot(bool)
|
@pyqtSlot(bool)
|
||||||
def setSendSliceInfo(self, enabled: bool):
|
def setSendSliceInfo(self, enabled: bool):
|
||||||
Preferences.getInstance().setValue("info/send_slice_info", enabled)
|
Application.getInstance().getPreferences().setValue("info/send_slice_info", enabled)
|
||||||
|
|
||||||
def _onWriteStarted(self, output_device):
|
def _onWriteStarted(self, output_device):
|
||||||
try:
|
try:
|
||||||
if not Preferences.getInstance().getValue("info/send_slice_info"):
|
if not Application.getInstance().getPreferences().getValue("info/send_slice_info"):
|
||||||
Logger.log("d", "'info/send_slice_info' is turned off.")
|
Logger.log("d", "'info/send_slice_info' is turned off.")
|
||||||
return # Do nothing, user does not want to send data
|
return # Do nothing, user does not want to send data
|
||||||
|
|
||||||
|
@ -107,7 +106,7 @@ class SliceInfo(QObject, Extension):
|
||||||
data["schema_version"] = 0
|
data["schema_version"] = 0
|
||||||
data["cura_version"] = application.getVersion()
|
data["cura_version"] = application.getVersion()
|
||||||
|
|
||||||
active_mode = Preferences.getInstance().getValue("cura/active_mode")
|
active_mode = Application.getInstance().getPreferences().getValue("cura/active_mode")
|
||||||
if active_mode == 0:
|
if active_mode == 0:
|
||||||
data["active_mode"] = "recommended"
|
data["active_mode"] = "recommended"
|
||||||
else:
|
else:
|
||||||
|
@ -122,7 +121,7 @@ class SliceInfo(QObject, Extension):
|
||||||
machine_settings_changed_by_user = True
|
machine_settings_changed_by_user = True
|
||||||
|
|
||||||
data["machine_settings_changed_by_user"] = machine_settings_changed_by_user
|
data["machine_settings_changed_by_user"] = machine_settings_changed_by_user
|
||||||
data["language"] = Preferences.getInstance().getValue("general/language")
|
data["language"] = Application.getInstance().getPreferences().getValue("general/language")
|
||||||
data["os"] = {"type": platform.system(), "version": platform.version()}
|
data["os"] = {"type": platform.system(), "version": platform.version()}
|
||||||
|
|
||||||
data["active_machine"] = {"definition_id": global_stack.definition.getId(),
|
data["active_machine"] = {"definition_id": global_stack.definition.getId(),
|
||||||
|
|
|
@ -6,7 +6,6 @@ from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.View.RenderBatch import RenderBatch
|
from UM.View.RenderBatch import RenderBatch
|
||||||
from UM.Settings.Validator import ValidatorState
|
from UM.Settings.Validator import ValidatorState
|
||||||
from UM.Math.Color import Color
|
from UM.Math.Color import Color
|
||||||
|
@ -23,7 +22,7 @@ class SolidView(View):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("view/show_overhang", True)
|
Application.getInstance().getPreferences().addPreference("view/show_overhang", True)
|
||||||
|
|
||||||
self._enabled_shader = None
|
self._enabled_shader = None
|
||||||
self._disabled_shader = None
|
self._disabled_shader = None
|
||||||
|
@ -65,7 +64,7 @@ class SolidView(View):
|
||||||
support_extruder_nr = global_container_stack.getExtruderPositionValueWithDefault("support_extruder_nr")
|
support_extruder_nr = global_container_stack.getExtruderPositionValueWithDefault("support_extruder_nr")
|
||||||
support_angle_stack = Application.getInstance().getExtruderManager().getExtruderStack(support_extruder_nr)
|
support_angle_stack = Application.getInstance().getExtruderManager().getExtruderStack(support_extruder_nr)
|
||||||
|
|
||||||
if support_angle_stack is not None and Preferences.getInstance().getValue("view/show_overhang"):
|
if support_angle_stack is not None and Application.getInstance().getPreferences().getValue("view/show_overhang"):
|
||||||
angle = support_angle_stack.getProperty("support_angle", "value")
|
angle = support_angle_stack.getProperty("support_angle", "value")
|
||||||
# Make sure the overhang angle is valid before passing it to the shader
|
# Make sure the overhang angle is valid before passing it to the shader
|
||||||
# Note: if the overhang angle is set to its default value, it does not need to get validated (validationState = None)
|
# Note: if the overhang angle is set to its default value, it does not need to get validated (validationState = None)
|
||||||
|
|
|
@ -5,7 +5,6 @@ from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Signal import Signal, signalemitter
|
from UM.Signal import Signal, signalemitter
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Version import Version
|
from UM.Version import Version
|
||||||
|
|
||||||
from . import ClusterUM3OutputDevice, LegacyUM3OutputDevice
|
from . import ClusterUM3OutputDevice, LegacyUM3OutputDevice
|
||||||
|
@ -54,7 +53,7 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
|
||||||
self._cluster_api_prefix = "/cluster-api/v" + self._cluster_api_version + "/"
|
self._cluster_api_prefix = "/cluster-api/v" + self._cluster_api_version + "/"
|
||||||
|
|
||||||
# Get list of manual instances from preferences
|
# Get list of manual instances from preferences
|
||||||
self._preferences = Preferences.getInstance()
|
self._preferences = Application.getInstance().getPreferences()
|
||||||
self._preferences.addPreference("um3networkprinting/manual_instances",
|
self._preferences.addPreference("um3networkprinting/manual_instances",
|
||||||
"") # A comma-separated list of ip adresses or hostnames
|
"") # A comma-separated list of ip adresses or hostnames
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from UM.Extension import Extension
|
from UM.Extension import Extension
|
||||||
from UM.Preferences import Preferences
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.PluginRegistry import PluginRegistry
|
from UM.PluginRegistry import PluginRegistry
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -19,10 +18,10 @@ class UserAgreement(QObject, Extension):
|
||||||
self._user_agreement_window = None
|
self._user_agreement_window = None
|
||||||
self._user_agreement_context = None
|
self._user_agreement_context = None
|
||||||
Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated)
|
Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated)
|
||||||
Preferences.getInstance().addPreference("general/accepted_user_agreement", False)
|
Application.getInstance().getPreferences().addPreference("general/accepted_user_agreement", False)
|
||||||
|
|
||||||
def _onEngineCreated(self):
|
def _onEngineCreated(self):
|
||||||
if not Preferences.getInstance().getValue("general/accepted_user_agreement"):
|
if not Application.getInstance().getPreferences().getValue("general/accepted_user_agreement"):
|
||||||
self.showUserAgreement()
|
self.showUserAgreement()
|
||||||
|
|
||||||
def showUserAgreement(self):
|
def showUserAgreement(self):
|
||||||
|
@ -35,11 +34,11 @@ class UserAgreement(QObject, Extension):
|
||||||
def didAgree(self, user_choice):
|
def didAgree(self, user_choice):
|
||||||
if user_choice:
|
if user_choice:
|
||||||
Logger.log("i", "User agreed to the user agreement")
|
Logger.log("i", "User agreed to the user agreement")
|
||||||
Preferences.getInstance().setValue("general/accepted_user_agreement", True)
|
Application.getInstance().getPreferences().setValue("general/accepted_user_agreement", True)
|
||||||
self._user_agreement_window.hide()
|
self._user_agreement_window.hide()
|
||||||
else:
|
else:
|
||||||
Logger.log("i", "User did NOT agree to the user agreement")
|
Logger.log("i", "User did NOT agree to the user agreement")
|
||||||
Preferences.getInstance().setValue("general/accepted_user_agreement", False)
|
Application.getInstance().getPreferences().setValue("general/accepted_user_agreement", False)
|
||||||
CuraApplication.getInstance().quit()
|
CuraApplication.getInstance().quit()
|
||||||
CuraApplication.getInstance().setNeedToShowUserAgreement(False)
|
CuraApplication.getInstance().setNeedToShowUserAgreement(False)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue