264{
266
267 QObject *expectedCanvasWidget =
view() ?
268 view()->canvasBase()->canvasWidget() : 0;
269
270 if (!expectedCanvasWidget ||
target != expectedCanvasWidget)
return false;
271
272 if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::TabletPress
273 || event->type() == QEvent::TouchBegin) {
275 const QPoint pos = !pointerEvent.isNull() ? pointerEvent->pos() : QPoint(77,77);
276
277 if(
d->config.mirrorHorizontal() &&
d->horizontalHandle.contains(pos) && !
d->config.lockHorizontal() && !
d->config.hideHorizontalDecoration() ) {
279 QApplication::setOverrideCursor(Qt::ClosedHandCursor);
280 event->accept();
281 return true;
282 }
283
284 if(
d->config.mirrorVertical() &&
d->verticalHandle.contains(pos) && !
d->config.lockVertical() && !
d->config.hideVerticalDecoration()) {
286 QApplication::setOverrideCursor(Qt::ClosedHandCursor);
287 event->accept();
288 return true;
289 }
290 }
291 if (event->type() == QEvent::MouseMove || event->type() == QEvent::TabletMove
292 || event->type() == QEvent::TouchUpdate) {
294 const QPoint pos = !pointerEvent.isNull() ? pointerEvent->pos() : QPoint(77,77);
295
297 float axisX =
view()->viewConverter()->widgetToImage<QPoint>(pos).
x();
298
299 axisX *= 2;
300 axisX = round(axisX);
301 axisX = axisX/2;
302
303
304 d->setAxisPosition(axisX,
d->config.axisPosition().y());
305 d->config.setHorizontalHandlePosition(KisAlgebra2D::dotProduct<QPointF>(pos -
d->horizontalAxis.p1(),
d->horizontalAxis.unitVector().p2() -
d->horizontalAxis.p1()));
307
308 event->accept();
309 view()->showFloatingMessage(i18n(
"X: %1 px",QString::number(
d->config.axisPosition().x(),
'f', 1))
311 return true;
312 }
314 float axisY =
view()->viewConverter()->widgetToImage<QPoint>(pos).
y();
315
316 axisY *= 2;
317 axisY = round(axisY);
318 axisY = axisY/2;
319
320 d->setAxisPosition(
d->config.axisPosition().x(), axisY);
321 d->config.setVerticalHandlePosition(KisAlgebra2D::dotProduct<QPointF>(pos -
d->verticalAxis.p1(),
d->verticalAxis.unitVector().p2() -
d->verticalAxis.p1()));
323
324 event->accept();
325 view()->showFloatingMessage(i18n(
"Y: %1 px",QString::number(
d->config.axisPosition().y(),
'f', 1))
327 return true;
328 }
329 if(
d->config.mirrorHorizontal() && !
d->config.hideHorizontalDecoration()) {
330 if(
d->horizontalHandle.contains(pos) && !
d->config.lockHorizontal()) {
331 if(!
d->horizontalContainsCursor) {
332 QApplication::setOverrideCursor(Qt::OpenHandCursor);
333 d->horizontalContainsCursor =
true;
334 }
335 }
else if(
d->horizontalContainsCursor) {
336 QApplication::restoreOverrideCursor();
337 d->horizontalContainsCursor =
false;
338 }
339 }
340 if(
d->config.mirrorVertical() && !
d->config.hideVerticalDecoration()) {
341 if(
d->verticalHandle.contains(pos) && !
d->config.lockVertical()) {
342 if(!
d->verticalContainsCursor) {
343 QApplication::setOverrideCursor(Qt::OpenHandCursor);
344 d->verticalContainsCursor =
true;
345 }
346 }
else if(
d->verticalContainsCursor) {
347 QApplication::restoreOverrideCursor();
348 d->verticalContainsCursor =
false;
349 }
350 }
351 }
352 if (event->type() == QEvent::MouseButtonRelease || event->type() == QEvent::TabletRelease
353 || event->type() == QEvent::TouchEnd || event->type() == QEvent::TouchCancel) {
354
356 while (QApplication::overrideCursor()) {
357 QApplication::restoreOverrideCursor();
358 }
360 event->accept();
361 return true;
362 }
364 while (QApplication::overrideCursor()) {
365 QApplication::restoreOverrideCursor();
366 }
368 event->accept();
369 return true;
370 }
371 }
372
373 return QObject::eventFilter(
target, event);
374}
KisMagneticGraph::vertex_descriptor target(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)
static KoPointerEvent * getKoPointerEvent(QEvent *event)