Ensure that the available configurations are also used in the uniqueConfigurations

CURA-6372
This commit is contained in:
Jaime van Kessel 2019-08-22 14:07:44 +02:00
parent d2e9715409
commit d1720db5ad

View file

@ -220,10 +220,12 @@ class PrinterOutputDevice(QObject, OutputDevice):
return self._unique_configurations return self._unique_configurations
def _updateUniqueConfigurations(self) -> None: def _updateUniqueConfigurations(self) -> None:
self._unique_configurations = sorted( all_configurations = set()
{printer.printerConfiguration for printer in self._printers if printer.printerConfiguration is not None}, for printer in self._printers:
key=lambda config: config.printerType, if printer.printerConfiguration is not None:
) all_configurations.add(printer.printerConfiguration)
all_configurations.update(printer.availableConfigurations)
self._unique_configurations = sorted(all_configurations, key = lambda config: config.printerType)
self.uniqueConfigurationsChanged.emit() self.uniqueConfigurationsChanged.emit()
# Returns the unique configurations of the printers within this output device # Returns the unique configurations of the printers within this output device
@ -234,6 +236,7 @@ class PrinterOutputDevice(QObject, OutputDevice):
def _onPrintersChanged(self) -> None: def _onPrintersChanged(self) -> None:
for printer in self._printers: for printer in self._printers:
printer.configurationChanged.connect(self._updateUniqueConfigurations) printer.configurationChanged.connect(self._updateUniqueConfigurations)
printer.availableConfigurationsChanged.connect(self._updateUniqueConfigurations)
# At this point there may be non-updated configurations # At this point there may be non-updated configurations
self._updateUniqueConfigurations() self._updateUniqueConfigurations()