From 2c5d6de9b4cdd8fda1a0c9245a389e13d56d638f Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 13 May 2020 11:47:38 +0200 Subject: ProjectExplorer: Ensure that the session model stays sorted Fixes: QTCREATORBUG-23996 Change-Id: I96c8c1b780f5b56cb064146de3de6a4c90f9147a Reviewed-by: Christian Stenger --- src/plugins/projectexplorer/sessionmodel.cpp | 4 ++++ src/plugins/projectexplorer/sessionmodel.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/plugins/projectexplorer/sessionmodel.cpp b/src/plugins/projectexplorer/sessionmodel.cpp index a535294f91..5ba79dbf80 100644 --- a/src/plugins/projectexplorer/sessionmodel.cpp +++ b/src/plugins/projectexplorer/sessionmodel.cpp @@ -192,6 +192,8 @@ void SessionModel::sort(int column, Qt::SortOrder order) return isLess; }; Utils::sort(m_sortedSessions, cmp); + m_currentSortColumn = column; + m_currentSortOrder = order; endResetModel(); } @@ -237,6 +239,7 @@ void SessionModel::deleteSessions(const QStringList &sessions) beginResetModel(); SessionManager::deleteSessions(sessions); m_sortedSessions = SessionManager::sessions(); + sort(m_currentSortColumn, m_currentSortOrder); endResetModel(); } @@ -268,6 +271,7 @@ void SessionModel::runSessionNameInputDialog(SessionNameInputDialog *sessionInpu createSession(newSession); m_sortedSessions = SessionManager::sessions(); endResetModel(); + sort(m_currentSortColumn, m_currentSortOrder); if (sessionInputDialog->isSwitchToRequested()) switchToSession(newSession); diff --git a/src/plugins/projectexplorer/sessionmodel.h b/src/plugins/projectexplorer/sessionmodel.h index a4c09132f8..d95102590c 100644 --- a/src/plugins/projectexplorer/sessionmodel.h +++ b/src/plugins/projectexplorer/sessionmodel.h @@ -81,6 +81,8 @@ private: void runSessionNameInputDialog(ProjectExplorer::Internal::SessionNameInputDialog *sessionInputDialog, std::function createSession); QStringList m_sortedSessions; + int m_currentSortColumn = 0; + Qt::SortOrder m_currentSortOrder = Qt::AscendingOrder; }; } // namespace Internal -- cgit v1.2.1