Bitcoin Core 28.99.0
P2P Digital Currency
intro.h
Go to the documentation of this file.
1// Copyright (c) 2011-2021 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_INTRO_H
6#define BITCOIN_QT_INTRO_H
7
8#include <QDialog>
9#include <QMutex>
10#include <QThread>
11
12static const bool DEFAULT_CHOOSE_DATADIR = false;
13
15
16namespace interfaces {
17 class Node;
18}
19
20namespace Ui {
21 class Intro;
22}
23
28class Intro : public QDialog
29{
30 Q_OBJECT
31
32public:
33 explicit Intro(QWidget *parent = nullptr,
34 int64_t blockchain_size_gb = 0, int64_t chain_state_size_gb = 0);
35 ~Intro();
36
37 QString getDataDirectory();
38 void setDataDirectory(const QString &dataDir);
39 int64_t getPruneMiB() const;
40
51 static bool showIfNeeded(bool& did_show_intro, int64_t& prune_MiB);
52
53Q_SIGNALS:
55
56public Q_SLOTS:
57 void setStatus(int status, const QString &message, quint64 bytesAvailable);
58
59private Q_SLOTS:
60 void on_dataDirectory_textChanged(const QString &arg1);
64
65private:
66 Ui::Intro *ui;
68 QThread* thread{nullptr};
69 QMutex mutex;
70 bool signalled{false};
71 QString pathToCheck;
72 const int64_t m_blockchain_size_gb;
73 const int64_t m_chain_state_size_gb;
76 uint64_t m_bytes_available{0};
78
79 void startThread();
80 void checkPath(const QString &dataDir);
81 QString getPathToCheck();
82 void UpdatePruneLabels(bool prune_checked);
84
85 friend class FreespaceChecker;
86};
87
88#endif // BITCOIN_QT_INTRO_H
Introduction screen (pre-GUI startup).
Definition: intro.h:29
~Intro()
Definition: intro.cpp:167
void setStatus(int status, const QString &message, quint64 bytesAvailable)
Definition: intro.cpp:271
void on_ellipsisButton_clicked()
Definition: intro.cpp:321
QMutex mutex
Definition: intro.h:69
void UpdatePruneLabels(bool prune_checked)
Definition: intro.cpp:375
const int64_t m_blockchain_size_gb
Definition: intro.h:72
void setDataDirectory(const QString &dataDir)
Definition: intro.cpp:180
int64_t m_prune_target_gb
Definition: intro.h:77
bool m_prune_checkbox_is_default
Definition: intro.h:67
uint64_t m_bytes_available
Definition: intro.h:76
QString pathToCheck
Definition: intro.h:71
void on_dataDirectory_textChanged(const QString &arg1)
Definition: intro.cpp:314
int64_t m_required_space_gb
Total required space (in GB) depending on user choice (prune or not prune).
Definition: intro.h:75
void UpdateFreeSpaceLabel()
Definition: intro.cpp:299
bool signalled
Definition: intro.h:70
int64_t getPruneMiB() const
Definition: intro.cpp:195
static bool showIfNeeded(bool &did_show_intro, int64_t &prune_MiB)
Determine data directory.
Definition: intro.cpp:205
QString getPathToCheck()
Definition: intro.cpp:365
Ui::Intro * ui
Definition: intro.h:66
void requestCheck()
Intro(QWidget *parent=nullptr, int64_t blockchain_size_gb=0, int64_t chain_state_size_gb=0)
Definition: intro.cpp:122
const int64_t m_chain_state_size_gb
Definition: intro.h:73
QString getDataDirectory()
Definition: intro.cpp:175
void checkPath(const QString &dataDir)
Definition: intro.cpp:353
void startThread()
Definition: intro.cpp:339
void on_dataDirDefault_clicked()
Definition: intro.cpp:328
QThread * thread
Definition: intro.h:68
void on_dataDirCustom_clicked()
Definition: intro.cpp:333
static const bool DEFAULT_CHOOSE_DATADIR
Definition: intro.h:12