Bitcoin
optionsmodel.h
Go to the documentation of this file.
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_OPTIONSMODEL_H
6 #define BITCOIN_QT_OPTIONSMODEL_H
7 
8 #include <amount.h>
9 
10 #include <QAbstractListModel>
11 
12 namespace interfaces {
13 class Node;
14 }
15 
16 QT_BEGIN_NAMESPACE
17 class QNetworkProxy;
18 QT_END_NAMESPACE
19 
20 extern const char *DEFAULT_GUI_PROXY_HOST;
21 static constexpr unsigned short DEFAULT_GUI_PROXY_PORT = 9050;
22 
29 class OptionsModel : public QAbstractListModel
30 {
31  Q_OBJECT
32 
33 public:
34  explicit OptionsModel(interfaces::Node& node, QObject *parent = nullptr, bool resetSettings = false);
35 
36  enum OptionID {
37  StartAtStartup, // bool
38  HideTrayIcon, // bool
39  MinimizeToTray, // bool
40  MapPortUPnP, // bool
41  MinimizeOnClose, // bool
42  ProxyUse, // bool
43  ProxyIP, // QString
44  ProxyPort, // int
45  ProxyUseTor, // bool
46  ProxyIPTor, // QString
47  ProxyPortTor, // int
48  DisplayUnit, // BitcoinUnits::Unit
49  ThirdPartyTxUrls, // QString
50  Language, // QString
53  Prune, // bool
54  PruneSize, // int
55  DatabaseCache, // int
57  Listen, // bool
59  };
60 
61  void Init(bool resetSettings = false);
62  void Reset();
63 
64  int rowCount(const QModelIndex & parent = QModelIndex()) const;
65  QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
66  bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
68  void setDisplayUnit(const QVariant &value);
69 
70  /* Explicit getters */
71  bool getHideTrayIcon() const { return fHideTrayIcon; }
72  bool getMinimizeToTray() const { return fMinimizeToTray; }
73  bool getMinimizeOnClose() const { return fMinimizeOnClose; }
74  int getDisplayUnit() const { return nDisplayUnit; }
75  QString getThirdPartyTxUrls() const { return strThirdPartyTxUrls; }
76  bool getProxySettings(QNetworkProxy& proxy) const;
79 
80  /* Restart flag helper */
81  void setRestartRequired(bool fRequired);
82  bool isRestartRequired() const;
83 
84  interfaces::Node& node() const { return m_node; }
85 
86 private:
88  /* Qt-only settings */
92  QString language;
96  /* settings that were overridden by command-line */
98 
99  // Add option to list of GUI options overridden through command line/config file
100  void addOverriddenOption(const std::string &option);
101 
102  // Check settings version and upgrade default values if required
103  void checkAndMigrate();
104 Q_SIGNALS:
105  void displayUnitChanged(int unit);
106  void coinControlFeaturesChanged(bool);
107  void hideTrayIconChanged(bool);
108 };
109 
110 #endif // BITCOIN_QT_OPTIONSMODEL_H
Definition: optionsmodel.h:53
Definition: optionsmodel.h:47
bool fMinimizeToTray
Definition: optionsmodel.h:90
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Definition: optionsmodel.cpp:244
int nDisplayUnit
Definition: optionsmodel.h:93
Definition: optionsmodel.h:29
Definition: optionsmodel.h:50
Definition: optionsmodel.h:38
Definition: optionsmodel.h:45
Definition: optionsmodel.h:43
QString language
Definition: optionsmodel.h:92
void addOverriddenOption(const std::string &option)
Definition: optionsmodel.cpp:35
void setRestartRequired(bool fRequired)
Definition: optionsmodel.cpp:492
void Reset()
Definition: optionsmodel.cpp:181
Definition: optionsmodel.h:55
bool fMinimizeOnClose
Definition: optionsmodel.h:91
OptionID
Definition: optionsmodel.h:36
bool fCoinControlFeatures
Definition: optionsmodel.h:95
bool getMinimizeOnClose() const
Definition: optionsmodel.h:73
QString strThirdPartyTxUrls
Definition: optionsmodel.h:94
void displayUnitChanged(int unit)
Definition: moc_optionsmodel.cpp:152
Definition: optionsmodel.h:49
Definition: optionsmodel.h:42
int rowCount(const QModelIndex &parent=QModelIndex()) const
Definition: optionsmodel.cpp:206
void coinControlFeaturesChanged(bool)
Definition: moc_optionsmodel.cpp:159
bool isRestartRequired() const
Definition: optionsmodel.cpp:498
OptionsModel(interfaces::Node &node, QObject *parent=nullptr, bool resetSettings=false)
Definition: optionsmodel.cpp:29
Definition: optionsmodel.h:58
void setDisplayUnit(const QVariant &value)
Definition: optionsmodel.cpp:463
int getDisplayUnit() const
Definition: optionsmodel.h:74
Definition: dummywallet.cpp:11
bool getProxySettings(QNetworkProxy &proxy) const
Definition: optionsmodel.cpp:474
Definition: optionsmodel.h:40
QString strOverriddenByCommandLine
Definition: optionsmodel.h:97
Definition: optionsmodel.h:39
Top-level interface for a bitcoin node (bitcoind process).
Definition: node.h:36
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Definition: optionsmodel.cpp:312
Definition: optionsmodel.h:44
QString getThirdPartyTxUrls() const
Definition: optionsmodel.h:75
bool fHideTrayIcon
Definition: optionsmodel.h:89
Definition: optionsmodel.h:57
const QString & getOverriddenByCommandLine()
Definition: optionsmodel.h:78
Definition: optionsmodel.h:37
void checkAndMigrate()
Definition: optionsmodel.cpp:504
interfaces::Node & node() const
Definition: optionsmodel.h:84
QT_END_NAMESPACE const char * DEFAULT_GUI_PROXY_HOST
Definition: optionsmodel.cpp:25
Definition: optionsmodel.h:46
bool getCoinControlFeatures() const
Definition: optionsmodel.h:77
Definition: optionsmodel.h:41
Definition: optionsmodel.h:48
interfaces::Node & m_node
Definition: optionsmodel.h:87
void Init(bool resetSettings=false)
Definition: optionsmodel.cpp:41
void hideTrayIconChanged(bool)
Definition: moc_optionsmodel.cpp:166
Definition: optionsmodel.h:52
bool getMinimizeToTray() const
Definition: optionsmodel.h:72
static constexpr unsigned short DEFAULT_GUI_PROXY_PORT
Definition: optionsmodel.h:21
bool getHideTrayIcon() const
Definition: optionsmodel.h:71
Definition: optionsmodel.h:56
Definition: optionsmodel.h:54
Definition: optionsmodel.h:51