Krita Source Code Documentation
Loading...
Searching...
No Matches
KisToolMeasure Class Reference

#include <kis_tool_measure.h>

+ Inheritance diagram for KisToolMeasure:

Signals

void sigAngleChanged (double angle)
 
void sigDistanceChanged (double distance)
 
- Signals inherited from KisTool
void isActiveChanged (bool isActivated)
 
- Signals inherited from KoToolBase
void activateTool (const QString &id)
 
void cursorChanged (const QCursor &cursor)
 
void selectionChanged (bool hasSelection)
 
void statusTextChanged (const QString &statusText)
 
void textModeChanged (bool inTextMode)
 

Public Member Functions

void beginPrimaryAction (KoPointerEvent *event) override
 
void continuePrimaryAction (KoPointerEvent *event) override
 
QWidget * createOptionWidget () override
 
void endPrimaryAction (KoPointerEvent *event) override
 
 KisToolMeasure (KoCanvasBase *canvas)
 
QPointF lockedAngle (QPointF pos)
 
void paint (QPainter &gc, const KoViewConverter &converter) override
 
void showDistanceAngleOnCanvas ()
 
 ~KisToolMeasure () override
 
- Public Member Functions inherited from KisTool
virtual void activateAlternateAction (AlternateAction action)
 
virtual void activatePrimaryAction ()
 
virtual bool alternateActionSupportsHiResEvents (AlternateAction action) const
 
virtual void beginAlternateAction (KoPointerEvent *event, AlternateAction action)
 
virtual void beginAlternateDoubleClickAction (KoPointerEvent *event, AlternateAction action)
 
virtual void beginPrimaryDoubleClickAction (KoPointerEvent *event)
 
virtual void continueAlternateAction (KoPointerEvent *event, AlternateAction action)
 
virtual void deactivateAlternateAction (AlternateAction action)
 
virtual void deactivatePrimaryAction ()
 
void deleteSelection () override
 
virtual void endAlternateAction (KoPointerEvent *event, AlternateAction action)
 
virtual int flags () const
 
bool isActive () const
 
 KisTool (KoCanvasBase *canvas, const QCursor &cursor)
 
void mouseDoubleClickEvent (KoPointerEvent *event) override
 
void mouseMoveEvent (KoPointerEvent *event) override
 
void mousePressEvent (KoPointerEvent *event) override
 
void mouseReleaseEvent (KoPointerEvent *event) override
 
void mouseTripleClickEvent (KoPointerEvent *event) override
 
virtual void newActivationWithExternalSource (KisPaintDeviceSP externalSource)
 newActivationWithExternalSource Makes sure that the tool is active and starts a new stroke, which will be able to access the pixels from the specified external source.
 
KisTool::NodePaintAbility nodePaintAbility ()
 
virtual bool primaryActionSupportsHiResEvents () const
 
virtual bool supportsPaintingAssistants () const
 
 ~KisTool () override
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 
- Public Member Functions inherited from KoToolBase
QAction * action (const QString &name) const
 
KoCanvasBasecanvas () const
 Returns the canvas the tool is working on.
 
virtual void copy () const
 
QCursor cursor () const
 return the last emitted cursor
 
virtual void customMoveEvent (KoPointerEvent *event)
 
virtual void customPressEvent (KoPointerEvent *event)
 
virtual void customReleaseEvent (KoPointerEvent *event)
 
virtual void cut ()
 
virtual QRectF decorationsRect () const
 
int decorationThickness () const
 decorationThickness The minimum thickness for tool decoration lines, this is derived from the screen magnification, thus the HiDPI settings. Note: to use this effectively, also set the pen to isCosmetic(true);
 
virtual void deselect ()
 deselect the tool should clear the selection if it has one.
 
virtual void dragLeaveEvent (QDragLeaveEvent *event)
 
virtual void dragMoveEvent (QDragMoveEvent *event, const QPointF &point)
 
