]> cloud.milkyroute.net Git - dolphin.git/blob - src/kitemviews/kitemmodelbase.cpp
Improved drag and drop support
[dolphin.git] / src / kitemviews / kitemmodelbase.cpp
1 /***************************************************************************
2 * Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
3 * *
4 * Based on the Itemviews NG project from Trolltech Labs: *
5 * http://qt.gitorious.org/qt-labs/itemviews-ng *
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; either version 2 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * This program is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with this program; if not, write to the *
19 * Free Software Foundation, Inc., *
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
21 ***************************************************************************/
22
23 #include "kitemmodelbase.h"
24
25 KItemRange::KItemRange(int index, int count) :
26 index(index),
27 count(count)
28 {
29 }
30
31 bool KItemRange::operator == (const KItemRange& other) const
32 {
33 return index == other.index && count == other.count;
34 }
35
36 KItemModelBase::KItemModelBase(QObject* parent) :
37 QObject(parent),
38 m_groupRole(),
39 m_sortRole()
40 {
41 }
42
43 KItemModelBase::KItemModelBase(const QByteArray& groupRole, const QByteArray& sortRole, QObject* parent) :
44 QObject(parent),
45 m_groupRole(groupRole),
46 m_sortRole(sortRole)
47 {
48 }
49
50 KItemModelBase::~KItemModelBase()
51 {
52 }
53
54 bool KItemModelBase::setData(int index, const QHash<QByteArray, QVariant> &values)
55 {
56 Q_UNUSED(index);
57 Q_UNUSED(values);
58 return false;
59 }
60
61 bool KItemModelBase::supportsGrouping() const
62 {
63 return false;
64 }
65
66 void KItemModelBase::setGroupRole(const QByteArray& role)
67 {
68 if (supportsGrouping() && role != m_groupRole) {
69 const QByteArray previous = m_groupRole;
70 m_groupRole = role;
71 onGroupRoleChanged(role, previous);
72 emit groupRoleChanged(role, previous);
73 }
74 }
75
76 QByteArray KItemModelBase::groupRole() const
77 {
78 return m_groupRole;
79 }
80
81 bool KItemModelBase::supportsSorting() const
82 {
83 return false;
84 }
85
86 void KItemModelBase::setSortRole(const QByteArray& role)
87 {
88 if (supportsSorting() && role != m_sortRole) {
89 const QByteArray previous = m_sortRole;
90 m_sortRole = role;
91 onSortRoleChanged(role, previous);
92 emit sortRoleChanged(role, previous);
93 }
94 }
95
96 QByteArray KItemModelBase::sortRole() const
97 {
98 return m_sortRole;
99 }
100
101 QString KItemModelBase::roleDescription(const QByteArray& role) const
102 {
103 return role;
104 }
105
106 QMimeData* KItemModelBase::createMimeData(const QSet<int>& indexes) const
107 {
108 Q_UNUSED(indexes);
109 return 0;
110 }
111
112 int KItemModelBase::indexForKeyboardSearch(const QString& text, int startFromIndex) const
113 {
114 Q_UNUSED(text);
115 Q_UNUSED(startFromIndex);
116 return -1;
117 }
118
119 bool KItemModelBase::supportsDropping(int index) const
120 {
121 Q_UNUSED(index);
122 return false;
123 }
124
125 void KItemModelBase::onGroupRoleChanged(const QByteArray& current, const QByteArray& previous)
126 {
127 Q_UNUSED(current);
128 Q_UNUSED(previous);
129 }
130
131 void KItemModelBase::onSortRoleChanged(const QByteArray& current, const QByteArray& previous)
132 {
133 Q_UNUSED(current);
134 Q_UNUSED(previous);
135 }
136
137 #include "kitemmodelbase.moc"