|
QCAD
Open Source 2D CAD
|
Go to the documentation of this file.
20 #ifndef RMEMORYSTORAGE_H_
21 #define RMEMORYSTORAGE_H_
25 #include <QSharedPointer>
56 virtual QSet<REntity::Id>
queryAllEntities(
bool undone,
bool allBlocks, QList<RS::EntityType> types);
62 virtual QSet<RBlock::Id>
queryAllLayoutBlocks(
bool includeModelSpace =
false,
bool undone =
false)
const;
84 virtual QSharedPointer<RObject> queryObjectByHandleDirect(
RObject::Handle objectHandle)
const;
87 virtual QSharedPointer<RLayer>
queryLayer(
const QString& layerName)
const;
89 virtual QSharedPointer<RLayerState>
queryLayerState(
const QString& layerStateName)
const;
91 virtual QSharedPointer<RLayout>
queryLayout(
const QString& layoutName)
const;
93 virtual QSharedPointer<RBlock>
queryBlock(
const QString& blockName)
const;
94 virtual QSharedPointer<RBlock>
queryBlockDirect(
const QString& blockName)
const;
96 virtual QSharedPointer<RView>
queryView(
const QString& viewName)
const;
98 virtual QSharedPointer<RUcs>
queryUcs(
const QString& ucsName)
const;
101 virtual QSharedPointer<RLinetype>
queryLinetype(
const QString& linetypeName)
const;
103 void clearVisibleCache();
104 void updateVisibleCache()
const;
106 void clearSelectionCache();
107 void updateSelectedEntityMap()
const;
108 void updateSelectedLayerMap()
const;
114 QSet<REntity::Id>* affectedEntities = NULL);
116 QSet<REntity::Id>* affectedEntities=NULL);
119 QSet<REntity::Id>* affectedEntities = NULL);
121 QSet<REntity::Id>* affectedEntities = NULL);
122 void setEntitySelected(QSharedPointer<REntity> entity,
bool on,
123 QSet<REntity::Id>* affectedEntities = NULL,
bool onlyDescend =
false);
131 virtual RBox getBoundingBox(
bool ignoreHiddenLayers =
true,
bool ignoreEmpty=
false)
const;
135 virtual bool removeObject(QSharedPointer<RObject>
object);
136 virtual bool saveObject(QSharedPointer<RObject>
object,
bool checkBlockRecursion =
true,
bool keepHandles =
false);
155 virtual void setVariable(
const QString& key,
const QVariant& value,
bool overwrite =
true);
156 virtual QVariant
getVariable(
const QString& key)
const;
227 mutable RBox boundingBox[2][2];
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;
virtual int countSelectedEntities() const
Definition: RStorage.h:565
virtual QSharedPointer< RBlock > queryBlockDirect(RBlock::Id blockId) const =0
virtual QSet< REntity::Id > queryAllVisibleEntities()=0
virtual QSet< RView::Id > queryAllViews(bool undone=false)=0
virtual RLayer::Id getLayerId(const QString &layerName) const =0
virtual QString getLayerStateName(RLayerState::Id layerStateId) const =0
bool selectedEntityMapDirty
Definition: RMemoryStorage.h:237
virtual QSharedPointer< RLayer > queryLayer(RLayer::Id layerId) const =0
virtual QSharedPointer< RLayer > queryLayerDirect(RLayer::Id layerId) const
Definition: RStorage.h:294
QHash< RLinetype::Id, QSharedPointer< RLinetype > > linetypeMap
Definition: RMemoryStorage.h:249
RLineweight::Lineweight maxLineweight
Definition: RMemoryStorage.h:222
virtual QSharedPointer< RBlock > queryBlock(RBlock::Id blockId) const =0
virtual QString getViewName(RView::Id viewId) const =0
virtual void selectAllEntities(QSet< REntity::Id > *affectedEntities=NULL)=0
Sets the selection status of all entities.
virtual QSet< REntity::Id > queryLayerEntities(RLayer::Id layerId, bool allBlocks=false)=0
virtual QSharedPointer< RObject > queryObjectByHandle(RObject::Handle objectHandle) const =0
virtual RLayer::Id getLayerStateId(const QString &layerStateName) const =0
virtual QSharedPointer< RDocumentVariables > queryDocumentVariablesDirect() const =0
virtual QSharedPointer< RObject > queryObject(RObject::Id objectId) const =0
virtual QSharedPointer< RLayout > queryLayout(RLayout::Id layoutId) const =0
QMap< QString, QString > variableCaseMap
Definition: RMemoryStorage.h:258
virtual void clearEntitySelection(QSet< REntity::Id > *affectedEntities=NULL)=0
Clears the selection status of all entities.
virtual RBox getEntitiesBox(QSet< REntity::Id > &ids) const =0
virtual void resetTransactionStack()=0
virtual void setUndoStatus(RObject &object, bool status)
Definition: RStorage.cpp:73
virtual QSet< QString > getBlockNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
QMultiHash< REntity::Id, REntity::Id > childMap
maps parent entity IDs to child entity IDs
Definition: RMemoryStorage.h:251
virtual QSharedPointer< RLinetype > queryLinetype(RLinetype::Id linetypeId) const =0
virtual void rollbackTransaction()=0
Rolls the current transaction back in order to cancel it.
virtual QSet< REntity::Id > queryLayerBlockEntities(RLayer::Id layerId, RBlock::Id blockId)=0
KnownVariable
Well established document variables.
Definition: RS.h:393
virtual QSharedPointer< RDocumentVariables > queryDocumentVariables() const =0
virtual QSet< REntity::Id > querySelectedEntities() const =0
virtual void removeVariable(const QString &key)=0
Removes the custom variable with the given key.
Abstract base class for all objects.
Definition: RObject.h:61
virtual bool isSelected(REntity::Id entityId)
Definition: RStorage.h:635
virtual QSet< RBlock::Id > queryAllLayoutBlocks(bool includeModelSpace=false, bool undone=false) const =0
virtual bool deleteObject(RObject::Id objectId)=0
Deletes the object with the given ID.
virtual void deleteTransactionsFrom(int transactionId)=0
Deletes all transactions with IDs from transactionId (inclusive) to the maximum transaction ID.
QSharedPointer< RDocumentVariables > documentVariables
Definition: RMemoryStorage.h:255
EntityType
Entity types used for property handling / filtering.
Definition: RS.h:125
virtual QSharedPointer< RLayout > queryLayoutDirect(RLayout::Id layoutId) const
Definition: RStorage.h:337
virtual QSet< REntity::Id > queryBlockReferences(RBlock::Id blockId) const =0
virtual QSharedPointer< REntity > queryEntity(REntity::Id entityId) const =0
QHash< RObject::Handle, QSharedPointer< RObject > > objectHandleMap
Definition: RMemoryStorage.h:234
virtual void setEntityParentId(REntity &entity, REntity::Id parentId)
Definition: RStorage.h:703
virtual QSet< REntity::Id > queryBlockEntities(RBlock::Id blockId)=0
QHash< RLayerState::Id, QSharedPointer< RLayerState > > layerStateMap
Definition: RMemoryStorage.h:247
virtual QSharedPointer< REntity > queryEntityDirect(REntity::Id entityId) const
Definition: RStorage.h:254
#define RDEFAULT_QSTRING
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDebug.h:48
bool boundingBoxDirty
Definition: RMemoryStorage.h:228
virtual void saveTransaction(RTransaction &transaction)=0
Saves the given transaction.
QHash< QString, QVariant > variables
Definition: RMemoryStorage.h:257
QHash< RObject::Id, QSharedPointer< RObject > > objectMap
Definition: RMemoryStorage.h:233
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RMemoryStorage.h:37
virtual int selectEntities(const QSet< REntity::Id > &entityIds, bool add=false, QSet< REntity::Id > *affectedEntities=NULL)=0
Selects all entities with the given IDs.
QHash< QString, QSharedPointer< RLayer > > layerNameMap
Definition: RMemoryStorage.h:246
virtual RBlock::Id getBlockIdAuto(const QString &blockLayoutName) const =0
virtual RView::Id getViewId(const QString &viewName) const =0
virtual QSharedPointer< RUcs > queryUcsDirect(RUcs::Id ucsId) const
Definition: RStorage.h:278
bool visibleEntityMapDirty
Definition: RMemoryStorage.h:239
virtual void commitTransaction()=0
Commits the current transaction.
bool selectedLayerMapDirty
Definition: RMemoryStorage.h:241
QHash< RLayout::Id, QSharedPointer< RLayout > > layoutMap
Definition: RMemoryStorage.h:248
Base class for all entity classes.
Definition: REntity.h:65
virtual RBox getSelectionBox() const =0
Q_DECLARE_METATYPE(RMath *)
virtual void setLastTransactionId(int transactionId)
Sets the ID of the last created transaction.
Definition: RStorage.h:748
virtual QSet< QString > getViewNames() const =0
virtual QSet< REntity::Id > queryAllViewports() const =0
virtual RBlock::Id getBlockId(const QString &blockName) const =0
virtual void beginTransaction()=0
Starts a new transaction.
virtual void selectEntity(REntity::Id entityId, bool add=false, QSet< REntity::Id > *affectedEntities=NULL)=0
Selects the entity with the given ID.
virtual bool removeObject(QSharedPointer< RObject > object)=0
virtual QVariant getVariable(const QString &key) const =0
virtual RTransaction getTransaction(int transactionId)=0
virtual QSharedPointer< RLinetype > queryLinetypeDirect(RLinetype::Id linetypeId) const =0
virtual QSet< RUcs::Id > queryAllUcs()=0
virtual void toggleUndoStatus(QSet< RObject::Id > &objects)=0
Toggles the current undo status of all given objects.
QHash< RBlock::Id, QSharedPointer< RBlock > > blockMap
Definition: RMemoryStorage.h:243
@ EntityAll
All entities (for filters)
Definition: RS.h:138
virtual QSet< RLinetype::Id > queryAllLinetypes()=0
virtual bool isSelectedWorkingSet(REntity::Id entityId)
Definition: RStorage.h:640
virtual QSharedPointer< RObject > queryObjectDirect(RObject::Id objectId) const
Definition: RStorage.h:243
virtual void setVariable(const QString &key, const QVariant &value, bool overwrite=true)=0
Sets a custom variable in the context of this document.
virtual QList< RLinetypePattern > getLinetypePatterns() const =0
int Id
Definition: RObject.h:66
int Handle
Definition: RObject.h:68
virtual QSet< REntity::Id > queryChildEntities(REntity::Id parentId, RS::EntityType type=RS::EntityAll)=0
virtual QSet< RBlock::Id > queryAllBlocks(bool undone=false)=0
virtual QSet< REntity::Id > queryAllEntities(bool undone=false, bool allBlocks=false, RS::EntityType type=RS::EntityAll)=0
virtual int getMaxTransactionId()=0
virtual QSet< RLayout::Id > queryAllLayouts(bool undone=false)=0
virtual RLayout::Id getLayoutId(const QString &layoutName) const =0
virtual QSet< QString > getLayerStateNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual void setObjectHandle(RObject &object, RObject::Handle objectHandle)
Definition: RStorage.cpp:66
virtual bool hasSelection() const =0
virtual QString getLayerName(RLayer::Id layerId) 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 QString getLinetypeName(RLinetype::Id linetypeId) const =0
Lineweight
Definition: RLineweight.h:46
virtual QString getLinetypeLabel(RLinetype::Id linetypeId) const =0
virtual QVariant getKnownVariable(RS::KnownVariable key) const =0
QHash< int, RTransaction > transactionMap
Definition: RMemoryStorage.h:252
virtual RLineweight::Lineweight getMaxLineweight() const =0
QHash< REntity::Id, QSharedPointer< REntity > > entityMap
Definition: RMemoryStorage.h:235
QHash< RLayer::Id, QSharedPointer< RLayer > > selectedLayerMap
Definition: RMemoryStorage.h:240
This is the abstract base class for all storage implementations.
Definition: RStorage.h:64
virtual QSharedPointer< REntity > queryVisibleEntityDirect(REntity::Id entityId) const
Definition: RStorage.h:258
virtual QString getBlockNameFromLayout(const QString &layoutName) const =0
virtual void deselectEntity(REntity::Id entityId, QSet< REntity::Id > *affectedEntities=NULL)=0
Deselects the entity with the given ID.
virtual RBox getBoundingBox(bool ignoreHiddenLayers=true, bool ignoreEmpty=false) const =0
virtual QSet< RObject::Id > querySelectedLayers() const =0
virtual bool hasChildEntities(REntity::Id parentId) const =0
virtual QSet< REntity::Id > queryInfiniteEntities() const =0
virtual void update()
Clear caches:
Definition: RStorage.h:865
QHash< RLayer::Id, QSharedPointer< RLayer > > layerMap
Definition: RMemoryStorage.h:245
virtual bool isEntityVisible(const REntity &entity, RBlock::Id blockId) const
Definition: RStorage.cpp:1137
bool inTransaction
Definition: RMemoryStorage.h:232
virtual RObject::Handle getNewObjectHandle()
Definition: RStorage.cpp:85
Transaction implementation.
Definition: RTransaction.h:74
virtual bool saveObject(QSharedPointer< RObject > object, bool checkBlockRecursion=true, bool keepHandles=false)=0
Saves the given object to the storage.
virtual QString getLinetypeDescription(RLinetype::Id linetypeId) const =0
virtual RLinetype::Id getLinetypeId(const QString &linetypeName) const =0
virtual int deselectEntities(const QSet< REntity::Id > &entityIds, QSet< REntity::Id > *affectedEntities=NULL)=0
Deselects all entities with the given IDs.
virtual QSet< REntity::Id > queryWorkingSetEntities()=0
Represents a box e.g.
Definition: RBox.h:43
virtual QStringList getVariables() const =0
virtual QString getBlockName(RBlock::Id blockId) const =0
virtual QString getLayoutName(RLayout::Id layoutId) const =0
virtual void clear()
Resets this storage to its initial, empty state.
Definition: RStorage.cpp:46
QHash< RS::EntityType, QHash< RObject::Id, QSharedPointer< RObject > > > typeObjectMap
Definition: RMemoryStorage.h:244
virtual QSet< QString > getLayoutNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual void setCurrentBlock(RBlock::Id blockId)
Definition: RStorage.h:392
virtual QSharedPointer< RView > queryView(RView::Id viewId) const =0
virtual QSet< QString > getLayerNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual QSet< RLayerState::Id > queryAllLayerStates(bool undone=false) const =0
QHash< REntity::Id, QSharedPointer< REntity > > visibleEntityMap
Definition: RMemoryStorage.h:238
virtual bool hasBlockEntities(RBlock::Id blockId) const =0
virtual QSet< RLayer::Id > queryAllLayers(bool undone=false)=0
#define QCADCORE_EXPORT
Definition: core_global.h:10
virtual QSharedPointer< RLayerState > queryLayerStateDirect(RLayerState::Id layerStateId) const
Definition: RStorage.h:317
virtual QSharedPointer< RUcs > queryUcs(RUcs::Id ucsId) const =0
virtual QSet< RObject::Id > queryAllObjects() const =0
virtual QSet< QString > getLinetypeNames() const =0
QHash< RBlock::Id, QHash< REntity::Id, QSharedPointer< REntity > > > blockEntityMap
Definition: RMemoryStorage.h:242
virtual QSharedPointer< RLayerState > queryLayerState(RLayerState::Id layerStateId) const =0
virtual QSet< REntity::Id > queryAllBlockReferences() const =0
QHash< REntity::Id, QSharedPointer< REntity > > selectedEntityMap
Definition: RMemoryStorage.h:236