From 31815c1df62fd06734bebce2db1c419133b4af6f Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 14 Mar 2017 17:07:25 +0100 Subject: PySide2/global.h.in: Clean out most Qt-specific macros This is no longer required for Clang. Add a definition for QT_ANNOTATE_ACCESS_SPECIFIER so that signals, slots become visible to Clang. Task-number: PYSIDE-323 Change-Id: I11e49c52e8f9b9ad5407af90044e48a8863f7832 Reviewed-by: Alexandru Croitor --- PySide2/global.h.in | 359 ++-------------------------------------------------- 1 file changed, 11 insertions(+), 348 deletions(-) (limited to 'PySide2') diff --git a/PySide2/global.h.in b/PySide2/global.h.in index e03ed345..2c1ad7de 100644 --- a/PySide2/global.h.in +++ b/PySide2/global.h.in @@ -37,345 +37,13 @@ ** ****************************************************************************/ -#undef QT_NO_STL - -#undef QT_NO_STL_WCHAR -#define Q_BYTE_ORDER // used to enable QSysInfo.Endian detection on MacOSX - -#if defined(__OBJC__) && !defined(__cplusplus) -# warning "File built in Objective-C mode (.m), but using Qt requires Objective-C++ (.mm)" -#endif - #include -QT_BEGIN_NAMESPACE - - -class QByteArray; -struct QArrayData; -typedef QArrayData QByteArrayData; - -class QString; - -#ifndef Q_MOC_OUTPUT_REVISION -#define Q_MOC_OUTPUT_REVISION 67 -#endif - -// The following macros are our "extensions" to C++ -// They are used, strictly speaking, only by the moc. - - -#ifndef QT_NO_META_MACROS -// macro for onaming members -#ifdef METHOD -#undef METHOD -#endif -#ifdef SLOT -#undef SLOT -#endif -#ifdef SIGNAL -#undef SIGNAL -#endif -#endif // QT_NO_META_MACROS - -Q_CORE_EXPORT const char *qFlagLocation(const char *method); - -#ifndef QT_NO_META_MACROS -#ifndef QT_NO_DEBUG -# define QLOCATION "\0" __FILE__ ":" QT_STRINGIFY(__LINE__) -# ifndef QT_NO_KEYWORDS -# define METHOD(a) qFlagLocation("0"#a QLOCATION) -# endif -# define SLOT(a) qFlagLocation("1"#a QLOCATION) -# define SIGNAL(a) qFlagLocation("2"#a QLOCATION) -#else -# ifndef QT_NO_KEYWORDS -# define METHOD(a) "0"#a -# endif -# define SLOT(a) "1"#a -# define SIGNAL(a) "2"#a -#endif - -#define QMETHOD_CODE 0 // member type codes -#define QSLOT_CODE 1 -#define QSIGNAL_CODE 2 -#endif // QT_NO_META_MACROS - -#define Q_ARG(type, data) QArgument(#type, data) -#define Q_RETURN_ARG(type, data) QReturnArgument(#type, data) - -class QObject; -class QMetaMethod; -class QMetaEnum; -class QMetaProperty; -class QMetaClassInfo; - - -class Q_CORE_EXPORT QGenericArgument -{ -public: - inline QGenericArgument(const char *aName = 0, const void *aData = 0) - : _data(aData), _name(aName) {} - inline void *data() const { return const_cast(_data); } - inline const char *name() const { return _name; } - -private: - const void *_data; - const char *_name; -}; - -class Q_CORE_EXPORT QGenericReturnArgument: public QGenericArgument -{ -public: - inline QGenericReturnArgument(const char *aName = 0, void *aData = 0) - : QGenericArgument(aName, aData) - {} -}; - -template -class QArgument: public QGenericArgument -{ -public: - inline QArgument(const char *aName, const T &aData) - : QGenericArgument(aName, static_cast(&aData)) - {} -}; -template -class QArgument: public QGenericArgument -{ -public: - inline QArgument(const char *aName, T &aData) - : QGenericArgument(aName, static_cast(&aData)) - {} -}; - - -template -class QReturnArgument: public QGenericReturnArgument -{ -public: - inline QReturnArgument(const char *aName, T &aData) - : QGenericReturnArgument(aName, static_cast(&aData)) - {} -}; - -struct Q_CORE_EXPORT QMetaObject -{ - class Connection; - const char *className() const; - const QMetaObject *superClass() const; - - QObject *cast(QObject *obj) const; - const QObject *cast(const QObject *obj) const; - -#ifndef QT_NO_TRANSLATION - QString tr(const char *s, const char *c, int n = -1) const; -#endif // QT_NO_TRANSLATION - - int methodOffset() const; - int enumeratorOffset() const; - int propertyOffset() const; - int classInfoOffset() const; - - int constructorCount() const; - int methodCount() const; - int enumeratorCount() const; - int propertyCount() const; - int classInfoCount() const; - - int indexOfConstructor(const char *constructor) const; - int indexOfMethod(const char *method) const; - int indexOfSignal(const char *signal) const; - int indexOfSlot(const char *slot) const; - int indexOfEnumerator(const char *name) const; - int indexOfProperty(const char *name) const; - int indexOfClassInfo(const char *name) const; - - QMetaMethod constructor(int index) const; - QMetaMethod method(int index) const; - QMetaEnum enumerator(int index) const; - QMetaProperty property(int index) const; - QMetaClassInfo classInfo(int index) const; - QMetaProperty userProperty() const; - - static bool checkConnectArgs(const char *signal, const char *method); - static bool checkConnectArgs(const QMetaMethod &signal, - const QMetaMethod &method); - static QByteArray normalizedSignature(const char *method); - static QByteArray normalizedType(const char *type); - - // internal index-based connect - static Connection connect(const QObject *sender, int signal_index, - const QObject *receiver, int method_index, - int type = 0, int *types = 0); - // internal index-based disconnect - static bool disconnect(const QObject *sender, int signal_index, - const QObject *receiver, int method_index); - static bool disconnectOne(const QObject *sender, int signal_index, - const QObject *receiver, int method_index); - // internal slot-name based connect - static void connectSlotsByName(QObject *o); - - // internal index-based signal activation - static void activate(QObject *sender, int signal_index, void **argv); - static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); - static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); - - static bool invokeMethod(QObject *obj, const char *member, - Qt::ConnectionType, - QGenericReturnArgument ret, - QGenericArgument val0 = QGenericArgument(0), - QGenericArgument val1 = QGenericArgument(), - QGenericArgument val2 = QGenericArgument(), - QGenericArgument val3 = QGenericArgument(), - QGenericArgument val4 = QGenericArgument(), - QGenericArgument val5 = QGenericArgument(), - QGenericArgument val6 = QGenericArgument(), - QGenericArgument val7 = QGenericArgument(), - QGenericArgument val8 = QGenericArgument(), - QGenericArgument val9 = QGenericArgument()); - - static inline bool invokeMethod(QObject *obj, const char *member, - QGenericReturnArgument ret, - QGenericArgument val0 = QGenericArgument(0), - QGenericArgument val1 = QGenericArgument(), - QGenericArgument val2 = QGenericArgument(), - QGenericArgument val3 = QGenericArgument(), - QGenericArgument val4 = QGenericArgument(), - QGenericArgument val5 = QGenericArgument(), - QGenericArgument val6 = QGenericArgument(), - QGenericArgument val7 = QGenericArgument(), - QGenericArgument val8 = QGenericArgument(), - QGenericArgument val9 = QGenericArgument()) - { - return invokeMethod(obj, member, Qt::AutoConnection, ret, val0, val1, val2, val3, - val4, val5, val6, val7, val8, val9); - } - - static inline bool invokeMethod(QObject *obj, const char *member, - Qt::ConnectionType type, - QGenericArgument val0 = QGenericArgument(0), - QGenericArgument val1 = QGenericArgument(), - QGenericArgument val2 = QGenericArgument(), - QGenericArgument val3 = QGenericArgument(), - QGenericArgument val4 = QGenericArgument(), - QGenericArgument val5 = QGenericArgument(), - QGenericArgument val6 = QGenericArgument(), - QGenericArgument val7 = QGenericArgument(), - QGenericArgument val8 = QGenericArgument(), - QGenericArgument val9 = QGenericArgument()) - { - return invokeMethod(obj, member, type, QGenericReturnArgument(), val0, val1, val2, - val3, val4, val5, val6, val7, val8, val9); - } - - static inline bool invokeMethod(QObject *obj, const char *member, - QGenericArgument val0 = QGenericArgument(0), - QGenericArgument val1 = QGenericArgument(), - QGenericArgument val2 = QGenericArgument(), - QGenericArgument val3 = QGenericArgument(), - QGenericArgument val4 = QGenericArgument(), - QGenericArgument val5 = QGenericArgument(), - QGenericArgument val6 = QGenericArgument(), - QGenericArgument val7 = QGenericArgument(), - QGenericArgument val8 = QGenericArgument(), - QGenericArgument val9 = QGenericArgument()) - { - return invokeMethod(obj, member, Qt::AutoConnection, QGenericReturnArgument(), val0, - val1, val2, val3, val4, val5, val6, val7, val8, val9); - } - - QObject *newInstance(QGenericArgument val0 = QGenericArgument(0), - QGenericArgument val1 = QGenericArgument(), - QGenericArgument val2 = QGenericArgument(), - QGenericArgument val3 = QGenericArgument(), - QGenericArgument val4 = QGenericArgument(), - QGenericArgument val5 = QGenericArgument(), - QGenericArgument val6 = QGenericArgument(), - QGenericArgument val7 = QGenericArgument(), - QGenericArgument val8 = QGenericArgument(), - QGenericArgument val9 = QGenericArgument()) const; - - enum Call { - InvokeMetaMethod, - ReadProperty, - WriteProperty, - ResetProperty, - QueryPropertyDesignable, - QueryPropertyScriptable, - QueryPropertyStored, - QueryPropertyEditable, - QueryPropertyUser, - CreateInstance, - IndexOfMethod, - RegisterPropertyMetaType, - RegisterMethodArgumentMetaType - }; - - int static_metacall(Call, int, void **) const; - static int metacall(QObject *, Call, int, void **); - - struct { // private data - const QMetaObject *superdata; - const QByteArrayData *stringdata; - const uint *data; - typedef void (*StaticMetacallFunction)(QObject *, QMetaObject::Call, int, void **); - StaticMetacallFunction static_metacall; - const QMetaObject * const *relatedMetaObjects; - void *extradata; //reserved for future use - } d; -}; - -class Q_CORE_EXPORT QMetaObject::Connection { - void *d_ptr; //QObjectPrivate::Connection* - explicit Connection(void *data) : d_ptr(data) { } - friend class QObject; - friend class QObjectPrivate; - friend struct QMetaObject; -public: - ~Connection(); - Connection(); - Connection(const Connection &other); - Connection &operator=(const Connection &other); -#ifdef Q_QDOC - operator bool() const; -#else - typedef void *Connection::*RestrictedBool; - operator RestrictedBool() const { return d_ptr ? &Connection::d_ptr : 0; } -#endif - -#ifdef Q_COMPILER_RVALUE_REFS - inline Connection(Connection &&o) : d_ptr(o.d_ptr) { o.d_ptr = 0; } - inline Connection &operator=(Connection &&other) - { qSwap(d_ptr, other.d_ptr); return *this; } -#endif -}; - -inline const QMetaObject *QMetaObject::superClass() const -{ return d.superdata; } - -namespace QtPrivate { - /* Trait that tells is a the Object has a Q_OBJECT macro */ - template struct HasQ_OBJECT_Macro { - template - static char test(int (T::*)(QMetaObject::Call, int, void **)); - static int test(int (Object::*)(QMetaObject::Call, int, void **)); - enum { Value = sizeof(test(&Object::qt_metacall)) == sizeof(int) }; - }; -} - -QT_END_NAMESPACE - -// This Q_QDOC definition is only a convenience, since the shiboken parser is -// happier with the simplified constructions. XXX remove this for Qt 5.7. -#define Q_QDOC - #if @ENABLE_X11@ #define Q_OS_X11 #elif @ENABLE_MAC@ #define Q_OS_MAC #elif @ENABLE_WIN@ - #include "pysidewtypes.h" #define Q_OS_WIN #endif @@ -383,43 +51,30 @@ QT_END_NAMESPACE // not in release #define QT_NO_DEBUG +// Make "signals:", "slots:" visible as access specifiers +#define QT_ANNOTATE_ACCESS_SPECIFIER(a) __attribute__((annotate(#a))) + #include #include -#if @ENABLE_MAC@ || @ENABLE_WIN@ || @ENABLE_X11@ - // Workaround to parse the QApplication header - #define Q_INTERNAL_QAPP_SRC - #undef Q_QDOC -#endif #include #include -#ifndef Q_QDOC -// Make sure that Q_QDOC is defined for as much modules as possible. -// This creates more wrappers without extra work. -// Will disappear when we have a really good parser! -# define Q_QDOC -#endif #include #include "qpytextobject.h" // PySide class #if @ENABLE_X11@ #if @Qt5X11Extras_FOUND@ #include #endif -#elif @ENABLE_MAC@ - #include #endif #include #include #include #include -#include -#include #include #include // QT_WIDGETS_LIB must be defined to QSqlRelationalDelegate become visible. // It also changes code generation in pysideqtesttouch.h #define QT_WIDGETS_LIB -#undef Q_DECLARE_INTERFACE #include #include #if @Qt5WebKit_FOUND@ @@ -459,6 +114,14 @@ QT_END_NAMESPACE # include #endif +#if @Qt5Script_FOUND@ +# include +#endif + +#if @Qt5ScriptTools_FOUND@ +# include +#endif + //QtHelp needs to be included after QtSql. Why? #include -- cgit v1.2.3