1 // Copyright (c) 2011-2018 The Bitcoin Core developers 2 // Distributed under the MIT software license, see the accompanying 3 // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 #ifndef BITCOIN_QT_OPTIONSDIALOG_H 6 #define BITCOIN_QT_OPTIONSDIALOG_H 7 8 #include <QDialog> 9 #include <QValidator> 10 11 class OptionsModel; 12 class QValidatedLineEdit; 13 14 QT_BEGIN_NAMESPACE 15 class QDataWidgetMapper; 16 QT_END_NAMESPACE 17 18 namespace Ui { 19 class OptionsDialog; 20 } 21 22 /** Proxy address widget validator, checks for a valid proxy address. 23 */ 24 class ProxyAddressValidator : public QValidator 25 { 26 Q_OBJECT 27 28 public: 29 explicit ProxyAddressValidator(QObject *parent); 30 31 State validate(QString &input, int &pos) const; 32 }; 33 34 /** Preferences dialog. */ 35 class OptionsDialog : public QDialog 36 { 37 Q_OBJECT 38 39 public: 40 explicit OptionsDialog(QWidget *parent, bool enableWallet); 41 ~OptionsDialog(); 42 43 enum Tab { 44 TAB_MAIN, 45 TAB_NETWORK, 46 }; 47 48 void setModel(OptionsModel *model); 49 void setMapper(); 50 void setCurrentTab(OptionsDialog::Tab tab); 51 52 private Q_SLOTS: 53 /* set OK button state (enabled / disabled) */ 54 void setOkButtonState(bool fState); 55 void on_resetButton_clicked(); 56 void on_openBitcoinConfButton_clicked(); 57 void on_okButton_clicked(); 58 void on_cancelButton_clicked(); 59 60 void on_hideTrayIcon_stateChanged(int fState); 61 62 void togglePruneWarning(bool enabled); 63 void showRestartWarning(bool fPersistent = false); 64 void clearStatusLabel(); 65 void updateProxyValidationState(); 66 /* query the networks, for which the default proxy is used */ 67 void updateDefaultProxyNets(); 68 69 Q_SIGNALS: 70 void proxyIpChecks(QValidatedLineEdit *pUiProxyIp, int nProxyPort); 71 72 private: 73 Ui::OptionsDialog *ui; 74 OptionsModel *model; 75 QDataWidgetMapper *mapper; 76 }; 77 78 #endif // BITCOIN_QT_OPTIONSDIALOG_H 79