# HG changeset patch # User Torsten Lilge # Date 1713243416 -7200 # Node ID 370a2de931a0e015a60ffcc57575cc163f6eaea5 # Parent ec8b3c32effaa14bb2efd81b8ab7881b018ce029 fix checking for duplicate shortcuts * shortcuts-tree-widget.cc (shortcut_edit_dialog::finished): use all_shortcut_preferences for list of all shortcuts, use sc_value for the used shortcuts including default values, check within top level sections diff -r ec8b3c32effa -r 370a2de931a0 libgui/src/shortcuts-tree-widget.cc --- a/libgui/src/shortcuts-tree-widget.cc Sun Apr 14 15:14:17 2024 +0200 +++ b/libgui/src/shortcuts-tree-widget.cc Tue Apr 16 06:56:56 2024 +0200 @@ -290,6 +290,9 @@ // Note that m_settings_key doesn't begin with the sc_group prefix. QString my_section = get_shortcut_section (m_settings_key); + if (my_section.contains ('_')) // get top level section + my_section = my_section.section ('_', 0, 0, QString::SectionSkipEmpty); + QString actual_text = m_edit_actual->text (); bool conflict = false; @@ -298,7 +301,7 @@ gui_settings settings; settings.beginGroup (sc_group); - const QStringList shortcut_settings_keys = settings.allKeys (); + const QStringList shortcut_settings_keys = all_shortcut_preferences::keys (); settings.endGroup (); for (const auto& settings_key : shortcut_settings_keys) @@ -307,11 +310,16 @@ continue; QString section = get_shortcut_section (settings_key); + if (section.contains ('_')) // get top level section + section = section.section ('_', 0, 0, QString::SectionSkipEmpty); - if (section == my_section || section.startsWith ("main_")) + if (section == my_section || section == "main") { - QString shortcut_text - = settings.value (sc_group + "/" + settings_key).toString (); + const sc_pref scpref = all_shortcut_preferences::value (settings_key); + QString shortcut_text = settings.sc_value (scpref); + + if (shortcut_text.isEmpty ()) + continue; if (shortcut_text == actual_text) {