QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RDocumentVariables.h
Go to the documentation of this file.
1
20#ifndef RDOCUMENTVARIABLES_H
21#define RDOCUMENTVARIABLES_H
22
23#include "core_global.h"
24
25#include "RObject.h"
26
27class RColor;
28class RDocument;
29class RVector;
30
39public:
48
49public:
51 virtual ~RDocumentVariables();
52
53 static void init();
54
58
59 virtual RS::EntityType getType() const {
61 }
62
63 virtual QSharedPointer<RObject> clone() const {
64 return QSharedPointer<RObject>(new RDocumentVariables(*this));
65 }
66
67 QSharedPointer<RDocumentVariables> cloneToDocumentVariables() const {
68 return QSharedPointer<RDocumentVariables>(new RDocumentVariables(*this));
69 }
70
71 virtual QPair<QVariant, RPropertyAttributes>
72 getProperty(RPropertyTypeId& propertyTypeId,
73 bool humanReadable = false,
74 bool noAttributes = false,
75 bool showOnRequest = false);
76
77 virtual bool setProperty(RPropertyTypeId propertyTypeId,
78 const QVariant& value, RTransaction* transaction=NULL);
79
80 void clear();
81
82 QSet<RPropertyTypeId> getCustomPropertyTypeIds() const;
83 void setKnownVariable(RS::KnownVariable key, const RVector& value);
84 void setKnownVariable(RS::KnownVariable key, const RColor& value);
85 void setKnownVariable(RS::KnownVariable key, const QVariant& value);
86 //void setDimVariable(RS::KnownVariable key, const QVariant& value);
87 QVariant getKnownVariable(RS::KnownVariable key) const;
88 bool hasKnownVariable(RS::KnownVariable key) const;
89
91 return currentLayerId;
92 }
93
95 currentLayerId = id;
96 }
97
98 RS::Unit getUnit() const {
99 return unit;
100 }
101
103 QVariant v;
104 v.setValue((int)u);
105 knownVariables.insert(RS::INSUNITS, v);
106 unit = u;
107 }
108
110 return measurement;
111 }
112
114 if (m!=RS::Metric && m!=RS::Imperial) {
115 return;
116 }
117
118 QVariant v;
119 v.setValue((int)m);
120 knownVariables.insert(RS::MEASUREMENT, v);
121 measurement = m;
122 }
123
124 double getLinetypeScale() const {
125 return linetypeScale;
126 }
127
128 void setLinetypeScale(double s) {
129 QVariant v;
130 v.setValue((double)s);
131 knownVariables.insert(RS::LTSCALE, v);
132 linetypeScale = s;
133 }
134
135 QString getDimensionFont() const {
136 return dimensionFont;
137 }
138
139 void setDimensionFont(const QString& f) {
140 dimensionFont = f;
141 }
142
143// RObject::Id getWorkingSetBlockReferenceId() const {
144// return workingSetBlockReferenceId;
145// }
146
147// void setWorkingSetBlockReferenceId(RObject::Id id) {
148// workingSetBlockReferenceId = id;
149// }
150
151 QString addAutoVariable(double value);
152 QStringList getAutoVariables() const;
153
154 virtual void print(QDebug dbg) const;
155
156private:
158 // TODO:
159 //RObject::Id currentBlockId;
160 //...
165 QHash<RS::KnownVariable, QVariant> knownVariables;
166 // ID of block reference that we are currently editing in-place (current working set):
168};
169
171Q_DECLARE_METATYPE(QSharedPointer<RDocumentVariables>)
172Q_DECLARE_METATYPE(QSharedPointer<RDocumentVariables>*)
173
174#endif
Q_DECLARE_METATYPE(RMath *)
Color.
Definition RColor.h:43
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
double getLinetypeScale() const
Definition RDocumentVariables.h:124
QSharedPointer< RDocumentVariables > cloneToDocumentVariables() const
Definition RDocumentVariables.h:67
QString dimensionFont
Definition RDocumentVariables.h:164
RObject::Id workingSetBlockReferenceId
Definition RDocumentVariables.h:167
void setCurrentLayerId(RObject::Id id)
Definition RDocumentVariables.h:94
static RPropertyTypeId PropertyProtected
Definition RDocumentVariables.h:42
void setLinetypeScale(double s)
Definition RDocumentVariables.h:128
static RS::EntityType getRtti()
Definition RDocumentVariables.h:55
static RPropertyTypeId PropertyLinetypeScale
Definition RDocumentVariables.h:45
void setMeasurement(RS::Measurement m)
Definition RDocumentVariables.h:113
virtual RS::EntityType getType() const
Definition RDocumentVariables.h:59
RS::Measurement getMeasurement() const
Definition RDocumentVariables.h:109
RS::Measurement measurement
Definition RDocumentVariables.h:162
RS::Unit getUnit() const
Definition RDocumentVariables.h:98
virtual QSharedPointer< RObject > clone() const
Definition RDocumentVariables.h:63
static RPropertyTypeId PropertyWorkingSetBlockReferenceId
Definition RDocumentVariables.h:47
void setDimensionFont(const QString &f)
Definition RDocumentVariables.h:139
QHash< RS::KnownVariable, QVariant > knownVariables
Definition RDocumentVariables.h:165
QString getDimensionFont() const
Definition RDocumentVariables.h:135
static RPropertyTypeId PropertyCurrentLayerId
Definition RDocumentVariables.h:43
RObject::Id getCurrentLayerId() const
Definition RDocumentVariables.h:90
static RPropertyTypeId PropertyHandle
Definition RDocumentVariables.h:41
static RPropertyTypeId PropertyCustom
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RDocumentVariables.h:40
void setUnit(RS::Unit u)
Definition RDocumentVariables.h:102
RS::Unit unit
Definition RDocumentVariables.h:161
static RPropertyTypeId PropertyDimensionFont
Definition RDocumentVariables.h:46
double linetypeScale
Definition RDocumentVariables.h:163
static RPropertyTypeId PropertyUnit
Definition RDocumentVariables.h:44
RObject::Id currentLayerId
Definition RDocumentVariables.h:157
Abstract base class for all objects.
Definition RObject.h:64
static void init()
Definition RObject.cpp:68
virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant &value, RTransaction *transaction=NULL)
Sets the given property to the given value.
Definition RObject.cpp:180
virtual QPair< QVariant, RPropertyAttributes > getProperty(RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false)
Definition RObject.cpp:136
int Id
Definition RObject.h:69
virtual QSet< RPropertyTypeId > getCustomPropertyTypeIds() const
Definition RObject.cpp:498
virtual void print(QDebug dbg) const
Stream operator for QDebug.
Definition RObject.cpp:719
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RPropertyTypeId.h:54
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ ObjectDocumentVariable
Definition RS.h:238
Measurement
Enum of supported measurement systems.
Definition RS.h:416
@ Imperial
Imperial.
Definition RS.h:418
@ Metric
Metric.
Definition RS.h:419
KnownVariable
Well established document variables.
Definition RS.h:501
@ INSUNITS
Definition RS.h:602
@ LTSCALE
Definition RS.h:607
@ MEASUREMENT
Definition RS.h:611
Unit
Enum of supported units (values correspond to DXF spec).
Definition RS.h:425
Transaction implementation.
Definition RTransaction.h:73
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADCORE_EXPORT
Definition core_global.h:10
char s
Definition opennurbs_string.cpp:32
#define NULL
Definition opennurbs_system.h:256