┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Mitchell <[email protected]>2008-03-27 20:36:05 +0000
committerJeff Mitchell <[email protected]>2008-03-27 20:36:05 +0000
commit674fe81e0a8382ede0066c04ae3ac0f86bbc4a21 (patch)
treea19dbb39201340ceac74d337b2cbeb068eb9b535
parente08b8edc2292562361a8937274973ff0604deca1 (diff)
If KDiskFreeSpace doesn't work for some reason it never emits foundMountPoint, and since Dolphin never checked for done(), it'd sit there waiting on the job.
svn path=/trunk/KDE/kdebase/apps/; revision=790923
-rw-r--r--src/statusbarspaceinfo.cpp15
-rw-r--r--src/statusbarspaceinfo.h3
2 files changed, 18 insertions, 0 deletions
diff --git a/src/statusbarspaceinfo.cpp b/src/statusbarspaceinfo.cpp
index 8da3dc947..6ccedd77d 100644
--- a/src/statusbarspaceinfo.cpp
+++ b/src/statusbarspaceinfo.cpp
@@ -31,6 +31,7 @@
StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) :
QProgressBar(parent),
m_gettingSize(false),
+ m_foundMountPoint(false),
m_text()
{
setMinimum(0);
@@ -69,6 +70,7 @@ void StatusBarSpaceInfo::slotFoundMountPoint(const QString& mountPoint,
Q_UNUSED(mountPoint);
m_gettingSize = false;
+ m_foundMountPoint = true;
const bool valuesChanged = (kBUsed != static_cast<quint64>(value())) ||
(kBAvailable != static_cast<quint64>(maximum()));
if (valuesChanged) {
@@ -78,6 +80,17 @@ void StatusBarSpaceInfo::slotFoundMountPoint(const QString& mountPoint,
}
}
+void StatusBarSpaceInfo::slotKDFSDone()
+{
+ if( m_foundMountPoint )
+ return;
+ m_gettingSize = false;
+ m_text = i18n("Free disk space could not be determined");
+ setMinimum(0);
+ setMaximum(0);
+ setValue(0);
+}
+
void StatusBarSpaceInfo::refresh()
{
// KDiskFreeSpace is for local paths only
@@ -93,6 +106,7 @@ void StatusBarSpaceInfo::refresh()
}
m_gettingSize = true;
+ m_foundMountPoint = false;
KDiskFreeSpace* job = new KDiskFreeSpace(this);
connect(job, SIGNAL(foundMountPoint(const QString&,
quint64,
@@ -102,6 +116,7 @@ void StatusBarSpaceInfo::refresh()
quint64,
quint64,
quint64)));
+ connect(job, SIGNAL(done()), this, SLOT(slotKDFSDone()));
job->readDF(mp->mountPoint());
diff --git a/src/statusbarspaceinfo.h b/src/statusbarspaceinfo.h
index b50d14c4d..99a0c78b5 100644
--- a/src/statusbarspaceinfo.h
+++ b/src/statusbarspaceinfo.h
@@ -53,6 +53,8 @@ private slots:
quint64 kBUsed,
quint64 kBAvailable);
+ void slotKDFSDone();
+
/** Refreshes the space information for the current set URL. */
void refresh();
@@ -60,6 +62,7 @@ private slots:
private:
bool m_gettingSize;
+ bool m_foundMountPoint;
KUrl m_url;
QString m_text;
};