mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-27 19:47:30 -03:00
a20c0d0f67
All client version information is moved to version.cpp, which optionally (-DHAVE_BUILD_INFO) includes build.h. build.h is automatically generated on supporting platforms via contrib/genbuild.sh, using git describe. The git export-subst attribute is used to put the commit id statically in version.cpp inside generated archives, and this value is used if no build.h is present. The gitian descriptors are modified to use git archive instead of a copy, to create the src/ directory in the output. This way, src/src/version.cpp will contain the static commit id. To prevent gitian builds from getting the "-dirty" marker in their git-describe generated identifiers, no touching of files or running sed on the makefile is performed anymore. This does not seem to influence determinism.
95 lines
2.3 KiB
C++
95 lines
2.3 KiB
C++
#include "clientmodel.h"
|
|
#include "guiconstants.h"
|
|
#include "optionsmodel.h"
|
|
#include "addresstablemodel.h"
|
|
#include "transactiontablemodel.h"
|
|
|
|
#include "headers.h"
|
|
|
|
#include <QDateTime>
|
|
|
|
ClientModel::ClientModel(OptionsModel *optionsModel, QObject *parent) :
|
|
QObject(parent), optionsModel(optionsModel),
|
|
cachedNumConnections(0), cachedNumBlocks(0)
|
|
{
|
|
numBlocksAtStartup = -1;
|
|
}
|
|
|
|
int ClientModel::getNumConnections() const
|
|
{
|
|
return vNodes.size();
|
|
}
|
|
|
|
int ClientModel::getNumBlocks() const
|
|
{
|
|
return nBestHeight;
|
|
}
|
|
|
|
int ClientModel::getNumBlocksAtStartup()
|
|
{
|
|
if (numBlocksAtStartup == -1) numBlocksAtStartup = getNumBlocks();
|
|
return numBlocksAtStartup;
|
|
}
|
|
|
|
QDateTime ClientModel::getLastBlockDate() const
|
|
{
|
|
return QDateTime::fromTime_t(pindexBest->GetBlockTime());
|
|
}
|
|
|
|
void ClientModel::update()
|
|
{
|
|
int newNumConnections = getNumConnections();
|
|
int newNumBlocks = getNumBlocks();
|
|
QString newStatusBar = getStatusBarWarnings();
|
|
|
|
if(cachedNumConnections != newNumConnections)
|
|
emit numConnectionsChanged(newNumConnections);
|
|
if(cachedNumBlocks != newNumBlocks || cachedStatusBar != newStatusBar)
|
|
{
|
|
// Simply emit a numBlocksChanged for now in case the status message changes,
|
|
// so that the view updates the status bar.
|
|
// TODO: It should send a notification.
|
|
// (However, this might generate looped notifications and needs to be thought through and tested carefully)
|
|
// error(tr("Network Alert"), newStatusBar);
|
|
emit numBlocksChanged(newNumBlocks);
|
|
}
|
|
|
|
cachedNumConnections = newNumConnections;
|
|
cachedNumBlocks = newNumBlocks;
|
|
cachedStatusBar = newStatusBar;
|
|
}
|
|
|
|
bool ClientModel::isTestNet() const
|
|
{
|
|
return fTestNet;
|
|
}
|
|
|
|
bool ClientModel::inInitialBlockDownload() const
|
|
{
|
|
return IsInitialBlockDownload();
|
|
}
|
|
|
|
int ClientModel::getNumBlocksOfPeers() const
|
|
{
|
|
return GetNumBlocksOfPeers();
|
|
}
|
|
|
|
QString ClientModel::getStatusBarWarnings() const
|
|
{
|
|
return QString::fromStdString(GetWarnings("statusbar"));
|
|
}
|
|
|
|
OptionsModel *ClientModel::getOptionsModel()
|
|
{
|
|
return optionsModel;
|
|
}
|
|
|
|
QString ClientModel::formatFullVersion() const
|
|
{
|
|
return QString::fromStdString(FormatFullVersion());
|
|
}
|
|
|
|
QString ClientModel::formatBuildDate() const
|
|
{
|
|
return QString::fromStdString(CLIENT_DATE);
|
|
}
|