]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphindetailsview.cpp
Changes related to the smooth scrolling. We can enable it since icefox has submitted...
[dolphin.git] / src / dolphindetailsview.cpp
index b4f42cf50fc2682e968c254e9708b5a9d4ee09f1..590e3c7d8f4d00c859f435acc1cb39371941e56a 100644 (file)
@@ -108,6 +108,9 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
     m_viewOptions.font = font;
     m_viewOptions.showDecorationSelected = true;
 
+    setVerticalScrollMode(QListView::ScrollPerPixel);
+    setHorizontalScrollMode(QListView::ScrollPerPixel);
+
     updateDecorationSize();
 }
 
@@ -125,6 +128,7 @@ bool DolphinDetailsView::event(QEvent* event)
         headerView->setStretchLastSection(false);
         headerView->setResizeMode(QHeaderView::ResizeToContents);
         headerView->setResizeMode(0, QHeaderView::Stretch);
+        headerView->setMovable(false);
 
         // hide columns if this is indicated by the settings
         const DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
@@ -152,6 +156,11 @@ bool DolphinDetailsView::event(QEvent* event)
         hideColumn(DolphinModel::Rating);
         hideColumn(DolphinModel::Tags);
     }
+    else if (event->type() == QEvent::UpdateRequest) {
+        // A wheel movement will scroll 4 items
+        if (model()->rowCount())
+            verticalScrollBar()->setSingleStep((sizeHintForRow(0) / 3) * 4);
+    }
 
     return QTreeView::event(event);
 }
@@ -381,10 +390,9 @@ void DolphinDetailsView::zoomIn()
 {
     if (isZoomInPossible()) {
         DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
-        // TODO: get rid of K3Icon sizes
         switch (settings->iconSize()) {
-        case K3Icon::SizeSmall:  settings->setIconSize(K3Icon::SizeMedium); break;
-        case K3Icon::SizeMedium: settings->setIconSize(K3Icon::SizeLarge); break;
+        case KIconLoader::SizeSmall:  settings->setIconSize(KIconLoader::SizeMedium); break;
+        case KIconLoader::SizeMedium: settings->setIconSize(KIconLoader::SizeLarge); break;
         default: Q_ASSERT(false); break;
         }
         updateDecorationSize();
@@ -395,10 +403,9 @@ void DolphinDetailsView::zoomOut()
 {
     if (isZoomOutPossible()) {
         DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
-        // TODO: get rid of K3Icon sizes
         switch (settings->iconSize()) {
-        case K3Icon::SizeLarge:  settings->setIconSize(K3Icon::SizeMedium); break;
-        case K3Icon::SizeMedium: settings->setIconSize(K3Icon::SizeSmall); break;
+        case KIconLoader::SizeLarge:  settings->setIconSize(KIconLoader::SizeMedium); break;
+        case KIconLoader::SizeMedium: settings->setIconSize(KIconLoader::SizeSmall); break;
         default: Q_ASSERT(false); break;
         }
         updateDecorationSize();
@@ -459,13 +466,13 @@ void DolphinDetailsView::configureColumns(const QPoint& pos)
 bool DolphinDetailsView::isZoomInPossible() const
 {
     DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
-    return settings->iconSize() < K3Icon::SizeLarge;
+    return settings->iconSize() < KIconLoader::SizeLarge;
 }
 
 bool DolphinDetailsView::isZoomOutPossible() const
 {
     DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
-    return settings->iconSize() > K3Icon::SizeSmall;
+    return settings->iconSize() > KIconLoader::SizeSmall;
 }
 
 void DolphinDetailsView::updateDecorationSize()