on bionic help sign in
unity8/tests/mocks/Unity/Notifications/MockActionModel.cpp
74 lines 1.9 kB history raw
1/*
2 * Copyright 2015 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Mirco Mueller <mirco.mueller@canonical.com>
18 */
20#include "MockActionModel.h"
22struct ActionModelPrivate {
23 QList<QString> labels;
24 QList<QString> ids;
25};
27ActionModel::ActionModel(QObject *parent) : QStringListModel(parent), p(new ActionModelPrivate) {
30ActionModel::~ActionModel() {
33int ActionModel::rowCount(const QModelIndex &) const {
34 return p->labels.size();
37QVariant ActionModel::data(const QModelIndex &index, int role) const {
38 if (!index.isValid())
39 return QVariant();
41 switch(role) {
42 case RoleActionLabel:
43 return QVariant(p->labels[index.row()]);
45 case RoleActionId:
46 return QVariant(p->ids[index.row()]);
48 default:
49 return QVariant();
50 }
53QHash<int, QByteArray> ActionModel::roleNames() const {
54 QHash<int, QByteArray> roles;
56 roles.insert(RoleActionLabel, "label");
57 roles.insert(RoleActionId, "id");
59 return roles;
62QVariant ActionModel::data(int row, int role) const
64 return data(index(row, 0), role);
67void ActionModel::append(const QString &id, const QString &label) {
68 p->ids.push_back(id);
69 p->labels.push_back(label);
72int ActionModel::getCount() const {
73 return p->labels.size();