X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8eb9b508ca87fb1d634d8b8ba62c054ed04466d2..321f747ddf9cf71ed3c8fa4de287d131cd22c2d8:/src/statusbar/statusbarspaceinfo.cpp diff --git a/src/statusbar/statusbarspaceinfo.cpp b/src/statusbar/statusbarspaceinfo.cpp index a25fa3a3e..61b28334a 100644 --- a/src/statusbar/statusbarspaceinfo.cpp +++ b/src/statusbar/statusbarspaceinfo.cpp @@ -21,7 +21,6 @@ #include "statusbarspaceinfo.h" #include -#include #include #include @@ -36,7 +35,7 @@ StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) : // Use a timer to update the space information. Polling is useful // here, as files can be deleted/added outside the scope of Dolphin. m_timer = new QTimer(this); - connect(m_timer, SIGNAL(timeout()), this, SLOT(refresh())); + connect(m_timer, SIGNAL(timeout()), this, SLOT(calculateSpaceInfo())); } StatusBarSpaceInfo::~StatusBarSpaceInfo() @@ -45,8 +44,12 @@ StatusBarSpaceInfo::~StatusBarSpaceInfo() void StatusBarSpaceInfo::setUrl(const KUrl& url) { - m_url = url; - refresh(); + if (m_url != url) { + m_url = url; + if (isVisible()) { + calculateSpaceInfo(); + } + } } KUrl StatusBarSpaceInfo::url() const @@ -58,7 +61,7 @@ void StatusBarSpaceInfo::showEvent(QShowEvent* event) { KCapacityBar::showEvent(event); if (!event->spontaneous()) { - refresh(); + calculateSpaceInfo(); m_timer->start(10000); } } @@ -69,12 +72,8 @@ void StatusBarSpaceInfo::hideEvent(QHideEvent* event) KCapacityBar::hideEvent(event); } -void StatusBarSpaceInfo::refresh() +void StatusBarSpaceInfo::calculateSpaceInfo() { - if (!isVisible()) { - return; - } - // KDiskFreeSpace is for local paths only if (!m_url.isLocalFile()) { setText(i18nc("@info:status", "Unknown size")); @@ -83,12 +82,7 @@ void StatusBarSpaceInfo::refresh() return; } - KMountPoint::Ptr mp = KMountPoint::currentMountPoints().findByPath(m_url.toLocalFile()); - if (!mp) { - return; - } - - KDiskFreeSpaceInfo job = KDiskFreeSpaceInfo::freeSpaceInfo(mp->mountPoint()); + KDiskFreeSpaceInfo job = KDiskFreeSpaceInfo::freeSpaceInfo(m_url.toLocalFile()); if (!job.isValid()) { setText(i18nc("@info:status", "Unknown size")); setValue(0);