Add logging to explain why ContainerManager's methods do not complete successfully

Contributes to CURA-341
This commit is contained in:
Arjen Hiemstra 2016-07-07 12:07:16 +02:00
parent d8555fe57d
commit 8e63016ef3

View file

@ -12,6 +12,7 @@ import UM.Settings
import UM.SaveFile import UM.SaveFile
import UM.Platform import UM.Platform
import UM.MimeTypeDatabase import UM.MimeTypeDatabase
import UM.Logger
from UM.MimeTypeDatabase import MimeTypeNotFoundError from UM.MimeTypeDatabase import MimeTypeNotFoundError
@ -42,12 +43,15 @@ class ContainerManager(QObject):
def duplicateContainer(self, container_id): def duplicateContainer(self, container_id):
containers = self._registry.findContainers(None, id = container_id) containers = self._registry.findContainers(None, id = container_id)
if not containers: if not containers:
UM.Logger.log("w", "Could duplicate container %s because it was not found.", container_id)
return "" return ""
container = containers[0] container = containers[0]
new_container = None new_container = None
new_name = self._registry.uniqueName(container.getName()) new_name = self._registry.uniqueName(container.getName())
# Only InstanceContainer has a duplicate method at the moment.
# So fall back to serialize/deserialize when no duplicate method exists.
if hasattr(container, "duplicate"): if hasattr(container, "duplicate"):
new_container = container.duplicate(new_name) new_container = container.duplicate(new_name)
else: else:
@ -71,6 +75,7 @@ class ContainerManager(QObject):
def renameContainer(self, container_id, new_id, new_name): def renameContainer(self, container_id, new_id, new_name):
containers = self._registry.findContainers(None, id = container_id) containers = self._registry.findContainers(None, id = container_id)
if not containers: if not containers:
UM.Logger.log("w", "Could rename container %s because it was not found.", container_id)
return False return False
container = containers[0] container = containers[0]
@ -98,6 +103,7 @@ class ContainerManager(QObject):
def removeContainer(self, container_id): def removeContainer(self, container_id):
containers = self._registry.findContainers(None, id = container_id) containers = self._registry.findContainers(None, id = container_id)
if not containers: if not containers:
UM.Logger.log("w", "Could remove container %s because it was not found.", container_id)
return False return False
self._registry.removeContainer(containers[0].getId()) self._registry.removeContainer(containers[0].getId())
@ -115,19 +121,22 @@ class ContainerManager(QObject):
# \return True if successfully merged, False if not. # \return True if successfully merged, False if not.
@pyqtSlot(str, result = bool) @pyqtSlot(str, result = bool)
def mergeContainers(self, merge_into_id, merge_id): def mergeContainers(self, merge_into_id, merge_id):
containers = self._registry.findContainers(None, id = container_id) containers = self._registry.findContainers(None, id = merge_into_id)
if not containers: if not containers:
UM.Logger.log("w", "Could merge into container %s because it was not found.", merge_into_id)
return False return False
merge_into = containers[0] merge_into = containers[0]
containers = self._registry.findContainers(None, id = container_id) containers = self._registry.findContainers(None, id = merge_id)
if not containers: if not containers:
UM.Logger.log("w", "Could not merge container %s because it was not found", merge_id)
return False return False
merge = containers[0] merge = containers[0]
if type(merge) != type(merge_into): if type(merge) != type(merge_into):
UM.Logger.log("w", "Cannot merge two containers of different types")
return False return False
for key in merge.getAllKeys(): for key in merge.getAllKeys():
@ -144,9 +153,11 @@ class ContainerManager(QObject):
def clearContainer(self, container_id): def clearContainer(self, container_id):
containers = self._registry.findContainers(None, id = container_id) containers = self._registry.findContainers(None, id = container_id)
if not containers: if not containers:
UM.Logger.log("w", "Could clear container %s because it was not found.", container_id)
return False return False
if containers[0].isReadOnly(): if containers[0].isReadOnly():
UM.Logger.log("w", "Cannot clear read-only container %s", container_id)
return False return False
containers[0].clear() containers[0].clear()
@ -169,11 +180,13 @@ class ContainerManager(QObject):
def setContainerMetaDataEntry(self, container_id, entry_name, entry_value): def setContainerMetaDataEntry(self, container_id, entry_name, entry_value):
containers = UM.Settings.ContainerRegistry.getInstance().findContainers(None, id = container_id) containers = UM.Settings.ContainerRegistry.getInstance().findContainers(None, id = container_id)
if not containers: if not containers:
UM.Logger.log("w", "Could set metadata of container %s because it was not found.", container_id)
return False return False
container = containers[0] container = containers[0]
if container.isReadOnly(): if container.isReadOnly():
UM.Logger.log("w", "Cannot set metadata of read-only container %s.", container_id)
return False return False
entries = entry_name.split("/") entries = entry_name.split("/")