Qt5 port compiles, but still crashes
authorKonrad Rosenbaum <konrad@silmor.de>
Thu, 31 Oct 2013 12:31:43 +0000 (13:31 +0100)
committerKonrad Rosenbaum <konrad@silmor.de>
Thu, 31 Oct 2013 12:31:43 +0000 (13:31 +0100)
51 files changed:
examples/bookstore/booklistproxymodel.cpp
examples/bookstore/bookstore.pro
examples/bookstore/main.cpp
examples/config-editor/config-editor.pro
examples/config-editor/configeditor.cpp
examples/config-editor/main.cpp
examples/text-editor/main.cpp
examples/text-editor/text-editor.pro
extensionplugin/extensionplugin.pro
extensionplugin/extensionplugin_plugin.cpp
extensionplugin/extensionplugin_plugin.h
lib/declarativedeclarativecontext.cpp
lib/declarativedeclarativeviewextension.cpp
lib/declarativedeclarativeviewextension_p.h
lib/declarativefiledialog_p.h
lib/declarativefontdialog_p.h
lib/declarativeformlayout.cpp
lib/declarativeformlayout_p.h
lib/declarativegridlayout.cpp
lib/declarativegridlayout_p.h
lib/declarativehboxlayout.cpp
lib/declarativehboxlayout_p.h
lib/declarativeicon_p.h
lib/declarativeinputdialog_p.h
lib/declarativeloaderwidget.cpp
lib/declarativemessagebox_p.h
lib/declarativeobjectproxy_p.h
lib/declarativepixmap_p.h
lib/declarativestackedlayout.cpp
lib/declarativestackedlayout_p.h
lib/declarativestatusbar.cpp
lib/declarativestatusbar_p.h
lib/declarativetabwidget.cpp
lib/declarativetabwidget_p.h
lib/declarativevboxlayout.cpp
lib/declarativevboxlayout_p.h
lib/declarativewidgetextension.cpp
lib/declarativewidgetsdocument.cpp
lib/declarativewidgetsdocument.h
lib/defaultwidgetcontainer.cpp
lib/mainwindowwidgetcontainer.cpp
lib/menubarwidgetcontainer.cpp
lib/menuwidgetcontainer.cpp
lib/objectadaptors.cpp
lib/qmetaobjectbuilder.cpp
lib/qmetaobjectbuilder_p.h
lib/scrollareawidgetcontainer.cpp
lib/stackedwidgetwidgetcontainer.cpp
lib/toolbarwidgetcontainer.cpp
main.cpp
runner.pro

index f36b4ef..cd525dd 100644 (file)
@@ -50,7 +50,8 @@ void BookListProxyModel::addColumnToRoleMapping(int column, int role)
 
   QHash<int, QByteArray> 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
index 68f01fb..55007d2 100644 (file)
@@ -4,7 +4,7 @@ INCLUDEPATH += . ../../lib
 
 LIBS += -L ../../lib -ldeclarativewidgets
 
-QT += declarative sql
+QT += qml widgets quick sql
 
 SOURCES += \
     main.cpp \
index 8bdb974..c67c423 100644 (file)
@@ -24,9 +24,9 @@
 
 #include <QApplication>
 #include <QDebug>
-#include <QDeclarativeContext>
-#include <QDeclarativeEngine>
-#include <QDeclarativeView>
+#include <QQmlContext>
+#include <QQmlEngine>
+#include <QQuickView>
 #include <QWidget>
 
 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();
 }
index 8c5beea..88e175f 100644 (file)
@@ -4,7 +4,7 @@ INCLUDEPATH += . ../../lib
 
 LIBS += -L ../../lib -ldeclarativewidgets
 
-QT += declarative
+QT += qml widgets
 
 TARGET = config-editor
 
index 821677e..61d6e31 100644 (file)
@@ -4,6 +4,7 @@
 
 #include <QDebug>
 #include <QDesktopServices>
+#include <QStandardPaths>
 #include <QDir>
 #include <QFile>
 #include <QFileInfo>
@@ -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);
index 5a082be..2807087 100644 (file)
@@ -3,7 +3,7 @@
 #include "declarativewidgetsdocument.h"
 
 #include <QApplication>
-#include <QDeclarativeEngine>
+#include <QQmlEngine>
 #include <QWidget>
 
 int main(int argc, char *argv[])
index b57e5a3..5ad0f54 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <QApplication>
 #include <QDebug>
