Merge branch '4.0' of github.com:Ultimaker/Cura

This commit is contained in:
Jaime van Kessel 2019-02-21 20:19:30 +01:00
commit dee739db8b
9 changed files with 32 additions and 75 deletions

View file

@ -1,12 +1,16 @@
# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
from PyQt5.QtCore import Qt
from UM.Qt.ListModel import ListModel
from PyQt5.QtCore import pyqtProperty, Qt, QTimer
from cura.PrinterOutputDevice import ConnectionType
from cura.Settings.CuraContainerRegistry import CuraContainerRegistry
from cura.Settings.GlobalStack import GlobalStack
class GlobalStacksModel(ListModel):
NameRole = Qt.UserRole + 1
@ -23,20 +27,26 @@ class GlobalStacksModel(ListModel):
self.addRoleName(self.MetaDataRole, "metadata")
self._container_stacks = []
self._change_timer = QTimer()
self._change_timer.setInterval(200)
self._change_timer.setSingleShot(True)
self._change_timer.timeout.connect(self._update)
# Listen to changes
CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged)
CuraContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerChanged)
CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged)
self._filter_dict = {}
self._update()
self._updateDelayed()
## Handler for container added/removed events from registry
def _onContainerChanged(self, container):
from cura.Settings.GlobalStack import GlobalStack # otherwise circular imports
# We only need to update when the added / removed container GlobalStack
if isinstance(container, GlobalStack):
self._update()
self._updateDelayed()
def _updateDelayed(self):
self._change_timer.start()
def _update(self) -> None:
items = []