#ifndef OPTIONSMODEL_H #define OPTIONSMODEL_H #include /** Interface from Qt to configuration data structure for Bitcoin client. To Qt, the options are presented as a list with the different options laid out vertically. This can be changed to a tree once the settings become sufficiently complex. */ class OptionsModel : public QAbstractListModel { Q_OBJECT public: explicit OptionsModel(QObject *parent = 0); enum OptionID { StartAtStartup, // bool MinimizeToTray, // bool MinimizeOnClose, // bool ProxyUse, // bool ProxyIP, // QString ProxyPort, // int ProxySocksVersion, // int TorUse, // bool TorIP, // QString TorPort, // int TorOnly, // bool TorName, // QString Fee, // qint64 DisplayUnit, // BitcoinUnits::Unit DisplayAddresses, // bool ThirdPartyTxUrls, // QString Language, // QString CoinControlFeatures, // bool ExternalSeeder, // QString OptionIDRowCount }; void Init(); int rowCount(const QModelIndex & parent = QModelIndex()) const; QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole); /* Explicit getters */ qint64 getTransactionFee(); bool getMinimizeToTray(); bool getMinimizeOnClose(); int getDisplayUnit(); bool getDisplayAddresses(); bool getCoinControlFeatures(); QString getThirdPartyTxUrls() { return strThirdPartyTxUrls; } QString getLanguage() { return language; } private: int nDisplayUnit; bool bDisplayAddresses; bool fMinimizeToTray; bool fMinimizeOnClose; bool fCoinControlFeatures; QString language; QString strThirdPartyTxUrls; signals: void displayUnitChanged(int unit); void transactionFeeChanged(qint64); void coinControlFeaturesChanged(bool); }; #endif // OPTIONSMODEL_H