Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_tool_multihand.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Lukáš Tvrdý <lukast.dev@gmail.com>
3 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#ifndef __KIS_TOOL_MULTIHAND_H
9#define __KIS_TOOL_MULTIHAND_H
10
11#include "kis_tool_brush.h"
12#include <kis_icon.h>
14#include <QRandomGenerator>
15
16class QPushButton;
17class QCheckBox;
18class QComboBox;
19class QStackedWidget;
22
24{
25 Q_OBJECT
26public:
28 ~KisToolMultihand() override;
29 void beginPrimaryAction(KoPointerEvent *event) override;
30 void continuePrimaryAction(KoPointerEvent *event) override;
31 void endPrimaryAction(KoPointerEvent *event) override;
32
36
37 void mouseMoveEvent(KoPointerEvent* event) override;
38
39
40protected:
41 void paint(QPainter& gc, const KoViewConverter &converter) override;
42
43 QWidget* createOptionWidget() override;
44
45private:
47 void finishAxesSetup();
48 void updateCanvas();
50
51private Q_SLOTS:
53 void resetAxes();
54 void slotSetHandsCount(int count);
55 void slotSetAxesAngle(qreal angle);
56 void slotSetTransformMode(int qcomboboxIndex);
57 void slotSetAxesVisible(bool vis);
58 void slotSetMirrorVertically(bool mirror);
59 void slotSetMirrorHorizontally(bool mirror);
60 void slotSetTranslateRadius(int radius);
61 void slotAddSubbrushesMode(bool checked);
63 void slotSetIntervals();
64 void slotSetKeepAspect();
65
66private:
68
71 QPointF m_axesPoint;
72 qreal m_angle;
78
83
86 QRandomGenerator m_randomGenerator;
87
89};
90
91
93{
94
95public:
97 : KisToolBrushFactory("KritaShape/KisToolMultiBrush") {
98
99 setToolTip(i18n("Multibrush Tool"));
100
101 // Temporarily
103 setIconName(koIconNameCStr("krita_tool_multihand"));
104 setShortcut(QKeySequence(Qt::Key_Q));
105 setPriority(11);
107 }
108
110
112 return new KisToolMultihand(canvas);
113 }
114
115};
116
117#endif /* __KIS_TOOL_MULTIHAND_H */
This class is a spinbox in which you can click and drag to set the value. A slider like bar is displa...
KoToolBase * createTool(KoCanvasBase *canvas) override
void slotSetMirrorVertically(bool mirror)
void beginAlternateAction(KoPointerEvent *event, AlternateAction action) override
void slotSetAxesVisible(bool vis)
QVector< QPoint > intervalLocations()
void continueAlternateAction(KoPointerEvent *event, AlternateAction action) override
void slotSetTranslateRadius(int radius)
void slotSetHandsCount(int count)
void slotAddSubbrushesMode(bool checked)
void paint(QPainter &gc, const KoViewConverter &converter) override
QRandomGenerator m_randomGenerator
KisToolMultiHandConfigWidget * customUI
enumTransformModes m_transformMode
QWidget * createOptionWidget() override
void slotSetTransformMode(int qcomboboxIndex)
void endAlternateAction(KoPointerEvent *event, AlternateAction action) override
void beginPrimaryAction(KoPointerEvent *event) override
KisToolMultihandHelper * m_helper
void continuePrimaryAction(KoPointerEvent *event) override
void slotSetAxesAngle(qreal angle)
void slotSetMirrorHorizontally(bool mirror)
void mouseMoveEvent(KoPointerEvent *event) override
QVector< QPointF > m_subbrOriginalLocations
KisToolMultihand(KoCanvasBase *canvas)
void endPrimaryAction(KoPointerEvent *event) override
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 Shape
Freehand and shapes like ellipses and lines.
AlternateAction
Definition kis_tool.h:134
KisCanvas2 * canvas