Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package vdu_controls for openSUSE:Factory checked in at 2025-07-30 11:44:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vdu_controls (Old) and /work/SRC/openSUSE:Factory/.vdu_controls.new.13279 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vdu_controls" Wed Jul 30 11:44:17 2025 rev:16 rq:1296218 version:2.4.2 Changes: -------- --- /work/SRC/openSUSE:Factory/vdu_controls/vdu_controls.changes 2025-07-14 10:58:20.461144130 +0200 +++ /work/SRC/openSUSE:Factory/.vdu_controls.new.13279/vdu_controls.changes 2025-07-30 11:45:27.946942922 +0200 @@ -1,0 +2,9 @@ +Mon Jul 28 22:00:55 UTC 2025 - Michael Hamilton <mich...@actrix.gen.nz> + +- Version 2.4.2 + * Fix the Lux-Dialog's display of the Daylight-Factor for non + semi-automatic metering. + * Make sure the tray-icon always shows the correct lux-level icon. + * Correct the lux-zone boundaries on the ambient slider. + +------------------------------------------------------------------- Old: ---- vdu_controls-2.4.1.tar.gz New: ---- vdu_controls-2.4.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vdu_controls.spec ++++++ --- /var/tmp/diff_new_pack.AJiJ2Q/_old 2025-07-30 11:45:28.654972260 +0200 +++ /var/tmp/diff_new_pack.AJiJ2Q/_new 2025-07-30 11:45:28.654972260 +0200 @@ -18,7 +18,7 @@ Name: vdu_controls -Version: 2.4.1 +Version: 2.4.2 Release: 0 Summary: Visual Display Unit virtual control panel License: GPL-3.0-or-later ++++++ vdu_controls-2.4.1.tar.gz -> vdu_controls-2.4.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.4.1/PKGBUILD new/vdu_controls-2.4.2/PKGBUILD --- old/vdu_controls-2.4.1/PKGBUILD 2025-07-13 23:33:54.000000000 +0200 +++ new/vdu_controls-2.4.2/PKGBUILD 2025-07-28 23:50:22.000000000 +0200 @@ -1,5 +1,5 @@ pkgname=vdu_controls -pkgver=2.4.1 +pkgver=2.4.2 pkgrel=1 pkgdesc="Visual Display Unit virtual control panel" arch=('i686' 'x86_64') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.4.1/README.md new/vdu_controls-2.4.2/README.md --- old/vdu_controls-2.4.1/README.md 2025-07-13 23:33:54.000000000 +0200 +++ new/vdu_controls-2.4.2/README.md 2025-07-28 23:50:22.000000000 +0200 @@ -359,6 +359,10 @@ Version History --------------- +* 2.4.2 + * Fix the Lux-Dialog's display of the Daylight-Factor for non semi-automatic metering. + * Make sure the tray-icon always shows the correct lux-level icon. + * Correct the lux-zone boundaries on the ambient slider. * 2.4.1 * Support PyQt6 before PyQt5 goes out of support. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.4.1/docs/conf.py new/vdu_controls-2.4.2/docs/conf.py --- old/vdu_controls-2.4.1/docs/conf.py 2025-07-13 23:33:54.000000000 +0200 +++ new/vdu_controls-2.4.2/docs/conf.py 2025-07-28 23:50:22.000000000 +0200 @@ -24,7 +24,7 @@ author = 'Michael Hamilton' # The full version, including alpha/beta/rc tags -release = '2.4.1' +release = '2.4.2' # -- General configuration --------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.4.1/setup.cfg new/vdu_controls-2.4.2/setup.cfg --- old/vdu_controls-2.4.1/setup.cfg 2025-07-13 23:33:54.000000000 +0200 +++ new/vdu_controls-2.4.2/setup.cfg 2025-07-28 23:50:22.000000000 +0200 @@ -1,6 +1,6 @@ [metadata] name = vdu_controls-digitaltrails -version = 2.4.1 +version = 2.4.2 author = Michael Hamilton author_email = mich...@actrix.gen.nz description = A GUI for controlling Visual Display Units diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.4.1/vdu_controls.py new/vdu_controls-2.4.2/vdu_controls.py --- old/vdu_controls-2.4.1/vdu_controls.py 2025-07-13 23:33:54.000000000 +0200 +++ new/vdu_controls-2.4.2/vdu_controls.py 2025-07-28 23:50:22.000000000 +0200 @@ -766,7 +766,7 @@ =========== LC_ALL, LANG, LANGUAGE - These variables specify the locale for language translations and units of distance. + These variables specify the locale for language translations and units of distance. LC_ALL is used by python, LANGUAGE is used by Qt. Normally, they should all have the same value, for example, ``Da_DK``. For these to have any effect on language, ``Settings`` ``Translations Enabled`` must also be enabled. @@ -937,7 +937,7 @@ APPNAME = "VDU Controls" -VDU_CONTROLS_VERSION = '2.4.1' +VDU_CONTROLS_VERSION = '2.4.2' VDU_CONTROLS_VERSION_TUPLE = tuple(int(i) for i in VDU_CONTROLS_VERSION.split('.')) assert sys.version_info >= (3, 8), f'{APPNAME} utilises python version 3.8 or greater (your python is {sys.version}).' @@ -1134,7 +1134,7 @@ <a href="https://github.com/digitaltrails/vdu_controls/releases/tag/v{VERSION}"> https://github.com/digitaltrails/vdu_controls/releases/tag/v{VERSION}</a> <br/>___________________________________________________________________________""" -RELEASE_INFO = QT_TR_NOOP('Qt6/PyQT6 compatibility release (with a fallback to Qt5/Pyt5).') +RELEASE_INFO = QT_TR_NOOP('Bug fix release.') CURRENT_PRESET_NAME_FILE = CONFIG_DIR_PATH.joinpath('current_preset.txt') CUSTOM_TRAY_ICON_FILE = CONFIG_DIR_PATH.joinpath('tray_icon.svg') @@ -6908,6 +6908,8 @@ def __init__(self) -> None: super().__init__(requires_worker=False, manual=True, semi_auto=True) self.current_value: float = LuxMeterSemiAutoDevice.get_stored_value() + LuxMeterSemiAutoDevice.daylight_factor = None # Force initilization from file + _ = LuxMeterSemiAutoDevice.get_daylight_factor() def get_value(self) -> float | None: if location := LuxMeterSemiAutoDevice.get_location(): @@ -6963,7 +6965,7 @@ def update_df_from_lux_value(new_lux_value: float, semi_auto_source: bool): if location := LuxMeterSemiAutoDevice.location: solar_lux = calc_solar_lux(zoned_now(), location, 1.0) - if solar_lux > (0 if semi_auto_source else 4000): # only for reasonable daylight lux levels or if the user is driving. + if solar_lux > (0 if semi_auto_source else 1000): # only for reasonable daylight lux levels or if the user is driving. daylight_factor = new_lux_value / solar_lux LuxMeterSemiAutoDevice.set_daylight_factor(daylight_factor, internal=True, persist=semi_auto_source) @@ -6975,8 +6977,8 @@ if CONFIG_DIR_PATH.exists(): persisted_path = CONFIG_DIR_PATH.joinpath("lux_daylight_factor.txt") log_debug(f"LuxSemiAuto: save {daylight_factor=} to {persisted_path.as_posix()}") if log_debug_enabled else None - LuxMeterSemiAutoDevice.daylight_factor = daylight_factor persisted_path.write_text(f"{daylight_factor:.4f}") + LuxMeterSemiAutoDevice.daylight_factor = daylight_factor if not internal: LuxDialog.reconfigure_instance() @@ -7935,6 +7937,7 @@ class LuxAmbientSlider(QWidget): new_lux_value_qtsignal = pyqtSignal(int) + status_icon_changed_qtsignal = pyqtSignal() status_icon_pressed_qtsignal = pyqtSignal() def __init__(self, controller: LuxAutoController) -> None: @@ -7942,13 +7945,13 @@ self.controller = controller self.in_flux = False self.zones = [ # Using col span as a hacky way to line up icons above the slider - LuxZone(tr("Sunlight"), LUX_SUNLIGHT_SVG, 20000, 100000, 45000, column_span=2), - LuxZone(tr("Daylight"), LUX_DAYLIGHT_SVG, 1000, 20000, 6000, column_span=2), - LuxZone(tr("Overcast"), LUX_OVERCAST_SVG, 400, 1000, 900, column_span=3), + LuxZone(tr("Sunlight"), LUX_SUNLIGHT_SVG, 20_000, 100_000, 45_000, column_span=2), + LuxZone(tr("Daylight"), LUX_DAYLIGHT_SVG, 5_000, 20_000, 6_000, column_span=2), + LuxZone(tr("Overcast"), LUX_OVERCAST_SVG, 400, 5_000, 900, column_span=3), LuxZone(tr("Twilight"), LUX_TWILIGHT_SVG, 100, 400, 130, column_span=2), LuxZone(tr("Subdued"), LUX_SUBDUED_SVG, 15, 100, 20, column_span=3), LuxZone(tr("Dark"), LUX_DARK_SVG, 0, 15, 2, column_span=4), ] - self.current_value = 10000 + self.current_value = 10_000 self.status_icon = StdButton(icon_size=QSize(native_font_height(scaled=1.8), native_font_height(scaled=1.8)), flat=True, clicked=self.status_icon_pressed_qtsignal) @@ -8035,10 +8038,11 @@ self.label_map[log10_button] = zone.icon_svg col += zone.column_span - self.set_current_value(round(LuxMeterSemiAutoDevice.get_stored_value())) # don't trigger side-effects. + self.set_current_value(controller.lux_meter.get_value() if controller.lux_meter else 1000) # don't trigger side-effects. def set_current_value(self, value: int, source: QWidget | None = None) -> None: # log_debug("set_current_value ", value, source, self.in_flux) + icon_changed = False if not self.in_flux and value != self.current_value: try: if source is None: @@ -8050,6 +8054,7 @@ self.current_zone = zone self.status_icon.setIcon(create_icon_from_svg_bytes(zone.icon_svg)) self.status_icon.setToolTip(tr("Open/Close Light-Meter Dialog")) + icon_changed = True self.current_value = max(1, value) # restrict to non-negative and something valid for log10 if source != self.slider: self.slider.setValue(round(math.log10(self.current_value) * 1000)) @@ -8065,6 +8070,8 @@ self.in_flux = False if source is None: self.blockSignals(False) + if icon_changed: + self.status_icon_changed_qtsignal.emit() def event(self, event: QEvent | None) -> bool: if event and event.type() == QEvent.Type.PaletteChange: # PalletChange happens after the new style sheet is in use. @@ -8584,7 +8591,6 @@ f"restore-preset: protect-nvram prevents '{preset.name}' from stepping, changes are immediate.") else: self.main_window.show_preset_status(tr("Already on Preset {} (no changes)").format(preset.name)) - if df := preset.get_daylight_factor(): log_info(f"Daylight-Factor {df:.4f} read from Preset {preset.name}") LuxMeterSemiAutoDevice.set_daylight_factor(df, persist=True) @@ -9160,6 +9166,8 @@ tool_buttons.append(lux_check_button) if lux_manual_input := self.main_controller.lux_auto_controller.create_manual_input_control(): extra_controls.append(lux_manual_input) + if lux_ambient_slider := self.main_controller.lux_auto_controller.lux_slider: + lux_ambient_slider.status_icon_changed_qtsignal.connect(self.update_status_indicators) self.refresh_preset_menu() self.main_panel.initialise_control_panels(self.main_controller, self.app_context_menu, self.main_config, tool_buttons, extra_controls, self.splash_message_qtsignal) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.4.1/vdu_controls.spec new/vdu_controls-2.4.2/vdu_controls.spec --- old/vdu_controls-2.4.1/vdu_controls.spec 2025-07-13 23:33:54.000000000 +0200 +++ new/vdu_controls-2.4.2/vdu_controls.spec 2025-07-28 23:50:22.000000000 +0200 @@ -18,7 +18,7 @@ Name: vdu_controls -Version: 2.4.1 +Version: 2.4.2 Release: 0 Summary: Visual Display Unit virtual control panel License: GPL-3.0-or-later