diff options
| author | Jeff Mitchell <[email protected]> | 2008-03-27 20:36:05 +0000 |
|---|---|---|
| committer | Jeff Mitchell <[email protected]> | 2008-03-27 20:36:05 +0000 |
| commit | 674fe81e0a8382ede0066c04ae3ac0f86bbc4a21 (patch) | |
| tree | a19dbb39201340ceac74d337b2cbeb068eb9b535 /src | |
| parent | e08b8edc2292562361a8937274973ff0604deca1 (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
Diffstat (limited to 'src')
| -rw-r--r-- | src/statusbarspaceinfo.cpp | 15 | ||||
| -rw-r--r-- | src/statusbarspaceinfo.h | 3 |
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; }; |
