From 12927025fb3ca3b84110f03802d67808354d5158 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Tue, 13 Feb 2018 12:24:07 +0000 Subject: [PATCH] stubs for QVariant testing and QCoreApplication implementation Signed-off-by: Ivailo Monev --- bindings/KtCore.i | 154 ++++++++++++++++++++++++++++++++------- bindings/KtGui.i | 2 +- bindings/NOTE | 1 + bindings/TODO | 3 +- bindings/core/qcoreapplication.i | 110 ++++++++++++++++++++++++++++ bindings/core/qjsondocument.i | 6 -- bindings/test.py | 2 +- 7 files changed, 242 insertions(+), 36 deletions(-) create mode 100644 bindings/NOTE create mode 100644 bindings/core/qcoreapplication.i diff --git a/bindings/KtCore.i b/bindings/KtCore.i index 926655db4..4a34675f2 100644 --- a/bindings/KtCore.i +++ b/bindings/KtCore.i @@ -4,6 +4,7 @@ %include "core/qbytearray.i" %include "core/qchar.i" +%include "core/qcoreapplication.i" %include "core/qeasingcurve.i" %include "core/qjsonarray.i" %include "core/qjsondocument.i" @@ -40,21 +41,31 @@ // %template(QVariantHash) QHash; %{ -#include "QtCore/QCoreApplication" #include "QtCore/QFile" +#include "QtCore/QBitArray" +#include "QtCore/QDataStream" +#include "QtCore/QDate" +#include "QtCore/QDateTime" +#include "QtCore/QLine" +#include "QtCore/QLineF" +#include "QtCore/QLocale" +#include "QtGui/QMatrix" +#include "QtGui/QTransform" +#include "QtCore/QTime" +#include "QtCore/QPoint" +#include "QtCore/QPointF" +#include "QtCore/QSize" +#include "QtCore/QSizeF" +#include "QtCore/QRect" +#include "QtCore/QRectF" +#include "QtGui/QTextFormat" +#include "QtGui/QTextLength" +#include "QtCore/QUrl" QT_USE_NAMESPACE %} // temporary implementations for testing purposes -class QCoreApplication : public QObject { -public: - QCoreApplication(int argc, char *argv[]); - ~QCoreApplication(); - - static int exec(); -}; - class QFile { public: QFile(QString filename); @@ -71,21 +82,110 @@ public: ~QBitArray(); }; -class QDataStream; -class QDate; -class QDateTime; -class QLine; -class QLineF; -class QLocale; -class QMatrix; -class QTransform; -class QTime; -class QPoint; -class QPointF; -class QSize; -class QSizeF; -class QRect; -class QRectF; -class QTextFormat; -class QTextLength; -class QUrl; +class QDataStream { +public: + QDataStream(); + ~QDataStream(); +}; + +class QDate { +public: + QDate(); + ~QDate(); +}; + +class QDateTime { +public: + QDateTime(); + ~QDateTime(); +}; + +class QLine { +public: + QLine(); + ~QLine(); +}; + +class QLineF { +public: + QLineF(); + ~QLineF(); +}; + +class QLocale { +public: + QLocale(); + ~QLocale(); +}; + +class QMatrix { +public: + QMatrix(); + ~QMatrix(); +}; + +class QTransform { +public: + QTransform(); + ~QTransform(); +}; + +class QTime { +public: + QTime(); + ~QTime(); +}; + +class QPoint { +public: + QPoint(); + ~QPoint(); +}; + +class QPointF { +public: + QPointF(); + ~QPointF(); +}; + +class QSize { +public: + QSize(); + ~QSize(); +}; + +class QSizeF { +public: + QSizeF(); + ~QSizeF(); +}; + +class QRect { +public: + QRect(); + ~QRect(); +}; + +class QRectF { +public: + QRectF(); + ~QRectF(); +}; + +class QTextFormat { +public: + QTextFormat(); + ~QTextFormat(); +}; + +class QTextLength { +public: + QTextLength(); + ~QTextLength(); +}; + +class QUrl { +public: + QUrl(); + ~QUrl(); +}; diff --git a/bindings/KtGui.i b/bindings/KtGui.i index 3eb8152d3..7f2456913 100644 --- a/bindings/KtGui.i +++ b/bindings/KtGui.i @@ -1,7 +1,7 @@ %module KtGui %include "tricks.i" -// temporary for QCoreApplication reference +// for reference to Core base classes %include "KtCore.i" %include "gui/qfontinfo.i" diff --git a/bindings/NOTE b/bindings/NOTE new file mode 100644 index 000000000..3fa4816a9 --- /dev/null +++ b/bindings/NOTE @@ -0,0 +1 @@ + - container iterators not implemented \ No newline at end of file diff --git a/bindings/TODO b/bindings/TODO index 68a63bf3a..ad009dc01 100644 --- a/bindings/TODO +++ b/bindings/TODO @@ -1,4 +1,5 @@ - QObject is probably not working as intended - QVariant is almost not working because it's template and function magic - QList, QSet and QVector template for types that are not implemented yet - - properties, slots, signals, etc. \ No newline at end of file + - properties, slots, signals, etc. + - QCoreApplication/QApplication with argc/argv crash? \ No newline at end of file diff --git a/bindings/core/qcoreapplication.i b/bindings/core/qcoreapplication.i new file mode 100644 index 000000000..c64f4b2af --- /dev/null +++ b/bindings/core/qcoreapplication.i @@ -0,0 +1,110 @@ +%{ +#include "QtCore/qcoreapplication.h" +QT_USE_NAMESPACE +%} + +class QCoreApplication : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString applicationName READ applicationName WRITE setApplicationName) + Q_PROPERTY(QString applicationVersion READ applicationVersion WRITE setApplicationVersion) + Q_PROPERTY(QString organizationName READ organizationName WRITE setOrganizationName) + Q_PROPERTY(QString organizationDomain READ organizationDomain WRITE setOrganizationDomain) + +public: + QCoreApplication(int &argc, char **argv); + + ~QCoreApplication(); + + static QStringList arguments(); + + static void setAttribute(Qt::ApplicationAttribute attribute, bool on = true); + static bool testAttribute(Qt::ApplicationAttribute attribute); + + static void setOrganizationDomain(const QString &orgDomain); + static QString organizationDomain(); + static void setOrganizationName(const QString &orgName); + static QString organizationName(); + static void setApplicationName(const QString &application); + static QString applicationName(); + static void setApplicationVersion(const QString &version); + static QString applicationVersion(); + + static QCoreApplication *instance(); + + static int exec(); + static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents); + static void processEvents(QEventLoop::ProcessEventsFlags flags, int maxtime); + static void exit(int retcode=0); + + static bool sendEvent(QObject *receiver, QEvent *event); + static void postEvent(QObject *receiver, QEvent *event); + static void postEvent(QObject *receiver, QEvent *event, int priority); + static void sendPostedEvents(QObject *receiver, int event_type); + static void sendPostedEvents(); + static void removePostedEvents(QObject *receiver); + static void removePostedEvents(QObject *receiver, int eventType); + static bool hasPendingEvents(); + + virtual bool notify(QObject *, QEvent *); + + static bool startingUp(); + static bool closingDown(); + + static QString applicationDirPath(); + static QString applicationFilePath(); + static qint64 applicationPid(); + +#ifndef QT_NO_LIBRARY + static void setLibraryPaths(const QStringList &); + static QStringList libraryPaths(); + static void addLibraryPath(const QString &); + static void removeLibraryPath(const QString &); +#endif // QT_NO_LIBRARY + +#ifndef QT_NO_TRANSLATION + static void installTranslator(QTranslator * messageFile); + static void removeTranslator(QTranslator * messageFile); +#endif + enum Encoding { CodecForTr, UnicodeUTF8, DefaultCodec = CodecForTr }; + static QString translate(const char * context, + const char * sourceText, + const char * disambiguation = Q_NULLPTR, + Encoding encoding = CodecForTr, + int n = -1); + + static void flush(); + +#if defined(Q_OS_UNIX) + static void watchUnixSignal(int signal, bool watch); +#endif + + typedef bool (*EventFilter)(void *message, long *result); + EventFilter setEventFilter(EventFilter filter); + bool filterEvent(void *message, long *result); + +public Q_SLOTS: + static void quit(); + +Q_SIGNALS: + void aboutToQuit(); + void unixSignal(int); + +protected: + bool event(QEvent *); + + virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *); + + QCoreApplication(QCoreApplicationPrivate &p); +}; + +#ifdef QT_NO_TRANSLATION +// Simple versions +QString QCoreApplication::translate(const char *, const char *sourceText, + const char *, Encoding encoding = CodecForTr, int = -1); +#endif + +typedef void (*QtCleanUpFunction)(); + +void qAddPostRoutine(QtCleanUpFunction); +void qRemovePostRoutine(QtCleanUpFunction); diff --git a/bindings/core/qjsondocument.i b/bindings/core/qjsondocument.i index b73d28c37..188cf74c0 100644 --- a/bindings/core/qjsondocument.i +++ b/bindings/core/qjsondocument.i @@ -31,12 +31,6 @@ class QJsonDocument { public: -#ifdef Q_LITTLE_ENDIAN - static const uint BinaryFormatTag = ('q') | ('b' << 8) | ('j' << 16) | ('s' << 24); -#else - static const uint BinaryFormatTag = ('q' << 24) | ('b' << 16) | ('j' << 8) | ('s'); -#endif - QJsonDocument(); QJsonDocument(const QJsonObject &object); QJsonDocument(const QJsonArray &array); diff --git a/bindings/test.py b/bindings/test.py index 7709d97b4..97fe5140c 100755 --- a/bindings/test.py +++ b/bindings/test.py @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/python import sys, KtCore, KtGui -- 2.11.0