@@ -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
+ Q_PROPERTY (bool isIBDCompleted READ isIBDCompleted WRITE setIsIBDCompleted NOTIFY isIBDCompletedChanged)
37
42
38
43
public:
39
44
explicit NodeModel (interfaces::Node& node);
@@ -52,13 +57,23 @@ 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);
66
+ bool isIBDCompleted () const { return m_is_ibd_completed; }
67
+ void setIsIBDCompleted (bool new_completed);
55
68
56
69
Q_INVOKABLE float getTotalBytesReceived () const { return (float )m_node.getTotalBytesRecv (); }
57
70
Q_INVOKABLE float getTotalBytesSent () const { return (float )m_node.getTotalBytesSent (); }
58
71
59
72
Q_INVOKABLE void startNodeInitializionThread ();
60
73
Q_INVOKABLE void requestShutdown ();
61
74
75
+ Q_INVOKABLE void snapshotLoadThread (QString path_file);
76
+
62
77
void startShutdownPolling ();
63
78
void stopShutdownPolling ();
64
79
@@ -80,7 +95,13 @@ public Q_SLOTS:
80
95
81
96
void setTimeRatioList (int new_time);
82
97
void setTimeRatioListInitial ();
83
-
98
+ void initializationFinished ();
99
+ void snapshotLoaded (bool result);
100
+ void snapshotProgressChanged ();
101
+ void snapshotLoadingChanged ();
102
+ void showProgress (const QString& title, int progress);
103
+ void headersSyncedChanged ();
104
+ void isIBDCompletedChanged ();
84
105
protected:
85
106
void timerEvent (QTimerEvent* event) override ;
86
107
@@ -93,17 +114,23 @@ public Q_SLOTS:
93
114
double m_verification_progress{0.0 };
94
115
bool m_pause{false };
95
116
bool m_faulted{false };
96
-
117
+ double m_snapshot_progress{ 0.0 };
97
118
int m_shutdown_polling_timer_id{0 };
119
+ int m_snapshot_timer_id{0 };
120
+ bool m_snapshot_loading{false };
121
+ bool m_snapshot_loaded{false };
122
+ bool m_headers_synced{false };
123
+ bool m_is_ibd_completed{false };
98
124
99
125
QVector<QPair<int , double >> m_block_process_time;
100
126
101
127
interfaces::Node& m_node;
102
128
std::unique_ptr<interfaces::Handler> m_handler_notify_block_tip;
103
129
std::unique_ptr<interfaces::Handler> m_handler_notify_num_peers_changed;
104
-
130
+ std::unique_ptr<interfaces::Handler> m_handler_snapshot_load_progress;
105
131
void ConnectToBlockTipSignal ();
106
132
void ConnectToNumConnectionsChangedSignal ();
133
+ void ConnectToSnapshotLoadProgressSignal ();
107
134
};
108
135
109
136
#endif // BITCOIN_QML_MODELS_NODEMODEL_H
0 commit comments