Mercurial > octave-nkf
diff libgui/src/shortcut-manager.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/shortcut-manager.cc Fri Feb 06 13:06:54 2015 -0500 +++ b/libgui/src/shortcut-manager.cc Fri Feb 06 22:55:01 2015 +0100 @@ -419,7 +419,7 @@ // write one or all actual shortcut set(s) into a settings file void -shortcut_manager::do_write_shortcuts (int set, QSettings* settings) +shortcut_manager::do_write_shortcuts (int set, QSettings* settings, bool closing) { if (set) { @@ -442,7 +442,12 @@ settings->setValue("shortcuts/"+_sc.at (i).settings_key+"_1", _sc.at (i).actual_sc[1].toString ()); } - delete _dialog; // the dialog for key sequences can be removed now + + if (closing) + { + delete _dialog; // the dialog for key sequences can be removed now + _dialog = 0; // make sure it is zero again + } } settings->sync (); // sync the settings file @@ -666,7 +671,7 @@ if (import) import_shortcuts (set, osc_settings); // import (special action) else - do_write_shortcuts (set, osc_settings); // export, like saving settings + do_write_shortcuts (set, osc_settings, false); // export, (saving settings) } else qWarning () << tr ("Failed to open %1 as octave shortcut file"). arg (file);