aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/coreplugin/dialogs/shortcutsettings.cpp')
-rw-r--r--src/plugins/coreplugin/dialogs/shortcutsettings.cpp57
1 files changed, 28 insertions, 29 deletions
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
index 598cf92d993..c846fb9dae0 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
@@ -268,10 +268,8 @@ ShortcutSettingsWidget::ShortcutSettingsWidget()
this, &ShortcutSettingsWidget::initialize);
connect(this, &ShortcutSettingsWidget::currentCommandChanged,
this, &ShortcutSettingsWidget::handleCurrentCommandChanged);
- connect(this,
- &ShortcutSettingsWidget::resetRequested,
- this,
- &ShortcutSettingsWidget::resetToDefault);
+ connect(this, &ShortcutSettingsWidget::resetRequested,
+ this, &ShortcutSettingsWidget::resetToDefault);
m_shortcutBox = new QGroupBox(Tr::tr("Shortcut"), this);
m_shortcutBox->setEnabled(false);
@@ -287,37 +285,12 @@ ShortcutSettingsWidget::~ShortcutSettingsWidget()
qDeleteAll(m_scitems);
}
-ShortcutSettings::ShortcutSettings()
-{
- setId(Constants::SETTINGS_ID_SHORTCUTS);
- setDisplayName(Tr::tr("Keyboard"));
- setCategory(Constants::SETTINGS_CATEGORY_CORE);
-}
-
-QWidget *ShortcutSettings::widget()
-{
- if (!m_widget)
- m_widget = new ShortcutSettingsWidget();
- return m_widget;
-}
-
void ShortcutSettingsWidget::apply()
{
for (const ShortcutItem *item : std::as_const(m_scitems))
item->m_cmd->setKeySequences(item->m_keys);
}
-void ShortcutSettings::apply()
-{
- QTC_ASSERT(m_widget, return);
- m_widget->apply();
-}
-
-void ShortcutSettings::finish()
-{
- delete m_widget;
-}
-
ShortcutItem *shortcutItem(QTreeWidgetItem *treeItem)
{
if (!treeItem)
@@ -706,5 +679,31 @@ void ShortcutInput::setConflictChecker(const ShortcutInput::ConflictChecker &fun
m_conflictChecker = fun;
}
+// ShortcutSettingsPageWidget
+
+class ShortcutSettingsPageWidget : public IOptionsPageWidget
+{
+public:
+ ShortcutSettingsPageWidget()
+ {
+ auto inner = new ShortcutSettingsWidget;
+ auto vbox = new QVBoxLayout(this);
+ vbox->addWidget(inner);
+ vbox->setContentsMargins(0, 0, 0, 0);
+
+ setOnApply([inner] { inner->apply(); });
+ }
+};
+
+// ShortcutSettings
+
+ShortcutSettings::ShortcutSettings()
+{
+ setId(Constants::SETTINGS_ID_SHORTCUTS);
+ setDisplayName(Tr::tr("Keyboard"));
+ setCategory(Constants::SETTINGS_CATEGORY_CORE);
+ setWidgetCreator([] { return new ShortcutSettingsPageWidget; });
+}
+
} // namespace Internal
} // namespace Core