diff --git a/src/plugins/projectexplorer/environmenteditmodel.cpp b/src/plugins/projectexplorer/environmenteditmodel.cpp index 8a17cc23ee159c0b53acff5449a66448afd6d9a7..4a8b44977ea5766a7c44a200cba5ef08ac7c2fa1 100644 --- a/src/plugins/projectexplorer/environmenteditmodel.cpp +++ b/src/plugins/projectexplorer/environmenteditmodel.cpp @@ -366,6 +366,8 @@ EnvironmentWidget::EnvironmentWidget(QWidget *parent, QWidget *additionalDetails connect(m_model, SIGNAL(renamedVariable(QString)), this, SLOT(renamedVariable(QString))); + connect(m_model, SIGNAL(focusIndex(QModelIndex)), + this, SLOT(focusIndex(QModelIndex))); QVBoxLayout *vbox = new QVBoxLayout(this); vbox->setContentsMargins(0, 0, 0, 0); @@ -449,6 +451,12 @@ void EnvironmentWidget::renamedVariable(const QString &name) m_environmentTreeView->setFocus(); } +void EnvironmentWidget::focusIndex(const QModelIndex &index) +{ + m_environmentTreeView->setCurrentIndex(index); + m_environmentTreeView->setFocus(); +} + void EnvironmentWidget::setBaseEnvironment(const ProjectExplorer::Environment &env) { m_model->setBaseEnvironment(env); diff --git a/src/plugins/projectexplorer/environmenteditmodel.h b/src/plugins/projectexplorer/environmenteditmodel.h index 60eea7bc5183c24ffd1f2f38327b5c9d4d7345e0..485f02360d6f61812558d047193d22d63e33be0d 100644 --- a/src/plugins/projectexplorer/environmenteditmodel.h +++ b/src/plugins/projectexplorer/environmenteditmodel.h @@ -84,6 +84,9 @@ signals: /// and to ensure that the model is in a consistent /// state at each signal emission void renamedVariable(const QString &newName); + /// Hint to the view where it should make sense to focus on next + void focusIndex(const QModelIndex &index); + private: void updateResultEnvironment(); int findInChanges(const QString &name) const; @@ -125,6 +128,7 @@ private slots: void invalidateCurrentIndex(); void updateSummaryText(); void renamedVariable(const QString &name); + void focusIndex(const QModelIndex &index); private: EnvironmentModel *m_model;