@@ -34,6 +34,11 @@ class NodeModel : public QObject
34
34
Q_PROPERTY (double verificationProgress READ verificationProgress NOTIFY verificationProgressChanged)
35
35
Q_PROPERTY (bool pause READ pause WRITE setPause NOTIFY pauseChanged)
36
36
Q_PROPERTY (bool faulted READ errorState WRITE setErrorState NOTIFY errorStateChanged)
37
+ Q_PROPERTY (double snapshotProgress READ snapshotProgress WRITE setSnapshotProgress NOTIFY snapshotProgressChanged)
38
+ Q_PROPERTY (bool snapshotLoading READ snapshotLoading NOTIFY snapshotLoadingChanged)
39
+ Q_PROPERTY (bool isSnapshotLoaded READ isSnapshotLoaded NOTIFY snapshotLoaded)
40
+ Q_PROPERTY (bool headersSynced READ headersSynced WRITE setHeadersSynced NOTIFY headersSyncedChanged)
41
+
37
42
38
43
public:
39
44
explicit NodeModel (interfaces::Node& node);
@@ -52,13 +57,21 @@ class NodeModel : public QObject
52
57
void setPause (bool new_pause);
53
58
bool errorState () const { return m_faulted; }
54
59
void setErrorState (bool new_error);
60
+ bool isSnapshotLoaded () const { return m_snapshot_loaded; }
61
+ double snapshotProgress () const { return m_snapshot_progress; }
62
+ void setSnapshotProgress (double new_progress);
63
+ bool snapshotLoading () const { return m_snapshot_loading; }
64
+ bool headersSynced () const { return m_headers_synced; }
65
+ void setHeadersSynced (bool new_synced);
55
66
56
67
Q_INVOKABLE float getTotalBytesReceived () const { return (float )m_node.getTotalBytesRecv (); }
57
68
Q_INVOKABLE float getTotalBytesSent () const { return (float )m_node.getTotalBytesSent (); }
58
69
59
70
Q_INVOKABLE void startNodeInitializionThread ();
60
71
Q_INVOKABLE void requestShutdown ();
61
72
73
+ Q_INVOKABLE void snapshotLoadThread (QString path_file);
74
+
62
75
void startShutdownPolling ();
63
76
void stopShutdownPolling ();
64
77
@@ -80,7 +93,12 @@ public Q_SLOTS:
80
93
81
94
void setTimeRatioList (int new_time);
82
95
void setTimeRatioListInitial ();
83
-
96
+ void initializationFinished ();
97
+ void snapshotLoaded (bool result);
98
+ void snapshotProgressChanged ();
99
+ void snapshotLoadingChanged ();
100
+ void showProgress (const QString& title, int progress);
101
+ void headersSyncedChanged ();
84
102
protected:
85
103
void timerEvent (QTimerEvent* event) override ;
86
104
@@ -93,17 +111,21 @@ public Q_SLOTS:
93
111
double m_verification_progress{0.0 };
94
112
bool m_pause{false };
95
113
bool m_faulted{false };
96
-
114
+ double m_snapshot_progress{ 0.0 };
97
115
int m_shutdown_polling_timer_id{0 };
98
-
116
+ int m_snapshot_timer_id{0 };
117
+ bool m_snapshot_loading{false };
118
+ bool m_snapshot_loaded{false };
119
+ bool m_headers_synced{false };
99
120
QVector<QPair<int , double >> m_block_process_time;
100
121
101
122
interfaces::Node& m_node;
102
123
std::unique_ptr<interfaces::Handler> m_handler_notify_block_tip;
103
124
std::unique_ptr<interfaces::Handler> m_handler_notify_num_peers_changed;
104
-
125
+ std::unique_ptr<interfaces::Handler> m_handler_snapshot_load_progress;
105
126
void ConnectToBlockTipSignal ();
106
127
void ConnectToNumConnectionsChangedSignal ();
128
+ void ConnectToSnapshotLoadProgressSignal ();
107
129
};
108
130
109
131
#endif // BITCOIN_QML_MODELS_NODEMODEL_H
0 commit comments