Version: 0.8.4 (using KDE KDE 3.4.0) Installed from: FreeBSD Ports Compiler: gcc version 3.4.2 [FreeBSD] 20040728 OS: FreeBSD The estimated donwload time for a big file over an slow speed connection is not accurately displayed 600 MB iso file shows 24:59:59 it seems like there is no 99 hours or 1 day...
SVN commit 437888 by uwolfer: * Remaining time: replace function KIO::calculateRemaining() with KIO::calculateRemainingSeconds() and KIO::convertSeconds(). So the time can be more than "23:59:59" (now for example "2 days 12:12:12"). BUG: 105770 CCBUG: 85190 * Better formatted systray tooltip. M +3 -11 dlgIndividual.cpp M +1 -1 dlgIndividual.h M +9 -7 kmainwidget.cpp M +16 -10 transfer.cpp M +4 -3 transfer.h --- trunk/KDE/kdenetwork/kget/dlgIndividual.cpp #437887:437888 @@ -226,18 +226,10 @@ } -void DlgIndividual::setSpeed(unsigned long bytes_per_second, QTime remaining) +void DlgIndividual::setSpeed(QString speed) { - QString msg; - if (bytes_per_second == 0 && item->getStatus() < Transfer::ST_RUNNING) - msg=i18n("Stalled"); - else if (bytes_per_second == 0 && item->getStatus() == Transfer::ST_FINISHED) - msg=i18n("Finished"); - else - msg=i18n("%1/s ( %2 )").arg(KIO::convertSize(bytes_per_second)).arg(remaining.toString()); - - speedLabel->setText(msg); - m_pDockIndividual->setTip(msg); + speedLabel->setText(speed); + m_pDockIndividual->setTip(speed); } --- trunk/KDE/kdenetwork/kget/dlgIndividual.h #437887:437888 @@ -61,7 +61,7 @@ void setProcessedSize(unsigned long bytes); - void setSpeed(unsigned long bytes_per_second, QTime remaining); + void setSpeed(QString speed); void setPercent(unsigned long percent); void setCopying(const KURL & src, const KURL & dest); --- trunk/KDE/kdenetwork/kget/kmainwidget.cpp #437887:437888 @@ -83,6 +83,7 @@ #include <kio/authinfo.h> +#include <kio/global.h> #include <qiconset.h> #include "version.h" @@ -396,7 +397,7 @@ statusBar()->insertFixedItem(i18n(" Transfers: %1 ").arg(99), ID_TOTAL_TRANSFERS); statusBar()->insertFixedItem(i18n(" Files: %1 ").arg(555), ID_TOTAL_FILES); statusBar()->insertFixedItem(i18n(" Size: %1 KB ").arg("134.56"), ID_TOTAL_SIZE); - statusBar()->insertFixedItem(i18n(" Time: 00:00:00 "), ID_TOTAL_TIME); + statusBar()->insertFixedItem(i18n(" Time: %1 ").arg(KIO::convertSeconds(0)) + " ", ID_TOTAL_TIME); //added some spaces because "2 days 12:12:12" need more place as "12:12:12" statusBar()->insertFixedItem(i18n(" %1 KB/s ").arg("123.34"), ID_TOTAL_SPEED); setAutoSaveSettings( "MainWindow", false /*Settings takes care of size & pos & state */ ); @@ -2049,7 +2050,7 @@ int totalFiles = 0; KIO::filesize_t totalSize = 0; int totalSpeed = 0; - QTime remTime; + unsigned int remTime = 0; TransferIterator it(myTransferList); @@ -2069,14 +2070,15 @@ statusBar()->changeItem(i18n(" Transfers: %1 ").arg(myTransferList->childCount()), ID_TOTAL_TRANSFERS); statusBar()->changeItem(i18n(" Files: %1 ").arg(totalFiles), ID_TOTAL_FILES); statusBar()->changeItem(i18n(" Size: %1 ").arg(KIO::convertSize(totalSize)), ID_TOTAL_SIZE); - statusBar()->changeItem(i18n(" Time: %1 ").arg(remTime.toString()), ID_TOTAL_TIME); + statusBar()->changeItem(i18n(" Time: %1 ").arg(KIO::convertSeconds(remTime)), ID_TOTAL_TIME); statusBar()->changeItem(i18n(" %1/s ").arg(KIO::convertSize(totalSpeed)), ID_TOTAL_SPEED); if (kdock) { - tmpstr = i18n(" Transfers: %1 ").arg(myTransferList->childCount()) + - i18n(" Files: %1 ").arg(totalFiles)+ - i18n(" Size: %1 ").arg(KIO::convertSize(totalSize))+ - i18n(" Time: %1 %2/s").arg(remTime.toString()).arg(KIO::convertSize(totalSpeed)); + tmpstr = i18n("<b>Transfers:</b> %1 ").arg(myTransferList->childCount()) + + i18n("<br /><b>Files:</b> %1 ").arg(totalFiles) + + i18n("<br /><b>Size:</b> %1 ").arg(KIO::convertSize(totalSize)) + + i18n("<br /><b>Time:</b> %1 ").arg(KIO::convertSeconds(remTime)) + + i18n("<br /><b>Speed:</b> %1/s").arg(KIO::convertSize(totalSpeed)); kdock->updateToolTip( tmpstr ); } #ifdef _DEBUG --- trunk/KDE/kdenetwork/kget/transfer.cpp #437887:437888 @@ -101,7 +101,7 @@ Transfer::init(const uint _id) { sDebugIn << endl; - + remainingTimeSec = 0; totalSize = 0; processedSize = 0; percent = 0; @@ -258,7 +258,8 @@ // sDebugIn <<endl; speed = _speed; - remainingTime = KIO::calculateRemaining(totalSize, processedSize, speed); + remainingTimeSec = KIO::calculateRemainingSeconds(totalSize, processedSize, speed); + remainingTime = KIO::convertSeconds(remainingTimeSec); //sDebugOut <<endl; } @@ -594,27 +595,32 @@ if (speed == 0 && status == ST_RUNNING) { setText(view->lv_speed, i18n("Stalled")); setText(view->lv_remaining, i18n("Stalled")); + if(dlgIndividual) + dlgIndividual->setSpeed(i18n("Stalled")); } else if (speed == 0 && status == ST_FINISHED) { setText(view->lv_progress, i18n("OK as in 'finished'","OK")); - setText(view->lv_speed, i18n("0 MB/s")); - setText(view->lv_remaining, i18n("00:00:00")); + setText(view->lv_speed, i18n("Finished")); + setText(view->lv_remaining, i18n("Finished")); + if(dlgIndividual) + dlgIndividual->setSpeed(i18n("Finished")); } else if (speed == 0 && status == ST_STOPPED) { - setText(view->lv_speed, i18n("0 MB/s")); - setText(view->lv_remaining, i18n("00:00:00")); + setText(view->lv_speed, i18n("Stopped")); + setText(view->lv_remaining, i18n("Stopped")); + if(dlgIndividual) + dlgIndividual->setSpeed(i18n("Stopped")); } else { QString tmps = i18n("%1/s").arg(KIO::convertSize(speed)); setText(view->lv_speed, tmps); - setText(view->lv_remaining, remainingTime.toString()); + setText(view->lv_remaining, remainingTime); + if(dlgIndividual) + dlgIndividual->setSpeed(tmps + " ( " + remainingTime + " ) "); } - if(dlgIndividual) - dlgIndividual->setSpeed(speed, remainingTime); - //sDebugOut<<endl; } --- trunk/KDE/kdenetwork/kget/transfer.h #437887:437888 @@ -82,9 +82,9 @@ { return startTime; } - QTime getRemainingTime()const + unsigned int getRemainingTime()const { - return remainingTime; + return remainingTimeSec; } KIO::filesize_t getTotalSize()const @@ -216,7 +216,8 @@ int percent; int speed; - QTime remainingTime; + unsigned int remainingTimeSec; + QString remainingTime; TransferStatus status; TransferMode mode;