qabstractproxymodel.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/corelib/itemmodels/qabstractproxymodel.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7void QAbstractProxyModelPrivate::_q_sourceModelDestroyed()-
8{-
9 invalidatePersistentIndexes();-
10 model = QAbstractItemModelPrivate::staticEmptyModel();-
11}-
12-
13-
14-
15-
16-
17QAbstractProxyModel::QAbstractProxyModel(QObject *parent)-
18 :QAbstractItemModel(*new QAbstractProxyModelPrivate, parent)-
19{-
20 setSourceModel(QAbstractItemModelPrivate::staticEmptyModel());-
21}-
22-
23-
24-
25-
26-
27QAbstractProxyModel::QAbstractProxyModel(QAbstractProxyModelPrivate &dd, QObject *parent)-
28 : QAbstractItemModel(dd, parent)-
29{-
30 setSourceModel(QAbstractItemModelPrivate::staticEmptyModel());-
31}-
32-
33-
34-
35-
36QAbstractProxyModel::~QAbstractProxyModel()-
37{-
38-
39}-
40void QAbstractProxyModel::setSourceModel(QAbstractItemModel *sourceModel)-
41{-
42 QAbstractProxyModelPrivate * const d = d_func();-
43 if (sourceModel != d->model) {-
44 if (d->model)-
45 disconnect(d->model, qFlagLocation("2""destroyed()" "\0" __FILE__ ":" "130""136"), this, qFlagLocation("1""_q_sourceModelDestroyed()" "\0" __FILE__ ":" "130""136"));-
46-
47 if (sourceModel) {-
48 d->model = sourceModel;-
49 connect(d->model, qFlagLocation("2""destroyed()" "\0" __FILE__ ":" "134""140"), this, qFlagLocation("1""_q_sourceModelDestroyed()" "\0" __FILE__ ":" "134""140"));-
50 } else {-
51 d->model = QAbstractItemModelPrivate::staticEmptyModel();-
52 }-
53 d->roleNames = d->model->roleNames();-
54 sourceModelChanged(QPrivateSignal());-
55 }-
56}-
57-
58-
59-
60-
61void QAbstractProxyModel::resetInternalData()-
62{-
63 QAbstractProxyModelPrivate * const d = d_func();-
64 d->roleNames = d->model->roleNames();-
65}-
66-
67-
68-
69-
70QAbstractItemModel *QAbstractProxyModel::sourceModel() const-
71{-
72 const QAbstractProxyModelPrivate * const d = d_func();-
73 if (d->model == QAbstractItemModelPrivate::staticEmptyModel())-
74 return 0;-
75 return d->model;-
76}-
77-
78-
79-
80-
81bool QAbstractProxyModel::submit()-
82{-
83 QAbstractProxyModelPrivate * const d = d_func();-
84 return d->model->submit();-
85}-
86-
87-
88-
89-
90void QAbstractProxyModel::revert()-
91{-
92 QAbstractProxyModelPrivate * const d = d_func();-
93 d->model->revert();-
94}-
95QItemSelection QAbstractProxyModel::mapSelectionToSource(const QItemSelection &proxySelection) const-
96{-
97 QModelIndexList proxyIndexes = proxySelection.indexes();-
98 QItemSelection sourceSelection;-
99 for (int i = 0; i < proxyIndexes.size(); ++i) {-
100 const QModelIndex proxyIdx = mapToSource(proxyIndexes.at(i));-
101 if (!proxyIdx.isValid())-
102 continue;-
103 sourceSelection << QItemSelectionRange(proxyIdx);-
104 }-
105 return sourceSelection;-
106}-
107-
108-
109-
110-
111-
112-
113QItemSelection QAbstractProxyModel::mapSelectionFromSource(const QItemSelection &sourceSelection) const-
114{-
115 QModelIndexList sourceIndexes = sourceSelection.indexes();-
116 QItemSelection proxySelection;-
117 for (int i = 0; i < sourceIndexes.size(); ++i) {-
118 const QModelIndex srcIdx = mapFromSource(sourceIndexes.at(i));-
119 if (!srcIdx.isValid())-
120 continue;-
121 proxySelection << QItemSelectionRange(srcIdx);-
122 }-
123 return proxySelection;-
124}-
125-
126-
127-
128-
129QVariant QAbstractProxyModel::data(const QModelIndex &proxyIndex, int role) const-
130{-
131 const QAbstractProxyModelPrivate * const d = d_func();-
132 return d->model->data(mapToSource(proxyIndex), role);-
133}-
134-
135-
136-
137-
138QVariant QAbstractProxyModel::headerData(int section, Qt::Orientation orientation, int role) const-
139{-
140 const QAbstractProxyModelPrivate * const d = d_func();-
141 int sourceSection;-
142 if (orientation == Qt::Horizontal) {-
143 const QModelIndex proxyIndex = index(0, section);-
144 sourceSection = mapToSource(proxyIndex).column();-
145 } else {-
146 const QModelIndex proxyIndex = index(section, 0);-
147 sourceSection = mapToSource(proxyIndex).row();-
148 }-
149 return d->model->headerData(sourceSection, orientation, role);-
150}-
151-
152-
153-
154-
155QMap<int, QVariant> QAbstractProxyModel::itemData(const QModelIndex &proxyIndex) const-
156{-
157 return QAbstractItemModel::itemData(proxyIndex);-
158}-
159-
160-
161-
162-
163Qt::ItemFlags QAbstractProxyModel::flags(const QModelIndex &index) const-
164{-
165 const QAbstractProxyModelPrivate * const d = d_func();-
166 return d->model->flags(mapToSource(index));-
167}-
168-
169-
170-
171-
172bool QAbstractProxyModel::setData(const QModelIndex &index, const QVariant &value, int role)-
173{-
174 QAbstractProxyModelPrivate * const d = d_func();-
175 return d->model->setData(mapToSource(index), value, role);-
176}-
177-
178-
179-
180-
181bool QAbstractProxyModel::setItemData(const QModelIndex &index, const QMap< int, QVariant >& roles)-
182{-
183 return QAbstractItemModel::setItemData(index, roles);-
184}-
185-
186-
187-
188-
189bool QAbstractProxyModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role)-
190{-
191 QAbstractProxyModelPrivate * const d = d_func();-
192 int sourceSection;-
193 if (orientation == Qt::Horizontal) {-
194 const QModelIndex proxyIndex = index(0, section);-
195 sourceSection = mapToSource(proxyIndex).column();-
196 } else {-
197 const QModelIndex proxyIndex = index(section, 0);-
198 sourceSection = mapToSource(proxyIndex).row();-
199 }-
200 return d->model->setHeaderData(sourceSection, orientation, value, role);-
201}-
202-
203-
204-
205-
206QModelIndex QAbstractProxyModel::buddy(const QModelIndex &index) const-
207{-
208 const QAbstractProxyModelPrivate * const d = d_func();-
209 return mapFromSource(d->model->buddy(mapToSource(index)));-
210}-
211-
212-
213-
214-
215bool QAbstractProxyModel::canFetchMore(const QModelIndex &parent) const-
216{-
217 const QAbstractProxyModelPrivate * const d = d_func();-
218 return d->model->canFetchMore(mapToSource(parent));-
219}-
220-
221-
222-
223-
224void QAbstractProxyModel::fetchMore(const QModelIndex &parent)-
225{-
226 QAbstractProxyModelPrivate * const d = d_func();-
227 d->model->fetchMore(mapToSource(parent));-
228}-
229-
230-
231-
232-
233void QAbstractProxyModel::sort(int column, Qt::SortOrder order)-
234{-
235 QAbstractProxyModelPrivate * const d = d_func();-
236 d->model->sort(column, order);-
237}-
238-
239-
240-
241-
242QSize QAbstractProxyModel::span(const QModelIndex &index) const-
243{-
244 const QAbstractProxyModelPrivate * const d = d_func();-
245 return d->model->span(mapToSource(index));-
246}-
247-
248-
249-
250-
251bool QAbstractProxyModel::hasChildren(const QModelIndex &parent) const-
252{-
253 const QAbstractProxyModelPrivate * const d = d_func();-
254 return d->model->hasChildren(mapToSource(parent));-
255}-
256-
257-
258-
259-
260QModelIndex QAbstractProxyModel::sibling(int row, int column, const QModelIndex &idx) const-
261{-
262 return index(row, column, idx.parent());-
263}-
264-
265-
266-
267-
268QMimeData* QAbstractProxyModel::mimeData(const QModelIndexList &indexes) const-
269{-
270 const QAbstractProxyModelPrivate * const d = d_func();-
271 QModelIndexList list;-
272 list.reserve(indexes.count());-
273 for (QForeachContainer<typename QtPrivate::remove_reference<decltype(indexes)>::type> _container_((indexes)); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1)for (const QModelIndex &index = *_container_.i; _container_.control; _container_.control = 0: indexes)-
274 list << mapToSource(index);
never executed: list << mapToSource(index);
0
275 return
never executed: return d->model->mimeData(list);
d->model->mimeData(list);
never executed: return d->model->mimeData(list);
0
276}-
277-
278void QAbstractProxyModelPrivate::mapDropCoordinatesToSource(int row, int column, const QModelIndex &parent,-
279 int *sourceRow, int *sourceColumn, QModelIndex *sourceParent) const-
280{-
281 const QAbstractProxyModel * const q = q_func();-
282 *sourceRow = -1;-
283 *sourceColumn = -1;-
284 if (row == -1 && column == -1) {-
285 *sourceParent = q->mapToSource(parent);-
286 } else if (row == q->rowCount(parent)) {-
287 *sourceParent = q->mapToSource(parent);-
288 *sourceRow = model->rowCount(*sourceParent);-
289 } else {-
290 QModelIndex proxyIndex = q->index(row, column, parent);-
291 QModelIndex sourceIndex = q->mapToSource(proxyIndex);-
292 *sourceRow = sourceIndex.row();-
293 *sourceColumn = sourceIndex.column();-
294 *sourceParent = sourceIndex.parent();-
295 }-
296}-
297-
298-
299-
300-
301-
302bool QAbstractProxyModel::canDropMimeData(const QMimeData *data, Qt::DropAction action,-
303 int row, int column, const QModelIndex &parent) const-
304{-
305 const QAbstractProxyModelPrivate * const d = d_func();-
306 int sourceDestinationRow;-
307 int sourceDestinationColumn;-
308 QModelIndex sourceParent;-
309 d->mapDropCoordinatesToSource(row, column, parent, &sourceDestinationRow, &sourceDestinationColumn, &sourceParent);-
310 return d->model->canDropMimeData(data, action, sourceDestinationRow, sourceDestinationColumn, sourceParent);-
311}-
312-
313-
314-
315-
316-
317bool QAbstractProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action,-
318 int row, int column, const QModelIndex &parent)-
319{-
320 QAbstractProxyModelPrivate * const d = d_func();-
321 int sourceDestinationRow;-
322 int sourceDestinationColumn;-
323 QModelIndex sourceParent;-
324 d->mapDropCoordinatesToSource(row, column, parent, &sourceDestinationRow, &sourceDestinationColumn, &sourceParent);-
325 return d->model->dropMimeData(data, action, sourceDestinationRow, sourceDestinationColumn, sourceParent);-
326}-
327-
328-
329-
330-
331QStringList QAbstractProxyModel::mimeTypes() const-
332{-
333 const QAbstractProxyModelPrivate * const d = d_func();-
334 return d->model->mimeTypes();-
335}-
336-
337-
338-
339-
340Qt::DropActions QAbstractProxyModel::supportedDragActions() const-
341{-
342 const QAbstractProxyModelPrivate * const d = d_func();-
343 return d->model->supportedDragActions();-
344}-
345-
346-
347-
348-
349Qt::DropActions QAbstractProxyModel::supportedDropActions() const-
350{-
351 const QAbstractProxyModelPrivate * const d = d_func();-
352 return d->model->supportedDropActions();-
353}-
354-
355-
356-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9