QCAD
Open Source 2D CAD
RLinkedStorage.h
Go to the documentation of this file.
1 
20 #ifndef RLINKEDSTORAGE_H_
21 #define RLINKEDSTORAGE_H_
22 
23 #include "core_global.h"
24 
25 #include <QSharedPointer>
26 
27 #include "RMemoryStorage.h"
28 #include "RBlockReferenceEntity.h"
29 
40 public:
41  RLinkedStorage(RStorage& backStorage);
42  virtual ~RLinkedStorage();
43 
44  virtual void clear();
45 
46  virtual QSet<RObject::Id> queryAllObjects() const;
47  virtual QSet<RObject::Id> querySelectedLayers() const;
48  virtual QSet<REntity::Id> queryAllVisibleEntities();
49  virtual QSet<REntity::Id> queryAllEntities(bool undone = false, bool allBlocks = false, RS::EntityType type = RS::EntityAll);
50  virtual QSet<REntity::Id> queryAllEntities(bool undone, bool allBlocks, QList<RS::EntityType> types);
51  virtual QSet<RUcs::Id> queryAllUcs();
52  virtual QSet<RLayer::Id> queryAllLayers(bool undone = false);
53  virtual QSet<RLayerState::Id> queryAllLayerStates(bool undone = false);
54  virtual QSet<RBlock::Id> queryAllBlocks(bool undone = false);
55  virtual QSet<RBlock::Id> queryAllLayoutBlocks(bool includeModelSpace = false, bool undone = false) const;
56  virtual QSet<RLayout::Id> queryAllLayouts(bool undone = false);
57  virtual QSet<RView::Id> queryAllViews(bool undone = false);
58  virtual QSet<RLinetype::Id> queryAllLinetypes();
59  virtual QSet<REntity::Id> queryInfiniteEntities() const;
60  virtual QSet<REntity::Id> querySelectedEntities() const;
61 
62  virtual QSet<REntity::Id> queryLayerEntities(RLayer::Id layerId, bool allBlocks = false);
63  virtual bool hasBlockEntities(RBlock::Id blockId) const;
64  virtual QSet<REntity::Id> queryBlockEntities(RBlock::Id blockId);
65  virtual QSet<REntity::Id> queryLayerBlockEntities(RLayer::Id layerId, RBlock::Id blockId);
66  virtual QSet<REntity::Id> queryChildEntities(REntity::Id parentId, RS::EntityType type = RS::EntityAll);
67  virtual bool hasChildEntities(REntity::Id parentId) const;
68  virtual QSet<REntity::Id> queryBlockReferences(RBlock::Id blockId) const;
69  virtual QSet<REntity::Id> queryAllBlockReferences() const;
70  virtual QSet<REntity::Id> queryAllViewports() const;
71 
72  QSharedPointer<RDocumentVariables> queryDocumentVariablesDirect() const;
73  QSharedPointer<RDocumentVariables> queryDocumentVariables() const;
74 
75  //virtual QSharedPointer<RDocumentVariables> queryDocumentVariables() const;
76  virtual QSharedPointer<RObject> queryObjectDirect(RObject::Id objectId) const;
77  virtual QSharedPointer<RObject> queryObject(RObject::Id objectId) const;
78  virtual QSharedPointer<RObject> queryObjectByHandle(RObject::Handle objectHandle) const;
79 
80  virtual QSharedPointer<REntity> queryEntityDirect(REntity::Id objectId) const;
81  virtual QSharedPointer<REntity> queryEntity(REntity::Id objectId) const;
82 
83  virtual QSharedPointer<RLayer> queryLayerDirect(RLayer::Id layerId) const;
84  virtual QSharedPointer<RLayer> queryLayer(RLayer::Id layerId) const;
85  virtual QSharedPointer<RLayer> queryLayer(const QString& layerName) const;
86 
87  virtual QSharedPointer<RLayerState> queryLayerStateDirect(RLayerState::Id layerStateId) const;
88  virtual QSharedPointer<RLayerState> queryLayerState(RLayerState::Id layerStateId) const;
89  virtual QSharedPointer<RLayerState> queryLayerState(const QString& layerStateName) const;
90 
91  virtual QSharedPointer<RLayout> queryLayoutDirect(RLayout::Id layoutId) const;
92  virtual QSharedPointer<RLayout> queryLayout(RLayout::Id layoutId) const;
93  virtual QSharedPointer<RLayout> queryLayout(const QString& layoutName) const;
94 
95  virtual QSharedPointer<RBlock> queryBlockDirect(RBlock::Id blockId) const;
96  virtual QSharedPointer<RBlock> queryBlock(RBlock::Id blockId) const;
97  virtual QSharedPointer<RBlock> queryBlock(const QString& blockName) const;
98 
99  virtual QSharedPointer<RView> queryView(RView::Id viewId) const;
100  virtual QSharedPointer<RView> queryView(const QString& viewName) const;
101 
102  virtual QSharedPointer<RUcs> queryUcsDirect(RUcs::Id ucsId) const;
103  virtual QSharedPointer<RUcs> queryUcs(RUcs::Id ucsId) const;
104  virtual QSharedPointer<RUcs> queryUcs(const QString& ucsName) const;
105 
106  virtual QSharedPointer<RLinetype> queryLinetypeDirect(RLinetype::Id linetypeId) const;
107  virtual QSharedPointer<RLinetype> queryLinetype(RLinetype::Id linetypeId) const;
108  virtual QSharedPointer<RLinetype> queryLinetype(const QString& linetypeName) const;
109 
110  virtual QString getLayerName(RLayer::Id layerId) const;
111  virtual QSet<QString> getLayerNames(const QString& rxStr = RDEFAULT_QSTRING) const;
112  virtual RLayer::Id getLayerId(const QString& layerName) const;
113 
114  virtual QString getLayoutName(RLayout::Id layoutId) const;
115  virtual QSet<QString> getLayoutNames(const QString& rxStr = RDEFAULT_QSTRING) const;
116  virtual RLayout::Id getLayoutId(const QString& layoutName) const;
117 
118  virtual QString getBlockName(RBlock::Id blockId) const;
119  virtual QString getBlockNameFromLayout(const QString& layoutName) const;
120  virtual QString getBlockNameFromLayout(RLayout::Id layoutId) const;
121  virtual QSet<QString> getBlockNames(const QString& rxStr = RDEFAULT_QSTRING) const;
122  virtual RBlock::Id getBlockId(const QString& blockName) const;
123  virtual RBlock::Id getBlockIdAuto(const QString& blockLayoutName) const;
124 
125  virtual QString getViewName(RView::Id viewId) const;
126  virtual QSet<QString> getViewNames() const;
127  virtual RView::Id getViewId(const QString& viewName) const;
128 
129  virtual QString getLinetypeName(RLinetype::Id linetypeId) const;
130  virtual QString getLinetypeDescription(RLinetype::Id linetypeId) const;
131  virtual QString getLinetypeLabel(RLinetype::Id linetypeId) const;
132  virtual QSet<QString> getLinetypeNames() const;
133  virtual QList<RLinetypePattern> getLinetypePatterns() const;
134  virtual RLinetype::Id getLinetypeId(const QString& linetypeName) const;
135 
136 
137  virtual RObject::Id getNewObjectId();
139 
140  virtual RLayer::Id getCurrentLayerId() const;
141  virtual RBlock::Id getCurrentBlockId() const;
142  virtual RView::Id getCurrentViewId() const;
143  virtual RColor getCurrentColor() const;
145  virtual RLinetype::Id getCurrentLinetypeId() const;
146 
147  virtual bool deleteObject(RObject::Id objectId);
148  virtual bool setUndoStatus(RObject::Id objectId, bool status);
149  virtual QString getDimensionFont() const;
150 
151  virtual QVariant getKnownVariable(RS::KnownVariable key) const;
152 
153  virtual bool isInBackStorage(RObject::Id object);
154 
156  return backStorage;
157  }
158 
159 private:
162 };
163 
165 
166 #endif /* RMEMORYSTOARGE_H_ */
RMemoryStorage::queryLinetypeDirect
virtual QSharedPointer< RLinetype > queryLinetypeDirect(RLinetype::Id linetypeId) const
Definition: RMemoryStorage.cpp:1136
RStorage::isInBackStorage
virtual bool isInBackStorage(RObject::Id)
Linked storages should return true if the given object is stored in the storage the linked storage li...
Definition: RStorage.h:826
RMemoryStorage::getLinetypeDescription
virtual QString getLinetypeDescription(RLinetype::Id linetypeId) const
Definition: RMemoryStorage.cpp:2143
RMemoryStorage::getLinetypeId
virtual RLinetype::Id getLinetypeId(const QString &linetypeName) const
Definition: RMemoryStorage.cpp:2183
RLinkedStorage
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RLinkedStorage.h:39
RMemoryStorage::getLinetypeNames
virtual QSet< QString > getLinetypeNames() const
Definition: RMemoryStorage.cpp:2159
RStorage::getDimensionFont
virtual QString getDimensionFont() const
Definition: RStorage.cpp:381
RMemoryStorage::queryLayerEntities
virtual QSet< REntity::Id > queryLayerEntities(RLayer::Id layerId, bool allBlocks=false)
Definition: RMemoryStorage.cpp:556
RMemoryStorage::queryBlock
virtual QSharedPointer< RBlock > queryBlock(RBlock::Id blockId) const
Definition: RMemoryStorage.cpp:954
RMemoryStorage::getLinetypePatterns
virtual QList< RLinetypePattern > getLinetypePatterns() const
Definition: RMemoryStorage.cpp:2171
RMemoryStorage.h
RMemoryStorage::queryEntityDirect
virtual QSharedPointer< REntity > queryEntityDirect(REntity::Id objectId) const
Definition: RMemoryStorage.cpp:822
RMemoryStorage::queryLayout
virtual QSharedPointer< RLayout > queryLayout(RLayout::Id layoutId) const
Definition: RMemoryStorage.cpp:927
RMemoryStorage::getLayerNames
virtual QSet< QString > getLayerNames(const QString &rxStr=RDEFAULT_QSTRING) const
Definition: RMemoryStorage.cpp:2015
RMemoryStorage::queryAllUcs
virtual QSet< RUcs::Id > queryAllUcs()
Definition: RMemoryStorage.cpp:324
RMemoryStorage::queryAllBlockReferences
virtual QSet< REntity::Id > queryAllBlockReferences() const
Definition: RMemoryStorage.cpp:683
RMemoryStorage::queryBlockReferences
virtual QSet< REntity::Id > queryBlockReferences(RBlock::Id blockId) const
Definition: RMemoryStorage.cpp:665
RMemoryStorage::getBlockName
virtual QString getBlockName(RBlock::Id blockId) const
Definition: RMemoryStorage.cpp:1014
RMemoryStorage::queryAllLayouts
virtual QSet< RBlock::Id > queryAllLayouts(bool undone)
Definition: RMemoryStorage.cpp:386
RMemoryStorage::queryView
virtual QSharedPointer< RView > queryView(RView::Id viewId) const
Definition: RMemoryStorage.cpp:1083
RMemoryStorage::querySelectedLayers
virtual QSet< RObject::Id > querySelectedLayers() const
Definition: RMemoryStorage.cpp:550
RMemoryStorage::queryChildEntities
virtual QSet< REntity::Id > queryChildEntities(REntity::Id parentId, RS::EntityType type=RS::EntityAll)
Definition: RMemoryStorage.cpp:615
RS::KnownVariable
KnownVariable
Well established document variables.
Definition: RS.h:393
RMemoryStorage::clear
virtual void clear()
Resets this storage to its initial, empty state.
Definition: RMemoryStorage.cpp:41
RMemoryStorage::queryBlockDirect
virtual QSharedPointer< RBlock > queryBlockDirect(const QString &blockName) const
Definition: RMemoryStorage.cpp:1003
RLinkedStorage::objectIdOffset
int objectIdOffset
Definition: RLinkedStorage.h:161
RMemoryStorage::queryLayerState
virtual QSharedPointer< RLayerState > queryLayerState(RLayerState::Id layerStateId) const
Definition: RMemoryStorage.cpp:893
RMemoryStorage::queryObjectDirect
virtual QSharedPointer< RObject > queryObjectDirect(RObject::Id objectId) const
Definition: RMemoryStorage.cpp:770
RMemoryStorage::hasBlockEntities
virtual bool hasBlockEntities(RBlock::Id blockId) const
Definition: RMemoryStorage.cpp:570
RS::EntityType
EntityType
Entity types used for property handling / filtering.
Definition: RS.h:125
RMemoryStorage::queryAllBlocks
virtual QSet< RBlock::Id > queryAllBlocks(bool undone=false)
Definition: RMemoryStorage.cpp:360
RMemoryStorage::queryAllLayers
virtual QSet< RLayer::Id > queryAllLayers(bool undone=false)
Definition: RMemoryStorage.cpp:336
RMemoryStorage::queryAllEntities
virtual QSet< REntity::Id > queryAllEntities(bool undone=false, bool allBlocks=false, RS::EntityType type=RS::EntityAll)
Definition: RMemoryStorage.cpp:237
RMemoryStorage::deleteObject
virtual bool deleteObject(RObject::Id objectId)
Deletes the object with the given ID.
Definition: RMemoryStorage.cpp:1752
RMemoryStorage::getBlockId
virtual RBlock::Id getBlockId(const QString &blockName) const
Definition: RMemoryStorage.cpp:2100
RDEFAULT_QSTRING
#define RDEFAULT_QSTRING
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDebug.h:48
RMemoryStorage::getLayerId
virtual RLayer::Id getLayerId(const QString &layerName) const
Definition: RMemoryStorage.cpp:2030
RMemoryStorage::getBlockNameFromLayout
virtual QString getBlockNameFromLayout(const QString &layoutName) const
Definition: RMemoryStorage.cpp:1022
RMemoryStorage
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RMemoryStorage.h:37
RMemoryStorage::queryDocumentVariables
virtual QSharedPointer< RDocumentVariables > queryDocumentVariables() const
Definition: RMemoryStorage.cpp:745
RMemoryStorage::queryBlockEntities
virtual QSet< REntity::Id > queryBlockEntities(RBlock::Id blockId)
Definition: RMemoryStorage.cpp:586
RMemoryStorage::queryObjectByHandle
virtual QSharedPointer< RObject > queryObjectByHandle(RObject::Handle objectHandle) const
Definition: RMemoryStorage.cpp:777
RMemoryStorage::queryLinetype
virtual QSharedPointer< RLinetype > queryLinetype(RLinetype::Id linetypeId) const
Definition: RMemoryStorage.cpp:1143
RMemoryStorage::queryLayerStateDirect
virtual QSharedPointer< RLayerState > queryLayerStateDirect(RLayerState::Id layerStateId) const
Definition: RMemoryStorage.cpp:886
RMemoryStorage::queryUcs
virtual QSharedPointer< RUcs > queryUcs(RUcs::Id ucsId) const
Definition: RMemoryStorage.cpp:1114
RStorage::getCurrentBlockId
virtual RBlock::Id getCurrentBlockId() const
Definition: RStorage.h:409
RMemoryStorage::queryLayer
virtual QSharedPointer< RLayer > queryLayer(RLayer::Id layerId) const
Definition: RMemoryStorage.cpp:844
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(RMath *)
RMemoryStorage::getLayoutNames
virtual QSet< QString > getLayoutNames(const QString &rxStr=RDEFAULT_QSTRING) const
Definition: RMemoryStorage.cpp:2077
RMemoryStorage::hasChildEntities
virtual bool hasChildEntities(REntity::Id parentId) const
Definition: RMemoryStorage.cpp:647
RS::EntityAll
@ EntityAll
All entities (for filters)
Definition: RS.h:138
RStorage::getCurrentViewId
virtual RView::Id getCurrentViewId() const
Definition: RStorage.h:369
RMemoryStorage::getNewObjectHandle
virtual RObject::Handle getNewObjectHandle()
Definition: RMemoryStorage.cpp:982
RMemoryStorage::queryInfiniteEntities
virtual QSet< REntity::Id > queryInfiniteEntities() const
Definition: RMemoryStorage.cpp:422
RObject::Id
int Id
Definition: RObject.h:66
RObject::Handle
int Handle
Definition: RObject.h:68
core_global.h
RMemoryStorage::getViewNames
virtual QSet< QString > getViewNames() const
Definition: RMemoryStorage.cpp:1071
RMemoryStorage::getBlockNames
virtual QSet< QString > getBlockNames(const QString &rxStr=RDEFAULT_QSTRING) const
Definition: RMemoryStorage.cpp:1048
RMemoryStorage::queryAllLayerStates
virtual QSet< RLayerState::Id > queryAllLayerStates(bool undone=false) const
Definition: RMemoryStorage.cpp:348
RBlockReferenceEntity.h
RMemoryStorage::queryObject
virtual QSharedPointer< RObject > queryObject(RObject::Id objectId) const
Definition: RMemoryStorage.cpp:760
RMemoryStorage::getLayoutName
virtual QString getLayoutName(RLayout::Id layoutId) const
Definition: RMemoryStorage.cpp:2069
RLinkedStorage::backStorage
RStorage * backStorage
Definition: RLinkedStorage.h:160
RMemoryStorage::queryAllViewports
virtual QSet< REntity::Id > queryAllViewports() const
Definition: RMemoryStorage.cpp:712
RMemoryStorage::queryUcsDirect
virtual QSharedPointer< RUcs > queryUcsDirect(RUcs::Id ucsId) const
Definition: RMemoryStorage.cpp:1107
RMemoryStorage::queryDocumentVariablesDirect
virtual QSharedPointer< RDocumentVariables > queryDocumentVariablesDirect() const
Definition: RMemoryStorage.cpp:753
RLineweight::Lineweight
Lineweight
Definition: RLineweight.h:46
RMemoryStorage::getKnownVariable
virtual QVariant getKnownVariable(RS::KnownVariable key) const
Definition: RMemoryStorage.cpp:1999
RMemoryStorage::queryAllObjects
virtual QSet< RObject::Id > queryAllObjects() const
Definition: RMemoryStorage.cpp:166
RMemoryStorage::getViewName
virtual QString getViewName(RView::Id viewId) const
Definition: RMemoryStorage.cpp:1063
RMemoryStorage::getViewId
virtual RView::Id getViewId(const QString &viewName) const
Definition: RMemoryStorage.cpp:2127
RMemoryStorage::setUndoStatus
virtual bool setUndoStatus(RObject::Id objectId, bool status)
Definition: RMemoryStorage.cpp:1908
RStorage
This is the abstract base class for all storage implementations.
Definition: RStorage.h:64
RMemoryStorage::getLinetypeLabel
virtual QString getLinetypeLabel(RLinetype::Id linetypeId) const
Definition: RMemoryStorage.cpp:2151
RStorage::getCurrentLinetypeId
virtual RLinetype::Id getCurrentLinetypeId() const
Definition: RStorage.cpp:193
RMemoryStorage::getLayerName
virtual QString getLayerName(RLayer::Id layerId) const
Definition: RMemoryStorage.cpp:2007
RStorage::getNewObjectId
virtual RObject::Id getNewObjectId()
Definition: RStorage.cpp:77
RMemoryStorage::queryEntity
virtual QSharedPointer< REntity > queryEntity(REntity::Id objectId) const
Definition: RMemoryStorage.cpp:812
RStorage::getCurrentColor
virtual RColor getCurrentColor() const
Definition: RStorage.cpp:161
RMemoryStorage::getLinetypeName
virtual QString getLinetypeName(RLinetype::Id linetypeId) const
Definition: RMemoryStorage.cpp:2135
RMemoryStorage::queryAllVisibleEntities
virtual QSet< REntity::Id > queryAllVisibleEntities()
Definition: RMemoryStorage.cpp:182
RLinkedStorage::getBackStorage
RStorage * getBackStorage() const
Definition: RLinkedStorage.h:155
RMemoryStorage::queryAllLinetypes
virtual QSet< RLinetype::Id > queryAllLinetypes()
Definition: RMemoryStorage.cpp:410
RMemoryStorage::getBlockIdAuto
virtual RBlock::Id getBlockIdAuto(const QString &blockLayoutName) const
Definition: RMemoryStorage.cpp:2108
RMemoryStorage::queryAllLayoutBlocks
virtual QSet< RBlock::Id > queryAllLayoutBlocks(bool includeModelSpace=false, bool undone=false) const
Definition: RMemoryStorage.cpp:372
RMemoryStorage::queryLayoutDirect
virtual QSharedPointer< RLayout > queryLayoutDirect(RLayout::Id layoutId) const
Definition: RMemoryStorage.cpp:920
RMemoryStorage::queryLayerDirect
virtual QSharedPointer< RLayer > queryLayerDirect(RLayer::Id layerId) const
Definition: RMemoryStorage.cpp:837
RMemoryStorage::queryLayerBlockEntities
virtual QSet< REntity::Id > queryLayerBlockEntities(RLayer::Id layerId, RBlock::Id blockId)
Definition: RMemoryStorage.cpp:603
QCADCORE_EXPORT
#define QCADCORE_EXPORT
Definition: core_global.h:10
RMemoryStorage::getLayoutId
virtual RLayout::Id getLayoutId(const QString &layoutName) const
Definition: RMemoryStorage.cpp:2092
RStorage::getCurrentLineweight
virtual RLineweight::Lineweight getCurrentLineweight() const
Definition: RStorage.cpp:169
RStorage::getCurrentLayerId
virtual RLayer::Id getCurrentLayerId() const
Definition: RStorage.cpp:149
RMemoryStorage::queryAllViews
virtual QSet< RView::Id > queryAllViews(bool undone=false)
Definition: RMemoryStorage.cpp:398
RMemoryStorage::querySelectedEntities
virtual QSet< REntity::Id > querySelectedEntities() const
Definition: RMemoryStorage.cpp:524
RColor
Color.
Definition: RColor.h:44