The synchronization progress bar now compares the amount of total blocks to amount...
authorJanne Pulkkinen <jannepulk@gmail.com>
Sat, 10 Sep 2011 09:43:45 +0000 (12:43 +0300)
committerWladimir J. van der Laan <laanwj@gmail.com>
Sun, 11 Sep 2011 08:29:29 +0000 (10:29 +0200)
src/qt/bitcoingui.cpp
src/qt/clientmodel.cpp
src/qt/clientmodel.h

index 0c9f778..7943684 100644 (file)
@@ -345,6 +345,7 @@ void BitcoinGUI::setNumConnections(int count)
 
 void BitcoinGUI::setNumBlocks(int count)
 {
+    int initTotal = clientModel->getNumBlocksAtStartup();
     int total = clientModel->getTotalBlocksEstimate();
     QString tooltip;
 
@@ -352,8 +353,8 @@ void BitcoinGUI::setNumBlocks(int count)
     {
         progressBarLabel->setVisible(true);
         progressBar->setVisible(true);
-        progressBar->setMaximum(total);
-        progressBar->setValue(count);
+        progressBar->setMaximum(total - initTotal);
+        progressBar->setValue(count - initTotal);
         tooltip = tr("Downloaded %1 of %2 blocks of transaction history.").arg(count).arg(total);
     }
     else
index d307473..08abaa6 100644 (file)
@@ -18,6 +18,8 @@ ClientModel::ClientModel(OptionsModel *optionsModel, QObject *parent) :
     QTimer *timer = new QTimer(this);
     connect(timer, SIGNAL(timeout()), this, SLOT(update()));
     timer->start(MODEL_UPDATE_DELAY);
+
+    numBlocksAtStartup = -1;
 }
 
 int ClientModel::getNumConnections() const
@@ -30,6 +32,12 @@ 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());
index 1538705..8605fb9 100644 (file)
@@ -23,6 +23,7 @@ public:
 
     int getNumConnections() const;
     int getNumBlocks() const;
+    int getNumBlocksAtStartup();
 
     QDateTime getLastBlockDate() const;
 
@@ -41,6 +42,8 @@ private:
     int cachedNumConnections;
     int cachedNumBlocks;
 
+    int numBlocksAtStartup;
+
 signals:
     void numConnectionsChanged(int count);
     void numBlocksChanged(int count);