Changeset View
Changeset View
Standalone View
Standalone View
src/qmlcontrols/kquickcontrolsaddons/eventgenerator.cpp
Show First 20 Lines • Show All 59 Lines • ▼ Show 20 Line(s) | |||||
60 | void EventGenerator::sendMouseEventRecursive(QQuickItem *parentItem, EventGenerator::MouseEvent type, int x, int y, int button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) | 60 | void EventGenerator::sendMouseEventRecursive(QQuickItem *parentItem, EventGenerator::MouseEvent type, int x, int y, int button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) | ||
61 | { | 61 | { | ||
62 | if (!parentItem) { | 62 | if (!parentItem) { | ||
63 | return; | 63 | return; | ||
64 | } | 64 | } | ||
65 | 65 | | |||
66 | const QList<QQuickItem *> items = allChildItemsRecursive(parentItem); | 66 | const QList<QQuickItem *> items = allChildItemsRecursive(parentItem); | ||
67 | 67 | | |||
68 | foreach(QQuickItem *item, items) { | 68 | for (QQuickItem *item : items) { | ||
69 | sendMouseEvent(item, type, x, y, button, buttons, modifiers); | 69 | sendMouseEvent(item, type, x, y, button, buttons, modifiers); | ||
70 | } | 70 | } | ||
71 | } | 71 | } | ||
72 | 72 | | |||
73 | void EventGenerator::sendWheelEvent(QQuickItem *item, int x, int y, const QPoint &pixelDelta, const QPoint &angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) | 73 | void EventGenerator::sendWheelEvent(QQuickItem *item, int x, int y, const QPoint &pixelDelta, const QPoint &angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) | ||
74 | { | 74 | { | ||
75 | if (!item || !item->window()) { | 75 | if (!item || !item->window()) { | ||
76 | return; | 76 | return; | ||
77 | } | 77 | } | ||
78 | 78 | | |||
79 | QPointF pos(x, y); | 79 | QPointF pos(x, y); | ||
80 | QPointF globalPos(item->window()->mapToGlobal(item->mapToScene(pos).toPoint())); | 80 | QPointF globalPos(item->window()->mapToGlobal(item->mapToScene(pos).toPoint())); | ||
81 | QWheelEvent ev(pos, globalPos, pixelDelta, angleDelta, /* qt4Delta */ 0, /* qt4Orientation */ Qt::Horizontal, buttons, modifiers); | 81 | QWheelEvent ev(pos, globalPos, pixelDelta, angleDelta, /* qt4Delta */ 0, /* qt4Orientation */ Qt::Horizontal, buttons, modifiers); | ||
82 | QGuiApplication::sendEvent(item, &ev); | 82 | QGuiApplication::sendEvent(item, &ev); | ||
83 | } | 83 | } | ||
84 | 84 | | |||
85 | void EventGenerator::sendWheelEventRecursive(QQuickItem *parentItem, int x, int y, const QPoint &pixelDelta, const QPoint &angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) | 85 | void EventGenerator::sendWheelEventRecursive(QQuickItem *parentItem, int x, int y, const QPoint &pixelDelta, const QPoint &angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) | ||
86 | { | 86 | { | ||
87 | if (!parentItem) { | 87 | if (!parentItem) { | ||
88 | return; | 88 | return; | ||
89 | } | 89 | } | ||
90 | 90 | | |||
91 | const QList<QQuickItem *> items = allChildItemsRecursive(parentItem); | 91 | const QList<QQuickItem *> items = allChildItemsRecursive(parentItem); | ||
92 | 92 | | |||
93 | foreach(QQuickItem *item, items) { | 93 | for (QQuickItem *item : items) { | ||
94 | sendWheelEvent(item, x, y, pixelDelta, angleDelta, buttons, modifiers); | 94 | sendWheelEvent(item, x, y, pixelDelta, angleDelta, buttons, modifiers); | ||
95 | } | 95 | } | ||
96 | } | 96 | } | ||
97 | 97 | | |||
98 | void EventGenerator::sendGrabEvent(QQuickItem *item, EventGenerator::GrabEvent type) | 98 | void EventGenerator::sendGrabEvent(QQuickItem *item, EventGenerator::GrabEvent type) | ||
99 | { | 99 | { | ||
100 | if (!item) { | 100 | if (!item) { | ||
101 | return; | 101 | return; | ||
Show All 22 Lines | |||||
124 | void EventGenerator::sendGrabEventRecursive(QQuickItem *parentItem, EventGenerator::GrabEvent type) | 124 | void EventGenerator::sendGrabEventRecursive(QQuickItem *parentItem, EventGenerator::GrabEvent type) | ||
125 | { | 125 | { | ||
126 | if (!parentItem) { | 126 | if (!parentItem) { | ||
127 | return; | 127 | return; | ||
128 | } | 128 | } | ||
129 | 129 | | |||
130 | const QList<QQuickItem *> items = allChildItemsRecursive(parentItem); | 130 | const QList<QQuickItem *> items = allChildItemsRecursive(parentItem); | ||
131 | 131 | | |||
132 | foreach(QQuickItem *item, items) { | 132 | for (QQuickItem *item : items) { | ||
133 | sendGrabEvent(item, type); | 133 | sendGrabEvent(item, type); | ||
134 | } | 134 | } | ||
135 | } | 135 | } | ||
136 | 136 | | |||
137 | QList<QQuickItem *> EventGenerator::allChildItemsRecursive(QQuickItem *parentItem) | 137 | QList<QQuickItem *> EventGenerator::allChildItemsRecursive(QQuickItem *parentItem) | ||
138 | { | 138 | { | ||
139 | QList<QQuickItem *> itemList; | 139 | QList<QQuickItem *> itemList; | ||
140 | 140 | | |||
141 | itemList.append(parentItem->childItems()); | 141 | const auto childsItems = parentItem->childItems(); | ||
142 | itemList.append(childsItems); | ||||
142 | 143 | | |||
143 | foreach(QQuickItem *childItem, parentItem->childItems()) { | 144 | | ||
145 | for (QQuickItem *childItem : childsItems) { | ||||
144 | itemList.append(allChildItemsRecursive(childItem)); | 146 | itemList.append(allChildItemsRecursive(childItem)); | ||
145 | } | 147 | } | ||
146 | 148 | | |||
147 | return itemList; | 149 | return itemList; | ||
148 | } | 150 | } |