|
QCAD
Open Source 2D CAD
|
Go to the documentation of this file.
26 #include <QSharedPointer>
47 #ifndef RDEFAULT_QSTRING
48 #define RDEFAULT_QSTRING QString()
105 virtual QList<REntity::Id> orderBackToFront(
const QSet<REntity::Id>& entityIds)
const;
107 QList<RBlock::Id> sortBlocks(
const QList<RBlock::Id>& blockIds)
const;
109 QList<RLayer::Id> sortLayers(
const QList<RLayer::Id>& layerIds)
const;
114 static bool lessThan(
const QPair<REntity::Id, int>& p1,
const QPair<REntity::Id, int>& p2);
130 bool allBlocks, QList<RS::EntityType> types) = 0;
244 return queryObject(objectId);
255 return queryEntity(entityId);
259 QSharedPointer<REntity> ret = queryEntityDirect(entityId);
266 if (!ret->isVisible()) {
267 return QSharedPointer<REntity>();
279 return queryUcs(ucsId);
286 virtual QSharedPointer<RUcs>
queryUcs(
const QString& ucsName)
const = 0;
295 return queryLayer(layerId);
298 return queryLayerDirect(getLayerId(layerName));
305 virtual QSharedPointer<RLayer>
queryLayer(
const QString& layerName)
const = 0;
308 return queryLayer(getCurrentLayerId());
318 return queryLayerState(layerStateId);
321 return queryLayerStateDirect(getLayerStateId(layerStateName));
328 virtual QSharedPointer<RLayerState>
queryLayerState(
const QString& layerStateName)
const = 0;
338 return queryLayout(layoutId);
345 virtual QSharedPointer<RLayout>
queryLayout(
const QString& layoutName)
const = 0;
348 return queryView(getCurrentViewId());
353 virtual QSharedPointer<RLinetype>
queryLinetype(
const QString& linetypeName)
const = 0;
357 return queryBlockDirect(getBlockId(blockName));
360 virtual QSharedPointer<RBlock>
queryBlock(
const QString& blockName)
const = 0;
363 virtual QSharedPointer<RView>
queryView(
const QString& viewName)
const = 0;
370 return currentViewId;
374 virtual RColor getCurrentColor()
const;
380 void setCurrentLinetype(
const QString& name);
385 return queryLinetype(getCurrentLinetypeId());
389 return queryBlock(getCurrentBlockId());
393 if (queryBlockDirect(blockId).
isNull()) {
394 currentBlockId = modelSpaceBlockId;
397 currentBlockId = blockId;
410 return currentBlockId;
414 currentViewportId = viewportId;
422 return currentViewportId;
426 modelSpaceBlockId = id;
429 return modelSpaceBlockId;
433 currentViewId = viewId;
442 QSharedPointer<RDocumentVariables> startDocumentVariablesTransaction(
RTransaction*& transaction,
bool& useLocalTransaction);
443 void endDocumentVariablesTransaction(
RTransaction* transaction,
bool useLocalTransaction, QSharedPointer<RDocumentVariables> docVars);
451 virtual void setDimensionFont(
const QString& f,
RTransaction* transaction=NULL);
452 virtual QString getDimensionFont()
const;
454 virtual void setLinetypeScale(
double v,
RTransaction* transaction=NULL);
455 virtual double getLinetypeScale()
const;
463 virtual bool hasBlock(
const QString& blockName)
const;
468 virtual bool hasView(
const QString& viewName)
const;
479 virtual bool hasLayer(
const QString& layerName)
const;
484 virtual bool hasLayerStates()
const;
485 virtual bool hasLayerState(
const QString& layerStateName)
const;
490 virtual bool hasLayout(
const QString& layoutName)
const;
516 virtual bool hasLinetype(
const QString& linetypeName)
const;
529 virtual void setVariable(
const QString& key,
const QVariant& value,
bool overwrite=
true) = 0;
544 QVariant value = getVariable(key);
545 return value.isValid();
566 return querySelectedEntities().size();
573 QSet<REntity::Id>* affectedEntities=NULL
593 QSet<REntity::Id>* affectedEntities=NULL
606 const QSet<REntity::Id>& entityIds,
608 QSet<REntity::Id>* affectedEntities=NULL
620 QSet<REntity::Id>* affectedEntities=NULL
631 const QSet<REntity::Id>& entityIds,
632 QSet<REntity::Id>* affectedEntities=NULL
636 QSharedPointer<REntity> e = queryEntityDirect(entityId);
637 return (!e.isNull() && e->isSelected());
641 QSharedPointer<REntity> e = queryEntityDirect(entityId);
642 return (!e.isNull() && e->isSelectedWorkingSet());
646 QSharedPointer<REntity> e = queryEntityDirect(objectId);
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;
655 virtual bool isLayerOff(
RLayer::Id layerId)
const;
656 virtual bool isLayerOff(
const RLayer& layer)
const;
658 virtual bool isLayerOffOrFrozen(
RLayer::Id layerId)
const;
659 virtual bool isLayerOffOrFrozen(
const RLayer& layer)
const;
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;
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;
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;
682 QSharedPointer<RBlock> b = queryBlockDirect(blockId);
686 return b->isFrozen();
693 QSharedPointer<RBlock> b = queryBlockDirect(blockId);
697 return b->hasLayout();
707 virtual void setUndoStatus(
RObject&
object,
bool status);
727 virtual bool saveObject(QSharedPointer<RObject>
object,
bool checkBlockRecursion =
true,
bool keepHandles =
false) = 0;
739 return lastTransactionId;
749 lastTransactionId = transactionId;
755 lastTransactionGroup++;
759 return lastTransactionGroup;
820 virtual int getMinDrawOrder();
840 void setModified(
bool m);
857 return lastModified.toString(
"yyyyMMddHHmmsszzz");
virtual int countSelectedEntities() const
Definition: RStorage.h:565
virtual QSharedPointer< RBlock > queryBlockDirect(RBlock::Id blockId) const =0
virtual bool isBlockFrozen(RBlock::Id blockId) const
Definition: RStorage.h:681
virtual QSet< REntity::Id > queryAllVisibleEntities()=0
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
virtual QSet< RView::Id > queryAllViews(bool undone=false)=0
virtual RLayer::Id getLayerId(const QString &layerName) const =0
virtual QSharedPointer< RBlock > queryCurrentBlock()
Definition: RStorage.h:388
virtual QString getLayerStateName(RLayerState::Id layerStateId) const =0
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RNonCopyable.h:32
RLineweight::Lineweight currentLineweight
Definition: RStorage.h:880
virtual QSharedPointer< RLayer > queryLayer(RLayer::Id layerId) const =0
virtual QSharedPointer< RLayer > queryLayerDirect(RLayer::Id layerId) const
Definition: RStorage.h:294
virtual QSharedPointer< RBlock > queryBlock(RBlock::Id blockId) const =0
static const Id INVALID_ID
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RObject.h:67
virtual QSharedPointer< RLayout > queryLayout(const QString &layoutName) const =0
virtual QString getViewName(RView::Id viewId) const =0
virtual void selectAllEntities(QSet< REntity::Id > *affectedEntities=NULL)=0
Sets the selection status of all entities.
virtual QSet< REntity::Id > queryLayerEntities(RLayer::Id layerId, bool allBlocks=false)=0
virtual QSharedPointer< RObject > queryObjectByHandle(RObject::Handle objectHandle) const =0
virtual RLayer::Id getLayerStateId(const QString &layerStateName) const =0
virtual QSharedPointer< RDocumentVariables > queryDocumentVariablesDirect() const =0
Unit
Enum of supported units (values correspond to DXF spec).
Definition: RS.h:317
int lastTransactionId
Definition: RStorage.h:888
virtual QSharedPointer< RObject > queryObject(RObject::Id objectId) const =0
virtual QSharedPointer< RLayout > queryLayout(RLayout::Id layoutId) const =0
void setCurrentView(RView::Id viewId)
Definition: RStorage.h:432
virtual void clearEntitySelection(QSet< REntity::Id > *affectedEntities=NULL)=0
Clears the selection status of all entities.
virtual RBox getEntitiesBox(QSet< REntity::Id > &ids) const =0
virtual RLayer::Id getLayer0Id() const
Definition: RStorage.h:476
void setCurrentColor(void color)
Sets the current color for newly added entities.
Definition: simple_create.js:190
void setParentId(REntity::Id parentId)
Definition: REntity.h:668
virtual QSharedPointer< RLayerState > queryLayerState(const QString &layerStateName) const =0
virtual void resetTransactionStack()=0
virtual QSet< REntity::Id > queryAllEntities(bool undone, bool allBlocks, QList< RS::EntityType > types)=0
virtual QSet< QString > getBlockNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual int getLastTransactionId()
Definition: RStorage.h:738
virtual QSharedPointer< RLinetype > queryLinetype(RLinetype::Id linetypeId) const =0
virtual void setLayer0Id(RLayer::Id id)
Definition: RStorage.h:473
virtual void rollbackTransaction()=0
Rolls the current transaction back in order to cancel it.
virtual QSet< REntity::Id > queryLayerBlockEntities(RLayer::Id layerId, RBlock::Id blockId)=0
KnownVariable
Well established document variables.
Definition: RS.h:393
bool isModified() const
Definition: RStorage.h:845
virtual RBlock::Id getModelSpaceBlockId() const
Definition: RStorage.h:428
virtual QSharedPointer< RDocumentVariables > queryDocumentVariables() const =0
virtual QSet< REntity::Id > querySelectedEntities() const =0
virtual void removeVariable(const QString &key)=0
Removes the custom variable with the given key.
Abstract base class for all objects.
Definition: RObject.h:61
virtual bool isSelected(REntity::Id entityId)
Definition: RStorage.h:635
virtual QSet< RBlock::Id > queryAllLayoutBlocks(bool includeModelSpace=false, bool undone=false) const =0
RObject::Handle handleCounter
Definition: RStorage.h:873
virtual bool deleteObject(RObject::Id objectId)=0
Deletes the object with the given ID.
virtual void deleteTransactionsFrom(int transactionId)=0
Deletes all transactions with IDs from transactionId (inclusive) to the maximum transaction ID.
QDebug operator<<(QDebug dbg, const RBox &b)
Stream operator for QDebug.
Definition: RBox.cpp:637
void setCurrentLayer(void layerName)
Sets the current layer to the given layer.
Definition: simple_create.js:56
virtual bool hasVariable(const QString &key) const
Definition: RStorage.h:543
EntityType
Entity types used for property handling / filtering.
Definition: RS.h:125
virtual QSharedPointer< RLayout > queryLayoutDirect(RLayout::Id layoutId) const
Definition: RStorage.h:337
virtual QSharedPointer< RView > queryCurrentView()
Definition: RStorage.h:347
virtual QSet< REntity::Id > queryBlockReferences(RBlock::Id blockId) const =0
virtual QSharedPointer< REntity > queryEntity(REntity::Id entityId) const =0
virtual void setEntityParentId(REntity &entity, REntity::Id parentId)
Definition: RStorage.h:703
virtual QSet< REntity::Id > queryBlockEntities(RBlock::Id blockId)=0
virtual void startTransactionGroup()
Definition: RStorage.h:754
virtual QSharedPointer< REntity > queryEntityDirect(REntity::Id entityId) const
Definition: RStorage.h:254
int lastTransactionGroup
Definition: RStorage.h:889
RObject::Id currentViewportId
Definition: RStorage.h:884
#define RDEFAULT_QSTRING
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDebug.h:48
virtual QSharedPointer< RLayer > queryLayer(const QString &layerName) const =0
void isNull(void obj)
Checks if the given object is undefined or null.
Definition: library.js:178
virtual void saveTransaction(RTransaction &transaction)=0
Saves the given transaction.
Represents a layer in a drawing.
Definition: RLayer.h:48
virtual int selectEntities(const QSet< REntity::Id > &entityIds, bool add=false, QSet< REntity::Id > *affectedEntities=NULL)=0
Selects all entities with the given IDs.
virtual QSharedPointer< RLinetype > queryLinetype(const QString &linetypeName) const =0
bool modified
Definition: RStorage.h:872
virtual QSharedPointer< RLayer > queryCurrentLayer()
Definition: RStorage.h:307
virtual QSharedPointer< RUcs > queryUcs(const QString &ucsName) const =0
virtual RBlock::Id getBlockIdAuto(const QString &blockLayoutName) const =0
virtual QSharedPointer< RLayer > queryLayerDirect(const QString &layerName) const
Definition: RStorage.h:297
virtual RView::Id getViewId(const QString &viewName) const =0
virtual ~RStorage()
Definition: RStorage.h:67
virtual int getTransactionGroup() const
Definition: RStorage.h:758
virtual QSharedPointer< RUcs > queryUcsDirect(RUcs::Id ucsId) const
Definition: RStorage.h:278
QDateTime getLastModifiedDateTime() const
Definition: RStorage.h:852
virtual RBlock::Id getCurrentBlockId() const
Definition: RStorage.h:409
virtual void toggleUndoStatus(RObject::Id object)=0
Toggles the current undo status of the given object.
virtual void commitTransaction()=0
Commits the current transaction.
virtual QSharedPointer< RLinetype > queryCurrentLinetype() const
Definition: RStorage.h:384
Base class for all entity classes.
Definition: REntity.h:65
virtual RBox getSelectionBox() const =0
virtual QSharedPointer< RView > queryView(const QString &viewName) const =0
RBlock::Id modelSpaceBlockId
Definition: RStorage.h:885
Q_DECLARE_METATYPE(RMath *)
virtual void setLastTransactionId(int transactionId)
Sets the ID of the last created transaction.
Definition: RStorage.h:748
virtual bool setUndoStatus(RObject::Id object, bool status)=0
virtual QSet< QString > getViewNames() const =0
virtual QSet< REntity::Id > queryAllViewports() const =0
virtual RBlock::Id getBlockId(const QString &blockName) const =0
virtual void beginTransaction()=0
Starts a new transaction.
virtual void selectEntity(REntity::Id entityId, bool add=false, QSet< REntity::Id > *affectedEntities=NULL)=0
Selects the entity with the given ID.
virtual bool removeObject(QSharedPointer< RObject > object)=0
virtual QVariant getVariable(const QString &key) const =0
virtual RTransaction getTransaction(int transactionId)=0
virtual QSharedPointer< RLinetype > queryLinetypeDirect(RLinetype::Id linetypeId) const =0
QString getLastModified() const
Definition: RStorage.h:856
virtual QSet< RUcs::Id > queryAllUcs()=0
virtual void toggleUndoStatus(QSet< RObject::Id > &objects)=0
Toggles the current undo status of all given objects.
@ EntityAll
All entities (for filters)
Definition: RS.h:138
virtual RView::Id getCurrentViewId() const
Definition: RStorage.h:369
virtual QSet< RLinetype::Id > queryAllLinetypes()=0
virtual bool isSelectedWorkingSet(REntity::Id entityId)
Definition: RStorage.h:640
virtual QSharedPointer< RObject > queryObjectDirect(RObject::Id objectId) const
Definition: RStorage.h:243
virtual void setVariable(const QString &key, const QVariant &value, bool overwrite=true)=0
Sets a custom variable in the context of this document.
RDocument * document
Definition: RStorage.h:876
virtual QList< RLinetypePattern > getLinetypePatterns() const =0
int Id
Definition: RObject.h:66
int Handle
Definition: RObject.h:68
RColor currentColor
Definition: RStorage.h:879
virtual QSet< REntity::Id > queryChildEntities(REntity::Id parentId, RS::EntityType type=RS::EntityAll)=0
RView::Id currentViewId
Definition: RStorage.h:882
virtual QSet< RBlock::Id > queryAllBlocks(bool undone=false)=0
virtual QSet< REntity::Id > queryAllEntities(bool undone=false, bool allBlocks=false, RS::EntityType type=RS::EntityAll)=0
virtual int getMaxTransactionId()=0
RLayer::Id layer0Id
Definition: RStorage.h:886
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RLinetypePattern.h:45
virtual void setMaxDrawOrder(int m)
Definition: RStorage.h:812
RBlock::Id currentBlockId
Definition: RStorage.h:883
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition: RDocument.h:72
virtual void setCurrentViewport(RObject::Id viewportId)
Definition: RStorage.h:413
virtual QSet< RLayout::Id > queryAllLayouts(bool undone=false)=0
virtual RLayout::Id getLayoutId(const QString &layoutName) const =0
Abstract base class for classes that are interested in the current state of a storage (modified or un...
Definition: RModifiedListener.h:34
QDateTime lastModified
Definition: RStorage.h:871
virtual QSet< QString > getLayerStateNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual bool hasSelection() const =0
virtual QString getLayerName(RLayer::Id layerId) const =0
RLinetype::Id currentLinetypeId
Definition: RStorage.h:881
virtual void setKnownVariable(RS::KnownVariable key, const QVariant &value, RTransaction *transaction=NULL)=0
Sets a known DXF/DWG variable for this document.
QList< RModifiedListener * > modifiedListeners
Definition: RStorage.h:891
virtual QString getLinetypeName(RLinetype::Id linetypeId) const =0
Lineweight
Definition: RLineweight.h:46
int maxDrawOrder
Definition: RStorage.h:877
virtual QString getLinetypeLabel(RLinetype::Id linetypeId) const =0
virtual bool isLayoutBlock(RBlock::Id blockId) const
Definition: RStorage.h:692
virtual QVariant getKnownVariable(RS::KnownVariable key) const =0
virtual RLineweight::Lineweight getMaxLineweight() const =0
This is the abstract base class for all storage implementations.
Definition: RStorage.h:64
virtual QSharedPointer< REntity > queryVisibleEntityDirect(REntity::Id entityId) const
Definition: RStorage.h:258
void setCurrentView(const QString &viewName)
Definition: RStorage.h:436
virtual QString getBlockNameFromLayout(const QString &layoutName) const =0
virtual void deselectEntity(REntity::Id entityId, QSet< REntity::Id > *affectedEntities=NULL)=0
Deselects the entity with the given ID.
void hasLayer(void name)
Checks if the given layer exists.
Definition: simple_create.js:66
virtual RBox getBoundingBox(bool ignoreHiddenLayers=true, bool ignoreEmpty=false) const =0
virtual RObject::Id getCurrentViewportId() const
Definition: RStorage.h:421
virtual void unsetCurrentViewport()
Definition: RStorage.h:417
virtual QSet< RObject::Id > querySelectedLayers() const =0
virtual bool hasChildEntities(REntity::Id parentId) const =0
virtual QSet< REntity::Id > queryInfiniteEntities() const =0
virtual QSharedPointer< RBlock > queryBlockDirect(const QString &blockName) const
Definition: RStorage.h:356
RDocument * getDocument() const
Definition: RStorage.h:73
virtual void update()
Clear caches:
Definition: RStorage.h:865
virtual QSharedPointer< RBlock > queryBlock(const QString &blockName) const =0
virtual bool isEntity(RObject::Id objectId)
Definition: RStorage.h:645
virtual QString getBlockNameFromLayout(RLayout::Id layoutId) const =0
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RRequireHeap.h:30
virtual int getMaxDrawOrder()
Definition: RStorage.h:816
Transaction implementation.
Definition: RTransaction.h:74
RObject::Id idCounter
Definition: RStorage.h:878
virtual bool saveObject(QSharedPointer< RObject > object, bool checkBlockRecursion=true, bool keepHandles=false)=0
Saves the given object to the storage.
void setDocument(RDocument *doc)
Definition: RStorage.h:69
virtual QString getLinetypeDescription(RLinetype::Id linetypeId) const =0
virtual RLinetype::Id getLinetypeId(const QString &linetypeName) const =0
virtual int deselectEntities(const QSet< REntity::Id > &entityIds, QSet< REntity::Id > *affectedEntities=NULL)=0
Deselects all entities with the given IDs.
virtual QSet< REntity::Id > queryWorkingSetEntities()=0
Represents a box e.g.
Definition: RBox.h:43
virtual QStringList getVariables() const =0
virtual QString getBlockName(RBlock::Id blockId) const =0
virtual QString getLayoutName(RLayout::Id layoutId) const =0
virtual QSet< QString > getLayoutNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual void setCurrentBlock(RBlock::Id blockId)
Definition: RStorage.h:392
Measurement
Enum of supported measurement systems.
Definition: RS.h:308
virtual QSharedPointer< RView > queryView(RView::Id viewId) const =0
virtual QSet< QString > getLayerNames(const QString &rxStr=RDEFAULT_QSTRING) const =0
virtual QSet< RLayerState::Id > queryAllLayerStates(bool undone=false) const =0
void setCurrentBlock(const QString &blockName)
Definition: RStorage.h:401
virtual bool hasBlockEntities(RBlock::Id blockId) const =0
virtual QSet< RLayer::Id > queryAllLayers(bool undone=false)=0
#define QCADCORE_EXPORT
Definition: core_global.h:10
virtual QSharedPointer< RLayerState > queryLayerStateDirect(RLayerState::Id layerStateId) const
Definition: RStorage.h:317
virtual QSharedPointer< RUcs > queryUcs(RUcs::Id ucsId) const =0
virtual QSet< RObject::Id > queryAllObjects() const =0
virtual QSharedPointer< RLayerState > queryLayerStateDirect(const QString &layerStateName) const
Definition: RStorage.h:320
virtual QSet< QString > getLinetypeNames() const =0
virtual void setModelSpaceBlockId(RBlock::Id id)
Definition: RStorage.h:425
virtual QSharedPointer< RLayerState > queryLayerState(RLayerState::Id layerStateId) const =0
virtual QSet< REntity::Id > queryAllBlockReferences() const =0
Color.
Definition: RColor.h:44