From 4a102213b9e3a8f07436687688e2ef759617fd41 Mon Sep 17 00:00:00 2001 From: Lorenz Haas Date: Thu, 30 Mar 2017 20:51:27 +0200 Subject: [PATCH] Sessions: Make manager usable again... for Linux With the change that the activated signal switches to the current session the manager becomes unusable e.g. in Linux/KDE with a single click policy. This is because you can't select a session by mouse any more in order to use one of the delete/rename/etc buttons. Change-Id: I4e81ee21f37fba0b4f456e02e9ce2e9da14c5a88 Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/sessiondialog.cpp | 1 + src/plugins/projectexplorer/sessionview.cpp | 6 +++--- src/plugins/projectexplorer/sessionview.h | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/plugins/projectexplorer/sessiondialog.cpp b/src/plugins/projectexplorer/sessiondialog.cpp index 53be1796400..d3eba933c53 100644 --- a/src/plugins/projectexplorer/sessiondialog.cpp +++ b/src/plugins/projectexplorer/sessiondialog.cpp @@ -121,6 +121,7 @@ bool SessionNameInputDialog::isSwitchToRequested() const SessionDialog::SessionDialog(QWidget *parent) : QDialog(parent) { m_ui.setupUi(this); + m_ui.sessionView->setActivationMode(Utils::DoubleClickActivation); connect(m_ui.btCreateNew, &QAbstractButton::clicked, m_ui.sessionView, &SessionView::createNewSession); diff --git a/src/plugins/projectexplorer/sessionview.cpp b/src/plugins/projectexplorer/sessionview.cpp index f08438d07bf..374f6e07451 100644 --- a/src/plugins/projectexplorer/sessionview.cpp +++ b/src/plugins/projectexplorer/sessionview.cpp @@ -53,7 +53,7 @@ void RemoveItemFocusDelegate::paint(QPainter* painter, const QStyleOptionViewIte } SessionView::SessionView(QWidget *parent) - : QTreeView(parent) + : Utils::TreeView(parent) { setItemDelegate(new RemoveItemFocusDelegate(this)); setSelectionBehavior(QAbstractItemView::SelectRows); @@ -68,7 +68,7 @@ SessionView::SessionView(QWidget *parent) selectionModel()->select(firstRow, QItemSelectionModel::QItemSelectionModel:: SelectCurrent); - connect(this, &QTreeView::activated, [this](const QModelIndex &index){ + connect(this, &Utils::TreeView::activated, [this](const QModelIndex &index){ emit activated(m_sessionModel.sessionAt(index.row())); }); connect(selectionModel(), &QItemSelectionModel::currentRowChanged, [this] @@ -133,7 +133,7 @@ void SessionView::selectSession(const QString &sessionName) void SessionView::showEvent(QShowEvent *event) { - QTreeView::showEvent(event); + Utils::TreeView::showEvent(event); selectActiveSession(); setFocus(); } diff --git a/src/plugins/projectexplorer/sessionview.h b/src/plugins/projectexplorer/sessionview.h index b43f7030457..0f85e6ed210 100644 --- a/src/plugins/projectexplorer/sessionview.h +++ b/src/plugins/projectexplorer/sessionview.h @@ -27,13 +27,14 @@ #include "sessionmodel.h" +#include + #include -#include namespace ProjectExplorer { namespace Internal { -class SessionView : public QTreeView { +class SessionView : public Utils::TreeView { Q_OBJECT public: