diff options
author | Philip Kaufmann <phil.kaufmann@t-online.de> | 2012-08-18 15:54:39 +0200 |
---|---|---|
committer | Philip Kaufmann <phil.kaufmann@t-online.de> | 2013-01-05 13:51:36 +0100 |
commit | 5fb445b49e80812f004f00d5adf8fdd39bec557f (patch) | |
tree | ef1cf6ec492049daccaa4ce7b31d7f429d99317b | |
parent | ea9788517bfa3e53e192c5af9e64e73625f9db74 (diff) | |
download | bitcoin-5fb445b49e80812f004f00d5adf8fdd39bec557f.tar.xz |
Bitcoin-Qt: add a Reset button to the options dialog
- a click on "Reset Options" sets all options to the default values by
removing all stored settings (QSettings), loading the defaults and
saving them as the new settings
- before the reset is executed the user is presented a confirmation dialog
- special casing was needed for StartAtStartup
-rw-r--r-- | src/qt/forms/optionsdialog.ui | 34 | ||||
-rw-r--r-- | src/qt/optionsdialog.cpp | 27 | ||||
-rw-r--r-- | src/qt/optionsdialog.h | 1 | ||||
-rw-r--r-- | src/qt/optionsmodel.cpp | 18 | ||||
-rw-r--r-- | src/qt/optionsmodel.h | 1 |
5 files changed, 79 insertions, 2 deletions
diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui index 6a13361974..3771f9de63 100644 --- a/src/qt/forms/optionsdialog.ui +++ b/src/qt/forms/optionsdialog.ui @@ -44,7 +44,7 @@ </widget> </item> <item> - <layout class="QHBoxLayout" name="horizontalLayout_Main"> + <layout class="QHBoxLayout" name="horizontalLayout_1_Main"> <item> <widget class="QLabel" name="transactionFeeLabel"> <property name="text"> @@ -62,7 +62,7 @@ <widget class="BitcoinAmountField" name="transactionFee"/> </item> <item> - <spacer name="horizontalSpacer_Main"> + <spacer name="horizontalSpacer_1_Main"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> @@ -99,6 +99,36 @@ </property> </spacer> </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2_Main"> + <item> + <spacer name="horizontalSpacer_2_Main"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="resetButton"> + <property name="toolTip"> + <string>Reset all client options to default.</string> + </property> + <property name="text"> + <string>&Reset Options</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> </layout> </widget> <widget class="QWidget" name="tabNetwork"> diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index 03dcb0b538..6b98ab1929 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -177,6 +177,33 @@ void OptionsDialog::setSaveButtonState(bool fState) ui->okButton->setEnabled(fState); } +void OptionsDialog::on_resetButton_clicked() +{ + if(model) + { + // confirmation dialog + QMessageBox::StandardButton btnRetVal = QMessageBox::question(this, tr("Confirm options reset"), + tr("Some settings may require a client restart to take effect.") + "<br><br>" + tr("Do you want to proceed?"), + QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel); + + if(btnRetVal == QMessageBox::Cancel) + return; + + disableApplyButton(); + + /* disable restart warning messages display */ + fRestartWarningDisplayed_Lang = fRestartWarningDisplayed_Proxy = true; + + /* reset all options and save the default values (QSettings) */ + model->Reset(); + mapper->toFirst(); + mapper->submit(); + + /* re-enable restart warning messages display */ + fRestartWarningDisplayed_Lang = fRestartWarningDisplayed_Proxy = false; + } +} + void OptionsDialog::on_okButton_clicked() { mapper->submit(); diff --git a/src/qt/optionsdialog.h b/src/qt/optionsdialog.h index 18469f509d..d64ed0b57f 100644 --- a/src/qt/optionsdialog.h +++ b/src/qt/optionsdialog.h @@ -36,6 +36,7 @@ private slots: void disableSaveButtons(); /* set apply button and OK button state (enabled / disabled) */ void setSaveButtonState(bool fState); + void on_resetButton_clicked(); void on_okButton_clicked(); void on_cancelButton_clicked(); void on_applyButton_clicked(); diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index 5dac5a6c45..2457e38742 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -60,6 +60,24 @@ void OptionsModel::Init() SoftSetArg("-lang", language.toStdString()); } +void OptionsModel::Reset() +{ + QSettings settings; + + // Remove all entries in this QSettings object + settings.clear(); + + // default setting for OptionsModel::StartAtStartup - disabled + if (GUIUtil::GetStartOnSystemStartup()) + GUIUtil::SetStartOnSystemStartup(false); + + // Re-Init to get default values + Init(); + + // Ensure Upgrade() is not running again by setting the bImportFinished flag + settings.setValue("bImportFinished", true); +} + bool OptionsModel::Upgrade() { QSettings settings; diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index 4f893bb44e..d25d898d9c 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -33,6 +33,7 @@ public: }; void Init(); + void Reset(); /* Migrate settings from wallet.dat after app initialization */ bool Upgrade(); /* returns true if settings upgraded */ |