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