#include "DOtherSide/DOtherSide.h" #include #include #include #include #include #include #include #include #include #include #include #include "DOtherSide/DOtherSideTypesCpp.h" #include "DOtherSide/OnSlotExecutedHandler.h" #include "DOtherSide/DosQMetaObject.h" #include "DOtherSide/DosQObject.h" #include "DOtherSide/DosQObjectImpl.h" #include "DOtherSide/DosQAbstractItemModel.h" #include "DOtherSide/DosQDeclarative.h" char *convert_to_cstring(const QByteArray &array) { return qstrdup(array.data()); } char *convert_to_cstring(const QString &source) { return convert_to_cstring(source.toUtf8()); } char *dos_qcoreapplication_application_dir_path() { return convert_to_cstring(QCoreApplication::applicationDirPath()); } void dos_qguiapplication_create() { static int argc = 1; static char empty[1] = {0}; static char *argv[] = {empty}; new QGuiApplication(argc, argv); } void dos_qguiapplication_delete() { delete qGuiApp; } void dos_qguiapplication_exec() { qGuiApp->exec(); } void dos_qguiapplication_quit() { qGuiApp->quit(); } void dos_qapplication_create() { static int argc = 1; static char empty[1] = {0}; static char *argv[] = {empty}; new QApplication(argc, argv); } void dos_qapplication_delete() { delete qApp; } void dos_qapplication_exec() { qApp->exec(); } void dos_qapplication_quit() { qApp->quit(); } ::DosQQmlApplicationEngine *dos_qqmlapplicationengine_create() { return new QQmlApplicationEngine(); } void dos_qqmlapplicationengine_load(::DosQQmlApplicationEngine *vptr, const char *filename) { auto engine = static_cast(vptr); engine->load(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QDir::separator() + QString(filename))); } void dos_qqmlapplicationengine_load_url(::DosQQmlApplicationEngine *vptr, ::DosQUrl *url) { auto engine = static_cast(vptr); auto qurl = static_cast(url); engine->load(*qurl); } void dos_qqmlapplicationengine_load_data(::DosQQmlApplicationEngine *vptr, const char *data) { auto engine = static_cast(vptr); engine->loadData(data); } void dos_qqmlapplicationengine_add_import_path(::DosQQmlApplicationEngine *vptr, const char *path) { auto engine = static_cast(vptr); engine->addImportPath(QString(path)); } ::DosQQmlContext *dos_qqmlapplicationengine_context(::DosQQmlApplicationEngine *vptr) { auto engine = static_cast(vptr); engine->rootContext(); return engine->rootContext(); } void dos_qqmlapplicationengine_delete(::DosQQmlApplicationEngine *vptr) { auto engine = static_cast(vptr); delete engine; } ::DosQQuickView *dos_qquickview_create() { return new QQuickView(); } void dos_qquickview_show(::DosQQuickView *vptr) { auto view = static_cast(vptr); view->show(); } void dos_qquickview_delete(::DosQQuickView *vptr) { auto view = static_cast(vptr); delete view; } char *dos_qquickview_source(const ::DosQQuickView *vptr) { auto view = static_cast(vptr); QUrl url = view->source(); return convert_to_cstring(url.toString()); } void dos_qquickview_set_source(::DosQQuickView *vptr, const char *filename) { auto view = static_cast(vptr); view->setSource(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QDir::separator() + QString(filename))); } void dos_qquickview_set_source_url(::DosQQuickView *vptr, ::DosQUrl *url) { auto view = static_cast(vptr); auto _url = static_cast(url); view->setSource(*_url); } void dos_qquickview_set_resize_mode(::DosQQuickView *vptr, int resizeMode) { auto view = static_cast(vptr); view->setResizeMode((QQuickView::ResizeMode) resizeMode); } ::DosQQmlContext *dos_qquickview_rootContext(::DosQQuickView *vptr) { auto view = static_cast(vptr); return view->rootContext(); } void dos_chararray_delete(char *ptr) { if (ptr) delete[] ptr; } void dos_qvariantarray_delete(DosQVariantArray *ptr) { if (!ptr || !ptr->data) return; // Delete each variant for (int i = 0; i < ptr->size; ++i) dos_qvariant_delete(ptr->data[i]); // Delete the array delete[] ptr->data; ptr->data = nullptr; ptr->size = 0; // Delete the wrapped struct delete ptr; } char *dos_qqmlcontext_baseUrl(const ::DosQQmlContext *vptr) { auto context = static_cast(vptr); QUrl url = context->baseUrl(); return convert_to_cstring(url.toString()); } void dos_qqmlcontext_setcontextproperty(::DosQQmlContext *vptr, const char *name, ::DosQVariant *value) { auto context = static_cast(vptr); auto variant = static_cast(value); context->setContextProperty(QString::fromUtf8(name), *variant); } ::DosQVariant *dos_qvariant_create() { return new QVariant(); } ::DosQVariant *dos_qvariant_create_int(int value) { return new QVariant(value); } ::DosQVariant *dos_qvariant_create_bool(bool value) { return new QVariant(value); } ::DosQVariant *dos_qvariant_create_string(const char *value) { return new QVariant(value); } ::DosQVariant *dos_qvariant_create_qvariant(const ::DosQVariant *other) { auto otherQVariant = static_cast(other); auto result = new QVariant(); *result = *otherQVariant; return result; } ::DosQVariant *dos_qvariant_create_qobject(::DosQObject *value) { auto qobject = static_cast(value); auto result = new QVariant(); result->setValue(qobject); return result; } ::DosQVariant *dos_qvariant_create_float(float value) { return new QVariant(value); } ::DosQVariant *dos_qvariant_create_double(double value) { return new QVariant(value); } ::DosQVariant *dos_qvariant_create_array(int size, ::DosQVariant** array) { QList data; data.reserve(size); for (int i = 0; i < size; ++i) data << *(static_cast(array[i])); return new QVariant(data); } bool dos_qvariant_isnull(const DosQVariant *vptr) { auto variant = static_cast(vptr); return variant->isNull(); } void dos_qvariant_delete(::DosQVariant *vptr) { auto variant = static_cast(vptr); delete variant; } void dos_qvariant_assign(::DosQVariant *vptr, const DosQVariant *other) { auto leftQVariant = static_cast(vptr); auto rightQVariant = static_cast(other); *leftQVariant = *rightQVariant; } int dos_qvariant_toInt(const ::DosQVariant *vptr) { auto variant = static_cast(vptr); return variant->toInt(); } bool dos_qvariant_toBool(const ::DosQVariant *vptr) { auto variant = static_cast(vptr); return variant->toBool(); } float dos_qvariant_toFloat(const DosQVariant *vptr) { auto variant = static_cast(vptr); return variant->toFloat(); } double dos_qvariant_toDouble(const DosQVariant *vptr) { auto variant = static_cast(vptr); return variant->toDouble(); } char *dos_qvariant_toString(const DosQVariant *vptr) { auto variant = static_cast(vptr); return convert_to_cstring(variant->toString()); } DosQVariantArray *dos_qvariant_toArray(const DosQVariant *vptr) { auto variant = static_cast(vptr); QVariantList data = variant->toList(); auto result = new DosQVariantArray(); result->size = data.size(); result->data = new DosQVariant*[result->size]; for (int i = 0; i < result->size; ++i) result->data[i] = new QVariant(data[i]); return result; } ::DosQObject *dos_qvariant_toQObject(const DosQVariant *vptr) { auto variant = static_cast(vptr); return variant->value(); } void dos_qvariant_setInt(::DosQVariant *vptr, int value) { auto variant = static_cast(vptr); *variant = value; } void dos_qvariant_setBool(::DosQVariant *vptr, bool value) { auto variant = static_cast(vptr); *variant = value; } void dos_qvariant_setFloat(::DosQVariant *vptr, float value) { auto variant = static_cast(vptr); *variant = value; } void dos_qvariant_setDouble(::DosQVariant *vptr, double value) { auto variant = static_cast(vptr); *variant = value; } void dos_qvariant_setString(::DosQVariant *vptr, const char *value) { auto variant = static_cast(vptr); *variant = value; } void dos_qvariant_setQObject(::DosQVariant *vptr, ::DosQObject *value) { auto variant = static_cast(vptr); auto qobject = static_cast(value); variant->setValue(qobject); } void dos_qvariant_setArray(::DosQVariant *vptr, int size, ::DosQVariant **array) { auto variant = static_cast(vptr); QVariantList data; data.reserve(size); for (int i = 0; i < size; ++i) data << *(static_cast(array[i])); variant->setValue(data); } ::DosQMetaObject *dos_qobject_qmetaobject() { return new DOS::DosIQMetaObjectHolder(std::make_shared()); } ::DosQObject *dos_qobject_create(void *dObjectPointer, ::DosQMetaObject *metaObject, ::DObjectCallback dObjectCallback) { auto metaObjectHolder = static_cast(metaObject); auto dosQObject = new DOS::DosQObject(metaObjectHolder->data(), DOS::OnSlotExecutedHandler(dObjectPointer, dObjectCallback)); QQmlEngine::setObjectOwnership(dosQObject, QQmlEngine::CppOwnership); return static_cast(dosQObject); } void dos_qobject_delete(::DosQObject *vptr) { auto qobject = static_cast(vptr); qobject->disconnect(); delete qobject; } void dos_qobject_signal_emit(::DosQObject *vptr, const char *name, int parametersCount, void **parameters) { auto qobject = static_cast(vptr); auto dynamicQObject = dynamic_cast(qobject); auto transformation = [](void *vptr)->QVariant{return *(static_cast(vptr));}; const std::vector variants = DOS::toVector(parameters, parametersCount, transformation); dynamicQObject->emitSignal(qobject, QString::fromStdString(name), variants); } bool dos_qobject_signal_connect(::DosQObject *senderVPtr, const char *signal, ::DosQObject *receiverVPtr, const char *method, int type) { auto sender = static_cast(senderVPtr); auto receiver = static_cast(receiverVPtr); return QObject::connect(sender, signal, receiver, method, (Qt::ConnectionType) type); } bool dos_qobject_signal_disconnect(::DosQObject *senderVPtr, const char *signal, ::DosQObject *receiverVPtr, const char *method) { auto sender = static_cast(senderVPtr); auto receiver = static_cast(receiverVPtr); return QObject::disconnect(sender, signal, receiver, method); } char *dos_qobject_objectName(const ::DosQObject *vptr) { auto object = static_cast(vptr); return convert_to_cstring(object->objectName()); } void dos_qobject_setObjectName(::DosQObject *vptr, const char *name) { auto object = static_cast(vptr); object->setObjectName(QString::fromUtf8(name)); } ::DosQModelIndex *dos_qmodelindex_create() { return new QModelIndex(); } ::DosQModelIndex *dos_qmodelindex_create_qmodelindex(::DosQModelIndex *other_vptr) { auto other = static_cast(other_vptr); return new QModelIndex(*other); } void dos_qmodelindex_delete(::DosQModelIndex *vptr) { auto index = static_cast(vptr); delete index; } int dos_qmodelindex_row(const ::DosQModelIndex *vptr) { auto index = static_cast(vptr); return index->row(); } int dos_qmodelindex_column(const ::DosQModelIndex *vptr) { auto index = static_cast(vptr); return index->column(); } bool dos_qmodelindex_isValid(const ::DosQModelIndex *vptr) { auto index = static_cast(vptr); return index->isValid(); } ::DosQVariant *dos_qmodelindex_data(const ::DosQModelIndex *vptr, int role) { auto index = static_cast(vptr); auto result = new QVariant(index->data(role)); return static_cast(result); } ::DosQModelIndex *dos_qmodelindex_parent(const ::DosQModelIndex *vptr) { auto index = static_cast(vptr); auto result = new QModelIndex(index->parent()); return static_cast(result); } ::DosQModelIndex *dos_qmodelindex_child(const ::DosQModelIndex *vptr, int row, int column) { auto index = static_cast(vptr); auto result = new QModelIndex(index->child(row, column)); return static_cast(result); } ::DosQModelIndex *dos_qmodelindex_sibling(const ::DosQModelIndex *vptr, int row, int column) { auto index = static_cast(vptr); auto result = new QModelIndex(index->sibling(row, column)); return static_cast(result); } void dos_qmodelindex_assign(::DosQModelIndex *l, const ::DosQModelIndex *r) { auto li = static_cast(l); auto ri = static_cast(r); *li = *ri; } ::DosQHashIntQByteArray *dos_qhash_int_qbytearray_create() { return new QHash(); } void dos_qhash_int_qbytearray_delete(::DosQHashIntQByteArray *vptr) { auto qHash = static_cast*>(vptr); delete qHash; } void dos_qhash_int_qbytearray_insert(::DosQHashIntQByteArray *vptr, int key, const char *value) { auto qHash = static_cast*>(vptr); qHash->insert(key, QByteArray(value)); } char *dos_qhash_int_qbytearray_value(const ::DosQHashIntQByteArray *vptr, int key) { auto qHash = static_cast*>(vptr); return convert_to_cstring(qHash->value(key)); } void dos_qresource_register(const char *filename) { QResource::registerResource(QString::fromUtf8(filename)); } ::DosQUrl *dos_qurl_create(const char *url, int parsingMode) { return new QUrl(QString::fromUtf8(url), (QUrl::ParsingMode) parsingMode); } void dos_qurl_delete(::DosQUrl *vptr) { auto url = static_cast(vptr); delete url; } char *dos_qurl_to_string(const ::DosQUrl *vptr) { auto url = static_cast(vptr); return convert_to_cstring(url->toString()); } bool dos_qurl_isValid(const ::DosQUrl *vptr) { auto url = static_cast(vptr); return url->isValid(); } ::DosQMetaObject *dos_qmetaobject_create(::DosQMetaObject *superClassVPtr, const char *className, const ::SignalDefinitions *signalDefinitions, const ::SlotDefinitions *slotDefinitions, const ::PropertyDefinitions *propertyDefinitions) { Q_ASSERT(superClassVPtr); auto superClassHolder = static_cast(superClassVPtr); Q_ASSERT(superClassHolder); auto data = superClassHolder->data(); Q_ASSERT(data); auto metaObject = std::make_shared(data, QString::fromUtf8(className), DOS::toVector(*signalDefinitions), DOS::toVector(*slotDefinitions), DOS::toVector(*propertyDefinitions)); return new DOS::DosIQMetaObjectHolder(std::move(metaObject)); } void dos_qmetaobject_delete(::DosQMetaObject *vptr) { auto factory = static_cast(vptr); delete factory; } ::DosQMetaObject *dos_qabstracttablemodel_qmetaobject() { return new DOS::DosIQMetaObjectHolder(std::make_shared()); } ::DosQAbstractListModel *dos_qabstracttablemodel_create(void *dObjectPointer, ::DosQMetaObject *metaObjectPointer, ::DObjectCallback dObjectCallback, ::RowCountCallback rowCountCallback, ::ColumnCountCallback columnCountCallback, ::DataCallback dataCallback, ::SetDataCallback setDataCallback, ::RoleNamesCallback roleNamesCallaback, ::FlagsCallback flagsCallback, ::HeaderDataCallback headerDataCallback, ::IndexCallback indexCallback, ::ParentCallback parentCallback) { auto metaObjectHolder = static_cast(metaObjectPointer); auto model = new DOS::DosQAbstractTableModel(dObjectPointer, metaObjectHolder->data(), DOS::OnSlotExecutedHandler(dObjectPointer, dObjectCallback), rowCountCallback, columnCountCallback, dataCallback, setDataCallback, roleNamesCallaback, flagsCallback, headerDataCallback, indexCallback, parentCallback); QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership); return static_cast(model); } DosQModelIndex *dos_qabstracttablemodel_index(DosQAbstractTableModel *vptr, int row, int column, DosQModelIndex *dosParent) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto parent = static_cast(dosParent); auto result = new QModelIndex(model->defaultIndex(row, column, *parent)); return static_cast(result); } DosQModelIndex *dos_qabstracttablemodel_parent(DosQAbstractTableModel *vptr, DosQModelIndex *dosChild) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto child = static_cast(dosChild); auto result = new QModelIndex(model->defaultParent(*child)); return static_cast(result); } ::DosQMetaObject *dos_qabstractlistmodel_qmetaobject() { return new DOS::DosIQMetaObjectHolder(std::make_shared()); } ::DosQAbstractListModel *dos_qabstractlistmodel_create(void *dObjectPointer, ::DosQMetaObject *metaObjectPointer, ::DObjectCallback dObjectCallback, ::RowCountCallback rowCountCallback, ::ColumnCountCallback columnCountCallback, ::DataCallback dataCallback, ::SetDataCallback setDataCallback, ::RoleNamesCallback roleNamesCallaback, ::FlagsCallback flagsCallback, ::HeaderDataCallback headerDataCallback, ::IndexCallback indexCallback, ::ParentCallback parentCallback) { auto metaObjectHolder = static_cast(metaObjectPointer); auto model = new DOS::DosQAbstractListModel(dObjectPointer, metaObjectHolder->data(), DOS::OnSlotExecutedHandler(dObjectPointer, dObjectCallback), rowCountCallback, columnCountCallback, dataCallback, setDataCallback, roleNamesCallaback, flagsCallback, headerDataCallback, indexCallback, parentCallback); QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership); return static_cast(model); } DosQModelIndex *dos_qabstractlistmodel_index(DosQAbstractListModel *vptr, int row, int column, DosQModelIndex *dosParent) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto parent = static_cast(dosParent); auto result = new QModelIndex(model->defaultIndex(row, column, *parent)); return static_cast(result); } DosQModelIndex *dos_qabstractlistmodel_parent(DosQAbstractListModel *vptr, DosQModelIndex *dosChild) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto child = static_cast(dosChild); auto result = new QModelIndex(model->defaultParent(*child)); return static_cast(result); } int dos_qabstractlistmodel_columnCount(DosQAbstractListModel *vptr, DosQModelIndex *dosParent) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto parent = static_cast(dosParent); return model->defaultColumnCount(*parent); } ::DosQMetaObject *dos_qabstractitemmodel_qmetaobject() { return new DOS::DosIQMetaObjectHolder(std::make_shared()); } ::DosQAbstractItemModel *dos_qabstractitemmodel_create(void *dObjectPointer, ::DosQMetaObject *metaObjectPointer, ::DObjectCallback dObjectCallback, ::RowCountCallback rowCountCallback, ::ColumnCountCallback columnCountCallback, ::DataCallback dataCallback, ::SetDataCallback setDataCallback, ::RoleNamesCallback roleNamesCallaback, ::FlagsCallback flagsCallback, ::HeaderDataCallback headerDataCallback, ::IndexCallback indexCallback, ::ParentCallback parentCallback) { auto metaObjectHolder = static_cast(metaObjectPointer); auto model = new DOS::DosQAbstractItemModel(dObjectPointer, metaObjectHolder->data(), DOS::OnSlotExecutedHandler(dObjectPointer, dObjectCallback), rowCountCallback, columnCountCallback, dataCallback, setDataCallback, roleNamesCallaback, flagsCallback, headerDataCallback, indexCallback, parentCallback); QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership); return static_cast(model); } void dos_qabstractitemmodel_beginInsertRows(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto index = static_cast(parentIndex); model->publicBeginInsertRows(*index, first, last); } void dos_qabstractitemmodel_endInsertRows(::DosQAbstractItemModel *vptr) { auto object = static_cast(vptr); auto model = dynamic_cast(object); model->publicEndInsertRows(); } void dos_qabstractitemmodel_beginRemoveRows(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto index = static_cast(parentIndex); model->publicBeginRemoveRows(*index, first, last); } void dos_qabstractitemmodel_endRemoveRows(::DosQAbstractItemModel *vptr) { auto object = static_cast(vptr); auto model = dynamic_cast(object); model->publicEndRemoveRows(); } void dos_qabstractitemmodel_beginInsertColumns(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto index = static_cast(parentIndex); model->publicBeginInsertColumns(*index, first, last); } void dos_qabstractitemmodel_endInsertColumns(::DosQAbstractItemModel *vptr) { auto object = static_cast(vptr); auto model = dynamic_cast(object); model->publicEndInsertColumns(); } void dos_qabstractitemmodel_beginRemoveColumns(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto index = static_cast(parentIndex); model->publicBeginRemoveColumns(*index, first, last); } void dos_qabstractitemmodel_endRemoveColumns(::DosQAbstractItemModel *vptr) { auto object = static_cast(vptr); auto model = dynamic_cast(object); model->publicEndRemoveColumns(); } void dos_qabstractitemmodel_beginResetModel(::DosQAbstractItemModel *vptr) { auto object = static_cast(vptr); auto model = dynamic_cast(object); model->publicBeginResetModel(); } void dos_qabstractitemmodel_endResetModel(::DosQAbstractItemModel *vptr) { auto object = static_cast(vptr); auto model = dynamic_cast(object); model->publicEndResetModel(); } void dos_qabstractitemmodel_dataChanged(::DosQAbstractItemModel *vptr, const ::DosQModelIndex *topLeftIndex, const ::DosQModelIndex *bottomRightIndex, int *rolesArrayPtr, int rolesArrayLength) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto topLeft = static_cast(topLeftIndex); auto bottomRight = static_cast(bottomRightIndex); auto roles = QVector::fromStdVector(std::vector(rolesArrayPtr, rolesArrayPtr + rolesArrayLength)); model->publicDataChanged(*topLeft, *bottomRight, roles); } DosQModelIndex *dos_qabstractitemmodel_createIndex(::DosQAbstractItemModel *vptr, int row, int column, void *data) { auto object = static_cast(vptr); auto model = dynamic_cast(object); return new QModelIndex(model->publicCreateIndex(row, column, data)); } bool dos_qabstractitemmodel_setData(DosQAbstractItemModel *vptr, DosQModelIndex *dosIndex, DosQVariant *dosValue, int role) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto index = static_cast(dosIndex); auto value = static_cast(dosValue); return model->defaultSetData(*index, *value, role); } DosQHashIntQByteArray *dos_qabstractitemmodel_roleNames(DosQAbstractItemModel *vptr) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto result = new QHash(model->defaultRoleNames()); return static_cast(result); } int dos_qabstractitemmodel_flags(DosQAbstractItemModel *vptr, DosQModelIndex *dosIndex) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto index = static_cast(dosIndex); return model->defaultFlags(*index); } DosQVariant *dos_qabstractitemmodel_headerData(DosQAbstractItemModel *vptr, int section, int orientation, int role) { auto object = static_cast(vptr); auto model = dynamic_cast(object); auto result = new QVariant(model->defaultHeaderData(section, static_cast(orientation), role)); return static_cast(result); } int dos_qdeclarative_qmlregistertype(const ::QmlRegisterType *cArgs) { auto holder = static_cast(cArgs->staticMetaObject); DOS::QmlRegisterType args; args.major = cArgs->major; args.minor = cArgs->minor; args.uri = cArgs->uri; args.qml = cArgs->qml; args.staticMetaObject = holder->data(); args.createDObject = cArgs->createDObject; args.deleteDObject = cArgs->deleteDObject; return DOS::dosQmlRegisterType(std::move(args)); } int dos_qdeclarative_qmlregistersingletontype(const ::QmlRegisterType *cArgs) { auto holder = static_cast(cArgs->staticMetaObject); DOS::QmlRegisterType args; args.major = cArgs->major; args.minor = cArgs->minor; args.uri = cArgs->uri; args.qml = cArgs->qml; args.staticMetaObject = holder->data(); args.createDObject = cArgs->createDObject; args.deleteDObject = cArgs->deleteDObject; return DOS::dosQmlRegisterSingletonType(std::move(args)); }