changeset 31559:26f1ef8fa1ce stable

save settings dialog geometry and last tab also when cancelled * settings-dialog.cc (button_clicked): save geometry whenever dialog is closed; (write_changed_settings): do not wirte state of dialog here
author Torsten Lilge <ttl-octave@mailbox.org>
date Sun, 27 Nov 2022 11:27:32 +0100
parents 69c8979f8b2c
children 9d9b31c8458b
files libgui/src/settings-dialog.cc
diffstat 1 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/settings-dialog.cc	Sun Nov 27 11:27:29 2022 +0100
+++ b/libgui/src/settings-dialog.cc	Sun Nov 27 11:27:32 2022 +0100
@@ -573,7 +573,17 @@
 
     if (button_role == QDialogButtonBox::RejectRole
         || button_role == QDialogButtonBox::AcceptRole)
-      close ();
+      {
+        // save last settings dialog's geometry and close
+        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+        gui_settings *settings = rmgr.get_settings ();
+
+        settings->setValue (sd_last_tab.key, tabWidget->currentIndex ());
+        settings->setValue (sd_geometry.key, saveGeometry ());
+        settings->sync ();
+
+        close ();
+      }
   }
 
   void settings_dialog::set_disabled_pref_file_browser_dir (bool disable)
@@ -1250,10 +1260,6 @@
     shortcut_manager& scmgr = m_octave_qobj.get_shortcut_manager ();
     scmgr.write_shortcuts (settings, closing);
 
-    // settings dialog's geometry
-    settings->setValue (sd_last_tab.key, tabWidget->currentIndex ());
-    settings->setValue (sd_geometry.key, saveGeometry ());
-
     settings->sync ();
   }