@@ -34,6 +34,11 @@ class NodeModel : public QObject
3434 Q_PROPERTY (double verificationProgress READ verificationProgress NOTIFY verificationProgressChanged)
3535 Q_PROPERTY (bool pause READ pause WRITE setPause NOTIFY pauseChanged)
3636 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)
3742
3843public:
3944 explicit NodeModel (interfaces::Node& node);
@@ -52,13 +57,23 @@ class NodeModel : public QObject
5257 void setPause (bool new_pause);
5358 bool errorState () const { return m_faulted; }
5459 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);
5568
5669 Q_INVOKABLE float getTotalBytesReceived () const { return (float )m_node.getTotalBytesRecv (); }
5770 Q_INVOKABLE float getTotalBytesSent () const { return (float )m_node.getTotalBytesSent (); }
5871
5972 Q_INVOKABLE void startNodeInitializionThread ();
6073 Q_INVOKABLE void requestShutdown ();
6174
75+ Q_INVOKABLE void snapshotLoadThread (QString path_file);
76+
6277 void startShutdownPolling ();
6378 void stopShutdownPolling ();
6479
@@ -80,7 +95,13 @@ public Q_SLOTS:
8095
8196 void setTimeRatioList (int new_time);
8297 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 ();
84105protected:
85106 void timerEvent (QTimerEvent* event) override ;
86107
@@ -93,17 +114,23 @@ public Q_SLOTS:
93114 double m_verification_progress{0.0 };
94115 bool m_pause{false };
95116 bool m_faulted{false };
96-
117+ double m_snapshot_progress{ 0.0 };
97118 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 };
98124
99125 QVector<QPair<int , double >> m_block_process_time;
100126
101127 interfaces::Node& m_node;
102128 std::unique_ptr<interfaces::Handler> m_handler_notify_block_tip;
103129 std::unique_ptr<interfaces::Handler> m_handler_notify_num_peers_changed;
104-
130+ std::unique_ptr<interfaces::Handler> m_handler_snapshot_load_progress;
105131 void ConnectToBlockTipSignal ();
106132 void ConnectToNumConnectionsChangedSignal ();
133+ void ConnectToSnapshotLoadProgressSignal ();
107134};
108135
109136#endif // BITCOIN_QML_MODELS_NODEMODEL_H
0 commit comments