Pencil2D Animation
Download Community News Docs Contribute
  • Overview
  • Articles
  • Code
  •  
  • Class List
  • Class Index
  • Class Hierarchy
  • Class Members
  • File List
Loading...
Searching...
No Matches
Public Slots | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
StrokeTool Class Reference
+ Inheritance diagram for StrokeTool:
Inheritance graph
[legend]
+ Collaboration diagram for StrokeTool:
Collaboration graph
[legend]

Public Slots

void onPreferenceChanged (SETTING setting)
 
void onViewUpdated ()
 

Public Member Functions

 StrokeTool (QObject *parent)
 
void startStroke (PointerEvent::InputType inputType)
 
void drawStroke ()
 
void endStroke ()
 
bool leavingThisTool () override
 Will clean up active connections.
 
bool enteringThisTool () override
 Setup active connections here that should only emit while tool is active leavingThisTool will handle the cleanup of active connections.
 
void updateCanvasCursor ()
 
void loadSettings () override
 
bool isActive () const override
 Check if the tool is active.
 
bool keyPressEvent (QKeyEvent *event) override
 
void pointerPressEvent (PointerEvent *event) override
 
void pointerMoveEvent (PointerEvent *event) override
 
void pointerReleaseEvent (PointerEvent *event) override
 
bool enterEvent (QEnterEvent *) override
 
bool leaveEvent (QEvent *) override
 
bool handleQuickSizing (PointerEvent *event)
 
void paint (QPainter &painter, const QRect &blitRect) override
 
- Public Member Functions inherited from BaseTool
QString typeName ()
 
void initialize (Editor *editor)
 
virtual ToolType type ()=0
 
virtual void loadSettings ()=0
 
virtual void saveSettings ()=0
 
virtual QCursor cursor ()
 
virtual void pointerPressEvent (PointerEvent *)=0
 
virtual void pointerMoveEvent (PointerEvent *)=0
 
virtual void pointerReleaseEvent (PointerEvent *)=0
 
virtual void pointerDoubleClickEvent (PointerEvent *)
 
virtual bool keyPressEvent (QKeyEvent *)
 
virtual bool keyReleaseEvent (QKeyEvent *)
 
virtual bool enterEvent (QEnterEvent *)
 
virtual bool leaveEvent (QEvent *)
 
virtual void clearToolData ()
 
virtual void resetToDefault ()
 
virtual bool isActive () const
 Check if the tool is active.
 
virtual void setWidth (const qreal width)
 
virtual void setFeather (const qreal feather)
 
virtual void setInvisibility (const bool invisibility)
 
virtual void setBezier (const bool bezier_state)
 
virtual void setClosedPath (const bool closed)
 
virtual void setPressure (const bool pressure)
 
virtual void setUseFeather (const bool usingFeather)
 
virtual void setPreserveAlpha (const bool preserveAlpha)
 
virtual void setVectorMergeEnabled (const bool vectorMergeEnabled)
 
virtual void setAA (const int useAA)
 
virtual void setFillMode (const int mode)
 
virtual void setStabilizerLevel (const int level)
 
virtual void setTolerance (const int tolerance)
 
virtual void setToleranceEnabled (const bool enabled)
 
virtual void setFillExpand (const int fillExpandValue)
 
virtual void setFillExpandEnabled (const bool enabled)
 
virtual void setFillReferenceMode (int referenceMode)
 
virtual void setUseFillContour (const bool useFillContour)
 
virtual void setShowSelectionInfo (const bool b)
 
virtual void setShowCameraPath (const bool showCameraPath)
 
virtual void setPathDotColorType (const DotColorType dotColorType)
 
virtual void resetCameraPath ()
 
virtual void paint (QPainter &painter, const QRect &blitRect)
 
virtual bool leavingThisTool ()
 Will clean up active connections.
 
virtual bool enteringThisTool ()
 Setup active connections here that should only emit while tool is active leavingThisTool will handle the cleanup of active connections.
 
bool isPropertyEnabled (ToolPropertyType t)
 
bool isDrawingTool ()
 BaseTool::isDrawingTool - A drawing tool is anything that applies something to the canvas.
 
- Public Member Functions inherited from QObject
virtual const QMetaObject * metaObject () const const
 
 QObject (QObject *parent)
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThread * thread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
T findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectList & children () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArray > dynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObject * parent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
T qobject_cast (QObject *object)
 
T qobject_cast (const QObject *object)
 
T qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 Q_CLASSINFO (Name, Value)
 
 Q_INTERFACES (...)
 
 Q_PROPERTY (...)
 
 Q_ENUMS (...)
 
 Q_FLAGS (...)
 
 Q_ENUM (...)
 
 Q_FLAG (...)
 
 Q_ENUM_NS (...)
 
 Q_FLAG_NS (...)
 
 Q_OBJECT Q_OBJECT
 
 Q_GADGET Q_GADGET
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SLOTS Q_SLOTS
 
 Q_SLOT Q_SLOT
 
 Q_EMIT Q_EMIT
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 

Static Public Attributes

static const qreal FEATHER_MIN = 1.
 
static const qreal FEATHER_MAX = 99.
 
static const qreal WIDTH_MIN = 1.
 
static const qreal WIDTH_MAX = 200.
 

Protected Member Functions

QPointF getCurrentPressPixel () const
 
QPointF getCurrentPressPoint () const
 
QPointF getCurrentPixel () const
 
QPointF getCurrentPoint () const
 
QPointF getLastPixel () const
 
QPointF getLastPoint () const
 
virtual bool startAdjusting (Qt::KeyboardModifiers modifiers)
 
virtual void stopAdjusting ()
 
virtual void adjustCursor (Qt::KeyboardModifiers modifiers)
 
virtual bool emptyFrameActionEnabled ()
 Whether to enable the "drawing on empty frame" preference.
 
- Protected Member Functions inherited from BaseTool
 BaseTool (QObject *parent)
 
Editor * editor ()
 
- Protected Member Functions inherited from QObject
QObject * sender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 

Protected Attributes

QHash< Qt::KeyboardModifiers, ToolPropertyType > mQuickSizingProperties
 
bool mFirstDraw = false
 
QList< QPointF > mStrokePoints
 
QList< qreal > mStrokePressures
 
qreal mCurrentWidth = 0.0
 
qreal mCurrentPressure = 0.5
 
PointerEvent::InputType mCurrentInputType = PointerEvent::Unknown
 
bool mCanvasCursorEnabled = false
 
QPointF mLastPixel { 0, 0 }
 
QPointF mAdjustPosition
 
CanvasCursorPainter mCanvasCursorPainter
 
StrokeInterpolator mInterpolator
 
const UndoSaveState * mUndoSaveState = nullptr
 
- Protected Attributes inherited from BaseTool
QHash< ToolPropertyType, bool > mPropertyEnabled
 
Editor * mEditor = nullptr
 
ScribbleArea * mScribbleArea = nullptr
 
QList< QMetaObject::Connection > mActiveConnections
 

Static Protected Attributes

static bool mQuickSizingEnabled = false
 
static bool msIsAdjusting = false
 

Additional Inherited Members

- Signals inherited from BaseTool
bool isActiveChanged (ToolType, bool)
 
- Static Public Member Functions inherited from BaseTool
static QString TypeName (ToolType)
 
- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
- Public Attributes inherited from BaseTool
Properties properties
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Definition at line 33 of file stroketool.h.

Constructor & Destructor Documentation

◆ StrokeTool()

StrokeTool::StrokeTool ( QObject *  parent)
explicit

Definition at line 53 of file stroketool.cpp.

Member Function Documentation

◆ adjustCursor()

void StrokeTool::adjustCursor ( Qt::KeyboardModifiers  modifiers)
protectedvirtual

Definition at line 341 of file stroketool.cpp.

◆ drawStroke()

void StrokeTool::drawStroke ( )

Definition at line 187 of file stroketool.cpp.

◆ emptyFrameActionEnabled()

bool StrokeTool::emptyFrameActionEnabled ( )
protectedvirtual

Whether to enable the "drawing on empty frame" preference.

If true, then the user preference is honored. If false, then the stroke is drawn on the previous key-frame (i.e. the "old" Pencil behaviour). Returns true by default.

Reimplemented in SmudgeTool.

Definition at line 167 of file stroketool.cpp.

◆ endStroke()

void StrokeTool::endStroke ( )

Definition at line 172 of file stroketool.cpp.

◆ enterEvent()

bool StrokeTool::enterEvent ( QEnterEvent *  )
overridevirtual

Reimplemented from BaseTool.

Definition at line 238 of file stroketool.cpp.

◆ enteringThisTool()

bool StrokeTool::enteringThisTool ( )
overridevirtual

Setup active connections here that should only emit while tool is active leavingThisTool will handle the cleanup of active connections.

Reimplemented from BaseTool.

Definition at line 68 of file stroketool.cpp.

◆ getCurrentPixel()

QPointF StrokeTool::getCurrentPixel ( ) const
protected

Definition at line 103 of file stroketool.cpp.

◆ getCurrentPoint()

QPointF StrokeTool::getCurrentPoint ( ) const
protected

Definition at line 108 of file stroketool.cpp.

◆ getCurrentPressPixel()

QPointF StrokeTool::getCurrentPressPixel ( ) const
protected

Definition at line 93 of file stroketool.cpp.

◆ getCurrentPressPoint()

QPointF StrokeTool::getCurrentPressPoint ( ) const
protected

Definition at line 98 of file stroketool.cpp.

◆ getLastPixel()

QPointF StrokeTool::getLastPixel ( ) const
protected

Definition at line 113 of file stroketool.cpp.

◆ getLastPoint()

QPointF StrokeTool::getLastPoint ( ) const
protected

Definition at line 118 of file stroketool.cpp.

◆ handleQuickSizing()

bool StrokeTool::handleQuickSizing ( PointerEvent *  event)

Definition at line 203 of file stroketool.cpp.

◆ isActive()

bool StrokeTool::isActive ( ) const
inlineoverridevirtual

Check if the tool is active.

An active tool is definied as one which is actively modifying the buffer. This is used to check if an full frame cache can be used instead of redrawing with CanvasPainter.

Returns
Returns true if the tool is currently active, else returns false.

Reimplemented from BaseTool.

Definition at line 55 of file stroketool.h.

◆ keyPressEvent()

bool StrokeTool::keyPressEvent ( QKeyEvent *  event)
overridevirtual

Reimplemented from BaseTool.

Definition at line 148 of file stroketool.cpp.

◆ leaveEvent()

bool StrokeTool::leaveEvent ( QEvent *  )
overridevirtual

Reimplemented from BaseTool.

Definition at line 244 of file stroketool.cpp.

◆ leavingThisTool()

bool StrokeTool::leavingThisTool ( )
overridevirtual

Will clean up active connections.

Reimplemented from BaseTool.

Definition at line 74 of file stroketool.cpp.

◆ loadSettings()

void StrokeTool::loadSettings ( )
overridevirtual

Given the way that we update preferences currently, this connection should not be removed when the tool is not active.

Implements BaseTool.

Definition at line 58 of file stroketool.cpp.

◆ onPreferenceChanged

void StrokeTool::onPreferenceChanged ( SETTING  setting)
slot

Definition at line 79 of file stroketool.cpp.

◆ onViewUpdated

void StrokeTool::onViewUpdated ( )
slot

Definition at line 88 of file stroketool.cpp.

◆ paint()

void StrokeTool::paint ( QPainter &  painter,
const QRect &  blitRect 
)
overridevirtual

Reimplemented from BaseTool.

Definition at line 374 of file stroketool.cpp.

◆ pointerMoveEvent()

void StrokeTool::pointerMoveEvent ( PointerEvent *  event)
overridevirtual

Implements BaseTool.

Definition at line 228 of file stroketool.cpp.

◆ pointerPressEvent()

void StrokeTool::pointerPressEvent ( PointerEvent *  event)
overridevirtual

Implements BaseTool.

Definition at line 223 of file stroketool.cpp.

◆ pointerReleaseEvent()

void StrokeTool::pointerReleaseEvent ( PointerEvent *  event)
overridevirtual

Implements BaseTool.

Definition at line 233 of file stroketool.cpp.

◆ startAdjusting()

bool StrokeTool::startAdjusting ( Qt::KeyboardModifiers  modifiers)
protectedvirtual

Definition at line 295 of file stroketool.cpp.

◆ startStroke()

void StrokeTool::startStroke ( PointerEvent::InputType  inputType)

Definition at line 123 of file stroketool.cpp.

◆ stopAdjusting()

void StrokeTool::stopAdjusting ( )
protectedvirtual

Definition at line 333 of file stroketool.cpp.

◆ updateCanvasCursor()

void StrokeTool::updateCanvasCursor ( )

Definition at line 256 of file stroketool.cpp.

Member Data Documentation

◆ FEATHER_MAX

const qreal StrokeTool::FEATHER_MAX = 99.
static

Definition at line 50 of file stroketool.h.

◆ FEATHER_MIN

const qreal StrokeTool::FEATHER_MIN = 1.
static

Definition at line 49 of file stroketool.h.

◆ mAdjustPosition

QPointF StrokeTool::mAdjustPosition
protected

Definition at line 109 of file stroketool.h.

◆ mCanvasCursorEnabled

bool StrokeTool::mCanvasCursorEnabled = false
protected

Definition at line 106 of file stroketool.h.

◆ mCanvasCursorPainter

CanvasCursorPainter StrokeTool::mCanvasCursorPainter
protected

Definition at line 111 of file stroketool.h.

◆ mCurrentInputType

PointerEvent::InputType StrokeTool::mCurrentInputType = PointerEvent::Unknown
protected

Definition at line 97 of file stroketool.h.

◆ mCurrentPressure

qreal StrokeTool::mCurrentPressure = 0.5
protected

Definition at line 95 of file stroketool.h.

◆ mCurrentWidth

qreal StrokeTool::mCurrentWidth = 0.0
protected

Definition at line 94 of file stroketool.h.

◆ mFirstDraw

bool StrokeTool::mFirstDraw = false
protected

Definition at line 89 of file stroketool.h.

◆ mInterpolator

StrokeInterpolator StrokeTool::mInterpolator
protected

Definition at line 113 of file stroketool.h.

◆ mLastPixel

QPointF StrokeTool::mLastPixel { 0, 0 }
protected

Definition at line 107 of file stroketool.h.

◆ mQuickSizingEnabled

bool StrokeTool::mQuickSizingEnabled = false
staticprotected

Definition at line 85 of file stroketool.h.

◆ mQuickSizingProperties

QHash<Qt::KeyboardModifiers, ToolPropertyType> StrokeTool::mQuickSizingProperties
protected

Definition at line 88 of file stroketool.h.

◆ msIsAdjusting

bool StrokeTool::msIsAdjusting = false
staticprotected

Definition at line 86 of file stroketool.h.

◆ mStrokePoints

QList<QPointF> StrokeTool::mStrokePoints
protected

Definition at line 91 of file stroketool.h.

◆ mStrokePressures

QList<qreal> StrokeTool::mStrokePressures
protected

Definition at line 92 of file stroketool.h.

◆ mUndoSaveState

const UndoSaveState* StrokeTool::mUndoSaveState = nullptr
protected

Definition at line 115 of file stroketool.h.

◆ WIDTH_MAX

const qreal StrokeTool::WIDTH_MAX = 200.
static

Definition at line 52 of file stroketool.h.

◆ WIDTH_MIN

const qreal StrokeTool::WIDTH_MIN = 1.
static

Definition at line 51 of file stroketool.h.


The documentation for this class was generated from the following files:
  • core_lib/src/tool/stroketool.h
  • core_lib/src/tool/stroketool.cpp
Generated on Thu May 8 2025 04:47:54 for Pencil2D by doxygen 1.9.6 based on revision 4513250b1d5b1a3676ec0e67b06b7a885ceaae39