dotherside/lib/src/DOtherSide.cpp

665 lines
18 KiB
C++
Raw Normal View History

#include "DOtherSide/DOtherSide.h"
2014-07-19 18:26:08 +02:00
2015-02-04 23:02:26 +01:00
#include <iostream>
2014-07-19 18:26:08 +02:00
#include <QtCore/QDir>
#include <QtCore/QDebug>
#include <QtCore/QModelIndex>
#include <QtCore/QHash>
2015-12-06 00:23:25 +01:00
#include <QtCore/QResource>
2015-01-31 12:50:14 +01:00
#include <QtGui/QGuiApplication>
#include <QtQml/QQmlContext>
#include <QtQml/QQmlApplicationEngine>
#include <QtQuick/QQuickView>
#include <QtWidgets/QApplication>
2014-07-19 18:26:08 +02:00
#include "DOtherSide/DOtherSideTypesCpp.h"
#include "DOtherSide/OnSlotExecutedHandler.h"
#include "DOtherSide/DosQMetaObject.h"
#include "DOtherSide/DosQObject.h"
#include "DOtherSide/DosQObjectImpl.h"
#include "DOtherSide/DosQAbstractListModel.h"
#include "DOtherSide/DosQDeclarative.h"
using namespace DOS;
2016-02-27 16:05:23 +01:00
char *convert_to_cstring(const QByteArray &array)
{
return qstrdup(array.data());
}
2014-07-19 18:26:08 +02:00
2016-02-27 16:05:23 +01:00
char *convert_to_cstring(const QString &source)
2014-07-19 18:26:08 +02:00
{
2016-02-27 16:05:23 +01:00
return convert_to_cstring(source.toUtf8());
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
char *dos_qcoreapplication_application_dir_path()
{
2016-02-27 16:05:23 +01:00
return convert_to_cstring(QCoreApplication::applicationDirPath());
}
void dos_qguiapplication_create()
2014-07-19 18:26:08 +02:00
{
static int argc = 1;
static char empty[1] = {0};
2016-01-23 19:08:58 +01:00
static char *argv[] = {empty};
2014-07-19 18:26:08 +02:00
new QGuiApplication(argc, argv);
}
void dos_qguiapplication_delete()
2014-07-19 18:26:08 +02:00
{
delete qApp;
}
void dos_qguiapplication_exec()
2014-07-19 18:26:08 +02:00
{
qApp->exec();
}
void dos_qguiapplication_quit()
{
qApp->quit();
}
2015-01-11 13:29:44 +01:00
void dos_qapplication_create()
{
static int argc = 1;
static char empty[1] = {0};
2016-01-23 19:08:58 +01:00
static char *argv[] = {empty};
2015-01-11 13:29:44 +01:00
new QApplication(argc, argv);
}
void dos_qapplication_delete()
{
delete qApp;
}
void dos_qapplication_exec()
{
qApp->exec();
}
void dos_qapplication_quit()
{
qApp->quit();
}
2016-02-27 16:05:23 +01:00
void *dos_qqmlapplicationengine_create()
{
2016-02-27 16:05:23 +01:00
return new QQmlApplicationEngine();
}
2016-01-23 19:08:58 +01:00
void dos_qqmlapplicationengine_load(void *vptr, const char *filename)
{
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
engine->load(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QDir::separator() + QString(filename)));
}
2016-01-23 19:08:58 +01:00
void dos_qqmlapplicationengine_load_url(void *vptr, void *url)
{
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
auto qurl = static_cast<QUrl *>(url);
2015-12-06 00:23:25 +01:00
engine->load(*qurl);
}
void dos_qqmlapplicationengine_load_data(void *vptr, const char *data)
{
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
engine->loadData(data);
}
2016-01-23 19:08:58 +01:00
void dos_qqmlapplicationengine_add_import_path(void *vptr, const char *path)
{
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
2015-12-06 00:23:25 +01:00
engine->addImportPath(QString(path));
}
2016-02-27 16:05:23 +01:00
void *dos_qqmlapplicationengine_context(void *vptr)
2014-12-08 12:55:09 +01:00
{
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
2014-12-08 12:55:09 +01:00
engine->rootContext();
2016-02-27 16:05:23 +01:00
return engine->rootContext();
2014-12-08 12:55:09 +01:00
}
2016-01-23 19:08:58 +01:00
void dos_qqmlapplicationengine_delete(void *vptr)
{
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
delete engine;
}
2016-02-27 16:05:23 +01:00
void *dos_qquickview_create()
2014-07-19 18:26:08 +02:00
{
2016-02-27 16:05:23 +01:00
return new QQuickView();
2014-07-19 18:26:08 +02:00
}
2016-01-23 19:08:58 +01:00
void dos_qquickview_show(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto view = static_cast<QQuickView *>(vptr);
2014-07-19 18:26:08 +02:00
view->show();
}
2016-01-23 19:08:58 +01:00
void dos_qquickview_delete(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto view = static_cast<QQuickView *>(vptr);
2014-07-19 18:26:08 +02:00
delete view;
}
2016-02-27 16:05:23 +01:00
char *dos_qquickview_source(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto view = static_cast<QQuickView *>(vptr);
2014-07-19 18:26:08 +02:00
QUrl url = view->source();
2016-02-27 16:05:23 +01:00
return convert_to_cstring(url.toString());
2014-07-19 18:26:08 +02:00
}
2016-01-23 19:08:58 +01:00
void dos_qquickview_set_source(void *vptr, const char *filename)
2014-07-19 18:26:08 +02:00
{
auto view = static_cast<QQuickView *>(vptr);
2014-07-19 18:26:08 +02:00
view->setSource(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QDir::separator() + QString(filename)));
}
2016-01-23 19:08:58 +01:00
void dos_qquickview_set_source_url(void *vptr, void *url)
{
auto view = static_cast<QQuickView *>(vptr);
auto _url = static_cast<QUrl *>(url);
view->setSource(*_url);
}
2016-01-23 19:08:58 +01:00
void dos_qquickview_set_resize_mode(void *vptr, int resizeMode)
{
auto view = static_cast<QQuickView *>(vptr);
view->setResizeMode((QQuickView::ResizeMode) resizeMode);
}
2016-02-27 16:05:23 +01:00
void *dos_qquickview_rootContext(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto view = static_cast<QQuickView *>(vptr);
2016-02-27 16:05:23 +01:00
return view->rootContext();
2014-07-19 18:26:08 +02:00
}
2016-01-23 19:08:58 +01:00
void dos_chararray_delete(char *ptr)
2014-07-19 18:26:08 +02:00
{
if (ptr) delete[] ptr;
}
2016-02-27 16:05:23 +01:00
char *dos_qqmlcontext_baseUrl(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto context = static_cast<QQmlContext *>(vptr);
2014-07-19 18:26:08 +02:00
QUrl url = context->baseUrl();
2016-02-27 16:05:23 +01:00
return convert_to_cstring(url.toString());
2014-07-19 18:26:08 +02:00
}
2016-01-23 19:08:58 +01:00
void dos_qqmlcontext_setcontextproperty(void *vptr, const char *name, void *value)
2014-07-19 18:26:08 +02:00
{
auto context = static_cast<QQmlContext *>(vptr);
auto variant = static_cast<QVariant *>(value);
2014-07-19 18:26:08 +02:00
context->setContextProperty(QString::fromUtf8(name), *variant);
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_create()
2014-07-19 18:26:08 +02:00
{
2016-02-27 16:05:23 +01:00
return new QVariant();
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_create_int(int value)
2014-07-19 18:26:08 +02:00
{
2016-02-27 16:05:23 +01:00
return new QVariant(value);
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_create_bool(bool value)
2014-07-19 18:26:08 +02:00
{
2016-02-27 16:05:23 +01:00
return new QVariant(value);
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_create_string(const char *value)
2014-07-19 18:26:08 +02:00
{
2016-02-27 16:05:23 +01:00
return new QVariant(value);
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_create_qvariant(void *other)
{
auto otherQVariant = static_cast<QVariant *>(other);
2016-02-27 16:05:23 +01:00
auto result = new QVariant();
*result = *otherQVariant;
return result;
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_create_qobject(void *value)
2014-07-19 18:26:08 +02:00
{
auto qobject = static_cast<QObject *>(value);
2016-02-27 16:05:23 +01:00
auto result = new QVariant();
result->setValue<QObject *>(qobject);
return result;
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_create_float(float value)
{
2016-02-27 16:05:23 +01:00
return new QVariant(value);
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_create_double(double value)
{
2016-02-27 16:05:23 +01:00
return new QVariant(value);
}
2016-02-27 16:05:23 +01:00
bool dos_qvariant_isnull(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto variant = static_cast<QVariant *>(vptr);
2016-02-27 16:05:23 +01:00
return variant->isNull();
2014-07-19 18:26:08 +02:00
}
2016-01-23 19:08:58 +01:00
void dos_qvariant_delete(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto variant = static_cast<QVariant *>(vptr);
2014-07-19 18:26:08 +02:00
delete variant;
}
2016-01-23 19:08:58 +01:00
void dos_qvariant_assign(void *vptr, void *other)
{
auto leftQVariant = static_cast<QVariant *>(vptr);
auto rightQVariant = static_cast<QVariant *>(other);
*leftQVariant = *rightQVariant;
}
2016-02-27 16:05:23 +01:00
int dos_qvariant_toInt(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto variant = static_cast<QVariant *>(vptr);
2016-02-27 16:05:23 +01:00
return variant->toInt();
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
bool dos_qvariant_toBool(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto variant = static_cast<QVariant *>(vptr);
2016-02-27 16:05:23 +01:00
return variant->toBool();
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
float dos_qvariant_toFloat(void *vptr)
{
auto variant = static_cast<QVariant *>(vptr);
2016-02-27 16:05:23 +01:00
return variant->toFloat();
}
2016-02-27 16:05:23 +01:00
double dos_qvariant_toDouble(void *vptr)
{
auto variant = static_cast<QVariant *>(vptr);
2016-02-27 16:05:23 +01:00
return variant->toDouble();
}
2016-02-27 16:05:23 +01:00
char *dos_qvariant_toString(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto variant = static_cast<QVariant *>(vptr);
2016-02-27 16:05:23 +01:00
return convert_to_cstring(variant->toString());
2014-07-19 18:26:08 +02:00
}
2016-02-27 16:05:23 +01:00
void *dos_qvariant_toQObject(void *vptr)
{
auto variant = static_cast<QVariant *>(vptr);
2016-02-27 16:05:23 +01:00
return variant->value<QObject *>();
}
2016-01-23 19:08:58 +01:00
void dos_qvariant_setInt(void *vptr, int value)
2014-08-30 18:46:34 +02:00
{
auto variant = static_cast<QVariant *>(vptr);
2014-08-30 18:46:34 +02:00
*variant = value;
}
2016-01-23 19:08:58 +01:00
void dos_qvariant_setBool(void *vptr, bool value)
2014-08-30 18:46:34 +02:00
{
auto variant = static_cast<QVariant *>(vptr);
2014-08-30 18:46:34 +02:00
*variant = value;
}
2016-01-23 19:08:58 +01:00
void dos_qvariant_setFloat(void *vptr, float value)
{
auto variant = static_cast<QVariant *>(vptr);
*variant = value;
}
2016-01-23 19:08:58 +01:00
void dos_qvariant_setDouble(void *vptr, double value)
{
auto variant = static_cast<QVariant *>(vptr);
*variant = value;
}
2016-01-23 19:08:58 +01:00
void dos_qvariant_setString(void *vptr, const char *value)
2014-08-30 18:46:34 +02:00
{
auto variant = static_cast<QVariant *>(vptr);
2014-08-30 18:46:34 +02:00
*variant = value;
}
2016-01-23 19:08:58 +01:00
void dos_qvariant_setQObject(void *vptr, void *value)
{
auto variant = static_cast<QVariant *>(vptr);
auto qobject = static_cast<QObject *>(value);
2016-01-23 19:08:58 +01:00
variant->setValue<QObject *>(qobject);
}
2016-02-27 16:05:23 +01:00
void *dos_qobject_qmetaobject()
{
2016-02-27 16:05:23 +01:00
return new DosIQMetaObjectHolder(std::make_shared<DosQObjectMetaObject>());
}
2016-02-27 16:05:23 +01:00
void *dos_qobject_create(void *dObjectPointer, void *metaObject, DObjectCallback dObjectCallback)
{
auto metaObjectHolder = static_cast<DosIQMetaObjectHolder *>(metaObject);
auto dosQObject = new DosQObject(metaObjectHolder->data(),
OnSlotExecutedHandler(dObjectPointer, dObjectCallback));
QQmlEngine::setObjectOwnership(dosQObject, QQmlEngine::CppOwnership);
2016-02-27 16:05:23 +01:00
return static_cast<QObject *>(dosQObject);
}
2016-01-23 19:08:58 +01:00
void dos_qobject_delete(void *vptr)
2014-07-19 18:26:08 +02:00
{
auto qobject = static_cast<QObject *>(vptr);
qobject->disconnect();
delete qobject;
2014-08-30 18:46:34 +02:00
}
2016-01-23 19:08:58 +01:00
void dos_qobject_signal_emit(void *vptr, const char *name, int parametersCount, void **parameters)
2014-08-30 18:46:34 +02:00
{
auto qobject = static_cast<QObject *>(vptr);
2016-01-23 19:08:58 +01:00
auto dynamicQObject = dynamic_cast<DosIQObjectImpl *>(qobject);
auto transformation = [](void *vptr)->QVariant{return *(static_cast<QVariant *>(vptr));};
const std::vector<QVariant> variants = toVector(parameters, parametersCount, transformation);
2016-02-27 18:10:07 +01:00
dynamicQObject->emitSignal(qobject, QString::fromStdString(name), variants);
2014-08-30 18:46:34 +02:00
}
2016-01-23 19:08:58 +01:00
void dos_qobject_signal_connect(void *senderVPtr,
const char *signal,
void *receiverVPtr,
const char *method,
int type,
2016-01-23 19:08:58 +01:00
bool *result)
{
auto sender = static_cast<QObject *>(senderVPtr);
auto receiver = static_cast<QObject *>(receiverVPtr);
*result = QObject::connect(sender, signal, receiver, method, (Qt::ConnectionType) type);
}
2016-01-23 19:08:58 +01:00
void dos_qobject_signal_disconnect(void *senderVPtr,
const char *signal,
void *receiverVPtr,
const char *method,
bool *result)
{
auto sender = static_cast<QObject *>(senderVPtr);
auto receiver = static_cast<QObject *>(receiverVPtr);
*result = QObject::disconnect(sender, signal, receiver, method);
}
2016-02-27 16:05:23 +01:00
char *dos_qobject_objectName(void *vptr)
{
auto object = static_cast<QObject *>(vptr);
2016-02-27 16:05:23 +01:00
return convert_to_cstring(object->objectName());
}
2016-02-27 15:07:23 +01:00
void dos_qobject_setObjectName(void *vptr, const char *name)
2016-02-07 15:32:12 +01:00
{
auto object = static_cast<QObject *>(vptr);
object->setObjectName(QString::fromUtf8(name));
}
2016-02-27 16:05:23 +01:00
void *dos_qmodelindex_create(void **vptr)
{
2016-02-27 16:05:23 +01:00
return new QModelIndex();
}
2016-02-27 16:05:23 +01:00
void *dos_qmodelindex_create_qmodelindex(void *other_vptr)
{
2016-02-27 16:05:23 +01:00
auto result = new QModelIndex();
2016-02-27 15:07:23 +01:00
auto other = static_cast<QModelIndex *>(other_vptr);
2016-02-27 16:05:23 +01:00
*result = *other;
return result;
}
2016-01-23 19:08:58 +01:00
void dos_qmodelindex_delete(void *vptr)
{
auto index = static_cast<QModelIndex *>(vptr);
delete index;
}
2016-02-27 16:05:23 +01:00
int dos_qmodelindex_row(void *vptr)
{
auto index = static_cast<QModelIndex *>(vptr);
2016-02-27 16:05:23 +01:00
return index->row();
}
2016-02-27 16:05:23 +01:00
int dos_qmodelindex_column(void *vptr)
{
auto index = static_cast<QModelIndex *>(vptr);
2016-02-27 16:05:23 +01:00
return index->column();
}
2016-02-27 16:05:23 +01:00
bool dos_qmodelindex_isValid(void *vptr)
{
auto index = static_cast<QModelIndex *>(vptr);
2016-02-27 16:05:23 +01:00
return index->isValid();
}
2016-02-27 16:05:23 +01:00
void *dos_qmodelindex_data(void *vptr, int role)
{
auto index = static_cast<QModelIndex *>(vptr);
2016-02-27 16:05:23 +01:00
auto result = new QVariant(index->data(role));
return static_cast<QVariant *>(result);
}
2016-02-27 16:05:23 +01:00
void *dos_qmodelindex_parent(void *vptr)
{
auto index = static_cast<QModelIndex *>(vptr);
2016-02-27 16:05:23 +01:00
auto result = new QModelIndex(index->parent());
return static_cast<QModelIndex *>(result);
}
2016-02-27 16:05:23 +01:00
void *dos_qmodelindex_child(void *vptr, int row, int column)
{
auto index = static_cast<QModelIndex *>(vptr);
2016-02-27 16:05:23 +01:00
auto result = new QModelIndex(index->child(row, column));
return static_cast<QModelIndex *>(result);
}
2016-02-27 16:05:23 +01:00
void *dos_qmodelindex_sibling(void *vptr, int row, int column, void *sibling)
{
auto index = static_cast<QModelIndex *>(vptr);
2016-02-27 16:05:23 +01:00
auto result = new QModelIndex(index->sibling(row, column));
return static_cast<QModelIndex *>(result);
}
2016-02-27 15:07:23 +01:00
void dos_qmodelindex_assign(void *l, void *r)
{
auto li = static_cast<QModelIndex *>(l);
auto ri = static_cast<QModelIndex *>(r);
*li = *ri;
}
2016-02-27 16:05:23 +01:00
void *dos_qhash_int_qbytearray_create()
2015-01-31 12:50:14 +01:00
{
2016-02-27 16:05:23 +01:00
return new QHash<int, QByteArray>();
2015-01-31 12:50:14 +01:00
}
void dos_qhash_int_qbytearray_delete(QHashIntQByteArrayVoidPtr vptr)
{
auto qHash = static_cast<QHash<int, QByteArray>*>(vptr);
2015-01-31 12:50:14 +01:00
delete qHash;
}
2016-01-23 19:08:58 +01:00
void dos_qhash_int_qbytearray_insert(QHashIntQByteArrayVoidPtr vptr, int key, const char *value)
2015-01-31 12:50:14 +01:00
{
auto qHash = static_cast<QHash<int, QByteArray>*>(vptr);
2015-01-31 12:50:14 +01:00
qHash->insert(key, QByteArray(value));
}
2016-02-27 16:05:23 +01:00
char *dos_qhash_int_qbytearray_value(QHashIntQByteArrayVoidPtr vptr, int key)
{
auto qHash = static_cast<QHash<int, QByteArray>*>(vptr);
2016-02-27 16:05:23 +01:00
return convert_to_cstring(qHash->value(key));
}
2016-01-23 19:08:58 +01:00
void dos_qresource_register(const char *filename)
{
2015-12-06 00:23:25 +01:00
QResource::registerResource(QString::fromUtf8(filename));
}
2016-02-27 16:05:23 +01:00
void *dos_qurl_create(const char *url, int parsingMode)
{
2016-02-27 16:05:23 +01:00
return new QUrl(QString::fromUtf8(url), (QUrl::ParsingMode) parsingMode);
}
2016-01-23 19:08:58 +01:00
void dos_qurl_delete(void *vptr)
{
auto url = static_cast<QUrl *>(vptr);
delete url;
}
2016-02-27 16:05:23 +01:00
char *dos_qurl_to_string(void *vptr)
2015-12-22 17:53:29 +01:00
{
auto url = static_cast<QUrl *>(vptr);
2016-02-27 16:05:23 +01:00
return convert_to_cstring(url->toString());
2015-12-22 17:53:29 +01:00
}
2016-02-27 16:05:23 +01:00
void *dos_qmetaobject_create(void *superClassVPtr,
const char *className,
const ::SignalDefinitions *signalDefinitions,
const ::SlotDefinitions *slotDefinitions,
const ::PropertyDefinitions *propertyDefinitions)
{
2016-01-07 13:24:52 +01:00
Q_ASSERT(superClassVPtr);
2016-01-23 19:08:58 +01:00
auto superClassHolder = static_cast<DosIQMetaObjectHolder *>(superClassVPtr);
2016-01-07 13:24:52 +01:00
Q_ASSERT(superClassHolder);
auto data = superClassHolder->data();
Q_ASSERT(data);
2016-01-07 16:59:51 +01:00
auto metaObject = std::make_shared<DosQMetaObject>(data,
QString::fromUtf8(className),
toVector(*signalDefinitions),
toVector(*slotDefinitions),
toVector(*propertyDefinitions));
2016-02-27 16:05:23 +01:00
return new DosIQMetaObjectHolder(std::move(metaObject));
}
2016-01-06 15:42:21 +01:00
void dos_qmetaobject_delete(void *vptr)
{
auto factory = static_cast<DosIQMetaObjectHolder *>(vptr);
delete factory;
}
2016-02-27 16:05:23 +01:00
void *dos_qabstractlistmodel_qmetaobject()
{
2016-02-27 16:05:23 +01:00
return new DosIQMetaObjectHolder(std::make_shared<DosQAbstractListModelMetaObject>());
}
2016-02-27 16:05:23 +01:00
void *dos_qabstractlistmodel_create(void *dObjectPointer,
void *metaObjectPointer,
DObjectCallback dObjectCallback,
RowCountCallback rowCountCallback,
ColumnCountCallback columnCountCallback,
DataCallback dataCallback,
SetDataCallback setDataCallback,
RoleNamesCallback roleNamesCallaback,
FlagsCallback flagsCallback,
HeaderDataCallback headerDataCallback)
{
auto metaObjectHolder = static_cast<DosIQMetaObjectHolder *>(metaObjectPointer);
auto model = new DosQAbstractListModel(dObjectPointer,
metaObjectHolder->data(),
OnSlotExecutedHandler(dObjectPointer, dObjectCallback),
rowCountCallback,
columnCountCallback,
dataCallback,
setDataCallback,
roleNamesCallaback,
flagsCallback,
headerDataCallback);
QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership);
2016-02-27 16:05:23 +01:00
return static_cast<QObject *>(model);
}
2016-01-23 19:08:58 +01:00
void dos_qabstractlistmodel_beginInsertRows(void *vptr, QModelIndexVoidPtr parentIndex, int first, int last)
{
2016-02-27 15:07:23 +01:00
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosIQAbstractListModelImpl *>(object);
auto index = static_cast<QModelIndex *>(parentIndex);
model->publicBeginInsertRows(*index, first, last);
}
2016-01-23 19:08:58 +01:00
void dos_qabstractlistmodel_endInsertRows(void *vptr)
{
2016-02-27 15:07:23 +01:00
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosIQAbstractListModelImpl *>(object);
model->publicEndInsertRows();
}
2016-01-23 19:08:58 +01:00
void dos_qabstractlistmodel_beginRemoveRows(void *vptr, QModelIndexVoidPtr parentIndex, int first, int last)
{
2016-02-27 15:07:23 +01:00
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosIQAbstractListModelImpl *>(object);
auto index = static_cast<QModelIndex *>(parentIndex);
model->publicBeginRemoveRows(*index, first, last);
}
2016-01-23 19:08:58 +01:00
void dos_qabstractlistmodel_endRemoveRows(void *vptr)
{
2016-02-27 15:07:23 +01:00
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosIQAbstractListModelImpl *>(object);
model->publicEndRemoveRows();
}
2016-01-23 19:08:58 +01:00
void dos_qabstractlistmodel_beginResetModel(void *vptr)
{
2016-02-27 15:07:23 +01:00
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosIQAbstractListModelImpl *>(object);
model->publicBeginResetModel();
}
2016-01-23 19:08:58 +01:00
void dos_qabstractlistmodel_endResetModel(void *vptr)
{
2016-02-27 15:07:23 +01:00
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosIQAbstractListModelImpl *>(object);
model->publicEndResetModel();
}
2016-01-23 19:08:58 +01:00
void dos_qabstractlistmodel_dataChanged(void *vptr,
QModelIndexVoidPtr topLeftIndex,
QModelIndexVoidPtr bottomRightIndex,
2016-01-23 19:08:58 +01:00
int *rolesArrayPtr,
int rolesArrayLength)
{
2016-02-27 15:07:23 +01:00
auto object = static_cast<QObject *>(vptr);
auto model = dynamic_cast<DosIQAbstractListModelImpl *>(object);
auto topLeft = static_cast<QModelIndex *>(topLeftIndex);
auto bottomRight = static_cast<QModelIndex *>(bottomRightIndex);
auto roles = QVector<int>::fromStdVector(std::vector<int>(rolesArrayPtr, rolesArrayPtr + rolesArrayLength));
model->publicDataChanged(*topLeft, *bottomRight, roles);
}
2016-01-24 22:03:12 +01:00
2016-02-27 16:05:23 +01:00
int dos_qdeclarative_qmlregistertype(const ::QmlRegisterType *cArgs)
{
2016-02-27 15:07:23 +01:00
auto holder = static_cast<DosIQMetaObjectHolder *>(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;
2016-02-27 16:05:23 +01:00
return dosQmlRegisterType(std::move(args));
2016-01-24 22:03:12 +01:00
}
2016-02-27 16:05:23 +01:00
int dos_qdeclarative_qmlregistersingletontype(const ::QmlRegisterType *cArgs)
{
2016-02-27 15:07:23 +01:00
auto holder = static_cast<DosIQMetaObjectHolder *>(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;
2016-02-27 16:05:23 +01:00
return dosQmlRegisterSingletonType(std::move(args));
}