on 07aedbf help sign in
unity8/tests/mocks/Unity/Notifications/MockActionModel.cpp
72 lines 1.9 kB history raw
1/*
2 * Copyright 2014 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) {
28 insertAction("ok_id", "Ok");
29 insertAction("cancel_id", "Cancel");
32ActionModel::~ActionModel() {
35int ActionModel::rowCount(const QModelIndex &index) const {
36 return p->labels.size();
39QVariant ActionModel::data(const QModelIndex &index, int role) const {
40 if (!index.isValid())
41 return QVariant();
43 switch(role) {
44 case RoleActionLabel:
45 return QVariant(p->labels[index.row()]);
47 case RoleActionId:
48 return QVariant(p->ids[index.row()]);
50 default:
51 return QVariant();
52 }
55QHash<int, QByteArray> ActionModel::roleNames() const {
56 QHash<int, QByteArray> roles;
58 roles.insert(RoleActionLabel, "label");
59 roles.insert(RoleActionId, "id");
61 return roles;
64Q_INVOKABLE QVariant ActionModel::data(int row, int role) const
66 return data(index(row, 0), role);
69void ActionModel::insertAction(const QString &id, const QString &label) {
70 p->ids.push_back(id);
71 p->labels.push_back(label);