on 428ff55 help sign in
unity8/plugins/Unity/categoryresults.cpp
99 lines 2.9 kB history raw
1/*
2 * Copyright (C) 2013 Canonical, Ltd.
3 *
4 * Authors:
5 * Michal Hruby <michal.hruby@canonical.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 3.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
20// self
21#include "categoryresults.h"
22#include "iconutils.h"
24// TODO: use something from libunity once it's public
25enum ResultsColumn {
26 URI,
27 ICON_HINT,
28 CATEGORY,
29 RESULT_TYPE,
30 MIMETYPE,
31 TITLE,
32 COMMENT,
33 DND_URI,
34 METADATA
35};
37CategoryResults::CategoryResults(QObject* parent)
38 : DeeListModel(parent)
39 , m_categoryIndex(-1)
41 m_roles[CategoryResults::RoleUri] = "uri";
42 m_roles[CategoryResults::RoleIconHint] = "icon";
43 m_roles[CategoryResults::RoleCategory] = "category";
44 m_roles[CategoryResults::RoleMimetype] = "mimetype";
45 m_roles[CategoryResults::RoleTitle] = "title";
46 m_roles[CategoryResults::RoleComment] = "comment";
47 m_roles[CategoryResults::RoleDndUri] = "dndUri";
48 m_roles[CategoryResults::RoleMetadata] = "metadata";
51int CategoryResults::categoryIndex() const
53 return m_categoryIndex;
56void CategoryResults::setCategoryIndex(int index)
58 if (m_categoryIndex != index) {
59 m_categoryIndex = index;
60 Q_EMIT categoryIndexChanged(m_categoryIndex);
61 }
64QHash<int, QByteArray>
65CategoryResults::roleNames() const
67 return m_roles;
70QVariant
71CategoryResults::data(const QModelIndex& index, int role) const
73 if (!index.isValid()) {
74 return QVariant();
75 }
77 switch (role) {
78 case RoleUri:
79 return DeeListModel::data(index, ResultsColumn::URI);
80 case RoleIconHint: {
81 QString giconString(DeeListModel::data(index, ResultsColumn::ICON_HINT).toString());
82 return QVariant::fromValue(gIconToDeclarativeImageProviderString(giconString));
83 }
84 case RoleCategory:
85 return DeeListModel::data(index, ResultsColumn::CATEGORY);
86 case RoleMimetype:
87 return DeeListModel::data(index, ResultsColumn::MIMETYPE);
88 case RoleTitle:
89 return DeeListModel::data(index, ResultsColumn::TITLE);
90 case RoleComment:
91 return DeeListModel::data(index, ResultsColumn::COMMENT);
92 case RoleDndUri:
93 return DeeListModel::data(index, ResultsColumn::DND_URI);
94 case RoleMetadata:
95 return DeeListModel::data(index, ResultsColumn::METADATA);
96 default:
97 return QVariant();
98 }