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 2024-08-22 18:13:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vdu_controls (Old)
 and      /work/SRC/openSUSE:Factory/.vdu_controls.new.2698 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vdu_controls"

Thu Aug 22 18:13:45 2024 rev:6 rq:1195207 version:2.0.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/vdu_controls/vdu_controls.changes        
2024-05-09 12:14:10.791616954 +0200
+++ /work/SRC/openSUSE:Factory/.vdu_controls.new.2698/vdu_controls.changes      
2024-08-22 18:14:08.751843991 +0200
@@ -1,0 +2,8 @@
+Thu Aug 22 01:21:40 UTC 2024 - Michael Hamilton <mich...@actrix.gen.nz>
+
+- Version 2.0.4
+  * The About-Dialog now refreshes the ddcutil version info on each 
invocation. 
+  * Increased dbus timeout to 10 seconds (in case numerous VDUs or errors slow 
down VDU detection).
+  * Dynamically enable a scroll-area when the main-panel exceeds the available 
screen height. 
+
+-------------------------------------------------------------------

Old:
----
  vdu_controls-2.0.3.tar.gz

New:
----
  vdu_controls-2.0.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vdu_controls.spec ++++++
--- /var/tmp/diff_new_pack.NE58GQ/_old  2024-08-22 18:14:09.303866950 +0200
+++ /var/tmp/diff_new_pack.NE58GQ/_new  2024-08-22 18:14:09.307867117 +0200
@@ -18,7 +18,7 @@
 
 
 Name:           vdu_controls
-Version:        2.0.3
+Version:        2.0.4
 Release:        0
 Summary:        Visual Display Unit virtual control panel
 License:        GPL-3.0-or-later

++++++ vdu_controls-2.0.3.tar.gz -> vdu_controls-2.0.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdu_controls-2.0.3/PKGBUILD 
new/vdu_controls-2.0.4/PKGBUILD
--- old/vdu_controls-2.0.3/PKGBUILD     2024-05-08 11:31:02.000000000 +0200
+++ new/vdu_controls-2.0.4/PKGBUILD     2024-07-02 02:48:57.000000000 +0200
@@ -1,5 +1,5 @@
 pkgname=vdu_controls
-pkgver=2.0.3
+pkgver=2.0.4
 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.0.3/README.md 
new/vdu_controls-2.0.4/README.md
--- old/vdu_controls-2.0.3/README.md    2024-05-08 11:31:02.000000000 +0200
+++ new/vdu_controls-2.0.4/README.md    2024-07-02 02:48:57.000000000 +0200
@@ -311,6 +311,10 @@
 
 Version History
 ---------------
+* 2.0.4
+  * The About-Dialog now refreshes the ddcutil version info on each 
invocation. 
+  * Increased dbus timeout to 10 seconds (in case numerous VDUs or errors slow 
down VDU detection).
+  * Dynamically enable a scroll-area when the main-panel exceeds the available 
screen height.
 * 2.0.3
   * Reduce the number of writes to VDU NVRAM by sliders, spinners, and ambient 
brightness adjustments.
     * Slider and spin-box controls now only update the VDU when adjustments 
