mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-28 13:02:38 +02:00
GUI: Intro: Output a std::unique_ptr<Intro> from Intro::showIfNeeded
This commit is contained in:
parent
96ec3b67a7
commit
cda83e8ae1
@ -575,10 +575,9 @@ int GuiMain(int argc, char* argv[])
|
||||
|
||||
/// 5. Now that settings and translations are available, ask user for data directory
|
||||
// User language is set up: pick a data directory
|
||||
bool did_show_intro = false;
|
||||
int64_t prune_MiB = 0; // Intro dialog prune configuration
|
||||
std::unique_ptr<Intro> intro;
|
||||
// Gracefully exit if the user cancels
|
||||
if (!Intro::showIfNeeded(did_show_intro, prune_MiB)) return EXIT_SUCCESS;
|
||||
if (!Intro::showIfNeeded(intro)) return EXIT_SUCCESS;
|
||||
|
||||
/// 6-7. Parse bitcoin.conf, determine network, switch to network specific
|
||||
/// options, and create datadir and settings.json.
|
||||
@ -651,9 +650,10 @@ int GuiMain(int argc, char* argv[])
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (did_show_intro) {
|
||||
if (intro) {
|
||||
// Store intro dialog settings other than datadir (network specific)
|
||||
app.InitPruneSetting(prune_MiB);
|
||||
app.InitPruneSetting(intro->getPruneMiB());
|
||||
intro.reset();
|
||||
}
|
||||
|
||||
try
|
||||
|
@ -202,9 +202,9 @@ int64_t Intro::getPruneMiB() const
|
||||
}
|
||||
}
|
||||
|
||||
bool Intro::showIfNeeded(bool& did_show_intro, int64_t& prune_MiB)
|
||||
bool Intro::showIfNeeded(std::unique_ptr<Intro>& intro)
|
||||
{
|
||||
did_show_intro = false;
|
||||
intro.reset();
|
||||
|
||||
QSettings settings;
|
||||
/* If data directory provided on command line, no need to look at settings
|
||||
@ -226,19 +226,18 @@ bool Intro::showIfNeeded(bool& did_show_intro, int64_t& prune_MiB)
|
||||
}
|
||||
|
||||
/* If current default data directory does not exist, let the user choose one */
|
||||
Intro intro(nullptr, Params().AssumedBlockchainSize(), Params().AssumedChainStateSize());
|
||||
intro.setDataDirectory(dataDir);
|
||||
intro.setWindowIcon(QIcon(":icons/bitcoin"));
|
||||
did_show_intro = true;
|
||||
intro = std::make_unique<Intro>(nullptr, Params().AssumedBlockchainSize(), Params().AssumedChainStateSize());
|
||||
intro->setDataDirectory(dataDir);
|
||||
intro->setWindowIcon(QIcon(QStringLiteral(":icons/bitcoin")));
|
||||
|
||||
while(true)
|
||||
{
|
||||
if(!intro.exec())
|
||||
if(!intro->exec())
|
||||
{
|
||||
/* Cancel clicked */
|
||||
return false;
|
||||
}
|
||||
dataDir = intro.getDataDirectory();
|
||||
dataDir = intro->getDataDirectory();
|
||||
try {
|
||||
if (TryCreateDirectories(GUIUtil::QStringToPath(dataDir))) {
|
||||
// If a new data directory has been created, make wallets subdirectory too
|
||||
@ -252,9 +251,6 @@ bool Intro::showIfNeeded(bool& did_show_intro, int64_t& prune_MiB)
|
||||
}
|
||||
}
|
||||
|
||||
// Additional preferences:
|
||||
prune_MiB = intro.getPruneMiB();
|
||||
|
||||
settings.setValue("strDataDir", dataDir);
|
||||
settings.setValue("fReset", false);
|
||||
}
|
||||
|
@ -9,6 +9,8 @@
|
||||
#include <QMutex>
|
||||
#include <QThread>
|
||||
|
||||
#include <memory>
|
||||
|
||||
static const bool DEFAULT_CHOOSE_DATADIR = false;
|
||||
|
||||
class FreespaceChecker;
|
||||
@ -48,7 +50,7 @@ public:
|
||||
* @note do NOT call global gArgs.GetDataDirNet() before calling this function, this
|
||||
* will cause the wrong path to be cached.
|
||||
*/
|
||||
static bool showIfNeeded(bool& did_show_intro, int64_t& prune_MiB);
|
||||
static bool showIfNeeded(std::unique_ptr<Intro>& intro);
|
||||
|
||||
Q_SIGNALS:
|
||||
void requestCheck();
|
||||
|
Loading…
Reference in New Issue
Block a user