Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_tool_move.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 1999 Matthias Elter <me@kde.org>
3 * SPDX-FileCopyrightText: 1999 Michael Koch <koch@kde.org>
4 * SPDX-FileCopyrightText: 2003 Patrick Julien <freak@codepimps.org>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9#ifndef KIS_TOOL_MOVE_H_
10#define KIS_TOOL_MOVE_H_
11
13#include <kis_types.h>
14#include <kis_tool.h>
16#include <kis_icon.h>
17#include <QKeySequence>
18#include <QWidget>
19#include <QGroupBox>
20#include <QRadioButton>
25#include <kis_tool_utils.h>
26
27#include "kis_canvas2.h"
28
29
30class KoCanvasBase;
32class KisDocument;
33
34class KisToolMove : public KisTool
35{
36 Q_OBJECT
38public:
40 ~KisToolMove() override;
41
50 bool wantsAutoScroll() const override {
51 return false;
52 }
53
54public Q_SLOTS:
55 void activate(const QSet<KoShape*> &shapes) override;
56 void deactivate() override;
57
58public Q_SLOTS:
59 void requestStrokeEnd() override;
60 void requestStrokeCancellation() override;
61 void requestUndoDuringStroke() override;
62 void requestRedoDuringStroke() override;
63
64protected Q_SLOTS:
65 void resetCursorStyle() override;
66
67public:
73
80
81 void beginPrimaryAction(KoPointerEvent *event) override;
82 void continuePrimaryAction(KoPointerEvent *event) override;
83 void endPrimaryAction(KoPointerEvent *event) override;
84
88
89 void mouseMoveEvent(KoPointerEvent *event) override;
90
92 void continueAction(KoPointerEvent *event);
93 void endAction(KoPointerEvent *event);
94
95 void paint(QPainter& gc, const KoViewConverter &converter) override;
96
97 QWidget *createOptionWidget() override;
98 void updateUIUnit(int newUnit);
99
101
103
104public Q_SLOTS:
105 void moveDiscrete(MoveDirection direction, bool big);
106
107 void moveBySpinX(int newX);
108 void moveBySpinY(int newY);
109
110 void slotNodeChanged(const KisNodeList &nodes);
112 void commitChanges();
113
114 void slotHandlesRectCalculated(const QRect &handlesRect);
116 void slotStrokePickedLayers(const KisNodeList &nodes);
117
118Q_SIGNALS:
120 void moveInNewPosition(QPoint);
121
122private:
123 void drag(const QPoint& newPos);
124 void cancelStroke();
125 QPoint applyModifiers(Qt::KeyboardModifiers modifiers, QPoint pos);
126
127 bool startStrokeImpl(MoveToolMode mode, const QPoint *pos);
128
129 QPoint currentOffset() const;
130 void notifyGuiAfterMove(bool showFloatingMessage = true);
131 bool tryEndPreviousStroke(const KisNodeList &nodes);
133
134private Q_SLOTS:
135 void endStroke();
137
140 void slotMoveDiscreteUp();
146
147private:
148
150 QPoint m_dragStart;
152
154
158
160
162
163 QPoint m_dragPos;
165
167
172
174
176};
177
178
180{
181
182public:
184 : KisToolPaintFactoryBase("KritaTransform/KisToolMove") {
185 setToolTip(i18n("Move Tool"));
188 setPriority(3);
189 setIconName(koIconNameCStr("krita_tool_move"));
190 setShortcut(QKeySequence(Qt::Key_T));
191 }
192
194
196 return new KisToolMove(canvas);
197 }
198
200};
201
202#endif // KIS_TOOL_MOVE_H_
203
float value(const T *src, size_t ch)
KoToolBase * createTool(KoCanvasBase *canvas) override
QList< QAction * > createActionsImpl() override
createActionsImpl should be reimplemented if the tool needs any actions. The actions should have a va...
~KisToolMoveFactory() override
QPoint applyModifiers(Qt::KeyboardModifiers modifiers, QPoint pos)
void setShowCoordinates(bool value)
void continuePrimaryAction(KoPointerEvent *event) override
void slotMoveDiscreteLeftMore()
void requestUndoDuringStroke() override
void activate(const QSet< KoShape * > &shapes) override
KisAsynchronousStrokeUpdateHelper m_asyncUpdateHelper
bool wantsAutoScroll() const override
wantsAutoScroll reimplemented from KoToolBase there's an issue where autoscrolling with this tool nev...
MoveToolMode moveToolMode() const
~KisToolMove() override
void moveBySpinX(int newX)
void moveInNewPosition(QPoint)
bool tryEndPreviousStroke(const KisNodeList &nodes)
void notifyGuiAfterMove(bool showFloatingMessage=true)
void slotMoveDiscreteRight()
void paint(QPainter &gc, const KoViewConverter &converter) override
void deactivate() override
void slotMoveDiscreteUp()
void moveDiscrete(MoveDirection direction, bool big)
void drag(const QPoint &newPos)
void slotHandlesRectCalculated(const QRect &handlesRect)
KisSignalAutoConnectionsStore m_canvasConnections
void slotMoveDiscreteLeft()
void moveBySpinY(int newY)
void slotStrokeStartedEmpty()
KisSignalCompressor m_updateCursorCompressor
QPoint currentOffset() const
bool m_currentlyUsingSelection
void slotMoveDiscreteRightMore()
QWidget * createOptionWidget() override
void endPrimaryAction(KoPointerEvent *event) override
Q_ENUMS(MoveToolMode)
void continueAction(KoPointerEvent *event)
void cancelStroke()
void updateUIUnit(int newUnit)
void slotTrackerChangedConfig(KisToolChangesTrackerDataSP state)
void mouseMoveEvent(KoPointerEvent *event) override
MoveToolMode m_currentMode
KisToolUtils::MoveShortcutsHelper m_moveShortcutsHelper
KisToolMove(KoCanvasBase *canvas)
void requestStrokeCancellation() override
QPoint m_accumulatedOffset
Total offset including multiple clicks, up/down/left/right keys, etc. added together.
void moveToolModeChanged()
void beginPrimaryAction(KoPointerEvent *event) override
void resetCursorStyle() override
void requestStrokeEnd() override
void startAction(KoPointerEvent *event, MoveToolMode mode)
QPoint m_dragStart
Point where current cursor dragging began.
void continueAlternateAction(KoPointerEvent *event, AlternateAction action) override
KisNodeList m_currentlyProcessingNodes
QAction * m_showCoordinatesAction
KisSignalAutoConnectionsStore m_actionConnections
void endAction(KoPointerEvent *event)
void slotMoveDiscreteDownMore()
void slotNodeChanged(const KisNodeList &nodes)
void requestRedoDuringStroke() override
void slotMoveDiscreteUpMore()
QRect m_handlesRect
KisToolChangesTracker m_changesTracker
void requestHandlesRectUpdate()
void endAlternateAction(KoPointerEvent *event, AlternateAction action) override
MoveToolOptionsWidget * m_optionsWidget
void beginAlternateAction(KoPointerEvent *event, AlternateAction action) override
bool startStrokeImpl(MoveToolMode mode, const QPoint *pos)
void slotStrokePickedLayers(const KisNodeList &nodes)
QPoint m_lastCursorPos
KisStrokeId m_strokeId
void commitChanges()
void slotMoveDiscreteDown()
void slotSelectionChanged()
QAction * action(const QString &name) const
void setShortcut(const QKeySequence &shortcut)
void setSection(const QString &section)
void setActivationShapeId(const QString &activationShapeId)
void setIconName(const char *iconName)
void setToolTip(const QString &tooltip)
void setPriority(int newPriority)
#define koIconNameCStr(name)
Definition kis_icon.h:28
static const QString KRITA_TOOL_ACTIVATION_ID
Definition kis_tool.h:37
static const QString Transform
Tools that transform the layer.
virtual ToolMode mode() const
Definition kis_tool.cc:407
AlternateAction
Definition kis_tool.h:134
KisCanvas2 * canvas