Envision
A visual programming IDE for object-oriented languages
List of all members | Public Member Functions | Private Attributes
Model::ListInsert Class Reference

This command is used to insert a list element at a specific position in a list. More...

Inheritance diagram for Model::ListInsert:
Model::NodeOwningCommand Model::UndoCommand

Public Member Functions

 ListInsert (Node *target, QVector< Node * > &nodes, Node *newNode, int position)
 
virtual void redo ()
 
virtual void undo ()
 
- Public Member Functions inherited from Model::NodeOwningCommand
 NodeOwningCommand (Node *target, const QString &text, Node *ownedIfDone, Node *ownedIfUndone)
 
virtual ~NodeOwningCommand ()
 
virtual NodeinsertedNode () const override
 Returns the node that this command inserted into the tree, or nullptr if no node was inserted. More...
 
virtual Nodeowned () const override
 Returns the node owned by this command or nullptr if no node is owned. More...
 
virtual NoderemovedNode () const override
 Returns the node that this command removed from the tree, or nullptr if no node was removed. More...
 
- Public Member Functions inherited from Model::UndoCommand
 UndoCommand (Node *target, const QString &text)
 
virtual ~UndoCommand ()
 
bool isUndone () const
 Returns whether the command has been undone since it was applied. More...
 
Nodetarget () const
 

Private Attributes

int insertPosition
 
NodenewNode
 
QVector< Node * > & nodes
 

Detailed Description

This command is used to insert a list element at a specific position in a list.

All elements which are currently at or after the specified position will be shifted once to the right.

Constructor & Destructor Documentation

◆ ListInsert()

Model::ListInsert::ListInsert ( Node target,
QVector< Node * > &  nodes,
Node newNode,
int  position 
)

Member Function Documentation

◆ redo()

void Model::ListInsert::redo ( )
virtual

Reimplemented from Model::NodeOwningCommand.

◆ undo()

void Model::ListInsert::undo ( )
virtual

Reimplemented from Model::NodeOwningCommand.

Member Data Documentation

◆ insertPosition

int Model::ListInsert::insertPosition
private

◆ newNode

Node* Model::ListInsert::newNode
private

◆ nodes

QVector<Node*>& Model::ListInsert::nodes
private