]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/places/placesitemlistwidget.cpp
fix padding in places view
[dolphin.git] / src / panels / places / placesitemlistwidget.cpp
index 745a6ae1b45b915af5c5555daf90e91b6cc989e5..2d5111c56c5d0394ad31548c39d914994f018397 100644 (file)
@@ -12,6 +12,8 @@
 #include <KColorScheme>
 
 #include <KIO/FileSystemFreeSpaceJob>
+#include <Solid/Device>
+#include <Solid/NetworkShare>
 
 #define CAPACITYBAR_HEIGHT 2
 #define CAPACITYBAR_MARGIN 2
@@ -41,15 +43,22 @@ QPalette::ColorRole PlacesItemListWidget::normalTextColorRole() const
 
 void PlacesItemListWidget::updateCapacityBar()
 {
-    const bool isDevice = !data().value("udi").toString().isEmpty();
-    const QUrl url = data().value("url").toUrl();
-    if (!(isDevice && url.isLocalFile())) {
+    const QString udi = data().value("udi").toString();
+    if (udi.isEmpty()) {
         resetCapacityBar();
         return;
     }
+    const Solid::Device device = Solid::Device(udi);
+    if (device.isDeviceInterface(Solid::DeviceInterface::NetworkShare)
+            || device.isDeviceInterface(Solid::DeviceInterface::OpticalDrive)
+            || device.isDeviceInterface(Solid::DeviceInterface::OpticalDisc)) {
+        resetCapacityBar();
+        return;
+    }
+    const QUrl url = data().value("url").toUrl();
 
-    if (m_freeSpaceInfo.job || !m_freeSpaceInfo.lastUpdated.hasExpired()) {
-        // Job running or cache is still valid.
+    if (url.isEmpty() || m_freeSpaceInfo.job || !m_freeSpaceInfo.lastUpdated.hasExpired()) {
+        // No url, job running or cache is still valid.
         return;
     }
 
@@ -97,7 +106,8 @@ void PlacesItemListWidget::paint(QPainter* painter, const QStyleOptionGraphicsIt
 {
     KStandardItemListWidget::paint(painter, option, widget);
 
-    if (m_drawCapacityBar) {
+    // We check if option=nullptr since it is null when the place is dragged (Bug #430441)
+    if (m_drawCapacityBar && option) {
         const TextInfo* textInfo = m_textInfo.value("text");
         if (textInfo) { // See KStandarItemListWidget::paint() for info on why we check textInfo.
             painter->save();