From fd556c85d09125ac10a10900bce4e48e32841747 Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Fri, 12 Aug 2016 13:41:48 +0200 Subject: [PATCH] Sessions: refactor SessionModel::data no behavior change Change-Id: Ib41af6b6b193dc88c02cdef44e8e46aac70d7dcd Reviewed-by: Eike Ziller Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/sessionmodel.cpp | 43 +++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/src/plugins/projectexplorer/sessionmodel.cpp b/src/plugins/projectexplorer/sessionmodel.cpp index 608a8e649e4..19793c33579 100644 --- a/src/plugins/projectexplorer/sessionmodel.cpp +++ b/src/plugins/projectexplorer/sessionmodel.cpp @@ -66,23 +66,36 @@ QStringList pathsWithTildeHomePath(const QStringList &paths) QVariant SessionModel::data(const QModelIndex &index, int role) const { - if (role == Qt::DisplayRole || role == DefaultSessionRole || - role == LastSessionRole || role == ActiveSessionRole || role == ProjectsPathRole || role == ProjectsDisplayRole) { + QVariant result; + if (index.isValid()) { QString sessionName = SessionManager::sessions().at(index.row()); - if (role == Qt::DisplayRole) - return sessionName; - else if (role == DefaultSessionRole) - return SessionManager::isDefaultSession(sessionName); - else if (role == LastSessionRole) - return SessionManager::lastSession() == sessionName; - else if (role == ActiveSessionRole) - return SessionManager::activeSession() == sessionName; - else if (role == ProjectsPathRole) - return pathsWithTildeHomePath(SessionManager::projectsForSessionName(sessionName)); - else if (role == ProjectsDisplayRole) - return pathsToBaseNames(SessionManager::projectsForSessionName(sessionName)); + + switch (role) { + case Qt::DisplayRole: + switch (index.column()) { + case 0: result = sessionName; + break; + } // switch (section) + break; + case DefaultSessionRole: + result = SessionManager::isDefaultSession(sessionName); + break; + case LastSessionRole: + result = SessionManager::lastSession() == sessionName; + break; + case ActiveSessionRole: + result = SessionManager::activeSession() == sessionName; + break; + case ProjectsPathRole: + result = pathsWithTildeHomePath(SessionManager::projectsForSessionName(sessionName)); + break; + case ProjectsDisplayRole: + result = pathsToBaseNames(SessionManager::projectsForSessionName(sessionName)); + break; + } // switch (role) } - return QVariant(); + + return result; } QHash SessionModel::roleNames() const