only jump automatically to the current index, if the autoscrolling is not active

svn path=/trunk/KDE/kdebase/apps/; revision=896481
This commit is contained in:
Peter Penz 2008-12-13 15:39:09 +00:00
parent c91c770ef1
commit 7fbc814147
8 changed files with 21 additions and 6 deletions

View 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);
}
}

View 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

View 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);
}

View 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;

View 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);
}
}

View 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;

View 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()) {

View 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);