-#include <QDeclarativeEngine>
+#include <QQmlEngine>
 #include <QWidget>
 
 int main(int argc, char **argv)
index c410879..09ca836 100644 (file)
@@ -5,7 +5,7 @@ INCLUDEPATH += . ../../lib
 
 LIBS += -L ../../lib -ldeclarativewidgets
 
-QT += declarative
+QT += qml widgets
 
 # Input
 SOURCES += \
index 8d851da..01bfe91 100644 (file)
@@ -1,6 +1,7 @@
 TEMPLATE = lib
 TARGET = declarativewidgetsplugin
-QT += declarative webkit
+QT += qml quick widgets
+# QT += webkit
 CONFIG += qt plugin
 
 TARGET = $$qtLibraryTarget($$TARGET)
index 05f2f05..6bb92f9 100644 (file)
@@ -62,7 +62,7 @@
 #include <QComboBox>
 #include <QCommandLinkButton>
 #include <QDateTimeEdit>
-#include <QDeclarativeView>
+#include <QQuickView>
 #include <QDial>
 #include <QDialogButtonBox>
 #include <QDoubleSpinBox>
@@ -77,6 +77,7 @@
 #include <QPlainTextEdit>
 #include <QProgressBar>
 #include <QRadioButton>
+#include <QScrollArea>
 #include <QScrollBar>
 #include <QStackedWidget>
 #include <QStringListModel>
@@ -86,9 +87,9 @@
 #include <QToolBar>
 #include <QToolButton>
 #include <QTreeView>
-#include <QWebView>
+// #include <QWebView>
 
-#include <qdeclarative.h>
+#include <qqml.h>
 
 // @uri QtWidgets
 void ExtensionpluginPlugin::registerTypes(const char *uri)
@@ -125,7 +126,7 @@ void ExtensionpluginPlugin::registerTypes(const char *uri)
   qmlRegisterExtendedType<QComboBox, DeclarativeComboBoxExtension>(uri, 1, 0, "ComboBox");
   qmlRegisterExtendedType<QDateEdit, DeclarativeWidgetExtension>(uri, 1, 0, "DateEdit");
   qmlRegisterExtendedType<QDateTimeEdit, DeclarativeWidgetExtension>(uri, 1, 0, "DateTimeEdit");
-  qmlRegisterExtendedType<QDeclarativeView, DeclarativeDeclarativeViewExtension>(uri, 1, 0, "DeclarativeView");
+  qmlRegisterExtendedType<QQuickView, DeclarativeDeclarativeViewExtension>(uri, 1, 0, "DeclarativeView");
   qmlRegisterExtendedType<QDial, DeclarativeWidgetExtension>(uri, 1, 0, "Dial");
   qmlRegisterExtendedType<Dialog, DeclarativeWidgetExtension>(uri, 1, 0, "Dialog");
   qmlRegisterExtendedType<QDialogButtonBox, DeclarativeWidgetExtension>(uri, 1, 0, "DialogButtonBox");
@@ -162,9 +163,8 @@ void ExtensionpluginPlugin::registerTypes(const char *uri)
   qmlRegisterExtendedType<QToolBar, DeclarativeContainerWidgetExtension<ToolBarWidgetContainer> >(uri, 1, 0, "ToolBar");
   qmlRegisterExtendedType<QToolButton, DeclarativeWidgetExtension>(uri, 1, 0, "ToolButton");
   qmlRegisterExtendedType<QTreeView, DeclarativeTreeViewExtension>(uri, 1, 0, "TreeView");
-  qmlRegisterExtendedType<QWebView, DeclarativeWidgetExtension>(uri, 1, 0, "WebView");
+//  qmlRegisterExtendedType<QWebView, DeclarativeWidgetExtension>(uri, 1, 0, "WebView");
+#warning Need to reenable WebKit
   qmlRegisterExtendedType<QWidget, DeclarativeWidgetExtension>(uri, 1, 0, "Widget");
 }
 
-Q_EXPORT_PLUGIN2(Extensionplugin, ExtensionpluginPlugin)
-
index 2f9f3c9..03f2cfc 100644 (file)
 #ifndef EXTENSIONPLUGIN_PLUGIN_H
 #define EXTENSIONPLUGIN_PLUGIN_H
 
-#include <QDeclarativeExtensionPlugin>
+#include <QQmlExtensionPlugin>
 
