| Line | Source Code | Coverage |
|---|
| 1 | | - |
| 2 | | - |
| 3 | QGestureManager::QGestureManager(QObject *parent) | - |
| 4 | : QObject(parent), state(NotGesture), m_lastCustomGestureId(Qt::CustomGesture) | - |
| 5 | { | - |
| 6 | qRegisterMetaType<Qt::GestureState>(); | - |
| 7 | | - |
| 8 | | - |
| 9 | | - |
| 10 | | - |
| 11 | | - |
| 12 | | - |
| 13 | registerGestureRecognizer(new QPanGestureRecognizer); | - |
| 14 | registerGestureRecognizer(new QPinchGestureRecognizer); | - |
| 15 | registerGestureRecognizer(new QSwipeGestureRecognizer); | - |
| 16 | registerGestureRecognizer(new QTapGestureRecognizer); | - |
| 17 | | - |
| 18 | | - |
| 19 | | - |
| 20 | | - |
| 21 | | - |
| 22 | | - |
| 23 | | - |
| 24 | registerGestureRecognizer(new QTapAndHoldGestureRecognizer); | - |
| 25 | | - |
| 26 | } executed: }Execution Count:56 | 56 |
| 27 | | - |
| 28 | QGestureManager::~QGestureManager() | - |
| 29 | { | - |
| 30 | qDeleteAll(m_recognizers.values()); | - |
| 31 | for (QForeachContainer<__typeof__(m_obsoleteGestures.keys())> _container_(m_obsoleteGestures.keys()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGestureRecognizer *recognizer = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 32 | qDeleteAll(m_obsoleteGestures.value(recognizer)); | - |
| 33 | delete recognizer; | - |
| 34 | } executed: }Execution Count:16 | 16 |
| 35 | m_obsoleteGestures.clear(); | - |
| 36 | } executed: }Execution Count:56 | 56 |
| 37 | | - |
| 38 | Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *recognizer) | - |
| 39 | { | - |
| 40 | QGesture *dummy = recognizer->create(0); | - |
| 41 | if (!dummy) { partially evaluated: !dummy| no Evaluation Count:0 | yes Evaluation Count:299 |
| 0-299 |
| 42 | QMessageLogger("kernel/qgesturemanager.cpp", 113, __PRETTY_FUNCTION__).warning("QGestureManager::registerGestureRecognizer: " | - |
| 43 | "the recognizer fails to create a gesture object, skipping registration."); | - |
| 44 | return Qt::GestureType(0); never executed: return Qt::GestureType(0); | 0 |
| 45 | } | - |
| 46 | Qt::GestureType type = dummy->gestureType(); | - |
| 47 | if (type == Qt::CustomGesture) { evaluated: type == Qt::CustomGesture| yes Evaluation Count:17 | yes Evaluation Count:282 |
| 17-282 |
| 48 | | - |
| 49 | ++m_lastCustomGestureId; | - |
| 50 | type = Qt::GestureType(m_lastCustomGestureId); | - |
| 51 | } executed: }Execution Count:17 | 17 |
| 52 | m_recognizers.insertMulti(type, recognizer); | - |
| 53 | delete dummy; | - |
| 54 | return type; executed: return type;Execution Count:299 | 299 |
| 55 | } | - |
| 56 | | - |
| 57 | void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type) | - |
| 58 | { | - |
| 59 | QList<QGestureRecognizer *> list = m_recognizers.values(type); | - |
| 60 | while (QGestureRecognizer *recognizer = m_recognizers.take(type)) { evaluated: QGestureRecognizer *recognizer = m_recognizers.take(type)| yes Evaluation Count:16 | yes Evaluation Count:21 |
| 16-21 |
| 61 | if (!m_obsoleteGestures.contains(recognizer)) { partially evaluated: !m_obsoleteGestures.contains(recognizer)| yes Evaluation Count:16 | no Evaluation Count:0 |
| 0-16 |
| 62 | | - |
| 63 | m_obsoleteGestures.insert(recognizer, QSet<QGesture *>()); | - |
| 64 | } executed: }Execution Count:16 | 16 |
| 65 | } executed: }Execution Count:16 | 16 |
| 66 | for (QForeachContainer<__typeof__(m_gestureToRecognizer.keys())> _container_(m_gestureToRecognizer.keys()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *g = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 67 | QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g); | - |
| 68 | if (list.contains(recognizer)) { evaluated: list.contains(recognizer)| yes Evaluation Count:17 | yes Evaluation Count:47 |
| 17-47 |
| 69 | m_deletedRecognizers.insert(g, recognizer); | - |
| 70 | } executed: }Execution Count:17 | 17 |
| 71 | } executed: }Execution Count:64 | 64 |
| 72 | | - |
| 73 | QMap<ObjectGesture, QList<QGesture *> >::const_iterator iter = m_objectGestures.constBegin(); | - |
| 74 | while (iter != m_objectGestures.constEnd()) { evaluated: iter != m_objectGestures.constEnd()| yes Evaluation Count:96 | yes Evaluation Count:21 |
| 21-96 |
| 75 | ObjectGesture objectGesture = iter.key(); | - |
| 76 | if (objectGesture.gesture == type) { evaluated: objectGesture.gesture == type| yes Evaluation Count:16 | yes Evaluation Count:80 |
| 16-80 |
| 77 | for (QForeachContainer<__typeof__(iter.value())> _container_(iter.value()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *g = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 78 | if (QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g)) { partially evaluated: QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g)| yes Evaluation Count:17 | no Evaluation Count:0 |
| 0-17 |
| 79 | m_gestureToRecognizer.remove(g); | - |
| 80 | m_obsoleteGestures[recognizer].insert(g); | - |
| 81 | } executed: }Execution Count:17 | 17 |
| 82 | } executed: }Execution Count:17 | 17 |
| 83 | } executed: }Execution Count:16 | 16 |
| 84 | ++iter; | - |
| 85 | } executed: }Execution Count:96 | 96 |
| 86 | } executed: }Execution Count:21 | 21 |
| 87 | | - |
| 88 | void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType type) | - |
| 89 | { | - |
| 90 | QMap<ObjectGesture, QList<QGesture *> >::Iterator iter = m_objectGestures.begin(); | - |
| 91 | while (iter != m_objectGestures.end()) { evaluated: iter != m_objectGestures.end()| yes Evaluation Count:12171 | yes Evaluation Count:5516 |
| 5516-12171 |
| 92 | ObjectGesture objectGesture = iter.key(); | - |
| 93 | if (objectGesture.gesture == type && target == objectGesture.object) { evaluated: objectGesture.gesture == type| yes Evaluation Count:11984 | yes Evaluation Count:187 |
evaluated: target == objectGesture.object| yes Evaluation Count:4588 | yes Evaluation Count:7396 |
| 187-11984 |
| 94 | QSet<QGesture *> gestures = iter.value().toSet(); | - |
| 95 | for (QHash<QGestureRecognizer *, QSet<QGesture *> >::iterator | - |
| 96 | it = m_obsoleteGestures.begin(), e = m_obsoleteGestures.end(); it != e; ++it) { evaluated: it != e| yes Evaluation Count:999 | yes Evaluation Count:4588 |
| 999-4588 |
| 97 | it.value() -= gestures; | - |
| 98 | } executed: }Execution Count:999 | 999 |
| 99 | for (QForeachContainer<__typeof__(gestures)> _container_(gestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *g = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 100 | m_deletedRecognizers.remove(g); | - |
| 101 | m_gestureToRecognizer.remove(g); | - |
| 102 | m_maybeGestures.remove(g); | - |
| 103 | m_activeGestures.remove(g); | - |
| 104 | m_gestureOwners.remove(g); | - |
| 105 | m_gestureTargets.remove(g); | - |
| 106 | m_gesturesToDelete.insert(g); | - |
| 107 | } executed: }Execution Count:4589 | 4589 |
| 108 | | - |
| 109 | iter = m_objectGestures.erase(iter); | - |
| 110 | } else { executed: }Execution Count:4588 | 4588 |
| 111 | ++iter; | - |
| 112 | } executed: }Execution Count:7583 | 7583 |
| 113 | } | - |
| 114 | } executed: }Execution Count:5516 | 5516 |
| 115 | | - |
| 116 | | - |
| 117 | QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recognizer, Qt::GestureType type) | - |
| 118 | { | - |
| 119 | | - |
| 120 | | - |
| 121 | | - |
| 122 | if (object->isWidgetType()) { evaluated: object->isWidgetType()| yes Evaluation Count:60487 | yes Evaluation Count:488 |
| 488-60487 |
| 123 | if (static_cast<QWidget *>(object)->d_func()->data.in_destructor) partially evaluated: static_cast<QWidget *>(object)->d_func()->data.in_destructor| no Evaluation Count:0 | yes Evaluation Count:60487 |
| 0-60487 |
| 124 | return 0; never executed: return 0; | 0 |
| 125 | } else if (QGesture *g = qobject_cast<QGesture *>(object)) { executed: }Execution Count:60487 partially evaluated: QGesture *g = qobject_cast<QGesture *>(object)| no Evaluation Count:0 | yes Evaluation Count:488 |
| 0-60487 |
| 126 | return g; never executed: return g; | 0 |
| 127 | | - |
| 128 | } else { | - |
| 129 | qt_noop(); | - |
| 130 | QGraphicsObject *graphicsObject = static_cast<QGraphicsObject *>(object); | - |
| 131 | if (graphicsObject->QGraphicsItem::d_func()->inDestructor) partially evaluated: graphicsObject->QGraphicsItem::d_func()->inDestructor| no Evaluation Count:0 | yes Evaluation Count:488 |
| 0-488 |
| 132 | return 0; never executed: return 0; | 0 |
| 133 | | - |
| 134 | } executed: }Execution Count:488 | 488 |
| 135 | | - |
| 136 | | - |
| 137 | for (QForeachContainer<__typeof__(m_objectGestures.value(QGestureManager::ObjectGesture(object, type)))> _container_(m_objectGestures.value(QGestureManager::ObjectGesture(object, type))); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *state = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 138 | if (m_gestureToRecognizer.value(state) == recognizer) evaluated: m_gestureToRecognizer.value(state) == recognizer| yes Evaluation Count:55741 | yes Evaluation Count:1 |
| 1-55741 |
| 139 | return state; executed: return state;Execution Count:55741 | 55741 |
| 140 | } executed: }Execution Count:1 | 1 |
| 141 | | - |
| 142 | qt_noop(); | - |
| 143 | QGesture *state = recognizer->create(object); | - |
| 144 | if (!state) partially evaluated: !state| no Evaluation Count:0 | yes Evaluation Count:5234 |
| 0-5234 |
| 145 | return 0; never executed: return 0; | 0 |
| 146 | state->setParent(this); | - |
| 147 | if (state->gestureType() == Qt::CustomGesture) { evaluated: state->gestureType() == Qt::CustomGesture| yes Evaluation Count:115 | yes Evaluation Count:5119 |
| 115-5119 |
| 148 | | - |
| 149 | | - |
| 150 | state->d_func()->gestureType = type; | - |
| 151 | | - |
| 152 | | - |
| 153 | | - |
| 154 | } executed: }Execution Count:115 | 115 |
| 155 | m_objectGestures[QGestureManager::ObjectGesture(object, type)].append(state); | - |
| 156 | m_gestureToRecognizer[state] = recognizer; | - |
| 157 | m_gestureOwners[state] = object; | - |
| 158 | | - |
| 159 | return state; executed: return state;Execution Count:5234 | 5234 |
| 160 | } | - |
| 161 | | - |
| 162 | bool QGestureManager::filterEventThroughContexts(const QMultiMap<QObject *, | - |
| 163 | Qt::GestureType> &contexts, | - |
| 164 | QEvent *event) | - |
| 165 | { | - |
| 166 | QSet<QGesture *> triggeredGestures; | - |
| 167 | QSet<QGesture *> finishedGestures; | - |
| 168 | QSet<QGesture *> newMaybeGestures; | - |
| 169 | QSet<QGesture *> notGestures; | - |
| 170 | | - |
| 171 | | - |
| 172 | | - |
| 173 | | - |
| 174 | bool consumeEventHint = false; | - |
| 175 | | - |
| 176 | | - |
| 177 | typedef QMultiMap<QObject *, Qt::GestureType>::const_iterator ContextIterator; | - |
| 178 | ContextIterator contextEnd = contexts.end(); | - |
| 179 | for (ContextIterator context = contexts.begin(); context != contextEnd; ++context) { evaluated: context != contextEnd| yes Evaluation Count:61027 | yes Evaluation Count:60419 |
| 60419-61027 |
| 180 | Qt::GestureType gestureType = context.value(); | - |
| 181 | const QMap<Qt::GestureType, QGestureRecognizer *> &const_recognizers = m_recognizers; | - |
| 182 | QMap<Qt::GestureType, QGestureRecognizer *>::const_iterator | - |
| 183 | typeToRecognizerIterator = const_recognizers.lowerBound(gestureType), | - |
| 184 | typeToRecognizerEnd = const_recognizers.upperBound(gestureType); | - |
| 185 | for (; typeToRecognizerIterator != typeToRecognizerEnd; ++typeToRecognizerIterator) { evaluated: typeToRecognizerIterator != typeToRecognizerEnd| yes Evaluation Count:60975 | yes Evaluation Count:61027 |
| 60975-61027 |
| 186 | QGestureRecognizer *recognizer = typeToRecognizerIterator.value(); | - |
| 187 | QObject *target = context.key(); | - |
| 188 | QGesture *state = getState(target, recognizer, gestureType); | - |
| 189 | if (!state) partially evaluated: !state| no Evaluation Count:0 | yes Evaluation Count:60975 |
| 0-60975 |
| 190 | continue; never executed: continue; | 0 |
| 191 | QGestureRecognizer::Result recognizerResult = recognizer->recognize(state, target, event); | - |
| 192 | QGestureRecognizer::Result recognizerState = recognizerResult & QGestureRecognizer::ResultState_Mask; | - |
| 193 | QGestureRecognizer::Result resultHint = recognizerResult & QGestureRecognizer::ResultHint_Mask; | - |
| 194 | if (recognizerState == QGestureRecognizer::TriggerGesture) { evaluated: recognizerState == QGestureRecognizer::TriggerGesture| yes Evaluation Count:205 | yes Evaluation Count:60770 |
| 205-60770 |
| 195 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 266, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: gesture triggered: " << state; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:205 |
never executed: QMessageLogger("kernel/qgesturemanager.cpp", 266, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: gesture triggered: " << state; | 0-205 |
| 196 | triggeredGestures << state; | - |
| 197 | } else if (recognizerState == QGestureRecognizer::FinishGesture) { evaluated: recognizerState == QGestureRecognizer::FinishGesture| yes Evaluation Count:75 | yes Evaluation Count:60695 |
executed: }Execution Count:205 | 75-60695 |
| 198 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 269, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: gesture finished: " << state; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:75 |
never executed: QMessageLogger("kernel/qgesturemanager.cpp", 269, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: gesture finished: " << state; | 0-75 |
| 199 | finishedGestures << state; | - |
| 200 | } else if (recognizerState == QGestureRecognizer::MayBeGesture) { evaluated: recognizerState == QGestureRecognizer::MayBeGesture| yes Evaluation Count:133 | yes Evaluation Count:60562 |
executed: }Execution Count:75 | 75-60562 |
| 201 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 272, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: maybe gesture: " << state; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:133 |
never executed: QMessageLogger("kernel/qgesturemanager.cpp", 272, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: maybe gesture: " << state; | 0-133 |
| 202 | newMaybeGestures << state; | - |
| 203 | } else if (recognizerState == QGestureRecognizer::CancelGesture) { evaluated: recognizerState == QGestureRecognizer::CancelGesture| yes Evaluation Count:2 | yes Evaluation Count:60560 |
executed: }Execution Count:133 | 2-60560 |
| 204 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 275, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: not gesture: " << state; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:2 |
never executed: QMessageLogger("kernel/qgesturemanager.cpp", 275, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: not gesture: " << state; | 0-2 |
| 205 | notGestures << state; | - |
| 206 | } else if (recognizerState == QGestureRecognizer::Ignore) { partially evaluated: recognizerState == QGestureRecognizer::Ignore| yes Evaluation Count:60560 | no Evaluation Count:0 |
executed: }Execution Count:2 | 0-60560 |
| 207 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 278, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: ignored the event: " << state; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:60560 |
never executed: QMessageLogger("kernel/qgesturemanager.cpp", 278, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: ignored the event: " << state; | 0-60560 |
| 208 | } else { executed: }Execution Count:60560 | 60560 |
| 209 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 280, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: hm, lets assume the recognizer" | 0 |
| 210 | << "ignored the event: " << state; never executed: QMessageLogger("kernel/qgesturemanager.cpp", 280, __PRETTY_FUNCTION__).debug() << "QGestureManager:Recognizer: hm, lets assume the recognizer" << "ignored the event: " << state; | 0 |
| 211 | } | 0 |
| 212 | if (resultHint & QGestureRecognizer::ConsumeEventHint) { evaluated: resultHint & QGestureRecognizer::ConsumeEventHint| yes Evaluation Count:12 | yes Evaluation Count:60963 |
| 12-60963 |
| 213 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 284, __PRETTY_FUNCTION__).debug() << "QGestureManager: we were asked to consume the event: " partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:12 |
| 0-12 |
| 214 | << state; never executed: QMessageLogger("kernel/qgesturemanager.cpp", 284, __PRETTY_FUNCTION__).debug() << "QGestureManager: we were asked to consume the event: " << state; | 0 |
| 215 | consumeEventHint = true; | - |
| 216 | } executed: }Execution Count:12 | 12 |
| 217 | } executed: }Execution Count:60975 | 60975 |
| 218 | } executed: }Execution Count:61027 | 61027 |
| 219 | if (!triggeredGestures.isEmpty() || !finishedGestures.isEmpty() evaluated: !triggeredGestures.isEmpty()| yes Evaluation Count:173 | yes Evaluation Count:60246 |
evaluated: !finishedGestures.isEmpty()| yes Evaluation Count:63 | yes Evaluation Count:60183 |
| 63-60246 |
| 220 | || !newMaybeGestures.isEmpty() || !notGestures.isEmpty()) { evaluated: !newMaybeGestures.isEmpty()| yes Evaluation Count:113 | yes Evaluation Count:60070 |
evaluated: !notGestures.isEmpty()| yes Evaluation Count:2 | yes Evaluation Count:60068 |
| 2-60070 |
| 221 | QSet<QGesture *> startedGestures = triggeredGestures - m_activeGestures; | - |
| 222 | triggeredGestures &= m_activeGestures; | - |
| 223 | | - |
| 224 | | - |
| 225 | QSet<QGesture *> activeToMaybeGestures = m_activeGestures & newMaybeGestures; | - |
| 226 | | - |
| 227 | | - |
| 228 | QSet<QGesture *> maybeToCanceledGestures = m_maybeGestures & notGestures; | - |
| 229 | | - |
| 230 | | - |
| 231 | | - |
| 232 | QSet<QGesture *> canceledGestures = m_activeGestures & notGestures; | - |
| 233 | | - |
| 234 | | - |
| 235 | m_maybeGestures += newMaybeGestures; | - |
| 236 | | - |
| 237 | | - |
| 238 | QSet<QGesture *> notMaybeGestures = (startedGestures | triggeredGestures | - |
| 239 | | finishedGestures | canceledGestures | - |
| 240 | | notGestures); | - |
| 241 | m_maybeGestures -= notMaybeGestures; | - |
| 242 | | - |
| 243 | qt_noop(); | - |
| 244 | qt_noop(); | - |
| 245 | qt_noop(); | - |
| 246 | qt_noop(); | - |
| 247 | qt_noop(); | - |
| 248 | qt_noop(); | - |
| 249 | | - |
| 250 | QSet<QGesture *> notStarted = finishedGestures - m_activeGestures; | - |
| 251 | if (!notStarted.isEmpty()) { evaluated: !notStarted.isEmpty()| yes Evaluation Count:9 | yes Evaluation Count:342 |
| 9-342 |
| 252 | | - |
| 253 | | - |
| 254 | for (QForeachContainer<__typeof__(notStarted)> _container_(notStarted); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 255 | gesture->d_func()->state = Qt::GestureStarted; executed: gesture->d_func()->state = Qt::GestureStarted;Execution Count:9 | 9 |
| 256 | QSet<QGesture *> undeliveredGestures; | - |
| 257 | deliverEvents(notStarted, &undeliveredGestures); | - |
| 258 | finishedGestures -= undeliveredGestures; | - |
| 259 | } executed: }Execution Count:9 | 9 |
| 260 | | - |
| 261 | m_activeGestures += startedGestures; | - |
| 262 | | - |
| 263 | qt_noop(); | - |
| 264 | m_activeGestures -= finishedGestures; | - |
| 265 | m_activeGestures -= activeToMaybeGestures; | - |
| 266 | m_activeGestures -= canceledGestures; | - |
| 267 | | - |
| 268 | | - |
| 269 | for (QForeachContainer<__typeof__(startedGestures)> _container_(startedGestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 270 | gesture->d_func()->state = Qt::GestureStarted; executed: gesture->d_func()->state = Qt::GestureStarted;Execution Count:78 | 78 |
| 271 | for (QForeachContainer<__typeof__(triggeredGestures)> _container_(triggeredGestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 272 | gesture->d_func()->state = Qt::GestureUpdated; executed: gesture->d_func()->state = Qt::GestureUpdated;Execution Count:127 | 127 |
| 273 | for (QForeachContainer<__typeof__(finishedGestures)> _container_(finishedGestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 274 | gesture->d_func()->state = Qt::GestureFinished; executed: gesture->d_func()->state = Qt::GestureFinished;Execution Count:74 | 74 |
| 275 | for (QForeachContainer<__typeof__(canceledGestures)> _container_(canceledGestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 276 | gesture->d_func()->state = Qt::GestureCanceled; never executed: gesture->d_func()->state = Qt::GestureCanceled; | 0 |
| 277 | for (QForeachContainer<__typeof__(activeToMaybeGestures)> _container_(activeToMaybeGestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 278 | gesture->d_func()->state = Qt::GestureFinished; never executed: gesture->d_func()->state = Qt::GestureFinished; | 0 |
| 279 | | - |
| 280 | if (!m_activeGestures.isEmpty() || !m_maybeGestures.isEmpty() || evaluated: !m_activeGestures.isEmpty()| yes Evaluation Count:173 | yes Evaluation Count:178 |
evaluated: !m_maybeGestures.isEmpty()| yes Evaluation Count:113 | yes Evaluation Count:65 |
| 65-178 |
| 281 | !startedGestures.isEmpty() || !triggeredGestures.isEmpty() || partially evaluated: !startedGestures.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:65 |
partially evaluated: !triggeredGestures.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:65 |
| 0-65 |
| 282 | !finishedGestures.isEmpty() || !canceledGestures.isEmpty()) { evaluated: !finishedGestures.isEmpty()| yes Evaluation Count:62 | yes Evaluation Count:3 |
partially evaluated: !canceledGestures.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:3 |
| 0-62 |
| 283 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 354, __PRETTY_FUNCTION__).debug() << "QGestureManager::filterEventThroughContexts:" partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:348 |
| 0-348 |
| 284 | << "\n\tactiveGestures:" << m_activeGestures | 0 |
| 285 | << "\n\tmaybeGestures:" << m_maybeGestures | 0 |
| 286 | << "\n\tstarted:" << startedGestures | 0 |
| 287 | << "\n\ttriggered:" << triggeredGestures | 0 |
| 288 | << "\n\tfinished:" << finishedGestures | 0 |
| 289 | << "\n\tcanceled:" << canceledGestures | 0 |
| 290 | << "\n\tmaybe-canceled:" << maybeToCanceledGestures; never executed: QMessageLogger("kernel/qgesturemanager.cpp", 354, __PRETTY_FUNCTION__).debug() << "QGestureManager::filterEventThroughContexts:" << "\n\tactiveGestures:" << m_activeGestures << "\n\tmaybeGestures:" << m_maybeGestures << "\n\tstarted:" << startedGestures << "\n\ttriggered:" << triggeredGestures << "\n\tfinished:" << finishedGestures << "\n\tcanceled:" << canceledGestures << "\n\tmaybe-canceled:" << maybeToCanceledGestures; | 0 |
| 291 | } executed: }Execution Count:348 | 348 |
| 292 | | - |
| 293 | QSet<QGesture *> undeliveredGestures; | - |
| 294 | deliverEvents(startedGestures+triggeredGestures+finishedGestures+canceledGestures, | - |
| 295 | &undeliveredGestures); | - |
| 296 | | - |
| 297 | for (QForeachContainer<__typeof__(startedGestures)> _container_(startedGestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *g = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 298 | if (undeliveredGestures.contains(g)) evaluated: undeliveredGestures.contains(g)| yes Evaluation Count:8 | yes Evaluation Count:70 |
| 8-70 |
| 299 | continue; executed: continue;Execution Count:8 | 8 |
| 300 | if (g->gestureCancelPolicy() == QGesture::CancelAllInContext) { evaluated: g->gestureCancelPolicy() == QGesture::CancelAllInContext| yes Evaluation Count:3 | yes Evaluation Count:67 |
| 3-67 |
| 301 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 372, __PRETTY_FUNCTION__).debug() << "lets try to cancel some"; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:3 |
never executed: QMessageLogger("kernel/qgesturemanager.cpp", 372, __PRETTY_FUNCTION__).debug() << "lets try to cancel some"; | 0-3 |
| 302 | | - |
| 303 | cancelGesturesForChildren(g); | - |
| 304 | } executed: }Execution Count:3 | 3 |
| 305 | } executed: }Execution Count:70 | 70 |
| 306 | | - |
| 307 | m_activeGestures -= undeliveredGestures; | - |
| 308 | | - |
| 309 | | - |
| 310 | QSet<QGesture *> endedGestures = | - |
| 311 | finishedGestures + canceledGestures + undeliveredGestures + maybeToCanceledGestures; | - |
| 312 | for (QForeachContainer<__typeof__(endedGestures)> _container_(endedGestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 313 | recycle(gesture); | - |
| 314 | m_gestureTargets.remove(gesture); | - |
| 315 | } executed: }Execution Count:84 | 84 |
| 316 | } executed: }Execution Count:351 | 351 |
| 317 | | - |
| 318 | qDeleteAll(m_gesturesToDelete); | - |
| 319 | m_gesturesToDelete.clear(); | - |
| 320 | | - |
| 321 | return consumeEventHint; executed: return consumeEventHint;Execution Count:60419 | 60419 |
| 322 | } | - |
| 323 | | - |
| 324 | | - |
| 325 | void QGestureManager::cancelGesturesForChildren(QGesture *original) | - |
| 326 | { | - |
| 327 | qt_noop(); | - |
| 328 | QWidget *originatingWidget = m_gestureTargets.value(original); | - |
| 329 | qt_noop(); | - |
| 330 | | - |
| 331 | | - |
| 332 | | - |
| 333 | | - |
| 334 | | - |
| 335 | QSet<QGesture*> cancelledGestures; | - |
| 336 | QSet<QGesture*>::Iterator iter = m_activeGestures.begin(); | - |
| 337 | while (iter != m_activeGestures.end()) { evaluated: iter != m_activeGestures.end()| yes Evaluation Count:4 | yes Evaluation Count:3 |
| 3-4 |
| 338 | QWidget *widget = m_gestureTargets.value(*iter); | - |
| 339 | | - |
| 340 | if (widget != originatingWidget && originatingWidget->isAncestorOf(widget)) { evaluated: widget != originatingWidget| yes Evaluation Count:1 | yes Evaluation Count:3 |
partially evaluated: originatingWidget->isAncestorOf(widget)| yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-3 |
| 341 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 412, __PRETTY_FUNCTION__).debug() << " found a gesture to cancel" << (*iter); partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:1 |
never executed: QMessageLogger("kernel/qgesturemanager.cpp", 412, __PRETTY_FUNCTION__).debug() << " found a gesture to cancel" << (*iter); | 0-1 |
| 342 | (*iter)->d_func()->state = Qt::GestureCanceled; | - |
| 343 | cancelledGestures << *iter; | - |
| 344 | iter = m_activeGestures.erase(iter); | - |
| 345 | } else { executed: }Execution Count:1 | 1 |
| 346 | ++iter; | - |
| 347 | } executed: }Execution Count:3 | 3 |
| 348 | } | - |
| 349 | | - |
| 350 | | - |
| 351 | | - |
| 352 | | - |
| 353 | QSet<QGesture *> almostCanceledGestures = cancelledGestures; | - |
| 354 | while (!almostCanceledGestures.isEmpty()) { evaluated: !almostCanceledGestures.isEmpty()| yes Evaluation Count:1 | yes Evaluation Count:3 |
| 1-3 |
| 355 | QWidget *target = 0; | - |
| 356 | QSet<QGesture*> gestures; | - |
| 357 | iter = almostCanceledGestures.begin(); | - |
| 358 | | - |
| 359 | while (iter != almostCanceledGestures.end()) { evaluated: iter != almostCanceledGestures.end()| yes Evaluation Count:1 | yes Evaluation Count:1 |
| 1 |
| 360 | QWidget *widget = m_gestureTargets.value(*iter); | - |
| 361 | if (target == 0) partially evaluated: target == 0| yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-1 |
| 362 | target = widget; executed: target = widget;Execution Count:1 | 1 |
| 363 | if (target == widget) { partially evaluated: target == widget| yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-1 |
| 364 | gestures << *iter; | - |
| 365 | iter = almostCanceledGestures.erase(iter); | - |
| 366 | } else { executed: }Execution Count:1 | 1 |
| 367 | ++iter; | - |
| 368 | } | 0 |
| 369 | } | - |
| 370 | qt_noop(); | - |
| 371 | | - |
| 372 | QSet<QGesture*> undeliveredGestures; | - |
| 373 | deliverEvents(gestures, &undeliveredGestures); | - |
| 374 | } executed: }Execution Count:1 | 1 |
| 375 | | - |
| 376 | for (iter = cancelledGestures.begin(); iter != cancelledGestures.end(); ++iter) evaluated: iter != cancelledGestures.end()| yes Evaluation Count:1 | yes Evaluation Count:3 |
| 1-3 |
| 377 | recycle(*iter); executed: recycle(*iter);Execution Count:1 | 1 |
| 378 | } executed: }Execution Count:3 | 3 |
| 379 | | - |
| 380 | void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture) | - |
| 381 | { | - |
| 382 | QGestureRecognizer *recognizer = m_deletedRecognizers.value(gesture); | - |
| 383 | if(!recognizer) never evaluated: !recognizer | 0 |
| 384 | return; | 0 |
| 385 | m_deletedRecognizers.remove(gesture); | - |
| 386 | if (m_deletedRecognizers.keys(recognizer).isEmpty()) { never evaluated: m_deletedRecognizers.keys(recognizer).isEmpty() | 0 |
| 387 | | - |
| 388 | qDeleteAll(m_obsoleteGestures.value(recognizer)); | - |
| 389 | m_obsoleteGestures.remove(recognizer); | - |
| 390 | delete recognizer; | - |
| 391 | } | 0 |
| 392 | } | 0 |
| 393 | | - |
| 394 | | - |
| 395 | bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event) | - |
| 396 | { | - |
| 397 | QMap<Qt::GestureType, int> types; | - |
| 398 | QMultiMap<QObject *, Qt::GestureType> contexts; | - |
| 399 | QWidget *w = receiver; | - |
| 400 | typedef QMap<Qt::GestureType, Qt::GestureFlags>::const_iterator ContextIterator; | - |
| 401 | if (!w->d_func()->gestureContext.isEmpty()) { evaluated: !w->d_func()->gestureContext.isEmpty()| yes Evaluation Count:45908 | yes Evaluation Count:304808 |
| 45908-304808 |
| 402 | for(ContextIterator it = w->d_func()->gestureContext.constBegin(), | - |
| 403 | e = w->d_func()->gestureContext.constEnd(); it != e; ++it) { evaluated: it != e| yes Evaluation Count:46398 | yes Evaluation Count:45908 |
| 45908-46398 |
| 404 | types.insert(it.key(), 0); | - |
| 405 | contexts.insertMulti(w, it.key()); | - |
| 406 | } executed: }Execution Count:46398 | 46398 |
| 407 | } executed: }Execution Count:45908 | 45908 |
| 408 | | - |
| 409 | w = w->isWindow() ? 0 : w->parentWidget(); evaluated: w->isWindow()| yes Evaluation Count:76407 | yes Evaluation Count:274309 |
| 76407-274309 |
| 410 | while (w) evaluated: w| yes Evaluation Count:522561 | yes Evaluation Count:76407 |
| 76407-522561 |
| 411 | { | - |
| 412 | for (ContextIterator it = w->d_func()->gestureContext.constBegin(), | - |
| 413 | e = w->d_func()->gestureContext.constEnd(); it != e; ++it) { evaluated: it != e| yes Evaluation Count:16381 | yes Evaluation Count:522561 |
| 16381-522561 |
| 414 | if (!(it.value() & Qt::DontStartGestureOnChildren)) { evaluated: !(it.value() & Qt::DontStartGestureOnChildren)| yes Evaluation Count:16358 | yes Evaluation Count:23 |
| 23-16358 |
| 415 | if (!types.contains(it.key())) { evaluated: !types.contains(it.key())| yes Evaluation Count:14141 | yes Evaluation Count:2217 |
| 2217-14141 |
| 416 | types.insert(it.key(), 0); | - |
| 417 | contexts.insertMulti(w, it.key()); | - |
| 418 | } executed: }Execution Count:14141 | 14141 |
| 419 | } executed: }Execution Count:16358 | 16358 |
| 420 | } executed: }Execution Count:16381 | 16381 |
| 421 | if (w->isWindow()) evaluated: w->isWindow()| yes Evaluation Count:274309 | yes Evaluation Count:248252 |
| 248252-274309 |
| 422 | break; executed: break;Execution Count:274309 | 274309 |
| 423 | w = w->parentWidget(); | - |
| 424 | } executed: }Execution Count:248252 | 248252 |
| 425 | return contexts.isEmpty() ? false : filterEventThroughContexts(contexts, event); executed: return contexts.isEmpty() ? false : filterEventThroughContexts(contexts, event);Execution Count:350716 | 350716 |
| 426 | } | - |
| 427 | | - |
| 428 | | - |
| 429 | bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event) | - |
| 430 | { | - |
| 431 | QMap<Qt::GestureType, int> types; | - |
| 432 | QMultiMap<QObject *, Qt::GestureType> contexts; | - |
| 433 | QGraphicsObject *item = receiver; | - |
| 434 | if (!item->QGraphicsItem::d_func()->gestureContext.isEmpty()) { evaluated: !item->QGraphicsItem::d_func()->gestureContext.isEmpty()| yes Evaluation Count:460 | yes Evaluation Count:245 |
| 245-460 |
| 435 | typedef QMap<Qt::GestureType, Qt::GestureFlags>::const_iterator ContextIterator; | - |
| 436 | for(ContextIterator it = item->QGraphicsItem::d_func()->gestureContext.constBegin(), | - |
| 437 | e = item->QGraphicsItem::d_func()->gestureContext.constEnd(); it != e; ++it) { evaluated: it != e| yes Evaluation Count:460 | yes Evaluation Count:460 |
| 460 |
| 438 | types.insert(it.key(), 0); | - |
| 439 | contexts.insertMulti(item, it.key()); | - |
| 440 | } executed: }Execution Count:460 | 460 |
| 441 | } executed: }Execution Count:460 | 460 |
| 442 | | - |
| 443 | item = item->parentObject(); | - |
| 444 | while (item) evaluated: item| yes Evaluation Count:180 | yes Evaluation Count:705 |
| 180-705 |
| 445 | { | - |
| 446 | typedef QMap<Qt::GestureType, Qt::GestureFlags>::const_iterator ContextIterator; | - |
| 447 | for (ContextIterator it = item->QGraphicsItem::d_func()->gestureContext.constBegin(), | - |
| 448 | e = item->QGraphicsItem::d_func()->gestureContext.constEnd(); it != e; ++it) { evaluated: it != e| yes Evaluation Count:85 | yes Evaluation Count:180 |
| 85-180 |
| 449 | if (!(it.value() & Qt::DontStartGestureOnChildren)) { evaluated: !(it.value() & Qt::DontStartGestureOnChildren)| yes Evaluation Count:80 | yes Evaluation Count:5 |
| 5-80 |
| 450 | if (!types.contains(it.key())) { evaluated: !types.contains(it.key())| yes Evaluation Count:28 | yes Evaluation Count:52 |
| 28-52 |
| 451 | types.insert(it.key(), 0); | - |
| 452 | contexts.insertMulti(item, it.key()); | - |
| 453 | } executed: }Execution Count:28 | 28 |
| 454 | } executed: }Execution Count:80 | 80 |
| 455 | } executed: }Execution Count:85 | 85 |
| 456 | item = item->parentObject(); | - |
| 457 | } executed: }Execution Count:180 | 180 |
| 458 | return contexts.isEmpty() ? false : filterEventThroughContexts(contexts, event); executed: return contexts.isEmpty() ? false : filterEventThroughContexts(contexts, event);Execution Count:705 | 705 |
| 459 | } | - |
| 460 | | - |
| 461 | | - |
| 462 | bool QGestureManager::filterEvent(QObject *receiver, QEvent *event) | - |
| 463 | { | - |
| 464 | | - |
| 465 | | - |
| 466 | QWidgetWindow *widgetWindow = qobject_cast<QWidgetWindow *>(receiver); | - |
| 467 | | - |
| 468 | if (widgetWindow) evaluated: widgetWindow| yes Evaluation Count:15170 | yes Evaluation Count:23393 |
| 15170-23393 |
| 469 | return filterEvent(widgetWindow->widget(), event); executed: return filterEvent(widgetWindow->widget(), event);Execution Count:15170 | 15170 |
| 470 | | - |
| 471 | if (!m_gestureToRecognizer.contains(static_cast<QGesture *>(receiver))) partially evaluated: !m_gestureToRecognizer.contains(static_cast<QGesture *>(receiver))| yes Evaluation Count:23393 | no Evaluation Count:0 |
| 0-23393 |
| 472 | return false; executed: return false;Execution Count:23393 | 23393 |
| 473 | QGesture *state = static_cast<QGesture *>(receiver); | - |
| 474 | QMultiMap<QObject *, Qt::GestureType> contexts; | - |
| 475 | contexts.insert(state, state->gestureType()); | - |
| 476 | return filterEventThroughContexts(contexts, event); never executed: return filterEventThroughContexts(contexts, event); | 0 |
| 477 | } | - |
| 478 | | - |
| 479 | void QGestureManager::getGestureTargets(const QSet<QGesture*> &gestures, | - |
| 480 | QHash<QWidget *, QList<QGesture *> > *conflicts, | - |
| 481 | QHash<QWidget *, QList<QGesture *> > *normal) | - |
| 482 | { | - |
| 483 | typedef QHash<Qt::GestureType, QHash<QWidget *, QGesture *> > GestureByTypes; | - |
| 484 | GestureByTypes gestureByTypes; | - |
| 485 | | - |
| 486 | | - |
| 487 | for (QForeachContainer<__typeof__(gestures)> _container_(gestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 488 | QWidget *receiver = m_gestureTargets.value(gesture, 0); | - |
| 489 | qt_noop(); | - |
| 490 | gestureByTypes[gesture->gestureType()].insert(receiver, gesture); | - |
| 491 | } executed: }Execution Count:78 | 78 |
| 492 | | - |
| 493 | | - |
| 494 | for (QForeachContainer<__typeof__(gestureByTypes.keys())> _container_(gestureByTypes.keys()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (Qt::GestureType type = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 495 | QHash<QWidget *, QGesture *> gestures = gestureByTypes.value(type); | - |
| 496 | for (QForeachContainer<__typeof__(gestures.keys())> _container_(gestures.keys()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QWidget *widget = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 497 | QWidget *w = widget->parentWidget(); | - |
| 498 | while (w) { evaluated: w| yes Evaluation Count:68 | yes Evaluation Count:16 |
| 16-68 |
| 499 | QMap<Qt::GestureType, Qt::GestureFlags>::const_iterator it | - |
| 500 | = w->d_func()->gestureContext.constFind(type); | - |
| 501 | if (it != w->d_func()->gestureContext.constEnd()) { evaluated: it != w->d_func()->gestureContext.constEnd()| yes Evaluation Count:14 | yes Evaluation Count:54 |
| 14-54 |
| 502 | | - |
| 503 | if (!(it.value() & Qt::DontStartGestureOnChildren) && w != widget) { evaluated: !(it.value() & Qt::DontStartGestureOnChildren)| yes Evaluation Count:12 | yes Evaluation Count:2 |
partially evaluated: w != widget| yes Evaluation Count:12 | no Evaluation Count:0 |
| 0-12 |
| 504 | | - |
| 505 | (*conflicts)[widget].append(gestures[widget]); | - |
| 506 | break; executed: break;Execution Count:12 | 12 |
| 507 | } | - |
| 508 | } executed: }Execution Count:2 | 2 |
| 509 | if (w->isWindow()) { evaluated: w->isWindow()| yes Evaluation Count:50 | yes Evaluation Count:6 |
| 6-50 |
| 510 | w = 0; | - |
| 511 | break; executed: break;Execution Count:50 | 50 |
| 512 | } | - |
| 513 | w = w->parentWidget(); | - |
| 514 | } executed: }Execution Count:6 | 6 |
| 515 | if (!w) evaluated: !w| yes Evaluation Count:66 | yes Evaluation Count:12 |
| 12-66 |
| 516 | (*normal)[widget].append(gestures[widget]); executed: (*normal)[widget].append(gestures[widget]);Execution Count:66 | 66 |
| 517 | } executed: }Execution Count:78 | 78 |
| 518 | } executed: }Execution Count:78 | 78 |
| 519 | } executed: }Execution Count:245 | 245 |
| 520 | | - |
| 521 | void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, | - |
| 522 | QSet<QGesture *> *undeliveredGestures) | - |
| 523 | { | - |
| 524 | if (gestures.isEmpty()) evaluated: gestures.isEmpty()| yes Evaluation Count:116 | yes Evaluation Count:245 |
| 116-245 |
| 525 | return; executed: return;Execution Count:116 | 116 |
| 526 | | - |
| 527 | typedef QHash<QWidget *, QList<QGesture *> > GesturesPerWidget; | - |
| 528 | GesturesPerWidget conflictedGestures; | - |
| 529 | GesturesPerWidget normalStartedGestures; | - |
| 530 | | - |
| 531 | QSet<QGesture *> startedGestures; | - |
| 532 | | - |
| 533 | for (QSet<QGesture *>::const_iterator it = gestures.begin(), | - |
| 534 | e = gestures.end(); it != e; ++it) { evaluated: it != e| yes Evaluation Count:289 | yes Evaluation Count:245 |
| 245-289 |
| 535 | QGesture *gesture = *it; | - |
| 536 | QWidget *target = m_gestureTargets.value(gesture, 0); | - |
| 537 | if (!target) { evaluated: !target| yes Evaluation Count:84 | yes Evaluation Count:205 |
| 84-205 |
| 538 | | - |
| 539 | qt_noop(); | - |
| 540 | if (gesture->hasHotSpot()) { evaluated: gesture->hasHotSpot()| yes Evaluation Count:45 | yes Evaluation Count:39 |
| 39-45 |
| 541 | | - |
| 542 | QPoint pt = gesture->hotSpot().toPoint(); | - |
| 543 | if (QWidget *topLevel = (static_cast<QApplication *>(QCoreApplication::instance()))->topLevelAt(pt)) { evaluated: QWidget *topLevel = (static_cast<QApplication *>(QCoreApplication::instance()))->topLevelAt(pt)| yes Evaluation Count:40 | yes Evaluation Count:5 |
| 5-40 |
| 544 | QWidget *child = topLevel->childAt(topLevel->mapFromGlobal(pt)); | - |
| 545 | target = child ? child : topLevel; evaluated: child| yes Evaluation Count:38 | yes Evaluation Count:2 |
| 2-38 |
| 546 | } executed: }Execution Count:40 | 40 |
| 547 | } else { executed: }Execution Count:45 | 45 |
| 548 | | - |
| 549 | QObject *context = m_gestureOwners.value(gesture, 0); | - |
| 550 | if (context->isWidgetType()) evaluated: context->isWidgetType()| yes Evaluation Count:35 | yes Evaluation Count:4 |
| 4-35 |
| 551 | target = static_cast<QWidget *>(context); executed: target = static_cast<QWidget *>(context);Execution Count:35 | 35 |
| 552 | } executed: }Execution Count:39 | 39 |
| 553 | if (target) evaluated: target| yes Evaluation Count:75 | yes Evaluation Count:9 |
| 9-75 |
| 554 | m_gestureTargets.insert(gesture, target); executed: m_gestureTargets.insert(gesture, target);Execution Count:75 | 75 |
| 555 | } executed: }Execution Count:84 | 84 |
| 556 | | - |
| 557 | Qt::GestureType gestureType = gesture->gestureType(); | - |
| 558 | qt_noop(); | - |
| 559 | (void)gestureType;; | - |
| 560 | | - |
| 561 | if (target) { evaluated: target| yes Evaluation Count:280 | yes Evaluation Count:9 |
| 9-280 |
| 562 | if (gesture->state() == Qt::GestureStarted) { evaluated: gesture->state() == Qt::GestureStarted| yes Evaluation Count:78 | yes Evaluation Count:202 |
| 78-202 |
| 563 | startedGestures.insert(gesture); | - |
| 564 | } else { executed: }Execution Count:78 | 78 |
| 565 | normalStartedGestures[target].append(gesture); | - |
| 566 | } executed: }Execution Count:202 | 202 |
| 567 | } else { | - |
| 568 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 639, __PRETTY_FUNCTION__).debug() << "QGestureManager::deliverEvent: could not find the target for gesture" partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:9 |
| 0-9 |
| 569 | << gesture->gestureType(); never executed: QMessageLogger("kernel/qgesturemanager.cpp", 639, __PRETTY_FUNCTION__).debug() << "QGestureManager::deliverEvent: could not find the target for gesture" << gesture->gestureType(); | 0 |
| 570 | QMessageLogger("kernel/qgesturemanager.cpp", 641, __PRETTY_FUNCTION__).warning("QGestureManager::deliverEvent: could not find the target for gesture"); | - |
| 571 | undeliveredGestures->insert(gesture); | - |
| 572 | } executed: }Execution Count:9 | 9 |
| 573 | } | - |
| 574 | | - |
| 575 | getGestureTargets(startedGestures, &conflictedGestures, &normalStartedGestures); | - |
| 576 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 647, __PRETTY_FUNCTION__).debug() << "QGestureManager::deliverEvents:" partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:245 |
| 0-245 |
| 577 | << "\nstarted: " << startedGestures | 0 |
| 578 | << "\nconflicted: " << conflictedGestures | 0 |
| 579 | << "\nnormal: " << normalStartedGestures | 0 |
| 580 | << "\n"; never executed: QMessageLogger("kernel/qgesturemanager.cpp", 647, __PRETTY_FUNCTION__).debug() << "QGestureManager::deliverEvents:" << "\nstarted: " << startedGestures << "\nconflicted: " << conflictedGestures << "\nnormal: " << normalStartedGestures << "\n"; | 0 |
| 581 | | - |
| 582 | | - |
| 583 | for (GesturesPerWidget::const_iterator it = conflictedGestures.constBegin(), | - |
| 584 | e = conflictedGestures.constEnd(); it != e; ++it) { evaluated: it != e| yes Evaluation Count:10 | yes Evaluation Count:245 |
| 10-245 |
| 585 | QWidget *receiver = it.key(); | - |
| 586 | QList<QGesture *> gestures = it.value(); | - |
| 587 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 658, __PRETTY_FUNCTION__).debug() << "QGestureManager::deliverEvents: sending GestureOverride to" partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:10 |
| 0-10 |
| 588 | << receiver | 0 |
| 589 | << "gestures:" << gestures; never executed: QMessageLogger("kernel/qgesturemanager.cpp", 658, __PRETTY_FUNCTION__).debug() << "QGestureManager::deliverEvents: sending GestureOverride to" << receiver << "gestures:" << gestures; | 0 |
| 590 | QGestureEvent event(gestures); | - |
| 591 | event.t = QEvent::GestureOverride; | - |
| 592 | | - |
| 593 | event.ignore(); | - |
| 594 | for (QForeachContainer<__typeof__(gestures)> _container_(gestures); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *g = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 595 | event.setAccepted(g, false); executed: event.setAccepted(g, false);Execution Count:12 | 12 |
| 596 | | - |
| 597 | QApplication::sendEvent(receiver, &event); | - |
| 598 | bool eventAccepted = event.isAccepted(); | - |
| 599 | for (QForeachContainer<__typeof__(event.gestures())> _container_(event.gestures()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 600 | if (eventAccepted || event.isAccepted(gesture)) { partially evaluated: eventAccepted| no Evaluation Count:0 | yes Evaluation Count:12 |
evaluated: event.isAccepted(gesture)| yes Evaluation Count:3 | yes Evaluation Count:9 |
| 0-12 |
| 601 | QWidget *w = event.m_targetWidgets.value(gesture->gestureType(), 0); | - |
| 602 | qt_noop(); | - |
| 603 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 674, __PRETTY_FUNCTION__).debug() << "override event: gesture was accepted:" << gesture << w; never executed: QMessageLogger("kernel/qgesturemanager.cpp", 674, __PRETTY_FUNCTION__).debug() << "override event: gesture was accepted:" << gesture << w; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:3 |
| 0-3 |
| 604 | QList<QGesture *> &gestures = normalStartedGestures[w]; | - |
| 605 | gestures.append(gesture); | - |
| 606 | | - |
| 607 | m_gestureTargets[gesture] = w; | - |
| 608 | } else { executed: }Execution Count:3 | 3 |
| 609 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 680, __PRETTY_FUNCTION__).debug() << "override event: gesture wasn't accepted. putting back:" << gesture; never executed: QMessageLogger("kernel/qgesturemanager.cpp", 680, __PRETTY_FUNCTION__).debug() << "override event: gesture wasn't accepted. putting back:" << gesture; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:9 |
| 0-9 |
| 610 | QList<QGesture *> &gestures = normalStartedGestures[receiver]; | - |
| 611 | gestures.append(gesture); | - |
| 612 | } executed: }Execution Count:9 | 9 |
| 613 | } | - |
| 614 | } executed: }Execution Count:10 | 10 |
| 615 | | - |
| 616 | | - |
| 617 | for (GesturesPerWidget::const_iterator it = normalStartedGestures.constBegin(), | - |
| 618 | e = normalStartedGestures.constEnd(); it != e; ++it) { evaluated: it != e| yes Evaluation Count:258 | yes Evaluation Count:245 |
| 245-258 |
| 619 | if (!it.value().isEmpty()) { partially evaluated: !it.value().isEmpty()| yes Evaluation Count:258 | no Evaluation Count:0 |
| 0-258 |
| 620 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 691, __PRETTY_FUNCTION__).debug() << "QGestureManager::deliverEvents: sending to" << it.key() partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:258 |
| 0-258 |
| 621 | << "gestures:" << it.value(); never executed: QMessageLogger("kernel/qgesturemanager.cpp", 691, __PRETTY_FUNCTION__).debug() << "QGestureManager::deliverEvents: sending to" << it.key() << "gestures:" << it.value(); | 0 |
| 622 | QGestureEvent event(it.value()); | - |
| 623 | QApplication::sendEvent(it.key(), &event); | - |
| 624 | bool eventAccepted = event.isAccepted(); | - |
| 625 | for (QForeachContainer<__typeof__(event.gestures())> _container_(event.gestures()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QGesture *gesture = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 626 | if (gesture->state() == Qt::GestureStarted && evaluated: gesture->state() == Qt::GestureStarted| yes Evaluation Count:77 | yes Evaluation Count:203 |
| 77-203 |
| 627 | (eventAccepted || event.isAccepted(gesture))) { partially evaluated: eventAccepted| no Evaluation Count:0 | yes Evaluation Count:77 |
evaluated: event.isAccepted(gesture)| yes Evaluation Count:64 | yes Evaluation Count:13 |
| 0-77 |
| 628 | QWidget *w = event.m_targetWidgets.value(gesture->gestureType(), 0); | - |
| 629 | qt_noop(); | - |
| 630 | if (0) QMessageLogger("kernel/qgesturemanager.cpp", 701, __PRETTY_FUNCTION__).debug() << "started gesture was delivered and accepted by" << w; never executed: QMessageLogger("kernel/qgesturemanager.cpp", 701, __PRETTY_FUNCTION__).debug() << "started gesture was delivered and accepted by" << w; partially evaluated: 0| no Evaluation Count:0 | yes Evaluation Count:64 |
| 0-64 |
| 631 | m_gestureTargets[gesture] = w; | - |
| 632 | } executed: }Execution Count:64 | 64 |
| 633 | } executed: }Execution Count:280 | 280 |
| 634 | } executed: }Execution Count:258 | 258 |
| 635 | } executed: }Execution Count:258 | 258 |
| 636 | } executed: }Execution Count:245 | 245 |
| 637 | | - |
| 638 | void QGestureManager::recycle(QGesture *gesture) | - |
| 639 | { | - |
| 640 | QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0); | - |
| 641 | if (recognizer) { partially evaluated: recognizer| yes Evaluation Count:87 | no Evaluation Count:0 |
| 0-87 |
| 642 | gesture->setGestureCancelPolicy(QGesture::CancelNone); | - |
| 643 | recognizer->reset(gesture); | - |
| 644 | m_activeGestures.remove(gesture); | - |
| 645 | } else { executed: }Execution Count:87 | 87 |
| 646 | cleanupGesturesForRemovedRecognizer(gesture); | - |
| 647 | } | 0 |
| 648 | } | - |
| 649 | | - |
| 650 | | - |
| 651 | | - |
| 652 | | - |
| 653 | | - |
| 654 | | - |
| | |