Added reload profile (simply clears user instance container)

CURA-1278
This commit is contained in:
Jaime van Kessel 2016-06-03 10:06:08 +02:00
parent 11cb9af97f
commit ad35c9f070
2 changed files with 25 additions and 2 deletions

View file

@ -41,9 +41,15 @@ class MachineManagerModel(QObject):
activeVariantChanged = pyqtSignal()
activeQualityChanged = pyqtSignal()
globalPropertyChanged = pyqtSignal() # Emitted whenever a property inside global container is changed.
def _onGlobalPropertyChanged(self, key, property_name):
self.globalPropertyChanged.emit()
def _onGlobalContainerChanged(self):
if self._global_container_stack:
self._global_container_stack.containersChanged.disconnect(self._onInstanceContainersChanged)
self._global_container_stack.propertyChanged.disconnect(self._onGlobalPropertyChanged)
self._global_container_stack = Application.getInstance().getGlobalContainerStack()
self.globalContainerChanged.emit()
@ -51,6 +57,7 @@ class MachineManagerModel(QObject):
if self._global_container_stack:
Preferences.getInstance().setValue("cura/active_machine", self._global_container_stack.getId())
self._global_container_stack.containersChanged.connect(self._onInstanceContainersChanged)
self._global_container_stack.propertyChanged.connect(self._onGlobalPropertyChanged)
def _onInstanceContainersChanged(self, container):
container_type = container.getMetaDataEntry("type")
@ -160,6 +167,21 @@ class MachineManagerModel(QObject):
return unique_name
@pyqtSlot()
def clearUserSettings(self):
if not self._global_container_stack:
return
user_settings = self._global_container_stack.getTop()
user_settings.clear()
@pyqtProperty(bool, notify = globalPropertyChanged)
def hasUserSettings(self):
if not self._global_container_stack:
return
user_settings = self._global_container_stack.getTop().findInstances(**{})
return len(user_settings) != 0
@pyqtProperty(str, notify = globalContainerChanged)
def activeMachineName(self):
if self._global_container_stack:

View file

@ -6,6 +6,7 @@ pragma Singleton
import QtQuick 2.2
import QtQuick.Controls 1.1
import UM 1.1 as UM
import Cura 1.0 as Cura
Item
{
@ -117,9 +118,9 @@ Item
Action
{
id: resetProfileAction;
enabled: UM.ActiveProfile.valid && UM.ActiveProfile.hasCustomisedValues
enabled: Cura.MachineManager.hasUserSettings
text: catalog.i18nc("@action:inmenu menubar:profile","&Reload Current Profile");
onTriggered: UM.ActiveProfile.discardChanges();
onTriggered: Cura.MachineManager.clearUserSettings();
}
Action