diff --git a/BlocksScreen/lib/panels/networkWindow.py b/BlocksScreen/lib/panels/networkWindow.py index 07c98bed..74be209c 100644 --- a/BlocksScreen/lib/panels/networkWindow.py +++ b/BlocksScreen/lib/panels/networkWindow.py @@ -2828,9 +2828,6 @@ def _setup_saved_details_page(self) -> None: self.low_priority_btn.setMaximumSize(QtCore.QSize(100, 100)) self.low_priority_btn.setCheckable(True) self.low_priority_btn.setFlat(True) - self.low_priority_btn.setProperty( - "icon_pixmap", PixmapCache.get(":/ui/media/btn_icons/indf_svg.svg") - ) self.low_priority_btn.setText("Low") self.low_priority_btn.setProperty("class", "back_btn") self.low_priority_btn.setProperty("button_type", "icon") @@ -2844,9 +2841,6 @@ def _setup_saved_details_page(self) -> None: self.med_priority_btn.setCheckable(True) self.med_priority_btn.setChecked(False) # Don't set default checked self.med_priority_btn.setFlat(True) - self.med_priority_btn.setProperty( - "icon_pixmap", PixmapCache.get(":/ui/media/btn_icons/indf_svg.svg") - ) self.med_priority_btn.setText("Medium") self.med_priority_btn.setProperty("class", "back_btn") self.med_priority_btn.setProperty("button_type", "icon") @@ -2860,9 +2854,6 @@ def _setup_saved_details_page(self) -> None: self.high_priority_btn.setCheckable(True) self.high_priority_btn.setChecked(False) self.high_priority_btn.setFlat(True) - self.high_priority_btn.setProperty( - "icon_pixmap", PixmapCache.get(":/ui/media/btn_icons/indf_svg.svg") - ) self.high_priority_btn.setText("High") self.high_priority_btn.setProperty("class", "back_btn") self.high_priority_btn.setProperty("button_type", "icon") diff --git a/BlocksScreen/lib/panels/printTab.py b/BlocksScreen/lib/panels/printTab.py index 36f62024..41e83b4c 100644 --- a/BlocksScreen/lib/panels/printTab.py +++ b/BlocksScreen/lib/panels/printTab.py @@ -428,20 +428,6 @@ def _on_delete_file_confirmed(self, filename: str, directory: str) -> None: except (RuntimeError, TypeError): pass - def setProperty(self, name: str, value: typing.Any) -> bool: - """Intercept the set property method - - Args: - name (str): Name of the dynamic property - value (typing.Any): Value for the dynamic property - - Returns: - bool: Returns to the super class - """ - if name == "backgroundPixmap": - self.background = value - return super().setProperty(name, value) - def handle_cancel_print(self) -> None: """Handles the print cancel action""" if ( @@ -514,10 +500,6 @@ def setupMainPrintPage(self) -> None: self.setSizePolicy(sizePolicy) self.setMinimumSize(QtCore.QSize(710, 410)) self.setMaximumSize(QtCore.QSize(720, 420)) - self.setProperty( - "backgroundPixmap", - QtGui.QPixmap(":/background/media/graphics/scroll_list_window.svg"), - ) self.print_page = QtWidgets.QWidget() sizePolicy = QtWidgets.QSizePolicy( QtWidgets.QSizePolicy.Policy.MinimumExpanding, diff --git a/BlocksScreen/lib/panels/widgets/babystepPage.py b/BlocksScreen/lib/panels/widgets/babystepPage.py index 1b632c17..000e1135 100644 --- a/BlocksScreen/lib/panels/widgets/babystepPage.py +++ b/BlocksScreen/lib/panels/widgets/babystepPage.py @@ -258,9 +258,6 @@ def _setupUI(self) -> None: self.bbp_z_offset_current_value.setText( f"Z: {round(self._pending_z_offset, 3) or 0.0:.3f} mm" ) - self.bbp_z_offset_current_value.setPixmap( - QtGui.QPixmap(":/graphics/media/btn_icons/z_offset_adjust.svg") - ) self.bbp_z_offset_current_value.setAlignment( QtCore.Qt.AlignmentFlag.AlignCenter ) diff --git a/BlocksScreen/lib/panels/widgets/popupDialogWidget.py b/BlocksScreen/lib/panels/widgets/popupDialogWidget.py index 39dfa293..51519dcc 100644 --- a/BlocksScreen/lib/panels/widgets/popupDialogWidget.py +++ b/BlocksScreen/lib/panels/widgets/popupDialogWidget.py @@ -32,7 +32,8 @@ def __init__(self, parent) -> None: self.message_type: Popup.MessageType = Popup.MessageType.INFO self.default_background_color = QtGui.QColor(164, 164, 164) self.info_icon = QtGui.QPixmap(":ui/media/btn_icons/info.svg") - self.warning_icon = QtGui.QPixmap(":ui/media/btn_icons/warning.svg") + # no warning asset exists yet; the yellow ColorCode carries the severity + self.warning_icon = QtGui.QPixmap(":ui/media/btn_icons/error.svg") self.error_icon = QtGui.QPixmap(":ui/media/btn_icons/error.svg") self.setAttribute(QtCore.Qt.WidgetAttribute.WA_TranslucentBackground, True) self.setMouseTracking(True) @@ -179,6 +180,8 @@ def _add_popup(self) -> None: self.icon_label.setPixmap(self.warning_icon) case Popup.MessageType.ERROR: self.icon_label.setPixmap(self.error_icon) + case _: + self.icon_label.clear() end_rect = self._calculate_target_geometry() start_rect = end_rect.translated(0, -end_rect.height() * 2) diff --git a/BlocksScreen/lib/panels/widgets/probeHelperPage.py b/BlocksScreen/lib/panels/widgets/probeHelperPage.py index 0df4b50d..4eaa7a5a 100644 --- a/BlocksScreen/lib/panels/widgets/probeHelperPage.py +++ b/BlocksScreen/lib/panels/widgets/probeHelperPage.py @@ -946,9 +946,6 @@ def _setupUi(self) -> None: self.current_offset_info.setFont(font) self.current_offset_info.setStyleSheet("background: transparent; color: white;") self.current_offset_info.setText("Z:0.000mm") - self.current_offset_info.setPixmap( - QtGui.QPixmap(":/graphics/media/btn_icons/z_offset_adjust.svg") - ) self.current_offset_info.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) self.current_offset_info.setObjectName("current_offset_info") # Add graphic frame AFTER the offset buttons group box diff --git a/BlocksScreen/lib/panels/widgets/slider_selector_page.py b/BlocksScreen/lib/panels/widgets/slider_selector_page.py index 2f6c89f7..da6d6b36 100644 --- a/BlocksScreen/lib/panels/widgets/slider_selector_page.py +++ b/BlocksScreen/lib/panels/widgets/slider_selector_page.py @@ -27,7 +27,7 @@ def __init__(self, parent) -> None: self.decrease_button_icon = QtGui.QPixmap( ":/arrow_icons/media/btn_icons/left_arrow.svg" ) - self.background = QtGui.QPixmap(":/ui/background/media/1st_background.png") + self.background = QtGui.QPixmap(":/background/media/1st_background.png") self.setStyleSheet( "#SliderPage{background-image: url(:/background/media/1st_background.png);}\n" ) diff --git a/BlocksScreen/lib/ui/controlStackedWidget.ui b/BlocksScreen/lib/ui/controlStackedWidget.ui index ea27b531..3c6621c4 100644 --- a/BlocksScreen/lib/ui/controlStackedWidget.ui +++ b/BlocksScreen/lib/ui/controlStackedWidget.ui @@ -5122,7 +5122,7 @@ Home true - :/button_borders/media/btn_icons/back.svg + :/ui/media/btn_icons/back.svg icon diff --git a/BlocksScreen/lib/ui/controlStackedWidget_ui.py b/BlocksScreen/lib/ui/controlStackedWidget_ui.py index 95417c09..6f9368fb 100644 --- a/BlocksScreen/lib/ui/controlStackedWidget_ui.py +++ b/BlocksScreen/lib/ui/controlStackedWidget_ui.py @@ -1820,7 +1820,7 @@ def setupUi(self, controlStackedWidget): self.z_adjust_back_button.setMaximumSize(QtCore.QSize(60, 60)) self.z_adjust_back_button.setText("") self.z_adjust_back_button.setFlat(True) - self.z_adjust_back_button.setProperty("icon_pixmap", QtGui.QPixmap(":/button_borders/media/btn_icons/back.svg")) + self.z_adjust_back_button.setProperty("icon_pixmap", QtGui.QPixmap(":/ui/media/btn_icons/back.svg")) self.z_adjust_back_button.setObjectName("z_adjust_back_button") self.z_adjustment_header_layout.addWidget(self.z_adjust_back_button) self.verticalLayoutWidget_8 = QtWidgets.QWidget(parent=self.z_adjustment_page) diff --git a/BlocksScreen/lib/utils/blocks_label.py b/BlocksScreen/lib/utils/blocks_label.py index a2290092..cded73c2 100644 --- a/BlocksScreen/lib/utils/blocks_label.py +++ b/BlocksScreen/lib/utils/blocks_label.py @@ -11,10 +11,10 @@ def __init__(self, parent: QtWidgets.QWidget = None, *args, **kwargs): super().__init__(parent, *args, **kwargs) self.setAttribute(QtCore.Qt.WidgetAttribute.WA_AcceptTouchEvents, True) - self.icon_pixmap: typing.Optional[QtGui.QPixmap] = None + self.icon_pixmap: QtGui.QPixmap | None = None self._text: str = "" - self._background_color: typing.Optional[QtGui.QColor] = None - self._border_color: typing.Optional[QtGui.QColor] = None + self._background_color: QtGui.QColor | None = None + self._border_color: QtGui.QColor | None = None self._rounded: bool = False self._marquee: bool = True self.timer = QtCore.QTimer() @@ -76,7 +76,7 @@ def setText(self, text: str) -> None: self.update_text_metrics() @property - def background_color(self) -> typing.Optional[QtGui.QColor]: + def background_color(self) -> QtGui.QColor | None: """Widget background color""" return self._background_color @@ -85,7 +85,7 @@ def background_color(self, color: QtGui.QColor) -> None: self._background_color = color @property - def border_color(self) -> typing.Optional[QtGui.QColor]: + def border_color(self) -> QtGui.QColor | None: """Widget border color""" return self._border_color @@ -209,7 +209,7 @@ def paintEvent(self, a0: QtGui.QPaintEvent) -> None: else: qp.fillRect(rect, self._background_color) - if self.icon_pixmap: + if self.icon_pixmap is not None and not self.icon_pixmap.isNull(): icon_rect = QtCore.QRectF( 0.0 + self.icon_margin, 0.0 + self.icon_margin, diff --git a/tests/ui/test_resource_keys_unit.py b/tests/ui/test_resource_keys_unit.py index 413c3895..0645c2b9 100644 --- a/tests/ui/test_resource_keys_unit.py +++ b/tests/ui/test_resource_keys_unit.py @@ -19,33 +19,11 @@ # Known-broken keys, measured 2026-08-31. This dict may only ever shrink: # test_xfail_keys_are_still_broken fails once an entry stops being broken. XFAIL_KEYS = { - ":/background/media/graphics/scroll_list_window.svg": ( - "asset is on disk but declared by no .qrc; retired by PR 3" - ), - ":/button_borders/media/btn_icons/back.svg": ( - "wrong prefix, real key is :/ui/media/btn_icons/back.svg; " - "lives in a generated _ui.py so the .ui file is the fix; retired by PR 3" - ), - ":/graphics/media/btn_icons/z_offset_adjust.svg": ( - "asset deleted from the qrc in 927e43c (2025-06-04) and absent from " - "disk, yet 3 call sites still request it; retired by PR 3" - ), ":/network/media/btn_icons/network/{b}bar_wifi{": ( "not broken at runtime: an f-string template the scanner cannot " "evaluate, whose real keys are the 0bar..3bar matrix; the literal " "disappears when the Icon enum replaces it in PR 8" ), - ":/ui/background/media/1st_background.png": ( - "duplicated prefix segment, real key is " - ":/background/media/1st_background.png; retired by PR 3" - ), - ":/ui/media/btn_icons/indf_svg.svg": ( - "no such file in any .qrc or on disk; retired by PR 3" - ), - ":/ui/media/btn_icons/warning.svg": ( - "no such file in any .qrc or on disk, so the warning popup renders a " - "blank icon; needs a new asset, not just a key fix; retired by PR 3" - ), } # Deliberately a text scan, not an AST walk: an AST walk only sees ast.Constant,