| 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 |