Line data Source code
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 0 : 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 override; 32 : }; 33 : 34 : /** Preferences dialog. */ 35 : class OptionsDialog : public QDialog 36 : { 37 0 : 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