virtual void dropEvent (QDropEvent *event, const QPointF &point)
 
virtual void explicitUserStrokeEndRequest ()
 explicitUserStrokeEndRequest is called by the input manager when the user presses Enter key or any equivalent. This callback comes before requestStrokeEnd(), which comes from a different source.
 
KoToolFactoryBasefactory () const
 
virtual void focusInEvent (QFocusEvent *event)
 
virtual void focusOutEvent (QFocusEvent *event)
 
virtual bool hasSelection ()
 
virtual void inputMethodEvent (QInputMethodEvent *event)
 
virtual QVariant inputMethodQuery (Qt::InputMethodQuery query) const
 
bool isInTextMode () const
 
bool isOpacityPresetMode () const
 
virtual void keyPressEvent (QKeyEvent *event)
 
virtual void keyReleaseEvent (QKeyEvent *event)
 
 KoToolBase (KoCanvasBase *canvas)
 
bool maskSyntheticEvents () const
 
QList< QPointer< QWidget > > optionWidgets ()
 
virtual bool paste ()
 
virtual QMenu * popupActionsMenu ()
 
virtual KisPopupWidgetInterfacepopupWidget ()
 
virtual bool selectAll ()
 selectAll select all data the tool can select.
 
virtual KoToolSelectionselection ()
 
Q_INVOKABLE QString toolId () const
 
virtual bool wantsAutoScroll () const
 
 ~KoToolBase () override
 

Private Member Functions

double angle ()
 
QRectF boundingRect ()
 
double distance ()
 

Private Attributes

QVector2D m_baseLineVec {QPointF(1, 0)}
 
bool m_chooseBaseLineVec {false}
 
QPointF m_endPos {QPointF(0, 0)}
 
KisToolMeasureOptionsWidgetm_optionsWidget {nullptr}
 
QPointF m_startPos {QPointF(0, 0)}
 

Additional Inherited Members

- Public Types inherited from KisTool
enum  { FLAG_USES_CUSTOM_PRESET =0x01 , FLAG_USES_CUSTOM_COMPOSITEOP =0x02 , FLAG_USES_CUSTOM_SIZE =0x04 }
 
enum  AlternateAction {
  ChangeSize = AlternateChangeSize , ChangeSizeSnap = AlternateChangeSizeSnap , SampleFgNode = AlternateSampleFgNode , SampleBgNode = AlternateSampleBgNode ,
  SampleFgImage = AlternateSampleFgImage , SampleBgImage = AlternateSampleBgImage , Secondary = AlternateSecondary , Third = AlternateThird ,
  Fourth = AlternateFourth , Fifth = AlternateFifth , NONE = 10000
}
 
enum  NodePaintAbility {
  VECTOR , CLONE , PAINT , UNPAINTABLE ,
  MYPAINTBRUSH_UNPAINTABLE
}
 
enum  ToolAction {
  Primary , AlternateChangeSize , AlternateChangeSizeSnap , AlternateSampleFgNode ,
  AlternateSampleBgNode , AlternateSampleFgImage , AlternateSampleBgImage , AlternateSecondary ,
  AlternateThird , AlternateFourth , AlternateFifth , Alternate_NONE = 10000
}
 
- Public Slots inherited from KisTool
void activate (const QSet< KoShape * > &shapes) override
 
void canvasResourceChanged (int key, const QVariant &res) override
 
void deactivate () override
 
virtual void updateSettingsViews ()
 
- Public Slots inherited from KoToolBase
virtual void activate (const QSet< KoShape * > &shapes)
 
virtual void canvasResourceChanged (int key, const QVariant &res)
 
virtual void deactivate ()
 
virtual void documentResourceChanged (int key, const QVariant &res)
 
virtual void repaintDecorations ()
 
virtual void requestRedoDuringStroke ()
 
virtual void requestStrokeCancellation ()
 
virtual void requestStrokeEnd ()
 
virtual void requestUndoDuringStroke ()
 
