KActivities 5.109.0
activitiesmodel.h
1/*
2 SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic <ivan.cukic(at)kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#ifndef ACTIVITIES_ACTIVITIESMODEL_H
8#define ACTIVITIES_ACTIVITIESMODEL_H
9
10// Qt
11#include <QAbstractListModel>
12#include <QObject>
13
14// STL
15#include <memory>
16
17// Local
18#include "info.h"
19
20class QModelIndex;
21class QDBusPendingCallWatcher;
22
23namespace KActivities
24{
25class ActivitiesModelPrivate;
26
30class KACTIVITIES_EXPORT ActivitiesModel : public QAbstractListModel
31{
32 Q_OBJECT
33
34 Q_PROPERTY(QVector<Info::State> shownStates READ shownStates WRITE setShownStates NOTIFY shownStatesChanged)
35
36public:
37 explicit ActivitiesModel(QObject *parent = nullptr);
38
42 ActivitiesModel(QVector<Info::State> shownStates, QObject *parent = nullptr);
43 ~ActivitiesModel() override;
44
45 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
46
47 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
48
49 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
50
51 QHash<int, QByteArray> roleNames() const override;
52
53 enum Roles {
54 ActivityId = Qt::UserRole,
55 ActivityName = Qt::UserRole + 1,
56 ActivityDescription = Qt::UserRole + 2,
57 ActivityIconSource = Qt::UserRole + 3,
58 ActivityState = Qt::UserRole + 4,
59 ActivityBackground = Qt::UserRole + 5,
60 ActivityIsCurrent = Qt::UserRole + 6,
61
62 UserRole = Qt::UserRole + 32,
63 };
64
65public Q_SLOTS:
70 void setShownStates(const QVector<Info::State> &shownStates);
71
76 QVector<Info::State> shownStates() const;
77
78Q_SIGNALS:
79 void shownStatesChanged(const QVector<Info::State> &state);
80
81private:
82 friend class ActivitiesModelPrivate;
83 ActivitiesModelPrivate *const d;
84};
85
86} // namespace KActivities
87
88#endif // ACTIVITIES_ACTIVITIESMODEL_H
Data model that shows existing activities.
Definition activitiesmodel.h:31
ActivitiesModel(QVector< Info::State > shownStates, QObject *parent=nullptr)
Constructs the model and sets the shownStates.
QVector< Info::State > shownStates() const
The model can filter the list of activities based on their state.
void setShownStates(const QVector< Info::State > &shownStates)
The model can filter the list of activities based on their state.
Roles
Definition activitiesmodel.h:53
Namespace for everything in libkactivities.
Definition consumer.h:20