Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/widgets/graphicsview/qgraphicsscenebsptreeindex.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||
8 | static inline int intmaxlog(int n) | - | ||||||||||||||||||||||||
9 | { | - | ||||||||||||||||||||||||
10 | return never executed: (n > 0return (n > 0 ? qMax(qCeil(qLn(qreal(n)) / qLn(qreal(2))), 5) : 0);
never executed: return (n > 0 ? qMax(qCeil(qLn(qreal(n)) / qLn(qreal(2))), 5) : 0); | 0 | ||||||||||||||||||||||||
11 | } | - | ||||||||||||||||||||||||
12 | - | |||||||||||||||||||||||||
13 | - | |||||||||||||||||||||||||
14 | - | |||||||||||||||||||||||||
15 | - | |||||||||||||||||||||||||
16 | QGraphicsSceneBspTreeIndexPrivate::QGraphicsSceneBspTreeIndexPrivate(QGraphicsScene *scene) | - | ||||||||||||||||||||||||
17 | : QGraphicsSceneIndexPrivate(scene), | - | ||||||||||||||||||||||||
18 | bspTreeDepth(0), | - | ||||||||||||||||||||||||
19 | indexTimerId(0), | - | ||||||||||||||||||||||||
20 | restartIndexTimer(false), | - | ||||||||||||||||||||||||
21 | regenerateIndex(true), | - | ||||||||||||||||||||||||
22 | lastItemCount(0), | - | ||||||||||||||||||||||||
23 | purgePending(false), | - | ||||||||||||||||||||||||
24 | sortCacheEnabled(false), | - | ||||||||||||||||||||||||
25 | updatingSortCache(false) | - | ||||||||||||||||||||||||
26 | { | - | ||||||||||||||||||||||||
27 | } never executed: end of block | 0 | ||||||||||||||||||||||||
28 | void QGraphicsSceneBspTreeIndexPrivate::_q_updateIndex() | - | ||||||||||||||||||||||||
29 | { | - | ||||||||||||||||||||||||
30 | QGraphicsSceneBspTreeIndex * const q = q_func(); | - | ||||||||||||||||||||||||
31 | if (!indexTimerId
| 0 | ||||||||||||||||||||||||
32 | return; never executed: return; | 0 | ||||||||||||||||||||||||
33 | - | |||||||||||||||||||||||||
34 | q->killTimer(indexTimerId); | - | ||||||||||||||||||||||||
35 | indexTimerId = 0; | - | ||||||||||||||||||||||||
36 | - | |||||||||||||||||||||||||
37 | purgeRemovedItems(); | - | ||||||||||||||||||||||||
38 | - | |||||||||||||||||||||||||
39 | - | |||||||||||||||||||||||||
40 | for (int i = 0; i < unindexedItems.size()
| 0 | ||||||||||||||||||||||||
41 | if (QGraphicsItem *item = unindexedItems.at(i)
| 0 | ||||||||||||||||||||||||
42 | ((!(!item->d_ptr->itemDiscovered)) ? qt_assert("!item->d_ptr->itemDiscovered",__FILE__,126) : qt_noop()); | - | ||||||||||||||||||||||||
43 | if (!freeItemIndexes.isEmpty()
| 0 | ||||||||||||||||||||||||
44 | int freeIndex = freeItemIndexes.takeFirst(); | - | ||||||||||||||||||||||||
45 | item->d_func()->index = freeIndex; | - | ||||||||||||||||||||||||
46 | indexedItems[freeIndex] = item; | - | ||||||||||||||||||||||||
47 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
48 | item->d_func()->index = indexedItems.size(); | - | ||||||||||||||||||||||||
49 | indexedItems << item; | - | ||||||||||||||||||||||||
50 | } never executed: end of block | 0 | ||||||||||||||||||||||||
51 | } | - | ||||||||||||||||||||||||
52 | } never executed: end of block | 0 | ||||||||||||||||||||||||
53 | - | |||||||||||||||||||||||||
54 | - | |||||||||||||||||||||||||
55 | if (bspTreeDepth == 0
| 0 | ||||||||||||||||||||||||
56 | int oldDepth = intmaxlog(lastItemCount); | - | ||||||||||||||||||||||||
57 | bspTreeDepth = intmaxlog(indexedItems.size()); | - | ||||||||||||||||||||||||
58 | static const int slack = 100; | - | ||||||||||||||||||||||||
59 | if (bsp.leafCount() == 0
| 0 | ||||||||||||||||||||||||
60 | - | |||||||||||||||||||||||||
61 | regenerateIndex = true; | - | ||||||||||||||||||||||||
62 | } never executed: end of block | 0 | ||||||||||||||||||||||||
63 | } never executed: end of block | 0 | ||||||||||||||||||||||||
64 | - | |||||||||||||||||||||||||
65 | - | |||||||||||||||||||||||||
66 | if (regenerateIndex
| 0 | ||||||||||||||||||||||||
67 | regenerateIndex = false; | - | ||||||||||||||||||||||||
68 | bsp.initialize(sceneRect, bspTreeDepth); | - | ||||||||||||||||||||||||
69 | unindexedItems = indexedItems; | - | ||||||||||||||||||||||||
70 | lastItemCount = indexedItems.size(); | - | ||||||||||||||||||||||||
71 | } never executed: end of block | 0 | ||||||||||||||||||||||||
72 | - | |||||||||||||||||||||||||
73 | - | |||||||||||||||||||||||||
74 | for (int i = 0; i < unindexedItems.size()
| 0 | ||||||||||||||||||||||||
75 | if (QGraphicsItem *item = unindexedItems.at(i)
| 0 | ||||||||||||||||||||||||
76 | if (item->d_ptr->itemIsUntransformable()
| 0 | ||||||||||||||||||||||||
77 | untransformableItems << item; | - | ||||||||||||||||||||||||
78 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
79 | } | - | ||||||||||||||||||||||||
80 | if (item->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorClipsChildren
| 0 | ||||||||||||||||||||||||
81 | || item->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorContainsChildren
| 0 | ||||||||||||||||||||||||
82 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
83 | - | |||||||||||||||||||||||||
84 | bsp.insertItem(item, item->d_ptr->sceneEffectiveBoundingRect()); | - | ||||||||||||||||||||||||
85 | } never executed: end of block | 0 | ||||||||||||||||||||||||
86 | } never executed: end of block | 0 | ||||||||||||||||||||||||
87 | unindexedItems.clear(); | - | ||||||||||||||||||||||||
88 | } never executed: end of block | 0 | ||||||||||||||||||||||||
89 | - | |||||||||||||||||||||||||
90 | - | |||||||||||||||||||||||||
91 | - | |||||||||||||||||||||||||
92 | - | |||||||||||||||||||||||||
93 | - | |||||||||||||||||||||||||
94 | - | |||||||||||||||||||||||||
95 | - | |||||||||||||||||||||||||
96 | void QGraphicsSceneBspTreeIndexPrivate::purgeRemovedItems() | - | ||||||||||||||||||||||||
97 | { | - | ||||||||||||||||||||||||
98 | if (!purgePending
| 0 | ||||||||||||||||||||||||
99 | return; never executed: return; | 0 | ||||||||||||||||||||||||
100 | - | |||||||||||||||||||||||||
101 | - | |||||||||||||||||||||||||
102 | bsp.removeItems(removedItems); | - | ||||||||||||||||||||||||
103 | - | |||||||||||||||||||||||||
104 | removedItems.clear(); | - | ||||||||||||||||||||||||
105 | freeItemIndexes.clear(); | - | ||||||||||||||||||||||||
106 | for (int i = 0; i < indexedItems.size()
| 0 | ||||||||||||||||||||||||
107 | if (!indexedItems.at(i)
| 0 | ||||||||||||||||||||||||
108 | freeItemIndexes << i; never executed: freeItemIndexes << i; | 0 | ||||||||||||||||||||||||
109 | } never executed: end of block | 0 | ||||||||||||||||||||||||
110 | purgePending = false; | - | ||||||||||||||||||||||||
111 | } never executed: end of block | 0 | ||||||||||||||||||||||||
112 | - | |||||||||||||||||||||||||
113 | - | |||||||||||||||||||||||||
114 | - | |||||||||||||||||||||||||
115 | - | |||||||||||||||||||||||||
116 | - | |||||||||||||||||||||||||
117 | - | |||||||||||||||||||||||||
118 | void QGraphicsSceneBspTreeIndexPrivate::startIndexTimer(int interval) | - | ||||||||||||||||||||||||
119 | { | - | ||||||||||||||||||||||||
120 | QGraphicsSceneBspTreeIndex * const q = q_func(); | - | ||||||||||||||||||||||||
121 | if (indexTimerId
| 0 | ||||||||||||||||||||||||
122 | restartIndexTimer = true; | - | ||||||||||||||||||||||||
123 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
124 | indexTimerId = q->startTimer(interval); | - | ||||||||||||||||||||||||
125 | } never executed: end of block | 0 | ||||||||||||||||||||||||
126 | } | - | ||||||||||||||||||||||||
127 | - | |||||||||||||||||||||||||
128 | - | |||||||||||||||||||||||||
129 | - | |||||||||||||||||||||||||
130 | - | |||||||||||||||||||||||||
131 | void QGraphicsSceneBspTreeIndexPrivate::resetIndex() | - | ||||||||||||||||||||||||
132 | { | - | ||||||||||||||||||||||||
133 | purgeRemovedItems(); | - | ||||||||||||||||||||||||
134 | for (int i = 0; i < indexedItems.size()
| 0 | ||||||||||||||||||||||||
135 | if (QGraphicsItem *item = indexedItems.at(i)
| 0 | ||||||||||||||||||||||||
136 | item->d_ptr->index = -1; | - | ||||||||||||||||||||||||
137 | ((!(!item->d_ptr->itemDiscovered)) ? qt_assert("!item->d_ptr->itemDiscovered",__FILE__,221) : qt_noop()); | - | ||||||||||||||||||||||||
138 | unindexedItems << item; | - | ||||||||||||||||||||||||
139 | } never executed: end of block | 0 | ||||||||||||||||||||||||
140 | } never executed: end of block | 0 | ||||||||||||||||||||||||
141 | indexedItems.clear(); | - | ||||||||||||||||||||||||
142 | freeItemIndexes.clear(); | - | ||||||||||||||||||||||||
143 | untransformableItems.clear(); | - | ||||||||||||||||||||||||
144 | regenerateIndex = true; | - | ||||||||||||||||||||||||
145 | startIndexTimer(); | - | ||||||||||||||||||||||||
146 | } never executed: end of block | 0 | ||||||||||||||||||||||||
147 | - | |||||||||||||||||||||||||
148 | - | |||||||||||||||||||||||||
149 | - | |||||||||||||||||||||||||
150 | - | |||||||||||||||||||||||||
151 | void QGraphicsSceneBspTreeIndexPrivate::climbTree(QGraphicsItem *item, int *stackingOrder) | - | ||||||||||||||||||||||||
152 | { | - | ||||||||||||||||||||||||
153 | if (!item->d_ptr->children.isEmpty()
| 0 | ||||||||||||||||||||||||
154 | QList<QGraphicsItem *> childList = item->d_ptr->children; | - | ||||||||||||||||||||||||
155 | std::sort(childList.begin(), childList.end(), qt_closestLeaf); | - | ||||||||||||||||||||||||
156 | for (int i = 0; i < childList.size()
| 0 | ||||||||||||||||||||||||
157 | QGraphicsItem *item = childList.at(i); | - | ||||||||||||||||||||||||
158 | if (!(item->flags() & QGraphicsItem::ItemStacksBehindParent)
| 0 | ||||||||||||||||||||||||
159 | climbTree(childList.at(i), stackingOrder); never executed: climbTree(childList.at(i), stackingOrder); | 0 | ||||||||||||||||||||||||
160 | } never executed: end of block | 0 | ||||||||||||||||||||||||
161 | item->d_ptr->globalStackingOrder = (*stackingOrder)++; | - | ||||||||||||||||||||||||
162 | for (int i = 0; i < childList.size()
| 0 | ||||||||||||||||||||||||
163 | QGraphicsItem *item = childList.at(i); | - | ||||||||||||||||||||||||
164 | if (item->flags() & QGraphicsItem::ItemStacksBehindParent
| 0 | ||||||||||||||||||||||||
165 | climbTree(childList.at(i), stackingOrder); never executed: climbTree(childList.at(i), stackingOrder); | 0 | ||||||||||||||||||||||||
166 | } never executed: end of block | 0 | ||||||||||||||||||||||||
167 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
168 | item->d_ptr->globalStackingOrder = (*stackingOrder)++; | - | ||||||||||||||||||||||||
169 | } never executed: end of block | 0 | ||||||||||||||||||||||||
170 | } | - | ||||||||||||||||||||||||
171 | - | |||||||||||||||||||||||||
172 | - | |||||||||||||||||||||||||
173 | - | |||||||||||||||||||||||||
174 | - | |||||||||||||||||||||||||
175 | void QGraphicsSceneBspTreeIndexPrivate::_q_updateSortCache() | - | ||||||||||||||||||||||||
176 | { | - | ||||||||||||||||||||||||
177 | QGraphicsSceneBspTreeIndex * const q = q_func(); | - | ||||||||||||||||||||||||
178 | _q_updateIndex(); | - | ||||||||||||||||||||||||
179 | - | |||||||||||||||||||||||||
180 | if (!sortCacheEnabled
| 0 | ||||||||||||||||||||||||
181 | return; never executed: return; | 0 | ||||||||||||||||||||||||
182 | - | |||||||||||||||||||||||||
183 | updatingSortCache = false; | - | ||||||||||||||||||||||||
184 | int stackingOrder = 0; | - | ||||||||||||||||||||||||
185 | - | |||||||||||||||||||||||||
186 | QList<QGraphicsItem *> topLevels; | - | ||||||||||||||||||||||||
187 | const QList<QGraphicsItem *> items = q->items(); | - | ||||||||||||||||||||||||
188 | for (int i = 0; i < items.size()
| 0 | ||||||||||||||||||||||||
189 | QGraphicsItem *item = items.at(i); | - | ||||||||||||||||||||||||
190 | if (item
| 0 | ||||||||||||||||||||||||
191 | topLevels << item; never executed: topLevels << item; | 0 | ||||||||||||||||||||||||
192 | } never executed: end of block | 0 | ||||||||||||||||||||||||
193 | - | |||||||||||||||||||||||||
194 | std::sort(topLevels.begin(), topLevels.end(), qt_closestLeaf); | - | ||||||||||||||||||||||||
195 | for (int i = 0; i < topLevels.size()
| 0 | ||||||||||||||||||||||||
196 | climbTree(topLevels.at(i), &stackingOrder); never executed: climbTree(topLevels.at(i), &stackingOrder); | 0 | ||||||||||||||||||||||||
197 | } never executed: end of block | 0 | ||||||||||||||||||||||||
198 | - | |||||||||||||||||||||||||
199 | - | |||||||||||||||||||||||||
200 | - | |||||||||||||||||||||||||
201 | - | |||||||||||||||||||||||||
202 | void QGraphicsSceneBspTreeIndexPrivate::invalidateSortCache() | - | ||||||||||||||||||||||||
203 | { | - | ||||||||||||||||||||||||
204 | QGraphicsSceneBspTreeIndex * const q = q_func(); | - | ||||||||||||||||||||||||
205 | if (!sortCacheEnabled
| 0 | ||||||||||||||||||||||||
206 | return; never executed: return; | 0 | ||||||||||||||||||||||||
207 | - | |||||||||||||||||||||||||
208 | updatingSortCache = true; | - | ||||||||||||||||||||||||
209 | QMetaObject::invokeMethod(q, "_q_updateSortCache", Qt::QueuedConnection); | - | ||||||||||||||||||||||||
210 | } never executed: end of block | 0 | ||||||||||||||||||||||||
211 | - | |||||||||||||||||||||||||
212 | void QGraphicsSceneBspTreeIndexPrivate::addItem(QGraphicsItem *item, bool recursive) | - | ||||||||||||||||||||||||
213 | { | - | ||||||||||||||||||||||||
214 | if (!item
| 0 | ||||||||||||||||||||||||
215 | return; never executed: return; | 0 | ||||||||||||||||||||||||
216 | - | |||||||||||||||||||||||||
217 | - | |||||||||||||||||||||||||
218 | purgeRemovedItems(); | - | ||||||||||||||||||||||||
219 | - | |||||||||||||||||||||||||
220 | - | |||||||||||||||||||||||||
221 | - | |||||||||||||||||||||||||
222 | item->d_ptr->globalStackingOrder = -1; | - | ||||||||||||||||||||||||
223 | invalidateSortCache(); | - | ||||||||||||||||||||||||
224 | - | |||||||||||||||||||||||||
225 | - | |||||||||||||||||||||||||
226 | - | |||||||||||||||||||||||||
227 | - | |||||||||||||||||||||||||
228 | if (item->d_ptr->index == -1
| 0 | ||||||||||||||||||||||||
229 | ((!(!unindexedItems.contains(item))) ? qt_assert("!unindexedItems.contains(item)",__FILE__,313) : qt_noop()); | - | ||||||||||||||||||||||||
230 | unindexedItems << item; | - | ||||||||||||||||||||||||
231 | startIndexTimer(0); | - | ||||||||||||||||||||||||
232 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
233 | ((!(indexedItems.contains(item))) ? qt_assert("indexedItems.contains(item)",__FILE__,317) : qt_noop()); | - | ||||||||||||||||||||||||
234 | QMessageLogger(__FILE__, 318, __PRETTY_FUNCTION__).warning("QGraphicsSceneBspTreeIndex::addItem: item has already been added to this BSP"); | - | ||||||||||||||||||||||||
235 | } never executed: end of block | 0 | ||||||||||||||||||||||||
236 | - | |||||||||||||||||||||||||
237 | if (recursive
| 0 | ||||||||||||||||||||||||
238 | for (int i = 0; i < item->d_ptr->children.size()
| 0 | ||||||||||||||||||||||||
239 | addItem(item->d_ptr->children.at(i), recursive); never executed: addItem(item->d_ptr->children.at(i), recursive); | 0 | ||||||||||||||||||||||||
240 | } never executed: end of block | 0 | ||||||||||||||||||||||||
241 | } never executed: end of block | 0 | ||||||||||||||||||||||||
242 | - | |||||||||||||||||||||||||
243 | void QGraphicsSceneBspTreeIndexPrivate::removeItem(QGraphicsItem *item, bool recursive, | - | ||||||||||||||||||||||||
244 | bool moveToUnindexedItems) | - | ||||||||||||||||||||||||
245 | { | - | ||||||||||||||||||||||||
246 | if (!item
| 0 | ||||||||||||||||||||||||
247 | return; never executed: return; | 0 | ||||||||||||||||||||||||
248 | - | |||||||||||||||||||||||||
249 | if (item->d_ptr->index != -1
| 0 | ||||||||||||||||||||||||
250 | ((!(item->d_ptr->index < indexedItems.size())) ? qt_assert("item->d_ptr->index < indexedItems.size()",__FILE__,334) : qt_noop()); | - | ||||||||||||||||||||||||
251 | ((!(indexedItems.at(item->d_ptr->index) == item)) ? qt_assert("indexedItems.at(item->d_ptr->index) == item",__FILE__,335) : qt_noop()); | - | ||||||||||||||||||||||||
252 | ((!(!item->d_ptr->itemDiscovered)) ? qt_assert("!item->d_ptr->itemDiscovered",__FILE__,336) : qt_noop()); | - | ||||||||||||||||||||||||
253 | freeItemIndexes << item->d_ptr->index; | - | ||||||||||||||||||||||||
254 | indexedItems[item->d_ptr->index] = 0; | - | ||||||||||||||||||||||||
255 | item->d_ptr->index = -1; | - | ||||||||||||||||||||||||
256 | - | |||||||||||||||||||||||||
257 | if (item->d_ptr->itemIsUntransformable()
| 0 | ||||||||||||||||||||||||
258 | untransformableItems.removeOne(item); | - | ||||||||||||||||||||||||
259 | } never executed: else if (item->d_ptr->inDestructorend of block
| 0 | ||||||||||||||||||||||||
260 | - | |||||||||||||||||||||||||
261 | purgePending = true; | - | ||||||||||||||||||||||||
262 | removedItems << item; | - | ||||||||||||||||||||||||
263 | } never executed: else if (!(item->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorClipsChildrenend of block
| 0 | ||||||||||||||||||||||||
264 | || item->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorContainsChildren
| 0 | ||||||||||||||||||||||||
265 | bsp.removeItem(item, item->d_ptr->sceneEffectiveBoundingRect()); | - | ||||||||||||||||||||||||
266 | } never executed: end of block | 0 | ||||||||||||||||||||||||
267 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
268 | unindexedItems.removeOne(item); | - | ||||||||||||||||||||||||
269 | } never executed: end of block | 0 | ||||||||||||||||||||||||
270 | invalidateSortCache(); | - | ||||||||||||||||||||||||
271 | - | |||||||||||||||||||||||||
272 | ((!(item->d_ptr->index == -1)) ? qt_assert("item->d_ptr->index == -1",__FILE__,356) : qt_noop()); | - | ||||||||||||||||||||||||
273 | ((!(!indexedItems.contains(item))) ? qt_assert("!indexedItems.contains(item)",__FILE__,357) : qt_noop()); | - | ||||||||||||||||||||||||
274 | ((!(!unindexedItems.contains(item))) ? qt_assert("!unindexedItems.contains(item)",__FILE__,358) : qt_noop()); | - | ||||||||||||||||||||||||
275 | ((!(!untransformableItems.contains(item))) ? qt_assert("!untransformableItems.contains(item)",__FILE__,359) : qt_noop()); | - | ||||||||||||||||||||||||
276 | - | |||||||||||||||||||||||||
277 | if (moveToUnindexedItems
| 0 | ||||||||||||||||||||||||
278 | addItem(item); never executed: addItem(item); | 0 | ||||||||||||||||||||||||
279 | - | |||||||||||||||||||||||||
280 | if (recursive
| 0 | ||||||||||||||||||||||||
281 | for (int i = 0; i < item->d_ptr->children.size()
| 0 | ||||||||||||||||||||||||
282 | removeItem(item->d_ptr->children.at(i), recursive, moveToUnindexedItems); never executed: removeItem(item->d_ptr->children.at(i), recursive, moveToUnindexedItems); | 0 | ||||||||||||||||||||||||
283 | } never executed: end of block | 0 | ||||||||||||||||||||||||
284 | } never executed: end of block | 0 | ||||||||||||||||||||||||
285 | - | |||||||||||||||||||||||||
286 | QList<QGraphicsItem *> QGraphicsSceneBspTreeIndexPrivate::estimateItems(const QRectF &rect, Qt::SortOrder order, | - | ||||||||||||||||||||||||
287 | bool onlyTopLevelItems) | - | ||||||||||||||||||||||||
288 | { | - | ||||||||||||||||||||||||
289 | QGraphicsSceneBspTreeIndex * const q = q_func(); | - | ||||||||||||||||||||||||
290 | if (onlyTopLevelItems
| 0 | ||||||||||||||||||||||||
291 | return never executed: q->QGraphicsSceneIndex::estimateTopLevelItems(rect, order);return q->QGraphicsSceneIndex::estimateTopLevelItems(rect, order); never executed: return q->QGraphicsSceneIndex::estimateTopLevelItems(rect, order); | 0 | ||||||||||||||||||||||||
292 | - | |||||||||||||||||||||||||
293 | purgeRemovedItems(); | - | ||||||||||||||||||||||||
294 | _q_updateSortCache(); | - | ||||||||||||||||||||||||
295 | ((!(unindexedItems.isEmpty())) ? qt_assert("unindexedItems.isEmpty()",__FILE__,379) : qt_noop()); | - | ||||||||||||||||||||||||
296 | - | |||||||||||||||||||||||||
297 | QList<QGraphicsItem *> rectItems = bsp.items(rect, onlyTopLevelItems); | - | ||||||||||||||||||||||||
298 | if (onlyTopLevelItems
| 0 | ||||||||||||||||||||||||
299 | for (int i = 0; i < untransformableItems.size()
| 0 | ||||||||||||||||||||||||
300 | QGraphicsItem *item = untransformableItems.at(i); | - | ||||||||||||||||||||||||
301 | if (!item->d_ptr->parent
| 0 | ||||||||||||||||||||||||
302 | rectItems << item; | - | ||||||||||||||||||||||||
303 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
304 | item = item->topLevelItem(); | - | ||||||||||||||||||||||||
305 | if (!rectItems.contains(item)
| 0 | ||||||||||||||||||||||||
306 | rectItems << item; never executed: rectItems << item; | 0 | ||||||||||||||||||||||||
307 | } never executed: end of block | 0 | ||||||||||||||||||||||||
308 | } | - | ||||||||||||||||||||||||
309 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
310 | rectItems += untransformableItems; | - | ||||||||||||||||||||||||
311 | } never executed: end of block | 0 | ||||||||||||||||||||||||
312 | - | |||||||||||||||||||||||||
313 | sortItems(&rectItems, order, sortCacheEnabled, onlyTopLevelItems); | - | ||||||||||||||||||||||||
314 | return never executed: rectItems;return rectItems; never executed: return rectItems; | 0 | ||||||||||||||||||||||||
315 | } | - | ||||||||||||||||||||||||
316 | - | |||||||||||||||||||||||||
317 | - | |||||||||||||||||||||||||
318 | - | |||||||||||||||||||||||||
319 | - | |||||||||||||||||||||||||
320 | - | |||||||||||||||||||||||||
321 | - | |||||||||||||||||||||||||
322 | void QGraphicsSceneBspTreeIndexPrivate::sortItems(QList<QGraphicsItem *> *itemList, Qt::SortOrder order, | - | ||||||||||||||||||||||||
323 | bool sortCacheEnabled, bool onlyTopLevelItems) | - | ||||||||||||||||||||||||
324 | { | - | ||||||||||||||||||||||||
325 | if (order == Qt::SortOrder(-1)
| 0 | ||||||||||||||||||||||||
326 | return; never executed: return; | 0 | ||||||||||||||||||||||||
327 | - | |||||||||||||||||||||||||
328 | if (onlyTopLevelItems
| 0 | ||||||||||||||||||||||||
329 | if (order == Qt::DescendingOrder
| 0 | ||||||||||||||||||||||||
330 | std::sort(itemList->begin(), itemList->end(), qt_closestLeaf); never executed: std::sort(itemList->begin(), itemList->end(), qt_closestLeaf); | 0 | ||||||||||||||||||||||||
331 | else if (order == Qt::AscendingOrder
| 0 | ||||||||||||||||||||||||
332 | std::sort(itemList->begin(), itemList->end(), qt_notclosestLeaf); never executed: std::sort(itemList->begin(), itemList->end(), qt_notclosestLeaf); | 0 | ||||||||||||||||||||||||
333 | return; never executed: return; | 0 | ||||||||||||||||||||||||
334 | } | - | ||||||||||||||||||||||||
335 | - | |||||||||||||||||||||||||
336 | if (sortCacheEnabled
| 0 | ||||||||||||||||||||||||
337 | if (order == Qt::DescendingOrder
| 0 | ||||||||||||||||||||||||
338 | std::sort(itemList->begin(), itemList->end(), closestItemFirst_withCache); | - | ||||||||||||||||||||||||
339 | } never executed: else if (order == Qt::AscendingOrderend of block
| 0 | ||||||||||||||||||||||||
340 | std::sort(itemList->begin(), itemList->end(), closestItemLast_withCache); | - | ||||||||||||||||||||||||
341 | } never executed: end of block | 0 | ||||||||||||||||||||||||
342 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
343 | if (order == Qt::DescendingOrder
| 0 | ||||||||||||||||||||||||
344 | std::sort(itemList->begin(), itemList->end(), qt_closestItemFirst); | - | ||||||||||||||||||||||||
345 | } never executed: else if (order == Qt::AscendingOrderend of block
| 0 | ||||||||||||||||||||||||
346 | std::sort(itemList->begin(), itemList->end(), qt_closestItemLast); | - | ||||||||||||||||||||||||
347 | } never executed: end of block | 0 | ||||||||||||||||||||||||
348 | } never executed: end of block | 0 | ||||||||||||||||||||||||
349 | } | - | ||||||||||||||||||||||||
350 | - | |||||||||||||||||||||||||
351 | - | |||||||||||||||||||||||||
352 | - | |||||||||||||||||||||||||
353 | - | |||||||||||||||||||||||||
354 | QGraphicsSceneBspTreeIndex::QGraphicsSceneBspTreeIndex(QGraphicsScene *scene) | - | ||||||||||||||||||||||||
355 | : QGraphicsSceneIndex(*new QGraphicsSceneBspTreeIndexPrivate(scene), scene) | - | ||||||||||||||||||||||||
356 | { | - | ||||||||||||||||||||||||
357 | - | |||||||||||||||||||||||||
358 | } never executed: end of block | 0 | ||||||||||||||||||||||||
359 | - | |||||||||||||||||||||||||
360 | QGraphicsSceneBspTreeIndex::~QGraphicsSceneBspTreeIndex() | - | ||||||||||||||||||||||||
361 | { | - | ||||||||||||||||||||||||
362 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
363 | for (int i = 0; i < d->indexedItems.size()
| 0 | ||||||||||||||||||||||||
364 | - | |||||||||||||||||||||||||
365 | if (QGraphicsItem *item = d->indexedItems.at(i)
| 0 | ||||||||||||||||||||||||
366 | ((!(!item->d_ptr->itemDiscovered)) ? qt_assert("!item->d_ptr->itemDiscovered",__FILE__,450) : qt_noop()); | - | ||||||||||||||||||||||||
367 | item->d_ptr->index = -1; | - | ||||||||||||||||||||||||
368 | } never executed: end of block | 0 | ||||||||||||||||||||||||
369 | } never executed: end of block | 0 | ||||||||||||||||||||||||
370 | } never executed: end of block | 0 | ||||||||||||||||||||||||
371 | - | |||||||||||||||||||||||||
372 | - | |||||||||||||||||||||||||
373 | - | |||||||||||||||||||||||||
374 | - | |||||||||||||||||||||||||
375 | - | |||||||||||||||||||||||||
376 | void QGraphicsSceneBspTreeIndex::clear() | - | ||||||||||||||||||||||||
377 | { | - | ||||||||||||||||||||||||
378 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
379 | d->bsp.clear(); | - | ||||||||||||||||||||||||
380 | d->lastItemCount = 0; | - | ||||||||||||||||||||||||
381 | d->freeItemIndexes.clear(); | - | ||||||||||||||||||||||||
382 | for (int i = 0; i < d->indexedItems.size()
| 0 | ||||||||||||||||||||||||
383 | - | |||||||||||||||||||||||||
384 | if (QGraphicsItem *item = d->indexedItems.at(i)
| 0 | ||||||||||||||||||||||||
385 | ((!(!item->d_ptr->itemDiscovered)) ? qt_assert("!item->d_ptr->itemDiscovered",__FILE__,469) : qt_noop()); | - | ||||||||||||||||||||||||
386 | item->d_ptr->index = -1; | - | ||||||||||||||||||||||||
387 | } never executed: end of block | 0 | ||||||||||||||||||||||||
388 | } never executed: end of block | 0 | ||||||||||||||||||||||||
389 | d->indexedItems.clear(); | - | ||||||||||||||||||||||||
390 | d->unindexedItems.clear(); | - | ||||||||||||||||||||||||
391 | d->untransformableItems.clear(); | - | ||||||||||||||||||||||||
392 | d->regenerateIndex = true; | - | ||||||||||||||||||||||||
393 | } never executed: end of block | 0 | ||||||||||||||||||||||||
394 | - | |||||||||||||||||||||||||
395 | - | |||||||||||||||||||||||||
396 | - | |||||||||||||||||||||||||
397 | - | |||||||||||||||||||||||||
398 | void QGraphicsSceneBspTreeIndex::addItem(QGraphicsItem *item) | - | ||||||||||||||||||||||||
399 | { | - | ||||||||||||||||||||||||
400 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
401 | d->addItem(item); | - | ||||||||||||||||||||||||
402 | } never executed: end of block | 0 | ||||||||||||||||||||||||
403 | - | |||||||||||||||||||||||||
404 | - | |||||||||||||||||||||||||
405 | - | |||||||||||||||||||||||||
406 | - | |||||||||||||||||||||||||
407 | void QGraphicsSceneBspTreeIndex::removeItem(QGraphicsItem *item) | - | ||||||||||||||||||||||||
408 | { | - | ||||||||||||||||||||||||
409 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
410 | d->removeItem(item); | - | ||||||||||||||||||||||||
411 | } never executed: end of block | 0 | ||||||||||||||||||||||||
412 | - | |||||||||||||||||||||||||
413 | - | |||||||||||||||||||||||||
414 | - | |||||||||||||||||||||||||
415 | - | |||||||||||||||||||||||||
416 | - | |||||||||||||||||||||||||
417 | void QGraphicsSceneBspTreeIndex::prepareBoundingRectChange(const QGraphicsItem *item) | - | ||||||||||||||||||||||||
418 | { | - | ||||||||||||||||||||||||
419 | if (!item
| 0 | ||||||||||||||||||||||||
420 | return; never executed: return; | 0 | ||||||||||||||||||||||||
421 | - | |||||||||||||||||||||||||
422 | if (item->d_ptr->index == -1
| 0 | ||||||||||||||||||||||||
423 | || (item->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorClipsChildren
| 0 | ||||||||||||||||||||||||
424 | || item->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorContainsChildren
| 0 | ||||||||||||||||||||||||
425 | return; never executed: return; | 0 | ||||||||||||||||||||||||
426 | } | - | ||||||||||||||||||||||||
427 | - | |||||||||||||||||||||||||
428 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
429 | QGraphicsItem *thatItem = const_cast<QGraphicsItem *>(item); | - | ||||||||||||||||||||||||
430 | d->removeItem(thatItem, false, true); | - | ||||||||||||||||||||||||
431 | for (int i = 0; i < item->d_ptr->children.size()
| 0 | ||||||||||||||||||||||||
432 | prepareBoundingRectChange(item->d_ptr->children.at(i)); never executed: prepareBoundingRectChange(item->d_ptr->children.at(i)); | 0 | ||||||||||||||||||||||||
433 | } never executed: end of block | 0 | ||||||||||||||||||||||||
434 | QList<QGraphicsItem *> QGraphicsSceneBspTreeIndex::estimateItems(const QRectF &rect, Qt::SortOrder order) const | - | ||||||||||||||||||||||||
435 | { | - | ||||||||||||||||||||||||
436 | const QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
437 | return never executed: const_cast<QGraphicsSceneBspTreeIndexPrivate*>(d)->estimateItems(rect, order);return const_cast<QGraphicsSceneBspTreeIndexPrivate*>(d)->estimateItems(rect, order); never executed: return const_cast<QGraphicsSceneBspTreeIndexPrivate*>(d)->estimateItems(rect, order); | 0 | ||||||||||||||||||||||||
438 | } | - | ||||||||||||||||||||||||
439 | - | |||||||||||||||||||||||||
440 | QList<QGraphicsItem *> QGraphicsSceneBspTreeIndex::estimateTopLevelItems(const QRectF &rect, Qt::SortOrder order) const | - | ||||||||||||||||||||||||
441 | { | - | ||||||||||||||||||||||||
442 | const QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
443 | return never executed: const_cast<QGraphicsSceneBspTreeIndexPrivate*>(d)->estimateItems(rect, order, true);return const_cast<QGraphicsSceneBspTreeIndexPrivate*>(d)->estimateItems(rect, order, true); never executed: return const_cast<QGraphicsSceneBspTreeIndexPrivate*>(d)->estimateItems(rect, order, true); | 0 | ||||||||||||||||||||||||
444 | } | - | ||||||||||||||||||||||||
445 | - | |||||||||||||||||||||||||
446 | - | |||||||||||||||||||||||||
447 | - | |||||||||||||||||||||||||
448 | - | |||||||||||||||||||||||||
449 | - | |||||||||||||||||||||||||
450 | - | |||||||||||||||||||||||||
451 | QList<QGraphicsItem *> QGraphicsSceneBspTreeIndex::items(Qt::SortOrder order) const | - | ||||||||||||||||||||||||
452 | { | - | ||||||||||||||||||||||||
453 | const QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
454 | const_cast<QGraphicsSceneBspTreeIndexPrivate*>(d)->purgeRemovedItems(); | - | ||||||||||||||||||||||||
455 | QList<QGraphicsItem *> itemList; | - | ||||||||||||||||||||||||
456 | - | |||||||||||||||||||||||||
457 | - | |||||||||||||||||||||||||
458 | - | |||||||||||||||||||||||||
459 | if (d->freeItemIndexes.isEmpty()
| 0 | ||||||||||||||||||||||||
460 | if (d->unindexedItems.isEmpty()
| 0 | ||||||||||||||||||||||||
461 | itemList = d->indexedItems; | - | ||||||||||||||||||||||||
462 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
463 | itemList = d->indexedItems + d->unindexedItems; | - | ||||||||||||||||||||||||
464 | } never executed: end of block | 0 | ||||||||||||||||||||||||
465 | } else { | - | ||||||||||||||||||||||||
466 | - | |||||||||||||||||||||||||
467 | - | |||||||||||||||||||||||||
468 | for (QForeachContainer<typename QtPrivate::remove_reference<decltype(d->indexedItems + d->unindexedItems)>::type> _container_((d->indexedItems + d->unindexedItems)); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for (QGraphicsItem *item = *_container_.i; _container_.control; _container_.control = 0) { | - | ||||||||||||||||||||||||
469 | if (item
| 0 | ||||||||||||||||||||||||
470 | itemList << item; never executed: itemList << item; | 0 | ||||||||||||||||||||||||
471 | } never executed: end of block | 0 | ||||||||||||||||||||||||
472 | } never executed: end of block | 0 | ||||||||||||||||||||||||
473 | d->sortItems(&itemList, order, d->sortCacheEnabled); | - | ||||||||||||||||||||||||
474 | return never executed: itemList;return itemList; never executed: return itemList; | 0 | ||||||||||||||||||||||||
475 | } | - | ||||||||||||||||||||||||
476 | int QGraphicsSceneBspTreeIndex::bspTreeDepth() const | - | ||||||||||||||||||||||||
477 | { | - | ||||||||||||||||||||||||
478 | const QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
479 | return never executed: d->bspTreeDepth;return d->bspTreeDepth; never executed: return d->bspTreeDepth; | 0 | ||||||||||||||||||||||||
480 | } | - | ||||||||||||||||||||||||
481 | - | |||||||||||||||||||||||||
482 | void QGraphicsSceneBspTreeIndex::setBspTreeDepth(int depth) | - | ||||||||||||||||||||||||
483 | { | - | ||||||||||||||||||||||||
484 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
485 | if (d->bspTreeDepth == depth
| 0 | ||||||||||||||||||||||||
486 | return; never executed: return; | 0 | ||||||||||||||||||||||||
487 | d->bspTreeDepth = depth; | - | ||||||||||||||||||||||||
488 | d->resetIndex(); | - | ||||||||||||||||||||||||
489 | } never executed: end of block | 0 | ||||||||||||||||||||||||
490 | - | |||||||||||||||||||||||||
491 | - | |||||||||||||||||||||||||
492 | - | |||||||||||||||||||||||||
493 | - | |||||||||||||||||||||||||
494 | - | |||||||||||||||||||||||||
495 | - | |||||||||||||||||||||||||
496 | - | |||||||||||||||||||||||||
497 | void QGraphicsSceneBspTreeIndex::updateSceneRect(const QRectF &rect) | - | ||||||||||||||||||||||||
498 | { | - | ||||||||||||||||||||||||
499 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
500 | d->sceneRect = rect; | - | ||||||||||||||||||||||||
501 | d->resetIndex(); | - | ||||||||||||||||||||||||
502 | } never executed: end of block | 0 | ||||||||||||||||||||||||
503 | - | |||||||||||||||||||||||||
504 | - | |||||||||||||||||||||||||
505 | - | |||||||||||||||||||||||||
506 | - | |||||||||||||||||||||||||
507 | - | |||||||||||||||||||||||||
508 | - | |||||||||||||||||||||||||
509 | - | |||||||||||||||||||||||||
510 | void QGraphicsSceneBspTreeIndex::itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const void *const value) | - | ||||||||||||||||||||||||
511 | { | - | ||||||||||||||||||||||||
512 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
513 | switch (change) { | - | ||||||||||||||||||||||||
514 | case never executed: QGraphicsItem::ItemFlagsChange:case QGraphicsItem::ItemFlagsChange: never executed: {case QGraphicsItem::ItemFlagsChange: | 0 | ||||||||||||||||||||||||
515 | - | |||||||||||||||||||||||||
516 | QGraphicsItem::GraphicsItemFlags newFlags = *static_cast<const QGraphicsItem::GraphicsItemFlags *>(value); | - | ||||||||||||||||||||||||
517 | bool ignoredTransform = item->d_ptr->flags & QGraphicsItem::ItemIgnoresTransformations; | - | ||||||||||||||||||||||||
518 | bool willIgnoreTransform = newFlags & QGraphicsItem::ItemIgnoresTransformations; | - | ||||||||||||||||||||||||
519 | bool clipsChildren = item->d_ptr->flags & QGraphicsItem::ItemClipsChildrenToShape
| 0 | ||||||||||||||||||||||||
520 | || item->d_ptr->flags & QGraphicsItem::ItemContainsChildrenInShape
| 0 | ||||||||||||||||||||||||
521 | bool willClipChildren = newFlags & QGraphicsItem::ItemClipsChildrenToShape
| 0 | ||||||||||||||||||||||||
522 | || newFlags & QGraphicsItem::ItemContainsChildrenInShape
| 0 | ||||||||||||||||||||||||
523 | if ((
| 0 | ||||||||||||||||||||||||
524 | QGraphicsItem *thatItem = const_cast<QGraphicsItem *>(item); | - | ||||||||||||||||||||||||
525 | - | |||||||||||||||||||||||||
526 | - | |||||||||||||||||||||||||
527 | - | |||||||||||||||||||||||||
528 | - | |||||||||||||||||||||||||
529 | d->removeItem(thatItem, true, true); | - | ||||||||||||||||||||||||
530 | } never executed: end of block | 0 | ||||||||||||||||||||||||
531 | break; never executed: break; | 0 | ||||||||||||||||||||||||
532 | } | - | ||||||||||||||||||||||||
533 | case never executed: QGraphicsItem::ItemZValueChange:case QGraphicsItem::ItemZValueChange: never executed: case QGraphicsItem::ItemZValueChange: | 0 | ||||||||||||||||||||||||
534 | d->invalidateSortCache(); | - | ||||||||||||||||||||||||
535 | break; never executed: break; | 0 | ||||||||||||||||||||||||
536 | case never executed: QGraphicsItem::ItemParentChange:case QGraphicsItem::ItemParentChange: never executed: {case QGraphicsItem::ItemParentChange: | 0 | ||||||||||||||||||||||||
537 | d->invalidateSortCache(); | - | ||||||||||||||||||||||||
538 | - | |||||||||||||||||||||||||
539 | const QGraphicsItem *newParent = static_cast<const QGraphicsItem *>(value); | - | ||||||||||||||||||||||||
540 | bool ignoredTransform = item->d_ptr->itemIsUntransformable(); | - | ||||||||||||||||||||||||
541 | bool willIgnoreTransform = (
| 0 | ||||||||||||||||||||||||
542 | || (newParent
| 0 | ||||||||||||||||||||||||
543 | bool ancestorClippedChildren = item->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorClipsChildren
| 0 | ||||||||||||||||||||||||
544 | || item->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorContainsChildren
| 0 | ||||||||||||||||||||||||
545 | bool ancestorWillClipChildren = newParent
| 0 | ||||||||||||||||||||||||
546 | && ((newParent->d_ptr->flags & QGraphicsItem::ItemClipsChildrenToShape
| 0 | ||||||||||||||||||||||||
547 | || newParent->d_ptr->flags & QGraphicsItem::ItemContainsChildrenInShape
| 0 | ||||||||||||||||||||||||
548 | || (newParent->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorClipsChildren
| 0 | ||||||||||||||||||||||||
549 | || newParent->d_ptr->ancestorFlags & QGraphicsItemPrivate::AncestorContainsChildren
| 0 | ||||||||||||||||||||||||
550 | if ((
| 0 | ||||||||||||||||||||||||
551 | QGraphicsItem *thatItem = const_cast<QGraphicsItem *>(item); | - | ||||||||||||||||||||||||
552 | - | |||||||||||||||||||||||||
553 | - | |||||||||||||||||||||||||
554 | - | |||||||||||||||||||||||||
555 | - | |||||||||||||||||||||||||
556 | d->removeItem(thatItem, true, true); | - | ||||||||||||||||||||||||
557 | } never executed: end of block | 0 | ||||||||||||||||||||||||
558 | break; never executed: break; | 0 | ||||||||||||||||||||||||
559 | } | - | ||||||||||||||||||||||||
560 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
561 | break; never executed: break; | 0 | ||||||||||||||||||||||||
562 | } | - | ||||||||||||||||||||||||
563 | } | - | ||||||||||||||||||||||||
564 | - | |||||||||||||||||||||||||
565 | - | |||||||||||||||||||||||||
566 | - | |||||||||||||||||||||||||
567 | - | |||||||||||||||||||||||||
568 | - | |||||||||||||||||||||||||
569 | - | |||||||||||||||||||||||||
570 | - | |||||||||||||||||||||||||
571 | bool QGraphicsSceneBspTreeIndex::event(QEvent *event) | - | ||||||||||||||||||||||||
572 | { | - | ||||||||||||||||||||||||
573 | QGraphicsSceneBspTreeIndexPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
574 | if (event->type() == QEvent::Timer
| 0 | ||||||||||||||||||||||||
575 | if (d->indexTimerId
| 0 | ||||||||||||||||||||||||
576 | if (d->restartIndexTimer
| 0 | ||||||||||||||||||||||||
577 | d->restartIndexTimer = false; | - | ||||||||||||||||||||||||
578 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
579 | - | |||||||||||||||||||||||||
580 | d->_q_updateIndex(); | - | ||||||||||||||||||||||||
581 | } never executed: end of block | 0 | ||||||||||||||||||||||||
582 | } | - | ||||||||||||||||||||||||
583 | } never executed: end of block | 0 | ||||||||||||||||||||||||
584 | return never executed: QObject::event(event);return QObject::event(event); never executed: return QObject::event(event); | 0 | ||||||||||||||||||||||||
585 | } | - | ||||||||||||||||||||||||
586 | - | |||||||||||||||||||||||||
587 | - | |||||||||||||||||||||||||
588 | - | |||||||||||||||||||||||||
Switch to Source code | Preprocessed file |