1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
/*
SPDX-FileCopyrightText: 2020 Friedrich W. H. Kossebau <kossebau@kde.org>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include "sessionlistmodel.h"
// KDevelopSessionsWatch
#include <kdevelopsessionswatch.h>
SessionListModel::SessionListModel(QObject *parent)
: QAbstractListModel(parent)
{
KDevelopSessionsWatch::registerObserver(this);
}
SessionListModel::~SessionListModel()
{
KDevelopSessionsWatch::unregisterObserver(this);
}
QHash<int, QByteArray> SessionListModel::roleNames() const
{
auto roleNames = QAbstractListModel::roleNames();
roleNames.insert(SessionIdRole, QByteArrayLiteral("sessionId"));
return roleNames;
}
int SessionListModel::rowCount(const QModelIndex &index) const
{
if (!index.isValid()) {
return m_sessionDataList.size();
}
return 0;
}
QVariant SessionListModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid() || index.row() >= m_sessionDataList.size()) {
return QVariant();
}
const KDevelopSessionData sessionData = m_sessionDataList.at(index.row());
switch (role) {
case Qt::DisplayRole: {
return sessionData.description;
case SessionIdRole:
return sessionData.id;
}
}
return QVariant();
}
void SessionListModel::setSessionDataList(const QVector<KDevelopSessionData>& sessionDataList)
{
beginResetModel();
m_sessionDataList = sessionDataList;
endResetModel();
}
void SessionListModel::openSession(const QString& sessionId)
{
KDevelopSessionsWatch::openSession(sessionId);
}
#include "moc_sessionlistmodel.cpp"
|