become slow or stop (when 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdu_controls-2.0.3/docs/_build/man/vdu_controls.1 
new/vdu_controls-2.0.4/docs/_build/man/vdu_controls.1
--- old/vdu_controls-2.0.3/docs/_build/man/vdu_controls.1       2024-05-08 
11:31:02.000000000 +0200
+++ new/vdu_controls-2.0.4/docs/_build/man/vdu_controls.1       2024-07-02 
02:48:57.000000000 +0200
@@ -27,7 +27,7 @@
 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
 ..
-.TH "VDU_CONTROLS" "1" "May 08, 2024" "" "vdu_controls"
+.TH "VDU_CONTROLS" "1" "Jun 22, 2024" "" "vdu_controls"
 .SH NAME
 vdu_controls \- vdu_controls 1.11.0
 .SH VDU_CONTROLS - A DDC CONTROL PANEL FOR MONITORS
@@ -916,6 +916,9 @@
 .B VDU_CONTROLS_DEVELOPER
 Changes some search paths to be more convenient in a development
 scenario. (\fBno\fP or yes)
+.TP
+.B VDU_CONTROLS_DBUS_TIMEOUT_MILLIS
+Dbus call wait timeout. Default is 10000, 10 seconds.
 .UNINDENT
 .UNINDENT
 .UNINDENT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vdu_controls-2.0.3/docs/_build/man/vdu_controls.1.html 
new/vdu_controls-2.0.4/docs/_build/man/vdu_controls.1.html
--- old/vdu_controls-2.0.3/docs/_build/man/vdu_controls.1.html  2024-05-08 
11:31:02.000000000 +0200
+++ new/vdu_controls-2.0.4/docs/_build/man/vdu_controls.1.html  2024-07-02 
02:48:57.000000000 +0200
@@ -698,7 +698,10 @@
 
 VDU_CONTROLS_DEVELOPER
     Changes some search paths to be more convenient in a development
-    scenario. (``no`` or yes)</code></pre>
+    scenario. (``no`` or yes)
+
+VDU_CONTROLS_DBUS_TIMEOUT_MILLIS
+    Dbus call wait timeout. Default is 10000, 10 seconds.</code></pre>
 <h1 id="files">Files</h1>
 <pre><code>$HOME/.config/vdu_controls/
     Location for config files, Presets, and other persistent data.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdu_controls-2.0.3/setup.cfg 
new/vdu_controls-2.0.4/setup.cfg
--- old/vdu_controls-2.0.3/setup.cfg    2024-05-08 11:31:02.000000000 +0200
+++ new/vdu_controls-2.0.4/setup.cfg    2024-07-02 02:48:57.000000000 +0200
@@ -1,6 +1,6 @@
 [metadata]
 name = vdu_controls-digitaltrails
-version = 2.0.3
+version = 2.0.4
 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.0.3/vdu_controls.py 
new/vdu_controls-2.0.4/vdu_controls.py
--- old/vdu_controls-2.0.3/vdu_controls.py      2024-05-08 11:31:02.000000000 
+0200
+++ new/vdu_controls-2.0.4/vdu_controls.py      2024-07-02 02:48:57.000000000 
+0200
@@ -699,6 +699,9 @@
         Changes some search paths to be more convenient in a development
         scenario. (``no`` or yes)
 
+    VDU_CONTROLS_DBUS_TIMEOUT_MILLIS
+        Dbus call wait timeout. Default is 10000, 10 seconds.
+
 Files
 =====
     $HOME/.config/vdu_controls/
@@ -793,10 +796,11 @@
 from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, 
QSlider, QMessageBox, QLineEdit, QLabel, \
     QSplashScreen, QPushButton, QProgressBar, QComboBox, QSystemTrayIcon, 
QMenu, QStyle, QTextEdit, QDialog, QTabWidget, \
     QCheckBox, QPlainTextEdit, QGridLayout, QSizePolicy, QAction, QMainWindow, 
QToolBar, QToolButton, QFileDialog, \
-    QWidgetItem, QScrollArea, QGroupBox, QFrame, QSplitter, QSpinBox, 
QDoubleSpinBox, QInputDialog, QStatusBar, qApp, QShortcut
+    QWidgetItem, QScrollArea, QGroupBox, QFrame, QSplitter, QSpinBox, 
QDoubleSpinBox, QInputDialog, QStatusBar, qApp, QShortcut, \
+    QDesktopWidget
 
 APPNAME = "VDU Controls"
-VDU_CONTROLS_VERSION = '2.0.3'
+VDU_CONTROLS_VERSION = '2.0.4'
 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}).'
 
@@ -1195,8 +1199,6 @@
 
 VduStableId = NewType('VduStableId', str)
 
-about_supporting_versions = ""
-
 
 def is_dark_theme() -> bool:
     # Heuristic for checking for a dark theme. Is the sample text lighter than 
the background?
@@ -1344,13 +1346,13 @@
             self.ddcutil_version = tuple(int(i) for i in 
version_match.groups()[0:3])
             self.version_suffix = version_match.groups()[3]
         # self.version = (1, 2, 2)  # for testing for 1.2.2 compatibility