void setStatusText (const QString &statusText)
 
void updateOptionsWidgetIcons ()
 
- Static Public Member Functions inherited from KisTool
static AlternateAction actionToAlternateAction (ToolAction action)
 
- Public Attributes inherited from KisTool
KoColor currentBgColor
 
float currentExposure {1.0}
 
KoColor currentFgColor
 
KisFilterConfigurationSP currentGenerator
 
KoAbstractGradientSP currentGradient
 
KoPatternSP currentPattern
 
QCursor cursor
 
bool m_isActive {false}
 
ToolMode m_mode {HOVER_MODE}
 
QWidget * optionWidget {0}
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 
- Protected Types inherited from KisTool
enum  ToolMode : int {
  HOVER_MODE , PAINT_MODE , SECONDARY_PAINT_MODE , MIRROR_AXIS_SETUP_MODE ,
  GESTURE_MODE , PAN_MODE , OTHER , OTHER_1
}
 
- Protected Slots inherited from KisTool
virtual void resetCursorStyle ()
 
- Protected Member Functions inherited from KisTool
bool blockUntilOperationsFinished ()
 
void blockUntilOperationsFinishedForced ()
 
QPointF convertDocumentToWidget (const QPointF &pt)
 
QPoint convertToImagePixelCoordFloored (KoPointerEvent *e)
 
QPointF convertToPixelCoord (const QPointF &pt)
 
QPointF convertToPixelCoord (KoPointerEvent *e)
 
QPointF convertToPixelCoordAndAlignOnWidget (const QPointF &pt)
 
QPointF convertToPixelCoordAndSnap (const QPointF &pt, const QPointF &offset=QPointF())
 
QPointF convertToPixelCoordAndSnap (KoPointerEvent *e, const QPointF &offset=QPointF(), bool useModifiers=true)
 
QRectF convertToPt (const QRectF &rect)
 
qreal convertToPt (qreal value)
 
KoColor currentBgColor ()
 
KoColor currentFgColor ()
 
KisFilterConfigurationSP currentGenerator ()
 
KoAbstractGradientSP currentGradient ()
 
KisImageWSP currentImage ()
 
KisNodeSP currentNode () const
 
KisPaintOpPresetSP currentPaintOpPreset ()
 
KoPatternSP currentPattern ()
 
QCursor cursor () const
 
KisImageWSP image () const
 
virtual bool listeningToModifiers ()
 
virtual void listenToModifiers (bool listen)
 
virtual ToolMode mode () const
 
bool nodeEditable ()
 Checks checks if the current node is editable.
 
bool overrideCursorIfNotEditable ()
 Override the cursor appropriately if current node is not editable.
 
void paintToolOutline (QPainter *painter, const KisOptimizedBrushOutline &path)
 
KisOptimizedBrushOutline pixelToView (const KisOptimizedBrushOutline &path) const
 
QPainterPath pixelToView (const QPainterPath &pixelPath) const
 Convert a pixel path into a view path.
 
QPointF pixelToView (const QPoint &pixelCoord) const
 
QPointF pixelToView (const QPointF &pixelCoord) const
 Convert a floating point pixel coordinate into a view coordinate.
 
QPolygonF pixelToView (const QPolygonF &pixelPolygon) const
 Convert a pixel polygon into a view path.
 
QRectF pixelToView (const QRectF &pixelRect) const
 Convert a pixel rectangle into a view rectangle.
 
KisNodeList selectedNodes () const
 
bool selectionEditable ()
 Checks checks if the selection is editable, only applies to local selection as global selection is always editable.
 
void setCursor (const QCursor &cursor)
 
virtual void setMode (ToolMode mode)
 
void updateCanvasPixelRect (const QRectF &pixelRect)
 Update the canvas for the given rectangle in image pixel coordinates.
 
void updateCanvasViewRect (const QRectF &viewRect)
 Update the canvas for the given rectangle in view coordinates.
 
QPointF viewToPixel (const QPointF &viewCoord) const
 
