]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/statusbarspaceinfo.cpp
include cleanup
[dolphin.git] / src / statusbarspaceinfo.cpp
index fca7bdd0beda538f7d457f44c879c01bab5dcf94..999f0ad54bc29b8b6de0aefc556b9711d67f11ec 100644 (file)
 
 #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>
 
@@ -59,8 +60,8 @@ void StatusBarSpaceInfo::paintEvent(QPaintEvent* /* event */)
 {
     QPainter painter(this);
     const int barWidth = width();
-    const int barTop = 2;
-    const int barHeight = height() - 4;
+    const int barTop = 1;
+    const int barHeight = height() - 5;
 
     QString text;
 
@@ -83,7 +84,7 @@ void StatusBarSpaceInfo::paintEvent(QPaintEvent* /* event */)
         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) {
@@ -91,19 +92,17 @@ void StatusBarSpaceInfo::paintEvent(QPaintEvent* /* event */)
         }
         painter.drawRect(QRect(left, barTop + 2, right, barHeight - 1));
 
-        text = i18n("%1% of %2 used", QString::number(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 = "";
+        } 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,
@@ -112,23 +111,17 @@ void StatusBarSpaceInfo::paintEvent(QPaintEvent* /* event */)
 
 
 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();
 }
 
@@ -140,25 +133,31 @@ void StatusBarSpaceInfo::showResult()
 
 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