[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/apps/dolphin/src
From:       Peter Penz <peter.penz () gmx ! at>
Date:       2008-05-29 18:01:00
Message-ID: 1212084060.317907.20603.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 814234 by ppenz:

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).

 M  +9 -1      dolphindetailsview.cpp  
 M  +2 -0      dolphindetailsview.h  


--- trunk/KDE/kdebase/apps/dolphin/src/dolphindetailsview.cpp #814233:814234
@@ -47,6 +47,7 @@
     QTreeView(parent),
 	m_autoResize(true),
     m_expandingTogglePressed(false),
+    m_keyPressed(false),
     m_controller(controller),
     m_selectionManager(0),
     m_font(),
@@ -360,8 +361,15 @@
 {
     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)
 {
     if (m_autoResize) {
@@ -391,7 +399,7 @@
 
     // 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);
     }
 }
--- trunk/KDE/kdebase/apps/dolphin/src/dolphindetailsview.h #814233:814234
@@ -58,6 +58,7 @@
     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:
 	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;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic