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