aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilip Kaufmann <phil.kaufmann@t-online.de>2013-04-10 15:45:49 +0200
committerPhilip Kaufmann <phil.kaufmann@t-online.de>2013-04-10 15:53:40 +0200
commit4881353efef81acc6ddbaaecd4ba89f012b3e87e (patch)
treed9b58f483d4eda76c889bf9f72c81f0a564b27cc /src
parent1258dde48d255f18af928b7c59c4e78394f76de6 (diff)
downloadbitcoin-4881353efef81acc6ddbaaecd4ba89f012b3e87e.tar.xz
rework ClientModel::getBlockSource() + BitcoinGUI::setNumBlocks()
- updates ClientModel::getBlockSource() to return all available states and sorts enum BlockSource in order of usage cases (none default, then reindex, import and network) - updates BitcoinGUI::setNumBlocks() to better use getBlockSource() and also adds a message, when we have NO block source available
Diffstat (limited to 'src')
-rw-r--r--src/qt/bitcoingui.cpp38
-rw-r--r--src/qt/clientmodel.cpp7
-rw-r--r--src/qt/clientmodel.h4
3 files changed, 23 insertions, 26 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 27272e69e1..542000993e 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -514,31 +514,26 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
// Prevent orphan statusbar messages (e.g. hover Quit in main menu, wait until chain-sync starts -> garbelled text)
statusBar()->clearMessage();
- // don't show / hide progress bar and its label if we have no connection to the network
- enum BlockSource blockSource = clientModel ? clientModel->getBlockSource() : BLOCK_SOURCE_NONE;
- if (blockSource == BLOCK_SOURCE_NONE || (blockSource == BLOCK_SOURCE_NETWORK && clientModel->getNumConnections() == 0))
- {
- progressBarLabel->setVisible(false);
- progressBar->setVisible(false);
-
- return;
+ // Acquire current block source
+ enum BlockSource blockSource = clientModel->getBlockSource();
+ switch (blockSource) {
+ case BLOCK_SOURCE_NETWORK:
+ progressBarLabel->setText(tr("Synchronizing with network..."));
+ break;
+ case BLOCK_SOURCE_DISK:
+ progressBarLabel->setText(tr("Importing blocks from disk..."));
+ break;
+ case BLOCK_SOURCE_REINDEX:
+ progressBarLabel->setText(tr("Reindexing blocks on disk..."));
+ break;
+ case BLOCK_SOURCE_NONE:
+ // Case: not Importing, not Reindexing and no network connection
+ progressBarLabel->setText(tr("No block source available..."));
+ break;
}
QString tooltip;
- QString importText;
- switch (blockSource) {
- case BLOCK_SOURCE_NONE:
- case BLOCK_SOURCE_NETWORK:
- importText = tr("Synchronizing with network...");
- break;
- case BLOCK_SOURCE_DISK:
- importText = tr("Importing blocks from disk...");
- break;
- case BLOCK_SOURCE_REINDEX:
- importText = tr("Reindexing blocks on disk...");
- }
-
QDateTime lastBlockDate = clientModel->getLastBlockDate();
QDateTime currentDate = QDateTime::currentDateTime();
int secs = lastBlockDate.secsTo(currentDate);
@@ -580,7 +575,6 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
timeBehindText = tr("%n week(s)","",secs/(7*24*60*60));
}
- progressBarLabel->setText(importText);
progressBarLabel->setVisible(true);
progressBar->setFormat(tr("%1 behind").arg(timeBehindText));
progressBar->setMaximum(1000000000);
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
index c17c602b50..e8d99a8d45 100644
--- a/src/qt/clientmodel.cpp
+++ b/src/qt/clientmodel.cpp
@@ -122,9 +122,12 @@ enum BlockSource ClientModel::getBlockSource() const
{
if (fReindex)
return BLOCK_SOURCE_REINDEX;
- if (fImporting)
+ else if (fImporting)
return BLOCK_SOURCE_DISK;
- return BLOCK_SOURCE_NETWORK;
+ else if (getNumConnections() > 0)
+ return BLOCK_SOURCE_NETWORK;
+
+ return BLOCK_SOURCE_NONE;
}
int ClientModel::getNumBlocksOfPeers() const
diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h
index 904bff1886..f9d491aa50 100644
--- a/src/qt/clientmodel.h
+++ b/src/qt/clientmodel.h
@@ -15,9 +15,9 @@ QT_END_NAMESPACE
enum BlockSource {
BLOCK_SOURCE_NONE,
- BLOCK_SOURCE_NETWORK,
+ BLOCK_SOURCE_REINDEX,
BLOCK_SOURCE_DISK,
- BLOCK_SOURCE_REINDEX
+ BLOCK_SOURCE_NETWORK
};
/** Model for Bitcoin network client. */