Browse Source

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
0.8
Philip Kaufmann 12 years ago
parent
commit
4881353efe
  1. 38
      src/qt/bitcoingui.cpp
  2. 7
      src/qt/clientmodel.cpp
  3. 4
      src/qt/clientmodel.h

38
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) // Prevent orphan statusbar messages (e.g. hover Quit in main menu, wait until chain-sync starts -> garbelled text)
statusBar()->clearMessage(); statusBar()->clearMessage();
// don't show / hide progress bar and its label if we have no connection to the network // Acquire current block source
enum BlockSource blockSource = clientModel ? clientModel->getBlockSource() : BLOCK_SOURCE_NONE; enum BlockSource blockSource = clientModel->getBlockSource();
if (blockSource == BLOCK_SOURCE_NONE || (blockSource == BLOCK_SOURCE_NETWORK && clientModel->getNumConnections() == 0)) switch (blockSource) {
{ case BLOCK_SOURCE_NETWORK:
progressBarLabel->setVisible(false); progressBarLabel->setText(tr("Synchronizing with network..."));
progressBar->setVisible(false); break;
case BLOCK_SOURCE_DISK:
return; 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 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 lastBlockDate = clientModel->getLastBlockDate();
QDateTime currentDate = QDateTime::currentDateTime(); QDateTime currentDate = QDateTime::currentDateTime();
int secs = lastBlockDate.secsTo(currentDate); 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)); timeBehindText = tr("%n week(s)","",secs/(7*24*60*60));
} }
progressBarLabel->setText(importText);
progressBarLabel->setVisible(true); progressBarLabel->setVisible(true);
progressBar->setFormat(tr("%1 behind").arg(timeBehindText)); progressBar->setFormat(tr("%1 behind").arg(timeBehindText));
progressBar->setMaximum(1000000000); progressBar->setMaximum(1000000000);

7
src/qt/clientmodel.cpp

@ -122,9 +122,12 @@ enum BlockSource ClientModel::getBlockSource() const
{ {
if (fReindex) if (fReindex)
return BLOCK_SOURCE_REINDEX; return BLOCK_SOURCE_REINDEX;
if (fImporting) else if (fImporting)
return BLOCK_SOURCE_DISK; return BLOCK_SOURCE_DISK;
return BLOCK_SOURCE_NETWORK; else if (getNumConnections() > 0)
return BLOCK_SOURCE_NETWORK;
return BLOCK_SOURCE_NONE;
} }
int ClientModel::getNumBlocksOfPeers() const int ClientModel::getNumBlocksOfPeers() const

4
src/qt/clientmodel.h

@ -15,9 +15,9 @@ QT_END_NAMESPACE
enum BlockSource { enum BlockSource {
BLOCK_SOURCE_NONE, BLOCK_SOURCE_NONE,
BLOCK_SOURCE_NETWORK, BLOCK_SOURCE_REINDEX,
BLOCK_SOURCE_DISK, BLOCK_SOURCE_DISK,
BLOCK_SOURCE_REINDEX BLOCK_SOURCE_NETWORK
}; };
/** Model for Bitcoin network client. */ /** Model for Bitcoin network client. */

Loading…
Cancel
Save