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

#include <kis_transaction.h>

+ Inheritance diagram for KisTransaction:

Public Types

enum  Flag { None = 0x0 , SuppressUpdates = 0x1 }
 

Public Member Functions

void commit (KisPostExecutionUndoAdapter *undoAdapter)
 
void commit (KisUndoAdapter *undoAdapter)
 
void end ()
 
KUndo2CommandendAndTake ()
 
 KisTransaction (const KUndo2MagicString &name, KisPaintDeviceSP device, KUndo2Command *parent=0, int timedID=-1, KisTransactionWrapperFactory *interstrokeDataFactory=0, Flags flags=None)
 
 KisTransaction (KisPaintDeviceSP device, KUndo2Command *parent=0, int timedID=-1, KisTransactionWrapperFactory *interstrokeDataFactory=0, Flags flags=None)
 
void revert ()
 
KUndo2MagicString text () const
 
KUndo2CommandundoCommand ()
 
virtual ~KisTransaction ()
 

Protected Member Functions

 KisTransaction ()
 
 Q_DISABLE_COPY (KisTransaction)
 

Protected Attributes

KisTransactionDatam_transactionData
 

Detailed Description

Definition at line 24 of file kis_transaction.h.

Member Enumeration Documentation

◆ Flag

Enumerator
None 
SuppressUpdates 

Definition at line 27 of file kis_transaction.h.

27 {
28 None = 0x0,
29 SuppressUpdates = 0x1
30 };

Constructor & Destructor Documentation

◆ KisTransaction() [1/3]

KisTransaction::KisTransaction ( const KUndo2MagicString & name,
KisPaintDeviceSP device,
KUndo2Command * parent = 0,
int timedID = -1,
KisTransactionWrapperFactory * interstrokeDataFactory = 0,
Flags flags = None )
inline

Definition at line 34 of file kis_transaction.h.

34 {
35 m_transactionData = new KisTransactionData(name, device, true, interstrokeDataFactory, parent, flags & SuppressUpdates);
37 }
virtual void setTimedID(int timedID)
KisTransactionData * m_transactionData

References m_transactionData, KUndo2Command::setTimedID(), and SuppressUpdates.

◆ KisTransaction() [2/3]

KisTransaction::KisTransaction ( KisPaintDeviceSP device,
KUndo2Command * parent = 0,
int timedID = -1,
KisTransactionWrapperFactory * interstrokeDataFactory = 0,
Flags flags = None )
inline

Definition at line 39 of file kis_transaction.h.

40 : KisTransaction(KUndo2MagicString(), device, parent, timedID, interstrokeDataFactory, flags)
41 {
42 }

◆ ~KisTransaction()

virtual KisTransaction::~KisTransaction ( )
inlinevirtual

Definition at line 44 of file kis_transaction.h.

44 {
45 delete m_transactionData;
46 }

References m_transactionData.

◆ KisTransaction() [3/3]

KisTransaction::KisTransaction ( )
inlineprotected

Definition at line 122 of file kis_transaction.h.

122: m_transactionData(0) {}

Member Function Documentation

◆ commit() [1/2]

void KisTransaction::commit ( KisPostExecutionUndoAdapter * undoAdapter)
inline

Definition at line 62 of file kis_transaction.h.

62 {
64 "KisTransaction::commit()",
65 "the transaction has been tried to be committed twice");
66
71 }
#define KIS_ASSERT_X(cond, where, what)
Definition kis_assert.h:40
QSharedPointer< KUndo2Command > KUndo2CommandSP
Definition kis_types.h:262

References KisPostExecutionUndoAdapter::addCommand(), KisTransactionData::endTransaction(), KIS_ASSERT_X, m_transactionData, and KisTransactionData::redo().

◆ commit() [2/2]

void KisTransaction::commit ( KisUndoAdapter * undoAdapter)
inline

Definition at line 52 of file kis_transaction.h.

52 {
54 "KisTransaction::commit()",
55 "the transaction has been tried to be committed twice");
56
58 undoAdapter->addCommand(m_transactionData);
60 }
virtual void addCommand(KUndo2Command *cmd)=0

References KisUndoAdapter::addCommand(), KisTransactionData::endTransaction(), KIS_ASSERT_X, and m_transactionData.

◆ end()

void KisTransaction::end ( )
inline

We will not call endTransaction for m_transactionData, we'll just kill it, and it'll report about it's death to the memento manager, so no commit will be made

Definition at line 85 of file kis_transaction.h.

85 {
86 KIS_ASSERT_X(m_transactionData, "KisTransaction::end()", "nothing to end!");
92 delete m_transactionData;
94 }

References KIS_ASSERT_X, and m_transactionData.

◆ endAndTake()

KUndo2Command * KisTransaction::endAndTake ( )
inline

Definition at line 73 of file kis_transaction.h.

73 {
75 "KisTransaction::endAndTake()",
76 "the transaction has been tried to be committed twice");
77
79 KisTransactionData *transactionData = m_transactionData;
81
82 return transactionData;
83 }

References KisTransactionData::endTransaction(), KIS_ASSERT_X, and m_transactionData.

◆ Q_DISABLE_COPY()

KisTransaction::Q_DISABLE_COPY ( KisTransaction )
protected

◆ revert()

void KisTransaction::revert ( )
inline

FIXME: Should we emulate first redo() here?

Definition at line 96 of file kis_transaction.h.

96 {
98 "KisTransaction::reverted()",
99 "the transaction is tried to be reverted()"
100 "after it has already been added to undo adapter");
101
107 delete m_transactionData;
109 }

References KisTransactionData::endTransaction(), KIS_ASSERT_X, m_transactionData, and KisTransactionData::undo().

◆ text()

KUndo2MagicString KisTransaction::text ( ) const
inline

Definition at line 111 of file kis_transaction.h.

111 {
113 "KisTransaction::text()",
114 "the name has been requested after the transaction"
115 "has already been ended");
116 return m_transactionData->text();
117 }
KUndo2MagicString text() const

References KIS_ASSERT_X, m_transactionData, and KUndo2Command::text().

◆ undoCommand()

KUndo2Command * KisTransaction::undoCommand ( )
inline

Definition at line 48 of file kis_transaction.h.

48 {
49 return m_transactionData;
50 }

References m_transactionData.

Member Data Documentation

◆ m_transactionData

KisTransactionData* KisTransaction::m_transactionData
protected

Definition at line 123 of file kis_transaction.h.


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