11#include <QApplication>
14#include <klocalizedstring.h>
27 QPointF
averagePoint( QTouchEvent* event,
int *outCount =
nullptr );
41 setDescription(i18n(
"The <i>Pan Canvas</i> action pans the canvas."));
43 QHash<QString, int> shortcuts;
65 QApplication::setOverrideCursor(Qt::OpenHandCursor);
71 QApplication::restoreOverrideCursor();
78 bool overrideCursor =
true;
82 QTouchEvent *tevent =
dynamic_cast<QTouchEvent*
>(event);
90 QWheelEvent *wheelEvent =
dynamic_cast<QWheelEvent*
>(event);
93 overrideCursor =
false;
115 if (overrideCursor) {
116 QApplication::setOverrideCursor(Qt::ClosedHandCursor);
122 QApplication::restoreOverrideCursor();
128 switch (event->type()) {
129 case QEvent::Gesture: {
130 QGestureEvent *gevent =
static_cast<QGestureEvent*
>(event);
131 if (gevent->activeGestures().at(0)->gestureType() == Qt::PanGesture) {
132 QPanGesture *pan =
static_cast<QPanGesture*
>(gevent->activeGestures().at(0));
137 case QEvent::TouchUpdate: {
138 QTouchEvent *tevent =
static_cast<QTouchEvent*
>(event);
139 int newTouchPointsCount;
140 QPointF newPos =
d->
averagePoint(tevent, &newTouchPointsCount);
170 Q_FOREACH ( QTouchEvent::TouchPoint point, event->touchPoints() ) {
171 if( point.state() != Qt::TouchPointReleased ) {
172 result += point.screenPos();
182 return result / count;
QPointF originalPreferredCenter
QPointF averagePoint(QTouchEvent *event, int *outCount=nullptr)
void inputEvent(QEvent *event) override
void end(QEvent *event) override
void cursorMovedAbsolute(const QPointF &lastPos, const QPointF &pos) override
bool isShortcutRequired(int shortcut) const override
void activate(int shortcut) override
void begin(int shortcut, QEvent *event) override
bool supportsHiResInputEvents(int shortcut) const override
KisInputActionGroup inputActionGroup(int shortcut) const override
int priority() const override
@ PanRightShortcut
Pan right by a fixed amount.
@ PanModeShortcut
Toggle the pan mode.
@ PanUpShortcut
Pan up by a fixed amount.
@ PanDownShortcut
Pan down by a fixed amount.
@ PanLeftShortcut
Pan left by a fixed amount.
void deactivate(int shortcut) override
KoCanvasController * canvasController() const
virtual QPointF preferredCenter() const =0
Returns the currently set preferred center point in view coordinates (pixels)
virtual void setPreferredCenter(const QPointF &viewPoint)=0
virtual void pan(const QPoint &distance)=0