QPointF widgetCenterInWidgetPixels ()
 
- Protected Member Functions inherited from KoToolBase
virtual QList< QPointer< QWidget > > createOptionWidgets ()
 
int grabSensitivity () const
 Convenience function to get the current grab sensitivity.
 
qreal handleDocRadius () const
 
QRectF handleGrabRect (const QPointF &position) const
 
QRectF handlePaintRect (const QPointF &position) const
 
int handleRadius () const
 Convenience function to get the current handle radius.
 
bool isActivated () const
 
 KoToolBase (KoToolBasePrivate &dd)
 
KoPointerEventlastDeliveredPointerEvent () const
 
void setAbstractResource (KoAbstractCanvasResourceInterfaceSP abstractResource)
 
void setConverter (KoDerivedResourceConverterSP converter)
 
void setIsOpacityPresetMode (bool value)
 
void setMaskSyntheticEvents (bool value)
 
void setTextMode (bool value)
 
QHash< int, KoAbstractCanvasResourceInterfaceSPtoolAbstractResources ()
 
QHash< int, KoDerivedResourceConverterSPtoolConverters ()
 
void useCursor (const QCursor &cursor)
 
- Protected Attributes inherited from KoToolBase
KoToolBasePrivated_ptr
 
- Properties inherited from KisTool
bool isActive
 

Detailed Description

Definition at line 55 of file kis_tool_measure.h.

Constructor & Destructor Documentation

◆ KisToolMeasure()

KisToolMeasure::KisToolMeasure ( KoCanvasBase * canvas)

Definition at line 99 of file kis_tool_measure.cc.

101{
102}
static QCursor crossCursor()
Definition kis_cursor.cc:34
KisTool(KoCanvasBase *canvas, const QCursor &cursor)
Definition kis_tool.cc:78
KisCanvas2 * canvas

◆ ~KisToolMeasure()

KisToolMeasure::~KisToolMeasure ( )
override

Definition at line 104 of file kis_tool_measure.cc.

105{
106}

Member Function Documentation

◆ angle()

double KisToolMeasure::angle ( )
private

Definition at line 257 of file kis_tool_measure.cc.

258{
259 double dot = QVector2D::dotProduct(QVector2D(m_endPos-m_startPos).normalized(), m_baseLineVec);
260 return acos(qAbs(dot)) / (2*M_PI)*360;
261}
QVector2D m_baseLineVec
#define M_PI
Definition kis_global.h:111

References m_baseLineVec, m_endPos, M_PI, and m_startPos.

◆ beginPrimaryAction()

void KisToolMeasure::beginPrimaryAction ( KoPointerEvent * event)
overridevirtual

Called by KisToolProxy when a primary action for the tool is started. The event stores the original event that started the stroke. The event is accepted by default. If the tool decides to ignore this particular action (e.g. when the node is not editable), it should call event->ignore(). Then no further continuePrimaryAction() or endPrimaryAction() will be called until the next user action.

Reimplemented from KisTool.

Definition at line 183 of file kis_tool_measure.cc.

184{
186
187 // Erase old temporary lines
189
192 m_baseLineVec = QVector2D(1.0f, 0.0f);
193
194 Q_EMIT sigDistanceChanged(0.0);
195 Q_EMIT sigAngleChanged(0.0);
196}
void updateCanvas(const QRectF &rc) override
void sigAngleChanged(double angle)
void sigDistanceChanged(double distance)
QPointF convertToPixelCoord(KoPointerEvent *e)
Definition kis_tool.cc:189
QRectF convertToPt(const QRectF &rect)
Definition kis_tool.cc:252
@ PAINT_MODE
Definition kis_tool.h:300
virtual void setMode(ToolMode mode)
Definition kis_tool.cc:403

References boundingRect(), Private::canvas, KisTool::convertToPixelCoord(), KisTool::convertToPt(), m_baseLineVec, m_endPos, m_startPos, KisTool::PAINT_MODE, KisTool::setMode(), sigAngleChanged(), sigDistanceChanged(), and KisCanvas2::updateCanvas().

