QCAD
Open Source 2D CAD
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 
28 #include "RBlock.h"
29 #include "RBlockReferenceEntity.h"
30 #include "RBox.h"
31 #include "RDocumentVariables.h"
32 #include "REntity.h"
33 #include "RLayer.h"
34 #include "RLayerState.h"
35 #include "RLinetype.h"
36 #include "RLinetypePattern.h"
37 #include "RModifiedListener.h"
38 #include "RNonCopyable.h"
39 #include "RRequireHeap.h"
40 #include "RTransaction.h"
41 #include "RUcs.h"
42 #include "RView.h"
43 #include "RViewportEntity.h"
44 
45 class RDocument;
46 
47 #ifndef RDEFAULT_QSTRING
48 #define RDEFAULT_QSTRING QString()
49 #endif
50 
51 
52 
65 public:
66  RStorage();
67  virtual ~RStorage() { }
68 
69  void setDocument(RDocument* doc) {
70  document = doc;
71  }
72 
74  return document;
75  }
76 
80  virtual void clear();
81 
87  virtual void beginTransaction() = 0;
88 
94  virtual void commitTransaction() = 0;
95 
100  virtual void rollbackTransaction() = 0;
101 
105  virtual QList<REntity::Id> orderBackToFront(const QSet<REntity::Id>& entityIds) const;
106 
107  QList<RBlock::Id> sortBlocks(const QList<RBlock::Id>& blockIds) const;
108 
109  QList<RLayer::Id> sortLayers(const QList<RLayer::Id>& layerIds) const;
110 
114  static bool lessThan(const QPair<REntity::Id, int>& p1, const QPair<REntity::Id, int>& p2);
115 
119  virtual QSet<RObject::Id> queryAllObjects() const = 0;
120 
121  virtual QSet<REntity::Id> queryAllVisibleEntities() = 0;
122 
126  virtual QSet<REntity::Id> queryAllEntities(bool undone = false,
127  bool allBlocks = false, RS::EntityType type = RS::EntityAll) = 0;
128 
129  virtual QSet<REntity::Id> queryAllEntities(bool undone,
130  bool allBlocks, QList<RS::EntityType> types) = 0;
131 
135  virtual QSet<REntity::Id> queryWorkingSetEntities() = 0;
136 
140  virtual QSet<RUcs::Id> queryAllUcs() = 0;
141 
145  virtual QSet<RLayer::Id> queryAllLayers(bool undone = false) = 0;
146 
150  virtual QSet<RLayerState::Id> queryAllLayerStates(bool undone = false) const = 0;
151 
155  virtual QSet<RBlock::Id> queryAllBlocks(bool undone = false) = 0;
156 
160  virtual QSet<RBlock::Id> queryAllLayoutBlocks(bool includeModelSpace = false, bool undone = false) const = 0;
161 
165  virtual QSet<RLayout::Id> queryAllLayouts(bool undone = false) = 0;
166 
170  virtual QSet<RView::Id> queryAllViews(bool undone = false) = 0;
171 
175  virtual QSet<RLinetype::Id> queryAllLinetypes() = 0;
176 
180  virtual QSet<REntity::Id> queryLayerEntities(RLayer::Id layerId, bool allBlocks = false) = 0;
181 
185  virtual bool hasBlockEntities(RBlock::Id blockId) const = 0;
186 
190  virtual QSet<REntity::Id> queryBlockEntities(RBlock::Id blockId) = 0;
191 
192  virtual QSet<REntity::Id> queryLayerBlockEntities(RLayer::Id layerId, RBlock::Id blockId) = 0;
193 
199  virtual QSet<REntity::Id> queryChildEntities(REntity::Id parentId, RS::EntityType type = RS::EntityAll) = 0;
200 
201  virtual bool hasChildEntities(REntity::Id parentId) const = 0;
202 
207  virtual QSet<REntity::Id> queryBlockReferences(RBlock::Id blockId) const = 0;
208 
212  virtual QSet<REntity::Id> queryAllBlockReferences() const = 0;
213 
217  virtual QSet<REntity::Id> queryAllViewports() const = 0;
218 
222  virtual QSet<REntity::Id> querySelectedEntities() const = 0;
223 
227  virtual QSet<RObject::Id> querySelectedLayers() const = 0;
228 
232  virtual QSet<REntity::Id> queryInfiniteEntities() const = 0;
233 
234  virtual QSharedPointer<RDocumentVariables> queryDocumentVariables() const = 0;
235  virtual QSharedPointer<RDocumentVariables> queryDocumentVariablesDirect() const = 0;
236 
241  virtual QSharedPointer<RObject> queryObject(RObject::Id objectId) const = 0;
242 
243  virtual QSharedPointer<RObject> queryObjectDirect(RObject::Id objectId) const {
244  return queryObject(objectId);
245  }
246  virtual QSharedPointer<RObject> queryObjectByHandle(RObject::Handle objectHandle) const = 0;
247 
252  virtual QSharedPointer<REntity> queryEntity(REntity::Id entityId) const = 0;
253 
254  virtual QSharedPointer<REntity> queryEntityDirect(REntity::Id entityId) const {
255  return queryEntity(entityId);
256  }
257 
258  virtual QSharedPointer<REntity> queryVisibleEntityDirect(REntity::Id entityId) const {
259  QSharedPointer<REntity> ret = queryEntityDirect(entityId);
260 // if (ret->isUndone()) {
261 // return QSharedPointer<REntity>();
262 // }
263 // if (ret->getBlockId()!=currentBlockId) {
264 // return QSharedPointer<REntity>();
265 // }
266  if (!ret->isVisible()) {
267  return QSharedPointer<REntity>();
268  }
269  return ret;
270  }
271 
276  virtual QSharedPointer<RUcs> queryUcs(RUcs::Id ucsId) const = 0;
277 
278  virtual QSharedPointer<RUcs> queryUcsDirect(RUcs::Id ucsId) const {
279  return queryUcs(ucsId);
280  }
281 
286  virtual QSharedPointer<RUcs> queryUcs(const QString& ucsName) const = 0;
287 
292  virtual QSharedPointer<RLayer> queryLayer(RLayer::Id layerId) const = 0;
293 
294  virtual QSharedPointer<RLayer> queryLayerDirect(RLayer::Id layerId) const {
295  return queryLayer(layerId);
296  }
297  virtual QSharedPointer<RLayer> queryLayerDirect(const QString& layerName) const {
298  return queryLayerDirect(getLayerId(layerName));
299  }
300 
305  virtual QSharedPointer<RLayer> queryLayer(const QString& layerName) const = 0;
306 
307  virtual QSharedPointer<RLayer> queryCurrentLayer() {
308  return queryLayer(getCurrentLayerId());
309  }
310 
315  virtual QSharedPointer<RLayerState> queryLayerState(RLayerState::Id layerStateId) const = 0;
316 
317  virtual QSharedPointer<RLayerState> queryLayerStateDirect(RLayerState::Id layerStateId) const {
318  return queryLayerState(layerStateId);
319  }
320  virtual QSharedPointer<RLayerState> queryLayerStateDirect(const QString& layerStateName) const {
321  return queryLayerStateDirect(getLayerStateId(layerStateName));
322  }
323 
328  virtual QSharedPointer<RLayerState> queryLayerState(const QString& layerStateName) const = 0;
329 
330 
335  virtual QSharedPointer<RLayout> queryLayout(RLayout::Id layoutId) const = 0;
336 
337  virtual QSharedPointer<RLayout> queryLayoutDirect(RLayout::Id layoutId) const {
338  return queryLayout(layoutId);
339  }
340 
345  virtual QSharedPointer<RLayout> queryLayout(const QString& layoutName) const = 0;
346 
347  virtual QSharedPointer<RView> queryCurrentView() {
348  return queryView(getCurrentViewId());
349  }
350 
351  virtual QSharedPointer<RLinetype> queryLinetypeDirect(RLinetype::Id linetypeId) const = 0;
352  virtual QSharedPointer<RLinetype> queryLinetype(RLinetype::Id linetypeId) const = 0;
353  virtual QSharedPointer<RLinetype> queryLinetype(const QString& linetypeName) const = 0;
354 
355  virtual QSharedPointer<RBlock> queryBlockDirect(RBlock::Id blockId) const = 0;
356  virtual QSharedPointer<RBlock> queryBlockDirect(const QString& blockName) const {
357  return queryBlockDirect(getBlockId(blockName));
358  }
359  virtual QSharedPointer<RBlock> queryBlock(RBlock::Id blockId) const = 0;
360  virtual QSharedPointer<RBlock> queryBlock(const QString& blockName) const = 0;
361 
362  virtual QSharedPointer<RView> queryView(RView::Id viewId) const = 0;
363  virtual QSharedPointer<RView> queryView(const QString& viewName) const = 0;
364 
365  void setCurrentLayer(RLayer::Id layerId, RTransaction* transaction=NULL);
366  void setCurrentLayer(const QString& layerName, RTransaction* transaction=NULL);
367 
368  virtual RLayer::Id getCurrentLayerId() const;
369  virtual RView::Id getCurrentViewId() const {
370  return currentViewId;
371  }
372 
373  virtual void setCurrentColor(const RColor& color);
374  virtual RColor getCurrentColor() const;
375 
376  void setCurrentLineweight(RLineweight::Lineweight lw);
377  virtual RLineweight::Lineweight getCurrentLineweight() const;
378 
379  void setCurrentLinetype(RLinetype::Id ltId);
380  void setCurrentLinetype(const QString& name);
381  void setCurrentLinetypePattern(const RLinetypePattern& p);
382  virtual RLinetype::Id getCurrentLinetypeId() const;
383  virtual RLinetypePattern getCurrentLinetypePattern() const;
384  virtual QSharedPointer<RLinetype> queryCurrentLinetype() const {
385  return queryLinetype(getCurrentLinetypeId());
386  }
387 
388  virtual QSharedPointer<RBlock> queryCurrentBlock() {
389  return queryBlock(getCurrentBlockId());
390  }
391 
392  virtual void setCurrentBlock(RBlock::Id blockId) {
393  if (queryBlockDirect(blockId).isNull()) {
394  currentBlockId = modelSpaceBlockId;
395  }
396  else {
397  currentBlockId = blockId;
398  }
399  }
400 
401  void setCurrentBlock(const QString& blockName) {
402  RBlock::Id id = getBlockId(blockName);
403  if (id == RBlock::INVALID_ID) {
404  return;
405  }
406  setCurrentBlock(id);
407  }
408 
409  virtual RBlock::Id getCurrentBlockId() const {
410  return currentBlockId;
411  }
412 
413  virtual void setCurrentViewport(RObject::Id viewportId) {
414  currentViewportId = viewportId;
415  }
416 
417  virtual void unsetCurrentViewport() {
418  currentViewportId = RViewportEntity::INVALID_ID;
419  }
420 
422  return currentViewportId;
423  }
424 
425  virtual void setModelSpaceBlockId(RBlock::Id id) {
426  modelSpaceBlockId = id;
427  }
429  return modelSpaceBlockId;
430  }
431 
432  void setCurrentView(RView::Id viewId) {
433  currentViewId = viewId;
434  }
435 
436  void setCurrentView(const QString& viewName) {
437  RView::Id id = getViewId(viewName);
438  // unlike blocks and layers, the current view can be invalid:
439  setCurrentView(id);
440  }
441 
442  QSharedPointer<RDocumentVariables> startDocumentVariablesTransaction(RTransaction*& transaction, bool& useLocalTransaction);
443  void endDocumentVariablesTransaction(RTransaction* transaction, bool useLocalTransaction, QSharedPointer<RDocumentVariables> docVars);
444 
445  void setUnit(RS::Unit unit, RTransaction* transaction=NULL);
446  RS::Unit getUnit() const;
447 
448  void setMeasurement(RS::Measurement m, RTransaction* transaction=NULL);
449  RS::Measurement getMeasurement() const;
450 
451  virtual void setDimensionFont(const QString& f, RTransaction* transaction=NULL);
452  virtual QString getDimensionFont() const;
453 
454  virtual void setLinetypeScale(double v, RTransaction* transaction=NULL);
455  virtual double getLinetypeScale() const;
456 
457  virtual QString getBlockName(RBlock::Id blockId) const = 0;
458  virtual QString getBlockNameFromLayout(const QString& layoutName) const = 0;
459  virtual QString getBlockNameFromLayout(RLayout::Id layoutId) const = 0;
460  virtual QSet<QString> getBlockNames(const QString& rxStr = RDEFAULT_QSTRING) const = 0;
461  virtual RBlock::Id getBlockId(const QString& blockName) const = 0;
462  virtual RBlock::Id getBlockIdAuto(const QString& blockLayoutName) const = 0;
463  virtual bool hasBlock(const QString& blockName) const;
464 
465  virtual QString getViewName(RView::Id viewId) const = 0;
466  virtual QSet<QString> getViewNames() const = 0;
467  virtual RView::Id getViewId(const QString& viewName) const = 0;
468  virtual bool hasView(const QString& viewName) const;
469 
470  virtual QString getLayerName(RLayer::Id layerId) const = 0;
471  virtual QSet<QString> getLayerNames(const QString& rxStr = RDEFAULT_QSTRING) const = 0;
472  virtual RLayer::Id getLayerId(const QString& layerName) const = 0;
473  virtual void setLayer0Id(RLayer::Id id) {
474  layer0Id = id;
475  }
476  virtual RLayer::Id getLayer0Id() const {
477  return layer0Id;
478  }
479  virtual bool hasLayer(const QString& layerName) const;
480 
481  virtual QString getLayerStateName(RLayerState::Id layerStateId) const = 0;
482  virtual QSet<QString> getLayerStateNames(const QString& rxStr = RDEFAULT_QSTRING) const = 0;
483  virtual RLayer::Id getLayerStateId(const QString& layerStateName) const = 0;
484  virtual bool hasLayerStates() const;
485  virtual bool hasLayerState(const QString& layerStateName) const;
486 
487  virtual QString getLayoutName(RLayout::Id layoutId) const = 0;
488  virtual QSet<QString> getLayoutNames(const QString& rxStr = RDEFAULT_QSTRING) const = 0;
489  virtual RLayout::Id getLayoutId(const QString& layoutName) const = 0;
490  virtual bool hasLayout(const QString& layoutName) const;
491 
495  virtual QString getLinetypeName(RLinetype::Id linetypeId) const = 0;
499  virtual QString getLinetypeDescription(RLinetype::Id linetypeId) const = 0;
503  virtual QString getLinetypeLabel(RLinetype::Id linetypeId) const = 0;
507  virtual QSet<QString> getLinetypeNames() const = 0;
511  virtual QList<RLinetypePattern> getLinetypePatterns() const = 0;
515  virtual RLinetype::Id getLinetypeId(const QString& linetypeName) const = 0;
516  virtual bool hasLinetype(const QString& linetypeName) const;
517 
521  virtual QStringList getVariables() const = 0;
529  virtual void setVariable(const QString& key, const QVariant& value, bool overwrite=true) = 0;
533  virtual void removeVariable(const QString& key) = 0;
538  virtual QVariant getVariable(const QString& key) const = 0;
539 
543  virtual bool hasVariable(const QString& key) const {
544  QVariant value = getVariable(key);
545  return value.isValid();
546  }
547 
555  virtual void setKnownVariable(RS::KnownVariable key, const QVariant& value, RTransaction* transaction = NULL) = 0;
556 
560  virtual QVariant getKnownVariable(RS::KnownVariable key) const = 0;
561 
565  virtual int countSelectedEntities() const {
566  return querySelectedEntities().size();
567  }
568 
572  virtual void clearEntitySelection(
573  QSet<REntity::Id>* affectedEntities=NULL
574  ) = 0;
575 
579  virtual void selectAllEntities(QSet<REntity::Id>* affectedEntities = NULL) = 0;
580 
590  virtual void selectEntity(
591  REntity::Id entityId,
592  bool add=false,
593  QSet<REntity::Id>* affectedEntities=NULL
594  ) = 0;
595 
605  virtual int selectEntities(
606  const QSet<REntity::Id>& entityIds,
607  bool add=false,
608  QSet<REntity::Id>* affectedEntities=NULL
609  ) = 0;
610 
618  virtual void deselectEntity(
619  REntity::Id entityId,
620  QSet<REntity::Id>* affectedEntities=NULL
621  ) = 0;
622 
630  virtual int deselectEntities(
631  const QSet<REntity::Id>& entityIds,
632  QSet<REntity::Id>* affectedEntities=NULL
633  ) = 0;
634 
635  virtual bool isSelected(REntity::Id entityId) {
636  QSharedPointer<REntity> e = queryEntityDirect(entityId);
637  return (!e.isNull() && e->isSelected());
638  }
639 
640  virtual bool isSelectedWorkingSet(REntity::Id entityId) {
641  QSharedPointer<REntity> e = queryEntityDirect(entityId);
642  return (!e.isNull() && e->isSelectedWorkingSet());
643  }
644 
645  virtual bool isEntity(RObject::Id objectId) {
646  QSharedPointer<REntity> e = queryEntityDirect(objectId);
647  return !e.isNull();
648  }
649 
650  virtual bool isLayerLocked(RLayer::Id layerId) const;
651  virtual bool isLayerLocked(const RLayer& layer) const;
652  virtual bool isParentLayerLocked(RLayer::Id layerId) const;
653  virtual bool isParentLayerLocked(const RLayer& layer) const;
654 
655  virtual bool isLayerOff(RLayer::Id layerId) const;
656  virtual bool isLayerOff(const RLayer& layer) const;
657 
658  virtual bool isLayerOffOrFrozen(RLayer::Id layerId) const;
659  virtual bool isLayerOffOrFrozen(const RLayer& layer) const;
660 
661  virtual bool isLayerFrozen(RLayer::Id layerId) const;
662  virtual bool isLayerFrozen(const RLayer& layer) const;
663  virtual bool isParentLayerFrozen(RLayer::Id layerId) const;
664  virtual bool isParentLayerFrozen(const RLayer& layer) const;
665 
666  virtual bool isLayerSnappable(RLayer::Id layerId) const;
667  virtual bool isLayerSnappable(const RLayer& layer) const;
668  virtual bool isParentLayerSnappable(RLayer::Id layerId) const;
669  virtual bool isParentLayerSnappable(const RLayer& layer) const;
670 
671  virtual bool isLayerPlottable(RLayer::Id layerId) const;
672  virtual bool isLayerPlottable(const RLayer& layer) const;
673  virtual bool isParentLayerPlottable(RLayer::Id layerId) const;
674  virtual bool isParentLayerPlottable(const RLayer& layer) const;
675 
676  virtual bool isEntityVisible(const REntity& entity, RBlock::Id blockId) const;
677 
681  virtual bool isBlockFrozen(RBlock::Id blockId) const {
682  QSharedPointer<RBlock> b = queryBlockDirect(blockId);
683  if (b.isNull()) {
684  return false;
685  }
686  return b->isFrozen();
687  }
688 
692  virtual bool isLayoutBlock(RBlock::Id blockId) const {
693  QSharedPointer<RBlock> b = queryBlockDirect(blockId);
694  if (b.isNull()) {
695  return false;
696  }
697  return b->hasLayout();
698  }
699 
700  virtual void setObjectId(RObject& object, RObject::Id objectId) const;
701  virtual void setObjectHandle(RObject& object, RObject::Handle objectHandle);
702 
703  virtual void setEntityParentId(REntity& entity, REntity::Id parentId) {
704  entity.setParentId(parentId);
705  }
706 
707  virtual void setUndoStatus(RObject& object, bool status);
708 
712  virtual bool hasSelection() const = 0;
713 
717  virtual RBox getBoundingBox(bool ignoreHiddenLayers = true, bool ignoreEmpty = false) const = 0;
718 
719  virtual RBox getSelectionBox() const = 0;
720  virtual RBox getEntitiesBox(QSet<REntity::Id>& ids) const = 0;
721 
722  virtual bool removeObject(QSharedPointer<RObject> object) = 0;
723 
727  virtual bool saveObject(QSharedPointer<RObject> object, bool checkBlockRecursion = true, bool keepHandles = false) = 0;
728 
732  virtual bool deleteObject(RObject::Id objectId) = 0;
733 
738  virtual int getLastTransactionId() {
739  return lastTransactionId;
740  }
741 
748  virtual void setLastTransactionId(int transactionId) {
749  lastTransactionId = transactionId;
750 
751  setModified(true);
752  }
753 
754  virtual void startTransactionGroup() {
755  lastTransactionGroup++;
756  }
757 
758  virtual int getTransactionGroup() const {
759  return lastTransactionGroup;
760  }
761 
766  virtual void saveTransaction(RTransaction& transaction) = 0;
767 
774  virtual void deleteTransactionsFrom(int transactionId) = 0;
775 
776  virtual void resetTransactionStack() = 0;
777 
781  virtual RTransaction getTransaction(int transactionId) = 0;
782 
788  virtual void toggleUndoStatus(QSet<RObject::Id>& objects) = 0;
789 
793  virtual void toggleUndoStatus(RObject::Id object) = 0;
794 
795  virtual bool setUndoStatus(RObject::Id object, bool status) = 0;
796 
797  //virtual bool getUndoStatus(RObject::Id object) const = 0;
798 
803  virtual int getMaxTransactionId() = 0;
804 
806 
807  virtual RObject::Id getNewObjectId();
808  virtual RObject::Id getMaxObjectId();
809  virtual RObject::Handle getNewObjectHandle();
810  virtual RObject::Handle getMaxObjectHandle();
811 
812  virtual void setMaxDrawOrder(int m) {
813  maxDrawOrder = m;
814  }
815 
816  virtual int getMaxDrawOrder() {
817  return maxDrawOrder;
818  }
819 
820  virtual int getMinDrawOrder();
821 
826  virtual bool isInBackStorage(RObject::Id /*object*/) {
827  return false;
828  }
829 
830  static QString getKnownVariableName(RS::KnownVariable n);
831 
835  friend QDebug operator<<(QDebug dbg, RStorage& s);
836 
840  void setModified(bool m);
841 
845  bool isModified() const {
846  return modified;
847  }
848 
852  QDateTime getLastModifiedDateTime() const {
853  return lastModified;
854  }
855 
856  QString getLastModified() const {
857  return lastModified.toString("yyyyMMddHHmmsszzz");
858  }
859 
860  void addModifiedListener(RModifiedListener* l);
861 
865  virtual void update() {}
866 
867 // RBlockReferenceEntity::Id getWorkingSetBlockReferenceId() const;
868 // void setWorkingSetBlockReferenceId(RBlockReferenceEntity::Id id, int group = -1, RTransaction* transaction = NULL);
869 
870 protected:
871  QDateTime lastModified;
872  bool modified;
874 
875 private:
887 
890 
891  QList<RModifiedListener*> modifiedListeners;
892 };
893 
896 
897 #endif
RStorage::countSelectedEntities
virtual int countSelectedEntities() const
Definition: RStorage.h:565
RStorage::queryBlockDirect
virtual QSharedPointer< RBlock > queryBlockDirect(RBlock::Id blockId) const =0
RStorage::isBlockFrozen
virtual bool isBlockFrozen(RBlock::Id blockId) const
Definition: RStorage.h:681
RStorage::queryAllVisibleEntities
virtual QSet< REntity::Id > queryAllVisibleEntities()=0
REntity.h
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
RStorage::queryAllViews
virtual QSet< RView::Id > queryAllViews(bool undone=false)=0
RStorage::getLayerId
virtual RLayer::Id getLayerId(const QString &layerName) const =0
RStorage::queryCurrentBlock
virtual QSharedPointer< RBlock > queryCurrentBlock()
Definition: RStorage.h:388
RStorage::getLayerStateName
virtual QString getLayerStateName(RLayerState::Id layerStateId) const =0
RNonCopyable
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RNonCopyable.h:32
RStorage::currentLineweight
RLineweight::Lineweight currentLineweight
Definition: RStorage.h:880
RViewportEntity.h
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
RRequireHeap.h
RStorage::queryBlock
virtual QSharedPointer< RBlock > queryBlock(RBlock::Id blockId) const =0
RObject::INVALID_ID
static const Id INVALID_ID
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RObject.h:67
RTransaction.h
RStorage::queryLayout
virtual QSharedPointer< RLayout > queryLayout(const QString &layoutName) 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
RS::Unit
Unit
Enum of supported units (values correspond to DXF spec).
Definition: RS.h:317
RStorage::lastTransactionId
int lastTransactionId
Definition: RStorage.h:888
RStorage::queryObject
virtual QSharedPointer< RObject > queryObject(RObject::Id objectId) const =0
RStorage::queryLayout
virtual QSharedPointer< RLayout > queryLayout(RLayout::Id layoutId) const =0
RStorage::setCurrentView
void setCurrentView(RView::Id viewId)
Definition: RStorage.h:432
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
RBox.h
RModifiedListener.h
RStorage::getLayer0Id
virtual RLayer::Id getLayer0Id() const
Definition: RStorage.h:476
setCurrentColor
void setCurrentColor(void color)
Sets the current color for newly added entities.
Definition: simple_create.js:190
REntity::setParentId
void setParentId(REntity::Id parentId)
Definition: REntity.h:668
RStorage::queryLayerState
virtual QSharedPointer< RLayerState > queryLayerState(const QString &layerStateName) const =0
RStorage::resetTransactionStack
virtual void resetTransactionStack()=0
RStorage::queryAllEntities
virtual QSet< REntity::Id > queryAllEntities(bool undone, bool allBlocks, QList< RS::EntityType > types)=0
RStorage::getBlockNames
virtual QSet< QString > getBlockNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
RStorage::getLastTransactionId
virtual int getLastTransactionId()
Definition: RStorage.h:738
RStorage::queryLinetype
virtual QSharedPointer< RLinetype > queryLinetype(RLinetype::Id linetypeId) const =0
RStorage::setLayer0Id
virtual void setLayer0Id(RLayer::Id id)
Definition: RStorage.h:473
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::isModified
bool isModified() const
Definition: RStorage.h:845
RStorage::getModelSpaceBlockId
virtual RBlock::Id getModelSpaceBlockId() const
Definition: RStorage.h:428
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
RView.h
RStorage::queryAllLayoutBlocks
virtual QSet< RBlock::Id > queryAllLayoutBlocks(bool includeModelSpace=false, bool undone=false) const =0
RStorage::handleCounter
RObject::Handle handleCounter
Definition: RStorage.h:873
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.
operator<<
QDebug operator<<(QDebug dbg, const RBox &b)
Stream operator for QDebug.
Definition: RBox.cpp:637
setCurrentLayer
void setCurrentLayer(void layerName)
Sets the current layer to the given layer.
Definition: simple_create.js:56
RStorage::hasVariable
virtual bool hasVariable(const QString &key) const
Definition: RStorage.h:543
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::queryCurrentView
virtual QSharedPointer< RView > queryCurrentView()
Definition: RStorage.h:347
RStorage::queryBlockReferences
virtual QSet< REntity::Id > queryBlockReferences(RBlock::Id blockId) const =0
RStorage::queryEntity
virtual QSharedPointer< REntity > queryEntity(REntity::Id entityId) const =0
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
RStorage::startTransactionGroup
virtual void startTransactionGroup()
Definition: RStorage.h:754
RStorage::queryEntityDirect
virtual QSharedPointer< REntity > queryEntityDirect(REntity::Id entityId) const
Definition: RStorage.h:254
RStorage::lastTransactionGroup
int lastTransactionGroup
Definition: RStorage.h:889
RStorage::currentViewportId
RObject::Id currentViewportId
Definition: RStorage.h:884
RDEFAULT_QSTRING
#define RDEFAULT_QSTRING
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDebug.h:48
RStorage::queryLayer
virtual QSharedPointer< RLayer > queryLayer(const QString &layerName) const =0
isNull
void isNull(void obj)
Checks if the given object is undefined or null.
Definition: library.js:178
RStorage::saveTransaction
virtual void saveTransaction(RTransaction &transaction)=0
Saves the given transaction.
RLayer
Represents a layer in a drawing.
Definition: RLayer.h:48
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.
RStorage::queryLinetype
virtual QSharedPointer< RLinetype > queryLinetype(const QString &linetypeName) const =0
RStorage::modified
bool modified
Definition: RStorage.h:872
RStorage::queryCurrentLayer
virtual QSharedPointer< RLayer > queryCurrentLayer()
Definition: RStorage.h:307
RStorage::queryUcs
virtual QSharedPointer< RUcs > queryUcs(const QString &ucsName) const =0
RStorage::getBlockIdAuto
virtual RBlock::Id getBlockIdAuto(const QString &blockLayoutName) const =0
RStorage::queryLayerDirect
virtual QSharedPointer< RLayer > queryLayerDirect(const QString &layerName) const
Definition: RStorage.h:297
RStorage::getViewId
virtual RView::Id getViewId(const QString &viewName) const =0
RStorage::~RStorage
virtual ~RStorage()
Definition: RStorage.h:67
RStorage::getTransactionGroup
virtual int getTransactionGroup() const
Definition: RStorage.h:758
RNonCopyable.h
RStorage::queryUcsDirect
virtual QSharedPointer< RUcs > queryUcsDirect(RUcs::Id ucsId) const
Definition: RStorage.h:278
RBlock.h
RStorage::getLastModifiedDateTime
QDateTime getLastModifiedDateTime() const
Definition: RStorage.h:852
RStorage::getCurrentBlockId
virtual RBlock::Id getCurrentBlockId() const
Definition: RStorage.h:409
RStorage::toggleUndoStatus
virtual void toggleUndoStatus(RObject::Id object)=0
Toggles the current undo status of the given object.
RStorage::commitTransaction
virtual void commitTransaction()=0
Commits the current transaction.
RStorage::queryCurrentLinetype
virtual QSharedPointer< RLinetype > queryCurrentLinetype() const
Definition: RStorage.h:384
REntity
Base class for all entity classes.
Definition: REntity.h:65
RStorage::getSelectionBox
virtual RBox getSelectionBox() const =0
RLinetypePattern.h
RStorage::queryView
virtual QSharedPointer< RView > queryView(const QString &viewName) const =0
RStorage::modelSpaceBlockId
RBlock::Id modelSpaceBlockId
Definition: RStorage.h:885
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
RLinetype.h
RUcs.h
RStorage::setUndoStatus
virtual bool setUndoStatus(RObject::Id object, bool status)=0
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::getLastModified
QString getLastModified() const
Definition: RStorage.h:856
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
RS::EntityAll
@ EntityAll
All entities (for filters)
Definition: RS.h:138
RStorage::getCurrentViewId
virtual RView::Id getCurrentViewId() const
Definition: RStorage.h:369
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::document
RDocument * document
Definition: RStorage.h:876
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::currentColor
RColor currentColor
Definition: RStorage.h:879
RStorage::queryChildEntities
virtual QSet< REntity::Id > queryChildEntities(REntity::Id parentId, RS::EntityType type=RS::EntityAll)=0
RStorage::currentViewId
RView::Id currentViewId
Definition: RStorage.h:882
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
RStorage::layer0Id
RLayer::Id layer0Id
Definition: RStorage.h:886
RBlockReferenceEntity.h
RLinetypePattern
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RLinetypePattern.h:45
RStorage::setMaxDrawOrder
virtual void setMaxDrawOrder(int m)
Definition: RStorage.h:812
RStorage::currentBlockId
RBlock::Id currentBlockId
Definition: RStorage.h:883
RDocument
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition: RDocument.h:72
RStorage::setCurrentViewport
virtual void setCurrentViewport(RObject::Id viewportId)
Definition: RStorage.h:413
RStorage::queryAllLayouts
virtual QSet< RLayout::Id > queryAllLayouts(bool undone=false)=0
RLayerState.h
RStorage::getLayoutId
virtual RLayout::Id getLayoutId(const QString &layoutName) const =0
RModifiedListener
Abstract base class for classes that are interested in the current state of a storage (modified or un...
Definition: RModifiedListener.h:34
RStorage::lastModified
QDateTime lastModified
Definition: RStorage.h:871
RStorage::getLayerStateNames
virtual QSet< QString > getLayerStateNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
RStorage::hasSelection
virtual bool hasSelection() const =0
RStorage::getLayerName
virtual QString getLayerName(RLayer::Id layerId) const =0
RStorage::currentLinetypeId
RLinetype::Id currentLinetypeId
Definition: RStorage.h:881
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::modifiedListeners
QList< RModifiedListener * > modifiedListeners
Definition: RStorage.h:891
RStorage::getLinetypeName
virtual QString getLinetypeName(RLinetype::Id linetypeId) const =0
RLineweight::Lineweight
Lineweight
Definition: RLineweight.h:46
RStorage::maxDrawOrder
int maxDrawOrder
Definition: RStorage.h:877
RStorage::getLinetypeLabel
virtual QString getLinetypeLabel(RLinetype::Id linetypeId) const =0
RStorage::isLayoutBlock
virtual bool isLayoutBlock(RBlock::Id blockId) const
Definition: RStorage.h:692
RStorage::getKnownVariable
virtual QVariant getKnownVariable(RS::KnownVariable key) const =0
RStorage::getMaxLineweight
virtual RLineweight::Lineweight getMaxLineweight() const =0
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::setCurrentView
void setCurrentView(const QString &viewName)
Definition: RStorage.h:436
RLayer.h
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.
hasLayer
void hasLayer(void name)
Checks if the given layer exists.
Definition: simple_create.js:66
RStorage::getBoundingBox
virtual RBox getBoundingBox(bool ignoreHiddenLayers=true, bool ignoreEmpty=false) const =0
RStorage::getCurrentViewportId
virtual RObject::Id getCurrentViewportId() const
Definition: RStorage.h:421
RStorage::unsetCurrentViewport
virtual void unsetCurrentViewport()
Definition: RStorage.h:417
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::queryBlockDirect
virtual QSharedPointer< RBlock > queryBlockDirect(const QString &blockName) const
Definition: RStorage.h:356
RStorage::getDocument
RDocument * getDocument() const
Definition: RStorage.h:73
RStorage::update
virtual void update()
Clear caches:
Definition: RStorage.h:865
RStorage::queryBlock
virtual QSharedPointer< RBlock > queryBlock(const QString &blockName) const =0
RStorage::isEntity
virtual bool isEntity(RObject::Id objectId)
Definition: RStorage.h:645
RStorage::getBlockNameFromLayout
virtual QString getBlockNameFromLayout(RLayout::Id layoutId) const =0
RRequireHeap
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RRequireHeap.h:30
RStorage::getMaxDrawOrder
virtual int getMaxDrawOrder()
Definition: RStorage.h:816
RTransaction
Transaction implementation.
Definition: RTransaction.h:74
RStorage::idCounter
RObject::Id idCounter
Definition: RStorage.h:878
RStorage::saveObject
virtual bool saveObject(QSharedPointer< RObject > object, bool checkBlockRecursion=true, bool keepHandles=false)=0
Saves the given object to the storage.
RStorage::setDocument
void setDocument(RDocument *doc)
Definition: RStorage.h:69
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::getLayoutNames
virtual QSet< QString > getLayoutNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
RStorage::setCurrentBlock
virtual void setCurrentBlock(RBlock::Id blockId)
Definition: RStorage.h:392
RS::Measurement
Measurement
Enum of supported measurement systems.
Definition: RS.h:308
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
RStorage::setCurrentBlock
void setCurrentBlock(const QString &blockName)
Definition: RStorage.h:401
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::queryLayerStateDirect
virtual QSharedPointer< RLayerState > queryLayerStateDirect(const QString &layerStateName) const
Definition: RStorage.h:320
RStorage::getLinetypeNames
virtual QSet< QString > getLinetypeNames() const =0
RStorage::setModelSpaceBlockId
virtual void setModelSpaceBlockId(RBlock::Id id)
Definition: RStorage.h:425
RStorage::queryLayerState
virtual QSharedPointer< RLayerState > queryLayerState(RLayerState::Id layerStateId) const =0
RStorage::queryAllBlockReferences
virtual QSet< REntity::Id > queryAllBlockReferences() const =0
RColor
Color.
Definition: RColor.h:44