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
This commit is contained in:
Jeff Mitchell 2008-03-27 20:36:05 +00:00
parent e08b8edc22
commit 674fe81e0a
2 changed files with 18 additions and 0 deletions

View file

@ -31,6 +31,7 @@
StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) : StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) :
QProgressBar(parent), QProgressBar(parent),
m_gettingSize(false), m_gettingSize(false),
m_foundMountPoint(false),
m_text() m_text()
{ {
setMinimum(0); setMinimum(0);
@ -69,6 +70,7 @@ void StatusBarSpaceInfo::slotFoundMountPoint(const QString& mountPoint,
Q_UNUSED(mountPoint); Q_UNUSED(mountPoint);
m_gettingSize = false; m_gettingSize = false;
m_foundMountPoint = true;
const bool valuesChanged = (kBUsed != static_cast<quint64>(value())) || const bool valuesChanged = (kBUsed != static_cast<quint64>(value())) ||
(kBAvailable != static_cast<quint64>(maximum())); (kBAvailable != static_cast<quint64>(maximum()));
if (valuesChanged) { 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() void StatusBarSpaceInfo::refresh()
{ {
// KDiskFreeSpace is for local paths only // KDiskFreeSpace is for local paths only
@ -93,6 +106,7 @@ void StatusBarSpaceInfo::refresh()
} }
m_gettingSize = true; m_gettingSize = true;
m_foundMountPoint = false;
KDiskFreeSpace* job = new KDiskFreeSpace(this); KDiskFreeSpace* job = new KDiskFreeSpace(this);
connect(job, SIGNAL(foundMountPoint(const QString&, connect(job, SIGNAL(foundMountPoint(const QString&,
quint64, quint64,
@ -102,6 +116,7 @@ void StatusBarSpaceInfo::refresh()
quint64, quint64,
quint64, quint64,
quint64))); quint64)));
connect(job, SIGNAL(done()), this, SLOT(slotKDFSDone()));
job->readDF(mp->mountPoint()); job->readDF(mp->mountPoint());

View file

@ -53,6 +53,8 @@ private slots:
quint64 kBUsed, quint64 kBUsed,
quint64 kBAvailable); quint64 kBAvailable);
void slotKDFSDone();
/** Refreshes the space information for the current set URL. */ /** Refreshes the space information for the current set URL. */
void refresh(); void refresh();
@ -60,6 +62,7 @@ private slots:
private: private:
bool m_gettingSize; bool m_gettingSize;
bool m_foundMountPoint;
KUrl m_url; KUrl m_url;
QString m_text; QString m_text;
}; };