mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-11 12:22:39 -03:00
Merge bitcoin-core/gui#601: refactor: Pass interfaces::Node references to OptionsModel constructor
31122aa979
refactor: Pass interfaces::Node references to OptionsModel constructor (Ryan Ofsky) Pull request description: Giving OptionsModel access to the node interface is needed as part of #602 to get bitcoind and bitcoin-qt to use the same settings instead of different settings. It has been split off from #602 to simplify that PR. Previously these commits were part of bitcoin/bitcoin#15936 and also had some review discussion there. ACKs for top commit: promag: Code review ACK31122aa979
. furszy: Code ACK31122aa9
jarolrod: ACK31122aa979
Tree-SHA512: b8529322fd7ba97e19864129e6cf5f9acc58c124f2e5a7c50aca15772c8549de3c24e8b0c27e8cf2c06fd26529e9cdb898b0788a1de3cbfdfbdd3f85c9f0fe69
This commit is contained in:
commit
1368634433
7 changed files with 18 additions and 20 deletions
|
@ -261,7 +261,7 @@ void BitcoinApplication::createPaymentServer()
|
|||
|
||||
void BitcoinApplication::createOptionsModel(bool resetSettings)
|
||||
{
|
||||
optionsModel = new OptionsModel(this, resetSettings);
|
||||
optionsModel = new OptionsModel(node(), this, resetSettings);
|
||||
}
|
||||
|
||||
void BitcoinApplication::createWindow(const NetworkStyle *networkStyle)
|
||||
|
@ -292,7 +292,6 @@ void BitcoinApplication::createNode(interfaces::Init& init)
|
|||
{
|
||||
assert(!m_node);
|
||||
m_node = init.makeNode();
|
||||
if (optionsModel) optionsModel->setNode(*m_node);
|
||||
if (m_splash) m_splash->setNode(*m_node);
|
||||
}
|
||||
|
||||
|
@ -635,6 +634,12 @@ int GuiMain(int argc, char* argv[])
|
|||
// Allow parameter interaction before we create the options model
|
||||
app.parameterSetup();
|
||||
GUIUtil::LogQtInfo();
|
||||
|
||||
if (gArgs.GetBoolArg("-splash", DEFAULT_SPLASHSCREEN) && !gArgs.GetBoolArg("-min", false))
|
||||
app.createSplashScreen(networkStyle.data());
|
||||
|
||||
app.createNode(*init);
|
||||
|
||||
// Load GUI settings from QSettings
|
||||
app.createOptionsModel(gArgs.GetBoolArg("-resetguisettings", false));
|
||||
|
||||
|
@ -643,11 +648,6 @@ int GuiMain(int argc, char* argv[])
|
|||
app.InitPruneSetting(prune_MiB);
|
||||
}
|
||||
|
||||
if (gArgs.GetBoolArg("-splash", DEFAULT_SPLASHSCREEN) && !gArgs.GetBoolArg("-min", false))
|
||||
app.createSplashScreen(networkStyle.data());
|
||||
|
||||
app.createNode(*init);
|
||||
|
||||
int rv = EXIT_SUCCESS;
|
||||
try
|
||||
{
|
||||
|
|
|
@ -30,8 +30,8 @@ const char *DEFAULT_GUI_PROXY_HOST = "127.0.0.1";
|
|||
|
||||
static const QString GetDefaultProxyAddress();
|
||||
|
||||
OptionsModel::OptionsModel(QObject *parent, bool resetSettings) :
|
||||
QAbstractListModel(parent)
|
||||
OptionsModel::OptionsModel(interfaces::Node& node, QObject *parent, bool resetSettings) :
|
||||
QAbstractListModel(parent), m_node{node}
|
||||
{
|
||||
Init(resetSettings);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ class OptionsModel : public QAbstractListModel
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit OptionsModel(QObject *parent = nullptr, bool resetSettings = false);
|
||||
explicit OptionsModel(interfaces::Node& node, QObject *parent = nullptr, bool resetSettings = false);
|
||||
|
||||
enum OptionID {
|
||||
StartAtStartup, // bool
|
||||
|
@ -105,11 +105,10 @@ public:
|
|||
void setRestartRequired(bool fRequired);
|
||||
bool isRestartRequired() const;
|
||||
|
||||
interfaces::Node& node() const { assert(m_node); return *m_node; }
|
||||
void setNode(interfaces::Node& node) { assert(!m_node); m_node = &node; }
|
||||
interfaces::Node& node() const { return m_node; }
|
||||
|
||||
private:
|
||||
interfaces::Node* m_node = nullptr;
|
||||
interfaces::Node& m_node;
|
||||
/* Qt-only settings */
|
||||
bool m_show_tray_icon;
|
||||
bool fMinimizeToTray;
|
||||
|
|
|
@ -124,7 +124,7 @@ void TestAddAddressesToSendBook(interfaces::Node& node)
|
|||
|
||||
// Initialize relevant QT models.
|
||||
std::unique_ptr<const PlatformStyle> platformStyle(PlatformStyle::instantiate("other"));
|
||||
OptionsModel optionsModel;
|
||||
OptionsModel optionsModel(node);
|
||||
ClientModel clientModel(node, &optionsModel);
|
||||
WalletContext& context = *node.walletLoader().context();
|
||||
AddWallet(context, wallet);
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
|
||||
#include <univalue.h>
|
||||
|
||||
//! Entry point for BitcoinApplication tests.
|
||||
void OptionTests::optionTests()
|
||||
void OptionTests::integerGetArgBug()
|
||||
{
|
||||
// Test regression https://github.com/bitcoin/bitcoin/issues/24457. Ensure
|
||||
// that setting integer prune value doesn't cause an exception to be thrown
|
||||
|
@ -24,7 +23,7 @@ void OptionTests::optionTests()
|
|||
settings.rw_settings["prune"] = 3814;
|
||||
});
|
||||
gArgs.WriteSettingsFile();
|
||||
OptionsModel{};
|
||||
OptionsModel{m_node};
|
||||
gArgs.LockSettings([&](util::Settings& settings) {
|
||||
settings.rw_settings.erase("prune");
|
||||
});
|
||||
|
@ -49,7 +48,7 @@ void OptionTests::parametersInteraction()
|
|||
QSettings settings;
|
||||
settings.setValue("fListen", false);
|
||||
|
||||
OptionsModel{};
|
||||
OptionsModel{m_node};
|
||||
|
||||
const bool expected{false};
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ public:
|
|||
explicit OptionTests(interfaces::Node& node) : m_node(node) {}
|
||||
|
||||
private Q_SLOTS:
|
||||
void optionTests();
|
||||
void integerGetArgBug();
|
||||
void parametersInteraction();
|
||||
|
||||
private:
|
||||
|
|
|
@ -184,7 +184,7 @@ void TestGUI(interfaces::Node& node)
|
|||
std::unique_ptr<const PlatformStyle> platformStyle(PlatformStyle::instantiate("other"));
|
||||
SendCoinsDialog sendCoinsDialog(platformStyle.get());
|
||||
TransactionView transactionView(platformStyle.get());
|
||||
OptionsModel optionsModel;
|
||||
OptionsModel optionsModel(node);
|
||||
ClientModel clientModel(node, &optionsModel);
|
||||
WalletContext& context = *node.walletLoader().context();
|
||||
AddWallet(context, wallet);
|
||||
|
|
Loading…
Reference in a new issue