diff --git a/cura/UI/MachineModels/DiscoveredPrintersModel.py b/cura/UI/MachineModels/DiscoveredPrintersModel.py index b50068970c..15d002298c 100644 --- a/cura/UI/MachineModels/DiscoveredPrintersModel.py +++ b/cura/UI/MachineModels/DiscoveredPrintersModel.py @@ -11,6 +11,8 @@ from UM.Logger import Logger if TYPE_CHECKING: from PyQt5.QtCore import QObject + from cura.PrinterOutput.NetworkedPrinterOutputDevice import NetworkedPrinterOutputDevice + catalog = i18nCatalog("cura") @@ -18,7 +20,7 @@ catalog = i18nCatalog("cura") class DiscoveredPrinter(QObject): def __init__(self, ip_address: str, key: str, name: str, create_callback: Callable[[str], None], machine_type: str, - device, parent = None) -> None: + device: "NetworkedPrinterOutputDevice", parent: Optional["QObject"] = None) -> None: super().__init__(parent) self._ip_address = ip_address @@ -67,7 +69,7 @@ class DiscoveredPrinter(QObject): return self.readable_machine_type.lower() == "unknown" @pyqtProperty(QObject, constant = True) - def device(self): + def device(self) -> "NetworkedPrinterOutputDevice": return self._device @@ -78,7 +80,7 @@ class DiscoveredPrinter(QObject): # class DiscoveredPrintersModel(QObject): - def __init__(self, parent: Optional["QObject"]) -> None: + def __init__(self, parent: Optional["QObject"] = None) -> None: super().__init__(parent) self._discovered_printer_by_ip_dict = dict() # type: Dict[str, DiscoveredPrinter] @@ -92,7 +94,7 @@ class DiscoveredPrintersModel(QObject): return item_list def addDiscoveredPrinter(self, ip_address: str, key: str, name: str, create_callback: Callable[[str], None], - machine_type: str, device) -> None: + machine_type: str, device: "NetworkedPrinterOutputDevice") -> None: if ip_address in self._discovered_printer_by_ip_dict: Logger.log("e", "Printer with ip [%s] has already been added", ip_address) return diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index d71f219052..9f49743a0f 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -53,7 +53,7 @@ UM.MainWindow id: greyOutBackground anchors.fill: parent visible: welcomeDialog.visible - color: "black" + color: UM.Theme.getColor("window_disabled_background") opacity: 0.7 z: stageMenu.z + 1 } diff --git a/resources/qml/WelcomePages/AddLocalPrinterScrollView.qml b/resources/qml/WelcomePages/AddLocalPrinterScrollView.qml index 2eb05a0530..9007756e38 100644 --- a/resources/qml/WelcomePages/AddLocalPrinterScrollView.qml +++ b/resources/qml/WelcomePages/AddLocalPrinterScrollView.qml @@ -146,10 +146,9 @@ ScrollView font: UM.Theme.getFont("default") visible: base.currentSection == section - background: Rectangle + background: Item { anchors.fill: parent - color: "transparent" } indicator: Rectangle diff --git a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml index 6cbfe46902..2275d3646e 100644 --- a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml +++ b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml @@ -61,7 +61,7 @@ Item property int maxItemCountAtOnce: 8 // show at max 8 items at once, otherwise you need to scroll. height: maxItemCountAtOnce * UM.Theme.getSize("action_button").height - visible: networkPrinterListView.model.length > 0 + visible: networkPrinterListView.count > 0 clip: true diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 9ef6993bdc..cfdf03bcaf 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -191,6 +191,8 @@ "printer_type_label_background": [228, 228, 242, 255], + "window_disabled_background": [0, 0, 0, 255], + "text_light_blue": [50, 130, 255, 255], "text": [25, 25, 25, 255], diff --git a/tests/TestMachineManager.py b/tests/TestMachineManager.py index 36ffe01b96..f261ce1b41 100644 --- a/tests/TestMachineManager.py +++ b/tests/TestMachineManager.py @@ -45,20 +45,3 @@ def test_setActiveMachine(machine_manager): # Although we mocked the application away, we still want to know if it was notified about the attempted change. machine_manager._application.setGlobalContainerStack.assert_called_with(mocked_global_stack) - - -def test_discoveredMachine(machine_manager): - mocked_callback = MagicMock() - machine_manager.addDiscoveredPrinter("test", "zomg", mocked_callback, "derp") - machine_manager.addMachineFromDiscoveredPrinter("test") - mocked_callback.assert_called_with("test") - - assert len(machine_manager.discoveredPrinters) == 1 - - # Test if removing it works - machine_manager.removeDiscoveredPrinter("test") - assert len(machine_manager.discoveredPrinters) == 0 - - # Just in case, nothing should happen. - machine_manager.addMachineFromDiscoveredPrinter("test") - assert mocked_callback.call_count == 1 diff --git a/tests/UI/MachineModels/TestDiscoveredPrintersModel.py b/tests/UI/MachineModels/TestDiscoveredPrintersModel.py new file mode 100644 index 0000000000..2fa5701b7b --- /dev/null +++ b/tests/UI/MachineModels/TestDiscoveredPrintersModel.py @@ -0,0 +1,27 @@ + +from unittest.mock import MagicMock + +import pytest + +from cura.UI.MachineModels.DiscoveredPrintersModel import DiscoveredPrintersModel + + +@pytest.fixture() +def discovered_printer_model(application) -> DiscoveredPrintersModel: + return DiscoveredPrintersModel() + + +def test_discoveredPrinters(discovered_printer_model): + mocked_device = MagicMock() + + mocked_callback = MagicMock() + discovered_printer_model.addDiscoveredPrinter("ip", "key", "name", mocked_callback, "machine_type", mocked_device) + device = discovered_printer_model.discovered_printers[0] + discovered_printer_model.createMachineFromDiscoveredPrinter(device) + mocked_callback.assert_called_with("key") + + assert len(discovered_printer_model.discovered_printers) == 1 + + # Test if removing it works + discovered_printer_model.removeDiscoveredPrinter("ip") + assert len(discovered_printer_model.discovered_printers) == 0