mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
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:
parent
c91c770ef1
commit
7fbc814147
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue