![]() |
Mapper
0.9.0
API documentation
|
Base class for undo steps which modify objects of a single map part. More...
#include <object_undo.h>
Public Member Functions | |
ObjectModifyingUndoStep (Type type, Map *map) | |
Creates an ObjectModifyingUndoStep for the given map and its current part. More... | |
ObjectModifyingUndoStep (Type type, Map *map, int part_index) | |
Creates an ObjectModifyingUndoStep for the given map and part. More... | |
~ObjectModifyingUndoStep () override | |
Destructor. More... | |
int | getPartIndex () const |
Returns the index of the map part modified by this undo step. More... | |
void | setPartIndex (int part_index) |
Set the index of the map part modified by this undo step. More... | |
virtual bool | isEmpty () const |
Returns true if no objects are modified by this undo step. More... | |
virtual void | addObject (int index) |
Adds an object (by index) to this step. More... | |
bool | getModifiedParts (PartSet &out) const override |
Adds the the step's modified part to the container provided by out. More... | |
void | getModifiedObjects (int part_index, ObjectSet &out) const override |
Adds the list of the step's modified objects to the container provided by out. More... | |
![]() | |
UndoStep (Type type, Map *map) | |
Constructs an undo step having the given type. More... | |
UndoStep (const UndoStep &)=delete | |
UndoStep (UndoStep &&)=delete | |
virtual | ~UndoStep () |
Destructor. More... | |
UndoStep & | operator= (const UndoStep &)=delete |
UndoStep & | operator= (UndoStep &&)=delete |
Type | getType () const |
Returns the type of the undo step. More... | |
virtual bool | isValid () const |
Returns true if the step can still be undone. More... | |
virtual UndoStep * | undo ()=0 |
Undoes the action and returns a new UndoStep. More... | |
void | save (QXmlStreamWriter &xml) const |
Saves the undo step to the stream in xml format. More... | |
Protected Types | |
typedef std::vector< int > | ObjectList |
A list of indices referring to objects in a map part. More... | |
Protected Member Functions | |
void | saveImpl (QXmlStreamWriter &xml) const override |
Saves undo properties to the the xml stream. More... | |
virtual void | saveObject (XmlElementWriter &xml, int index) const |
Saves object details to the the xml stream. More... | |
void | loadImpl (QXmlStreamReader &xml, SymbolDictionary &symbol_dict) override |
Loads undo properties from the the xml stream. More... | |
virtual void | loadObject (XmlElementReader &xml, int index) |
Loads object details from the the xml stream. More... | |
Protected Attributes | |
ObjectList | modified_objects |
Indices of the existing objects that are modified by this step. More... | |
![]() | |
Type const | type |
The type of the undo step. More... | |
Map *const | map |
The map this undo step belongs. More... | |
Additional Inherited Members | |
![]() | |
enum | Type { ReplaceObjectsUndoStepType = 0, DeleteObjectsUndoStepType = 1, AddObjectsUndoStepType = 2, SwitchSymbolUndoStepType = 3, SwitchDashesUndoStepType = 4, CombinedUndoStepType = 5, ValidNoOpUndoStepType = 6, ObjectTagsUndoStepType = 7, MapPartUndoStepType = 8, SwitchPartUndoStepTypeV0 = 9, SwitchPartUndoStepType = 10, InvalidUndoStepType = 999 } |
Types of undo steps for identification. More... | |
typedef std::set< int > | PartSet |
A set of integers referring to parts. More... | |
typedef std::set< Object * > | ObjectSet |
A set of pointers to objects. More... | |
![]() | |
static UndoStep * | getUndoStepForType (Type type, Map *map) |
Constructs an undo step of the given type. More... | |
static UndoStep * | load (QXmlStreamReader &xml, Map *map, SymbolDictionary &symbol_dict) |
Loads the undo step from the stream in xml format. More... | |
Base class for undo steps which modify objects of a single map part.
|
protected |
A list of indices referring to objects in a map part.
Creates an ObjectModifyingUndoStep for the given map and its current part.
OpenOrienteering::ObjectModifyingUndoStep::ObjectModifyingUndoStep | ( | Type | type, |
Map * | map, | ||
int | part_index | ||
) |
Creates an ObjectModifyingUndoStep for the given map and part.
|
override |
Destructor.
|
virtual |
Adds an object (by index) to this step.
The object must belong to the step's part.
Reimplemented in OpenOrienteering::ObjectTagsUndoStep, and OpenOrienteering::ObjectCreatingUndoStep.
|
overridevirtual |
Adds the list of the step's modified objects to the container provided by out.
Only adds objects when the given part_index matches this step's part index.
Reimplemented from OpenOrienteering::UndoStep.
Reimplemented in OpenOrienteering::SwitchPartUndoStep, OpenOrienteering::DeleteObjectsUndoStep, and OpenOrienteering::ObjectCreatingUndoStep.
|
overridevirtual |
Adds the the step's modified part to the container provided by out.
Reimplemented from OpenOrienteering::UndoStep.
Reimplemented in OpenOrienteering::SwitchPartUndoStep, and OpenOrienteering::DeleteObjectsUndoStep.
|
inline |
Returns the index of the map part modified by this undo step.
|
virtual |
Returns true if no objects are modified by this undo step.
|
overrideprotectedvirtual |
Loads undo properties from the the xml stream.
Implementations in derived classes shall first check the element's name for one of their own elements, and otherwise call the parent class' implementation.
Reimplemented from OpenOrienteering::UndoStep.
Reimplemented in OpenOrienteering::SwitchSymbolUndoStep, OpenOrienteering::SwitchPartUndoStep, and OpenOrienteering::ObjectCreatingUndoStep.
|
protectedvirtual |
Loads object details from the the xml stream.
The default implemenentation does nothing.
Reimplemented in OpenOrienteering::ObjectTagsUndoStep.
|
overrideprotectedvirtual |
Saves undo properties to the the xml stream.
Implementations in derived classes shall first call the parent class' implementation, and then start a new element for additional properties.
Reimplemented from OpenOrienteering::UndoStep.
Reimplemented in OpenOrienteering::SwitchSymbolUndoStep, OpenOrienteering::SwitchPartUndoStep, and OpenOrienteering::ObjectCreatingUndoStep.
|
protectedvirtual |
Saves object details to the the xml stream.
The default implemenentation does nothing.
Reimplemented in OpenOrienteering::ObjectTagsUndoStep.
void OpenOrienteering::ObjectModifyingUndoStep::setPartIndex | ( | int | part_index | ) |
Set the index of the map part modified by this undo step.
This must not be called after object have been added.
|
protected |
Indices of the existing objects that are modified by this step.