@@ -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