]> cloud.milkyroute.net Git - dolphin.git/commitdiff
enable the scrollTo() functionality if it has been triggered by a key-press
authorPeter Penz <peter.penz19@gmail.com>
Wed, 7 May 2008 06:11:54 +0000 (06:11 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Wed, 7 May 2008 06:11:54 +0000 (06:11 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=804928

src/dolphiniconsview.cpp
src/dolphiniconsview.h

index f763c5476bda7dd9a62da3269c14c9ae967b0735..d30012d454177eef857a6fbc8dcddc7f0d25e2d6 100644 (file)
@@ -40,6 +40,7 @@
 
 DolphinIconsView::DolphinIconsView(QWidget* parent, DolphinController* controller) :
     KCategorizedView(parent),
+    m_enableScrollTo(false),
     m_controller(controller),
     m_selectionManager(0),
     m_categoryDrawer(0),
@@ -137,12 +138,15 @@ DolphinIconsView::~DolphinIconsView()
 
 void DolphinIconsView::scrollTo(const QModelIndex& index, ScrollHint hint)
 {
-    Q_UNUSED(index);
-    Q_UNUSED(hint);
-    // Disable the QListView implementation of scrollTo(), as QAbstractItemView
-    // wants to scroll to the current index each time the layout has been changed.
-    // This becomes an issue when previews are loaded and the scrollbar is used: the
-    // scrollbar will always be reset to 0 on each new preview.
+    // Enable the QListView implementation of scrollTo() only if it has been
+    // triggered by a key press. Otherwise QAbstractItemView wants to scroll to the current
+    // index each time the layout has been changed. This becomes an issue when
+    // previews are loaded and the scrollbar is used: the scrollbar will always
+    // be reset to 0 on each new preview.
+    if (m_enableScrollTo) {
+        KCategorizedView::scrollTo(index, hint);
+        m_enableScrollTo = false;
+    }
 }
 
 void DolphinIconsView::dataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight)
@@ -264,6 +268,7 @@ void DolphinIconsView::keyPressEvent(QKeyEvent* event)
 {
     KCategorizedView::keyPressEvent(event);
     m_controller->handleKeyPressEvent(event);
+    m_enableScrollTo = true; // see DolphinIconsView::scrollTo()
 }
 
 void DolphinIconsView::wheelEvent(QWheelEvent* event)
index a05d7ae277742e6d13c9bebca37c2a47d861fb1e..83672d2f568036925da8b08a1b766a1fffffabc2 100644 (file)
@@ -98,6 +98,7 @@ private:
     int additionalInfoCount() const;
 
 private:
+    bool m_enableScrollTo;
     DolphinController* m_controller;
     SelectionManager* m_selectionManager;
     DolphinCategoryDrawer* m_categoryDrawer;