-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);
index eeb257f..a2afef4 100644 (file)
@@ -66,4 +66,59 @@ void DeclarativeDeclarativeContext::dataAppend(QObject *object)
   DeclarativeObjectProxy<DeclarativeContext>::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; 
+}
index 6cdd25f..2b40e83 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "declarativedeclarativecontext_p.h"
 
-#include <QDeclarativeView>
+#include <QQuickView>
 
 DeclarativeDeclarativeViewExtension::DeclarativeDeclarativeViewExtension(QObject *parent)
   : DeclarativeWidgetExtension(parent)
@@ -33,9 +33,9 @@ DeclarativeDeclarativeViewExtension::~DeclarativeDeclarativeViewExtension()
 {
 }
 
-QDeclarativeView *DeclarativeDeclarativeViewExtension::extendedDeclarativeView() const
+QQuickView *DeclarativeDeclarativeViewExtension::extendedDeclarativeView() const
 {
-  QDeclarativeView *declarativeView = qobject_cast<QDeclarativeView*>(extendedWidget());
+  QQuickView *declarativeView = qobject_cast<QQuickView*>(extendedWidget());
   Q_ASSERT(declarativeView);
 
   return declarativeView;
index c002dff..86a0fec 100644 (file)
@@ -26,7 +26,7 @@
 #include <QPointer>
 
 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;
index ce5e192..40cc243 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "staticdialogmethodattached_p.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QFileDialog>
 
 class DeclarativeFileDialogAttached : public StaticDialogMethodAttached
index 5250df4..b7858b5 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "staticdialogmethodattached_p.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QFontDialog>
 
 class DeclarativeFontDialogAttached : public StaticDialogMethodAttached
index a9900f8..c11b1ec 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "layoutcontainerinterface_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QLabel>
 #include <QPointer>
 
index 5eec240..31df907 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "declarativelayoutextension.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QFormLayout>
 
 class DeclarativeFormLayoutAttached : public QObject
index 72d7e5a..c4c028c 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "layoutcontainerinterface_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QPointer>
 #include <QWidget>
 
index b49edc1..ab56812 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "declarativelayoutextension.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QGridLayout>
 
 class DeclarativeGridLayoutAttached : public QObject
index 0cb1ed1..aae82d6 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "layoutcontainerinterface_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QWidget>
 
 DeclarativeHBoxLayout::DeclarativeHBoxLayout(QObject *parent)
index bd87eec..368dfc4 100644 (file)
@@ -24,7 +24,7 @@
 #include "declarativeboxlayout_p.h"
 #include "declarativelayoutextension.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QHBoxLayout>
 
 class DeclarativeHBoxLayout : public QHBoxLayout
index b5ec14c..e80afb6 100644 (file)
@@ -21,7 +21,7 @@
 #ifndef DECLARATIVEICON_P_H
 #define DECLARATIVEICON_P_H
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QIcon>
 #include <QObject>
 #include <QStringList>
index 925e4d9..afd3764 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "staticdialogmethodattached_p.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QInputDialog>
 
 class DeclarativeInputDialogAttached : public StaticDialogMethodAttached
index c0a4c53..7d18a7e 100644 (file)
@@ -23,8 +23,8 @@
 #include "abstractdeclarativeobject_p.h"
 
 #include <QDebug>
-#include <qdeclarative.h>
-#include <QDeclarativeComponent>
+#include <qqml.h>
+#include <QQmlComponent>
 #include <QVBoxLayout>
 
 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;
index bb9ccf4..757c5a5 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "staticdialogmethodattached_p.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QMessageBox>
 
 class DeclarativeMessageBoxAttached : public StaticDialogMethodAttached
index 2acabda..ae2eb90 100644 (file)
@@ -75,55 +75,4 @@ class DeclarativeObjectProxy : public AbstractDeclarativeObject
     QVector<QObject*> 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
index 1fbb576..ec1adee 100644 (file)
@@ -21,7 +21,7 @@
 #ifndef DECLARATIVEPIXMAP_P_H
 #define DECLARATIVEPIXMAP_P_H
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QPixmap>
 #include <QObject>
 #include <QStringList>
index 63b2722..5a05db2 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "layoutcontainerinterface_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QWidget>
 
 DeclarativeStackedLayout::DeclarativeStackedLayout(QObject *parent)
index dace3ce..c226b79 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "declarativelayoutextension.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QStackedLayout>
 
 class DeclarativeStackedLayout : public QStackedLayout
index bfd1104..c95b12e 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "declarativestatusbar_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 
 class DeclarativeStatusBarAttached::Private
 {
index f3b601a..148fc04 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "defaultwidgetcontainer.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QStatusBar>
 
 class DeclarativeStatusBarAttached : public QObject
index 4ad1e04..30270ed 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "declarativetabwidget_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QPointer>
 
 class DeclarativeTabWidgetAttached::Private
index 7c7ed16..391ee3f 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "defaultwidgetcontainer.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QTabWidget>
 
 class DeclarativeTabWidgetAttached : public QObject
index f7aee7e..66d3b5a 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "layoutcontainerinterface_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QWidget>
 
 DeclarativeVBoxLayout::DeclarativeVBoxLayout(QObject *parent)
index 540f2d0..bf36552 100644 (file)
@@ -24,7 +24,7 @@
 #include "declarativeboxlayout_p.h"
 #include "declarativelayoutextension.h"
 
-#include <qdeclarative.h>
+#include <qqml.h>
 #include <QVBoxLayout>
 
 class DeclarativeVBoxLayout : public QVBoxLayout
index 7b34a5d..93fefec 100644 (file)
@@ -27,7 +27,7 @@
 #include "widgetcontainerinterface_p.h"
 
 #include <QAction>
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QEvent>
 #include <QLayout>
 #include <QWidget>
index a0ecea8..8e895cd 100644 (file)
 #include <QCoreApplication>
 #include <QDateTimeEdit>
 #include <QDebug>
-#include <QDeclarativeView>
-#include <QDeclarativeComponent>
-#include <QDeclarativeContext>
-#include <QDeclarativeEngine>
+#include <QQuickView>
+#include <QQmlComponent>
+#include <QQmlContext>
+#include <QQmlEngine>
 #include <QDial>
 #include <QDialogButtonBox>
 #include <QDoubleSpinBox>
@@ -85,6 +85,7 @@
 #include <QPlainTextEdit>
 #include <QProgressBar>
 #include <QRadioButton>
+#include <QScrollArea>
 #include <QScrollBar>
 #include <QStackedWidget>
 #include <QStringListModel>
@@ -94,7 +95,7 @@
 #include <QToolBar>
 #include <QToolButton>
 #include <QTreeView>
-#include <QWebView>
+//#include <QWebView>
 
 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<QComboBox, DeclarativeComboBoxExtension>("QtWidgets", 1, 0, "ComboBox");
   qmlRegisterExtendedType<QDateEdit, DeclarativeWidgetExtension>("QtWidgets", 1, 0, "DateEdit");
   qmlRegisterExtendedType<QDateTimeEdit, DeclarativeWidgetExtension>("QtWidgets", 1, 0, "DateTimeEdit");
-  qmlRegisterExtendedType<QDeclarativeView, DeclarativeDeclarativeViewExtension>("QtWidgets", 1, 0, "DeclarativeView");
+  qmlRegisterExtendedType<QQuickView, DeclarativeDeclarativeViewExtension>("QtWidgets", 1, 0, "DeclarativeView");
   qmlRegisterExtendedType<QDial, DeclarativeWidgetExtension>("QtWidgets", 1, 0, "Dial");
   qmlRegisterExtendedType<Dialog, DeclarativeWidgetExtension>("QtWidgets", 1, 0, "Dialog");
   qmlRegisterExtendedType<QDialogButtonBox, DeclarativeWidgetExtension>("QtWidgets", 1, 0, "DialogButtonBox");
@@ -188,12 +189,13 @@ DeclarativeWidgetsDocument::DeclarativeWidgetsDocument(const QUrl &url, QObject
   qmlRegisterExtendedType<QToolBar, DeclarativeContainerWidgetExtension<ToolBarWidgetContainer> >("QtWidgets", 1, 0, "ToolBar");
   qmlRegisterExtendedType<QToolButton, DeclarativeWidgetExtension>("QtWidgets", 1, 0, "ToolButton");
   qmlRegisterExtendedType<QTreeView, DeclarativeTreeViewExtension>("QtWidgets", 1, 0, "TreeView");
-  qmlRegisterExtendedType<QWebView, DeclarativeWidgetExtension>("QtWidgets", 1, 0, "WebView");
+//  qmlRegisterExtendedType<QWebView, DeclarativeWidgetExtension>("QtWidgets", 1, 0, "WebView");
+#warning Need to reenable WebView (QtWebKit)
   qmlRegisterExtendedType<QWidget, DeclarativeWidgetExtension>("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;
 }
index 5d39a93..2ac302a 100644 (file)
@@ -24,7 +24,7 @@
 #include <QObject>
 #include <QUrl>
 
-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 <typename T>
     T* create()
index 2c346cf..57a696d 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "defaultwidgetcontainer.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QLayout>
 #include <QWidget>
 
index 98f849d..9cb3561 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "mainwindowwidgetcontainer_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QDialog>
 #include <QMainWindow>
 #include <QMenuBar>
index e5698d5..dedb580 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "menubarwidgetcontainer_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QMenuBar>
 
 MenuBarWidgetContainer::MenuBarWidgetContainer(QObject *parent)
index 16835a9..da9c731 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "menuwidgetcontainer_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QMenu>
 
 MenuWidgetContainer::MenuWidgetContainer(QObject *parent)
index 3e90b20..4dccb2b 100644 (file)
 
 #include <QAbstractButton>
 #include <QDebug>
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 
 // DeclarativeContext
-DeclarativeContext::DeclarativeContext(QDeclarativeEngine *engine, QObject *parent)
+DeclarativeContext::DeclarativeContext(QQmlEngine *engine, QObject *parent)
   : QObject(parent),
     m_context(new QDeclarativeContext(engine, parent))
 {
index ff4c97c..13f1377 100644 (file)
@@ -264,11 +264,7 @@ public:
     QList<QByteArray> classInfoNames;
     QList<QByteArray> classInfoValues;
     QList<QMetaEnumBuilderPrivate> enumerators;
-#ifdef Q_NO_DATA_RELOCATION
-    QList<QMetaObjectAccessor> relatedMetaObjects;
-#else
     QList<const QMetaObject *> 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<QMetaObject *>(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<char *>(buf + size);
     if (buf) {
-        if (relocatable) {
-            meta->d.stringdata = reinterpret_cast<const char *>((quintptr)size);
-            meta->d.data = reinterpret_cast<uint *>((quintptr)pmetaSize);
-        } else {
-            meta->d.stringdata = str;
+            meta->d.stringdata = QTypedArrayData<char>::fromRawData(str,strlen(str));
             meta->d.data = reinterpret_cast<uint *>(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<QMetaObjectExtraData *>(buf + size);
         size += sizeof(QMetaObjectExtraData);
         ALIGN(size, QMetaObject *);
-#ifdef Q_NO_DATA_RELOCATION
-        QMetaObjectAccessor *objects =
-            reinterpret_cast<QMetaObjectAccessor *>(buf + size);
-#else
         const QMetaObject **objects =
             reinterpret_cast<const QMetaObject **>(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<char *>(qMalloc(size));
+    int size = buildMetaObject(d, 0);
+    char *buf = reinterpret_cast<char *>(malloc(size));
     memset(buf, 0, size);
-    buildMetaObject(d, buf, false);
+    buildMetaObject(d, buf);
     return reinterpret_cast<QMetaObject *>(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<const QMetaObject *>(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<const uint *>(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;
index ba9e3f8..c811ee9 100644 (file)
@@ -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;
index c46f7a7..454c2bd 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "scrollareawidgetcontainer_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QScrollArea>
 
 ScrollAreaWidgetContainer::ScrollAreaWidgetContainer(QObject *parent)
index e0a8f60..52a7c4a 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "stackedwidgetwidgetcontainer_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QStackedWidget>
 
 StackedWidgetWidgetContainer::StackedWidgetWidgetContainer(QObject *parent)
index c5ace89..b252e60 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "toolbarwidgetcontainer_p.h"
 
-#include <QDeclarativeInfo>
+#include <QQmlInfo>
 #include <QToolBar>
 
 ToolBarWidgetContainer::ToolBarWidgetContainer(QObject *parent)
index 95fa08c..7629f43 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -22,7 +22,7 @@
 
 #include <QApplication>
 #include <QDebug>
-#include <QDeclarativeEngine>
+#include <QQmlEngine>
 #include <QDir>
 #include <QFileInfo>
 #include <QWidget>
index a8c9cf2..fdfdc9f 100644 (file)
@@ -7,7 +7,7 @@ macx:CONFIG -= app_bundle
 
 LIBS += -L lib -ldeclarativewidgets
 
-QT += declarative
+QT += qml widgets
 
 # Input
 SOURCES += \