QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RStorage.h
Go to the documentation of this file.
1
20#ifndef RSTORAGE_H
21#define RSTORAGE_H
22
23#include "core_global.h"
24
25#include <QString>
26#include <QSharedPointer>
27#include <QDateTime>
28
29#include "RColor.h"
30#include "RLinetype.h"
31#include "RLinetypePattern.h"
32#include "RLineweight.h"
33#include "RNonCopyable.h"
34#include "RRequireHeap.h"
35#include "RUcs.h"
36
37class RBlock;
38class RBox;
39class RDimStyle;
40class RDocument;
42class REntity;
43class RLayer;
44class RLayerState;
45class RLayout;
47class RTransaction;
48class RView;
49
50#ifndef RDEFAULT_QSTRING
51#define RDEFAULT_QSTRING QString()
52#endif
53
54
55
68public:
69 RStorage();
70 virtual ~RStorage() { }
71
73 document = doc;
74 }
75
77 return document;
78 }
79
83 virtual void clear();
84
90 virtual void beginTransaction() = 0;
91
97 virtual void commitTransaction() = 0;
98
103 virtual void rollbackTransaction() = 0;
104
108 virtual QList<RObject::Id> orderBackToFront(const QSet<RObject::Id>& entityIds) const;
109
110 QList<RObject::Id> sortBlocks(const QList<RObject::Id>& blockIds) const;
111
112 QList<RObject::Id> sortLayers(const QList<RObject::Id>& layerIds) const;
113
117 static bool lessThan(const QPair<RObject::Id, int>& p1, const QPair<RObject::Id, int>& p2);
118
122 virtual QSet<RObject::Id> queryAllObjects() const = 0;
123
124 virtual QSet<RObject::Id> queryAllVisibleEntities() = 0;
125
129 virtual QSet<RObject::Id> queryAllEntities(bool undone = false,
130 bool allBlocks = false, RS::EntityType type = RS::EntityAll) = 0;
131
132 virtual QSet<RObject::Id> queryAllEntities(bool undone,
133 bool allBlocks, QList<RS::EntityType> types) = 0;
134
138 virtual QSet<RObject::Id> queryWorkingSetEntities() = 0;
139
143 virtual QSet<RObject::Id> queryAllUcs() = 0;
144
148 virtual QSet<RObject::Id> queryAllLayers(bool undone = false) = 0;
149
153 virtual QSet<RObject::Id> queryAllLayerStates(bool undone = false) const = 0;
154
158 virtual QSet<RObject::Id> queryAllBlocks(bool undone = false) = 0;
159
163 virtual QSet<RObject::Id> queryAllLayoutBlocks(bool includeModelSpace = false, bool undone = false) const = 0;
164
168 virtual QSet<RObject::Id> queryAllLayouts(bool undone = false) = 0;
169
173 virtual QSet<RObject::Id> queryAllViews(bool undone = false) = 0;
174
178 virtual QSet<RObject::Id> queryAllLinetypes() = 0;
179
183 virtual QSet<RObject::Id> queryLayerEntities(RObject::Id layerId, bool allBlocks = false) = 0;
184
188 virtual QSet<RObject::Id> querySelectedLayerEntities(RObject::Id layerId, bool allBlocks = false) = 0;
189
193 virtual bool hasBlockEntities(RObject::Id blockId) const = 0;
194
198 virtual QSet<RObject::Id> queryBlockEntities(RObject::Id blockId) = 0;
199
200 virtual QSet<RObject::Id> queryLayerBlockEntities(RObject::Id layerId, RObject::Id blockId) = 0;
201
207 virtual QSet<RObject::Id> queryChildEntities(RObject::Id parentId, RS::EntityType type = RS::EntityAll) = 0;
208
209 virtual bool hasChildEntities(RObject::Id parentId) const = 0;
210
215 virtual QSet<RObject::Id> queryBlockReferences(RObject::Id blockId) const = 0;
216
220 virtual QSet<RObject::Id> queryAllBlockReferences() const = 0;
221
225 virtual QSet<RObject::Id> queryAllViewports() const = 0;
226
230 virtual QSet<RObject::Id> querySelectedEntities() const = 0;
231
235 virtual QSet<RObject::Id> querySelectedLayers() const = 0;
236
240 virtual QSet<RObject::Id> queryInfiniteEntities() const = 0;
241
242 virtual QSharedPointer<RDocumentVariables> queryDocumentVariables() const = 0;
243 virtual QSharedPointer<RDocumentVariables> queryDocumentVariablesDirect() const = 0;
244
245 virtual QSharedPointer<RDimStyle> queryDimStyle() const = 0;
246 virtual QSharedPointer<RDimStyle> queryDimStyleDirect() const = 0;
247
252 virtual QSharedPointer<RObject> queryObject(RObject::Id objectId) const = 0;
253
254 virtual QSharedPointer<RObject> queryObjectDirect(RObject::Id objectId) const {
255 return queryObject(objectId);
256 }
257 virtual RObject* queryObjectCC(RObject::Id objectId) const = 0;
258 virtual QSharedPointer<RObject> queryObjectByHandle(RObject::Handle objectHandle) const = 0;
259
264 virtual QSharedPointer<REntity> queryEntity(RObject::Id entityId) const = 0;
265
266 virtual QSharedPointer<REntity> queryEntityDirect(RObject::Id entityId) const;
267
268 virtual QSharedPointer<REntity> queryVisibleEntityDirect(RObject::Id entityId) const;
269
274 virtual QSharedPointer<RUcs> queryUcs(RObject::Id ucsId) const = 0;
275
276 virtual QSharedPointer<RUcs> queryUcsDirect(RObject::Id ucsId) const {
277 return queryUcs(ucsId);
278 }
279
284 virtual QSharedPointer<RUcs> queryUcs(const QString& ucsName) const = 0;
285
290 virtual QSharedPointer<RLayer> queryLayer(RObject::Id layerId) const = 0;
291
292 virtual QSharedPointer<RLayer> queryLayerDirect(RObject::Id layerId) const {
293 return queryLayer(layerId);
294 }
295 virtual QSharedPointer<RLayer> queryLayerDirect(const QString& layerName) const {
296 return queryLayerDirect(getLayerId(layerName));
297 }
298
303 virtual QSharedPointer<RLayer> queryLayer(const QString& layerName) const = 0;
304
305 virtual QSharedPointer<RLayer> queryCurrentLayer() {
306 return queryLayer(getCurrentLayerId());
307 }
308
313 virtual QSharedPointer<RLayerState> queryLayerState(RObject::Id layerStateId) const = 0;
314
315 virtual QSharedPointer<RLayerState> queryLayerStateDirect(RObject::Id layerStateId) const {
316 return queryLayerState(layerStateId);
317 }
318 virtual QSharedPointer<RLayerState> queryLayerStateDirect(const QString& layerStateName) const {
319 return queryLayerStateDirect(getLayerStateId(layerStateName));
320 }
321
326 virtual QSharedPointer<RLayerState> queryLayerState(const QString& layerStateName) const = 0;
327
328
333 virtual QSharedPointer<RLayout> queryLayout(RObject::Id layoutId) const = 0;
334
335 virtual QSharedPointer<RLayout> queryLayoutDirect(RObject::Id layoutId) const {
336 return queryLayout(layoutId);
337 }
338
343 virtual QSharedPointer<RLayout> queryLayout(const QString& layoutName) const = 0;
344
345 virtual QSharedPointer<RView> queryCurrentView() {
346 return queryView(getCurrentViewId());
347 }
348
349 virtual QSharedPointer<RLinetype> queryLinetypeDirect(RObject::Id linetypeId) const = 0;
350 virtual QSharedPointer<RLinetype> queryLinetype(RObject::Id linetypeId) const = 0;
351 virtual QSharedPointer<RLinetype> queryLinetype(const QString& linetypeName) const = 0;
352
353 virtual QSharedPointer<RBlock> queryBlockDirect(RObject::Id blockId) const = 0;
354 virtual QSharedPointer<RBlock> queryBlockDirect(const QString& blockName) const {
355 return queryBlockDirect(getBlockId(blockName));
356 }
357 virtual QSharedPointer<RBlock> queryBlock(RObject::Id blockId) const = 0;
358 virtual QSharedPointer<RBlock> queryBlock(const QString& blockName) const = 0;
359
360 virtual QSharedPointer<RView> queryView(RObject::Id viewId) const = 0;
361 virtual QSharedPointer<RView> queryView(const QString& viewName) const = 0;
362
363 void setCurrentLayer(RObject::Id layerId, RTransaction* transaction=NULL);
364 void setCurrentLayer(const QString& layerName, RTransaction* transaction=NULL);
365
366 virtual RObject::Id getCurrentLayerId() const;
368 return currentViewId;
369 }
370
371 virtual void setCurrentColor(const RColor& color);
372 virtual RColor getCurrentColor() const;
373
374 void setCurrentLineweight(RLineweight::Lineweight lw);
375 virtual RLineweight::Lineweight getCurrentLineweight() const;
376
377 void setCurrentLinetype(RObject::Id ltId);
378 void setCurrentLinetype(const QString& name);
379 void setCurrentLinetypePattern(const RLinetypePattern& p);
380 virtual RObject::Id getCurrentLinetypeId() const;
381 virtual RLinetypePattern getCurrentLinetypePattern() const;
382 virtual QSharedPointer<RLinetype> queryCurrentLinetype() const {
383 return queryLinetype(getCurrentLinetypeId());
384 }
385
386 virtual QSharedPointer<RBlock> queryCurrentBlock();
387
388 virtual void setCurrentBlock(RObject::Id blockId);
389
390 void setCurrentBlock(const QString& blockName) {
391 RObject::Id id = getBlockId(blockName);
392 if (id == RObject::INVALID_ID) {
393 return;
394 }
395 setCurrentBlock(id);
396 }
397
399 return currentBlockId;
400 }
401
402 virtual void setCurrentViewport(RObject::Id viewportId) {
403 currentViewportId = viewportId;
404 }
405
406 virtual void unsetCurrentViewport() {
407 currentViewportId = RObject::INVALID_ID;
408 }
409
411 return currentViewportId;
412 }
413
415 modelSpaceBlockId = id;
416 }
418 return modelSpaceBlockId;
419 }
420
422 currentViewId = viewId;
423 }
424
425 void setCurrentView(const QString& viewName) {
426 RObject::Id id = getViewId(viewName);
427 // unlike blocks and layers, the current view can be invalid:
428 setCurrentView(id);
429 }
430
431 QSharedPointer<RDocumentVariables> startDocumentVariablesTransaction(RTransaction*& transaction, bool& useLocalTransaction);
432 void endDocumentVariablesTransaction(RTransaction* transaction, bool useLocalTransaction, QSharedPointer<RDocumentVariables> docVars);
433
434 void setUnit(RS::Unit unit, RTransaction* transaction=NULL);
435 RS::Unit getUnit() const;
436
437 void setMeasurement(RS::Measurement m, RTransaction* transaction=NULL);
438 RS::Measurement getMeasurement() const;
439
440 virtual void setDimensionFont(const QString& f, RTransaction* transaction=NULL);
441 virtual QString getDimensionFont() const;
442
443 virtual void setLinetypeScale(double v, RTransaction* transaction=NULL);
444 virtual double getLinetypeScale() const;
445
446 virtual QString getBlockName(RObject::Id blockId) const = 0;
447 virtual QString getBlockNameFromHandle(RObject::Handle blockHandle) const = 0;
448 virtual QString getBlockNameFromLayout(const QString& layoutName) const = 0;
449 virtual QString getBlockNameFromLayout(RObject::Id layoutId) const = 0;
450 virtual QSet<QString> getBlockNames(const QString& rxStr = RDEFAULT_QSTRING, bool undone = false) const = 0;
451 virtual RObject::Id getBlockId(const QString& blockName) const = 0;
452 virtual RObject::Id getBlockIdAuto(const QString& blockLayoutName) const = 0;
453 virtual bool hasBlock(const QString& blockName) const;
454
455 virtual QString getViewName(RObject::Id viewId) const = 0;
456 virtual QSet<QString> getViewNames() const = 0;
457 virtual RObject::Id getViewId(const QString& viewName) const = 0;
458 virtual bool hasView(const QString& viewName) const;
459
460 virtual QString getLayerName(RObject::Id layerId) const = 0;
461 virtual QSet<QString> getLayerNames(const QString& rxStr = RDEFAULT_QSTRING) const = 0;
462 virtual RObject::Id getLayerId(const QString& layerName) const = 0;
463 virtual void setLayer0Id(RObject::Id id) {
464 layer0Id = id;
465 }
466 virtual RObject::Id getLayer0Id() const {
467 return layer0Id;
468 }
469 virtual bool hasLayer(const QString& layerName) const;
470
471 virtual QString getLayerStateName(RObject::Id layerStateId) const = 0;
472 virtual QSet<QString> getLayerStateNames(const QString& rxStr = RDEFAULT_QSTRING) const = 0;
473 virtual RObject::Id getLayerStateId(const QString& layerStateName) const = 0;
474 virtual bool hasLayerStates() const;
475 virtual bool hasLayerState(const QString& layerStateName) const;
476
477 virtual QString getLayoutName(RObject::Id layoutId) const = 0;
478 virtual QSet<QString> getLayoutNames(const QString& rxStr = RDEFAULT_QSTRING) const = 0;
479 virtual RObject::Id getLayoutId(const QString& layoutName) const = 0;
480 virtual bool hasLayout(const QString& layoutName) const;
481
485 virtual QString getLinetypeName(RObject::Id linetypeId) const = 0;
489 virtual QString getLinetypeDescription(RObject::Id linetypeId) const = 0;
493 virtual QString getLinetypeLabel(RObject::Id linetypeId) const = 0;
497 virtual QSet<QString> getLinetypeNames() const = 0;
501 virtual QList<RLinetypePattern> getLinetypePatterns() const = 0;
505 virtual RObject::Id getLinetypeId(const QString& linetypeName) const = 0;
506 virtual bool hasLinetype(const QString& linetypeName) const;
507
511 virtual QStringList getVariables() const = 0;
519 virtual void setVariable(const QString& key, const QVariant& value, bool overwrite=true) = 0;
523 virtual void removeVariable(const QString& key) = 0;
528 virtual QVariant getVariable(const QString& key) const = 0;
529
533 virtual bool hasVariable(const QString& key) const {
534 QVariant value = getVariable(key);
535 return value.isValid();
536 }
537
545 virtual void setKnownVariable(RS::KnownVariable key, const QVariant& value, RTransaction* transaction = NULL) = 0;
546
550 virtual QVariant getKnownVariable(RS::KnownVariable key) const = 0;
551
555 virtual int countSelectedEntities() const {
556 return querySelectedEntities().size();
557 }
558
563 QSet<RObject::Id>* affectedEntities=NULL
564 ) = 0;
565
569 virtual void selectAllEntities(QSet<RObject::Id>* affectedEntities = NULL) = 0;
570
580 virtual void selectEntity(
581 RObject::Id entityId,
582 bool add=false,
583 QSet<RObject::Id>* affectedEntities=NULL
584 ) = 0;
585
595 virtual int selectEntities(
596 const QSet<RObject::Id>& entityIds,
597 bool add=false,
598 QSet<RObject::Id>* affectedEntities=NULL
599 ) = 0;
600
608 virtual void deselectEntity(
609 RObject::Id entityId,
610 QSet<RObject::Id>* affectedEntities=NULL
611 ) = 0;
612
620 virtual int deselectEntities(
621 const QSet<RObject::Id>& entityIds,
622 QSet<RObject::Id>* affectedEntities=NULL
623 ) = 0;
624
625 virtual bool isSelected(RObject::Id entityId);
626
627 virtual bool isSelectedWorkingSet(RObject::Id entityId);
628
629 virtual bool isEntity(RObject::Id objectId);
630
631 virtual bool isLayerLocked(RObject::Id layerId) const;
632 virtual bool isLayerLocked(const RLayer& layer) const;
633 virtual bool isParentLayerLocked(RObject::Id layerId) const;
634 virtual bool isParentLayerLocked(const RLayer& layer) const;
635
636 virtual bool isLayerOff(RObject::Id layerId) const;
637 virtual bool isLayerOff(const RLayer& layer) const;
638
639 virtual bool isLayerOffOrFrozen(RObject::Id layerId) const;
640 virtual bool isLayerOffOrFrozen(const RLayer& layer) const;
641
642 virtual bool isLayerFrozen(RObject::Id layerId) const;
643 virtual bool isLayerFrozen(const RLayer& layer) const;
644 virtual bool isParentLayerFrozen(RObject::Id layerId) const;
645 virtual bool isParentLayerFrozen(const RLayer& layer) const;
646
647 virtual bool isLayerSnappable(RObject::Id layerId) const;
648 virtual bool isLayerSnappable(const RLayer& layer) const;
649 virtual bool isParentLayerSnappable(RObject::Id layerId) const;
650 virtual bool isParentLayerSnappable(const RLayer& layer) const;
651
652 virtual bool isLayerPlottable(RObject::Id layerId) const;
653 virtual bool isLayerPlottable(const RLayer& layer) const;
654 virtual bool isParentLayerPlottable(RObject::Id layerId) const;
655 virtual bool isParentLayerPlottable(const RLayer& layer) const;
656
657 virtual bool isEntityVisible(const REntity& entity, RObject::Id blockId) const;
658
662 virtual bool isBlockFrozen(RObject::Id blockId) const;
663
667 virtual bool isLayoutBlock(RObject::Id blockId) const;
668
669 virtual void setObjectId(RObject& object, RObject::Id objectId) const;
670 virtual void setObjectHandle(RObject& object, RObject::Handle objectHandle);
671
672 virtual void setEntityParentId(REntity& entity, RObject::Id parentId);
673
674 virtual void setUndoStatus(RObject& object, bool status);
675
679 virtual bool hasSelection() const = 0;
680
684 virtual RBox getBoundingBox(bool ignoreHiddenLayers = true, bool ignoreEmpty = false) const = 0;
685
686 virtual RBox getSelectionBox() const = 0;
687 virtual RBox getEntitiesBox(QSet<RObject::Id>& ids) const = 0;
688
689 virtual bool removeObject(QSharedPointer<RObject> object) = 0;
690
694 virtual bool saveObject(QSharedPointer<RObject> object, bool checkBlockRecursion = true, bool keepHandles = false, bool* overwrite = NULL) = 0;
695
699 virtual bool deleteObject(RObject::Id objectId) = 0;
700
705 virtual int getLastTransactionId() {
706 return lastTransactionId;
707 }
708
715 virtual void setLastTransactionId(int transactionId) {
716 lastTransactionId = transactionId;
717
718 setModified(true);
719 }
720
721 virtual void startTransactionGroup() {
722 lastTransactionGroup++;
723 }
724
725 virtual int getTransactionGroup() const {
726 return lastTransactionGroup;
727 }
728
733 virtual void saveTransaction(RTransaction& transaction) = 0;
734
741 virtual void deleteTransactionsFrom(int transactionId) = 0;
742
743 virtual void resetTransactionStack() = 0;
744
748 virtual RTransaction getTransaction(int transactionId) = 0;
749
755 virtual void toggleUndoStatus(QSet<RObject::Id>& objects) = 0;
756
760 virtual void toggleUndoStatus(RObject::Id object) = 0;
761
762 virtual bool setUndoStatus(RObject::Id object, bool status) = 0;
763
764 //virtual bool getUndoStatus(RObject::Id object) const = 0;
765
770 virtual int getMaxTransactionId() = 0;
771
773
774 virtual RObject::Id getNewObjectId();
775 virtual RObject::Id getMaxObjectId();
776 virtual RObject::Handle getNewObjectHandle();
777 virtual RObject::Handle getMaxObjectHandle();
778
779 virtual void setMaxDrawOrder(int m) {
780 maxDrawOrder = m;
781 }
782
783 virtual int getMaxDrawOrder() {
784 return maxDrawOrder;
785 }
786
787 virtual int getMinDrawOrder();
788
793 virtual bool isInBackStorage(RObject::Id /*object*/) {
794 return false;
795 }
796
797 static QString getKnownVariableName(RS::KnownVariable n);
798
802 friend QDebug operator<<(QDebug dbg, RStorage& s);
803
807 void setModified(bool m);
808
812 bool isModified() const {
813 return modified;
814 }
815
819 QDateTime getLastModifiedDateTime() const {
820 return lastModified;
821 }
822
823 QString getLastModified() const {
824 return lastModified.toString("yyyyMMddHHmmsszzz");
825 }
826
827 void addModifiedListener(RModifiedListener* l);
828
832 virtual void update() {}
833
834 void setNotifyListeners(bool on) {
835 notifyGlobalListeners = on;
836 }
837 bool getNotifyListeners() const {
838 return notifyGlobalListeners;
839 }
840
841 static void registerCustomEntityType(RS::EntityType type);
842 static void unregisterCustomEntityType(RS::EntityType type);
843
844// RObject::Id getWorkingSetBlockReferenceId() const;
845// void setWorkingSetBlockReferenceId(RObject::Id id, int group = -1, RTransaction* transaction = NULL);
846
847protected:
848 QDateTime lastModified;
851
852 static QList<RS::EntityType> customEntityTypes;
853
854private:
866
869
870 QList<RModifiedListener*> modifiedListeners;
872
873};
874
877
878#endif
QDebug operator<<(QDebug dbg, const RBox &b)
Stream operator for QDebug.
Definition RBox.cpp:640
#define RDEFAULT_QSTRING
Definition RDebug.h:41
Q_DECLARE_METATYPE(RMath *)
Represents a block definition in a drawing.
Definition RBlock.h:42
Represents a box e.g.
Definition RBox.h:46
Color.
Definition RColor.h:43
Dimension style class.
Definition RDimStyle.h:42
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
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
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RLinetypePattern.h:42
Lineweight
Definition RLineweight.h:44
Abstract base class for classes that are interested in the current state of a storage (modified or un...
Definition RModifiedListener.h:34
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RNonCopyable.h:32
Abstract base class for all objects.
Definition RObject.h:64
static const Id INVALID_ID
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RObject.h:70
int Handle
Definition RObject.h:71
int Id
Definition RObject.h:69
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RRequireHeap.h:30
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityAll
All entities (for filters)
Definition RS.h:241
Measurement
Enum of supported measurement systems.
Definition RS.h:416
KnownVariable
Well established document variables.
Definition RS.h:501
Unit
Enum of supported units (values correspond to DXF spec).
Definition RS.h:425
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 RObject::Id getCurrentViewId() const
Definition RStorage.h:367
virtual void setModelSpaceBlockId(RObject::Id id)
Definition RStorage.h:414
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
RDocument * getDocument() const
Definition RStorage.h:76
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 bool setUndoStatus(RObject::Id object, bool status)=0
virtual QSharedPointer< RLayout > queryLayout(const QString &layoutName) const =0
virtual QSet< RObject::Id > queryAllLinetypes()=0
virtual QString getLayoutName(RObject::Id layoutId) const =0
virtual QSharedPointer< RView > queryView(const QString &viewName) 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
int lastTransactionGroup
Definition RStorage.h:868
virtual QSharedPointer< RBlock > queryBlockDirect(const QString &blockName) const
Definition RStorage.h:354
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 QSharedPointer< RLayerState > queryLayerStateDirect(const QString &layerStateName) const
Definition RStorage.h:318
virtual QSet< QString > getLayoutNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual RObject::Id getLayer0Id() const
Definition RStorage.h:466
virtual QSharedPointer< RLinetype > queryCurrentLinetype() const
Definition RStorage.h:382
virtual QSharedPointer< RObject > queryObjectByHandle(RObject::Handle objectHandle) const =0
int lastTransactionId
Definition RStorage.h:867
virtual QString getLinetypeName(RObject::Id linetypeId) const =0
virtual RObject::Id getCurrentBlockId() const
Definition RStorage.h:398
virtual void toggleUndoStatus(RObject::Id object)=0
Toggles the current undo status of the given object.
virtual QSet< RObject::Id > queryAllViewports() const =0
void setCurrentBlock(const QString &blockName)
Definition RStorage.h:390
virtual QSharedPointer< RLinetype > queryLinetype(RObject::Id linetypeId) const =0
QDateTime lastModified
Definition RStorage.h:848
void setCurrentView(const QString &viewName)
Definition RStorage.h:425
bool modified
Definition RStorage.h:849
bool notifyGlobalListeners
Definition RStorage.h:871
bool getNotifyListeners() const
Definition RStorage.h:837
virtual int getMaxTransactionId()=0
virtual QSet< RObject::Id > queryBlockReferences(RObject::Id blockId) const =0
virtual QSharedPointer< RView > queryCurrentView()
Definition RStorage.h:345
virtual QSet< RObject::Id > queryAllViews(bool undone=false)=0
virtual RObject::Id getModelSpaceBlockId() const
Definition RStorage.h:417
virtual QSharedPointer< RBlock > queryBlock(RObject::Id blockId) const =0
bool isModified() const
Definition RStorage.h:812
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 QSet< RObject::Id > queryAllLayers(bool undone=false)=0
virtual void setCurrentViewport(RObject::Id viewportId)
Definition RStorage.h:402
virtual QSharedPointer< RLayer > queryLayerDirect(const QString &layerName) const
Definition RStorage.h:295
virtual QSharedPointer< RDimStyle > queryDimStyle() const =0
virtual QSharedPointer< RUcs > queryUcs(const QString &ucsName) const =0
virtual void setLayer0Id(RObject::Id id)
Definition RStorage.h:463
virtual RObject::Id getCurrentViewportId() const
Definition RStorage.h:410
virtual QSharedPointer< RUcs > queryUcs(RObject::Id ucsId) const =0
virtual QSharedPointer< RBlock > queryBlock(const QString &blockName) const =0
virtual QList< RLinetypePattern > getLinetypePatterns() const =0
void setCurrentView(RObject::Id viewId)
Definition RStorage.h:421
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
QString getLastModified() const
Definition RStorage.h:823
virtual bool hasVariable(const QString &key) const
Definition RStorage.h:533
virtual void beginTransaction()=0
Starts a new transaction.
RObject::Handle handleCounter
Definition RStorage.h:850
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 void setMaxDrawOrder(int m)
Definition RStorage.h:779
virtual QSet< RObject::Id > queryAllBlockReferences() const =0
virtual ~RStorage()
Definition RStorage.h:70
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
void setNotifyListeners(bool on)
Definition RStorage.h:834
void setDocument(RDocument *doc)
Definition RStorage.h:72
virtual QString getLayerStateName(RObject::Id layerStateId) const =0
RObject::Id currentLinetypeId
Definition RStorage.h:860
RObject::Id currentViewportId
Definition RStorage.h:863
static QList< RS::EntityType > customEntityTypes
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RStorage.h:852
RObject::Id currentViewId
Definition RStorage.h:861
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 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 QSet< RObject::Id > queryAllLayouts(bool undone=false)=0
virtual QSharedPointer< RLayerState > queryLayerState(const QString &layerStateName) const =0
virtual void resetTransactionStack()=0
virtual QSet< RObject::Id > queryAllVisibleEntities()=0
virtual int getMaxDrawOrder()
Definition RStorage.h:783
virtual int getTransactionGroup() const
Definition RStorage.h:725
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
RDocument * document
Definition RStorage.h:855
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
RColor currentColor
Definition RStorage.h:858
RObject::Id idCounter
Definition RStorage.h:857
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
RLineweight::Lineweight currentLineweight
Definition RStorage.h:859
virtual QSet< RObject::Id > querySelectedLayerEntities(RObject::Id layerId, bool allBlocks=false)=0
virtual RObject * queryObjectCC(RObject::Id objectId) const =0
virtual QSharedPointer< RLayer > queryCurrentLayer()
Definition RStorage.h:305
RObject::Id currentBlockId
Definition RStorage.h:862
virtual QSharedPointer< RLayer > queryLayer(const QString &layerName) const =0
virtual QString getBlockNameFromLayout(RObject::Id layoutId) const =0
virtual bool hasChildEntities(RObject::Id parentId) const =0
virtual QSet< RObject::Id > queryAllUcs()=0
virtual void commitTransaction()=0
Commits the current transaction.
QList< RModifiedListener * > modifiedListeners
Definition RStorage.h:870
virtual QSet< RObject::Id > queryLayerEntities(RObject::Id layerId, bool allBlocks=false)=0
RObject::Id modelSpaceBlockId
Definition RStorage.h:864
virtual void startTransactionGroup()
Definition RStorage.h:721
virtual int getLastTransactionId()
Definition RStorage.h:705
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 QSet< RObject::Id > queryAllEntities(bool undone, bool allBlocks, QList< RS::EntityType > types)=0
virtual QSharedPointer< RLinetype > queryLinetype(const QString &linetypeName) const =0
virtual QSharedPointer< RObject > queryObject(RObject::Id objectId) const =0
RObject::Id layer0Id
Definition RStorage.h:865
int maxDrawOrder
Definition RStorage.h:856
virtual QVariant getKnownVariable(RS::KnownVariable key) const =0
virtual bool deleteObject(RObject::Id objectId)=0
Deletes the object with the given ID.
virtual QSharedPointer< RLayout > queryLayoutDirect(RObject::Id layoutId) const
Definition RStorage.h:335
virtual void unsetCurrentViewport()
Definition RStorage.h:406
virtual void deleteTransactionsFrom(int transactionId)=0
Deletes all transactions with IDs from transactionId (inclusive) to the maximum transaction ID.
QDateTime getLastModifiedDateTime() const
Definition RStorage.h:819
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< RLayout > queryLayout(RObject::Id layoutId) const =0
Transaction implementation.
Definition RTransaction.h:73
Represents a view in a drawing.
Definition RView.h:41
#define QCADCORE_EXPORT
Definition core_global.h:10
void setCurrentLayer(void layerName)
Sets the current layer to the given layer.
Definition simple_create.js:127
void setCurrentColor(void color)
Sets the current color for newly added entities.
Definition simple_create.js:36
void hasLayer(void name)
Checks if the given layer exists.
Definition simple_create.js:119
void isEntity(void obj)
Checks if the given object is a graphics entity.
Definition library.js:364
char s
Definition opennurbs_string.cpp:32
#define NULL
Definition opennurbs_system.h:256