#include "statusbarspaceinfo.h"
-#include <QPainter>
-#include <QPaintEvent>
-#include <QTimer>
+#include <QtCore/QTimer>
+#include <QtGui/QPainter>
+#include <QtGui/QKeyEvent>
#include <kglobalsettings.h>
-#include <kdiskfreesp.h>
+#include <kdiskfreespace.h>
+#include <kmountpoint.h>
#include <klocale.h>
#include <kio/job.h>
painter.setPen(Qt::NoPen);
painter.setBrush(progressColor(backgrColor));
int usedWidth = barWidth - static_cast<int>((m_kBAvailable *
- static_cast<float>(barWidth)) / m_kBSize);
+ static_cast<float>(barWidth)) / m_kBSize);
const int left = 1;
int right = usedWidth - widthDec;
if (right < left) {
}
painter.drawRect(QRect(left, barTop + 2, right, barHeight - 1));
- text = i18n("%1% of %2 used", 100 - (int)(100.0 * m_kBAvailable / m_kBSize), KIO::convertSizeFromKiB(m_kBSize));
- }
- else {
+ text = i18n("%1 free", KIO::convertSizeFromKiB(m_kBAvailable));
+ } else {
if (m_gettingSize) {
text = i18n("Getting size...");
- }
- else {
- text = QString::null;
+ } else {
+ text = QString();
QTimer::singleShot(0, this, SLOT(hide()));
}
}
- // draw text (usually 'X% of Y GB used')
+ // draw text
painter.setPen(KGlobalSettings::textColor());
painter.drawText(QRect(1, 1, barWidth - 2, barHeight + 6),
Qt::AlignCenter | Qt::TextWordWrap,
void StatusBarSpaceInfo::slotFoundMountPoint(const unsigned long& kBSize,
- const unsigned long& /* kBUsed */,
+ const unsigned long& kBUsed,
const unsigned long& kBAvailable,
- const QString& /* mountPoint */)
+ const QString& mountPoint)
{
+ Q_UNUSED(kBUsed);
+ Q_UNUSED(mountPoint);
+
m_gettingSize = false;
m_kBSize = kBSize;
m_kBAvailable = kBAvailable;
- // Bypass a the issue (?) of KDiskFreeSp that for protocols like
- // FTP, SMB the size of root partition is returned.
- // TODO: check whether KDiskFreeSp is buggy or Dolphin uses it in a wrong way
- const QString protocol(m_url.protocol());
- if (!protocol.isEmpty() && (protocol != "file")) {
- m_kBSize = 0;
- m_kBAvailable = 0;
- }
-
update();
}
void StatusBarSpaceInfo::refresh()
{
- m_gettingSize = true;
m_kBSize = 0;
m_kBAvailable = 0;
- const QString mountPoint(KIO::findPathMountPoint(m_url.path()));
+ // KDiskFreeSpace is for local paths only
+ if (!m_url.isLocalFile())
+ return;
+
+ m_gettingSize = true;
+ KMountPoint::Ptr mp = KMountPoint::currentMountPoints().findByPath(m_url.path());
+ if (!mp)
+ return;
- KDiskFreeSp* job = new KDiskFreeSp(this);
+ KDiskFreeSpace* job = new KDiskFreeSpace(this);
connect(job, SIGNAL(foundMountPoint(const unsigned long&,
const unsigned long&,
const unsigned long&,
- const QString& )),
+ const QString&)),
this, SLOT(slotFoundMountPoint(const unsigned long&,
const unsigned long&,
const unsigned long&,
- const QString& )));
+ const QString&)));
connect(job, SIGNAL(done()),
this, SLOT(showResult()));
- job->readDF(mountPoint);
+ job->readDF(mp->mountPoint());
}
QColor StatusBarSpaceInfo::progressColor(const QColor& bgColor) const