Remove direct bitcoin calls from qt/optionsmodel.cpp
This commit is contained in:
parent
71e0d90876
commit
c0f2756be5
7 changed files with 57 additions and 27 deletions
|
@ -7,6 +7,9 @@
|
||||||
#include <chainparams.h>
|
#include <chainparams.h>
|
||||||
#include <init.h>
|
#include <init.h>
|
||||||
#include <interface/handler.h>
|
#include <interface/handler.h>
|
||||||
|
#include <net.h>
|
||||||
|
#include <netaddress.h>
|
||||||
|
#include <netbase.h>
|
||||||
#include <scheduler.h>
|
#include <scheduler.h>
|
||||||
#include <ui_interface.h>
|
#include <ui_interface.h>
|
||||||
#include <util.h>
|
#include <util.h>
|
||||||
|
@ -24,6 +27,8 @@ class NodeImpl : public Node
|
||||||
gArgs.ParseParameters(argc, argv);
|
gArgs.ParseParameters(argc, argv);
|
||||||
}
|
}
|
||||||
void readConfigFile(const std::string& conf_path) override { gArgs.ReadConfigFile(conf_path); }
|
void readConfigFile(const std::string& conf_path) override { gArgs.ReadConfigFile(conf_path); }
|
||||||
|
bool softSetArg(const std::string& arg, const std::string& value) override { return gArgs.SoftSetArg(arg, value); }
|
||||||
|
bool softSetBoolArg(const std::string& arg, bool value) override { return gArgs.SoftSetBoolArg(arg, value); }
|
||||||
void selectParams(const std::string& network) override { SelectParams(network); }
|
void selectParams(const std::string& network) override { SelectParams(network); }
|
||||||
void initLogging() override { InitLogging(); }
|
void initLogging() override { InitLogging(); }
|
||||||
void initParameterInteraction() override { InitParameterInteraction(); }
|
void initParameterInteraction() override { InitParameterInteraction(); }
|
||||||
|
@ -40,6 +45,16 @@ class NodeImpl : public Node
|
||||||
Shutdown();
|
Shutdown();
|
||||||
}
|
}
|
||||||
void startShutdown() override { StartShutdown(); }
|
void startShutdown() override { StartShutdown(); }
|
||||||
|
void mapPort(bool use_upnp) override
|
||||||
|
{
|
||||||
|
if (use_upnp) {
|
||||||
|
StartMapPort();
|
||||||
|
} else {
|
||||||
|
InterruptMapPort();
|
||||||
|
StopMapPort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool getProxy(Network net, proxyType& proxy_info) override { return GetProxy(net, proxy_info); }
|
||||||
std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) override
|
std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) override
|
||||||
{
|
{
|
||||||
return MakeHandler(::uiInterface.InitMessage.connect(fn));
|
return MakeHandler(::uiInterface.InitMessage.connect(fn));
|
||||||
|
|
|
@ -5,10 +5,14 @@
|
||||||
#ifndef BITCOIN_INTERFACE_NODE_H
|
#ifndef BITCOIN_INTERFACE_NODE_H
|
||||||
#define BITCOIN_INTERFACE_NODE_H
|
#define BITCOIN_INTERFACE_NODE_H
|
||||||
|
|
||||||
|
#include <netaddress.h> // For Network
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
class proxyType;
|
||||||
|
|
||||||
namespace interface {
|
namespace interface {
|
||||||
|
|
||||||
class Handler;
|
class Handler;
|
||||||
|
@ -22,6 +26,12 @@ public:
|
||||||
//! Set command line arguments.
|
//! Set command line arguments.
|
||||||
virtual void parseParameters(int argc, const char* const argv[]) = 0;
|
virtual void parseParameters(int argc, const char* const argv[]) = 0;
|
||||||
|
|
||||||
|
//! Set a command line argument if it doesn't already have a value
|
||||||
|
virtual bool softSetArg(const std::string& arg, const std::string& value) = 0;
|
||||||
|
|
||||||
|
//! Set a command line boolean argument if it doesn't already have a value
|
||||||
|
virtual bool softSetBoolArg(const std::string& arg, bool value) = 0;
|
||||||
|
|
||||||
//! Load settings from configuration file.
|
//! Load settings from configuration file.
|
||||||
virtual void readConfigFile(const std::string& conf_path) = 0;
|
virtual void readConfigFile(const std::string& conf_path) = 0;
|
||||||
|
|
||||||
|
@ -49,6 +59,12 @@ public:
|
||||||
//! Start shutdown.
|
//! Start shutdown.
|
||||||
virtual void startShutdown() = 0;
|
virtual void startShutdown() = 0;
|
||||||
|
|
||||||
|
//! Map port.
|
||||||
|
virtual void mapPort(bool use_upnp) = 0;
|
||||||
|
|
||||||
|
//! Get proxy.
|
||||||
|
virtual bool getProxy(Network net, proxyType& proxy_info) = 0;
|
||||||
|
|
||||||
//! Register handler for init messages.
|
//! Register handler for init messages.
|
||||||
using InitMessageFn = std::function<void(const std::string& message)>;
|
using InitMessageFn = std::function<void(const std::string& message)>;
|
||||||
virtual std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) = 0;
|
virtual std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) = 0;
|
||||||
|
|
|
@ -362,7 +362,7 @@ void BitcoinApplication::createPaymentServer()
|
||||||
|
|
||||||
void BitcoinApplication::createOptionsModel(bool resetSettings)
|
void BitcoinApplication::createOptionsModel(bool resetSettings)
|
||||||
{
|
{
|
||||||
optionsModel = new OptionsModel(nullptr, resetSettings);
|
optionsModel = new OptionsModel(m_node, nullptr, resetSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BitcoinApplication::createWindow(const NetworkStyle *networkStyle)
|
void BitcoinApplication::createWindow(const NetworkStyle *networkStyle)
|
||||||
|
|
|
@ -11,26 +11,21 @@
|
||||||
#include <qt/bitcoinunits.h>
|
#include <qt/bitcoinunits.h>
|
||||||
#include <qt/guiutil.h>
|
#include <qt/guiutil.h>
|
||||||
|
|
||||||
#include <init.h>
|
#include <interface/node.h>
|
||||||
#include <validation.h> // For DEFAULT_SCRIPTCHECK_THREADS
|
#include <validation.h> // For DEFAULT_SCRIPTCHECK_THREADS
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
#include <netbase.h>
|
#include <netbase.h>
|
||||||
#include <txdb.h> // for -dbcache defaults
|
#include <txdb.h> // for -dbcache defaults
|
||||||
#include <qt/intro.h>
|
#include <qt/intro.h>
|
||||||
|
|
||||||
#ifdef ENABLE_WALLET
|
|
||||||
#include <wallet/wallet.h>
|
|
||||||
#include <wallet/walletdb.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <QNetworkProxy>
|
#include <QNetworkProxy>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
const char *DEFAULT_GUI_PROXY_HOST = "127.0.0.1";
|
const char *DEFAULT_GUI_PROXY_HOST = "127.0.0.1";
|
||||||
|
|
||||||
OptionsModel::OptionsModel(QObject *parent, bool resetSettings) :
|
OptionsModel::OptionsModel(interface::Node& node, QObject *parent, bool resetSettings) :
|
||||||
QAbstractListModel(parent)
|
QAbstractListModel(parent), m_node(node)
|
||||||
{
|
{
|
||||||
Init(resetSettings);
|
Init(resetSettings);
|
||||||
}
|
}
|
||||||
|
@ -93,12 +88,12 @@ void OptionsModel::Init(bool resetSettings)
|
||||||
// Main
|
// Main
|
||||||
if (!settings.contains("nDatabaseCache"))
|
if (!settings.contains("nDatabaseCache"))
|
||||||
settings.setValue("nDatabaseCache", (qint64)nDefaultDbCache);
|
settings.setValue("nDatabaseCache", (qint64)nDefaultDbCache);
|
||||||
if (!gArgs.SoftSetArg("-dbcache", settings.value("nDatabaseCache").toString().toStdString()))
|
if (!m_node.softSetArg("-dbcache", settings.value("nDatabaseCache").toString().toStdString()))
|
||||||
addOverriddenOption("-dbcache");
|
addOverriddenOption("-dbcache");
|
||||||
|
|
||||||
if (!settings.contains("nThreadsScriptVerif"))
|
if (!settings.contains("nThreadsScriptVerif"))
|
||||||
settings.setValue("nThreadsScriptVerif", DEFAULT_SCRIPTCHECK_THREADS);
|
settings.setValue("nThreadsScriptVerif", DEFAULT_SCRIPTCHECK_THREADS);
|
||||||
if (!gArgs.SoftSetArg("-par", settings.value("nThreadsScriptVerif").toString().toStdString()))
|
if (!m_node.softSetArg("-par", settings.value("nThreadsScriptVerif").toString().toStdString()))
|
||||||
addOverriddenOption("-par");
|
addOverriddenOption("-par");
|
||||||
|
|
||||||
if (!settings.contains("strDataDir"))
|
if (!settings.contains("strDataDir"))
|
||||||
|
@ -108,19 +103,19 @@ void OptionsModel::Init(bool resetSettings)
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
if (!settings.contains("bSpendZeroConfChange"))
|
if (!settings.contains("bSpendZeroConfChange"))
|
||||||
settings.setValue("bSpendZeroConfChange", true);
|
settings.setValue("bSpendZeroConfChange", true);
|
||||||
if (!gArgs.SoftSetBoolArg("-spendzeroconfchange", settings.value("bSpendZeroConfChange").toBool()))
|
if (!m_node.softSetBoolArg("-spendzeroconfchange", settings.value("bSpendZeroConfChange").toBool()))
|
||||||
addOverriddenOption("-spendzeroconfchange");
|
addOverriddenOption("-spendzeroconfchange");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Network
|
// Network
|
||||||
if (!settings.contains("fUseUPnP"))
|
if (!settings.contains("fUseUPnP"))
|
||||||
settings.setValue("fUseUPnP", DEFAULT_UPNP);
|
settings.setValue("fUseUPnP", DEFAULT_UPNP);
|
||||||
if (!gArgs.SoftSetBoolArg("-upnp", settings.value("fUseUPnP").toBool()))
|
if (!m_node.softSetBoolArg("-upnp", settings.value("fUseUPnP").toBool()))
|
||||||
addOverriddenOption("-upnp");
|
addOverriddenOption("-upnp");
|
||||||
|
|
||||||
if (!settings.contains("fListen"))
|
if (!settings.contains("fListen"))
|
||||||
settings.setValue("fListen", DEFAULT_LISTEN);
|
settings.setValue("fListen", DEFAULT_LISTEN);
|
||||||
if (!gArgs.SoftSetBoolArg("-listen", settings.value("fListen").toBool()))
|
if (!m_node.softSetBoolArg("-listen", settings.value("fListen").toBool()))
|
||||||
addOverriddenOption("-listen");
|
addOverriddenOption("-listen");
|
||||||
|
|
||||||
if (!settings.contains("fUseProxy"))
|
if (!settings.contains("fUseProxy"))
|
||||||
|
@ -128,7 +123,7 @@ void OptionsModel::Init(bool resetSettings)
|
||||||
if (!settings.contains("addrProxy"))
|
if (!settings.contains("addrProxy"))
|
||||||
settings.setValue("addrProxy", QString("%1:%2").arg(DEFAULT_GUI_PROXY_HOST, DEFAULT_GUI_PROXY_PORT));
|
settings.setValue("addrProxy", QString("%1:%2").arg(DEFAULT_GUI_PROXY_HOST, DEFAULT_GUI_PROXY_PORT));
|
||||||
// Only try to set -proxy, if user has enabled fUseProxy
|
// Only try to set -proxy, if user has enabled fUseProxy
|
||||||
if (settings.value("fUseProxy").toBool() && !gArgs.SoftSetArg("-proxy", settings.value("addrProxy").toString().toStdString()))
|
if (settings.value("fUseProxy").toBool() && !m_node.softSetArg("-proxy", settings.value("addrProxy").toString().toStdString()))
|
||||||
addOverriddenOption("-proxy");
|
addOverriddenOption("-proxy");
|
||||||
else if(!settings.value("fUseProxy").toBool() && !gArgs.GetArg("-proxy", "").empty())
|
else if(!settings.value("fUseProxy").toBool() && !gArgs.GetArg("-proxy", "").empty())
|
||||||
addOverriddenOption("-proxy");
|
addOverriddenOption("-proxy");
|
||||||
|
@ -138,7 +133,7 @@ void OptionsModel::Init(bool resetSettings)
|
||||||
if (!settings.contains("addrSeparateProxyTor"))
|
if (!settings.contains("addrSeparateProxyTor"))
|
||||||
settings.setValue("addrSeparateProxyTor", QString("%1:%2").arg(DEFAULT_GUI_PROXY_HOST, DEFAULT_GUI_PROXY_PORT));
|
settings.setValue("addrSeparateProxyTor", QString("%1:%2").arg(DEFAULT_GUI_PROXY_HOST, DEFAULT_GUI_PROXY_PORT));
|
||||||
// Only try to set -onion, if user has enabled fUseSeparateProxyTor
|
// Only try to set -onion, if user has enabled fUseSeparateProxyTor
|
||||||
if (settings.value("fUseSeparateProxyTor").toBool() && !gArgs.SoftSetArg("-onion", settings.value("addrSeparateProxyTor").toString().toStdString()))
|
if (settings.value("fUseSeparateProxyTor").toBool() && !m_node.softSetArg("-onion", settings.value("addrSeparateProxyTor").toString().toStdString()))
|
||||||
addOverriddenOption("-onion");
|
addOverriddenOption("-onion");
|
||||||
else if(!settings.value("fUseSeparateProxyTor").toBool() && !gArgs.GetArg("-onion", "").empty())
|
else if(!settings.value("fUseSeparateProxyTor").toBool() && !gArgs.GetArg("-onion", "").empty())
|
||||||
addOverriddenOption("-onion");
|
addOverriddenOption("-onion");
|
||||||
|
@ -146,7 +141,7 @@ void OptionsModel::Init(bool resetSettings)
|
||||||
// Display
|
// Display
|
||||||
if (!settings.contains("language"))
|
if (!settings.contains("language"))
|
||||||
settings.setValue("language", "");
|
settings.setValue("language", "");
|
||||||
if (!gArgs.SoftSetArg("-lang", settings.value("language").toString().toStdString()))
|
if (!m_node.softSetArg("-lang", settings.value("language").toString().toStdString()))
|
||||||
addOverriddenOption("-lang");
|
addOverriddenOption("-lang");
|
||||||
|
|
||||||
language = settings.value("language").toString();
|
language = settings.value("language").toString();
|
||||||
|
@ -315,12 +310,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
|
||||||
break;
|
break;
|
||||||
case MapPortUPnP: // core option - can be changed on-the-fly
|
case MapPortUPnP: // core option - can be changed on-the-fly
|
||||||
settings.setValue("fUseUPnP", value.toBool());
|
settings.setValue("fUseUPnP", value.toBool());
|
||||||
if (value.toBool()) {
|
m_node.mapPort(value.toBool());
|
||||||
StartMapPort();
|
|
||||||
} else {
|
|
||||||
InterruptMapPort();
|
|
||||||
StopMapPort();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case MinimizeOnClose:
|
case MinimizeOnClose:
|
||||||
fMinimizeOnClose = value.toBool();
|
fMinimizeOnClose = value.toBool();
|
||||||
|
@ -453,7 +443,7 @@ bool OptionsModel::getProxySettings(QNetworkProxy& proxy) const
|
||||||
// Directly query current base proxy, because
|
// Directly query current base proxy, because
|
||||||
// GUI settings can be overridden with -proxy.
|
// GUI settings can be overridden with -proxy.
|
||||||
proxyType curProxy;
|
proxyType curProxy;
|
||||||
if (GetProxy(NET_IPV4, curProxy)) {
|
if (m_node.getProxy(NET_IPV4, curProxy)) {
|
||||||
proxy.setType(QNetworkProxy::Socks5Proxy);
|
proxy.setType(QNetworkProxy::Socks5Proxy);
|
||||||
proxy.setHostName(QString::fromStdString(curProxy.proxy.ToStringIP()));
|
proxy.setHostName(QString::fromStdString(curProxy.proxy.ToStringIP()));
|
||||||
proxy.setPort(curProxy.proxy.GetPort());
|
proxy.setPort(curProxy.proxy.GetPort());
|
||||||
|
|
|
@ -9,6 +9,10 @@
|
||||||
|
|
||||||
#include <QAbstractListModel>
|
#include <QAbstractListModel>
|
||||||
|
|
||||||
|
namespace interface {
|
||||||
|
class Node;
|
||||||
|
}
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QNetworkProxy;
|
class QNetworkProxy;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -27,7 +31,7 @@ class OptionsModel : public QAbstractListModel
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit OptionsModel(QObject *parent = 0, bool resetSettings = false);
|
explicit OptionsModel(interface::Node& node, QObject *parent = 0, bool resetSettings = false);
|
||||||
|
|
||||||
enum OptionID {
|
enum OptionID {
|
||||||
StartAtStartup, // bool
|
StartAtStartup, // bool
|
||||||
|
@ -76,6 +80,7 @@ public:
|
||||||
bool isRestartRequired() const;
|
bool isRestartRequired() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
interface::Node& m_node;
|
||||||
/* Qt-only settings */
|
/* Qt-only settings */
|
||||||
bool fHideTrayIcon;
|
bool fHideTrayIcon;
|
||||||
bool fMinimizeToTray;
|
bool fMinimizeToTray;
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
#include <amount.h>
|
#include <amount.h>
|
||||||
#include <chainparams.h>
|
#include <chainparams.h>
|
||||||
|
#include <interface/node.h>
|
||||||
#include <random.h>
|
#include <random.h>
|
||||||
#include <script/script.h>
|
#include <script/script.h>
|
||||||
#include <script/standard.h>
|
#include <script/standard.h>
|
||||||
|
@ -66,7 +67,8 @@ static SendCoinsRecipient handleRequest(PaymentServer* server, std::vector<unsig
|
||||||
void PaymentServerTests::paymentServerTests()
|
void PaymentServerTests::paymentServerTests()
|
||||||
{
|
{
|
||||||
SelectParams(CBaseChainParams::MAIN);
|
SelectParams(CBaseChainParams::MAIN);
|
||||||
OptionsModel optionsModel;
|
auto node = interface::MakeNode();
|
||||||
|
OptionsModel optionsModel(*node);
|
||||||
PaymentServer* server = new PaymentServer(nullptr, false);
|
PaymentServer* server = new PaymentServer(nullptr, false);
|
||||||
X509_STORE* caStore = X509_STORE_new();
|
X509_STORE* caStore = X509_STORE_new();
|
||||||
X509_STORE_add_cert(caStore, parse_b64der_cert(caCert1_BASE64));
|
X509_STORE_add_cert(caStore, parse_b64der_cert(caCert1_BASE64));
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include <qt/test/wallettests.h>
|
#include <qt/test/wallettests.h>
|
||||||
|
|
||||||
|
#include <interface/node.h>
|
||||||
#include <qt/bitcoinamountfield.h>
|
#include <qt/bitcoinamountfield.h>
|
||||||
#include <qt/callback.h>
|
#include <qt/callback.h>
|
||||||
#include <qt/optionsmodel.h>
|
#include <qt/optionsmodel.h>
|
||||||
|
@ -175,7 +176,8 @@ void TestGUI()
|
||||||
std::unique_ptr<const PlatformStyle> platformStyle(PlatformStyle::instantiate("other"));
|
std::unique_ptr<const PlatformStyle> platformStyle(PlatformStyle::instantiate("other"));
|
||||||
SendCoinsDialog sendCoinsDialog(platformStyle.get());
|
SendCoinsDialog sendCoinsDialog(platformStyle.get());
|
||||||
TransactionView transactionView(platformStyle.get());
|
TransactionView transactionView(platformStyle.get());
|
||||||
OptionsModel optionsModel;
|
auto node = interface::MakeNode();
|
||||||
|
OptionsModel optionsModel(*node);
|
||||||
WalletModel walletModel(platformStyle.get(), &wallet, &optionsModel);
|
WalletModel walletModel(platformStyle.get(), &wallet, &optionsModel);
|
||||||
sendCoinsDialog.setModel(&walletModel);
|
sendCoinsDialog.setModel(&walletModel);
|
||||||
transactionView.setModel(&walletModel);
|
transactionView.setModel(&walletModel);
|
||||||
|
|
Loading…
Reference in a new issue