mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-11 20:32:35 -03:00
Merge pull request #1956 from laanwj/2012_10_prerelease_warning
Show warning when using prerelease version
This commit is contained in:
commit
7a1786084d
9 changed files with 339 additions and 295 deletions
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
* update (commit) version in sources
|
* update (commit) version in sources
|
||||||
bitcoin-qt.pro
|
bitcoin-qt.pro
|
||||||
src/clientversion.h
|
src/clientversion.h (change CLIENT_VERSION_IS_RELEASE to true)
|
||||||
share/setup.nsi
|
share/setup.nsi
|
||||||
doc/README*
|
doc/README*
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,9 @@
|
||||||
#define CLIENT_VERSION_REVISION 99
|
#define CLIENT_VERSION_REVISION 99
|
||||||
#define CLIENT_VERSION_BUILD 0
|
#define CLIENT_VERSION_BUILD 0
|
||||||
|
|
||||||
|
// Set to true for release, false for prerelease or test build
|
||||||
|
#define CLIENT_VERSION_IS_RELEASE false
|
||||||
|
|
||||||
// Converts the parameter X to a string after macro replacement on X has been performed.
|
// Converts the parameter X to a string after macro replacement on X has been performed.
|
||||||
// Don't merge these into one macro!
|
// Don't merge these into one macro!
|
||||||
#define STRINGIZE(X) DO_STRINGIZE(X)
|
#define STRINGIZE(X) DO_STRINGIZE(X)
|
||||||
|
|
|
@ -2617,9 +2617,13 @@ string GetWarnings(string strFor)
|
||||||
int nPriority = 0;
|
int nPriority = 0;
|
||||||
string strStatusBar;
|
string strStatusBar;
|
||||||
string strRPC;
|
string strRPC;
|
||||||
|
|
||||||
if (GetBoolArg("-testsafemode"))
|
if (GetBoolArg("-testsafemode"))
|
||||||
strRPC = "test";
|
strRPC = "test";
|
||||||
|
|
||||||
|
if (!CLIENT_VERSION_IS_RELEASE)
|
||||||
|
strStatusBar = _("This is a pre-release test build - use at your own risk - do not use for mining or merchant applications");
|
||||||
|
|
||||||
// Misc warnings like out of disk space and clock is wrong
|
// Misc warnings like out of disk space and clock is wrong
|
||||||
if (strMiscWarning != "")
|
if (strMiscWarning != "")
|
||||||
{
|
{
|
||||||
|
|
|
@ -356,6 +356,7 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
|
||||||
// Report errors from network/worker thread
|
// Report errors from network/worker thread
|
||||||
connect(clientModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool)));
|
connect(clientModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool)));
|
||||||
|
|
||||||
|
overviewPage->setClientModel(clientModel);
|
||||||
rpcConsole->setClientModel(clientModel);
|
rpcConsole->setClientModel(clientModel);
|
||||||
addressBookPage->setOptionsModel(clientModel->getOptionsModel());
|
addressBookPage->setOptionsModel(clientModel->getOptionsModel());
|
||||||
receiveCoinsPage->setOptionsModel(clientModel->getOptionsModel());
|
receiveCoinsPage->setOptionsModel(clientModel->getOptionsModel());
|
||||||
|
@ -372,8 +373,7 @@ void BitcoinGUI::setWalletModel(WalletModel *walletModel)
|
||||||
|
|
||||||
// Put transaction list in tabs
|
// Put transaction list in tabs
|
||||||
transactionView->setModel(walletModel);
|
transactionView->setModel(walletModel);
|
||||||
|
overviewPage->setWalletModel(walletModel);
|
||||||
overviewPage->setModel(walletModel);
|
|
||||||
addressBookPage->setModel(walletModel->getAddressTableModel());
|
addressBookPage->setModel(walletModel->getAddressTableModel());
|
||||||
receiveCoinsPage->setModel(walletModel->getAddressTableModel());
|
receiveCoinsPage->setModel(walletModel->getAddressTableModel());
|
||||||
sendCoinsPage->setModel(walletModel);
|
sendCoinsPage->setModel(walletModel);
|
||||||
|
@ -481,7 +481,6 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString strStatusBarWarnings = clientModel->getStatusBarWarnings();
|
|
||||||
QString tooltip;
|
QString tooltip;
|
||||||
|
|
||||||
if(count < nTotalBlocks)
|
if(count < nTotalBlocks)
|
||||||
|
@ -489,35 +488,23 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
|
||||||
int nRemainingBlocks = nTotalBlocks - count;
|
int nRemainingBlocks = nTotalBlocks - count;
|
||||||
float nPercentageDone = count / (nTotalBlocks * 0.01f);
|
float nPercentageDone = count / (nTotalBlocks * 0.01f);
|
||||||
|
|
||||||
if (strStatusBarWarnings.isEmpty())
|
|
||||||
{
|
|
||||||
progressBarLabel->setText(tr(clientModel->isImporting() ? "Importing blocks..." : "Synchronizing with network..."));
|
progressBarLabel->setText(tr(clientModel->isImporting() ? "Importing blocks..." : "Synchronizing with network..."));
|
||||||
progressBarLabel->setVisible(true);
|
progressBarLabel->setVisible(true);
|
||||||
progressBar->setFormat(tr("~%n block(s) remaining", "", nRemainingBlocks));
|
progressBar->setFormat(tr("~%n block(s) remaining", "", nRemainingBlocks));
|
||||||
progressBar->setMaximum(nTotalBlocks);
|
progressBar->setMaximum(nTotalBlocks);
|
||||||
progressBar->setValue(count);
|
progressBar->setValue(count);
|
||||||
progressBar->setVisible(true);
|
progressBar->setVisible(true);
|
||||||
}
|
|
||||||
|
|
||||||
tooltip = tr("Downloaded %1 of %2 blocks of transaction history (%3% done).").arg(count).arg(nTotalBlocks).arg(nPercentageDone, 0, 'f', 2);
|
tooltip = tr("Downloaded %1 of %2 blocks of transaction history (%3% done).").arg(count).arg(nTotalBlocks).arg(nPercentageDone, 0, 'f', 2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (strStatusBarWarnings.isEmpty())
|
|
||||||
progressBarLabel->setVisible(false);
|
progressBarLabel->setVisible(false);
|
||||||
|
|
||||||
progressBar->setVisible(false);
|
progressBar->setVisible(false);
|
||||||
tooltip = tr("Downloaded %1 blocks of transaction history.").arg(count);
|
tooltip = tr("Downloaded %1 blocks of transaction history.").arg(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Override progressBarLabel text and hide progress bar, when we have warnings to display
|
|
||||||
if (!strStatusBarWarnings.isEmpty())
|
|
||||||
{
|
|
||||||
progressBarLabel->setText(strStatusBarWarnings);
|
|
||||||
progressBarLabel->setVisible(true);
|
|
||||||
progressBar->setVisible(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
QDateTime lastBlockDate = clientModel->getLastBlockDate();
|
QDateTime lastBlockDate = clientModel->getLastBlockDate();
|
||||||
int secs = lastBlockDate.secsTo(QDateTime::currentDateTime());
|
int secs = lastBlockDate.secsTo(QDateTime::currentDateTime());
|
||||||
QString text;
|
QString text;
|
||||||
|
|
|
@ -88,9 +88,7 @@ void ClientModel::updateAlert(const QString &hash, int status)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Emit a numBlocksChanged when the status message changes,
|
emit alertsChanged(getStatusBarWarnings());
|
||||||
// so that the view recomputes and updates the status bar.
|
|
||||||
emit numBlocksChanged(getNumBlocks(), getNumBlocksOfPeers());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClientModel::isTestNet() const
|
bool ClientModel::isTestNet() const
|
||||||
|
@ -133,6 +131,11 @@ QString ClientModel::formatBuildDate() const
|
||||||
return QString::fromStdString(CLIENT_DATE);
|
return QString::fromStdString(CLIENT_DATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ClientModel::isReleaseVersion() const
|
||||||
|
{
|
||||||
|
return CLIENT_VERSION_IS_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
QString ClientModel::clientName() const
|
QString ClientModel::clientName() const
|
||||||
{
|
{
|
||||||
return QString::fromStdString(CLIENT_NAME);
|
return QString::fromStdString(CLIENT_NAME);
|
||||||
|
|
|
@ -42,6 +42,7 @@ public:
|
||||||
|
|
||||||
QString formatFullVersion() const;
|
QString formatFullVersion() const;
|
||||||
QString formatBuildDate() const;
|
QString formatBuildDate() const;
|
||||||
|
bool isReleaseVersion() const;
|
||||||
QString clientName() const;
|
QString clientName() const;
|
||||||
QString formatClientStartupTime() const;
|
QString formatClientStartupTime() const;
|
||||||
|
|
||||||
|
@ -60,6 +61,7 @@ private:
|
||||||
signals:
|
signals:
|
||||||
void numConnectionsChanged(int count);
|
void numConnectionsChanged(int count);
|
||||||
void numBlocksChanged(int count, int countOfPeers);
|
void numBlocksChanged(int count, int countOfPeers);
|
||||||
|
void alertsChanged(const QString &warnings);
|
||||||
|
|
||||||
//! Asynchronous error notification
|
//! Asynchronous error notification
|
||||||
void error(const QString &title, const QString &message, bool modal);
|
void error(const QString &title, const QString &message, bool modal);
|
||||||
|
|
|
@ -13,6 +13,25 @@
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="topLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="labelAlerts">
|
||||||
|
<property name="visible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop:0 #F0D0A0, stop:1 #F8D488); color:#000000
|
||||||
|
</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1">
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
@ -293,6 +312,8 @@
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "overviewpage.h"
|
#include "overviewpage.h"
|
||||||
#include "ui_overviewpage.h"
|
#include "ui_overviewpage.h"
|
||||||
|
|
||||||
|
#include "clientmodel.h"
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
#include "bitcoinunits.h"
|
#include "bitcoinunits.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
|
@ -92,6 +93,8 @@ public:
|
||||||
OverviewPage::OverviewPage(QWidget *parent) :
|
OverviewPage::OverviewPage(QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::OverviewPage),
|
ui(new Ui::OverviewPage),
|
||||||
|
clientModel(0),
|
||||||
|
walletModel(0),
|
||||||
currentBalance(-1),
|
currentBalance(-1),
|
||||||
currentUnconfirmedBalance(-1),
|
currentUnconfirmedBalance(-1),
|
||||||
currentImmatureBalance(-1),
|
currentImmatureBalance(-1),
|
||||||
|
@ -129,7 +132,7 @@ OverviewPage::~OverviewPage()
|
||||||
|
|
||||||
void OverviewPage::setBalance(qint64 balance, qint64 unconfirmedBalance, qint64 immatureBalance)
|
void OverviewPage::setBalance(qint64 balance, qint64 unconfirmedBalance, qint64 immatureBalance)
|
||||||
{
|
{
|
||||||
int unit = model->getOptionsModel()->getDisplayUnit();
|
int unit = walletModel->getOptionsModel()->getDisplayUnit();
|
||||||
currentBalance = balance;
|
currentBalance = balance;
|
||||||
currentUnconfirmedBalance = unconfirmedBalance;
|
currentUnconfirmedBalance = unconfirmedBalance;
|
||||||
currentImmatureBalance = immatureBalance;
|
currentImmatureBalance = immatureBalance;
|
||||||
|
@ -149,9 +152,20 @@ void OverviewPage::setNumTransactions(int count)
|
||||||
ui->labelNumTransactions->setText(QLocale::system().toString(count));
|
ui->labelNumTransactions->setText(QLocale::system().toString(count));
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverviewPage::setModel(WalletModel *model)
|
void OverviewPage::setClientModel(ClientModel *model)
|
||||||
{
|
{
|
||||||
this->model = model;
|
this->clientModel = model;
|
||||||
|
if(model)
|
||||||
|
{
|
||||||
|
// Show warning if this is a prerelease version
|
||||||
|
connect(model, SIGNAL(alertsChanged(QString)), this, SLOT(updateAlerts(QString)));
|
||||||
|
updateAlerts(model->getStatusBarWarnings());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OverviewPage::setWalletModel(WalletModel *model)
|
||||||
|
{
|
||||||
|
this->walletModel = model;
|
||||||
if(model && model->getOptionsModel())
|
if(model && model->getOptionsModel())
|
||||||
{
|
{
|
||||||
// Set up transaction list
|
// Set up transaction list
|
||||||
|
@ -181,18 +195,24 @@ void OverviewPage::setModel(WalletModel *model)
|
||||||
|
|
||||||
void OverviewPage::updateDisplayUnit()
|
void OverviewPage::updateDisplayUnit()
|
||||||
{
|
{
|
||||||
if(model && model->getOptionsModel())
|
if(walletModel && walletModel->getOptionsModel())
|
||||||
{
|
{
|
||||||
if(currentBalance != -1)
|
if(currentBalance != -1)
|
||||||
setBalance(currentBalance, currentUnconfirmedBalance, currentImmatureBalance);
|
setBalance(currentBalance, currentUnconfirmedBalance, currentImmatureBalance);
|
||||||
|
|
||||||
// Update txdelegate->unit with the current unit
|
// Update txdelegate->unit with the current unit
|
||||||
txdelegate->unit = model->getOptionsModel()->getDisplayUnit();
|
txdelegate->unit = walletModel->getOptionsModel()->getDisplayUnit();
|
||||||
|
|
||||||
ui->listTransactions->update();
|
ui->listTransactions->update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OverviewPage::updateAlerts(const QString &warnings)
|
||||||
|
{
|
||||||
|
this->ui->labelAlerts->setVisible(!warnings.isEmpty());
|
||||||
|
this->ui->labelAlerts->setText(warnings);
|
||||||
|
}
|
||||||
|
|
||||||
void OverviewPage::showOutOfSyncWarning(bool fShow)
|
void OverviewPage::showOutOfSyncWarning(bool fShow)
|
||||||
{
|
{
|
||||||
ui->labelWalletStatus->setVisible(fShow);
|
ui->labelWalletStatus->setVisible(fShow);
|
||||||
|
|
|
@ -10,6 +10,7 @@ QT_END_NAMESPACE
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class OverviewPage;
|
class OverviewPage;
|
||||||
}
|
}
|
||||||
|
class ClientModel;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
class TxViewDelegate;
|
class TxViewDelegate;
|
||||||
class TransactionFilterProxy;
|
class TransactionFilterProxy;
|
||||||
|
@ -23,7 +24,8 @@ public:
|
||||||
explicit OverviewPage(QWidget *parent = 0);
|
explicit OverviewPage(QWidget *parent = 0);
|
||||||
~OverviewPage();
|
~OverviewPage();
|
||||||
|
|
||||||
void setModel(WalletModel *model);
|
void setClientModel(ClientModel *clientModel);
|
||||||
|
void setWalletModel(WalletModel *walletModel);
|
||||||
void showOutOfSyncWarning(bool fShow);
|
void showOutOfSyncWarning(bool fShow);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -35,7 +37,8 @@ signals:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::OverviewPage *ui;
|
Ui::OverviewPage *ui;
|
||||||
WalletModel *model;
|
ClientModel *clientModel;
|
||||||
|
WalletModel *walletModel;
|
||||||
qint64 currentBalance;
|
qint64 currentBalance;
|
||||||
qint64 currentUnconfirmedBalance;
|
qint64 currentUnconfirmedBalance;
|
||||||
qint64 currentImmatureBalance;
|
qint64 currentImmatureBalance;
|
||||||
|
@ -46,6 +49,7 @@ private:
|
||||||
private slots:
|
private slots:
|
||||||
void updateDisplayUnit();
|
void updateDisplayUnit();
|
||||||
void handleTransactionClicked(const QModelIndex &index);
|
void handleTransactionClicked(const QModelIndex &index);
|
||||||
|
void updateAlerts(const QString &warnings);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // OVERVIEWPAGE_H
|
#endif // OVERVIEWPAGE_H
|
||||||
|
|
Loading…
Reference in a new issue