diff --git a/CHANGELOG.md b/CHANGELOG.md index 50501a54d3..54b4fa0d76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -204,6 +204,7 @@ Feature #3980: In-game option to disable controller Feature #3999: Shift + Double Click should maximize/restore menu size Feature #4001: Toggle sneak controller shortcut + Feature #4068: OpenMW-CS: Add a button to reset key bindings to defaults Feature #4129: Beta Comment to File Feature #4209: Editor: Faction rank sub-table Feature #4255: Handle broken RepairedOnMe script function diff --git a/apps/opencs/view/prefs/keybindingpage.cpp b/apps/opencs/view/prefs/keybindingpage.cpp index 143665f4a0..eed5c0eb8e 100644 --- a/apps/opencs/view/prefs/keybindingpage.cpp +++ b/apps/opencs/view/prefs/keybindingpage.cpp @@ -4,11 +4,13 @@ #include #include +#include #include #include #include "../../model/prefs/setting.hpp" #include "../../model/prefs/category.hpp" +#include "../../model/prefs/state.hpp" namespace CSVPrefs { @@ -29,8 +31,18 @@ namespace CSVPrefs mPageSelector = new QComboBox(); connect(mPageSelector, SIGNAL(currentIndexChanged(int)), mStackedLayout, SLOT(setCurrentIndex(int))); + QFrame* lineSeparator = new QFrame(topWidget); + lineSeparator->setFrameShape(QFrame::HLine); + lineSeparator->setFrameShadow(QFrame::Sunken); + + // Reset key bindings button + QPushButton* resetButton = new QPushButton ("Reset to Defaults", topWidget); + connect(resetButton, SIGNAL(clicked()), this, SLOT(resetKeyBindings())); + topLayout->addWidget(mPageSelector); topLayout->addWidget(stackedWidget); + topLayout->addWidget(lineSeparator); + topLayout->addWidget(resetButton); topLayout->setSizeConstraint(QLayout::SetMinAndMaxSize); // Add each option @@ -85,4 +97,9 @@ namespace CSVPrefs } } } + + void KeyBindingPage::resetKeyBindings() + { + CSMPrefs::State::get().resetCategory("Key Bindings"); + } } diff --git a/apps/opencs/view/prefs/keybindingpage.hpp b/apps/opencs/view/prefs/keybindingpage.hpp index 8a0cb2952a..05c4b22dbc 100644 --- a/apps/opencs/view/prefs/keybindingpage.hpp +++ b/apps/opencs/view/prefs/keybindingpage.hpp @@ -29,6 +29,10 @@ namespace CSVPrefs QStackedLayout* mStackedLayout; QGridLayout* mPageLayout; QComboBox* mPageSelector; + + private slots: + + void resetKeyBindings(); }; }