changeset 331:1defd6a98364 signals

Make static constructors shared. Requires new dmd. Remove irrelevant junk
author eldar1@eldar1-laptop
date Fri, 22 Jan 2010 23:59:07 +0000
parents 115130499d78
children 24ebea513d66
files build/gui.txt cpp/qt_gui/UrlHandler_shell.cpp cpp/qt_gui/UrlHandler_shell.h generator/dgenerator.cpp qt/gui/UrlHandler.d qt/qtd/MOC.d
diffstat 6 files changed, 7 insertions(+), 127 deletions(-) [+]
line wrap: on
line diff
--- a/build/gui.txt	Sat Jan 16 12:20:50 2010 +0000
+++ b/build/gui.txt	Fri Jan 22 23:59:07 2010 +0000
@@ -1,10 +1,4 @@
 set(required Core)
-qt4_generate_moc(cpp/qt_gui/UrlHandler_shell.h
-	  ${CMAKE_BINARY_DIR}/cpp/qt_gui/UrlHandler_shell_moc.cpp 
-	)
-set (cpp_files qt_gui/UrlHandler_shell )
-set (cpp_generated_files qt_gui/UrlHandler_shell_moc)
-#set (d_files gui/UrlHandler)
 set(classes
     QPushButton
     QFileIconProvider
--- a/cpp/qt_gui/UrlHandler_shell.cpp	Sat Jan 16 12:20:50 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-#include "UrlHandler_shell.h"
-
-#include "qtd_core.h"
-
-UrlHandler::UrlHandler(void *d_ptr, QObject*  parent0)
-    : QObject(parent0),
-      QtD_QObjectEntity(this, d_ptr)
-{
-}
-
-#ifdef CPP_SHARED
-extern "C" typedef void (*pfqtd_UrlHandler_handleUrl_QUrl_dispatch)(void *dId, void* arg__1);
-pfqtd_UrlHandler_handleUrl_QUrl_dispatch qtd_UrlHandler_handleUrl_QUrl_dispatch;
-#else
-extern "C" void qtd_UrlHandler_handleUrl_QUrl_dispatch(void *dId, void* name1);
-#endif
-void UrlHandler::handleUrl(const QUrl &url)
-{
-    qtd_UrlHandler_handleUrl_QUrl_dispatch(this->dId, &(QUrl& )url);
-}
-
-extern "C" DLL_PUBLIC void qtd_UrlHandler_destructor(void *ptr)
-{
-    delete (UrlHandler *)ptr;
-}
-
-extern "C" DLL_PUBLIC void* qtd_UrlHandler_UrlHandler_QObject
-(void *d_ptr,
- void* parent0)
-{
-    QObject*  __qt_parent0 = (QObject* ) parent0;
-    UrlHandler *__qt_this = new UrlHandler(d_ptr, (QObject* )__qt_parent0);
-    return (void *) __qt_this;
-}
-
-#ifdef CPP_SHARED
-extern "C" DLL_PUBLIC void qtd_UrlHandler_initCallBacks(pfunc_abstr *virts, pfunc_abstr qobj_del) {
-    qtd_UrlHandler_handleUrl_QUrl_dispatch = (pfqtd_UrlHandler_handleUrl_QUrl_dispatch) virts[0];
-//    qtd_D_QWidget_delete = (qtd_pf_D_QWidget_delete)qobj_del;
-}
-#endif
--- a/cpp/qt_gui/UrlHandler_shell.h	Sat Jan 16 12:20:50 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-#include <QUrl>
-#include <QObjectEntity.h>
-
-class UrlHandler : public QObject, public QtD_QObjectEntity
-{
-    Q_OBJECT
-
-public:
-    UrlHandler(void *d_ptr, QObject *parent = 0);
-
-public slots:
-    void handleUrl(const QUrl &url);
-};
--- a/generator/dgenerator.cpp	Sat Jan 16 12:20:50 2010 +0000
+++ b/generator/dgenerator.cpp	Fri Jan 22 23:59:07 2010 +0000
@@ -1857,7 +1857,7 @@
     {
         auxFile.isDone = false;
         auxFile.stream << "extern(C) void static_init_" << d_class->name() << "();" << endl;
-        auxFile.stream << "static this() { static_init_" << d_class->name() << "; }" << endl << endl;
+        auxFile.stream << "shared static this() { static_init_" << d_class->name() << "; }" << endl << endl;
     }
 
     if (m_docs_enabled) {
@@ -2743,7 +2743,7 @@
     << "        return qtd_" << d_class->name() << "_qt_metacall(__nativeId, _c, _id, _a);" << endl
     << "    }" << endl << endl;
 
-  s << "    private static QMetaObject _staticMetaObject;" << endl
+  s << "    private static __gshared QMetaObject _staticMetaObject;" << endl
     << "    protected static void createStaticMetaObject() {" << endl
     << "        assert(!_staticMetaObject);" << endl
     << "        QMetaObject base;" << endl;
--- a/qt/gui/UrlHandler.d	Sat Jan 16 12:20:50 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-module qt.gui.UrlHandler;
-
-import qt.core.QUrl;
-
-alias void delegate(QUrl) UrlHandlerDg;
-
-package class UrlHandler : QObject {
-    public this(UrlHandlerDg dg) {
-        if (!init_flag_UrlHandler)
-            static_init_UrlHandler();
-
-        _dg = dg;
-        void* __qt_return_value = qtd_UrlHandler_UrlHandler_QObject(cast(void*) this, null);
-        this(__qt_return_value, true);
-    }
-    
-    void handleUrl(QUrl url) {
-        _dg(url);
-    }
-    
-    private UrlHandlerDg _dg;
-    
-    public this(void* native_id, bool gc_managed) {
-        super(native_id, gc_managed);
-    }
-
-
-    protected void __free_native_resources() {
-        qtd_UrlHandler_destructor(nativeId());
-    }
-
-    void __set_native_ownership(bool ownership_) {
-        __no_real_delete = ownership_;
-    }
-}
-extern (C) void qtd_UrlHandler_destructor(void *ptr);
-
-private extern(C) void* qtd_UrlHandler_UrlHandler_QObject(void *d_ptr,
- void* parent0);
-
-private extern(C) void qtd_UrlHandler_handleUrl_QUrl_dispatch(void *d_entity, void* name1)
-{
-    auto d_object = cast(UrlHandler) d_entity;
-    scope name1_d_ref = new QUrl(name1, true);
-    d_object.handleUrl(name1_d_ref);
-}
-
-private extern (C) void qtd_UrlHandler_initCallBacks(void* virtuals, void* qobj_del);
-
-private bool init_flag_UrlHandler = false;
-void static_init_UrlHandler() {
-    init_flag_UrlHandler = true;
-
-    void*[1] virt_arr;
-    virt_arr[0] = &qtd_UrlHandler_handleUrl_QUrl_dispatch;
-
-//    void *qobj_del;
-//    qobj_del = &qtd_D_QWidget_delete;
-    qtd_UrlHandler_initCallBacks(virt_arr.ptr, null);
-}
--- a/qt/qtd/MOC.d	Sat Jan 16 12:20:50 2010 +0000
+++ b/qt/qtd/MOC.d	Fri Jan 22 23:59:07 2010 +0000
@@ -458,15 +458,15 @@
 {
     string res;
     res ~= "
-    public QMetaObject metaObject()
+    public QMetaObject metaObject() { return staticMetaObject(); }
+    private static __gshared QMetaObject _staticMetaObject;
+    private static __gshared QMetaObjectNative _nativeStaticMetaObject;
+    public static QMetaObject staticMetaObject()
     {
         if(!_staticMetaObject)
             createStaticMetaObject();
-        return staticMetaObject();
+        return _staticMetaObject;
     }
-    private static __gshared QMetaObject _staticMetaObject;
-    private static __gshared QMetaObjectNative _nativeStaticMetaObject;
-    public static QMetaObject staticMetaObject() { return _staticMetaObject; }
     protected static void createStaticMetaObject() {
         assert(!_staticMetaObject);
         alias BaseClassesTuple!(typeof(this))[0] BaseClass;