QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
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
29class RBlock;
30class RColor;
31class RDimStyle;
33class REntity;
34class RLayer;
35class RLayerState;
36class RLayout;
37class RLinetype;
39class RLineweight;
40class RLinkedStorage;
41class RMemoryStorage;
42class RObject;
43class RStorage;
44class RUcs;
45class RView;
46
57public:
58 RLinkedStorage(RStorage& backStorage);
59 virtual ~RLinkedStorage();
60
61 virtual void clear();
62 virtual void clearLinked();
63
64 virtual QSet<RObject::Id> queryAllObjects() const;
65 virtual QSet<RObject::Id> querySelectedLayers() const;
66 virtual QSet<RObject::Id> queryAllVisibleEntities();
67 virtual QSet<RObject::Id> queryAllEntities(bool undone = false, bool allBlocks = false, RS::EntityType type = RS::EntityAll);
68 virtual QSet<RObject::Id> queryAllEntities(bool undone, bool allBlocks, QList<RS::EntityType> types);
69 virtual QSet<RObject::Id> queryAllUcs();
70 virtual QSet<RObject::Id> queryAllLayers(bool undone = false);
71 virtual QSet<RObject::Id> queryAllLayerStates(bool undone = false);
72 virtual QSet<RObject::Id> queryAllBlocks(bool undone = false);
73 virtual QSet<RObject::Id> queryAllLayoutBlocks(bool includeModelSpace = false, bool undone = false) const;
74 virtual QSet<RObject::Id> queryAllLayouts(bool undone = false);
75 virtual QSet<RObject::Id> queryAllViews(bool undone = false);
76 virtual QSet<RObject::Id> queryAllLinetypes();
77 virtual QSet<RObject::Id> queryInfiniteEntities() const;
78 virtual QSet<RObject::Id> querySelectedEntities() const;
79
80 virtual QSet<RObject::Id> queryLayerEntities(RObject::Id layerId, bool allBlocks = false);
81 virtual QSet<RObject::Id> querySelectedLayerEntities(RObject::Id layerId, bool allBlocks = false);
82 virtual bool hasBlockEntities(RObject::Id blockId) const;
83 virtual QSet<RObject::Id> queryBlockEntities(RObject::Id blockId);
84 virtual QSet<RObject::Id> queryLayerBlockEntities(RObject::Id layerId, RObject::Id blockId);
85 virtual QSet<RObject::Id> queryChildEntities(RObject::Id parentId, RS::EntityType type = RS::EntityAll);
86 virtual bool hasChildEntities(RObject::Id parentId) const;
87 virtual QSet<RObject::Id> queryBlockReferences(RObject::Id blockId) const;
88 virtual QSet<RObject::Id> queryAllBlockReferences() const;
89 virtual QSet<RObject::Id> queryAllViewports() const;
90
91 virtual QSharedPointer<RDocumentVariables> queryDocumentVariablesDirect() const;
92 virtual QSharedPointer<RDocumentVariables> queryDocumentVariables() const;
93
94 virtual QSharedPointer<RDimStyle> queryDimStyle() const;
95 virtual QSharedPointer<RDimStyle> queryDimStyleDirect() const;
96
97 //virtual QSharedPointer<RDocumentVariables> queryDocumentVariables() const;
98 virtual QSharedPointer<RObject> queryObjectDirect(RObject::Id objectId) const;
99 virtual RObject* queryObjectCC(RObject::Id objectId) const;
100 virtual QSharedPointer<RObject> queryObject(RObject::Id objectId) const;
101 virtual QSharedPointer<RObject> queryObjectByHandle(RObject::Handle objectHandle) const;
102
103 virtual QSharedPointer<REntity> queryEntityDirect(RObject::Id objectId) const;
104 virtual QSharedPointer<REntity> queryEntity(RObject::Id objectId) const;
105
106 virtual QSharedPointer<RLayer> queryLayerDirect(RObject::Id layerId) const;
107 virtual QSharedPointer<RLayer> queryLayer(RObject::Id layerId) const;
108 virtual QSharedPointer<RLayer> queryLayer(const QString& layerName) const;
109
110 virtual QSharedPointer<RLayerState> queryLayerStateDirect(RObject::Id layerStateId) const;
111 virtual QSharedPointer<RLayerState> queryLayerState(RObject::Id layerStateId) const;
112 virtual QSharedPointer<RLayerState> queryLayerState(const QString& layerStateName) const;
113
114 virtual QSharedPointer<RLayout> queryLayoutDirect(RObject::Id layoutId) const;
115 virtual QSharedPointer<RLayout> queryLayout(RObject::Id layoutId) const;
116 virtual QSharedPointer<RLayout> queryLayout(const QString& layoutName) const;
117
118 virtual QSharedPointer<RBlock> queryBlockDirect(RObject::Id blockId) const;
119 virtual QSharedPointer<RBlock> queryBlock(RObject::Id blockId) const;
120 virtual QSharedPointer<RBlock> queryBlock(const QString& blockName) const;
121
122 virtual QSharedPointer<RView> queryView(RObject::Id viewId) const;
123 virtual QSharedPointer<RView> queryView(const QString& viewName) const;
124
125 virtual QSharedPointer<RUcs> queryUcsDirect(RObject::Id ucsId) const;
126 virtual QSharedPointer<RUcs> queryUcs(RObject::Id ucsId) const;
127 virtual QSharedPointer<RUcs> queryUcs(const QString& ucsName) const;
128
129 virtual QSharedPointer<RLinetype> queryLinetypeDirect(RObject::Id linetypeId) const;
130 virtual QSharedPointer<RLinetype> queryLinetype(RObject::Id linetypeId) const;
131 virtual QSharedPointer<RLinetype> queryLinetype(const QString& linetypeName) const;
132
133 virtual QString getLayerName(RObject::Id layerId) const;
134 virtual QSet<QString> getLayerNames(const QString& rxStr = RDEFAULT_QSTRING) const;
135 virtual RObject::Id getLayerId(const QString& layerName) const;
136
137 virtual QString getLayoutName(RObject::Id layoutId) const;
138 virtual QSet<QString> getLayoutNames(const QString& rxStr = RDEFAULT_QSTRING) const;
139 virtual RObject::Id getLayoutId(const QString& layoutName) const;
140
141 virtual QString getBlockName(RObject::Id blockId) const;
142 virtual QString getBlockNameFromHandle(RObject::Handle blockHandle) const;
143 virtual QString getBlockNameFromLayout(const QString& layoutName) const;
144 virtual QString getBlockNameFromLayout(RObject::Id layoutId) const;
145 virtual QSet<QString> getBlockNames(const QString& rxStr = RDEFAULT_QSTRING, bool undone = false) const;
146 virtual RObject::Id getBlockId(const QString& blockName) const;
147 virtual RObject::Id getBlockIdAuto(const QString& blockLayoutName) const;
148
149 virtual QString getViewName(RObject::Id viewId) const;
150 virtual QSet<QString> getViewNames() const;
151 virtual RObject::Id getViewId(const QString& viewName) const;
152
153 virtual QString getLinetypeName(RObject::Id linetypeId) const;
154 virtual QString getLinetypeDescription(RObject::Id linetypeId) const;
155 virtual QString getLinetypeLabel(RObject::Id linetypeId) const;
156 virtual QSet<QString> getLinetypeNames() const;
157 virtual QList<RLinetypePattern> getLinetypePatterns() const;
158 virtual RObject::Id getLinetypeId(const QString& linetypeName) const;
159
160
161 virtual RObject::Id getNewObjectId();
163
164 virtual RObject::Id getCurrentLayerId() const;
165 virtual RObject::Id getCurrentBlockId() const;
166 virtual RObject::Id getCurrentViewId() const;
167 virtual RColor getCurrentColor() const;
169 virtual RObject::Id getCurrentLinetypeId() const;
170
171 virtual bool deleteObject(RObject::Id objectId);
172 virtual bool setUndoStatus(RObject::Id objectId, bool status);
173 virtual QString getDimensionFont() const;
174
175 virtual QVariant getKnownVariable(RS::KnownVariable key) const;
176
177 virtual bool isInBackStorage(RObject::Id object);
178
180 return backStorage;
181 }
182
183private:
186};
187
189
190#endif /* RMEMORYSTOARGE_H_ */
#define RDEFAULT_QSTRING
Definition RDebug.h:41
Q_DECLARE_METATYPE(RMath *)
Represents a block definition in a drawing.
Definition RBlock.h:42
Color.
Definition RColor.h:43
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
Memory based storage that is linked to another storage.
Definition RLinkedStorage.h:56
RStorage * backStorage
Definition RLinkedStorage.h:184
int objectIdOffset
Definition RLinkedStorage.h:185
RStorage * getBackStorage() const
Definition RLinkedStorage.h:179
Basic memory based storage.
Definition RMemoryStorage.h:52
virtual QSet< RObject::Id > queryAllLayers(bool undone=false)
Definition RMemoryStorage.cpp:346
virtual QSet< RObject::Id > queryAllVisibleEntities()
Definition RMemoryStorage.cpp:192
virtual QSet< QString > getViewNames() const
Definition RMemoryStorage.cpp:1194
virtual QList< RLinetypePattern > getLinetypePatterns() const
Definition RMemoryStorage.cpp:2317
virtual RObject::Id getLayoutId(const QString &layoutName) const
Definition RMemoryStorage.cpp:2238
virtual QSharedPointer< RBlock > queryBlock(RObject::Id blockId) const
Definition RMemoryStorage.cpp:1053
virtual QSet< QString > getBlockNames(const QString &rxStr=RDEFAULT_QSTRING, bool undone=false) const
Definition RMemoryStorage.cpp:1171
virtual QSharedPointer< RDocumentVariables > queryDocumentVariables() const
Definition RMemoryStorage.cpp:817
virtual QSet< RObject::Id > queryAllBlockReferences() const
Definition RMemoryStorage.cpp:740
virtual QSet< RObject::Id > queryLayerEntities(RObject::Id layerId, bool allBlocks=false)
Definition RMemoryStorage.cpp:570
virtual QSharedPointer< RLayerState > queryLayerState(RObject::Id layerStateId) const
Definition RMemoryStorage.cpp:992
virtual QSet< RObject::Id > queryAllLinetypes()
Definition RMemoryStorage.cpp:420
virtual bool setUndoStatus(RObject::Id objectId, bool status)
Definition RMemoryStorage.cpp:2054
virtual RObject * queryObjectCC(RObject::Id objectId) const
Definition RMemoryStorage.cpp:864
virtual void clear()
Resets this storage to its initial, empty state.
Definition RMemoryStorage.cpp:49
virtual QSharedPointer< RBlock > queryBlockDirect(const QString &blockName) const
Definition RMemoryStorage.cpp:1117
virtual QVariant getKnownVariable(RS::KnownVariable key) const
Definition RMemoryStorage.cpp:2145
virtual QSharedPointer< RObject > queryObjectDirect(RObject::Id objectId) const
Definition RMemoryStorage.cpp:857
virtual QSet< RObject::Id > querySelectedLayerEntities(RObject::Id layerId, bool allBlocks=false)
Definition RMemoryStorage.cpp:584
virtual RObject::Id getBlockIdAuto(const QString &blockLayoutName) const
Definition RMemoryStorage.cpp:2254
virtual QSet< RObject::Id > queryAllEntities(bool undone=false, bool allBlocks=false, RS::EntityType type=RS::EntityAll)
Definition RMemoryStorage.cpp:247
virtual QSet< QString > getLayoutNames(const QString &rxStr=RDEFAULT_QSTRING) const
Definition RMemoryStorage.cpp:2223
virtual RObject::Id getLinetypeId(const QString &linetypeName) const
Definition RMemoryStorage.cpp:2329
virtual QSharedPointer< RLayerState > queryLayerStateDirect(RObject::Id layerStateId) const
Definition RMemoryStorage.cpp:985
virtual QString getBlockNameFromHandle(RObject::Handle blockHandle) const
Definition RMemoryStorage.cpp:1136
virtual QSharedPointer< RLinetype > queryLinetypeDirect(RObject::Id linetypeId) const
Definition RMemoryStorage.cpp:1259
virtual QSet< RObject::Id > queryAllViewports() const
Definition RMemoryStorage.cpp:784
virtual QSharedPointer< RLayout > queryLayoutDirect(RObject::Id layoutId) const
Definition RMemoryStorage.cpp:1019
virtual QSet< QString > getLinetypeNames() const
Definition RMemoryStorage.cpp:2305
virtual QSet< RObject::Id > queryAllLayouts(bool undone)
Definition RMemoryStorage.cpp:396
virtual QSet< QString > getLayerNames(const QString &rxStr=RDEFAULT_QSTRING) const
Definition RMemoryStorage.cpp:2161
virtual QSet< RObject::Id > queryAllObjects() const
Definition RMemoryStorage.cpp:176
virtual QSharedPointer< REntity > queryEntity(RObject::Id objectId) const
Definition RMemoryStorage.cpp:911
virtual QSharedPointer< RUcs > queryUcs(RObject::Id ucsId) const
Definition RMemoryStorage.cpp:1237
virtual QSharedPointer< RLayer > queryLayerDirect(RObject::Id layerId) const
Definition RMemoryStorage.cpp:936
virtual QSet< RObject::Id > queryBlockEntities(RObject::Id blockId)
Definition RMemoryStorage.cpp:614
virtual QString getLayoutName(RObject::Id layoutId) const
Definition RMemoryStorage.cpp:2215
virtual QSharedPointer< RLayer > queryLayer(RObject::Id layerId) const
Definition RMemoryStorage.cpp:943
virtual QSharedPointer< RDimStyle > queryDimStyleDirect() const
Definition RMemoryStorage.cpp:840
virtual QString getBlockName(RObject::Id blockId) const
Definition RMemoryStorage.cpp:1128
virtual QString getLayerName(RObject::Id layerId) const
Definition RMemoryStorage.cpp:2153
virtual QSet< RObject::Id > queryAllUcs()
Definition RMemoryStorage.cpp:334
virtual QSharedPointer< RDimStyle > queryDimStyle() const
Definition RMemoryStorage.cpp:832
virtual QString getViewName(RObject::Id viewId) const
Definition RMemoryStorage.cpp:1186
virtual QString getLinetypeDescription(RObject::Id linetypeId) const
Definition RMemoryStorage.cpp:2289
virtual QSharedPointer< RView > queryView(RObject::Id viewId) const
Definition RMemoryStorage.cpp:1206
virtual QSharedPointer< RDocumentVariables > queryDocumentVariablesDirect() const
Definition RMemoryStorage.cpp:825
virtual QSet< RObject::Id > queryLayerBlockEntities(RObject::Id layerId, RObject::Id blockId)
Definition RMemoryStorage.cpp:631
virtual QSet< RObject::Id > querySelectedEntities() const
Definition RMemoryStorage.cpp:538
virtual QSet< RObject::Id > queryChildEntities(RObject::Id parentId, RS::EntityType type=RS::EntityAll)
Definition RMemoryStorage.cpp:643
virtual QSet< RObject::Id > queryAllViews(bool undone=false)
Definition RMemoryStorage.cpp:408
virtual QString getBlockNameFromLayout(const QString &layoutName) const
Definition RMemoryStorage.cpp:1145
virtual QSharedPointer< RObject > queryObjectByHandle(RObject::Handle objectHandle) const
Definition RMemoryStorage.cpp:871
virtual RObject::Id getLayerId(const QString &layerName) const
Definition RMemoryStorage.cpp:2176
virtual RObject::Id getViewId(const QString &viewName) const
Definition RMemoryStorage.cpp:2273
virtual QSet< RObject::Id > querySelectedLayers() const
Definition RMemoryStorage.cpp:564
virtual QSet< RObject::Id > queryInfiniteEntities() const
Definition RMemoryStorage.cpp:432
virtual bool hasChildEntities(RObject::Id parentId) const
Definition RMemoryStorage.cpp:675
virtual QSharedPointer< RLinetype > queryLinetype(RObject::Id linetypeId) const
Definition RMemoryStorage.cpp:1266
virtual QSharedPointer< REntity > queryEntityDirect(RObject::Id objectId) const
Definition RMemoryStorage.cpp:921
virtual QString getLinetypeLabel(RObject::Id linetypeId) const
Definition RMemoryStorage.cpp:2297
virtual bool hasBlockEntities(RObject::Id blockId) const
Definition RMemoryStorage.cpp:598
virtual QString getLinetypeName(RObject::Id linetypeId) const
Definition RMemoryStorage.cpp:2281
virtual QSharedPointer< RObject > queryObject(RObject::Id objectId) const
Definition RMemoryStorage.cpp:847
virtual RObject::Handle getNewObjectHandle()
Definition RMemoryStorage.cpp:1096
virtual QSharedPointer< RUcs > queryUcsDirect(RObject::Id ucsId) const
Definition RMemoryStorage.cpp:1230
virtual QSet< RObject::Id > queryBlockReferences(RObject::Id blockId) const
Definition RMemoryStorage.cpp:706
virtual QSet< RObject::Id > queryAllLayerStates(bool undone=false) const
Definition RMemoryStorage.cpp:358
virtual RObject::Id getBlockId(const QString &blockName) const
Definition RMemoryStorage.cpp:2246
virtual QSharedPointer< RLayout > queryLayout(RObject::Id layoutId) const
Definition RMemoryStorage.cpp:1026
virtual QSet< RObject::Id > queryAllBlocks(bool undone=false)
Definition RMemoryStorage.cpp:370
virtual QSet< RObject::Id > queryAllLayoutBlocks(bool includeModelSpace=false, bool undone=false) const
Definition RMemoryStorage.cpp:382
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 RObject::Id getCurrentViewId() const
Definition RStorage.h:367
virtual RObject::Id getCurrentLayerId() const
Definition RStorage.cpp:201
virtual RObject::Id getCurrentBlockId() const
Definition RStorage.h:398
virtual RObject::Id getNewObjectId()
Definition RStorage.cpp:91
virtual RColor getCurrentColor() const
Definition RStorage.cpp:242
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:793
virtual QString getDimensionFont() const
Definition RStorage.cpp:462
virtual RObject::Id getCurrentLinetypeId() const
Definition RStorage.cpp:274
virtual RLineweight::Lineweight getCurrentLineweight() const
Definition RStorage.cpp:250
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