QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RMemoryStorage.h
Go to the documentation of this file.
1
20#ifndef RMEMORYSTORAGE_H_
21#define RMEMORYSTORAGE_H_
22
23#include "core_global.h"
24
25#include <QSharedPointer>
26
27#include "RBox.h"
28#include "RStorage.h"
29#include "RTransaction.h"
30
31class RBlock;
32class RDimStyle;
34class REntity;
35class RLayer;
36class RLayerState;
37class RLayout;
38class RLinetype;
40class RLineweight;
41class RMemoryStorage;
42class RObject;
43class RUcs;
44class RView;
45
53public:
55 virtual ~RMemoryStorage();
56
57 virtual void clear();
58
59 virtual void setCurrentBlock(RObject::Id blockId);
60
61 virtual void beginTransaction();
62 virtual void commitTransaction();
63 virtual void rollbackTransaction();
64
65 //virtual QList<RObject::Id> orderBackToFront(const QSet<RObject::Id>& entityIds);
66
67 virtual QSet<RObject::Id> queryAllObjects() const;
68 virtual QSet<RObject::Id> querySelectedLayers() const;
69 virtual QSet<RObject::Id> queryAllVisibleEntities();
70 virtual QSet<RObject::Id> queryAllEntities(bool undone = false, bool allBlocks = false, RS::EntityType type = RS::EntityAll);
71 virtual QSet<RObject::Id> queryAllEntities(bool undone, bool allBlocks, QList<RS::EntityType> types);
72 virtual QSet<RObject::Id> queryWorkingSetEntities();
73 virtual QSet<RObject::Id> queryAllUcs();
74 virtual QSet<RObject::Id> queryAllLayers(bool undone = false);
75 virtual QSet<RObject::Id> queryAllLayerStates(bool undone = false) const;
76 virtual QSet<RObject::Id> queryAllBlocks(bool undone = false);
77 virtual QSet<RObject::Id> queryAllLayoutBlocks(bool includeModelSpace = false, bool undone = false) const;
78 virtual QSet<RObject::Id> queryAllLayouts(bool undone);
79 virtual QSet<RObject::Id> queryAllViews(bool undone = false);
80 virtual QSet<RObject::Id> queryAllLinetypes();
81 virtual QSet<RObject::Id> queryInfiniteEntities() const;
82 virtual QSet<RObject::Id> querySelectedEntities() const;
83
84 virtual QSet<RObject::Id> queryLayerEntities(RObject::Id layerId, bool allBlocks = false);
85 virtual QSet<RObject::Id> querySelectedLayerEntities(RObject::Id layerId, bool allBlocks = false);
86 virtual bool hasBlockEntities(RObject::Id blockId) const;
87 virtual QSet<RObject::Id> queryBlockEntities(RObject::Id blockId);
88 virtual QSet<RObject::Id> queryLayerBlockEntities(RObject::Id layerId, RObject::Id blockId);
89 virtual QSet<RObject::Id> queryChildEntities(RObject::Id parentId, RS::EntityType type = RS::EntityAll);
90 virtual bool hasChildEntities(RObject::Id parentId) const;
91 bool hasBlockReferenceEntities() const;
92 virtual QSet<RObject::Id> queryBlockReferences(RObject::Id blockId) const;
93 virtual QSet<RObject::Id> queryAllBlockReferences() const;
94 virtual QSet<RObject::Id> queryAllViewports() const;
95 //virtual QSet<RObject::Id> queryViewEntities(RObject::Id viewId);
96
97 virtual QSharedPointer<RDocumentVariables> queryDocumentVariables() const;
98 virtual QSharedPointer<RDocumentVariables> queryDocumentVariablesDirect() const;
99 virtual QSharedPointer<RDimStyle> queryDimStyle() const;
100 virtual QSharedPointer<RDimStyle> queryDimStyleDirect() const;
101 virtual QSharedPointer<RObject> queryObject(RObject::Id objectId) const;
102 virtual QSharedPointer<RObject> queryObjectByHandle(RObject::Handle objectHandle) const;
103 virtual QSharedPointer<RObject> queryObjectByHandleDirect(RObject::Handle objectHandle) const;
104 virtual QSharedPointer<REntity> queryEntity(RObject::Id objectId) const;
105 virtual QSharedPointer<RLayer> queryLayer(RObject::Id layerId) const;
106 virtual QSharedPointer<RLayer> queryLayer(const QString& layerName) const;
107 virtual QSharedPointer<RLayerState> queryLayerState(RObject::Id layerStateId) const;
108 virtual QSharedPointer<RLayerState> queryLayerState(const QString& layerStateName) const;
109 virtual QSharedPointer<RLayout> queryLayout(RObject::Id layoutId) const;
110 virtual QSharedPointer<RLayout> queryLayout(const QString& layoutName) const;
111 virtual QSharedPointer<RBlock> queryBlock(RObject::Id blockId) const;
112 virtual QSharedPointer<RBlock> queryBlock(const QString& blockName) const;
113 virtual QSharedPointer<RBlock> queryBlockDirect(const QString& blockName) const;
114 virtual QSharedPointer<RView> queryView(RObject::Id viewId) const;
115 virtual QSharedPointer<RView> queryView(const QString& viewName) const;
116 virtual QSharedPointer<RUcs> queryUcs(RObject::Id ucsId) const;
117 virtual QSharedPointer<RUcs> queryUcs(const QString& ucsName) const;
118 virtual QSharedPointer<RLinetype> queryLinetypeDirect(RObject::Id linetypeId) const;
119 virtual QSharedPointer<RLinetype> queryLinetype(RObject::Id linetypeId) const;
120 virtual QSharedPointer<RLinetype> queryLinetype(const QString& linetypeName) const;
121
122 void clearVisibleCache();
123 void updateVisibleCache() const;
124
125 void clearSelectionCache();
126 void updateSelectedEntityMap() const;
127 void updateSelectedLayerMap() const;
128
129 virtual int countSelectedEntities() const;
130 virtual void clearEntitySelection(QSet<RObject::Id>* affectedEntities = NULL);
131 virtual void selectAllEntities(QSet<RObject::Id>* affectedEntities = NULL);
132 virtual void selectEntity(RObject::Id entityId, bool add = false,
133 QSet<RObject::Id>* affectedEntities = NULL);
134 virtual void deselectEntity(RObject::Id entityId,
135 QSet<RObject::Id>* affectedEntities=NULL);
136 virtual int selectEntities(const QSet<RObject::Id>& entityIds,
137 bool add = false,
138 QSet<RObject::Id>* affectedEntities = NULL);
139 virtual int deselectEntities(const QSet<RObject::Id>& entityIds,
140 QSet<RObject::Id>* affectedEntities = NULL);
141 void setEntitySelected(QSharedPointer<REntity> entity, bool on,
142 QSet<RObject::Id>* affectedEntities = NULL, bool onlyDescend = false);
143 virtual bool isSelected(RObject::Id entityId);
144 virtual bool isSelectedWorkingSet(RObject::Id entityId);
145
146 virtual bool isEntityVisible(const REntity& entity) const;
147
148 virtual bool hasSelection() const;
149
150 virtual RBox getBoundingBox(bool ignoreHiddenLayers = true, bool ignoreEmpty=false) const;
151 virtual RBox getSelectionBox() const;
152 virtual RBox getEntitiesBox(QSet<RObject::Id>& ids) const;
153
154 virtual bool removeObject(QSharedPointer<RObject> object);
155 virtual bool saveObject(QSharedPointer<RObject> object, bool checkBlockRecursion = true, bool keepHandles = false, bool *overwrite = NULL);
156 bool checkRecursion(
157 RObject::Id blockId, RObject::Id potentialChildBlockId
158 );
159 virtual bool deleteObject(RObject::Id objectId);
160 virtual void saveTransaction(RTransaction& transaction);
161 virtual void deleteTransactionsFrom(int transactionId);
162 virtual RTransaction getTransaction(int transactionId);
163
164 virtual void resetTransactionStack();
165
166 virtual void toggleUndoStatus(QSet<RObject::Id>& objects);
167 virtual void toggleUndoStatus(RObject::Id object);
168 virtual bool setUndoStatus(RObject::Id objectId, bool status);
169 virtual void setUndoStatus(RObject& object, bool status);
170 //virtual bool getUndoStatus(RObject::Id objectId) const;
171 virtual int getMaxTransactionId();
172
173 virtual QStringList getVariables() const;
174 virtual void setVariable(const QString& key, const QVariant& value, bool overwrite = true);
175 virtual QVariant getVariable(const QString& key) const;
176 virtual void removeVariable(const QString& key);
177
178 virtual void setKnownVariable(RS::KnownVariable key, const QVariant& value, RTransaction* transaction = NULL);
179 virtual QVariant getKnownVariable(RS::KnownVariable key) const;
180
181 virtual QString getLayerName(RObject::Id layerId) const;
182 virtual QSet<QString> getLayerNames(const QString& rxStr = RDEFAULT_QSTRING) const;
183 virtual RObject::Id getLayerId(const QString& layerName) const;
184
185 virtual QString getLayerStateName(RObject::Id layerStateId) const;
186 virtual QSet<QString> getLayerStateNames(const QString& rxStr = RDEFAULT_QSTRING) const;
187 virtual RObject::Id getLayerStateId(const QString& layerStateName) const;
188
189 virtual QString getLayoutName(RObject::Id layoutId) const;
190 virtual QSet<QString> getLayoutNames(const QString& rxStr = RDEFAULT_QSTRING) const;
191 virtual RObject::Id getLayoutId(const QString& layoutName) const;
192
193 virtual QString getBlockName(RObject::Id blockId) const;
194 virtual QString getBlockNameFromHandle(RObject::Handle blockHandle) const;
195 virtual QString getBlockNameFromLayout(const QString& layoutName) const;
196 virtual QString getBlockNameFromLayout(RObject::Id layoutId) const;
197 virtual QSet<QString> getBlockNames(const QString& rxStr = RDEFAULT_QSTRING, bool undone = false) const;
198 virtual RObject::Id getBlockId(const QString& blockName) const;
199 virtual RObject::Id getBlockIdAuto(const QString& blockLayoutName) const;
200
201 virtual QString getViewName(RObject::Id viewId) const;
202 virtual QSet<QString> getViewNames() const;
203 virtual RObject::Id getViewId(const QString& viewName) const;
204
205 virtual QString getLinetypeName(RObject::Id linetypeId) const;
206 virtual QString getLinetypeDescription(RObject::Id linetypeId) const;
207 virtual QString getLinetypeLabel(RObject::Id linetypeId) const;
208 virtual QSet<QString> getLinetypeNames() const;
209 virtual QList<RLinetypePattern> getLinetypePatterns() const;
210 virtual RObject::Id getLinetypeId(const QString& linetypeName) const;
211
212 virtual QSharedPointer<RObject> queryObjectDirect(RObject::Id objectId) const;
213 virtual RObject* queryObjectCC(RObject::Id objectId) const;
214 virtual QSharedPointer<REntity> queryEntityDirect(RObject::Id objectId) const;
215 virtual QSharedPointer<REntity> queryVisibleEntityDirect(RObject::Id objectId) const;
216 virtual QSharedPointer<RUcs> queryUcsDirect(RObject::Id ucsId) const;
217 virtual QSharedPointer<RLayer> queryLayerDirect(RObject::Id layerId) const;
218 virtual QSharedPointer<RLayerState> queryLayerStateDirect(RObject::Id layerStateId) const;
219 virtual QSharedPointer<RLayout> queryLayoutDirect(RObject::Id layoutId) const;
220 virtual QSharedPointer<RBlock> queryBlockDirect(RObject::Id blockId) const;
221
222 virtual void setObjectHandle(RObject& object, RObject::Handle objectHandle);
224
225 virtual void setLastTransactionId(int transactionId);
226
228
229 virtual void update();
230
231 virtual void setEntityParentId(REntity& entity, RObject::Id parentId);
232
233 //virtual void setUnit(RS::Unit unit, RTransaction* transaction = NULL);
234 //virtual RS::Unit getUnit() const;
235
236// virtual void setDimensionFont(const QString& f);
237// virtual QString getDimensionFont() const;
238
239// virtual void setLinetypeScale(double v, RTransaction* transaction);
240// virtual double getLinetypeScale() const;
241
242protected:
244
248 mutable RBox boundingBox[2][2];
249 mutable bool boundingBoxDirty;
250 //mutable bool boundingBoxIgnoreHiddenLayers;
251 //mutable bool boundingBoxIgnoreEmpty;
252
254 QHash<RObject::Id, QSharedPointer<RObject> > objectMap;
255 QHash<RObject::Handle, QSharedPointer<RObject> > objectHandleMap;
256 QHash<RObject::Id, QSharedPointer<REntity> > entityMap;
257 mutable QHash<RObject::Id, QSharedPointer<REntity> > selectedEntityMap;
259 mutable QHash<RObject::Id, QSharedPointer<REntity> > visibleEntityMap;
261 mutable QHash<RObject::Id, QSharedPointer<RLayer> > selectedLayerMap;
263 mutable QHash<RObject::Id, QHash<RObject::Id, QSharedPointer<REntity> > > blockEntityMap;
264 QHash<RObject::Id, QSharedPointer<RBlock> > blockMap;
265 QHash<RS::EntityType, QHash<RObject::Id, QSharedPointer<RObject> > > typeObjectMap;
266 QHash<RObject::Id, QSharedPointer<RLayer> > layerMap;
267 QHash<QString, QSharedPointer<RLayer> > layerNameMap;
268 QHash<RObject::Id, QSharedPointer<RLayerState> > layerStateMap;
269 QHash<RObject::Id, QSharedPointer<RLayout> > layoutMap;
270 QHash<RObject::Id, QSharedPointer<RLinetype> > linetypeMap;
272 QMultiHash<RObject::Id, RObject::Id> childMap;
273 QHash<int, RTransaction> transactionMap;
274
275 // document wide variables are stored as custom properties in this object:
276 QSharedPointer<RDocumentVariables> documentVariables;
277 QSharedPointer<RDimStyle> dimStyle;
278
279 QHash<QString, QVariant> variables;
281 //QHash<RS::KnownVariable, QVariant> knownVariables;
282 //RS::Unit unit;
283 //QString dimensionFont;
284 //double linetypeScale;
285};
286
288
289#endif /* RMEMORYSTOARGE_H_ */
#define RDEFAULT_QSTRING
Definition RDebug.h:41
Q_DECLARE_METATYPE(RMath *)
Definition RDebug.h:38
Represents a block definition in a drawing.
Definition RBlock.h:42
Represents a box e.g.
Definition RBox.h:46
Dimension style class.
Definition RDimStyle.h:42
This type of object is used to store document wide variables.
Definition RDocumentVariables.h:38
Base class for all entity classes.
Definition REntity.h:63
Represents a layer in a drawing.
Definition RLayer.h:45
Represents a layer state (state of list of layers) in a drawing.
Definition RLayerState.h:37
Represents a layout definition in a drawing.
Definition RLayout.h:42
Represents a linetype in a drawing.
Definition RLinetype.h:45
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RLinetypePattern.h:42
Definition RLineweight.h:39
Lineweight
Definition RLineweight.h:44
Basic memory based storage.
Definition RMemoryStorage.h:52
QHash< RS::EntityType, QHash< RObject::Id, QSharedPointer< RObject > > > typeObjectMap
Definition RMemoryStorage.h:265
bool visibleEntityMapDirty
Definition RMemoryStorage.h:260
QHash< QString, QSharedPointer< RLayer > > layerNameMap
Definition RMemoryStorage.h:267
QSharedPointer< RDocumentVariables > documentVariables
Definition RMemoryStorage.h:276
QHash< RObject::Id, QSharedPointer< RLayout > > layoutMap
Definition RMemoryStorage.h:269
QHash< RObject::Id, QSharedPointer< REntity > > visibleEntityMap
Definition RMemoryStorage.h:259
QHash< RObject::Id, QSharedPointer< RLinetype > > linetypeMap
Definition RMemoryStorage.h:270
QSharedPointer< RDimStyle > dimStyle
Definition RMemoryStorage.h:277
QHash< RObject::Id, QSharedPointer< REntity > > selectedEntityMap
Definition RMemoryStorage.h:257
QMap< QString, QString > variableCaseMap
Definition RMemoryStorage.h:280
bool inTransaction
Definition RMemoryStorage.h:253
QHash< int, RTransaction > transactionMap
Definition RMemoryStorage.h:273
QHash< RObject::Id, QSharedPointer< RBlock > > blockMap
Definition RMemoryStorage.h:264
QHash< RObject::Id, QSharedPointer< RLayer > > layerMap
Definition RMemoryStorage.h:266
RLineweight::Lineweight maxLineweight
Definition RMemoryStorage.h:243
QHash< RObject::Id, QSharedPointer< RLayerState > > layerStateMap
Definition RMemoryStorage.h:268
bool boundingBoxDirty
Definition RMemoryStorage.h:249
QMultiHash< RObject::Id, RObject::Id > childMap
maps parent entity IDs to child entity IDs
Definition RMemoryStorage.h:272
bool selectedEntityMapDirty
Definition RMemoryStorage.h:258
QHash< RObject::Handle, QSharedPointer< RObject > > objectHandleMap
Definition RMemoryStorage.h:255
QHash< RObject::Id, QHash< RObject::Id, QSharedPointer< REntity > > > blockEntityMap
Definition RMemoryStorage.h:263
QHash< RObject::Id, QSharedPointer< RObject > > objectMap
Definition RMemoryStorage.h:254
bool selectedLayerMapDirty
Definition RMemoryStorage.h:262
QHash< QString, QVariant > variables
Definition RMemoryStorage.h:279
QHash< RObject::Id, QSharedPointer< REntity > > entityMap
Definition RMemoryStorage.h:256
QHash< RObject::Id, QSharedPointer< RLayer > > selectedLayerMap
Definition RMemoryStorage.h:261
Abstract base class for all objects.
Definition RObject.h:64
int Handle
Definition RObject.h:71
int Id
Definition RObject.h:69
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityAll
All entities (for filters)
Definition RS.h:241
KnownVariable
Well established document variables.
Definition RS.h:501
This is the abstract base class for all storage implementations.
Definition RStorage.h:67
virtual QSet< RObject::Id > queryLayerBlockEntities(RObject::Id layerId, RObject::Id blockId)=0
virtual void clearEntitySelection(QSet< RObject::Id > *affectedEntities=NULL)=0
Clears the selection status of all entities.
virtual QSharedPointer< RLayer > queryLayer(RObject::Id layerId) const =0
virtual QSharedPointer< RLayer > queryLayerDirect(RObject::Id layerId) const
Definition RStorage.h:292
virtual QSharedPointer< RUcs > queryUcsDirect(RObject::Id ucsId) const
Definition RStorage.h:276
virtual void selectAllEntities(QSet< RObject::Id > *affectedEntities=NULL)=0
Sets the selection status of all entities.
virtual QSet< QString > getLinetypeNames() const =0
virtual RBox getBoundingBox(bool ignoreHiddenLayers=true, bool ignoreEmpty=false) const =0
virtual void update()
Clear caches:
Definition RStorage.h:832
virtual RLineweight::Lineweight getMaxLineweight() const =0
virtual void rollbackTransaction()=0
Rolls the current transaction back in order to cancel it.
virtual bool removeObject(QSharedPointer< RObject > object)=0
virtual QString getBlockNameFromLayout(const QString &layoutName) const =0
virtual QSet< RObject::Id > queryAllLayerStates(bool undone=false) const =0
virtual QSharedPointer< RLinetype > queryLinetypeDirect(RObject::Id linetypeId) const =0
virtual QSet< RObject::Id > queryAllLayoutBlocks(bool includeModelSpace=false, bool undone=false) const =0
virtual int selectEntities(const QSet< RObject::Id > &entityIds, bool add=false, QSet< RObject::Id > *affectedEntities=NULL)=0
Selects all entities with the given IDs.
virtual QSet< RObject::Id > querySelectedLayers() const =0
virtual QString getBlockName(RObject::Id blockId) const =0
virtual RObject::Id getViewId(const QString &viewName) const =0
virtual QSet< RObject::Id > queryAllLinetypes()=0
virtual bool isSelectedWorkingSet(RObject::Id entityId)
Definition RStorage.cpp:130
virtual QString getLayoutName(RObject::Id layoutId) const =0
virtual QSharedPointer< RDocumentVariables > queryDocumentVariables() const =0
virtual void setLastTransactionId(int transactionId)
Sets the ID of the last created transaction.
Definition RStorage.h:715
virtual RBox getEntitiesBox(QSet< RObject::Id > &ids) const =0
virtual void removeVariable(const QString &key)=0
Removes the custom variable with the given key.
virtual QSet< QString > getLayerNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual int deselectEntities(const QSet< RObject::Id > &entityIds, QSet< RObject::Id > *affectedEntities=NULL)=0
Deselects all entities with the given IDs.
virtual QString getViewName(RObject::Id viewId) const =0
virtual QSet< QString > getLayoutNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual QSharedPointer< RObject > queryObjectByHandle(RObject::Handle objectHandle) const =0
virtual QString getLinetypeName(RObject::Id linetypeId) const =0
virtual QSet< RObject::Id > queryAllViewports() const =0
virtual QSharedPointer< RLinetype > queryLinetype(RObject::Id linetypeId) const =0
virtual void clear()
Resets this storage to its initial, empty state.
Definition RStorage.cpp:59
virtual int getMaxTransactionId()=0
virtual QSet< RObject::Id > queryBlockReferences(RObject::Id blockId) const =0
virtual bool isSelected(RObject::Id entityId)
Definition RStorage.cpp:125
virtual QSet< RObject::Id > queryAllViews(bool undone=false)=0
virtual QSharedPointer< RBlock > queryBlock(RObject::Id blockId) const =0
virtual QSharedPointer< RLayerState > queryLayerState(RObject::Id layerStateId) const =0
virtual void setKnownVariable(RS::KnownVariable key, const QVariant &value, RTransaction *transaction=NULL)=0
Sets a known DXF/DWG variable for this document.
virtual void setUndoStatus(RObject &object, bool status)
Definition RStorage.cpp:87
virtual QSet< RObject::Id > queryAllLayers(bool undone=false)=0
virtual QSharedPointer< RDimStyle > queryDimStyle() const =0
virtual QSharedPointer< RUcs > queryUcs(RObject::Id ucsId) const =0
virtual QList< RLinetypePattern > getLinetypePatterns() const =0
virtual QSet< RObject::Id > queryAllEntities(bool undone=false, bool allBlocks=false, RS::EntityType type=RS::EntityAll)=0
virtual RObject::Id getLinetypeId(const QString &linetypeName) const =0
virtual void setObjectHandle(RObject &object, RObject::Handle objectHandle)
Definition RStorage.cpp:80
virtual bool isEntityVisible(const REntity &entity, RObject::Id blockId) const
Definition RStorage.cpp:1219
virtual void beginTransaction()=0
Starts a new transaction.
virtual QSet< RObject::Id > queryBlockEntities(RObject::Id blockId)=0
virtual QSharedPointer< RLayerState > queryLayerStateDirect(RObject::Id layerStateId) const
Definition RStorage.h:315
virtual QStringList getVariables() const =0
virtual QSharedPointer< RBlock > queryBlockDirect(RObject::Id blockId) const =0
virtual RBox getSelectionBox() const =0
virtual QSet< RObject::Id > queryAllBlockReferences() const =0
virtual QSet< QString > getViewNames() const =0
virtual QSet< RObject::Id > queryInfiniteEntities() const =0
virtual QSet< RObject::Id > queryWorkingSetEntities()=0
virtual int countSelectedEntities() const
Definition RStorage.h:555
virtual QVariant getVariable(const QString &key) const =0
virtual QString getLayerStateName(RObject::Id layerStateId) const =0
virtual bool hasBlockEntities(RObject::Id blockId) const =0
virtual QSharedPointer< RDocumentVariables > queryDocumentVariablesDirect() const =0
virtual RTransaction getTransaction(int transactionId)=0
virtual QSet< QString > getLayerStateNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual void deselectEntity(RObject::Id entityId, QSet< RObject::Id > *affectedEntities=NULL)=0
Deselects the entity with the given ID.
virtual QSet< RObject::Id > queryAllLayouts(bool undone=false)=0
virtual void resetTransactionStack()=0
virtual QSet< RObject::Id > queryAllVisibleEntities()=0
virtual QSharedPointer< RObject > queryObjectDirect(RObject::Id objectId) const
Definition RStorage.h:254
virtual bool hasSelection() const =0
virtual QString getLayerName(RObject::Id layerId) const =0
virtual QSet< QString > getBlockNames(const QString &rxStr=RDEFAULT_QSTRING, bool undone=false) const =0
virtual QSet< RObject::Id > querySelectedEntities() const =0
virtual QString getBlockNameFromHandle(RObject::Handle blockHandle) const =0
virtual QSharedPointer< REntity > queryVisibleEntityDirect(RObject::Id entityId) const
Definition RStorage.cpp:111
virtual RObject::Id getLayerId(const QString &layerName) const =0
virtual void setVariable(const QString &key, const QVariant &value, bool overwrite=true)=0
Sets a custom variable in the context of this document.
virtual QSet< RObject::Id > queryAllObjects() const =0
virtual QSharedPointer< RDimStyle > queryDimStyleDirect() const =0
virtual RObject::Id getBlockIdAuto(const QString &blockLayoutName) const =0
virtual void toggleUndoStatus(QSet< RObject::Id > &objects)=0
Toggles the current undo status of all given objects.
virtual void saveTransaction(RTransaction &transaction)=0
Saves the given transaction.
virtual bool saveObject(QSharedPointer< RObject > object, bool checkBlockRecursion=true, bool keepHandles=false, bool *overwrite=NULL)=0
Saves the given object to the storage.
virtual QSharedPointer< REntity > queryEntity(RObject::Id entityId) const =0
virtual RObject::Id getLayoutId(const QString &layoutName) const =0
virtual QSet< RObject::Id > querySelectedLayerEntities(RObject::Id layerId, bool allBlocks=false)=0
virtual RObject * queryObjectCC(RObject::Id objectId) const =0
virtual void setCurrentBlock(RObject::Id blockId)
Definition RStorage.cpp:213
virtual bool hasChildEntities(RObject::Id parentId) const =0
virtual QSet< RObject::Id > queryAllUcs()=0
virtual RObject::Handle getNewObjectHandle()
Definition RStorage.cpp:99
virtual void commitTransaction()=0
Commits the current transaction.
virtual void setEntityParentId(REntity &entity, RObject::Id parentId)
Definition RStorage.cpp:141
virtual QSet< RObject::Id > queryLayerEntities(RObject::Id layerId, bool allBlocks=false)=0
virtual RObject::Id getBlockId(const QString &blockName) const =0
virtual QString getLinetypeDescription(RObject::Id linetypeId) const =0
virtual void selectEntity(RObject::Id entityId, bool add=false, QSet< RObject::Id > *affectedEntities=NULL)=0
Selects the entity with the given ID.
virtual QSet< RObject::Id > queryAllBlocks(bool undone=false)=0
virtual QString getLinetypeLabel(RObject::Id linetypeId) const =0
virtual QSharedPointer< RObject > queryObject(RObject::Id objectId) const =0
virtual QVariant getKnownVariable(RS::KnownVariable key) const =0
virtual QSharedPointer< RLayout > queryLayoutDirect(RObject::Id layoutId) const
Definition RStorage.h:335
virtual void deleteTransactionsFrom(int transactionId)=0
Deletes all transactions with IDs from transactionId (inclusive) to the maximum transaction ID.
virtual QSharedPointer< RView > queryView(RObject::Id viewId) const =0
virtual RObject::Id getLayerStateId(const QString &layerStateName) const =0
virtual QSet< RObject::Id > queryChildEntities(RObject::Id parentId, RS::EntityType type=RS::EntityAll)=0
virtual QSharedPointer< REntity > queryEntityDirect(RObject::Id entityId) const
Definition RStorage.cpp:107
virtual QSharedPointer< RLayout > queryLayout(RObject::Id layoutId) const =0
Transaction implementation.
Definition RTransaction.h:73
Represents a user coordinate system (UCS) in a drawing.
Definition RUcs.h:41
Represents a view in a drawing.
Definition RView.h:41
#define QCADCORE_EXPORT
Definition core_global.h:10
void deleteObject(void obj)
Deletes the given RObject from the drawing.
Definition simple_create.js:216
#define NULL
Definition opennurbs_system.h:256