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