File indexing completed on 2024-04-21 05:36:33
0001 /* 0002 * SPDX-FileCopyrightText: 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com> 0003 * SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 #ifndef SDDM_SESSIONMODEL_H 0006 #define SDDM_SESSIONMODEL_H 0007 0008 #include <QAbstractListModel> 0009 #include <QHash> 0010 0011 class SessionModelPrivate; 0012 0013 class SessionModel : public QAbstractListModel 0014 { 0015 Q_OBJECT 0016 Q_DISABLE_COPY(SessionModel) 0017 0018 enum SessionType { 0019 SessionTypeX, 0020 SessionTypeWayland, 0021 }; 0022 0023 public: 0024 enum SessionRole { 0025 NameRole = Qt::DisplayRole, 0026 FileRole = Qt::UserRole, 0027 ExecRole, 0028 CommentRole, 0029 }; 0030 0031 explicit SessionModel(QObject *parent = nullptr); 0032 ~SessionModel() Q_DECL_OVERRIDE; 0033 0034 void loadDir(const QString &path, SessionType type); 0035 0036 QHash<int, QByteArray> roleNames() const override; 0037 0038 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0039 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0040 0041 int indexOf(const QString &sessionId) const; 0042 0043 private: 0044 SessionModelPrivate *d{nullptr}; 0045 }; 0046 0047 #endif // SDDM_SESSIONMODEL_H