96fb7d5040
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-linux-daemon (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Move GetStakeWeight() off the UI thread by caching in the staking miner thread. Replace blocking LOCK(cs_vNodes) with TRY_LOCK in clientmodel and staking icon updates. Fix out-of-sync label getting stuck when disconnected. Add daemon bootstrap and faster IBD pipeline. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
74 lines
1.8 KiB
C++
74 lines
1.8 KiB
C++
#ifndef CLIENTMODEL_H
|
|
#define CLIENTMODEL_H
|
|
|
|
#include <QObject>
|
|
|
|
class OptionsModel;
|
|
class AddressTableModel;
|
|
class TransactionTableModel;
|
|
class CWallet;
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
class QDateTime;
|
|
class QTimer;
|
|
QT_END_NAMESPACE
|
|
|
|
/** Model for Triangles network client. */
|
|
class ClientModel : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit ClientModel(OptionsModel *optionsModel, QObject *parent = 0);
|
|
~ClientModel();
|
|
|
|
OptionsModel *getOptionsModel();
|
|
|
|
int getNumConnections() const;
|
|
int getNumBlocks() const;
|
|
int getNumBlocksAtStartup();
|
|
|
|
QDateTime getLastBlockDate() const;
|
|
|
|
//! Return true if client connected to testnet
|
|
bool isTestNet() const;
|
|
//! Return true if core is doing initial block download
|
|
bool inInitialBlockDownload() const;
|
|
//! Return conservative estimate of total number of blocks, or 0 if unknown
|
|
int getNumBlocksOfPeers() const;
|
|
//! Return warnings to be displayed in status bar
|
|
QString getStatusBarWarnings() const;
|
|
|
|
QString formatFullVersion() const;
|
|
QString formatBuildDate() const;
|
|
QString clientName() const;
|
|
QString formatClientStartupTime() const;
|
|
double GetDifficulty() const;
|
|
|
|
private:
|
|
OptionsModel *optionsModel;
|
|
|
|
int cachedNumBlocks;
|
|
int cachedNumBlocksOfPeers;
|
|
mutable int cachedNumConnections;
|
|
|
|
int numBlocksAtStartup;
|
|
|
|
QTimer *pollTimer;
|
|
|
|
void subscribeToCoreSignals();
|
|
void unsubscribeFromCoreSignals();
|
|
signals:
|
|
void numConnectionsChanged(int count);
|
|
void numBlocksChanged(int count, int countOfPeers);
|
|
|
|
//! Asynchronous error notification
|
|
void error(const QString &title, const QString &message, bool modal);
|
|
|
|
public slots:
|
|
void updateTimer();
|
|
void updateNumConnections(int numConnections);
|
|
void updateAlert(const QString &hash, int status);
|
|
};
|
|
|
|
#endif // CLIENTMODEL_H
|