◆ boundingRect()

QRectF KisToolMeasure::boundingRect ( )
private

Definition at line 268 of file kis_tool_measure.cc.

269{
270 QRectF bound;
271 bound.setTopLeft(m_startPos);
272 bound.setBottomRight(m_endPos);
273 bound = bound.united(QRectF(m_startPos.x() - INNER_RADIUS, m_startPos.y() - INNER_RADIUS, 2 * INNER_RADIUS, 2 * INNER_RADIUS));
274 return bound.normalized();
275}
#define INNER_RADIUS

References INNER_RADIUS, m_endPos, and m_startPos.

◆ continuePrimaryAction()

void KisToolMeasure::continuePrimaryAction ( KoPointerEvent * event)
overridevirtual

Called by KisToolProxy when the primary action is in progress of pointer movement. If the tool has ignored the event in beginPrimaryAction(), this method will not be called.

Reimplemented from KisTool.

Definition at line 198 of file kis_tool_measure.cc.

199{
201
202 // Erase old temporary lines
204
205 QPointF pos = convertToPixelCoord(event);
206
207 if (event->modifiers() & Qt::AltModifier) {
208 QPointF trans = pos - m_endPos;
209 m_startPos += trans;
210 m_endPos += trans;
211 } else if(event->modifiers() & Qt::ShiftModifier){
212 m_endPos = lockedAngle(pos);
213 } else {
214 m_endPos = pos;
215 }
216
217 if(!(event->modifiers() & Qt::ControlModifier)) {
218 m_chooseBaseLineVec = false;
219 } else if(!m_chooseBaseLineVec) {
220 m_chooseBaseLineVec = true;
221 m_baseLineVec = QVector2D(m_endPos-m_startPos).normalized();
222 }
223
226 Q_EMIT sigAngleChanged(angle());
228}
void showDistanceAngleOnCanvas()
QPointF lockedAngle(QPointF pos)
Qt::KeyboardModifiers modifiers() const
#define CHECK_MODE_SANITY_OR_RETURN(_mode)
Definition kis_tool.h:27

References angle(), boundingRect(), Private::canvas, CHECK_MODE_SANITY_OR_RETURN, KisTool::convertToPixelCoord(), KisTool::convertToPt(), distance(), lockedAngle(), m_baseLineVec, m_chooseBaseLineVec, m_endPos, m_startPos, KoPointerEvent::modifiers(), KisTool::PAINT_MODE, showDistanceAngleOnCanvas(), sigAngleChanged(), sigDistanceChanged(), and KisCanvas2::updateCanvas().

◆ createOptionWidget()

QWidget * KisToolMeasure::createOptionWidget ( )
overridevirtual

Reimplement this if your tool actually has an option widget. Sets the option widget to 0 by default.

Reimplemented from KisTool.

Definition at line 238 of file kis_tool_measure.cc.

239{
240 if (!currentImage())
241 return nullptr;
243
244 // See https://bugs.kde.org/show_bug.cgi?id=316896
245 QWidget *specialSpacer = new QWidget(m_optionsWidget);
246 specialSpacer->setObjectName("SpecialSpacer");
247 specialSpacer->setFixedSize(0, 0);
248 m_optionsWidget->layout()->addWidget(specialSpacer);
249
250 m_optionsWidget->setObjectName(toolId() + " option widget");
251 connect(this, SIGNAL(sigDistanceChanged(double)), m_optionsWidget, SLOT(slotSetDistance(double)));
252 connect(this, SIGNAL(sigAngleChanged(double)), m_optionsWidget, SLOT(slotSetAngle(double)));
253 m_optionsWidget->setFixedHeight(m_optionsWidget->sizeHint().height());
254 return m_optionsWidget;
255}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisToolMeasureOptionsWidget * m_optionsWidget
Q_INVOKABLE QString toolId() const
KisImageWSP currentImage()
Definition kis_tool.cc:393

