@@ -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+
3742
3843public:
3944 explicit NodeModel (interfaces::Node& node);
@@ -52,13 +57,21 @@ 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);
5566
5667 Q_INVOKABLE float getTotalBytesReceived () const { return (float )m_node.getTotalBytesRecv (); }
5768 Q_INVOKABLE float getTotalBytesSent () const { return (float )m_node.getTotalBytesSent (); }
5869
5970 Q_INVOKABLE void startNodeInitializionThread ();
6071 Q_INVOKABLE void requestShutdown ();
6172
73+ Q_INVOKABLE void snapshotLoadThread (QString path_file);
74+
6275 void startShutdownPolling ();
6376 void stopShutdownPolling ();
6477
@@ -80,7 +93,12 @@ public Q_SLOTS:
8093
8194 void setTimeRatioList (int new_time);
8295 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 ();
84102protected:
85103 void timerEvent (QTimerEvent* event) override ;
86104
@@ -93,17 +111,21 @@ public Q_SLOTS:
93111 double m_verification_progress{0.0 };
94112 bool m_pause{false };
95113 bool m_faulted{false };
96-
114+ double m_snapshot_progress{ 0.0 };
97115 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 };
99120 QVector<QPair<int , double >> m_block_process_time;
100121
101122 interfaces::Node& m_node;
102123 std::unique_ptr<interfaces::Handler> m_handler_notify_block_tip;
103124 std::unique_ptr<interfaces::Handler> m_handler_notify_num_peers_changed;
104-
125+ std::unique_ptr<interfaces::Handler> m_handler_snapshot_load_progress;
105126 void ConnectToBlockTipSignal ();
106127 void ConnectToNumConnectionsChangedSignal ();
128+ void ConnectToSnapshotLoadProgressSignal ();
107129};
108130
109131#endif // BITCOIN_QML_MODELS_NODEMODEL_H
0 commit comments