Krita Source Code Documentation
Loading...
Searching...
No Matches
KisCanvasNavigationActionStrategy.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2026 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#ifndef KISCANVASNAVIGATIONACTIONSTRATEGY_H
8
#define KISCANVASNAVIGATIONACTIONSTRATEGY_H
9
10
#include <QtGlobal>
11
#include <QFlags>
12
13
class
QEvent;
14
15
class
KisCanvasNavigationActionStrategy
16
{
17
public
:
18
enum
Flag
{
19
None
= 0x0,
20
PanEnabled
= 0x1,
21
ZoomEnabled
= 0x2,
22
RotationEnabled
= 0x4,
23
ZoomDescrete
= 0x8,
24
RotationDescrete
= 0x10,
25
};
26
Q_DECLARE_FLAGS
(Flags,
Flag
)
27
28
public
:
29
KisCanvasNavigationActionStrategy
(
const
Flags &
flags
);
30
virtual
~KisCanvasNavigationActionStrategy
() =
default
;
31
32
virtual
bool
supportsEvent
(QEvent* event)
const
= 0;
33
virtual
void
inputEvent
(QEvent* event) = 0;
34
35
Flags
flags
()
const
;
36
37
public
:
38
struct
SnappedRotationData
{
39
qreal
previousAngle
{0.0};
40
qreal
initialReferenceAngle
{0.0};
41
qreal
accumRotationAngle
{0.0};
42
};
43
44
static
qreal
canvasRotationAngleContinuous
(qreal currentRotationOffset, qreal currectCanvasRotation, SnappedRotationData &data);
45
static
qreal
canvasRotationAngleDescrete
(qreal currentRotationOffset, SnappedRotationData &data);
46
private
:
47
Flags
m_flags
{
None
};
48
};
49
50
Q_DECLARE_OPERATORS_FOR_FLAGS
(KisCanvasNavigationActionStrategy::Flags);
51
52
#endif
// KISCANVASNAVIGATIONACTIONSTRATEGY_H
Q_DECLARE_OPERATORS_FOR_FLAGS
Q_DECLARE_OPERATORS_FOR_FLAGS(KisCanvasNavigationActionStrategy::Flags)
Q_DECLARE_FLAGS
Q_DECLARE_FLAGS(KisUpdaterContextSnapshotEx, KisUpdaterContextSnapshotExTag)
KisCanvasNavigationActionStrategy
Definition
KisCanvasNavigationActionStrategy.h:16
KisCanvasNavigationActionStrategy::Flag
Flag
Definition
KisCanvasNavigationActionStrategy.h:18
KisCanvasNavigationActionStrategy::PanEnabled
@ PanEnabled
Definition
KisCanvasNavigationActionStrategy.h:20
KisCanvasNavigationActionStrategy::RotationDescrete
@ RotationDescrete
Definition
KisCanvasNavigationActionStrategy.h:24
KisCanvasNavigationActionStrategy::None
@ None
Definition
KisCanvasNavigationActionStrategy.h:19
KisCanvasNavigationActionStrategy::ZoomEnabled
@ ZoomEnabled
Definition
KisCanvasNavigationActionStrategy.h:21
KisCanvasNavigationActionStrategy::ZoomDescrete
@ ZoomDescrete
Definition
KisCanvasNavigationActionStrategy.h:23
KisCanvasNavigationActionStrategy::RotationEnabled
@ RotationEnabled
Definition
KisCanvasNavigationActionStrategy.h:22
KisCanvasNavigationActionStrategy::flags
Flags flags() const
Definition
KisCanvasNavigationActionStrategy.cpp:81
KisCanvasNavigationActionStrategy::canvasRotationAngleContinuous
static qreal canvasRotationAngleContinuous(qreal currentRotationOffset, qreal currectCanvasRotation, SnappedRotationData &data)
Definition
KisCanvasNavigationActionStrategy.cpp:23
KisCanvasNavigationActionStrategy::m_flags
Flags m_flags
Definition
KisCanvasNavigationActionStrategy.h:47
KisCanvasNavigationActionStrategy::supportsEvent
virtual bool supportsEvent(QEvent *event) const =0
KisCanvasNavigationActionStrategy::canvasRotationAngleDescrete
static qreal canvasRotationAngleDescrete(qreal currentRotationOffset, SnappedRotationData &data)
Definition
KisCanvasNavigationActionStrategy.cpp:48
KisCanvasNavigationActionStrategy::KisCanvasNavigationActionStrategy
KisCanvasNavigationActionStrategy(const Flags &flags)
Definition
KisCanvasNavigationActionStrategy.cpp:76
KisCanvasNavigationActionStrategy::~KisCanvasNavigationActionStrategy
virtual ~KisCanvasNavigationActionStrategy()=default
KisCanvasNavigationActionStrategy::inputEvent
virtual void inputEvent(QEvent *event)=0
KisCanvasNavigationActionStrategy::SnappedRotationData
Definition
KisCanvasNavigationActionStrategy.h:38
KisCanvasNavigationActionStrategy::SnappedRotationData::previousAngle
qreal previousAngle
Definition
KisCanvasNavigationActionStrategy.h:39
KisCanvasNavigationActionStrategy::SnappedRotationData::initialReferenceAngle
qreal initialReferenceAngle
Definition
KisCanvasNavigationActionStrategy.h:40
KisCanvasNavigationActionStrategy::SnappedRotationData::accumRotationAngle
qreal accumRotationAngle
Definition
KisCanvasNavigationActionStrategy.h:41
libs
ui
input
KisCanvasNavigationActionStrategy.h
Generated at
2026-10-16 02:30:01+02:00
from
Krita
branch
master
, commit
2568c1a0ec2a5af697f89c15cc373a490ae7c70d