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
>
13
#include "
kis_tool_multihand_config.h
"
14
#include <QRandomGenerator>
15
16
class
QPushButton;
17
class
QCheckBox;
18
class
QComboBox;
19
class
QStackedWidget;
20
class
KisSliderSpinBox
;
21
class
KisToolMultihandHelper
;
22
23
class
KisToolMultihand
:
public
KisToolBrush
24
{
25
Q_OBJECT
26
public
:
27
KisToolMultihand
(
KoCanvasBase
*
canvas
);
28
~KisToolMultihand
()
override
;
29
void
beginPrimaryAction
(
KoPointerEvent
*event)
override
;
30
void
continuePrimaryAction
(
KoPointerEvent
*event)
override
;
31
void
endPrimaryAction
(
KoPointerEvent
*event)
override
;
32
33
void
beginAlternateAction
(
KoPointerEvent
*event,
AlternateAction
action
)
override
;
34
void
continueAlternateAction
(
KoPointerEvent
*event,
AlternateAction
action
)
override
;
35
void
endAlternateAction
(
KoPointerEvent
*event,
AlternateAction
action
)
override
;
36
37
void
mouseMoveEvent
(
KoPointerEvent
* event)
override
;
38
39
40
protected
:
41
void
paint
(QPainter& gc,
const
KoViewConverter
&converter)
override
;
42
43
QWidget*
createOptionWidget
()
override
;
44
45
private
:
46
void
initTransformations
();
47
void
finishAxesSetup
();
48
void
updateCanvas
();
49
QVector<QPoint>
intervalLocations
();
50
51
private
Q_SLOTS:
52
void
activateAxesPointModeSetup
();
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);
62
void
slotRemoveAllSubbrushes
();
63
void
slotSetIntervals
();
64
void
slotSetKeepAspect
();
65
66
private
:
67
KisToolMultihandHelper
*
m_helper
;
68
69
enum
enumTransformModes
:
int
{
SYMMETRY
=0,
MIRROR
,
TRANSLATE
,
SNOWFLAKE
,
COPYTRANSLATE
,
COPYTRANSLATEINTERVALS
};
70
enumTransformModes
m_transformMode
;
71
QPointF
m_axesPoint
;
72
qreal
m_angle
;
73
int
m_handsCount
;
74
bool
m_mirrorVertically
;
75
bool
m_mirrorHorizontally
;
76
bool
m_showAxes
;
77
int
m_translateRadius
;
78
79
bool
m_setupAxesFlag
;
80
bool
m_addSubbrushesMode
;
81
QPointF
m_lastToolPos
;
82
QVector<QPointF>
m_subbrOriginalLocations
;
83
84
int
m_intervalX
;
85
int
m_intervalY
;
86
QRandomGenerator
m_randomGenerator
;
87
88
KisToolMultiHandConfigWidget
*
customUI
;
89
};
90
91
92
class
KisToolMultiBrushFactory
:
public
KisToolBrushFactory
93
{
94
95
public
:
96
KisToolMultiBrushFactory
()
97
:
KisToolBrushFactory
(
"KritaShape/KisToolMultiBrush"
) {
98
99
setToolTip
(i18n(
"Multibrush Tool"
));
100
101
// Temporarily
102
setSection
(
ToolBoxSection::Shape
);
103
setIconName
(
koIconNameCStr
(
"krita_tool_multihand"
));
104
setShortcut
(QKeySequence(Qt::Key_Q));
105
setPriority
(11);
106
setActivationShapeId
(
KRITA_TOOL_ACTIVATION_ID
);
107
}
108
109
~KisToolMultiBrushFactory
()
override
{}
110
111
KoToolBase
*
createTool
(
KoCanvasBase
*
canvas
)
override
{
112
return
new
KisToolMultihand
(
canvas
);
113
}
114
115
};
116
117
#endif
/* __KIS_TOOL_MULTIHAND_H */
KisSliderSpinBox
This class is a spinbox in which you can click and drag to set the value. A slider like bar is displa...
Definition
kis_slider_spin_box.h:51
KisToolBrushFactory
Definition
kis_tool_brush.h:140
KisToolBrush
Definition
kis_tool_brush.h:37
KisToolMultiBrushFactory
Definition
kis_tool_multihand.h:93
KisToolMultiBrushFactory::~KisToolMultiBrushFactory
~KisToolMultiBrushFactory() override
Definition
kis_tool_multihand.h:109
KisToolMultiBrushFactory::KisToolMultiBrushFactory
KisToolMultiBrushFactory()
Definition
kis_tool_multihand.h:96
KisToolMultiBrushFactory::createTool
KoToolBase * createTool(KoCanvasBase *canvas) override
Definition
kis_tool_multihand.h:111
KisToolMultiHandConfigWidget
Definition
kis_tool_multihand_config.h:14
KisToolMultihandHelper
Definition
kis_tool_multihand_helper.h:14
KisToolMultihand
Definition
kis_tool_multihand.h:24
KisToolMultihand::resetAxes
void resetAxes()
Definition
kis_tool_multihand.cpp:523
KisToolMultihand::slotSetIntervals
void slotSetIntervals()
Definition
kis_tool_multihand.cpp:680
KisToolMultihand::slotRemoveAllSubbrushes
void slotRemoveAllSubbrushes()
Definition
kis_tool_multihand.cpp:674
KisToolMultihand::slotSetMirrorVertically
void slotSetMirrorVertically(bool mirror)
Definition
kis_tool_multihand.cpp:648
KisToolMultihand::beginAlternateAction
void beginAlternateAction(KoPointerEvent *event, AlternateAction action) override
Definition
kis_tool_multihand.cpp:111
KisToolMultihand::slotSetAxesVisible
void slotSetAxesVisible(bool vis)
Definition
kis_tool_multihand.cpp:640
KisToolMultihand::intervalLocations
QVector< QPoint > intervalLocations()
Definition
kis_tool_multihand.cpp:551
KisToolMultihand::m_angle
qreal m_angle
Definition
kis_tool_multihand.h:72
KisToolMultihand::continueAlternateAction
void continueAlternateAction(KoPointerEvent *event, AlternateAction action) override
Definition
kis_tool_multihand.cpp:125
KisToolMultihand::activateAxesPointModeSetup
void activateAxesPointModeSetup()
Definition
kis_tool_multihand.cpp:512
KisToolMultihand::updateCanvas
void updateCanvas()
Definition
kis_tool_multihand.cpp:538
KisToolMultihand::slotSetTranslateRadius
void slotSetTranslateRadius(int radius)
Definition
kis_tool_multihand.cpp:662
KisToolMultihand::slotSetHandsCount
void slotSetHandsCount(int count)
Definition
kis_tool_multihand.cpp:582
KisToolMultihand::m_showAxes
bool m_showAxes
Definition
kis_tool_multihand.h:76
KisToolMultihand::slotAddSubbrushesMode
void slotAddSubbrushesMode(bool checked)
Definition
kis_tool_multihand.cpp:668
KisToolMultihand::paint
void paint(QPainter &gc, const KoViewConverter &converter) override
Definition
kis_tool_multihand.cpp:161
KisToolMultihand::~KisToolMultihand
~KisToolMultihand() override
Definition
kis_tool_multihand.cpp:57
KisToolMultihand::m_lastToolPos
QPointF m_lastToolPos
Definition
kis_tool_multihand.h:81
KisToolMultihand::m_randomGenerator
QRandomGenerator m_randomGenerator
Definition
kis_tool_multihand.h:86
KisToolMultihand::m_intervalX
int m_intervalX
Definition
kis_tool_multihand.h:84
KisToolMultihand::customUI
KisToolMultiHandConfigWidget * customUI
Definition
kis_tool_multihand.h:88
KisToolMultihand::m_transformMode
enumTransformModes m_transformMode
Definition
kis_tool_multihand.h:70
KisToolMultihand::slotSetKeepAspect
void slotSetKeepAspect()
Definition
kis_tool_multihand.cpp:691
KisToolMultihand::createOptionWidget
QWidget * createOptionWidget() override
Definition
kis_tool_multihand.cpp:427
KisToolMultihand::slotSetTransformMode
void slotSetTransformMode(int qcomboboxIndex)
Definition
kis_tool_multihand.cpp:597
KisToolMultihand::endAlternateAction
void endAlternateAction(KoPointerEvent *event, AlternateAction action) override
Definition
kis_tool_multihand.cpp:140
KisToolMultihand::beginPrimaryAction
void beginPrimaryAction(KoPointerEvent *event) override
Definition
kis_tool_multihand.cpp:61
KisToolMultihand::m_addSubbrushesMode
bool m_addSubbrushesMode
Definition
kis_tool_multihand.h:80
KisToolMultihand::enumTransformModes
enumTransformModes
Definition
kis_tool_multihand.h:69
KisToolMultihand::COPYTRANSLATEINTERVALS
@ COPYTRANSLATEINTERVALS
Definition
kis_tool_multihand.h:69
KisToolMultihand::SNOWFLAKE
@ SNOWFLAKE
Definition
kis_tool_multihand.h:69
KisToolMultihand::MIRROR
@ MIRROR
Definition
kis_tool_multihand.h:69
KisToolMultihand::SYMMETRY
@ SYMMETRY
Definition
kis_tool_multihand.h:69
KisToolMultihand::COPYTRANSLATE
@ COPYTRANSLATE
Definition
kis_tool_multihand.h:69
KisToolMultihand::TRANSLATE
@ TRANSLATE
Definition
kis_tool_multihand.h:69
KisToolMultihand::m_mirrorVertically
bool m_mirrorVertically
Definition
kis_tool_multihand.h:74
KisToolMultihand::finishAxesSetup
void finishAxesSetup()
Definition
kis_tool_multihand.cpp:530
KisToolMultihand::m_helper
KisToolMultihandHelper * m_helper
Definition
kis_tool_multihand.h:67
KisToolMultihand::continuePrimaryAction
void continuePrimaryAction(KoPointerEvent *event) override
Definition
kis_tool_multihand.cpp:86
KisToolMultihand::m_translateRadius
int m_translateRadius
Definition
kis_tool_multihand.h:77
KisToolMultihand::slotSetAxesAngle
void slotSetAxesAngle(qreal angle)
Definition
kis_tool_multihand.cpp:589
KisToolMultihand::m_mirrorHorizontally
bool m_mirrorHorizontally
Definition
kis_tool_multihand.h:75
KisToolMultihand::slotSetMirrorHorizontally
void slotSetMirrorHorizontally(bool mirror)
Definition
kis_tool_multihand.cpp:655
KisToolMultihand::m_handsCount
int m_handsCount
Definition
kis_tool_multihand.h:73
KisToolMultihand::m_axesPoint
QPointF m_axesPoint
Definition
kis_tool_multihand.h:71
KisToolMultihand::mouseMoveEvent
void mouseMoveEvent(KoPointerEvent *event) override
Definition
kis_tool_multihand.cpp:153
KisToolMultihand::m_setupAxesFlag
bool m_setupAxesFlag
Definition
kis_tool_multihand.h:79
KisToolMultihand::m_intervalY
int m_intervalY
Definition
kis_tool_multihand.h:85
KisToolMultihand::initTransformations
void initTransformations()
Definition
kis_tool_multihand.cpp:294
KisToolMultihand::m_subbrOriginalLocations
QVector< QPointF > m_subbrOriginalLocations
Definition
kis_tool_multihand.h:82
KisToolMultihand::KisToolMultihand
KisToolMultihand(KoCanvasBase *canvas)
Definition
kis_tool_multihand.cpp:28
KisToolMultihand::endPrimaryAction
void endPrimaryAction(KoPointerEvent *event) override
Definition
kis_tool_multihand.cpp:99
KoCanvasBase
Definition
KoCanvasBase.cpp:24
KoPointerEvent
Definition
KoPointerEvent.cpp:92
KoToolBase
Definition
KoToolBase.h:57
KoToolBase::action
QAction * action(const QString &name) const
Definition
KoToolBase.cpp:202
KoToolFactoryBase::setShortcut
void setShortcut(const QKeySequence &shortcut)
Definition
KoToolFactoryBase.cpp:198
KoToolFactoryBase::setSection
void setSection(const QString §ion)
Definition
KoToolFactoryBase.cpp:178
KoToolFactoryBase::setActivationShapeId
void setActivationShapeId(const QString &activationShapeId)
Definition
KoToolFactoryBase.cpp:168
KoToolFactoryBase::setIconName
void setIconName(const char *iconName)
Definition
KoToolFactoryBase.cpp:183
KoToolFactoryBase::setToolTip
void setToolTip(const QString &tooltip)
Definition
KoToolFactoryBase.cpp:173
KoToolFactoryBase::setPriority
void setPriority(int newPriority)
Definition
KoToolFactoryBase.cpp:193
KoViewConverter
Definition
KoViewConverter.h:32
QList
Definition
KisQStringListFwd.h:16
kis_icon.h
koIconNameCStr
#define koIconNameCStr(name)
Definition
kis_icon.h:28
KRITA_TOOL_ACTIVATION_ID
static const QString KRITA_TOOL_ACTIVATION_ID
Definition
kis_tool.h:37
kis_tool_brush.h
kis_tool_multihand_config.h
ToolBoxSection::Shape
static const QString Shape
Freehand and shapes like ellipses and lines.
Definition
KoToolFactoryBase.h:28
KisTool::AlternateAction
AlternateAction
Definition
kis_tool.h:134
Private::canvas
KisCanvas2 * canvas
Definition
KisFrameDisplayProxy.cpp:22
plugins
tools
basictools
kis_tool_multihand.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52