Krita Source Code Documentation
Loading...
Searching...
No Matches
KoRuler_p.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2007 Thomas Zander <zander@kde.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6#ifndef KORULER_P_H
7#define KORULER_P_H
8
9#include <KoUnit.h>
10
11class RulerTabChooser : public QWidget
12{
13public:
14 RulerTabChooser(QWidget *parent) : QWidget(parent), m_type(QTextOption::LeftTab), m_showTabs(false) {}
15 ~RulerTabChooser() override {}
16
17 inline QTextOption::TabType type() {return m_type;}
18 void setShowTabs(bool showTabs) { if (m_showTabs == showTabs) return; m_showTabs = showTabs; update(); }
19 void mousePressEvent(QMouseEvent *) override;
20
21 void paintEvent(QPaintEvent *) override;
22
23private:
24 QTextOption::TabType m_type { QTextOption::LeftTab };
25 bool m_showTabs :1;
26};
27
29{
30public:
34 virtual ~PaintingStrategy() {}
35
41 virtual QRectF drawBackground(const KoRulerPrivate *ruler, QPainter &painter) = 0;
42
48 virtual void drawTabs(const KoRulerPrivate *ruler, QPainter &painter) = 0;
49
56 virtual void drawMeasurements(const KoRulerPrivate *ruler, QPainter &painter, const QRectF &rectangle) = 0;
57
63 virtual void drawIndents(const KoRulerPrivate *ruler, QPainter &painter) = 0;
64
68 virtual QSize sizeHint() = 0;
69};
70
72{
73public:
75
76 QRectF drawBackground(const KoRulerPrivate *ruler, QPainter &painter) override;
77 void drawTabs(const KoRulerPrivate *ruler, QPainter &painter) override;
78 void drawMeasurements(const KoRulerPrivate *ruler, QPainter &painter, const QRectF &rectangle) override;
79 void drawIndents(const KoRulerPrivate *ruler, QPainter &painter) override;
80 QSize sizeHint() override;
81
82private:
83 qreal lengthInPixel {0.0};
84};
85
87{
88public:
90
91 QRectF drawBackground(const KoRulerPrivate *ruler, QPainter &painter) override;
92 void drawTabs(const KoRulerPrivate *, QPainter &) override {}
93 void drawMeasurements(const KoRulerPrivate *ruler, QPainter &painter, const QRectF &rectangle) override;
94 void drawIndents(const KoRulerPrivate *, QPainter &) override { }
95 QSize sizeHint() override;
96
97private:
98 qreal lengthInPixel {0.0};
99};
100
102{
103public:
105
106 void drawMeasurements(const KoRulerPrivate *ruler, QPainter &painter, const QRectF &rectangle) override;
107
108private:
109 void drawDistanceLine(const KoRulerPrivate *d, QPainter &painter, const qreal start, const qreal end);
110};
111
113{
114public:
115 KoRulerPrivate(KoRuler *parent, const KoViewConverter *vc, Qt::Orientation orientation);
117
118 void emitTabChanged();
119
121 const Qt::Orientation orientation;
123
124 int offset { 0 };
125 qreal rulerLength {0.0};
126 qreal activeRangeStart {0.0};
127 qreal activeRangeEnd {0.0};
130
133
137
138 bool showIndents {false};
139 qreal firstLineIndent {0.0};
140 qreal paragraphIndent {0.0};
141 qreal endIndent {0.0};
142
143 bool showTabs {false};
144 bool relativeTabs {false};
145 bool tabMoved {false}; // set to true on first move of a selected tab
147 int originalIndex {0}; //index of selected tab before we started dragging it.
148 int currentIndex {0}; //index of selected tab or selected HotSpot - only valid when selected indicates tab or hotspot
150 qreal tabDistance {0.0};
151
152 struct HotSpotData {
153 qreal position;
154 int id;
155 };
157
158 bool rightToLeft {false};
169
171
173
174 // Cached painting strategies
177
178 // Current painting strategy
180
182
184
185 qreal pixelStep {0.0};
186
187 qreal numberStepForUnit() const;
189 qreal doSnapping(const qreal value) const;
190 Selection selectionAtPosition(const QPoint & pos, int *selectOffset = 0);
191 int hotSpotIndex(const QPoint & pos);
192 qreal effectiveActiveRangeStart() const;
193 qreal effectiveActiveRangeEnd() const;
194
197};
198
199#endif
float value(const T *src, size_t ch)
void drawDistanceLine(const KoRulerPrivate *d, QPainter &painter, const qreal start, const qreal end)
Definition KoRuler.cpp:600
void drawMeasurements(const KoRulerPrivate *ruler, QPainter &painter, const QRectF &rectangle) override
Definition KoRuler.cpp:647
void drawIndents(const KoRulerPrivate *ruler, QPainter &painter) override
Definition KoRuler.cpp:378
void drawTabs(const KoRulerPrivate *ruler, QPainter &painter) override
Definition KoRuler.cpp:160
QSize sizeHint() override
Definition KoRuler.cpp:426
QRectF drawBackground(const KoRulerPrivate *ruler, QPainter &painter) override
Definition KoRuler.cpp:118
void drawMeasurements(const KoRulerPrivate *ruler, QPainter &painter, const QRectF &rectangle) override
Definition KoRuler.cpp:248
qreal tabDistance
Definition KoRuler_p.h:150
qreal firstLineIndent
Definition KoRuler_p.h:139
int hotSpotIndex(const QPoint &pos)
Definition KoRuler.cpp:784
bool guideCreationStarted
Definition KoRuler_p.h:183
RulerTabChooser * tabChooser
Definition KoRuler_p.h:172
KoRuler * ruler
Definition KoRuler_p.h:181
qreal paragraphIndent
Definition KoRuler_p.h:140
PaintingStrategy * paintingStrategy
Definition KoRuler_p.h:179
qreal activeRangeEnd
Definition KoRuler_p.h:127
QList< HotSpotData > hotspots
Definition KoRuler_p.h:156
QList< QAction * > popupActions
Definition KoRuler_p.h:170
int showMousePosition
Definition KoRuler_p.h:132
qreal firstSelectionBorder
Definition KoRuler_p.h:135
qreal effectiveActiveRangeEnd() const
Definition KoRuler.cpp:808
qreal secondSelectionBorder
Definition KoRuler_p.h:136
KoRuler::Tab deletedTab
Definition KoRuler_p.h:149
qreal numberStepForUnit() const
Definition KoRuler.cpp:710
qreal activeOverrideRangeStart
Definition KoRuler_p.h:128
KoRulerPrivate(KoRuler *parent, const KoViewConverter *vc, Qt::Orientation orientation)
Definition KoRuler.cpp:666
qreal activeOverrideRangeEnd
Definition KoRuler_p.h:129
void emitTabChanged()
Definition KoRuler.cpp:817
qreal doSnapping(const qreal value) const
Definition KoRuler.cpp:727
const KoViewConverter *const viewConverter
Definition KoRuler_p.h:122
qreal effectiveActiveRangeStart() const
Definition KoRuler.cpp:799
qreal activeRangeStart
Definition KoRuler_p.h:126
QList< KoRuler::Tab > tabs
Definition KoRuler_p.h:146
qreal rulerLength
Definition KoRuler_p.h:125
const Qt::Orientation orientation
Definition KoRuler_p.h:121
Selection selectionAtPosition(const QPoint &pos, int *selectOffset=0)
Definition KoRuler.cpp:733
PaintingStrategy * distancesPaintingStrategy
Definition KoRuler_p.h:176
PaintingStrategy * normalPaintingStrategy
Definition KoRuler_p.h:175
Selection selected
Definition KoRuler_p.h:167
bool showSelectionBorders
Definition KoRuler_p.h:134
PaintingStrategy()
constructor
Definition KoRuler_p.h:32
virtual void drawTabs(const KoRulerPrivate *ruler, QPainter &painter)=0
virtual ~PaintingStrategy()
destructor
Definition KoRuler_p.h:34
virtual QRectF drawBackground(const KoRulerPrivate *ruler, QPainter &painter)=0
virtual QSize sizeHint()=0
virtual void drawIndents(const KoRulerPrivate *ruler, QPainter &painter)=0
virtual void drawMeasurements(const KoRulerPrivate *ruler, QPainter &painter, const QRectF &rectangle)=0
void setShowTabs(bool showTabs)
Definition KoRuler_p.h:18
QTextOption::TabType type()
Definition KoRuler_p.h:17
RulerTabChooser(QWidget *parent)
Definition KoRuler_p.h:14
void paintEvent(QPaintEvent *) override
Definition KoRuler.cpp:62
QTextOption::TabType m_type
Definition KoRuler_p.h:24
~RulerTabChooser() override
Definition KoRuler_p.h:15
void mousePressEvent(QMouseEvent *) override
Definition KoRuler.cpp:39
void drawMeasurements(const KoRulerPrivate *ruler, QPainter &painter, const QRectF &rectangle) override
Definition KoRuler.cpp:478
void drawIndents(const KoRulerPrivate *, QPainter &) override
Definition KoRuler_p.h:94
QRectF drawBackground(const KoRulerPrivate *ruler, QPainter &painter) override
Definition KoRuler.cpp:436
QSize sizeHint() override
Definition KoRuler.cpp:589
void drawTabs(const KoRulerPrivate *, QPainter &) override
Definition KoRuler_p.h:92
For paragraphs each tab definition is represented by this struct.
Definition KoRuler.h:43