Unity 8
 All Classes Functions Properties
quicklistmodel.cpp
1 /*
2  * Copyright 2013 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  * Michael Zanetti <michael.zanetti@canonical.com>
18  */
19 
20 #include "quicklistmodel.h"
21 
22 QuickListModel::QuickListModel(QObject *parent) :
23  QuickListModelInterface(parent)
24 {
25 
26 }
27 
28 QuickListModel::~QuickListModel()
29 {
30 
31 }
32 
33 void QuickListModel::appendAction(const QuickListEntry &entry)
34 {
35  beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
36  m_list.append(entry);
37  endInsertRows();
38 }
39 
40 void QuickListModel::updateAction(const QuickListEntry &entry)
41 {
42  for (int i = 0; i < m_list.count(); ++i) {
43  if (m_list.at(i).actionId() == entry.actionId()) {
44  m_list.replace(i, entry);
45  Q_EMIT dataChanged(index(i), index(i));
46  return;
47  }
48  }
49 }
50 
51 QuickListEntry QuickListModel::get(int index) const
52 {
53  return m_list.at(index);
54 }
55 
56 int QuickListModel::rowCount(const QModelIndex &index) const
57 {
58  Q_UNUSED(index)
59  return m_list.count();
60 }
61 
62 QVariant QuickListModel::data(const QModelIndex &index, int role) const
63 {
64  switch (role) {
65  case RoleLabel:
66  return m_list.at(index.row()).text();
67  case RoleIcon:
68  return m_list.at(index.row()).icon();
69  case RoleClickable:
70  return m_list.at(index.row()).clickable();
71  }
72  return QVariant();
73 }