The Battle for Wesnoth  1.15.2+dev
Public Member Functions | Protected Attributes | List of all members
editor::editor_action_chain Class Reference

Container action wrapping several actions into one. More...

#include <action.hpp>

Inheritance diagram for editor::editor_action_chain:
Inheritance graph

Public Member Functions

 editor_action_chain ()
 Create an empty action chain. More...
 
 editor_action_chain (const editor_action_chain &other)
 
editor_action_chainoperator= (const editor_action_chain &other)
 
editor_action_chainclone () const
 Inherited from editor_action, implemented by IMPLEMENT_ACTION. More...
 
 editor_action_chain (std::deque< editor_action *> actions)
 Create an action chain from a deque of action pointers. More...
 
 editor_action_chain (editor_action *action)
 Create an action chain by wrapping around a single action pointer. More...
 
 ~editor_action_chain ()
 The destructor deletes all the owned action pointers. More...
 
int action_count () const
 Go through the chain and add up all the action counts. More...
 
void append_action (editor_action *a)
 Add an action at the end of the chain. More...
 
void prepend_action (editor_action *a)
 Add an action at the beginning of the chain. More...
 
bool empty () const
 
editor_actionpop_last_action ()
 Remove the last added action and return it, transferring ownership to the caller. More...
 
editor_actionpop_first_action ()
 Remove the first added action and return it, transferring ownership to the caller. More...
 
editor_action_chainperform (map_context &m) const
 Perform all the actions in order and create a undo action chain. More...
 
void perform_without_undo (map_context &m) const
 Perform all the actions in order. More...
 
const std::string & get_name () const
 Inherited from editor_action, implemented by IMPLEMENT_ACTION. More...
 
- Public Member Functions inherited from editor::editor_action
 editor_action ()
 
virtual ~editor_action ()
 
virtual std::string get_description () const
 A textual description of the action. More...
 
int get_id () const
 Debugging aid. More...
 

Protected Attributes

std::deque< editor_action * > actions_
 The action pointers owned by this action chain. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from editor::editor_action
static int get_instance_count ()
 Debugging aid. More...
 

Detailed Description

Container action wrapping several actions into one.

The actions are performed in the order they are added, i.e. in the usual iteration order through the container.

Definition at line 90 of file action.hpp.

Constructor & Destructor Documentation

◆ editor_action_chain() [1/4]

editor::editor_action_chain::editor_action_chain ( )
inline

Create an empty action chain.

Definition at line 96 of file action.hpp.

References editor::editor_action_whole_map::clone().

Referenced by perform(), and editor::editor_action_starting_position::perform().

◆ editor_action_chain() [2/4]

editor::editor_action_chain::editor_action_chain ( const editor_action_chain other)

Definition at line 77 of file action.cpp.

References a, actions_, and editor::editor_action::clone().

◆ editor_action_chain() [3/4]

editor::editor_action_chain::editor_action_chain ( std::deque< editor_action *>  actions)
inlineexplicit

Create an action chain from a deque of action pointers.

Note: the action chain assumes ownership of the pointers.

Definition at line 112 of file action.hpp.

◆ editor_action_chain() [4/4]

editor::editor_action_chain::editor_action_chain ( editor_action action)
inlineexplicit

Create an action chain by wrapping around a single action pointer.

Note: the action chain assumes ownership of the pointer.

Definition at line 121 of file action.hpp.

References a, editor::editor_action::action_count(), editor::editor_action_whole_map::get_name(), editor::editor_action::perform(), and editor::editor_action_whole_map::perform_without_undo().

◆ ~editor_action_chain()

editor::editor_action_chain::~editor_action_chain ( )

The destructor deletes all the owned action pointers.

Definition at line 104 of file action.cpp.

References a, actions_, and IMPLEMENT_ACTION.

Member Function Documentation

◆ action_count()

int editor::editor_action_chain::action_count ( ) const
virtual

Go through the chain and add up all the action counts.

Reimplemented from editor::editor_action.

Definition at line 113 of file action.cpp.

References a, and actions_.

◆ append_action()

void editor::editor_action_chain::append_action ( editor_action a)

Add an action at the end of the chain.

Definition at line 125 of file action.cpp.

References actions_.

Referenced by editor::mouse_action_map_label::drag_left(), and editor::editor_action_starting_position::perform().

◆ clone()

editor_action_chain* editor::editor_action_chain::clone ( ) const
virtual

Inherited from editor_action, implemented by IMPLEMENT_ACTION.

Implements editor::editor_action.

◆ empty()

bool editor::editor_action_chain::empty ( ) const
Returns
true when there are no actions in the chain. Empty action chains should usually be discarded as to not keep "empty" actions around.

Definition at line 135 of file action.cpp.

References actions_.

Referenced by editor::map_context::partial_undo(), pop_first_action(), and pop_last_action().

◆ get_name()

const std::string& editor::editor_action_chain::get_name ( ) const
virtual

Inherited from editor_action, implemented by IMPLEMENT_ACTION.

Reimplemented from editor::editor_action.

◆ operator=()

editor_action_chain & editor::editor_action_chain::operator= ( const editor_action_chain other)

Definition at line 86 of file action.cpp.

References a, actions_, and editor::editor_action::clone().

◆ perform()

editor_action_chain * editor::editor_action_chain::perform ( map_context m) const
virtual

Perform all the actions in order and create a undo action chain.

Reimplemented from editor::editor_action.

Definition at line 162 of file action.cpp.

References a, actions_, editor_action_chain(), and reverse().

◆ perform_without_undo()

void editor::editor_action_chain::perform_without_undo ( map_context m) const
virtual

Perform all the actions in order.

Implements editor::editor_action.

Definition at line 174 of file action.cpp.

References a, and actions_.

Referenced by editor::editor_action_paste::perform(), editor::editor_action_paint_area::perform(), and editor::editor_action_shuffle_area::perform().

◆ pop_first_action()

editor_action * editor::editor_action_chain::pop_first_action ( )

Remove the first added action and return it, transferring ownership to the caller.

Definition at line 151 of file action.cpp.

References actions_, and empty().

Referenced by editor::map_context::partial_undo().

◆ pop_last_action()

editor_action * editor::editor_action_chain::pop_last_action ( )

Remove the last added action and return it, transferring ownership to the caller.

Definition at line 140 of file action.cpp.

References actions_, and empty().

◆ prepend_action()

void editor::editor_action_chain::prepend_action ( editor_action a)

Add an action at the beginning of the chain.

Definition at line 130 of file action.cpp.

References actions_.

Referenced by editor::map_context::perform_partial_action().

Member Data Documentation

◆ actions_

std::deque<editor_action*> editor::editor_action_chain::actions_
protected

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