References connect(), KisTool::currentImage(), m_optionsWidget, sigAngleChanged(), sigDistanceChanged(), and KoToolBase::toolId().

◆ distance()

double KisToolMeasure::distance ( )
private

Definition at line 263 of file kis_tool_measure.cc.

264{
265 return QVector2D(m_endPos - m_startPos).length();
266}

References m_endPos, and m_startPos.

◆ endPrimaryAction()

void KisToolMeasure::endPrimaryAction ( KoPointerEvent * event)
overridevirtual

Called by KisToolProxy when the primary action is being finished, that is while mouseRelease or tabletRelease event. If the tool has ignored the event in beginPrimaryAction(), this method will not be called.

Reimplemented from KisTool.

Definition at line 230 of file kis_tool_measure.cc.

231{
233
234 Q_UNUSED(event);
236}
@ HOVER_MODE
Definition kis_tool.h:299

References CHECK_MODE_SANITY_OR_RETURN, KisTool::HOVER_MODE, KisTool::PAINT_MODE, and KisTool::setMode().

◆ lockedAngle()

QPointF KisToolMeasure::lockedAngle ( QPointF pos)

Definition at line 107 of file kis_tool_measure.cc.

108{
109 const QPointF lineVector = pos - m_startPos;
110 qreal lineAngle = normalizeAngle(std::atan2(lineVector.y(), lineVector.x()));
111
112 const qreal ANGLE_BETWEEN_CONSTRAINED_LINES = (2 * M_PI) / 24;
113
114 const quint32 constrainedLineIndex = static_cast<quint32>((lineAngle / ANGLE_BETWEEN_CONSTRAINED_LINES) + 0.5);
115 const qreal constrainedLineAngle = constrainedLineIndex * ANGLE_BETWEEN_CONSTRAINED_LINES;
116
117 const qreal lineLength = KisAlgebra2D::norm(lineVector);
118
119 const QPointF constrainedLineVector(lineLength * std::cos(constrainedLineAngle), lineLength * std::sin(constrainedLineAngle));
120
121 const QPointF result = m_startPos + constrainedLineVector;
122
123 return result;
124}
std::enable_if< std::is_floating_point< T >::value, T >::type normalizeAngle(T a)
Definition kis_global.h:121
qreal norm(const T &a)

References M_PI, m_startPos, KisAlgebra2D::norm(), and normalizeAngle().

◆ paint()

void KisToolMeasure::paint ( QPainter & painter,
const KoViewConverter & converter )
overridevirtual

Called by the canvas to paint any decorations that the tool deems needed. The painter has the top left of the canvas as its origin.

Parameters
painterused for painting the shape
converterto convert between internal and view coordinates.

Implements KoToolBase.

Definition at line 126 of file kis_tool_measure.cc.

