┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-05-29 18:00:59 +0000
committerPeter Penz <[email protected]>2008-05-29 18:00:59 +0000
commit1efa3ccad76fa709791d0e322b17d1a00f5d1a7e (patch)
tree4bed812ecde67d078326a884f870ff3e7290d2b6 /src
parentd0df0730644b8ff4f3cdd908411cd0b44a6dc978 (diff)
Only select an item if the current item has been changed by a key press (e. g. QTreeView sets the current item when the view loses the focus).
svn path=/trunk/KDE/kdebase/apps/; revision=814234
Diffstat (limited to 'src')
-rw-r--r--src/dolphindetailsview.cpp10
-rw-r--r--src/dolphindetailsview.h2
2 files changed, 11 insertions, 1 deletions
diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp
index e3a69fea4..b725b0da2 100644
--- a/src/dolphindetailsview.cpp
+++ b/src/dolphindetailsview.cpp
@@ -47,6 +47,7 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
QTreeView(parent),
m_autoResize(true),
m_expandingTogglePressed(false),
+ m_keyPressed(false),
m_controller(controller),
m_selectionManager(0),
m_font(),
@@ -360,6 +361,13 @@ void DolphinDetailsView::keyPressEvent(QKeyEvent* event)
{
QTreeView::keyPressEvent(event);
m_controller->handleKeyPressEvent(event);
+ m_keyPressed = true;
+}
+
+void DolphinDetailsView::keyReleaseEvent(QKeyEvent* event)
+{
+ QTreeView::keyReleaseEvent(event);
+ m_keyPressed = false;
}
void DolphinDetailsView::resizeEvent(QResizeEvent* event)
@@ -391,7 +399,7 @@ void DolphinDetailsView::currentChanged(const QModelIndex& current, const QModel
// Stay consistent with QListView: When changing the current index by key presses,
// also change the selection.
- if (QApplication::mouseButtons() == Qt::NoButton) {
+ if (m_keyPressed) {
selectionModel()->select(current, QItemSelectionModel::ClearAndSelect);
}
}
diff --git a/src/dolphindetailsview.h b/src/dolphindetailsview.h
index 0acafddfc..eae04646a 100644
--- a/src/dolphindetailsview.h
+++ b/src/dolphindetailsview.h
@@ -58,6 +58,7 @@ protected:
virtual void dropEvent(QDropEvent* event);
virtual void paintEvent(QPaintEvent* event);
virtual void keyPressEvent(QKeyEvent* event);
+ virtual void keyReleaseEvent(QKeyEvent* event);
virtual void resizeEvent(QResizeEvent* event);
virtual void wheelEvent(QWheelEvent* event);
virtual void currentChanged(const QModelIndex& current, const QModelIndex& previous);
@@ -158,6 +159,7 @@ private:
private:
bool m_autoResize; // if true, the columns are resized automatically to the available width
bool m_expandingTogglePressed;
+ bool m_keyPressed; // true if a key is pressed currently; info used by currentChanged()
DolphinController* m_controller;
SelectionManager* m_selectionManager;