-        global about_supporting_versions
-        about_supporting_versions = \
-            f"ddcutil-interface: 
{self.ddcutil_impl.get_interface_version_string()}; ddcutil: {version_info}"
         log_info(f"ddcutil version {self.ddcutil_version} "
                  f"{self.version_suffix}(dynamic-sleep={self.ddcutil_version 
>= (2, 0, 0)}) "
                  f"- interface 
{self.ddcutil_impl.get_interface_version_string()}")
 
+    def ddcutil_version_info(self) -> (str, str):
+        return self.ddcutil_impl.get_interface_version_string(), 
self.ddcutil_impl.get_ddcutil_version_string()
+
     def refresh_connection(self):
         self.ddcutil_impl.refresh_connection()
 
@@ -1715,7 +1717,7 @@
         self.common_args = env_args + common_args if common_args else []
         self.service_access_lock = Lock()
         self.listener_callback: Callable | None = callback
-        self.dbus_timeout_millis = 
int(os.getenv("VDU_CONTROLS_DBUS_TIMEOUT_MILLIS", default='5000'))
+        self.dbus_timeout_millis = 
int(os.getenv("VDU_CONTROLS_DBUS_TIMEOUT_MILLIS", default='10000'))
         self._status_values: Dict[int, str] = {}
         for try_count in range(1, 32):  # Approximating an infinite loop
             self.ddcutil_proxy, self.ddcutil_props_proxy = 
self._connect_to_service()
@@ -3802,8 +3804,9 @@
                 warn_omitted.setInformativeText(tr('The monitor will be 
omitted from the control panel.'))
                 warn_omitted.exec()
 
+        controllers_layout.addStretch(0);
         for control in extra_controls:
-            controllers_layout.addWidget(control)
+            controllers_layout.addWidget(control, 0, Qt.AlignBottom)
 
         if len(self.vdu_control_panels) == 0:
             no_vdu_widget = QWidget()
@@ -3823,7 +3826,7 @@
             controllers_layout.addWidget(no_vdu_widget)
 
         self.bottom_toolbar = VduPanelBottomToolBar(tool_buttons=tool_buttons, 
app_context_menu=app_context_menu, parent=self)
-        self.layout().addWidget(self.bottom_toolbar)
+        controllers_layout.addWidget(self.bottom_toolbar, 0, Qt.AlignBottom)
 
         def open_context_menu(position: QPoint) -> None:
             assert app_context_menu is not None
@@ -7188,15 +7191,16 @@
 class AboutDialog(QMessageBox, DialogSingletonMixin):
 
     @staticmethod
-    def invoke() -> None:
+    def invoke(main_controller: VduAppController) -> None:
         if AboutDialog.exists():
             AboutDialog.get_instance().refresh_content()
             AboutDialog.show_existing_dialog()
         else:
-            AboutDialog()
+            AboutDialog(main_controller)
 
-    def __init__(self) -> None:
+    def __init__(self, main_controller: VduAppController) -> None:
         super().__init__()
+        self.main_controller = main_controller
         self.refresh_content()
         self.setModal(False)
         self.show()
@@ -7215,7 +7219,9 @@
                     WEATHER_FORECAST_URL=WEATHER_FORECAST_URL)
         else:
             about_text = ABOUT_TEXT
-        about_text += f"<hr><p><small>{about_supporting_versions}</small>"
+        if self.main_controller and self.main_controller.ddcutil:
+            about_text += "<hr><p><small>ddcutil-interface: {}; ddcutil: 
{}</small>".format(
+                *self.main_controller.ddcutil.ddcutil_version_info())
         self.setInformativeText(about_text)
         self.setIcon(QMessageBox.Information)
 
@@ -7902,6 +7908,7 @@
         self.qt_state_key = self.objectName() + "_window_state"
         self.qt_settings = QSettings('vdu_controls.qt.state', 'vdu_controls')
         self.main_panel: VduControlsMainPanel | None = None
+        self.scroll_area: QScrollArea | None = None
         self.main_config = main_config
         self.hide_shortcuts = True
 
