DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAGlobals.h
1#ifndef DAGLOBALS_H
2#define DAGLOBALS_H
3#include <QScopedPointer>
4#include <QHash>
5#include <QtGlobal>
6#include <QMetaType>
7#include <memory>
8#include <QString>
9#include "DAConfigs.h"
10#ifndef DA_VERSION_MAJ
11#define DA_VERSION_MAJ 0
12#endif
13#ifndef DA_VERSION_MIN
14#define DA_VERSION_MIN 0
15#endif
16#ifndef DA_VERSION_PAR
17#define DA_VERSION_PAR 4
18#endif
23#ifndef DA_IMPL_FORWARD_DECL
24#define DA_IMPL_FORWARD_DECL(ClassName) class ClassName##Private;
25#endif
26
31#ifndef DA_IMPL_FORWARD_DECL_NS
32#define DA_IMPL_FORWARD_DECL_NS(NS, ClassName) \
33 namespace NS \
34 { \
35 class ClassName##Private; \
36 }
37#endif
38
43#ifndef DA_IMPL
44#define DA_IMPL(Class) \
45private: \
46 inline Class##Private* d_func() \
47 { \
48 return (d_ptr.data()); \
49 } \
50 inline const Class##Private* d_func() const \
51 { \
52 return (d_ptr.data()); \
53 } \
54 friend class Class##Private; \
55 QScopedPointer< Class##Private > d_ptr;
56#endif
57
62#ifndef DA_IMPL_PUBLIC
63#define DA_IMPL_PUBLIC(Class) \
64 inline Class* q_func() \
65 { \
66 return (static_cast< Class* >(q_ptr)); \
67 } \
68 inline const Class* q_func() const \
69 { \
70 return (static_cast< const Class* >(q_ptr)); \
71 } \
72 friend class Class; \
73 Class* q_ptr;
74#endif
75
115#ifndef DA_DECLARE_PRIVATE
116#define DA_DECLARE_PRIVATE(classname) \
117 class PrivateData; \
118 friend class classname::PrivateData; \
119 std::unique_ptr< PrivateData > d_ptr; \
120 inline PrivateData* d_func() \
121 { \
122 return (d_ptr.get()); \
123 } \
124 inline const PrivateData* d_func() const \
125 { \
126 return (d_ptr.get()); \
127 }
128#endif
129
136#ifndef DA_DECLARE_PUBLIC
137#define DA_DECLARE_PUBLIC(classname) \
138 friend class classname; \
139 classname* q_ptr { nullptr }; \
140 inline classname* q_func() \
141 { \
142 return (static_cast< classname* >(q_ptr)); \
143 } \
144 inline const classname* q_func() const \
145 { \
146 return (static_cast< const classname* >(q_ptr)); \
147 }
148#endif
149
155#ifndef DA_PIMPL_CONSTRUCT
156#define DA_PIMPL_CONSTRUCT d_ptr(std::make_unique< PrivateData >(this))
157#endif
158
163#ifndef DA_D
164#define DA_D(pointerName) PrivateData* pointerName = d_func()
165#endif
166
171#ifndef DA_DC
172#define DA_DC(pointerName) const PrivateData* pointerName = d_func()
173#endif
174
179#ifndef DA_Q
180#define DA_Q(classname, pointerName) classname* pointerName = q_func()
181#endif
182
187#ifndef DA_QC
188#define DA_QC(classname, pointerName) const classname* pointerName = q_func()
189#endif
190
204#ifndef Qt5Qt6Compat_QXXEvent_Pos
205#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
206#define Qt5Qt6Compat_QXXEvent_Pos(valuePtr) valuePtr->pos()
207#else
208#define Qt5Qt6Compat_QXXEvent_Pos(valuePtr) valuePtr->position().toPoint()
209#endif
210#endif
211
220#ifndef Qt5Qt6Compat_QXXEvent_x
221#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
222#define Qt5Qt6Compat_QXXEvent_x(valuePtr) valuePtr->pos().x()
223#else
224#define Qt5Qt6Compat_QXXEvent_x(valuePtr) valuePtr->position().x()
225#endif
226#endif
227
236#ifndef Qt5Qt6Compat_QXXEvent_y
237#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
238#define Qt5Qt6Compat_QXXEvent_y(valuePtr) valuePtr->pos().y()
239#else
240#define Qt5Qt6Compat_QXXEvent_y(valuePtr) valuePtr->position().y()
241#endif
242#endif
247#ifndef Qt5Qt6Compat_fontMetrics_width
248#if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
249#define Qt5Qt6Compat_fontMetrics_width(fontMeter, str) fontMeter.width(str)
250#else
251#define Qt5Qt6Compat_fontMetrics_width(fontMeter, str) fontMeter.horizontalAdvance(str)
252#endif
253#endif
254
255#ifndef Qt5Qt6Compat_Connect_ButtonGroupClicked_int
256#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
257#define Qt5Qt6Compat_Connect_ButtonGroupClicked_int(buttonGroup, funName) \
258 do { \
259 connect(buttonGroup, QOverload< int >::of(&QButtonGroup::buttonClicked), this, &funName); \
260 } while (0)
261#else
262#define Qt5Qt6Compat_Connect_ButtonGroupClicked_int(buttonGroup, funName) \
263 do { \
264 connect(buttonGroup, &QButtonGroup::idClicked, this, &funName); \
265 } while (0)
266#endif
267#endif
268
269#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
270template< typename T >
271uint qHash(const std::shared_ptr< T >& ptr, uint seed = 0)
272{
273 return qHash(ptr.get(), seed);
274}
275#endif // QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
276
302#ifndef DA_AUTO_REGISTER_META_TYPE
303#define DA_CONCAT_(a, b) a##b
304#define DA_CONCAT(a, b) DA_CONCAT_(a, b)
305#define DA_MAKE_UNIQUE_NAME(base) DA_CONCAT(base, __LINE__)
306#define DA_AUTO_REGISTER_META_TYPE(Type) \
307 namespace \
308 { \
309 static const struct DA_MAKE_UNIQUE_NAME(DA_MetaTypeRegistrar_) \
310 { \
311 inline DA_MAKE_UNIQUE_NAME(DA_MetaTypeRegistrar_)() \
312 { \
313 qRegisterMetaType< Type >(); \
314 } \
315 } DA_MAKE_UNIQUE_NAME(DA_MetaTypeRegistrar_instance_); \
316 }
317#endif
318
319namespace DA
320{
325{
326 Workflow = 1,
327 Data = 2,
328 Chart = 4,
329 All = 0xFF
330};
331
332} // end namespace DA
333Q_DECLARE_METATYPE(DA::DAWorkbenchFeatureType)
334#endif // GLOBALS_H
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44
DAWorkbenchFeatureType
工作台区域类型
Definition DAGlobals.h:325