From: Konrad Rosenbaum Date: Thu, 31 Oct 2013 12:31:43 +0000 (+0100) Subject: Qt5 port compiles, but still crashes X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=902286bea8a20cb5feaa855f6427c3481c5d6075;p=konrad%2FDeclarativeWidgets.git Qt5 port compiles, but still crashes --- diff --git a/examples/bookstore/booklistproxymodel.cpp b/examples/bookstore/booklistproxymodel.cpp index f36b4ef..cd525dd 100644 --- a/examples/bookstore/booklistproxymodel.cpp +++ b/examples/bookstore/booklistproxymodel.cpp @@ -50,7 +50,8 @@ void BookListProxyModel::addColumnToRoleMapping(int column, int role) QHash rolesToNames = roleNames(); rolesToNames[role] = m_rolesToNames[role]; - setRoleNames(rolesToNames); +// setRoleNames(rolesToNames); +#warning Need to find out how to expose role names to QML } int BookListProxyModel::columnCount(const QModelIndex &parent) const @@ -76,7 +77,7 @@ QModelIndex BookListProxyModel::index(int row, int column, const QModelIndex &pa if (parent.isValid()) return QModelIndex(); - return createIndex(row, 0, 0); + return createIndex(row, 0, (void*)0); } QModelIndex BookListProxyModel::parent(const QModelIndex &child) const diff --git a/examples/bookstore/bookstore.pro b/examples/bookstore/bookstore.pro index 68f01fb..55007d2 100644 --- a/examples/bookstore/bookstore.pro +++ b/examples/bookstore/bookstore.pro @@ -4,7 +4,7 @@ INCLUDEPATH += . ../../lib LIBS += -L ../../lib -ldeclarativewidgets -QT += declarative sql +QT += qml widgets quick sql SOURCES += \ main.cpp \ diff --git a/examples/bookstore/main.cpp b/examples/bookstore/main.cpp index 8bdb974..c67c423 100644 --- a/examples/bookstore/main.cpp +++ b/examples/bookstore/main.cpp @@ -24,9 +24,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include static QWidget *createDeclarativeWidgetsUi(BookStore *bookStore, const QString &fileName) @@ -45,9 +45,9 @@ static QWidget *createDeclarativeWidgetsUi(BookStore *bookStore, const QString & return widget; } -static QWidget *createQtQuickUi(BookStore *bookStore, const QString &fileName) +static QQuickView *createQtQuickUi(BookStore *bookStore, const QString &fileName) { - QDeclarativeView *view = new QDeclarativeView(); + QQuickView *view = new QQuickView(); QObject::connect(view->engine(), SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit())); @@ -89,9 +89,11 @@ int main(int argc, char **argv) BookStore bookStore; - QWidget *widget = useDeclarativeWidgets ? createDeclarativeWidgetsUi(&bookStore, fileName) : createQtQuickUi(&bookStore, fileName); + if(useDeclarativeWidgets) + createDeclarativeWidgetsUi(&bookStore, fileName)->show(); + else + createQtQuickUi(&bookStore, fileName)->show(); - widget->show(); return app.exec(); } diff --git a/examples/config-editor/config-editor.pro b/examples/config-editor/config-editor.pro index 8c5beea..88e175f 100644 --- a/examples/config-editor/config-editor.pro +++ b/examples/config-editor/config-editor.pro @@ -4,7 +4,7 @@ INCLUDEPATH += . ../../lib LIBS += -L ../../lib -ldeclarativewidgets -QT += declarative +QT += qml widgets TARGET = config-editor diff --git a/examples/config-editor/configeditor.cpp b/examples/config-editor/configeditor.cpp index 821677e..61d6e31 100644 --- a/examples/config-editor/configeditor.cpp +++ b/examples/config-editor/configeditor.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -133,7 +134,7 @@ QUrl ConfigEditor::findCustomEditorQml(const QFileInfo &configFile) const } // otherwise look into our data storage location - const QString dataDirLocation = QDesktopServices::storageLocation(QDesktopServices::DataLocation); + const QString dataDirLocation = QStandardPaths::writableLocation(QStandardPaths::DataLocation); qDebug() << "dataDirLocation" << dataDirLocation; if (!dataDirLocation.isEmpty()) { qmlFileInfo = QFileInfo(QDir(dataDirLocation + "config-editor"), qmlFile); diff --git a/examples/config-editor/main.cpp b/examples/config-editor/main.cpp index 5a082be..2807087 100644 --- a/examples/config-editor/main.cpp +++ b/examples/config-editor/main.cpp @@ -3,7 +3,7 @@ #include "declarativewidgetsdocument.h" #include -#include +#include #include int main(int argc, char *argv[]) diff --git a/examples/text-editor/main.cpp b/examples/text-editor/main.cpp index b57e5a3..5ad0f54 100644 --- a/examples/text-editor/main.cpp +++ b/examples/text-editor/main.cpp @@ -24,7 +24,7 @@ #include #include -#include +#include #include int main(int argc, char **argv) diff --git a/examples/text-editor/text-editor.pro b/examples/text-editor/text-editor.pro index c410879..09ca836 100644 --- a/examples/text-editor/text-editor.pro +++ b/examples/text-editor/text-editor.pro @@ -5,7 +5,7 @@ INCLUDEPATH += . ../../lib LIBS += -L ../../lib -ldeclarativewidgets -QT += declarative +QT += qml widgets # Input SOURCES += \ diff --git a/extensionplugin/extensionplugin.pro b/extensionplugin/extensionplugin.pro index 8d851da..01bfe91 100644 --- a/extensionplugin/extensionplugin.pro +++ b/extensionplugin/extensionplugin.pro @@ -1,6 +1,7 @@ TEMPLATE = lib TARGET = declarativewidgetsplugin -QT += declarative webkit +QT += qml quick widgets +# QT += webkit CONFIG += qt plugin TARGET = $$qtLibraryTarget($$TARGET) diff --git a/extensionplugin/extensionplugin_plugin.cpp b/extensionplugin/extensionplugin_plugin.cpp index 05f2f05..6bb92f9 100644 --- a/extensionplugin/extensionplugin_plugin.cpp +++ b/extensionplugin/extensionplugin_plugin.cpp @@ -62,7 +62,7 @@ #include #include #include -#include +#include #include #include #include @@ -77,6 +77,7 @@ #include #include #include +#include #include #include #include @@ -86,9 +87,9 @@ #include #include #include -#include +// #include -#include +#include // @uri QtWidgets void ExtensionpluginPlugin::registerTypes(const char *uri) @@ -125,7 +126,7 @@ void ExtensionpluginPlugin::registerTypes(const char *uri) qmlRegisterExtendedType(uri, 1, 0, "ComboBox"); qmlRegisterExtendedType(uri, 1, 0, "DateEdit"); qmlRegisterExtendedType(uri, 1, 0, "DateTimeEdit"); - qmlRegisterExtendedType(uri, 1, 0, "DeclarativeView"); + qmlRegisterExtendedType(uri, 1, 0, "DeclarativeView"); qmlRegisterExtendedType(uri, 1, 0, "Dial"); qmlRegisterExtendedType(uri, 1, 0, "Dialog"); qmlRegisterExtendedType(uri, 1, 0, "DialogButtonBox"); @@ -162,9 +163,8 @@ void ExtensionpluginPlugin::registerTypes(const char *uri) qmlRegisterExtendedType >(uri, 1, 0, "ToolBar"); qmlRegisterExtendedType(uri, 1, 0, "ToolButton"); qmlRegisterExtendedType(uri, 1, 0, "TreeView"); - qmlRegisterExtendedType(uri, 1, 0, "WebView"); +// qmlRegisterExtendedType(uri, 1, 0, "WebView"); +#warning Need to reenable WebKit qmlRegisterExtendedType(uri, 1, 0, "Widget"); } -Q_EXPORT_PLUGIN2(Extensionplugin, ExtensionpluginPlugin) - diff --git a/extensionplugin/extensionplugin_plugin.h b/extensionplugin/extensionplugin_plugin.h index 2f9f3c9..03f2cfc 100644 --- a/extensionplugin/extensionplugin_plugin.h +++ b/extensionplugin/extensionplugin_plugin.h @@ -21,11 +21,12 @@ #ifndef EXTENSIONPLUGIN_PLUGIN_H #define EXTENSIONPLUGIN_PLUGIN_H -#include +#include -class ExtensionpluginPlugin : public QDeclarativeExtensionPlugin +class ExtensionpluginPlugin : public QQmlExtensionPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") public: void registerTypes(const char *uri); diff --git a/lib/declarativedeclarativecontext.cpp b/lib/declarativedeclarativecontext.cpp index eeb257f..a2afef4 100644 --- a/lib/declarativedeclarativecontext.cpp +++ b/lib/declarativedeclarativecontext.cpp @@ -66,4 +66,59 @@ void DeclarativeDeclarativeContext::dataAppend(QObject *object) DeclarativeObjectProxy::dataAppend(object); } -CUSTOM_METAOBJECT(DeclarativeDeclarativeContext, DeclarativeContext) +//TODO: Find a solution to make the macro public but the usage of QMetaObjectBuilder private + +#include "qmetaobjectbuilder_p.h" + +QMetaObject DeclarativeDeclarativeContext::staticMetaObject; + +bool DeclarativeDeclarativeContext::metaObjectInitialized = DeclarativeDeclarativeContext::initializeMetaObject(); + +bool DeclarativeDeclarativeContext::initializeMetaObject() +{ + QMetaObjectBuilder builder; + const QMetaObject *mo = &DeclarativeContext::staticMetaObject; + builder.addMetaObject(mo); + builder.addMetaObject(&AbstractDeclarativeObject::staticMetaObject); + builder.setSuperClass(DeclarativeContext::staticMetaObject.superClass()); + builder.setClassName("DeclarativeDeclarativeContext"); + DeclarativeDeclarativeContext::staticMetaObject = *builder.toMetaObject(); + return true; +} + +const QMetaObject &DeclarativeDeclarativeContext::getStaticMetaObject() +{ + return DeclarativeDeclarativeContext::staticMetaObject; +} + +const QMetaObject* DeclarativeDeclarativeContext::metaObject() const +{ + QMetaObject*mobj=QObject::d_ptr->dynamicMetaObject(); + return mobj ? mobj : &staticMetaObject; +} + +void* DeclarativeDeclarativeContext::qt_metacast(const char*) +{ + return 0; +} + +int DeclarativeDeclarativeContext::qt_metacall(QMetaObject::Call call, int id, void **argv) +{ + if (call == QMetaObject::ReadProperty || call == QMetaObject::WriteProperty) { + if (id >= DeclarativeContext::staticMetaObject.propertyCount()) { + id = AbstractDeclarativeObject::qt_metacall(call, id - DeclarativeContext::staticMetaObject.propertyCount() + 1, argv); + id += DeclarativeContext::staticMetaObject.propertyCount() - 1; + } else { + id = m_proxiedObject->qt_metacall(call, id, argv); + } + if (id < 0) + return 0; + } else if (call == QMetaObject::InvokeMetaMethod) { + if (DeclarativeDeclarativeContext::staticMetaObject.method(id).methodType() == QMetaMethod::Signal) + QMetaObject::activate(this, id, argv); + else + id = m_proxiedObject->qt_metacall(call, id, argv); + id -= 1; + } + return id; +} diff --git a/lib/declarativedeclarativeviewextension.cpp b/lib/declarativedeclarativeviewextension.cpp index 6cdd25f..2b40e83 100644 --- a/lib/declarativedeclarativeviewextension.cpp +++ b/lib/declarativedeclarativeviewextension.cpp @@ -22,7 +22,7 @@ #include "declarativedeclarativecontext_p.h" -#include +#include DeclarativeDeclarativeViewExtension::DeclarativeDeclarativeViewExtension(QObject *parent) : DeclarativeWidgetExtension(parent) @@ -33,9 +33,9 @@ DeclarativeDeclarativeViewExtension::~DeclarativeDeclarativeViewExtension() { } -QDeclarativeView *DeclarativeDeclarativeViewExtension::extendedDeclarativeView() const +QQuickView *DeclarativeDeclarativeViewExtension::extendedDeclarativeView() const { - QDeclarativeView *declarativeView = qobject_cast(extendedWidget()); + QQuickView *declarativeView = qobject_cast(extendedWidget()); Q_ASSERT(declarativeView); return declarativeView; diff --git a/lib/declarativedeclarativeviewextension_p.h b/lib/declarativedeclarativeviewextension_p.h index c002dff..86a0fec 100644 --- a/lib/declarativedeclarativeviewextension_p.h +++ b/lib/declarativedeclarativeviewextension_p.h @@ -26,7 +26,7 @@ #include class DeclarativeContext; -class QDeclarativeView; +class QQuickView; class DeclarativeDeclarativeViewExtension : public DeclarativeWidgetExtension { @@ -44,7 +44,7 @@ class DeclarativeDeclarativeViewExtension : public DeclarativeWidgetExtension explicit DeclarativeDeclarativeViewExtension(QObject *parent = 0); ~DeclarativeDeclarativeViewExtension(); - QDeclarativeView *extendedDeclarativeView() const; + QQuickView *extendedDeclarativeView() const; void setDeclarativeRootContext(QObject *context); QObject *declarativeRootContext() const; diff --git a/lib/declarativefiledialog_p.h b/lib/declarativefiledialog_p.h index ce5e192..40cc243 100644 --- a/lib/declarativefiledialog_p.h +++ b/lib/declarativefiledialog_p.h @@ -23,7 +23,7 @@ #include "staticdialogmethodattached_p.h" -#include +#include #include class DeclarativeFileDialogAttached : public StaticDialogMethodAttached diff --git a/lib/declarativefontdialog_p.h b/lib/declarativefontdialog_p.h index 5250df4..b7858b5 100644 --- a/lib/declarativefontdialog_p.h +++ b/lib/declarativefontdialog_p.h @@ -23,7 +23,7 @@ #include "staticdialogmethodattached_p.h" -#include +#include #include class DeclarativeFontDialogAttached : public StaticDialogMethodAttached diff --git a/lib/declarativeformlayout.cpp b/lib/declarativeformlayout.cpp index a9900f8..c11b1ec 100644 --- a/lib/declarativeformlayout.cpp +++ b/lib/declarativeformlayout.cpp @@ -22,7 +22,7 @@ #include "layoutcontainerinterface_p.h" -#include +#include #include #include diff --git a/lib/declarativeformlayout_p.h b/lib/declarativeformlayout_p.h index 5eec240..31df907 100644 --- a/lib/declarativeformlayout_p.h +++ b/lib/declarativeformlayout_p.h @@ -23,7 +23,7 @@ #include "declarativelayoutextension.h" -#include +#include #include class DeclarativeFormLayoutAttached : public QObject diff --git a/lib/declarativegridlayout.cpp b/lib/declarativegridlayout.cpp index 72d7e5a..c4c028c 100644 --- a/lib/declarativegridlayout.cpp +++ b/lib/declarativegridlayout.cpp @@ -22,7 +22,7 @@ #include "layoutcontainerinterface_p.h" -#include +#include #include #include diff --git a/lib/declarativegridlayout_p.h b/lib/declarativegridlayout_p.h index b49edc1..ab56812 100644 --- a/lib/declarativegridlayout_p.h +++ b/lib/declarativegridlayout_p.h @@ -23,7 +23,7 @@ #include "declarativelayoutextension.h" -#include +#include #include class DeclarativeGridLayoutAttached : public QObject diff --git a/lib/declarativehboxlayout.cpp b/lib/declarativehboxlayout.cpp index 0cb1ed1..aae82d6 100644 --- a/lib/declarativehboxlayout.cpp +++ b/lib/declarativehboxlayout.cpp @@ -22,7 +22,7 @@ #include "layoutcontainerinterface_p.h" -#include +#include #include DeclarativeHBoxLayout::DeclarativeHBoxLayout(QObject *parent) diff --git a/lib/declarativehboxlayout_p.h b/lib/declarativehboxlayout_p.h index bd87eec..368dfc4 100644 --- a/lib/declarativehboxlayout_p.h +++ b/lib/declarativehboxlayout_p.h @@ -24,7 +24,7 @@ #include "declarativeboxlayout_p.h" #include "declarativelayoutextension.h" -#include +#include #include class DeclarativeHBoxLayout : public QHBoxLayout diff --git a/lib/declarativeicon_p.h b/lib/declarativeicon_p.h index b5ec14c..e80afb6 100644 --- a/lib/declarativeicon_p.h +++ b/lib/declarativeicon_p.h @@ -21,7 +21,7 @@ #ifndef DECLARATIVEICON_P_H #define DECLARATIVEICON_P_H -#include +#include #include #include #include diff --git a/lib/declarativeinputdialog_p.h b/lib/declarativeinputdialog_p.h index 925e4d9..afd3764 100644 --- a/lib/declarativeinputdialog_p.h +++ b/lib/declarativeinputdialog_p.h @@ -23,7 +23,7 @@ #include "staticdialogmethodattached_p.h" -#include +#include #include class DeclarativeInputDialogAttached : public StaticDialogMethodAttached diff --git a/lib/declarativeloaderwidget.cpp b/lib/declarativeloaderwidget.cpp index c0a4c53..7d18a7e 100644 --- a/lib/declarativeloaderwidget.cpp +++ b/lib/declarativeloaderwidget.cpp @@ -23,8 +23,8 @@ #include "abstractdeclarativeobject_p.h" #include -#include -#include +#include +#include #include class DeclarativeLoaderWidget::Private @@ -36,7 +36,7 @@ class DeclarativeLoaderWidget::Private public: QUrl source; - QDeclarativeComponent *component; + QQmlComponent *component; }; DeclarativeLoaderWidget::DeclarativeLoaderWidget(QWidget *parent) @@ -91,7 +91,7 @@ void DeclarativeLoaderWidget::updateDelegate() return; } - d->component = new QDeclarativeComponent(qmlEngine(this), d->source, this); + d->component = new QQmlComponent(qmlEngine(this), d->source, this); if (d->component->isLoading()) { connect(d->component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), this, SLOT(onStatusChanged())); return; @@ -103,7 +103,7 @@ void DeclarativeLoaderWidget::updateDelegate() void DeclarativeLoaderWidget::onStatusChanged() { if (d->component->isError()) { - foreach (const QDeclarativeError &error, d->component->errors()) { + foreach (const QQmlError &error, d->component->errors()) { qDebug() << error.toString(); } return; diff --git a/lib/declarativemessagebox_p.h b/lib/declarativemessagebox_p.h index bb9ccf4..757c5a5 100644 --- a/lib/declarativemessagebox_p.h +++ b/lib/declarativemessagebox_p.h @@ -23,7 +23,7 @@ #include "staticdialogmethodattached_p.h" -#include +#include #include class DeclarativeMessageBoxAttached : public StaticDialogMethodAttached diff --git a/lib/declarativeobjectproxy_p.h b/lib/declarativeobjectproxy_p.h index 2acabda..ae2eb90 100644 --- a/lib/declarativeobjectproxy_p.h +++ b/lib/declarativeobjectproxy_p.h @@ -75,55 +75,4 @@ class DeclarativeObjectProxy : public AbstractDeclarativeObject QVector m_children; }; -//TODO: Find a solution to make the macro public but the usage of QMetaObjectBuilder private - -#include "qmetaobjectbuilder_p.h" - -#define CUSTOM_METAOBJECT(ClassName, ProxyObjectType) \ -QMetaObject ClassName::staticMetaObject;\ -bool ClassName::metaObjectInitialized = ClassName::initializeMetaObject(); \ -bool ClassName::initializeMetaObject() \ -{ \ - QMetaObjectBuilder builder; \ - const QMetaObject *mo = &ProxyObjectType::staticMetaObject; \ - builder.addMetaObject(mo); \ - builder.addMetaObject(&AbstractDeclarativeObject::staticMetaObject); \ - builder.setSuperClass(ProxyObjectType::staticMetaObject.superClass()); \ - builder.setClassName(""#ClassName); \ - ClassName::staticMetaObject = *builder.toMetaObject(); \ - return true; \ -} \ -const QMetaObject &ClassName::getStaticMetaObject() \ -{ \ - return ClassName::staticMetaObject; \ -} \ -const QMetaObject* ClassName::metaObject() const \ -{ \ - return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; \ -} \ -void* ClassName::qt_metacast(const char*) \ -{ \ - return 0; \ -} \ -int ClassName::qt_metacall(QMetaObject::Call call, int id, void **argv) \ -{ \ - if (call == QMetaObject::ReadProperty || call == QMetaObject::WriteProperty) { \ - if (id >= ProxyObjectType::staticMetaObject.propertyCount()) { \ - id = AbstractDeclarativeObject::qt_metacall(call, id - ProxyObjectType::staticMetaObject.propertyCount() + 1, argv); \ - id += ProxyObjectType::staticMetaObject.propertyCount() - 1; \ - } else { \ - id = m_proxiedObject->qt_metacall(call, id, argv); \ - } \ - if (id < 0) \ - return 0; \ - } else if (call == QMetaObject::InvokeMetaMethod) {\ - if (ClassName::staticMetaObject.method(id).methodType() == QMetaMethod::Signal) \ - QMetaObject::activate(this, id, argv); \ - else \ - id = m_proxiedObject->qt_metacall(call, id, argv); \ - id -= 1; \ - } \ - return id; \ -} - #endif diff --git a/lib/declarativepixmap_p.h b/lib/declarativepixmap_p.h index 1fbb576..ec1adee 100644 --- a/lib/declarativepixmap_p.h +++ b/lib/declarativepixmap_p.h @@ -21,7 +21,7 @@ #ifndef DECLARATIVEPIXMAP_P_H #define DECLARATIVEPIXMAP_P_H -#include +#include #include #include #include diff --git a/lib/declarativestackedlayout.cpp b/lib/declarativestackedlayout.cpp index 63b2722..5a05db2 100644 --- a/lib/declarativestackedlayout.cpp +++ b/lib/declarativestackedlayout.cpp @@ -22,7 +22,7 @@ #include "layoutcontainerinterface_p.h" -#include +#include #include DeclarativeStackedLayout::DeclarativeStackedLayout(QObject *parent) diff --git a/lib/declarativestackedlayout_p.h b/lib/declarativestackedlayout_p.h index dace3ce..c226b79 100644 --- a/lib/declarativestackedlayout_p.h +++ b/lib/declarativestackedlayout_p.h @@ -23,7 +23,7 @@ #include "declarativelayoutextension.h" -#include +#include #include class DeclarativeStackedLayout : public QStackedLayout diff --git a/lib/declarativestatusbar.cpp b/lib/declarativestatusbar.cpp index bfd1104..c95b12e 100644 --- a/lib/declarativestatusbar.cpp +++ b/lib/declarativestatusbar.cpp @@ -20,7 +20,7 @@ #include "declarativestatusbar_p.h" -#include +#include class DeclarativeStatusBarAttached::Private { diff --git a/lib/declarativestatusbar_p.h b/lib/declarativestatusbar_p.h index f3b601a..148fc04 100644 --- a/lib/declarativestatusbar_p.h +++ b/lib/declarativestatusbar_p.h @@ -23,7 +23,7 @@ #include "defaultwidgetcontainer.h" -#include +#include #include class DeclarativeStatusBarAttached : public QObject diff --git a/lib/declarativetabwidget.cpp b/lib/declarativetabwidget.cpp index 4ad1e04..30270ed 100644 --- a/lib/declarativetabwidget.cpp +++ b/lib/declarativetabwidget.cpp @@ -20,7 +20,7 @@ #include "declarativetabwidget_p.h" -#include +#include #include class DeclarativeTabWidgetAttached::Private diff --git a/lib/declarativetabwidget_p.h b/lib/declarativetabwidget_p.h index 7c7ed16..391ee3f 100644 --- a/lib/declarativetabwidget_p.h +++ b/lib/declarativetabwidget_p.h @@ -23,7 +23,7 @@ #include "defaultwidgetcontainer.h" -#include +#include #include class DeclarativeTabWidgetAttached : public QObject diff --git a/lib/declarativevboxlayout.cpp b/lib/declarativevboxlayout.cpp index f7aee7e..66d3b5a 100644 --- a/lib/declarativevboxlayout.cpp +++ b/lib/declarativevboxlayout.cpp @@ -22,7 +22,7 @@ #include "layoutcontainerinterface_p.h" -#include +#include #include DeclarativeVBoxLayout::DeclarativeVBoxLayout(QObject *parent) diff --git a/lib/declarativevboxlayout_p.h b/lib/declarativevboxlayout_p.h index 540f2d0..bf36552 100644 --- a/lib/declarativevboxlayout_p.h +++ b/lib/declarativevboxlayout_p.h @@ -24,7 +24,7 @@ #include "declarativeboxlayout_p.h" #include "declarativelayoutextension.h" -#include +#include #include class DeclarativeVBoxLayout : public QVBoxLayout diff --git a/lib/declarativewidgetextension.cpp b/lib/declarativewidgetextension.cpp index 7b34a5d..93fefec 100644 --- a/lib/declarativewidgetextension.cpp +++ b/lib/declarativewidgetextension.cpp @@ -27,7 +27,7 @@ #include "widgetcontainerinterface_p.h" #include -#include +#include #include #include #include diff --git a/lib/declarativewidgetsdocument.cpp b/lib/declarativewidgetsdocument.cpp index a0ecea8..8e895cd 100644 --- a/lib/declarativewidgetsdocument.cpp +++ b/lib/declarativewidgetsdocument.cpp @@ -67,10 +67,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include @@ -85,6 +85,7 @@ #include #include #include +#include #include #include #include @@ -94,7 +95,7 @@ #include #include #include -#include +//#include class DeclarativeWidgetsDocument::Private { @@ -102,15 +103,15 @@ class DeclarativeWidgetsDocument::Private Private(DeclarativeWidgetsDocument *qq, const QUrl &url) : q(qq) , m_url(url) - , m_engine(new QDeclarativeEngine(q)) - , m_component(new QDeclarativeComponent(m_engine, q)) + , m_engine(new QQmlEngine(q)) + , m_component(new QQmlComponent(m_engine, q)) { } DeclarativeWidgetsDocument* q; QUrl m_url; - QDeclarativeEngine* m_engine; - QDeclarativeComponent* m_component; + QQmlEngine* m_engine; + QQmlComponent* m_component; }; DeclarativeWidgetsDocument::DeclarativeWidgetsDocument(const QUrl &url, QObject *parent) @@ -150,7 +151,7 @@ DeclarativeWidgetsDocument::DeclarativeWidgetsDocument(const QUrl &url, QObject qmlRegisterExtendedType("QtWidgets", 1, 0, "ComboBox"); qmlRegisterExtendedType("QtWidgets", 1, 0, "DateEdit"); qmlRegisterExtendedType("QtWidgets", 1, 0, "DateTimeEdit"); - qmlRegisterExtendedType("QtWidgets", 1, 0, "DeclarativeView"); + qmlRegisterExtendedType("QtWidgets", 1, 0, "DeclarativeView"); qmlRegisterExtendedType("QtWidgets", 1, 0, "Dial"); qmlRegisterExtendedType("QtWidgets", 1, 0, "Dialog"); qmlRegisterExtendedType("QtWidgets", 1, 0, "DialogButtonBox"); @@ -188,12 +189,13 @@ DeclarativeWidgetsDocument::DeclarativeWidgetsDocument(const QUrl &url, QObject qmlRegisterExtendedType >("QtWidgets", 1, 0, "ToolBar"); qmlRegisterExtendedType("QtWidgets", 1, 0, "ToolButton"); qmlRegisterExtendedType("QtWidgets", 1, 0, "TreeView"); - qmlRegisterExtendedType("QtWidgets", 1, 0, "WebView"); +// qmlRegisterExtendedType("QtWidgets", 1, 0, "WebView"); +#warning Need to reenable WebView (QtWebKit) qmlRegisterExtendedType("QtWidgets", 1, 0, "Widget"); d->m_component->loadUrl(d->m_url); if (d->m_component->isError()) { - foreach (const QDeclarativeError &error, d->m_component->errors()) + foreach (const QQmlError &error, d->m_component->errors()) qDebug() << error.toString(); } } @@ -213,7 +215,7 @@ void DeclarativeWidgetsDocument::setContextProperty(const QString &name, QObject d->m_engine->rootContext()->setContextProperty(name, object); } -QDeclarativeEngine* DeclarativeWidgetsDocument::engine() const +QQmlEngine* DeclarativeWidgetsDocument::engine() const { return d->m_engine; } diff --git a/lib/declarativewidgetsdocument.h b/lib/declarativewidgetsdocument.h index 5d39a93..2ac302a 100644 --- a/lib/declarativewidgetsdocument.h +++ b/lib/declarativewidgetsdocument.h @@ -24,7 +24,7 @@ #include #include -class QDeclarativeEngine; +class QQmlEngine; class DeclarativeWidgetsDocument : public QObject { @@ -37,7 +37,7 @@ class DeclarativeWidgetsDocument : public QObject void setContextProperty(const QString &name, const QVariant &value); void setContextProperty(const QString &name, QObject *object); - QDeclarativeEngine* engine() const; + QQmlEngine* engine() const; template T* create() diff --git a/lib/defaultwidgetcontainer.cpp b/lib/defaultwidgetcontainer.cpp index 2c346cf..57a696d 100644 --- a/lib/defaultwidgetcontainer.cpp +++ b/lib/defaultwidgetcontainer.cpp @@ -20,7 +20,7 @@ #include "defaultwidgetcontainer.h" -#include +#include #include #include diff --git a/lib/mainwindowwidgetcontainer.cpp b/lib/mainwindowwidgetcontainer.cpp index 98f849d..9cb3561 100644 --- a/lib/mainwindowwidgetcontainer.cpp +++ b/lib/mainwindowwidgetcontainer.cpp @@ -20,7 +20,7 @@ #include "mainwindowwidgetcontainer_p.h" -#include +#include #include #include #include diff --git a/lib/menubarwidgetcontainer.cpp b/lib/menubarwidgetcontainer.cpp index e5698d5..dedb580 100644 --- a/lib/menubarwidgetcontainer.cpp +++ b/lib/menubarwidgetcontainer.cpp @@ -20,7 +20,7 @@ #include "menubarwidgetcontainer_p.h" -#include +#include #include MenuBarWidgetContainer::MenuBarWidgetContainer(QObject *parent) diff --git a/lib/menuwidgetcontainer.cpp b/lib/menuwidgetcontainer.cpp index 16835a9..da9c731 100644 --- a/lib/menuwidgetcontainer.cpp +++ b/lib/menuwidgetcontainer.cpp @@ -20,7 +20,7 @@ #include "menuwidgetcontainer_p.h" -#include +#include #include MenuWidgetContainer::MenuWidgetContainer(QObject *parent) diff --git a/lib/objectadaptors.cpp b/lib/objectadaptors.cpp index 3e90b20..4dccb2b 100644 --- a/lib/objectadaptors.cpp +++ b/lib/objectadaptors.cpp @@ -24,10 +24,10 @@ #include #include -#include +#include // DeclarativeContext -DeclarativeContext::DeclarativeContext(QDeclarativeEngine *engine, QObject *parent) +DeclarativeContext::DeclarativeContext(QQmlEngine *engine, QObject *parent) : QObject(parent), m_context(new QDeclarativeContext(engine, parent)) { diff --git a/lib/qmetaobjectbuilder.cpp b/lib/qmetaobjectbuilder.cpp index ff4c97c..13f1377 100644 --- a/lib/qmetaobjectbuilder.cpp +++ b/lib/qmetaobjectbuilder.cpp @@ -264,11 +264,7 @@ public: QList classInfoNames; QList classInfoValues; QList enumerators; -#ifdef Q_NO_DATA_RELOCATION - QList relatedMetaObjects; -#else QList relatedMetaObjects; -#endif int flags; }; @@ -497,13 +493,13 @@ QMetaMethodBuilder QMetaObjectBuilder::addMethod(const QMetaMethod& prototype) { QMetaMethodBuilder method; if (prototype.methodType() == QMetaMethod::Method) - method = addMethod(prototype.signature()); + method = addMethod(prototype.methodSignature()); else if (prototype.methodType() == QMetaMethod::Signal) - method = addSignal(prototype.signature()); + method = addSignal(prototype.methodSignature()); else if (prototype.methodType() == QMetaMethod::Slot) - method = addSlot(prototype.signature()); + method = addSlot(prototype.methodSignature()); else if (prototype.methodType() == QMetaMethod::Constructor) - method = addConstructor(prototype.signature()); + method = addConstructor(prototype.methodSignature()); method.setReturnType(prototype.typeName()); method.setParameterNames(prototype.parameterNames()); method.setTag(prototype.tag()); @@ -573,7 +569,7 @@ QMetaMethodBuilder QMetaObjectBuilder::addConstructor(const QByteArray& signatur QMetaMethodBuilder QMetaObjectBuilder::addConstructor(const QMetaMethod& prototype) { Q_ASSERT(prototype.methodType() == QMetaMethod::Constructor); - QMetaMethodBuilder ctor = addConstructor(prototype.signature()); + QMetaMethodBuilder ctor = addConstructor(prototype.methodSignature()); ctor.setReturnType(prototype.typeName()); ctor.setParameterNames(prototype.parameterNames()); ctor.setTag(prototype.tag()); @@ -625,7 +621,7 @@ QMetaPropertyBuilder QMetaObjectBuilder::addProperty(const QMetaProperty& protot if (prototype.hasNotifySignal()) { // Find an existing method for the notify signal, or add a new one. QMetaMethod method = prototype.notifySignal(); - int index = indexOfMethod(method.signature()); + int index = indexOfMethod(method.methodSignature()); if (index == -1) index = addMethod(method).index(); d->properties[property._index].notifySignal = index; @@ -694,11 +690,7 @@ int QMetaObjectBuilder::addClassInfo(const QByteArray& name, const QByteArray& v \sa relatedMetaObjectCount(), relatedMetaObject() \sa removeRelatedMetaObject() */ -#ifdef Q_NO_DATA_RELOCATION -int QMetaObjectBuilder::addRelatedMetaObject(const QMetaObjectAccessor &meta) -#else int QMetaObjectBuilder::addRelatedMetaObject(const QMetaObject *meta) -#endif { Q_ASSERT(meta); int index = d->relatedMetaObjects.size(); @@ -771,21 +763,8 @@ void QMetaObjectBuilder::addMetaObject } if ((members & RelatedMetaObjects) != 0) { -#ifdef Q_NO_DATA_RELOCATION - const QMetaObjectAccessor *objects = 0; -#else const QMetaObject **objects; - if (priv(prototype->d.data)->revision < 2) { - objects = (const QMetaObject **)(prototype->d.extradata); - } else -#endif - { - const QMetaObjectExtraData *extra = (const QMetaObjectExtraData *)(prototype->d.extradata); - if (extra) - objects = extra->objects; - else - objects = 0; - } + objects = prototype->d.relatedMetaObjects; if (objects) { while (*objects != 0) { addRelatedMetaObject(*objects); @@ -795,12 +774,8 @@ void QMetaObjectBuilder::addMetaObject } if ((members & StaticMetacall) != 0) { - if (priv(prototype->d.data)->revision >= 6) { - const QMetaObjectExtraData *extra = - (const QMetaObjectExtraData *)(prototype->d.extradata); - if (extra && extra->static_metacall) - setStaticMetacallFunction(extra->static_metacall); - } + if (prototype->d.static_metacall) + setStaticMetacallFunction(prototype->d.static_metacall); } } @@ -870,11 +845,7 @@ QMetaEnumBuilder QMetaObjectBuilder::enumerator(int index) const const QMetaObject *QMetaObjectBuilder::relatedMetaObject(int index) const { if (index >= 0 && index < d->relatedMetaObjects.size()) -#ifdef Q_NO_DATA_RELOCATION - return &((*(d->relatedMetaObjects[index]))()); -#else return d->relatedMetaObjects[index]; -#endif else return 0; } @@ -1180,8 +1151,7 @@ static QByteArray buildParameterNames // If "buf" is null, then return the number of bytes needed to // build the QMetaObject. Returns -1 if the metaobject if // relocatable is set, but the metaobject contains extradata. -static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, - bool relocatable) +static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf) { int size = 0; int dataIndex; @@ -1189,16 +1159,12 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, int index; bool hasNotifySignals = false; - if (relocatable && - (d->relatedMetaObjects.size() > 0 || d->staticMetacallFunction)) - return -1; - // Create the main QMetaObject structure at the start of the buffer. QMetaObject *meta = reinterpret_cast(buf); size += sizeof(QMetaObject); ALIGN(size, int); if (buf) { - if (!relocatable) meta->d.superdata = d->superClass; + meta->d.superdata = d->superClass; meta->d.extradata = 0; } @@ -1264,13 +1230,8 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, size += dataIndex * sizeof(int); char *str = reinterpret_cast(buf + size); if (buf) { - if (relocatable) { - meta->d.stringdata = reinterpret_cast((quintptr)size); - meta->d.data = reinterpret_cast((quintptr)pmetaSize); - } else { - meta->d.stringdata = str; + meta->d.stringdata = QTypedArrayData::fromRawData(str,strlen(str)); meta->d.data = reinterpret_cast(data); - } } // Reset the current data position to just past the QMetaObjectPrivate. @@ -1401,7 +1362,7 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, // Output the zero terminator in the data array. if (buf) data[enumIndex] = 0; - +#if 0 // Create the extradata block if we need one. if (d->relatedMetaObjects.size() > 0 || d->staticMetacallFunction) { ALIGN(size, QMetaObject **); @@ -1410,13 +1371,8 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, reinterpret_cast(buf + size); size += sizeof(QMetaObjectExtraData); ALIGN(size, QMetaObject *); -#ifdef Q_NO_DATA_RELOCATION - QMetaObjectAccessor *objects = - reinterpret_cast(buf + size); -#else const QMetaObject **objects = reinterpret_cast(buf + size); -#endif if (buf) { if (d->relatedMetaObjects.size() > 0) { extra->objects = objects; @@ -1432,7 +1388,8 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, if (d->relatedMetaObjects.size() > 0) size += sizeof(QMetaObject *) * (d->relatedMetaObjects.size() + 1); } - +#endif +#warning OUCH! Need to rewrite toMetaObject method! // Align the final size and return it. ALIGN(size, void *); return size; @@ -1450,68 +1407,13 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, */ QMetaObject *QMetaObjectBuilder::toMetaObject() const { - int size = buildMetaObject(d, 0, false); - char *buf = reinterpret_cast(qMalloc(size)); + int size = buildMetaObject(d, 0); + char *buf = reinterpret_cast(malloc(size)); memset(buf, 0, size); - buildMetaObject(d, buf, false); + buildMetaObject(d, buf); return reinterpret_cast(buf); } -/* - \internal - - Converts this meta object builder into relocatable data. This data can - be stored, copied and later passed to fromRelocatableData() to create a - concrete QMetaObject. - - The data is specific to the architecture on which it was created, but is not - specific to the process that created it. Not all meta object builder's can - be converted to data in this way. If \a ok is provided, it will be set to - true if the conversion succeeds, and false otherwise. If a - staticMetacallFunction() or any relatedMetaObject()'s are specified the - conversion to relocatable data will fail. -*/ -QByteArray QMetaObjectBuilder::toRelocatableData(bool *ok) const -{ - int size = buildMetaObject(d, 0, true); - if (size == -1) { - if (ok) *ok = false; - return QByteArray(); - } - - QByteArray data; - data.resize(size); - char *buf = data.data(); - memset(buf, 0, size); - buildMetaObject(d, buf, true); - if (ok) *ok = true; - return data; -} - -/* - \internal - - Sets the \a data returned from toRelocatableData() onto a concrete - QMetaObject instance, \a output. As the meta object's super class is not - saved in the relocatable data, it must be passed as \a superClass. -*/ -void QMetaObjectBuilder::fromRelocatableData(QMetaObject *output, - const QMetaObject *superclass, - const QByteArray &data) -{ - if (!output) - return; - - const char *buf = data.constData(); - const QMetaObject *dataMo = reinterpret_cast(buf); - - quintptr stringdataOffset = (quintptr)dataMo->d.stringdata; - quintptr dataOffset = (quintptr)dataMo->d.data; - - output->d.superdata = superclass; - output->d.stringdata = buf + stringdataOffset; - output->d.data = reinterpret_cast(buf + dataOffset); -} /*! \typedef QMetaObjectBuilder::StaticMetacallFunction @@ -1615,14 +1517,10 @@ void QMetaObjectBuilder::serialize(QDataStream& stream) const } // Write the related meta objects. -#ifdef Q_NO_DATA_RELOCATION - //### What do we do here? -#else for (index = 0; index < d->relatedMetaObjects.size(); ++index) { const QMetaObject *meta = d->relatedMetaObjects[index]; stream << QByteArray(meta->className()); } -#endif // Add an extra empty QByteArray for additional data in future versions. // This should help maintain backwards compatibility, allowing older @@ -1795,9 +1693,6 @@ void QMetaObjectBuilder::deserialize } // Read the related meta objects. -#ifdef Q_NO_DATA_RELOCATION - //### What do we do here -#else for (index = 0; index < relatedMetaObjectCount; ++index) { if (stream.status() != QDataStream::Ok) return; @@ -1809,7 +1704,6 @@ void QMetaObjectBuilder::deserialize } addRelatedMetaObject(cl); } -#endif // Read the extra data block, which is reserved for future use. stream >> name; diff --git a/lib/qmetaobjectbuilder_p.h b/lib/qmetaobjectbuilder_p.h index ba9e3f8..c811ee9 100644 --- a/lib/qmetaobjectbuilder_p.h +++ b/lib/qmetaobjectbuilder_p.h @@ -135,11 +135,7 @@ public: int addClassInfo(const QByteArray& name, const QByteArray& value); -#ifdef Q_NO_DATA_RELOCATION - int addRelatedMetaObject(const QMetaObjectAccessor &meta); -#else int addRelatedMetaObject(const QMetaObject *meta); -#endif void addMetaObject(const QMetaObject *prototype, QMetaObjectBuilder::AddMembers members = AllMembers); @@ -174,8 +170,6 @@ public: void setStaticMetacallFunction(QMetaObjectBuilder::StaticMetacallFunction value); QMetaObject *toMetaObject() const; - QByteArray toRelocatableData(bool * = 0) const; - static void fromRelocatableData(QMetaObject *, const QMetaObject *, const QByteArray &); #ifndef QT_NO_DATASTREAM void serialize(QDataStream& stream) const; diff --git a/lib/scrollareawidgetcontainer.cpp b/lib/scrollareawidgetcontainer.cpp index c46f7a7..454c2bd 100644 --- a/lib/scrollareawidgetcontainer.cpp +++ b/lib/scrollareawidgetcontainer.cpp @@ -20,7 +20,7 @@ #include "scrollareawidgetcontainer_p.h" -#include +#include #include ScrollAreaWidgetContainer::ScrollAreaWidgetContainer(QObject *parent) diff --git a/lib/stackedwidgetwidgetcontainer.cpp b/lib/stackedwidgetwidgetcontainer.cpp index e0a8f60..52a7c4a 100644 --- a/lib/stackedwidgetwidgetcontainer.cpp +++ b/lib/stackedwidgetwidgetcontainer.cpp @@ -20,7 +20,7 @@ #include "stackedwidgetwidgetcontainer_p.h" -#include +#include #include StackedWidgetWidgetContainer::StackedWidgetWidgetContainer(QObject *parent) diff --git a/lib/toolbarwidgetcontainer.cpp b/lib/toolbarwidgetcontainer.cpp index c5ace89..b252e60 100644 --- a/lib/toolbarwidgetcontainer.cpp +++ b/lib/toolbarwidgetcontainer.cpp @@ -20,7 +20,7 @@ #include "toolbarwidgetcontainer_p.h" -#include +#include #include ToolBarWidgetContainer::ToolBarWidgetContainer(QObject *parent) diff --git a/main.cpp b/main.cpp index 95fa08c..7629f43 100644 --- a/main.cpp +++ b/main.cpp @@ -22,7 +22,7 @@ #include #include -#include +#include #include #include #include diff --git a/runner.pro b/runner.pro index a8c9cf2..fdfdc9f 100644 --- a/runner.pro +++ b/runner.pro @@ -7,7 +7,7 @@ macx:CONFIG -= app_bundle LIBS += -L lib -ldeclarativewidgets -QT += declarative +QT += qml widgets # Input SOURCES += \