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