]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphindetailsview.cpp
remove the asynchronous update of the zooming again, it decreases the "feeled" perfor...
[dolphin.git] / src / dolphindetailsview.cpp
index bcf385d36d9581be2d13a03559c56031d125d873..79a1a106d04612ff7dab19a73b5440b05ff20189 100644 (file)
@@ -27,6 +27,7 @@
 #include "draganddrophelper.h"
 #include "selectionmanager.h"
 #include "viewproperties.h"
+#include "zoomlevelinfo.h"
 
 #include "dolphin_detailsmodesettings.h"
 #include "dolphin_generalsettings.h"
@@ -60,6 +61,7 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
     Q_ASSERT(settings != 0);
     Q_ASSERT(controller != 0);
 
+    setLayoutDirection(Qt::LeftToRight);
     setAcceptDrops(true);
     setSortingEnabled(true);
     setUniformRowHeights(true);
@@ -135,8 +137,12 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
 
     setVerticalScrollMode(QTreeView::ScrollPerPixel);
     setHorizontalScrollMode(QTreeView::ScrollPerPixel);
+    
+    const DolphinView* view = controller->dolphinView();
+    connect(view, SIGNAL(showPreviewChanged()),
+            this, SLOT(slotShowPreviewChanged()));
 
-    updateDecorationSize();
+    updateDecorationSize(view->showPreview());
 
     setFocus();
     viewport()->installEventFilter(this);
@@ -343,18 +349,12 @@ void DolphinDetailsView::dragMoveEvent(QDragMoveEvent* event)
 
 void DolphinDetailsView::dropEvent(QDropEvent* event)
 {
-    const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData());
-    if (!urls.isEmpty()) {
-        event->acceptProposedAction();
-        const QModelIndex index = indexAt(event->pos());
-        KFileItem item;
-        if (index.isValid() && (index.column() == DolphinModel::Name)) {
-            item = m_controller->itemForIndex(index);
-        }
-        m_controller->indicateDroppedUrls(urls,
-                                          m_controller->url(),
-                                          item);
+    const QModelIndex index = indexAt(event->pos());
+    KFileItem item;
+    if (index.isValid() && (index.column() == DolphinModel::Name)) {
+        item = m_controller->itemForIndex(index);
     }
+    m_controller->indicateDroppedUrls(item, m_controller->url(), event);
     QTreeView::dropEvent(event);
 }
 
@@ -491,11 +491,24 @@ QRect DolphinDetailsView::elasticBandRect() const
 
 void DolphinDetailsView::setZoomLevel(int level)
 {
-    const int size = DolphinController::iconSizeForZoomLevel(level);
+    const int size = ZoomLevelInfo::iconSizeForZoomLevel(level);
     DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
-    settings->setIconSize(size);
     
-    updateDecorationSize();
+    const bool showPreview = m_controller->dolphinView()->showPreview();
+    if (showPreview) {
+        settings->setPreviewSize(size);
+    } else {
+        settings->setIconSize(size);
+    }
+    
+    updateDecorationSize(showPreview);
+}
+
+
+void DolphinDetailsView::slotShowPreviewChanged()
+{
+    const DolphinView* view = m_controller->dolphinView();
+    updateDecorationSize(view->showPreview());
 }
 
 void DolphinDetailsView::configureColumns(const QPoint& pos)
@@ -583,10 +596,10 @@ void DolphinDetailsView::updateFont()
     }
 }
 
-void DolphinDetailsView::updateDecorationSize()
+void DolphinDetailsView::updateDecorationSize(bool showPreview)
 {
     DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
-    const int iconSize = settings->iconSize();
+    const int iconSize = showPreview ? settings->previewSize() : settings->iconSize();
     setIconSize(QSize(iconSize, iconSize));
     m_decorationSize = QSize(iconSize, iconSize);