127{
128 QPen old = gc.pen();
129 QPen pen(Qt::SolidLine);
130 gc.setPen(pen);
131
132 QPainterPath elbowPath;
133 elbowPath.moveTo(m_endPos);
134 elbowPath.lineTo(m_startPos);
135
136 QPointF offset = (m_baseLineVec * INNER_RADIUS).toPoint();
137 QPointF diff = m_endPos-m_startPos;
138
139 bool switch_elbow = QPointF::dotProduct(diff, offset) > 0.0;
140 if(switch_elbow) {
141 elbowPath.lineTo(m_startPos + offset);
142 } else {
143 elbowPath.lineTo(m_startPos - offset);
144 }
145
146 if (distance() >= INNER_RADIUS) {
147 QRectF rectangle(m_startPos.x() - INNER_RADIUS, m_startPos.y() - INNER_RADIUS, 2*INNER_RADIUS, 2*INNER_RADIUS);
148
149 double det = diff.x() * m_baseLineVec.y() - diff.y() * m_baseLineVec.x();
150 int startAngle = -atan2(m_baseLineVec.y(), m_baseLineVec.x()) / (2*M_PI) * 360;
151 int spanAngle = switch_elbow ? -angle() : angle();
152
153 if(!switch_elbow) {
154 startAngle+=180;
155 startAngle%=360;
156 }
157
158 if(det > 0) {
159 spanAngle = -spanAngle;
160 }
161
162 elbowPath.arcTo(rectangle, startAngle, spanAngle);
163 }
164
165 // The opengl renderer doesn't take the QPainter's transform, so the path is scaled here
166 qreal sx, sy;
167 converter.zoom(&sx, &sy);
168 QTransform transf;
169 transf.scale(sx / currentImage()->xRes(), sy / currentImage()->yRes());
170 paintToolOutline(&gc, transf.map(elbowPath));
171
172 gc.setPen(old);
173}
virtual void zoom(qreal *zoomX, qreal *zoomY) const
KRITAIMAGE_EXPORT qreal atan2(qreal y, qreal x)
atan2 replacement
void paintToolOutline(QPainter *painter, const KisOptimizedBrushOutline &path)
Definition kis_tool.cc:589

References angle(), KisTool::currentImage(), distance(), INNER_RADIUS, m_baseLineVec, m_endPos, M_PI, m_startPos, KisTool::paintToolOutline(), and KoViewConverter::zoom().

◆ showDistanceAngleOnCanvas()

void KisToolMeasure::showDistanceAngleOnCanvas ( )

Definition at line 174 of file kis_tool_measure.cc.

175{
176 KisCanvas2 *kisCanvas = qobject_cast<KisCanvas2*>(canvas());
177 QString message = i18nc("%1=distance %2=unit of distance %3=angle in degrees", "%1 %2\n%3°",
180 QString::number(angle(),'f',1));
181 kisCanvas->viewManager()->showFloatingMessage(message, QIcon(), 2000, KisFloatingMessage::High);
182}
KisViewManager * viewManager() const
void showFloatingMessage(const QString &message, const QIcon &icon, int timeout=4500, KisFloatingMessage::Priority priority=KisFloatingMessage::Medium, int alignment=Qt::AlignCenter|Qt::TextWordWrap)
shows a floating message in the top right corner of the canvas
QString symbol() const
Get the symbol string of the unit.
Definition KoUnit.cpp:347

References angle(), Private::canvas, KisFloatingMessage::High, KisToolMeasureOptionsWidget::m_distanceLabel, m_optionsWidget, KisToolMeasureOptionsWidget::m_unit, KisViewManager::showFloatingMessage(), KoUnit::symbol(), and KisCanvas2::viewManager().

◆ sigAngleChanged

void KisToolMeasure::sigAngleChanged ( double angle)
signal

◆ sigDistanceChanged

void KisToolMeasure::sigDistanceChanged ( double distance)
signal

Member Data Documentation

◆ m_baseLineVec

QVector2D KisToolMeasure::m_baseLineVec {QPointF(1, 0)}
private

Definition at line 89 of file kis_tool_measure.h.

89{QPointF(1, 0)};

◆ m_chooseBaseLineVec

bool KisToolMeasure::m_chooseBaseLineVec {false}
private

Definition at line 90 of file kis_tool_measure.h.

90{false};

◆ m_endPos

QPointF KisToolMeasure::m_endPos {QPointF(0, 0)}
private

Definition at line 88 of file kis_tool_measure.h.

88{QPointF(0, 0)};

◆ m_optionsWidget

KisToolMeasureOptionsWidget* KisToolMeasure::m_optionsWidget {nullptr}
private

Definition at line 85 of file kis_tool_measure.h.

85{nullptr};

◆ m_startPos

QPointF KisToolMeasure::m_startPos {QPointF(0, 0)}
private

Definition at line 87 of file kis_tool_measure.h.

87{QPointF(0, 0)};

The documentation for this class was generated from the following files: