X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/13b2fc55704fbc734cd4f9cbae56cfc2ef3ec0ce..98bd28a8367469fa94aa6a1dc77f4583cfd5a116:/src/statusbarspaceinfo.cpp diff --git a/src/statusbarspaceinfo.cpp b/src/statusbarspaceinfo.cpp index c674a387a..79a1169e5 100644 --- a/src/statusbarspaceinfo.cpp +++ b/src/statusbarspaceinfo.cpp @@ -29,15 +29,13 @@ #include StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) : - QProgressBar(parent), + KCapacityBar(KCapacityBar::DrawTextInline, parent), m_gettingSize(false), m_foundMountPoint(false), - m_text() + m_kBSize(0) { - setMinimum(0); - setMaximum(0); - setMaximumWidth(200); + setMinimumWidth(200); // something to fix on kcapacitybar (ereslibre) // Update the space information each 10 seconds. Polling is useful // here, as files can be deleted/added outside the scope of Dolphin. @@ -56,11 +54,6 @@ void StatusBarSpaceInfo::setUrl(const KUrl& url) refresh(); } -QString StatusBarSpaceInfo::text() const -{ - return m_text; -} - void StatusBarSpaceInfo::slotFoundMountPoint(const QString& mountPoint, quint64 kBSize, quint64 kBUsed, @@ -70,13 +63,12 @@ void StatusBarSpaceInfo::slotFoundMountPoint(const QString& mountPoint, m_gettingSize = false; m_foundMountPoint = true; - const bool valuesChanged = (kBUsed != static_cast(value())) || - (kBSize != static_cast(maximum())); + const bool valuesChanged = (kBUsed != static_cast(value())) || (kBSize != m_kBSize); if (valuesChanged) { - m_text = i18nc("@info:status Free disk space", "%1 free", KIO::convertSize(kBAvailable * 1024)); + setText(i18nc("@info:status Free disk space", "%1 free", KIO::convertSize(kBAvailable * 1024))); setUpdatesEnabled(false); - setMaximum(kBSize); - setValue(kBUsed); + m_kBSize = kBSize; + setValue(kBSize > 0 ? (kBUsed * 100) / kBSize : 0); setUpdatesEnabled(true); update(); } @@ -89,7 +81,7 @@ void StatusBarSpaceInfo::slotDiskFreeSpaceDone() } m_gettingSize = false; - m_text = i18nc("@info:status", "Unknown size"); + setText(i18nc("@info:status", "Unknown size")); setValue(0); update(); } @@ -98,7 +90,7 @@ void StatusBarSpaceInfo::refresh() { // KDiskFreeSpace is for local paths only if (!m_url.isLocalFile()) { - m_text = i18nc("@info:status", "Unknown size"); + setText(i18nc("@info:status", "Unknown size")); setValue(0); update(); return; @@ -134,8 +126,8 @@ void StatusBarSpaceInfo::refresh() void StatusBarSpaceInfo::showGettingSizeInfo() { if (m_gettingSize) { - m_text = i18nc("@info:status", "Getting size..."); - setMaximum(0); + m_kBSize = 0; + setText(i18nc("@info:status", "Getting size...")); update(); } }