Mercurial > octave
changeset 33375:a45ccf01d41b
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
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Thu, 11 Apr 2024 20:52:32 +0200 |
parents | f2314b4a9b1a |
children | d7e4a4e1a8fb |
files | libgui/src/gui-settings.h libgui/src/octave-dock-widget.cc |
diffstat | 2 files changed, 16 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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");
--- 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 (); }