diff libgui/src/settings-dialog.cc @ 19698:ff56a9899101

fix new shortcut dialog when applying new settings (fix #44196) * settings-dialog.cc (write_changed_settings): new boolean parameter whether settings dialog is closing or not, calling function for writing the shortcuts with this parameter; (button_clicked): calling write_changed_settings with new flag set to false when button with accept role was clicked * settings-dialog.h: write_changed_settings with boolean parameter * shortcut-manager.cc (do_write_shortcuts): delete shortcut dialog only if settings dialog is closing, setting to 0 after deletion; (do_import_export): call do_write_shortcuts with new flag * shortcut-manager.h: do_/write_shortcuts with new boolean parameter
author Torsten <ttl@justmail.de>
date Fri, 06 Feb 2015 22:55:01 +0100
parents 5d0663bff506
children 4197fc428c7d
line wrap: on
line diff
--- a/libgui/src/settings-dialog.cc	Fri Feb 06 13:06:54 2015 -0500
+++ b/libgui/src/settings-dialog.cc	Fri Feb 06 22:55:01 2015 +0100
@@ -609,7 +609,7 @@
 }
 
 void
-settings_dialog::write_changed_settings ()
+settings_dialog::write_changed_settings (bool closing)
 {
   QSettings *settings = resource_manager::get_settings ();
   // FIXME: what should happen if settings is 0?
@@ -823,7 +823,7 @@
   if (ui->rb_sc_set2->isChecked ())
     set = 1;
   settings->setValue ("shortcuts/set",set);
-  shortcut_manager::write_shortcuts (0, settings);  // 0: write both sets
+  shortcut_manager::write_shortcuts (0, settings, closing); // 0: write both sets
 
   // settings dialog's geometry
   settings->setValue ("settings/last_tab",ui->tabWidget->currentIndex ());
@@ -963,7 +963,7 @@
   if (button_role == QDialogButtonBox::ApplyRole ||
       button_role == QDialogButtonBox::AcceptRole)
     {
-      write_changed_settings ();
+      write_changed_settings (button_role == QDialogButtonBox::AcceptRole);
       emit apply_new_settings ();
     }