Lomiri
Loading...
Searching...
No Matches
quicklistmodel.cpp
1/*
2 * Copyright 2014-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
17#include "quicklistmodel.h"
18
19QuickListModel::QuickListModel(QObject *parent) :
20 QuickListModelInterface(parent)
21{
22
23}
24
25QuickListModel::~QuickListModel()
26{
27
28}
29
30void QuickListModel::appendAction(const QuickListEntry &entry)
31{
32 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
33 m_list.append(entry);
34 endInsertRows();
35}
36
37void QuickListModel::updateAction(const QuickListEntry &entry)
38{
39 for (int i = 0; i < m_list.count(); ++i) {
40 if (m_list.at(i).actionId() == entry.actionId()) {
41 m_list.replace(i, entry);
42 Q_EMIT dataChanged(index(i), index(i));
43 return;
44 }
45 }
46}
47
48QuickListEntry QuickListModel::get(int index) const
49{
50 return m_list.at(index);
51}
52
53int QuickListModel::rowCount(const QModelIndex &index) const
54{
55 Q_UNUSED(index)
56 return m_list.count();
57}
58
59QVariant QuickListModel::data(const QModelIndex &index, int role) const
60{
61 switch (role) {
62 case RoleLabel:
63 return m_list.at(index.row()).text();
64 case RoleIcon:
65 return m_list.at(index.row()).icon();
66 case RoleClickable:
67 return m_list.at(index.row()).clickable();
68 case RoleIsPrivate:
69 return false; // The greeter plugin would just not add any private entries
70 }
71 return QVariant();
72}