changeset 31691:fc3bc1402b0d

eliminate unnecessary table of keyboard shortcuts in shortcut_manager class * shortcut-manager.h, shortcut-manager.cc (shortcut_manager::m_action_hash): Delete data member and all uses. (shortcut_manager::set_shortcut, shortcut_manager::shortcut): Don't check m_action_hash for shortcut. Just use value from settings if it exists. (shortcut_manager::init): Don't store shortcut in m_action_hash.
author John W. Eaton <jwe@octave.org>
date Sat, 24 Dec 2022 14:54:52 -0500
parents 1a1f47f17ed4
children 2422fb7f1e6c
files libgui/src/shortcut-manager.cc libgui/src/shortcut-manager.h
diffstat 2 files changed, 10 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/shortcut-manager.cc	Tue Dec 27 14:55:03 2022 -0500
+++ b/libgui/src/shortcut-manager.cc	Sat Dec 24 14:54:52 2022 -0500
@@ -343,36 +343,26 @@
         return;
       }
 
-    // Enable: Is the given key known? If yes, get the value from the
-    //         settings file and set it to the action
-    int index;
+    gui_settings settings;
 
-    index = m_action_hash[scpref.key] - 1;
+    QString shortcut = settings.sc_value (scpref);
 
-    if (index > -1 && index < m_sc.count ())
-      {
-        gui_settings settings;
-
-        action->setShortcut (QKeySequence (settings.sc_value (scpref)));
-      }
+    if (! shortcut.isEmpty ())
+      action->setShortcut (QKeySequence (shortcut));
     else
-      qDebug () << "Key: " << scpref.key << " not found in m_action_hash";
+      qDebug () << "Key: " << scpref.key << " not found in settings";
   }
 
   void shortcut_manager::shortcut (QShortcut *sc, const sc_pref& scpref)
   {
-    int index;
+    gui_settings settings;
 
-    index = m_action_hash[scpref.key] - 1;
+    QString shortcut = settings.sc_value (scpref);
 
-    if (index > -1 && index < m_sc.count ())
-      {
-        gui_settings settings;
-
-        sc->setKey (QKeySequence (settings.sc_value (scpref)));
-      }
+    if (! shortcut.isEmpty ())
+      sc->setKey (QKeySequence (shortcut));
     else
-      qDebug () << "Key: " << scpref.key << " not found in m_action_hash";
+      qDebug () << "Key: " << scpref.key << " not found in settings";
   }
 
   void shortcut_manager::fill_treewidget (QTreeWidget *tree_view)
@@ -638,7 +628,6 @@
     // insert shortcut in order to check for duplicates later
     if (! actual.isEmpty ())
       m_shortcut_hash[actual.toString ()] = m_sc.count ();
-    m_action_hash[sc.key] = m_sc.count ();
 
     // check whether ctrl+d is used from main window, i.e. is a global shortcut
     QString main_group_prefix
--- a/libgui/src/shortcut-manager.h	Tue Dec 27 14:55:03 2022 -0500
+++ b/libgui/src/shortcut-manager.h	Sat Dec 24 14:54:52 2022 -0500
@@ -158,7 +158,6 @@
 
     QList<shortcut_t> m_sc;
     QHash<QString, int> m_shortcut_hash;
-    QHash<QString, int> m_action_hash;
     QHash <QString, QTreeWidgetItem *> m_level_hash;
     QHash<int, QTreeWidgetItem *> m_index_item_hash;
     QHash<QTreeWidgetItem *, int> m_item_index_hash;