annotate src/qt/clientmodel.h @ 2673:eb323c3694cb draft

add client startup time as an entry to debug.log (note: logged time in debug.log differs by a few seconds from the one displayed in the Debug window) / make ClientModel::formatClientStartupTime() return a QString
author Philip Kaufmann <phil.kaufmann@t-online.de>
date Mon, 21 May 2012 23:05:54 +0200
parents 60b19c042950
children 627fdda97160
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
1 #ifndef CLIENTMODEL_H
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
2 #define CLIENTMODEL_H
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
3
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
4 #include <QObject>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
5
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
6 class OptionsModel;
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
7 class AddressTableModel;
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
8 class TransactionTableModel;
1105
f14310dc690b update core to d0d80170a2ca73004e08fb85007fe055cbf4e411 (CWallet class)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1099
diff changeset
9 class CWallet;
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
10
1158
812889ab4a96 Display a "freshness" indicator instead of nr of blocks
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1120
diff changeset
11 QT_BEGIN_NAMESPACE
812889ab4a96 Display a "freshness" indicator instead of nr of blocks
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1120
diff changeset
12 class QDateTime;
2639
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2501
diff changeset
13 class QTimer;
1158
812889ab4a96 Display a "freshness" indicator instead of nr of blocks
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1120
diff changeset
14 QT_END_NAMESPACE
812889ab4a96 Display a "freshness" indicator instead of nr of blocks
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1120
diff changeset
15
1496
5fd67ccc00ca Improve documentation for UI classes
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1287
diff changeset
16 /** Model for Bitcoin network client. */
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
17 class ClientModel : public QObject
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
18 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
19 Q_OBJECT
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
20 public:
1229
fa39b222e5e0 Full support for other units, add configuration option for default unit (used when displaying amounts)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1192
diff changeset
21 explicit ClientModel(OptionsModel *optionsModel, QObject *parent = 0);
2640
60b19c042950 Convert UI interface to boost::signals2.
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2639
diff changeset
22 ~ClientModel();
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
23
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
24 OptionsModel *getOptionsModel();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
25
1077
a58b12afb2fb Prevent notification balloon-spam on initial block download, const-correctness in client model
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1049
diff changeset
26 int getNumConnections() const;
a58b12afb2fb Prevent notification balloon-spam on initial block download, const-correctness in client model
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1049
diff changeset
27 int getNumBlocks() const;
1286
a43fe0bbf87f The synchronization progress bar now compares the amount of total blocks to amount of blocks downloaded at application start-up. Could be probably implemented better.
Janne Pulkkinen <jannepulk@gmail.com>
parents: 1262
diff changeset
28 int getNumBlocksAtStartup();
1077
a58b12afb2fb Prevent notification balloon-spam on initial block download, const-correctness in client model
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1049
diff changeset
29
1158
812889ab4a96 Display a "freshness" indicator instead of nr of blocks
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1120
diff changeset
30 QDateTime getLastBlockDate() const;
812889ab4a96 Display a "freshness" indicator instead of nr of blocks
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1120
diff changeset
31
1496
5fd67ccc00ca Improve documentation for UI classes
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1287
diff changeset
32 //! Return true if client connected to testnet
1114
f15d5d021d37 Make it very clear when on testnet (green icon, add [testnet] to title)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1113
diff changeset
33 bool isTestNet() const;
1496
5fd67ccc00ca Improve documentation for UI classes
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1287
diff changeset
34 //! Return true if core is doing initial block download
1077
a58b12afb2fb Prevent notification balloon-spam on initial block download, const-correctness in client model
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1049
diff changeset
35 bool inInitialBlockDownload() const;
1496
5fd67ccc00ca Improve documentation for UI classes
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1287
diff changeset
36 //! Return conservative estimate of total number of blocks, or 0 if unknown
1287
712a725f2b3e clarify function signature (GetNumBlocksOfPeers) and use number of 'frozen' blocks as initial value for number of peer blocks
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1286
diff changeset
37 int getNumBlocksOfPeers() const;
1565
7c74698b5f96 Fix status bar not displaying Alerts.
Matt Corallo <matt@bluematt.me>
parents: 1496
diff changeset
38 //! Return warnings to be displayed in status bar
7c74698b5f96 Fix status bar not displaying Alerts.
Matt Corallo <matt@bluematt.me>
parents: 1496
diff changeset
39 QString getStatusBarWarnings() const;
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
40
1120
60b3897eb69f General cleanups
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1114
diff changeset
41 QString formatFullVersion() const;
2198
5fb54c6da76e Build identification strings
Pieter Wuille <pieter.wuille@gmail.com>
parents: 2153
diff changeset
42 QString formatBuildDate() const;
2374
413c38b8c6b7 Add UI RPC console / debug window
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2198
diff changeset
43 QString clientName() const;
2673
eb323c3694cb add client startup time as an entry to debug.log (note: logged time in debug.log differs by a few seconds from the one displayed in the Debug window) / make ClientModel::formatClientStartupTime() return a QString
Philip Kaufmann <phil.kaufmann@t-online.de>
parents: 2640
diff changeset
44 QString formatClientStartupTime() const;
1120
60b3897eb69f General cleanups
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1114
diff changeset
45
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
46 private:
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
47 OptionsModel *optionsModel;
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
48
1192
bc546d3c46d2 make initial block download reporting somewhat better by tracking version responses
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1158
diff changeset
49 int cachedNumBlocks;
2639
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2501
diff changeset
50 int cachedNumBlocksOfPeers;
1192
bc546d3c46d2 make initial block download reporting somewhat better by tracking version responses
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1158
diff changeset
51
1286
a43fe0bbf87f The synchronization progress bar now compares the amount of total blocks to amount of blocks downloaded at application start-up. Could be probably implemented better.
Janne Pulkkinen <jannepulk@gmail.com>
parents: 1262
diff changeset
52 int numBlocksAtStartup;
a43fe0bbf87f The synchronization progress bar now compares the amount of total blocks to amount of blocks downloaded at application start-up. Could be probably implemented better.
Janne Pulkkinen <jannepulk@gmail.com>
parents: 1262
diff changeset
53
2639
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2501
diff changeset
54 QTimer *pollTimer;
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2501
diff changeset
55
2640
60b19c042950 Convert UI interface to boost::signals2.
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2639
diff changeset
56 void subscribeToCoreSignals();
60b19c042950 Convert UI interface to boost::signals2.
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2639
diff changeset
57 void unsubscribeFromCoreSignals();
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
58 signals:
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
59 void numConnectionsChanged(int count);
2639
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2501
diff changeset
60 void numBlocksChanged(int count, int countOfPeers);
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1105
diff changeset
61
1496
5fd67ccc00ca Improve documentation for UI classes
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1287
diff changeset
62 //! Asynchronous error notification
2153
eb336ea43cc7 qtui.h/noui.h interface cleanup
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2148
diff changeset
63 void error(const QString &title, const QString &message, bool modal);
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
64
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
65 public slots:
2639
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2501
diff changeset
66 void updateTimer();
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2501
diff changeset
67 void updateNumConnections(int numConnections);
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2501
diff changeset
68 void updateAlert(const QString &hash, int status);
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
69 };
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
70
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
71 #endif // CLIENTMODEL_H