20#ifndef RADDOBJECTSOPERATION_H
21#define RADDOBJECTSOPERATION_H
26#include <QSharedPointer>
44 UseAttributes = 0x001,
49 Q_DECLARE_FLAGS(Flags, Flag)
55 : object(QSharedPointer<
RObject>()),
64 RModifiedObjects(QSharedPointer<RObject>
object,
bool useCurrentAttributes,
bool forceNew)
67 setUseAttributes(!useCurrentAttributes);
68 setForceNew(forceNew);
73 : object(object), flags(flags) {}
116 return (flags & flag) == flag;
127 bool useCurrentAttributes =
true,
bool undoable =
true);
134 void replaceObject(
const QSharedPointer<RObject>&
object,
135 bool useCurrentAttributes =
true);
141 void addObject(
const QSharedPointer<RObject>&
object,
142 bool useCurrentAttributes=
true,
bool forceNew=
false);
144 void addObject(
const QSharedPointer<RObject>&
object,
145 RAddObjectsOperation::Flags flags);
147 void deleteObject(
const QSharedPointer<RObject>&
object);
152 return previewCounter;
160 return addedObjects.isEmpty();
Q_DECLARE_METATYPE(RMath *)
Deletes all selected entities of the current document.
Definition Delete.js:11
Definition RAddObjectsOperation.h:51
void setUseAttributes(bool on)
Definition RAddObjectsOperation.h:75
RModifiedObjects(QSharedPointer< RObject > object, bool useCurrentAttributes, bool forceNew)
Definition RAddObjectsOperation.h:64
void setGeometryOnly(bool on)
Definition RAddObjectsOperation.h:91
bool getForceNew() const
Definition RAddObjectsOperation.h:87
void setFlag(RAddObjectsOperation::Flag flag, bool on)
Definition RAddObjectsOperation.h:107
bool getUseAttributes() const
Definition RAddObjectsOperation.h:79
bool getDelete() const
Definition RAddObjectsOperation.h:103
void setDelete(bool on)
Definition RAddObjectsOperation.h:99
RModifiedObjects(QSharedPointer< RObject > object, RAddObjectsOperation::Flags flags)
Definition RAddObjectsOperation.h:72
RModifiedObjects()
Definition RAddObjectsOperation.h:54
QSharedPointer< RObject > object
Definition RAddObjectsOperation.h:119
RModifiedObjects(QSharedPointer< RObject > object)
Definition RAddObjectsOperation.h:59
bool getGeometryOnly() const
Definition RAddObjectsOperation.h:95
bool getFlag(RAddObjectsOperation::Flag flag) const
Definition RAddObjectsOperation.h:115
RAddObjectsOperation::Flags flags
Definition RAddObjectsOperation.h:120
void setForceNew(bool on)
Definition RAddObjectsOperation.h:83
Implementation of an operation that adds entities.
Definition RAddObjectsOperation.h:40
bool isEmpty()
Definition RAddObjectsOperation.h:159
int previewCounter
Definition RAddObjectsOperation.h:166
bool limitPreview
Definition RAddObjectsOperation.h:167
int getPreviewCounter() const
Definition RAddObjectsOperation.h:151
Flag
Definition RAddObjectsOperation.h:42
@ UseAttributes
Use assigned attributes instead of current attributes (color, linetype, width)
Definition RAddObjectsOperation.h:44
@ Delete
Delete object.
Definition RAddObjectsOperation.h:47
@ GeometryOnly
Only geometric properties have changed (e.g.
Definition RAddObjectsOperation.h:46
@ ForceNew
Force adding existing entity as new, duplicate entity.
Definition RAddObjectsOperation.h:45
QList< RModifiedObjects > addedObjects
Definition RAddObjectsOperation.h:164
void setLimitPreview(bool on)
Definition RAddObjectsOperation.h:155
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Abstract base class for all objects.
Definition RObject.h:64
int Id
Definition RObject.h:69
This abstract class is an interface for all operation implementations.
Definition ROperation.h:45
virtual RTransaction apply(RDocument &document, bool preview=false)=0
Applies this operation to selection in the given document.
Transaction implementation.
Definition RTransaction.h:73
void deleteObject(void obj)
Deletes the given RObject from the drawing.
Definition simple_create.js:216
void addObject(void obj)
Adds the given RObject to the drawing.
Definition simple_create.js:97
#define QCADOPERATIONS_EXPORT
Definition operations_global.h:10