QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RBlock.h
Go to the documentation of this file.
1 
20 #ifndef RBLOCK_H
21 #define RBLOCK_H
22 
23 #include "core_global.h"
24 
25 #include <QString>
26 #include <QDebug>
27 
28 #include "RGlobal.h"
29 #include "RObject.h"
30 #include "RVector.h"
31 #include "RPropertyTypeId.h"
32 
33 class RDocument;
34 class RTransaction;
35 
44 public:
47 
48 public:
49  RBlock();
50 
51  RBlock(RDocument* document, const QString& name, const RVector& origin);
52 
53  virtual ~RBlock();
54 
55  static void init();
56 
57  virtual RBlock* clone() const;
58 
59  QString getName() const {
60  return name;
61  }
62 
63  void setName(const QString& n);
64 
65  bool isFrozen() const {
66  return frozen;
67  }
68 
69  void setFrozen(bool on) {
70  if (QString::compare(name, modelSpaceName, Qt::CaseInsensitive)!=0) {
71  frozen = on;
72  }
73  }
74 
75  bool isAnonymous() const {
76  return anonymous;
77  }
78 
79  void setAnonymous(bool on) {
80  if (QString::compare(name, modelSpaceName, Qt::CaseInsensitive)!=0) {
81  anonymous = on;
82  }
83  }
84 
85  void setOrigin(const RVector& origin) {
86  this->origin = origin;
87  }
88 
89  RVector getOrigin() const {
90  return origin;
91  }
92 
93  virtual QPair<QVariant, RPropertyAttributes> getProperty(RPropertyTypeId& propertyTypeId,
94  bool humanReadable = false, bool noAttributes = false);
95  virtual bool setProperty(RPropertyTypeId propertyTypeId,
96  const QVariant& value, RTransaction* transaction=NULL);
97 
98  virtual bool isSelectedForPropertyEditing();
99 
100 public:
101  static const QString modelSpaceName;
102 
103 protected:
107  virtual void print(QDebug dbg) const;
108 
109 private:
110  QString name;
111  bool frozen;
112  bool anonymous;
114 };
115 
116 
117 Q_DECLARE_METATYPE(QSharedPointer<RBlock>)
118 Q_DECLARE_METATYPE(QSharedPointer<RBlock>*)
121 
122 #endif