# HG changeset patch # User Torsten Lilge # Date 1712861552 -7200 # Node ID a45ccf01d41b22718c98cf8aaef9ae5014c926fa # Parent f2314b4a9b1a536d46ea540d03c4bad9fc33b243 use different widget geometry setting when widget launched from cli * gui-settings.h: new constant for settings key extension in order to distinguish widget geometry settings with and without gui * octave-dock-widget.cc (handle_settings): if no main window exists, extend the name of the geometry settings keys; (save_settings): dito diff -r f2314b4a9b1a -r a45ccf01d41b libgui/src/gui-settings.h --- a/libgui/src/gui-settings.h Thu Apr 11 18:24:08 2024 +0200 +++ b/libgui/src/gui-settings.h Thu Apr 11 20:52:32 2024 +0200 @@ -221,6 +221,9 @@ // Some constants used in the preferences of several widgets and therefore // defined globally here +// Constants for distinguishing between full GUI and dockwidgets initiated +// from the command line +const QString settings_no_mainwin ("__no_mainwin"); // Constants for handling different color schemes const QColor settings_color_no_change (255, 0, 255); const QStringList settings_color_modes_ext (QStringList () << "" << "_2"); diff -r f2314b4a9b1a -r a45ccf01d41b libgui/src/octave-dock-widget.cc --- a/libgui/src/octave-dock-widget.cc Thu Apr 11 18:24:08 2024 +0200 +++ b/libgui/src/octave-dock-widget.cc Thu Apr 11 20:52:32 2024 +0200 @@ -513,6 +513,7 @@ QRect default_floating_size = QRect (x+16, y+32, w/3, h/2); QRect default_dock_size; + QString key_ext; if (m_main_window) { // We have a main window, dock size depends on size of main window @@ -523,10 +524,11 @@ { // No main window, default dock size should never be used default_dock_size = QRect (0, 0, w/10, h/10); + key_ext = settings_no_mainwin; } m_recent_float_geom - = settings.value (dw_float_geometry.settings_key ().arg (objectName ()), + = settings.value (dw_float_geometry.settings_key ().arg (objectName ()) + key_ext, default_floating_size).toRect (); adjust_to_screen (m_recent_float_geom, default_floating_size); @@ -535,7 +537,7 @@ // saveGeomety to new QRect setting (see comment for restoring size // of docked widgets) QVariant dock_geom - = settings.value (dw_dock_geometry.settings_key ().arg (objectName ()), + = settings.value (dw_dock_geometry.settings_key ().arg (objectName ()) + key_ext, default_dock_size); #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) if (dock_geom.canConvert (QMetaType (QMetaType::QRect))) @@ -588,15 +590,19 @@ store_geometry (); + QString key_ext; + if (! m_main_window) + key_ext = settings_no_mainwin; + // conditional needed? if (! m_recent_float_geom.isNull ()) - settings.setValue (dw_float_geometry.settings_key ().arg (name), m_recent_float_geom); + settings.setValue (dw_float_geometry.settings_key ().arg (name) + key_ext, m_recent_float_geom); if (! m_recent_dock_geom.isEmpty ()) - settings.setValue (dw_dock_geometry.settings_key ().arg (name), m_recent_dock_geom); - settings.setValue (dw_is_visible.settings_key ().arg (name), isVisible ()); // store visibility - settings.setValue (dw_is_floating.settings_key ().arg (name), isFloating ()); // store floating - settings.setValue (dw_is_minimized.settings_key ().arg (name), isMinimized ()); // store minimized + settings.setValue (dw_dock_geometry.settings_key ().arg (name) + key_ext, m_recent_dock_geom); + settings.setValue (dw_is_visible.settings_key ().arg (name) + key_ext, isVisible ()); // store visibility + settings.setValue (dw_is_floating.settings_key ().arg (name) + key_ext, isFloating ()); // store floating + settings.setValue (dw_is_minimized.settings_key ().arg (name) + key_ext, isMinimized ()); // store minimized settings.sync (); }