diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp index 8649adc1679..4c7de88fd9b 100644 --- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp +++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -420,6 +421,7 @@ private: QGridLayout *m_shortcutLayout; std::vector> m_shortcutInputs; QPointer m_addButton = nullptr; + QTimer m_updateTimer; }; ShortcutSettingsWidget::ShortcutSettingsWidget() @@ -428,7 +430,12 @@ ShortcutSettingsWidget::ShortcutSettingsWidget() setTargetHeader(Tr::tr("Shortcut")); setResetVisible(true); + m_updateTimer.setSingleShot(true); + m_updateTimer.setInterval(100); + connect(ActionManager::instance(), &ActionManager::commandListChanged, + &m_updateTimer, qOverload<>(&QTimer::start)); + connect(&m_updateTimer, &QTimer::timeout, this, &ShortcutSettingsWidget::initialize); connect(this, &ShortcutSettingsWidget::currentCommandChanged, this, &ShortcutSettingsWidget::handleCurrentCommandChanged);