mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-12 12:54:29 +00:00
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
This commit is contained in:
parent
d0df073064
commit
1efa3ccad7
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue