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

#include <KisInterstrokeDataTransactionWrapperFactory.h>

+ Inheritance diagram for KisInterstrokeDataTransactionWrapperFactory:

Classes

struct  Private
 

Public Member Functions

KUndo2CommandcreateBeginTransactionCommand (KisPaintDeviceSP device) override
 
KUndo2CommandcreateEndTransactionCommand () override
 
 KisInterstrokeDataTransactionWrapperFactory (KisInterstrokeDataFactory *factory, bool supportsContinuedInterstrokeData=true)
 
 ~KisInterstrokeDataTransactionWrapperFactory () override
 
- Public Member Functions inherited from KisTransactionWrapperFactory
virtual ~KisTransactionWrapperFactory ()
 

Private Attributes

QScopedPointer< Privatem_d
 

Detailed Description

A factory object to extend the behavior of a normal transaction and handle management of interstroke data. It will create a new interstroke data using the passed KisInterstrokeDataFactory or reset it if the current transaction is incompatible with it.

See also
KisTransactionWrapperFactory
KisInterstrokeDataFactory

Definition at line 24 of file KisInterstrokeDataTransactionWrapperFactory.h.

Constructor & Destructor Documentation

◆ KisInterstrokeDataTransactionWrapperFactory()

KisInterstrokeDataTransactionWrapperFactory::KisInterstrokeDataTransactionWrapperFactory ( KisInterstrokeDataFactory * factory,
bool supportsContinuedInterstrokeData = true )

Definition at line 99 of file KisInterstrokeDataTransactionWrapperFactory.cpp.

100 : m_d(new Private())
101{
102 m_d->factory.reset(factory);
103 m_d->supportsContinuedInterstrokeData = supportsContinuedInterstrokeData;
104}

References m_d.

◆ ~KisInterstrokeDataTransactionWrapperFactory()

KisInterstrokeDataTransactionWrapperFactory::~KisInterstrokeDataTransactionWrapperFactory ( )
override

Definition at line 106 of file KisInterstrokeDataTransactionWrapperFactory.cpp.

107{
108}

Member Function Documentation

◆ createBeginTransactionCommand()

KUndo2Command * KisInterstrokeDataTransactionWrapperFactory::createBeginTransactionCommand ( KisPaintDeviceSP device)
overridevirtual

Implements KisTransactionWrapperFactory.

Definition at line 110 of file KisInterstrokeDataTransactionWrapperFactory.cpp.

111{
112 KisInterstrokeDataSP data = device->interstrokeData();
113 if (m_d->factory) {
114 if (!m_d->supportsContinuedInterstrokeData ||
115 !data ||
116 !data->isStillCompatible() ||
117 !m_d->factory->isCompatible(data.data())) {
118
119 data = toQShared(m_d->factory->create(device));
120 }
121 } else {
122 data.clear();
123 }
124
125 KUndo2Command *cmd = 0;
126
127 if (device->interstrokeData() || data) {
128 m_d->device = device;
129 cmd = new BeginInterstrokeDataTransactionCommand(device, data);
130 }
131
132 return cmd;
133}
KisInterstrokeDataSP interstrokeData() const
QSharedPointer< T > toQShared(T *ptr)

References KisPaintDevice::interstrokeData(), m_d, and toQShared().

◆ createEndTransactionCommand()

KUndo2Command * KisInterstrokeDataTransactionWrapperFactory::createEndTransactionCommand ( )
overridevirtual

Implements KisTransactionWrapperFactory.

Definition at line 135 of file KisInterstrokeDataTransactionWrapperFactory.cpp.

136{
137 KUndo2Command *result = 0;
138
139 if (m_d->device) {
140 if (m_d->supportsContinuedInterstrokeData) {
141 result = new EndInterstrokeDataTransactionCommand(m_d->device);
142 } else {
145
146 composite->addCommand(new EndInterstrokeDataTransactionCommand(m_d->device));
147 composite->addCommand(new BeginInterstrokeDataTransactionCommand(m_d->device, 0));
148
149 result = composite;
150 }
151 }
152
153 return result;
154}

References KisCommandUtils::CompositeCommand::addCommand(), and m_d.

Member Data Documentation

◆ m_d

QScopedPointer<Private> KisInterstrokeDataTransactionWrapperFactory::m_d
private

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