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

#include <EditAssistantsCommand.h>

+ Inheritance diagram for EditAssistantsCommand:

Public Types

enum  Type { ADD = -1 , REMOVE = 1 , EDIT = 0 }
 

Public Member Functions

 EditAssistantsCommand (QPointer< KisCanvas2 > canvas, AssistantSPList origAssistants, AssistantSPList newAssistants, KUndo2Command *parent=0)
 
 EditAssistantsCommand (QPointer< KisCanvas2 > canvas, AssistantSPList origAssistants, AssistantSPList newAssistants, Type type, int index, KUndo2Command *parent=0)
 
void redo () override
 
void undo () override
 
- Public Member Functions inherited from KUndo2Command
QString actionText () const
 
virtual bool canAnnihilateWith (const KUndo2Command *other) const
 
const KUndo2Commandchild (int index) const
 
int childCount () const
 
virtual QTime endTime () const
 
KUndo2CommandExtraDataextraData () const
 
bool hasParent () const
 
virtual int id () const
 
virtual bool isMerged () const
 
 KUndo2Command (const KUndo2MagicString &text, KUndo2Command *parent=0)
 
 KUndo2Command (KUndo2Command *parent=0)
 
virtual QVector< KUndo2Command * > mergeCommandsVector () const
 
virtual bool mergeWith (const KUndo2Command *other)
 
virtual void redoMergedCommands ()
 
void setEndTime ()
 
virtual void setEndTime (const QTime &time)
 
void setExtraData (KUndo2CommandExtraData *data)
 
void setText (const KUndo2MagicString &text)
 
void setTime ()
 
virtual void setTime (const QTime &time)
 
virtual void setTimedID (int timedID)
 
KUndo2MagicString text () const
 
virtual QTime time () const
 
virtual int timedId () const
 
virtual bool timedMergeWith (KUndo2Command *other)
 
virtual void undoMergedCommands ()
 
virtual ~KUndo2Command ()
 

Private Types

using AssistantSPList = QList<KisPaintingAssistantSP>
 

Private Member Functions

void replaceWith (AssistantSPList assistants, Type type=EDIT)
 

Private Attributes

QPointer< KisCanvas2m_canvas
 
bool m_firstRedo
 
int m_index
 
AssistantSPList m_newAssistants
 
AssistantSPList m_origAssistants
 
Type m_type
 

Detailed Description

Definition at line 14 of file EditAssistantsCommand.h.

Member Typedef Documentation

◆ AssistantSPList

Member Enumeration Documentation

◆ Type

Enumerator
ADD 
REMOVE 
EDIT 

Definition at line 18 of file EditAssistantsCommand.h.

Constructor & Destructor Documentation

◆ EditAssistantsCommand() [1/2]

EditAssistantsCommand::EditAssistantsCommand ( QPointer< KisCanvas2 > canvas,
AssistantSPList origAssistants,
AssistantSPList newAssistants,
KUndo2Command * parent = 0 )

Definition at line 17 of file EditAssistantsCommand.cpp.

18 : KUndo2Command(kundo2_i18n("Edit Assistants"), parent)
19 , m_canvas(canvas)
20 , m_origAssistants(origAssistants)
21 , m_newAssistants(newAssistants)
22 , m_index(-1)
23 , m_firstRedo(true)
24 , m_type(EDIT)
25{
26}
QPointer< KisCanvas2 > m_canvas
KUndo2Command(KUndo2Command *parent=0)
KUndo2MagicString kundo2_i18n(const char *text)

◆ EditAssistantsCommand() [2/2]

EditAssistantsCommand::EditAssistantsCommand ( QPointer< KisCanvas2 > canvas,
AssistantSPList origAssistants,
AssistantSPList newAssistants,
Type type,
int index,
KUndo2Command * parent = 0 )

Definition at line 28 of file EditAssistantsCommand.cpp.

29 : KUndo2Command((type == ADD ? kundo2_i18n("Add Assistant") : kundo2_i18n("Remove Assistant")), parent)
30 , m_canvas(canvas)
31 , m_origAssistants(origAssistants)
32 , m_newAssistants(newAssistants)
33 , m_index(index)
34 , m_firstRedo(true)
35 , m_type(type)
36{
37 Q_UNUSED(m_index);
39}
#define KIS_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:75
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327

References EDIT, KIS_ASSERT_RECOVER_RETURN, and m_index.

Member Function Documentation

◆ redo()

void EditAssistantsCommand::redo ( )
overridevirtual

Applies a change to the document. This function must be implemented in the derived class. Calling KUndo2QStack::push(), KUndo2QStack::undo() or KUndo2QStack::redo() from this function leads to undefined behavior.

The default implementation calls redo() on all child commands.

See also
undo()

Reimplemented from KUndo2Command.

Definition at line 61 of file EditAssistantsCommand.cpp.

62{
63 // this is a post-execution command
64 if (m_firstRedo) {
65 m_firstRedo = false;
66 return;
67 }
69}
void replaceWith(AssistantSPList assistants, Type type=EDIT)

References m_firstRedo, m_newAssistants, m_type, and replaceWith().

◆ replaceWith()

void EditAssistantsCommand::replaceWith ( AssistantSPList assistants,
Type type = EDIT )
private

Definition at line 41 of file EditAssistantsCommand.cpp.

42{
43 AssistantSPList oldAssistants = m_canvas->paintingAssistantsDecoration()->assistants();
44
45 if (type == ADD) {
46 KIS_ASSERT_RECOVER_RETURN(newAssistants.size() > oldAssistants.size());
47 } else if (type == REMOVE) {
48 KIS_ASSERT_RECOVER_RETURN(newAssistants.size() < oldAssistants.size());
49 }
50
51 m_canvas->paintingAssistantsDecoration()->setAssistants(newAssistants);
52
53 m_canvas->updateCanvas();
54}
QList< KisPaintingAssistantSP > AssistantSPList

References ADD, KIS_ASSERT_RECOVER_RETURN, m_canvas, and REMOVE.

◆ undo()

void EditAssistantsCommand::undo ( )
overridevirtual

Reverts a change to the document. After undo() is called, the state of the document should be the same as before redo() was called. This function must be implemented in the derived class. Calling KUndo2QStack::push(), KUndo2QStack::undo() or KUndo2QStack::redo() from this function leads to undefined behavior.

The default implementation calls undo() on all child commands in reverse order.

See also
redo()

Reimplemented from KUndo2Command.

Definition at line 56 of file EditAssistantsCommand.cpp.

References m_origAssistants, m_type, and replaceWith().

Member Data Documentation

◆ m_canvas

QPointer<KisCanvas2> EditAssistantsCommand::m_canvas
private

Definition at line 31 of file EditAssistantsCommand.h.

◆ m_firstRedo

bool EditAssistantsCommand::m_firstRedo
private

Definition at line 34 of file EditAssistantsCommand.h.

◆ m_index

int EditAssistantsCommand::m_index
private

Definition at line 33 of file EditAssistantsCommand.h.

◆ m_newAssistants

AssistantSPList EditAssistantsCommand::m_newAssistants
private

Definition at line 32 of file EditAssistantsCommand.h.

◆ m_origAssistants

AssistantSPList EditAssistantsCommand::m_origAssistants
private

Definition at line 32 of file EditAssistantsCommand.h.

◆ m_type

Type EditAssistantsCommand::m_type
private

Definition at line 35 of file EditAssistantsCommand.h.


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