diff --git a/components/sessionsprivate/sessionsmodel.cpp b/components/sessionsprivate/sessionsmodel.cpp index 6f711923d..bbec8d479 100644 --- a/components/sessionsprivate/sessionsmodel.cpp +++ b/components/sessionsprivate/sessionsmodel.cpp @@ -230,20 +230,20 @@ QVariant SessionsModel::data(const QModelIndex &index, int role) const } if (index.row() == m_data.count()) { - switch (static_cast(role)) { - case Role::RealName: + switch (role) { + case RealNameRole: return i18n("New Session"); - case Role::IconName: + case IconNameRole: return QStringLiteral("system-switch-user"); - case Role::Name: + case NameRole: return i18n("New Session"); - case Role::DisplayNumber: + case DisplayNumberRole: return 0; // NA - case Role::VtNumber: + case VtNumberRole: return -1; // an invalid VtNumber - which we'll use to indicate it's to start a new session - case Role::Session: + case SessionRole: return 0; // NA - case Role::IsTty: + case IsTtyRole: return false; // NA default: return QVariant(); @@ -252,20 +252,20 @@ QVariant SessionsModel::data(const QModelIndex &index, int role) const const SessionEntry &item = m_data.at(index.row()); - switch (static_cast(role)) { - case Role::RealName: + switch (role) { + case RealNameRole: return item.realName; - case Role::Icon: + case IconRole: return item.icon; - case Role::Name: + case NameRole: return item.name; - case Role::DisplayNumber: + case DisplayNumberRole: return item.displayNumber; - case Role::VtNumber: + case VtNumberRole: return item.vtNumber; - case Role::Session: + case SessionRole: return item.session; - case Role::IsTty: + case IsTtyRole: return item.isTty; default: return QVariant(); @@ -280,14 +280,16 @@ int SessionsModel::rowCount(const QModelIndex &parent) const QHash SessionsModel::roleNames() const { - return { - {static_cast(Role::Name), QByteArrayLiteral("name")}, - {static_cast(Role::RealName), QByteArrayLiteral("realName")}, - {static_cast(Role::Icon), QByteArrayLiteral("icon")}, - {static_cast(Role::IconName), QByteArrayLiteral("iconName")}, - {static_cast(Role::DisplayNumber), QByteArrayLiteral("displayNumber")}, - {static_cast(Role::VtNumber), QByteArrayLiteral("vtNumber")}, - {static_cast(Role::Session), QByteArrayLiteral("session")}, - {static_cast(Role::IsTty), QByteArrayLiteral("isTty")}, - }; + QHash roleNames; + + roleNames[NameRole] = QByteArrayLiteral("name"); + roleNames[RealNameRole] = QByteArrayLiteral("realName"); + roleNames[IconRole] = QByteArrayLiteral("icon"); + roleNames[IconNameRole] = QByteArrayLiteral("iconName"); + roleNames[DisplayNumberRole] = QByteArrayLiteral("displayNumber"); + roleNames[VtNumberRole] = QByteArrayLiteral("vtNumber"); + roleNames[SessionRole] = QByteArrayLiteral("session"); + roleNames[IsTtyRole] = QByteArrayLiteral("isTty"); + + return roleNames; } diff --git a/components/sessionsprivate/sessionsmodel.h b/components/sessionsprivate/sessionsmodel.h index a929cf057..33db330af 100644 --- a/components/sessionsprivate/sessionsmodel.h +++ b/components/sessionsprivate/sessionsmodel.h @@ -50,16 +50,17 @@ public: explicit SessionsModel(QObject *parent = nullptr); ~SessionsModel() override = default; - enum class Role { - RealName = Qt::DisplayRole, - Icon = Qt::DecorationRole, // path to a file - Name = Qt::UserRole + 1, - DisplayNumber, - VtNumber, - Session, - IsTty, - IconName, // name of an icon + enum UserRoles { + RealNameRole = Qt::DisplayRole, + IconRole = Qt::DecorationRole, // path to a file + NameRole = Qt::UserRole + 1, + DisplayNumberRole, + VtNumberRole, + SessionRole, + IsTtyRole, + IconNameRole, // name of an icon }; + Q_ENUM(UserRoles) bool canSwitchUser() const; bool canStartNewSession() const;