diff options
| author | Peter Penz <[email protected]> | 2008-12-13 15:39:09 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-12-13 15:39:09 +0000 |
| commit | 7fbc814147ed8d1e5f0b1677fc8808c3c2b6c22c (patch) | |
| tree | 5b5d776e1b26e48b8842c6d615a60343b73354d7 /src | |
| parent | c91c770ef1a60e7966048ece0ebfe861c8b288d1 (diff) | |
only jump automatically to the current index, if the autoscrolling is not active
svn path=/trunk/KDE/kdebase/apps/; revision=896481
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphincolumnwidget.cpp | 5 | ||||
| -rw-r--r-- | src/dolphincolumnwidget.h | 2 | ||||
| -rw-r--r-- | src/dolphindetailsview.cpp | 5 | ||||
| -rw-r--r-- | src/dolphindetailsview.h | 2 | ||||
| -rw-r--r-- | src/dolphiniconsview.cpp | 5 | ||||
| -rw-r--r-- | src/dolphiniconsview.h | 2 | ||||
| -rw-r--r-- | src/dolphinviewautoscroller.cpp | 5 | ||||
| -rw-r--r-- | src/dolphinviewautoscroller.h | 1 |
8 files changed, 21 insertions, 6 deletions
diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index a9b0b8244..41fad2ea7 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -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); } } diff --git a/src/dolphincolumnwidget.h b/src/dolphincolumnwidget.h index c1db48f8d..c1bf6a836 100644 --- a/src/dolphincolumnwidget.h +++ b/src/dolphincolumnwidget.h @@ -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 diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index f92a28e79..1b651456a 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -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); } diff --git a/src/dolphindetailsview.h b/src/dolphindetailsview.h index 1c7e0e9ca..8e48e8827 100644 --- a/src/dolphindetailsview.h +++ b/src/dolphindetailsview.h @@ -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; diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp index 2e43656ba..d30ef321e 100644 --- a/src/dolphiniconsview.cpp +++ b/src/dolphiniconsview.cpp @@ -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); } } diff --git a/src/dolphiniconsview.h b/src/dolphiniconsview.h index 966069641..28d0830fe 100644 --- a/src/dolphiniconsview.h +++ b/src/dolphiniconsview.h @@ -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; diff --git a/src/dolphinviewautoscroller.cpp b/src/dolphinviewautoscroller.cpp index 767a5b458..2a57cc157 100644 --- a/src/dolphinviewautoscroller.cpp +++ b/src/dolphinviewautoscroller.cpp @@ -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()) { diff --git a/src/dolphinviewautoscroller.h b/src/dolphinviewautoscroller.h index 6ef6631f7..3827b2326 100644 --- a/src/dolphinviewautoscroller.h +++ b/src/dolphinviewautoscroller.h @@ -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); |
