]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphiniconsview.cpp
backport: fixed issue that the item height does not match to the number of lines...
[dolphin.git] / src / dolphiniconsview.cpp
index a45b08dcf9886b27d7235c07900798ebca0468c6..d3d485f1a05f1f3cb600dd7f11d53ce7e7d1a98d 100644 (file)
@@ -78,8 +78,8 @@ DolphinIconsView::DolphinIconsView(QWidget* parent, DolphinController* controlle
     const DolphinView* view = controller->dolphinView();
     connect(view, SIGNAL(showPreviewChanged()),
             this, SLOT(slotShowPreviewChanged()));
-    connect(view, SIGNAL(additionalInfoChanged(const KFileItemDelegate::InformationList&)),
-            this, SLOT(slotAdditionalInfoChanged(const KFileItemDelegate::InformationList&)));
+    connect(view, SIGNAL(additionalInfoChanged()),
+            this, SLOT(slotAdditionalInfoChanged()));
 
     connect(this, SIGNAL(entered(const QModelIndex&)),
             this, SLOT(slotEntered(const QModelIndex&)));
@@ -229,8 +229,15 @@ void DolphinIconsView::dragMoveEvent(QDragMoveEvent* event)
         const KFileItem item = itemForIndex(index);
         if (!item.isNull() && item.isDir()) {
             m_dropRect = visualRect(index);
+        } else {
+            m_dropRect.setSize(QSize()); // set as invalid
         }
     }
+    if (event->mimeData()->hasUrls()) {
+        // accept url drops, independently from the destination item
+        event->acceptProposedAction();
+    }
+
     setDirtyRegion(m_dropRect);
 }
 
@@ -260,7 +267,7 @@ void DolphinIconsView::paintEvent(QPaintEvent* event)
     // TODO: remove this code when the issue #160611 is solved in Qt 4.4
     if (m_dragging) {
         const QBrush& brush = viewOptions().palette.brush(QPalette::Normal, QPalette::Highlight);
-        DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush);
+        DragAndDropHelper::drawHoverIndication(this, m_dropRect, brush);
     }
 }
 
@@ -294,15 +301,11 @@ void DolphinIconsView::slotShowPreviewChanged()
     updateGridSize(view->showPreview(), additionalInfoCount());
 }
 
-void DolphinIconsView::slotAdditionalInfoChanged(const KFileItemDelegate::InformationList& info)
+void DolphinIconsView::slotAdditionalInfoChanged()
 {
-    const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
-    if (!settings->showAdditionalInfo()) {
-        return;
-    }
-
-    const bool showPreview = m_controller->dolphinView()->showPreview();
-    updateGridSize(showPreview, info.count());
+    const DolphinView* view = m_controller->dolphinView();
+    const bool showPreview = view->showPreview();
+    updateGridSize(showPreview, view->additionalInfo().count());
 }
 
 void DolphinIconsView::zoomIn()
@@ -461,8 +464,7 @@ KFileItem DolphinIconsView::itemForIndex(const QModelIndex& index) const
 int DolphinIconsView::additionalInfoCount() const
 {
     const DolphinView* view = m_controller->dolphinView();
-    const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
-    return settings->showAdditionalInfo() ? view->additionalInfo().count() : 0;
+    return view->additionalInfo().count();
 }
 
 #include "dolphiniconsview.moc"