@@ -7922,7 +7929,9 @@
         self.app_context_menu = ContextMenu(
             app_controller=main_controller,
             main_window_action=partial(self.show_main_window, True) if 
gnome_tray_behaviour else None,
-            about_action=AboutDialog.invoke, help_action=HelpDialog.invoke, 
gray_scale_action=GreyScaleDialog,
+            about_action=partial(AboutDialog.invoke, self.main_controller),
+            help_action=HelpDialog.invoke,
+            gray_scale_action=GreyScaleDialog,
             lux_auto_action=self.main_controller.lux_auto_action if 
main_config.is_set(ConfOption.LUX_OPTIONS_ENABLED) else None,
             lux_check_action=self.main_controller.lux_check_action if 
main_config.is_set(ConfOption.LUX_OPTIONS_ENABLED) else None,
             lux_meter_action=partial(LuxDialog.invoke, self.main_controller) 
if main_config.is_set(
@@ -8083,6 +8092,9 @@
         if self.main_panel is not None:
             self.main_panel.deleteLater()
             self.main_panel = None
+        if self.scroll_area is not None:
+            self.scroll_area.deleteLater()
+            self.scroll_area = None
         self.main_panel = VduControlsMainPanel()
         self.main_controller.initialize_vdu_controllers()
         refresh_button = ToolButton(REFRESH_ICON_SOURCE, tr("Refresh settings 
from monitors"))
@@ -8105,7 +8117,27 @@
         # Wire-up after successful init to avoid deadlocks
         
self.main_panel.vdu_vcp_changed_qtsignal.connect(self.respond_to_changes_handler)
         self.indicate_busy(True)
-        self.setCentralWidget(self.main_panel)
+        available_height = QDesktopWidget().availableGeometry().height() - 200 
 # Minus allowance for panel/tray
+        #self.main_panel.adjustSize()
+        hint_height = self.main_panel.sizeHint().height()  # The hint is the 
actual required layout space
+        hint_width = self.main_panel.sizeHint().width()
+        log_debug(f" {hint_height=} {available_height=} 
{self.minimumHeight()=}")
+        if hint_height > available_height:
+            log_debug(f"Main panel too high, adding scroll-area {hint_height=} 
{available_height=}") if log_debug_enabled else None
+            self.setMaximumHeight(available_height)
+            self.setMinimumWidth(hint_width + 20)  # Allow extra space for 
disappearing scrollbars
+
+        else:  # Don't mess with the size unnecessarily - let the user 
determine it?
+            self.setMinimumHeight(hint_height + 20)
+            self.setMinimumWidth(hint_width + 20)
+            if hint_height > self.height():
+                self.adjustSize()
+        self.scroll_area = QScrollArea()
+        self.scroll_area.setWidgetResizable(True)
+        self.scroll_area.setWidget(self.main_panel)
+        
#self.scroll_area.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Expanding, 
QSizePolicy.Policy.Expanding))
+
+        self.setCentralWidget(self.scroll_area)
         self.splash_message_qtsignal.emit(tr("Checking Presets"))
 
     def get_main_panel(self) -> VduControlsMainPanel:
@@ -8447,7 +8479,6 @@
             app.installTranslator(translator)
             log_info(tr("Using {} translations from {}").format(locale_name, 
qm_path.as_posix()))
 
-
 def main() -> None:
     # Allow control-c to terminate the program
     signal.signal(signal.SIGINT, signal.SIG_DFL)
@@ -8515,12 +8546,13 @@
     if main_config.is_set(ConfOption.TRANSLATIONS_ENABLED):
         initialise_locale_translations(app)
 
-    if args.about:
-        AboutDialog.invoke()
-
     main_controller = VduAppController(main_config)
+
     VduAppWindow(main_config, app, main_controller)  # may need to assign this 
to a variable to prevent garbage collection?
 
+    if args.about:
+        AboutDialog.invoke(main_controller)
+
     if args.create_config_files:
         main_controller.create_config_files()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdu_controls-2.0.3/vdu_controls.spec 
new/vdu_controls-2.0.4/vdu_controls.spec
--- old/vdu_controls-2.0.3/vdu_controls.spec    2024-05-08 11:31:02.000000000 
+0200
+++ new/vdu_controls-2.0.4/vdu_controls.spec    2024-07-02 02:48:57.000000000 
+0200
@@ -18,7 +18,7 @@
 
 
 Name:           vdu_controls
-Version:        2.0.3
+Version:        2.0.4
 Release:        0
 Summary:        Visual Display Unit virtual control panel
 License:        GPL-3.0-or-later

Reply via email to