]> cloud.milkyroute.net Git - dolphin.git/commitdiff
only jump automatically to the current index, if the autoscrolling is not active
authorPeter Penz <peter.penz19@gmail.com>
Sat, 13 Dec 2008 15:39:09 +0000 (15:39 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 13 Dec 2008 15:39:09 +0000 (15:39 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=896481

src/dolphincolumnwidget.cpp
src/dolphincolumnwidget.h
src/dolphindetailsview.cpp
src/dolphindetailsview.h
src/dolphiniconsview.cpp
src/dolphiniconsview.h
src/dolphinviewautoscroller.cpp
src/dolphinviewautoscroller.h

index a9b0b8244573d7101e4eecd0e40b7745d6afe644..41fad2ea7148c95422e99cba95ba2f7956c90382 100644 (file)
@@ -55,6 +55,7 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent,
     m_active(true),
     m_view(columnView),
     m_selectionManager(0),
+    m_autoScroller(0),
     m_url(url),
     m_childUrl(),
     m_font(),
@@ -78,7 +79,7 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent,
     setVerticalScrollMode(QListView::ScrollPerPixel);
     setHorizontalScrollMode(QListView::ScrollPerPixel);
 
-    new DolphinViewAutoScroller(this);
+    m_autoScroller = new DolphinViewAutoScroller(this);
 
     // apply the column mode settings to the widget
     const ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
@@ -450,7 +451,7 @@ void DolphinColumnWidget::selectionChanged(const QItemSelection& selected, const
 void DolphinColumnWidget::currentChanged(const QModelIndex& current, const QModelIndex& previous)
 {
     QListView::currentChanged(current, previous);
-    if (current.isValid()) {
+    if (current.isValid() && !m_autoScroller->isActive()) {
         scrollTo(current);
     }
 }
index c1db48f8df7428007f0896816f103631e16411d9..c1bf6a836a6ed15e30d7819a1b1a4c257bcdde37 100644 (file)
@@ -33,6 +33,7 @@ class DolphinColumnView;
 class DolphinModel;
 class DolphinSortFilterProxyModel;
 class DolphinDirLister;
+class DolphinViewAutoScroller;
 class KFilePreviewGenerator;
 class KJob;
 class KFileItem;
@@ -149,6 +150,7 @@ private:
     bool m_active;
     DolphinColumnView* m_view;
     SelectionManager* m_selectionManager;
+    DolphinViewAutoScroller* m_autoScroller;
     KUrl m_url;      // URL of the directory that is shown
     KUrl m_childUrl; // URL of the next column that is shown
 
index f92a28e79104421191e1f000a89b0ac8b3835a31..1b651456aa8a9d8bad5de76290e5a0d3e835b33e 100644 (file)
@@ -55,6 +55,7 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
     m_ignoreScrollTo(false),
     m_controller(controller),
     m_selectionManager(0),
+    m_autoScroller(0),
     m_font(),
     m_decorationSize(),
     m_band()
@@ -76,7 +77,7 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
     setEditTriggers(QAbstractItemView::NoEditTriggers);
 
     setMouseTracking(true);
-    new DolphinViewAutoScroller(this);
+    m_autoScroller = new DolphinViewAutoScroller(this);
 
     const ViewProperties props(controller->url());
     setSortIndicatorSection(props.sorting());
@@ -424,7 +425,7 @@ void DolphinDetailsView::wheelEvent(QWheelEvent* event)
 void DolphinDetailsView::currentChanged(const QModelIndex& current, const QModelIndex& previous)
 {
     QTreeView::currentChanged(current, previous);
-    if (current.isValid()) {
+    if (current.isValid() && !m_autoScroller->isActive()) {
         scrollTo(current);
     }
 
index 1c7e0e9cafb53073be4d2adb9ac30c009c8a5c7c..8e48e88274cb4c2f3bd93fe7d966abe7b72e7fbb 100644 (file)
@@ -27,6 +27,7 @@
 
 class DolphinController;
 class SelectionManager;
+class DolphinViewAutoScroller;
 
 /**
  * @brief Represents the details view which shows the name, size,
@@ -181,6 +182,7 @@ private:
 
     DolphinController* m_controller;
     SelectionManager* m_selectionManager;
+    DolphinViewAutoScroller* m_autoScroller;
 
     QFont m_font;
     QSize m_decorationSize;
index 2e43656babfccfb125860b3b4861b82a99930a11..d30ef321eb974e416d839ece5e8eb7585154cf57 100644 (file)
@@ -43,6 +43,7 @@ DolphinIconsView::DolphinIconsView(QWidget* parent, DolphinController* controlle
     m_enableScrollTo(false),
     m_controller(controller),
     m_selectionManager(0),
+    m_autoScroller(0),
     m_categoryDrawer(0),
     m_font(),
     m_decorationSize(),
@@ -62,7 +63,7 @@ DolphinIconsView::DolphinIconsView(QWidget* parent, DolphinController* controlle
     viewport()->setAcceptDrops(true);
 
     setMouseTracking(true);
-    new DolphinViewAutoScroller(this);
+    m_autoScroller = new DolphinViewAutoScroller(this);
 
     connect(this, SIGNAL(clicked(const QModelIndex&)),
             controller, SLOT(requestTab(const QModelIndex&)));
@@ -317,7 +318,7 @@ void DolphinIconsView::leaveEvent(QEvent* event)
 void DolphinIconsView::currentChanged(const QModelIndex& current, const QModelIndex& previous)
 {
     KCategorizedView::currentChanged(current, previous);
-    if (current.isValid()) {
+    if (current.isValid() && !m_autoScroller->isActive()) {
         scrollTo(current);
     }
 }
index 966069641a04ac2a7051290bf482da3f2ba8aff5..28d0830feb5a370262823a1693aaab1eced30b40 100644 (file)
@@ -34,6 +34,7 @@
 class DolphinController;
 class SelectionManager;
 class DolphinCategoryDrawer;
+class DolphinViewAutoScroller;
 
 /**
  * @brief Represents the view, where each item is shown as an icon.
@@ -92,6 +93,7 @@ private:
     bool m_enableScrollTo;
     DolphinController* m_controller;
     SelectionManager* m_selectionManager;
+    DolphinViewAutoScroller* m_autoScroller;
     DolphinCategoryDrawer* m_categoryDrawer;
 
     QFont m_font;
index 767a5b45814fce33c1c1f55e8f073246a62826ab..2a57cc157c060e1951b1146db5ace15048abf2a9 100644 (file)
@@ -48,6 +48,11 @@ DolphinViewAutoScroller::~DolphinViewAutoScroller()
 {
 }
 
+bool DolphinViewAutoScroller::isActive() const
+{
+    return m_timer->isActive();
+}
+
 bool DolphinViewAutoScroller::eventFilter(QObject* watched, QEvent* event)
 {
     if (watched == m_itemView->viewport()) {
index 6ef6631f7cef637b94aa12c86ea1b09dfc1da15e..3827b2326114284f0f957d52ee12569c9c44079d 100644 (file)
@@ -38,6 +38,7 @@ class DolphinViewAutoScroller : public QObject
 public:
     DolphinViewAutoScroller(QAbstractItemView* parent);
     virtual ~DolphinViewAutoScroller();
+    bool isActive() const;
 
 protected:
     virtual bool eventFilter(QObject* watched, QEvent* event);