OSDN Git Service

stubs for QVariant testing and QCoreApplication implementation
authorIvailo Monev <xakepa10@laimg.moc>
Tue, 13 Feb 2018 12:24:07 +0000 (12:24 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Tue, 13 Feb 2018 12:24:07 +0000 (12:24 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
bindings/KtCore.i
bindings/KtGui.i
bindings/NOTE [new file with mode: 0644]
bindings/TODO
bindings/core/qcoreapplication.i [new file with mode: 0644]
bindings/core/qjsondocument.i
bindings/test.py

index 926655d..4a34675 100644 (file)
@@ -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"
 // %template(QVariantHash) QHash<QVariant>;
 
 %{
-#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();
+};
index 3eb8152..7f24569 100644 (file)
@@ -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 (file)
index 0000000..3fa4816
--- /dev/null
@@ -0,0 +1 @@
+ - container iterators not implemented
\ No newline at end of file
index 68a63bf..ad009dc 100644 (file)
@@ -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 (file)
index 0000000..c64f4b2
--- /dev/null
@@ -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);
index b73d28c..188cf74 100644 (file)
@@ -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);
index 7709d97..97fe514 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python
 
 import sys, KtCore, KtGui