Sessions: select created session

This was a regression after refactoring the session dialog.

Change-Id: I891b037d512a70a591f32e0ca5e0f801799ce424
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tim Jenssen
2016-09-27 12:40:46 +02:00
parent 3e5966cff0
commit de41e85c3b
4 changed files with 12 additions and 2 deletions

View File

@@ -228,6 +228,7 @@ void SessionModel::runNewSessionDialog(const QString &suggestedName, std::functi
if (newSessionInputDialog.isSwitchToRequested()) if (newSessionInputDialog.isSwitchToRequested())
switchToSession(newSession); switchToSession(newSession);
emit sessionCreated(newSession);
} }
} }

View File

@@ -55,6 +55,7 @@ public:
signals: signals:
void sessionSwitched(); void sessionSwitched();
void sessionCreated(const QString &sessionName);
public slots: public slots:
void resetSessions(); void resetSessions();

View File

@@ -75,11 +75,13 @@ SessionView::SessionView(QWidget *parent)
(const QModelIndex &index) { (const QModelIndex &index) {
emit selected(m_sessionModel.sessionAt(index.row())); emit selected(m_sessionModel.sessionAt(index.row()));
}); });
connect(&m_sessionModel, &SessionModel::sessionSwitched, connect(&m_sessionModel, &SessionModel::sessionSwitched,
this, &SessionView::sessionSwitched); this, &SessionView::sessionSwitched);
connect(&m_sessionModel, &SessionModel::modelReset, connect(&m_sessionModel, &SessionModel::modelReset,
this, &SessionView::selectActiveSession); this, &SessionView::selectActiveSession);
connect(&m_sessionModel, &SessionModel::sessionCreated,
this, &SessionView::selectSession);
} }
void SessionView::createNewSession() void SessionView::createNewSession()
@@ -119,7 +121,12 @@ SessionModel *SessionView::sessionModel()
void SessionView::selectActiveSession() void SessionView::selectActiveSession()
{ {
int row = m_sessionModel.indexOfSession(SessionManager::activeSession()); selectSession(SessionManager::activeSession());
}
void SessionView::selectSession(const QString &sessionName)
{
int row = m_sessionModel.indexOfSession(sessionName);
selectionModel()->setCurrentIndex(model()->index(row, 0), selectionModel()->setCurrentIndex(model()->index(row, 0),
QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
} }

View File

@@ -48,6 +48,7 @@ public:
QString currentSession(); QString currentSession();
SessionModel* sessionModel(); SessionModel* sessionModel();
void selectActiveSession(); void selectActiveSession();
void selectSession(const QString &sessionName);
protected: protected:
void showEvent(QShowEvent* event) override; void showEvent(QShowEvent* event) override;