2019-11-17 23:09:11 +01:00
|
|
|
/*
|
|
|
|
Copyright (C) 2019 Filippo Cucchetto.
|
|
|
|
Contact: https://github.com/filcuc/dotherside
|
|
|
|
|
|
|
|
This file is part of the DOtherSide library.
|
|
|
|
|
|
|
|
The DOtherSide library is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the license, or (at your opinion) any later version.
|
|
|
|
|
|
|
|
The DOtherSide library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU Lesser General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
|
|
along with the DOtherSide library. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
2015-11-23 21:33:17 +01:00
|
|
|
#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>
|
2015-01-18 12:26:51 +01:00
|
|
|
#include <QtCore/QModelIndex>
|
2015-03-11 21:32:45 +01:00
|
|
|
#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>
|
2020-05-16 21:27:26 -04:00
|
|
|
#include <QtCore>
|
2015-01-31 12:50:14 +01:00
|
|
|
#include <QtQml/QQmlApplicationEngine>
|
|
|
|
#include <QtQuick/QQuickView>
|
2018-03-29 23:25:33 +02:00
|
|
|
#include <QtQuick/QQuickImageProvider>
|
2017-08-24 23:17:11 +02:00
|
|
|
#ifdef QT_QUICKCONTROLS2_LIB
|
2017-08-24 22:52:39 +02:00
|
|
|
#include <QtQuickControls2/QQuickStyle>
|
2017-08-24 23:17:11 +02:00
|
|
|
#endif
|
2015-01-31 12:50:14 +01:00
|
|
|
#include <QtWidgets/QApplication>
|
2014-07-19 18:26:08 +02:00
|
|
|
|
2015-12-27 17:58:49 +01:00
|
|
|
#include "DOtherSide/DOtherSideTypesCpp.h"
|
2016-01-07 12:04:40 +01:00
|
|
|
#include "DOtherSide/DosQMetaObject.h"
|
|
|
|
#include "DOtherSide/DosQObject.h"
|
|
|
|
#include "DOtherSide/DosQObjectImpl.h"
|
2017-03-05 18:18:30 +01:00
|
|
|
#include "DOtherSide/DosQAbstractItemModel.h"
|
2016-02-28 10:44:47 +01:00
|
|
|
#include "DOtherSide/DosQDeclarative.h"
|
2018-02-12 21:45:21 +00:00
|
|
|
#include "DOtherSide/DosQQuickImageProvider.h"
|
2016-01-07 12:04:40 +01:00
|
|
|
|
2017-03-25 14:38:07 +01:00
|
|
|
namespace {
|
2018-10-07 17:31:33 +02:00
|
|
|
|
2017-04-09 14:34:47 +02:00
|
|
|
void register_meta_types()
|
|
|
|
{
|
2017-03-25 14:38:07 +01:00
|
|
|
qRegisterMetaType<QVector<int>>();
|
2017-04-09 14:34:47 +02:00
|
|
|
}
|
2018-10-07 17:31:33 +02:00
|
|
|
|
2017-03-25 14:38:07 +01:00
|
|
|
}
|
|
|
|
|
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()
|
2015-12-05 18:15:01 +01:00
|
|
|
{
|
2016-02-27 16:05:23 +01:00
|
|
|
return convert_to_cstring(QCoreApplication::applicationDirPath());
|
2015-12-05 18:15:01 +01:00
|
|
|
}
|
|
|
|
|
2014-12-01 21:30:45 +01:00
|
|
|
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};
|
2017-03-25 14:38:07 +01:00
|
|
|
|
|
|
|
register_meta_types();
|
|
|
|
|
2014-07-19 18:26:08 +02:00
|
|
|
new QGuiApplication(argc, argv);
|
|
|
|
}
|
|
|
|
|
2014-12-01 21:30:45 +01:00
|
|
|
void dos_qguiapplication_delete()
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2017-02-18 14:52:05 +00:00
|
|
|
delete qGuiApp;
|
2014-07-19 18:26:08 +02:00
|
|
|
}
|
|
|
|
|
2014-12-01 21:30:45 +01:00
|
|
|
void dos_qguiapplication_exec()
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2017-02-18 14:52:05 +00:00
|
|
|
qGuiApp->exec();
|
2014-07-19 18:26:08 +02:00
|
|
|
}
|
|
|
|
|
2015-01-11 13:05:50 +01:00
|
|
|
void dos_qguiapplication_quit()
|
|
|
|
{
|
2017-02-18 14:52:05 +00:00
|
|
|
qGuiApp->quit();
|
2015-01-11 13:05:50 +01:00
|
|
|
}
|
|
|
|
|
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};
|
2017-03-25 14:38:07 +01:00
|
|
|
|
|
|
|
register_meta_types();
|
|
|
|
|
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-03-28 21:32:07 +02:00
|
|
|
::DosQQmlApplicationEngine *dos_qqmlapplicationengine_create()
|
2014-12-01 21:02:18 +01:00
|
|
|
{
|
2016-02-27 16:05:23 +01:00
|
|
|
return new QQmlApplicationEngine();
|
2014-12-01 21:02:18 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qqmlapplicationengine_load(::DosQQmlApplicationEngine *vptr, const char *filename)
|
2014-12-01 21:02:18 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
|
2014-12-01 21:02:18 +01:00
|
|
|
engine->load(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QDir::separator() + QString(filename)));
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qqmlapplicationengine_load_url(::DosQQmlApplicationEngine *vptr, ::DosQUrl *url)
|
2015-12-05 17:33:54 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
|
|
|
|
auto qurl = static_cast<QUrl *>(url);
|
2015-12-06 00:23:25 +01:00
|
|
|
engine->load(*qurl);
|
2015-12-05 17:33:54 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qqmlapplicationengine_load_data(::DosQQmlApplicationEngine *vptr, const char *data)
|
2015-12-29 12:11:52 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
|
2015-12-29 12:11:52 +01:00
|
|
|
engine->loadData(data);
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qqmlapplicationengine_add_import_path(::DosQQmlApplicationEngine *vptr, const char *path)
|
2015-12-05 17:33:54 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
|
2015-12-06 00:23:25 +01:00
|
|
|
engine->addImportPath(QString(path));
|
2015-12-05 17:33:54 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQQmlContext *dos_qqmlapplicationengine_context(::DosQQmlApplicationEngine *vptr)
|
2014-12-08 12:55:09 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +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
|
|
|
}
|
|
|
|
|
2018-02-12 21:45:21 +00:00
|
|
|
void dos_qqmlapplicationengine_addImageProvider(DosQQmlApplicationEngine *vptr, const char* name, DosQQuickImageProvider *vptr_i)
|
|
|
|
{
|
|
|
|
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
|
|
|
|
auto provider = static_cast<DosImageProvider *>(vptr_i);
|
|
|
|
engine->addImageProvider(QString(name), provider);
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qqmlapplicationengine_delete(::DosQQmlApplicationEngine *vptr)
|
2014-12-01 21:02:18 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto engine = static_cast<QQmlApplicationEngine *>(vptr);
|
2014-12-01 21:02:18 +01:00
|
|
|
delete engine;
|
|
|
|
}
|
|
|
|
|
2018-02-12 21:45:21 +00:00
|
|
|
|
2018-02-13 21:41:53 +01:00
|
|
|
::DosQQuickImageProvider *dos_qquickimageprovider_create(RequestPixmapCallback callback)
|
2018-02-12 21:45:21 +00:00
|
|
|
{
|
|
|
|
return new DosImageProvider(callback);
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qquickimageprovider_delete(::DosQQuickImageProvider *vptr)
|
|
|
|
{
|
|
|
|
auto provider = static_cast<DosImageProvider *>(vptr);
|
|
|
|
delete provider;
|
|
|
|
}
|
|
|
|
|
2018-02-12 23:36:43 +01:00
|
|
|
::DosPixmap *dos_qpixmap_create()
|
|
|
|
{
|
|
|
|
return new QPixmap();
|
|
|
|
}
|
|
|
|
|
|
|
|
::DosPixmap *dos_qpixmap_create_qpixmap(const DosPixmap *other)
|
|
|
|
{
|
|
|
|
auto pixmap = static_cast<const QPixmap *>(other);
|
|
|
|
return new QPixmap(pixmap ? *pixmap : QPixmap());
|
|
|
|
}
|
|
|
|
|
|
|
|
::DosPixmap *dos_qpixmap_create_width_and_height(int width, int height)
|
2018-02-12 21:45:21 +00:00
|
|
|
{
|
|
|
|
return new QPixmap(width, height);
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qpixmap_delete(DosPixmap *vptr)
|
|
|
|
{
|
|
|
|
auto pixmap = static_cast<QPixmap *>(vptr);
|
|
|
|
delete pixmap;
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qpixmap_load(DosPixmap *vptr, const char* filepath, const char* format)
|
|
|
|
{
|
|
|
|
auto pixmap = static_cast<QPixmap *>(vptr);
|
|
|
|
pixmap->load(QString(filepath), format);
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qpixmap_loadFromData(DosPixmap *vptr, const unsigned char* data, unsigned int len)
|
|
|
|
{
|
|
|
|
auto pixmap = static_cast<QPixmap *>(vptr);
|
|
|
|
pixmap->loadFromData(data, len);
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qpixmap_fill(DosPixmap *vptr, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
|
|
|
|
{
|
|
|
|
auto pixmap = static_cast<QPixmap *>(vptr);
|
|
|
|
pixmap->fill(QColor(r, g, b, a));
|
|
|
|
}
|
|
|
|
|
2018-02-12 23:29:20 +01:00
|
|
|
void dos_qpixmap_assign(DosPixmap *vptr, const DosPixmap *other)
|
|
|
|
{
|
|
|
|
if (vptr) {
|
|
|
|
auto lhs = static_cast<QPixmap *>(vptr);
|
2018-10-07 10:42:59 +02:00
|
|
|
auto rhs = static_cast<const QPixmap *>(other);
|
2018-02-12 23:29:20 +01:00
|
|
|
*lhs = rhs ? *rhs : QPixmap();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
bool dos_qpixmap_isNull(DosPixmap *vptr)
|
|
|
|
{
|
|
|
|
auto pixmap = static_cast<QPixmap *>(vptr);
|
|
|
|
return pixmap->isNull();
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQQuickView *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-03-28 21:32:07 +02:00
|
|
|
void dos_qquickview_show(::DosQQuickView *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto view = static_cast<QQuickView *>(vptr);
|
2014-07-19 18:26:08 +02:00
|
|
|
view->show();
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qquickview_delete(::DosQQuickView *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto view = static_cast<QQuickView *>(vptr);
|
2014-07-19 18:26:08 +02:00
|
|
|
delete view;
|
|
|
|
}
|
|
|
|
|
2016-06-26 15:05:38 +02:00
|
|
|
char *dos_qquickview_source(const ::DosQQuickView *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-06-26 15:05:38 +02:00
|
|
|
auto view = static_cast<const 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-03-28 21:32:07 +02:00
|
|
|
void dos_qquickview_set_source(::DosQQuickView *vptr, const char *filename)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01: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-03-28 21:32:07 +02:00
|
|
|
void dos_qquickview_set_source_url(::DosQQuickView *vptr, ::DosQUrl *url)
|
2015-12-22 18:21:52 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto view = static_cast<QQuickView *>(vptr);
|
|
|
|
auto _url = static_cast<QUrl *>(url);
|
2015-12-22 18:21:52 +01:00
|
|
|
view->setSource(*_url);
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qquickview_set_resize_mode(::DosQQuickView *vptr, int resizeMode)
|
2015-12-22 18:21:52 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto view = static_cast<QQuickView *>(vptr);
|
2018-10-07 10:42:59 +02:00
|
|
|
view->setResizeMode(static_cast<QQuickView::ResizeMode>(resizeMode));
|
2015-12-22 18:21:52 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQQmlContext *dos_qquickview_rootContext(::DosQQuickView *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01: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-07-04 18:20:02 +02:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2016-06-26 15:05:38 +02:00
|
|
|
char *dos_qqmlcontext_baseUrl(const ::DosQQmlContext *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-06-26 15:05:38 +02:00
|
|
|
auto context = static_cast<const 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-03-28 21:32:07 +02:00
|
|
|
void dos_qqmlcontext_setcontextproperty(::DosQQmlContext *vptr, const char *name, ::DosQVariant *value)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01: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-03-28 21:32:07 +02:00
|
|
|
::DosQVariant *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-03-28 21:32:07 +02:00
|
|
|
::DosQVariant *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-03-28 21:32:07 +02:00
|
|
|
::DosQVariant *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-03-28 21:32:07 +02:00
|
|
|
::DosQVariant *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-06-26 15:05:38 +02:00
|
|
|
::DosQVariant *dos_qvariant_create_qvariant(const ::DosQVariant *other)
|
2015-01-10 11:26:23 +01:00
|
|
|
{
|
2016-06-26 15:05:38 +02:00
|
|
|
auto otherQVariant = static_cast<const QVariant *>(other);
|
2016-02-27 16:05:23 +01:00
|
|
|
auto result = new QVariant();
|
|
|
|
*result = *otherQVariant;
|
|
|
|
return result;
|
2015-01-10 11:26:23 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQVariant *dos_qvariant_create_qobject(::DosQObject *value)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01: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-03-28 21:32:07 +02:00
|
|
|
::DosQVariant *dos_qvariant_create_float(float value)
|
2015-01-11 13:05:50 +01:00
|
|
|
{
|
2016-02-27 16:05:23 +01:00
|
|
|
return new QVariant(value);
|
2015-01-11 13:05:50 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQVariant *dos_qvariant_create_double(double value)
|
2015-01-11 13:05:50 +01:00
|
|
|
{
|
2016-02-27 16:05:23 +01:00
|
|
|
return new QVariant(value);
|
2015-01-11 13:05:50 +01:00
|
|
|
}
|
|
|
|
|
2017-04-09 14:34:47 +02:00
|
|
|
::DosQVariant *dos_qvariant_create_array(int size, ::DosQVariant **array)
|
2016-07-04 18:20:02 +02:00
|
|
|
{
|
|
|
|
QList<QVariant> data;
|
|
|
|
data.reserve(size);
|
|
|
|
for (int i = 0; i < size; ++i)
|
2017-04-09 14:34:47 +02:00
|
|
|
data << *(static_cast<QVariant *>(array[i]));
|
2016-07-04 18:20:02 +02:00
|
|
|
return new QVariant(data);
|
|
|
|
}
|
|
|
|
|
2016-06-19 18:17:48 +02:00
|
|
|
bool dos_qvariant_isnull(const DosQVariant *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-06-19 18:17:48 +02:00
|
|
|
auto variant = static_cast<const QVariant *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return variant->isNull();
|
2014-07-19 18:26:08 +02:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qvariant_delete(::DosQVariant *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto variant = static_cast<QVariant *>(vptr);
|
2014-07-19 18:26:08 +02:00
|
|
|
delete variant;
|
|
|
|
}
|
|
|
|
|
2016-06-19 18:17:48 +02:00
|
|
|
void dos_qvariant_assign(::DosQVariant *vptr, const DosQVariant *other)
|
2015-01-10 11:26:23 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto leftQVariant = static_cast<QVariant *>(vptr);
|
2016-06-19 18:17:48 +02:00
|
|
|
auto rightQVariant = static_cast<const QVariant *>(other);
|
2015-01-31 14:20:36 +01:00
|
|
|
*leftQVariant = *rightQVariant;
|
2015-01-10 11:26:23 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 18:17:48 +02:00
|
|
|
int dos_qvariant_toInt(const ::DosQVariant *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-06-19 18:17:48 +02:00
|
|
|
auto variant = static_cast<const QVariant *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return variant->toInt();
|
2014-07-19 18:26:08 +02:00
|
|
|
}
|
|
|
|
|
2016-06-19 18:17:48 +02:00
|
|
|
bool dos_qvariant_toBool(const ::DosQVariant *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-06-19 18:17:48 +02:00
|
|
|
auto variant = static_cast<const QVariant *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return variant->toBool();
|
2014-07-19 18:26:08 +02:00
|
|
|
}
|
|
|
|
|
2016-06-19 18:17:48 +02:00
|
|
|
float dos_qvariant_toFloat(const DosQVariant *vptr)
|
2015-01-11 13:05:50 +01:00
|
|
|
{
|
2016-06-19 18:17:48 +02:00
|
|
|
auto variant = static_cast<const QVariant *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return variant->toFloat();
|
2015-01-11 13:05:50 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 18:17:48 +02:00
|
|
|
double dos_qvariant_toDouble(const DosQVariant *vptr)
|
2015-01-11 13:05:50 +01:00
|
|
|
{
|
2016-06-19 18:17:48 +02:00
|
|
|
auto variant = static_cast<const QVariant *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return variant->toDouble();
|
2015-01-11 13:05:50 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 18:17:48 +02:00
|
|
|
char *dos_qvariant_toString(const DosQVariant *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-06-19 18:17:48 +02:00
|
|
|
auto variant = static_cast<const 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-07-04 18:20:02 +02:00
|
|
|
DosQVariantArray *dos_qvariant_toArray(const DosQVariant *vptr)
|
|
|
|
{
|
|
|
|
auto variant = static_cast<const QVariant *>(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;
|
|
|
|
}
|
|
|
|
|
2016-06-19 18:17:48 +02:00
|
|
|
::DosQObject *dos_qvariant_toQObject(const DosQVariant *vptr)
|
2015-12-23 19:46:21 +01:00
|
|
|
{
|
2016-06-19 18:17:48 +02:00
|
|
|
auto variant = static_cast<const QVariant *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return variant->value<QObject *>();
|
2015-12-23 19:46:21 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qvariant_setInt(::DosQVariant *vptr, int value)
|
2014-08-30 18:46:34 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto variant = static_cast<QVariant *>(vptr);
|
2014-08-30 18:46:34 +02:00
|
|
|
*variant = value;
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qvariant_setBool(::DosQVariant *vptr, bool value)
|
2014-08-30 18:46:34 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto variant = static_cast<QVariant *>(vptr);
|
2014-08-30 18:46:34 +02:00
|
|
|
*variant = value;
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qvariant_setFloat(::DosQVariant *vptr, float value)
|
2015-01-11 13:05:50 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto variant = static_cast<QVariant *>(vptr);
|
2015-01-11 13:05:50 +01:00
|
|
|
*variant = value;
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qvariant_setDouble(::DosQVariant *vptr, double value)
|
2015-01-11 13:05:50 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto variant = static_cast<QVariant *>(vptr);
|
2015-01-11 13:05:50 +01:00
|
|
|
*variant = value;
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qvariant_setString(::DosQVariant *vptr, const char *value)
|
2014-08-30 18:46:34 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto variant = static_cast<QVariant *>(vptr);
|
2014-08-30 18:46:34 +02:00
|
|
|
*variant = value;
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qvariant_setQObject(::DosQVariant *vptr, ::DosQObject *value)
|
2015-01-12 21:21:46 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto variant = static_cast<QVariant *>(vptr);
|
|
|
|
auto qobject = static_cast<QObject *>(value);
|
2016-01-23 19:08:58 +01:00
|
|
|
variant->setValue<QObject *>(qobject);
|
2015-01-12 21:21:46 +01:00
|
|
|
}
|
|
|
|
|
2016-07-04 18:20:02 +02:00
|
|
|
void dos_qvariant_setArray(::DosQVariant *vptr, int size, ::DosQVariant **array)
|
|
|
|
{
|
|
|
|
auto variant = static_cast<QVariant *>(vptr);
|
|
|
|
QVariantList data;
|
|
|
|
data.reserve(size);
|
|
|
|
for (int i = 0; i < size; ++i)
|
|
|
|
data << *(static_cast<QVariant *>(array[i]));
|
|
|
|
variant->setValue(data);
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQMetaObject *dos_qobject_qmetaobject()
|
2016-01-08 19:31:33 +01:00
|
|
|
{
|
2016-03-28 21:32:07 +02:00
|
|
|
return new DOS::DosIQMetaObjectHolder(std::make_shared<DOS::DosQObjectMetaObject>());
|
2016-01-08 19:31:33 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQObject *dos_qobject_create(void *dObjectPointer, ::DosQMetaObject *metaObject, ::DObjectCallback dObjectCallback)
|
2016-01-03 14:02:28 +01:00
|
|
|
{
|
2016-03-28 21:32:07 +02:00
|
|
|
auto metaObjectHolder = static_cast<DOS::DosIQMetaObjectHolder *>(metaObject);
|
2018-10-07 17:31:33 +02:00
|
|
|
auto dosQObject = new DOS::DosQObject(dObjectPointer, metaObjectHolder->data(), dObjectCallback);
|
2016-01-07 17:16:37 +01:00
|
|
|
QQmlEngine::setObjectOwnership(dosQObject, QQmlEngine::CppOwnership);
|
2016-02-27 16:05:23 +01:00
|
|
|
return static_cast<QObject *>(dosQObject);
|
2016-01-03 14:02:28 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qobject_delete(::DosQObject *vptr)
|
2014-07-19 18:26:08 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto qobject = static_cast<QObject *>(vptr);
|
2015-12-28 13:21:02 +01:00
|
|
|
qobject->disconnect();
|
|
|
|
delete qobject;
|
2014-08-30 18:46:34 +02:00
|
|
|
}
|
|
|
|
|
2018-09-15 13:11:31 +02:00
|
|
|
void dos_qobject_deleteLater(::DosQObject *vptr)
|
|
|
|
{
|
|
|
|
auto qobject = static_cast<QObject *>(vptr);
|
|
|
|
qobject->deleteLater();
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qobject_signal_emit(::DosQObject *vptr, const char *name, int parametersCount, void **parameters)
|
2014-08-30 18:46:34 +02:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto qobject = static_cast<QObject *>(vptr);
|
2016-03-28 21:32:07 +02:00
|
|
|
auto dynamicQObject = dynamic_cast<DOS::DosIQObjectImpl *>(qobject);
|
2015-02-05 23:04:59 +01:00
|
|
|
|
2016-01-28 20:59:04 +01:00
|
|
|
auto transformation = [](void *vptr)->QVariant{return *(static_cast<QVariant *>(vptr));};
|
2016-03-28 21:32:07 +02:00
|
|
|
const std::vector<QVariant> variants = DOS::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
|
|
|
}
|
2014-12-24 14:30:41 +01:00
|
|
|
|
2016-03-28 22:50:40 +02:00
|
|
|
bool dos_qobject_signal_connect(::DosQObject *senderVPtr,
|
2016-01-23 19:08:58 +01:00
|
|
|
const char *signal,
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQObject *receiverVPtr,
|
2016-01-23 19:08:58 +01:00
|
|
|
const char *method,
|
2016-03-28 22:50:40 +02:00
|
|
|
int type)
|
2015-12-23 19:46:21 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto sender = static_cast<QObject *>(senderVPtr);
|
|
|
|
auto receiver = static_cast<QObject *>(receiverVPtr);
|
2018-10-07 10:42:59 +02:00
|
|
|
return QObject::connect(sender, signal, receiver, method, static_cast<Qt::ConnectionType>(type));
|
2015-12-23 19:46:21 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 22:50:40 +02:00
|
|
|
bool dos_qobject_signal_disconnect(::DosQObject *senderVPtr,
|
2016-01-23 19:08:58 +01:00
|
|
|
const char *signal,
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQObject *receiverVPtr,
|
2016-03-28 22:50:40 +02:00
|
|
|
const char *method)
|
2015-12-23 19:46:21 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto sender = static_cast<QObject *>(senderVPtr);
|
|
|
|
auto receiver = static_cast<QObject *>(receiverVPtr);
|
2016-03-28 22:50:40 +02:00
|
|
|
return QObject::disconnect(sender, signal, receiver, method);
|
2014-12-24 14:30:41 +01:00
|
|
|
}
|
2015-01-18 12:26:51 +01:00
|
|
|
|
2016-06-26 15:05:38 +02:00
|
|
|
char *dos_qobject_objectName(const ::DosQObject *vptr)
|
2015-12-23 19:58:12 +01:00
|
|
|
{
|
2016-06-26 15:05:38 +02:00
|
|
|
auto object = static_cast<const QObject *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return convert_to_cstring(object->objectName());
|
2015-12-23 19:58:12 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qobject_setObjectName(::DosQObject *vptr, const char *name)
|
2016-02-07 15:32:12 +01:00
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
object->setObjectName(QString::fromUtf8(name));
|
|
|
|
}
|
|
|
|
|
2018-06-21 16:25:16 +02:00
|
|
|
::DosQVariant *dos_qobject_property(DosQObject *vptr, const char *propertyName) {
|
2018-06-21 13:41:47 +02:00
|
|
|
auto object = static_cast<const QObject *>(vptr);
|
|
|
|
auto result = new QVariant(object->property(propertyName));
|
|
|
|
return static_cast<QVariant *>(result);
|
|
|
|
}
|
|
|
|
|
2018-06-21 19:10:59 +02:00
|
|
|
bool dos_qobject_setProperty(::DosQObject *vptr, const char *propertyName, ::DosQVariant *dosValue){
|
2018-06-21 13:41:47 +02:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto value = static_cast<QVariant *>(dosValue);
|
|
|
|
return object->setProperty(propertyName, *value);
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQModelIndex *dos_qmodelindex_create()
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-02-27 16:05:23 +01:00
|
|
|
return new QModelIndex();
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQModelIndex *dos_qmodelindex_create_qmodelindex(::DosQModelIndex *other_vptr)
|
2016-02-25 22:41:24 +01:00
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto other = static_cast<QModelIndex *>(other_vptr);
|
2016-03-28 17:14:11 +02:00
|
|
|
return new QModelIndex(*other);
|
2016-02-25 22:41:24 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qmodelindex_delete(::DosQModelIndex *vptr)
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto index = static_cast<QModelIndex *>(vptr);
|
2015-01-31 14:20:36 +01:00
|
|
|
delete index;
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 12:20:00 +02:00
|
|
|
int dos_qmodelindex_row(const ::DosQModelIndex *vptr)
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-06-19 12:20:00 +02:00
|
|
|
auto index = static_cast<const QModelIndex *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return index->row();
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 12:20:00 +02:00
|
|
|
int dos_qmodelindex_column(const ::DosQModelIndex *vptr)
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-06-19 12:20:00 +02:00
|
|
|
auto index = static_cast<const QModelIndex *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return index->column();
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 12:20:00 +02:00
|
|
|
bool dos_qmodelindex_isValid(const ::DosQModelIndex *vptr)
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-06-19 12:20:00 +02:00
|
|
|
auto index = static_cast<const QModelIndex *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return index->isValid();
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 12:20:00 +02:00
|
|
|
::DosQVariant *dos_qmodelindex_data(const ::DosQModelIndex *vptr, int role)
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-06-19 12:20:00 +02:00
|
|
|
auto index = static_cast<const QModelIndex *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
auto result = new QVariant(index->data(role));
|
|
|
|
return static_cast<QVariant *>(result);
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 12:20:00 +02:00
|
|
|
::DosQModelIndex *dos_qmodelindex_parent(const ::DosQModelIndex *vptr)
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-06-19 12:20:00 +02:00
|
|
|
auto index = static_cast<const QModelIndex *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
auto result = new QModelIndex(index->parent());
|
|
|
|
return static_cast<QModelIndex *>(result);
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 12:20:00 +02:00
|
|
|
::DosQModelIndex *dos_qmodelindex_child(const ::DosQModelIndex *vptr, int row, int column)
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-06-19 12:20:00 +02:00
|
|
|
auto index = static_cast<const QModelIndex *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
auto result = new QModelIndex(index->child(row, column));
|
|
|
|
return static_cast<QModelIndex *>(result);
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
|
|
|
|
2016-06-19 12:20:00 +02:00
|
|
|
::DosQModelIndex *dos_qmodelindex_sibling(const ::DosQModelIndex *vptr, int row, int column)
|
2015-01-18 12:26:51 +01:00
|
|
|
{
|
2016-06-19 12:20:00 +02:00
|
|
|
auto index = static_cast<const QModelIndex *>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
auto result = new QModelIndex(index->sibling(row, column));
|
|
|
|
return static_cast<QModelIndex *>(result);
|
2015-01-18 12:26:51 +01:00
|
|
|
}
|
2015-01-19 22:23:18 +01:00
|
|
|
|
2016-06-19 12:20:00 +02:00
|
|
|
void dos_qmodelindex_assign(::DosQModelIndex *l, const ::DosQModelIndex *r)
|
2016-02-25 22:26:06 +01:00
|
|
|
{
|
|
|
|
auto li = static_cast<QModelIndex *>(l);
|
2016-06-19 12:20:00 +02:00
|
|
|
auto ri = static_cast<const QModelIndex *>(r);
|
2016-02-25 22:26:06 +01:00
|
|
|
*li = *ri;
|
|
|
|
}
|
|
|
|
|
2017-04-13 14:35:49 +02:00
|
|
|
void *dos_qmodelindex_internalPointer(DosQModelIndex *vptr)
|
|
|
|
{
|
|
|
|
auto index = static_cast<const QModelIndex *>(vptr);
|
|
|
|
return index->internalPointer();
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQHashIntQByteArray *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
|
|
|
}
|
|
|
|
|
2016-03-28 21:36:34 +02:00
|
|
|
void dos_qhash_int_qbytearray_delete(::DosQHashIntQByteArray *vptr)
|
2015-01-31 12:50:14 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto qHash = static_cast<QHash<int, QByteArray>*>(vptr);
|
2015-01-31 12:50:14 +01:00
|
|
|
delete qHash;
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:36:34 +02:00
|
|
|
void dos_qhash_int_qbytearray_insert(::DosQHashIntQByteArray *vptr, int key, const char *value)
|
2015-01-31 12:50:14 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto qHash = static_cast<QHash<int, QByteArray>*>(vptr);
|
2015-01-31 12:50:14 +01:00
|
|
|
qHash->insert(key, QByteArray(value));
|
|
|
|
}
|
|
|
|
|
2016-07-09 18:20:00 +02:00
|
|
|
char *dos_qhash_int_qbytearray_value(const ::DosQHashIntQByteArray *vptr, int key)
|
2015-01-31 14:20:36 +01:00
|
|
|
{
|
2016-07-10 00:17:31 +02:00
|
|
|
auto qHash = static_cast<const QHash<int, QByteArray>*>(vptr);
|
2016-02-27 16:05:23 +01:00
|
|
|
return convert_to_cstring(qHash->value(key));
|
2015-01-31 14:20:36 +01:00
|
|
|
}
|
|
|
|
|
2016-01-23 19:08:58 +01:00
|
|
|
void dos_qresource_register(const char *filename)
|
2015-12-05 17:33:54 +01:00
|
|
|
{
|
2015-12-06 00:23:25 +01:00
|
|
|
QResource::registerResource(QString::fromUtf8(filename));
|
2015-12-05 17:33:54 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQUrl *dos_qurl_create(const char *url, int parsingMode)
|
2015-12-05 17:33:54 +01:00
|
|
|
{
|
2018-10-07 10:42:59 +02:00
|
|
|
return new QUrl(QString::fromUtf8(url), static_cast<QUrl::ParsingMode>(parsingMode));
|
2015-12-05 17:33:54 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qurl_delete(::DosQUrl *vptr)
|
2015-12-05 17:33:54 +01:00
|
|
|
{
|
2016-01-28 20:59:04 +01:00
|
|
|
auto url = static_cast<QUrl *>(vptr);
|
2015-12-05 17:33:54 +01:00
|
|
|
delete url;
|
|
|
|
}
|
|
|
|
|
2016-06-26 15:05:38 +02:00
|
|
|
char *dos_qurl_to_string(const ::DosQUrl *vptr)
|
2015-12-22 17:53:29 +01:00
|
|
|
{
|
2016-06-26 15:05:38 +02:00
|
|
|
auto url = static_cast<const 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-06-26 15:05:38 +02:00
|
|
|
bool dos_qurl_isValid(const ::DosQUrl *vptr)
|
|
|
|
{
|
|
|
|
auto url = static_cast<const QUrl *>(vptr);
|
|
|
|
return url->isValid();
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:36:34 +02:00
|
|
|
::DosQMetaObject *dos_qmetaobject_create(::DosQMetaObject *superClassVPtr,
|
2016-03-28 21:32:07 +02:00
|
|
|
const char *className,
|
|
|
|
const ::SignalDefinitions *signalDefinitions,
|
|
|
|
const ::SlotDefinitions *slotDefinitions,
|
|
|
|
const ::PropertyDefinitions *propertyDefinitions)
|
2015-12-27 17:58:49 +01:00
|
|
|
{
|
2016-01-07 13:24:52 +01:00
|
|
|
Q_ASSERT(superClassVPtr);
|
2016-03-28 21:32:07 +02:00
|
|
|
auto superClassHolder = static_cast<DOS::DosIQMetaObjectHolder *>(superClassVPtr);
|
2016-01-07 13:24:52 +01:00
|
|
|
Q_ASSERT(superClassHolder);
|
|
|
|
auto data = superClassHolder->data();
|
|
|
|
Q_ASSERT(data);
|
2016-01-07 12:04:40 +01:00
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
auto metaObject = std::make_shared<DOS::DosQMetaObject>(data,
|
|
|
|
QString::fromUtf8(className),
|
|
|
|
DOS::toVector(*signalDefinitions),
|
|
|
|
DOS::toVector(*slotDefinitions),
|
|
|
|
DOS::toVector(*propertyDefinitions));
|
|
|
|
return new DOS::DosIQMetaObjectHolder(std::move(metaObject));
|
2015-12-27 17:58:49 +01:00
|
|
|
}
|
|
|
|
|
2020-05-16 21:27:26 -04:00
|
|
|
void dos_signal(::DosQObject *vptr, const char *signal, const char *slot) //
|
|
|
|
{
|
|
|
|
auto qobject = static_cast<QObject *>(vptr);
|
|
|
|
QMetaObject::invokeMethod(qobject, slot, Qt::QueuedConnection, Q_ARG(QString, signal));
|
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
void dos_qmetaobject_delete(::DosQMetaObject *vptr)
|
2015-12-27 17:58:49 +01:00
|
|
|
{
|
2016-03-28 21:32:07 +02:00
|
|
|
auto factory = static_cast<DOS::DosIQMetaObjectHolder *>(vptr);
|
2015-12-27 17:58:49 +01:00
|
|
|
delete factory;
|
|
|
|
}
|
2016-01-07 12:04:40 +01:00
|
|
|
|
2017-03-22 21:25:36 +01:00
|
|
|
::DosQMetaObject *dos_qabstracttablemodel_qmetaobject()
|
|
|
|
{
|
|
|
|
return new DOS::DosIQMetaObjectHolder(std::make_shared<DOS::DosQAbstractTableModelMetaObject>());
|
|
|
|
}
|
|
|
|
|
|
|
|
::DosQAbstractListModel *dos_qabstracttablemodel_create(void *dObjectPointer,
|
2017-03-22 22:23:17 +01:00
|
|
|
::DosQMetaObject *metaObjectPointer,
|
|
|
|
::DObjectCallback dObjectCallback,
|
2017-04-09 14:34:47 +02:00
|
|
|
::DosQAbstractItemModelCallbacks *callbacks)
|
2017-03-22 21:25:36 +01:00
|
|
|
{
|
|
|
|
auto metaObjectHolder = static_cast<DOS::DosIQMetaObjectHolder *>(metaObjectPointer);
|
|
|
|
auto model = new DOS::DosQAbstractTableModel(dObjectPointer,
|
2017-03-22 22:23:17 +01:00
|
|
|
metaObjectHolder->data(),
|
2018-10-07 17:31:33 +02:00
|
|
|
dObjectCallback,
|
2017-04-02 14:47:42 +02:00
|
|
|
*callbacks);
|
2017-03-22 21:25:36 +01:00
|
|
|
QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership);
|
|
|
|
return static_cast<QObject *>(model);
|
|
|
|
}
|
|
|
|
|
2017-03-25 15:08:04 +01:00
|
|
|
DosQModelIndex *dos_qabstracttablemodel_index(DosQAbstractTableModel *vptr, int row, int column, DosQModelIndex *dosParent)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosQAbstractTableModel *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto parent = static_cast<QModelIndex *>(dosParent);
|
2017-03-25 15:08:04 +01:00
|
|
|
auto result = new QModelIndex(model->defaultIndex(row, column, *parent));
|
2017-04-09 14:34:47 +02:00
|
|
|
return static_cast<DosQModelIndex *>(result);
|
2017-03-25 15:08:04 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
DosQModelIndex *dos_qabstracttablemodel_parent(DosQAbstractTableModel *vptr, DosQModelIndex *dosChild)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosQAbstractTableModel *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto child = static_cast<QModelIndex *>(dosChild);
|
2017-03-25 15:08:04 +01:00
|
|
|
auto result = new QModelIndex(model->defaultParent(*child));
|
2017-04-09 14:34:47 +02:00
|
|
|
return static_cast<DosQModelIndex *>(result);
|
2017-03-25 15:08:04 +01:00
|
|
|
}
|
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQMetaObject *dos_qabstractlistmodel_qmetaobject()
|
|
|
|
{
|
|
|
|
return new DOS::DosIQMetaObjectHolder(std::make_shared<DOS::DosQAbstractListModelMetaObject>());
|
|
|
|
}
|
|
|
|
|
|
|
|
::DosQAbstractListModel *dos_qabstractlistmodel_create(void *dObjectPointer,
|
|
|
|
::DosQMetaObject *metaObjectPointer,
|
|
|
|
::DObjectCallback dObjectCallback,
|
2017-04-09 14:34:47 +02:00
|
|
|
::DosQAbstractItemModelCallbacks *callbacks)
|
2016-03-28 21:32:07 +02:00
|
|
|
{
|
|
|
|
auto metaObjectHolder = static_cast<DOS::DosIQMetaObjectHolder *>(metaObjectPointer);
|
|
|
|
auto model = new DOS::DosQAbstractListModel(dObjectPointer,
|
|
|
|
metaObjectHolder->data(),
|
2018-10-07 17:31:33 +02:00
|
|
|
dObjectCallback,
|
2017-04-02 14:47:42 +02:00
|
|
|
*callbacks);
|
2017-03-22 21:21:57 +01:00
|
|
|
QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership);
|
|
|
|
return static_cast<QObject *>(model);
|
|
|
|
}
|
|
|
|
|
2017-03-25 15:08:04 +01:00
|
|
|
DosQModelIndex *dos_qabstractlistmodel_index(DosQAbstractListModel *vptr, int row, int column, DosQModelIndex *dosParent)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosQAbstractListModel *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto parent = static_cast<QModelIndex *>(dosParent);
|
2017-03-25 15:08:04 +01:00
|
|
|
auto result = new QModelIndex(model->defaultIndex(row, column, *parent));
|
2017-04-09 14:34:47 +02:00
|
|
|
return static_cast<DosQModelIndex *>(result);
|
2017-03-25 15:08:04 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
DosQModelIndex *dos_qabstractlistmodel_parent(DosQAbstractListModel *vptr, DosQModelIndex *dosChild)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosQAbstractListModel *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto child = static_cast<QModelIndex *>(dosChild);
|
2017-03-25 15:08:04 +01:00
|
|
|
auto result = new QModelIndex(model->defaultParent(*child));
|
2017-04-09 14:34:47 +02:00
|
|
|
return static_cast<DosQModelIndex *>(result);
|
2017-03-25 15:08:04 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
int dos_qabstractlistmodel_columnCount(DosQAbstractListModel *vptr, DosQModelIndex *dosParent)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosQAbstractListModel *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto parent = static_cast<QModelIndex *>(dosParent);
|
2017-03-25 15:08:04 +01:00
|
|
|
return model->defaultColumnCount(*parent);
|
|
|
|
}
|
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
::DosQMetaObject *dos_qabstractitemmodel_qmetaobject()
|
2016-03-28 21:32:07 +02:00
|
|
|
{
|
2017-03-05 18:18:30 +01:00
|
|
|
return new DOS::DosIQMetaObjectHolder(std::make_shared<DOS::DosQAbstractItemModelMetaObject>());
|
2016-03-28 21:32:07 +02:00
|
|
|
}
|
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
::DosQAbstractItemModel *dos_qabstractitemmodel_create(void *dObjectPointer,
|
2016-03-28 21:32:07 +02:00
|
|
|
::DosQMetaObject *metaObjectPointer,
|
|
|
|
::DObjectCallback dObjectCallback,
|
2017-04-09 14:34:47 +02:00
|
|
|
::DosQAbstractItemModelCallbacks *callbacks)
|
2016-03-28 21:32:07 +02:00
|
|
|
{
|
|
|
|
auto metaObjectHolder = static_cast<DOS::DosIQMetaObjectHolder *>(metaObjectPointer);
|
2017-03-05 18:18:30 +01:00
|
|
|
auto model = new DOS::DosQAbstractItemModel(dObjectPointer,
|
2016-03-28 21:32:07 +02:00
|
|
|
metaObjectHolder->data(),
|
2018-10-07 17:31:33 +02:00
|
|
|
dObjectCallback,
|
2017-04-02 14:47:42 +02:00
|
|
|
*callbacks);
|
2016-01-08 19:31:33 +01:00
|
|
|
QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership);
|
2016-02-27 16:05:23 +01:00
|
|
|
return static_cast<QObject *>(model);
|
2016-01-07 12:04:40 +01:00
|
|
|
}
|
2016-01-08 19:31:33 +01:00
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
void dos_qabstractitemmodel_beginInsertRows(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last)
|
2016-01-08 19:31:33 +01:00
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
2017-03-05 18:18:30 +01:00
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2016-01-28 20:59:04 +01:00
|
|
|
auto index = static_cast<QModelIndex *>(parentIndex);
|
2016-01-08 19:31:33 +01:00
|
|
|
model->publicBeginInsertRows(*index, first, last);
|
|
|
|
}
|
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
void dos_qabstractitemmodel_endInsertRows(::DosQAbstractItemModel *vptr)
|
2016-01-08 19:31:33 +01:00
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
2017-03-05 18:18:30 +01:00
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2016-01-08 19:31:33 +01:00
|
|
|
model->publicEndInsertRows();
|
|
|
|
}
|
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
void dos_qabstractitemmodel_beginRemoveRows(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last)
|
2016-01-08 19:31:33 +01:00
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
2017-03-05 18:18:30 +01:00
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2016-01-28 20:59:04 +01:00
|
|
|
auto index = static_cast<QModelIndex *>(parentIndex);
|
2016-01-08 19:31:33 +01:00
|
|
|
model->publicBeginRemoveRows(*index, first, last);
|
|
|
|
}
|
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
void dos_qabstractitemmodel_endRemoveRows(::DosQAbstractItemModel *vptr)
|
2016-01-08 19:31:33 +01:00
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
2017-03-05 18:18:30 +01:00
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2016-01-08 19:31:33 +01:00
|
|
|
model->publicEndRemoveRows();
|
|
|
|
}
|
|
|
|
|
2017-03-05 18:37:49 +01:00
|
|
|
void dos_qabstractitemmodel_beginInsertColumns(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
|
|
|
auto index = static_cast<QModelIndex *>(parentIndex);
|
|
|
|
model->publicBeginInsertColumns(*index, first, last);
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qabstractitemmodel_endInsertColumns(::DosQAbstractItemModel *vptr)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
|
|
|
model->publicEndInsertColumns();
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qabstractitemmodel_beginRemoveColumns(::DosQAbstractItemModel *vptr, ::DosQModelIndex *parentIndex, int first, int last)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
|
|
|
auto index = static_cast<QModelIndex *>(parentIndex);
|
|
|
|
model->publicBeginRemoveColumns(*index, first, last);
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qabstractitemmodel_endRemoveColumns(::DosQAbstractItemModel *vptr)
|
2016-01-08 19:31:33 +01:00
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
2017-03-05 18:37:49 +01:00
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
|
|
|
model->publicEndRemoveColumns();
|
|
|
|
}
|
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
void dos_qabstractitemmodel_beginResetModel(::DosQAbstractItemModel *vptr)
|
2016-01-08 19:31:33 +01:00
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
2017-03-05 18:18:30 +01:00
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2016-01-08 19:31:33 +01:00
|
|
|
model->publicBeginResetModel();
|
|
|
|
}
|
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
void dos_qabstractitemmodel_endResetModel(::DosQAbstractItemModel *vptr)
|
2016-01-08 19:31:33 +01:00
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
2017-03-05 18:18:30 +01:00
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2016-01-08 19:31:33 +01:00
|
|
|
model->publicEndResetModel();
|
|
|
|
}
|
|
|
|
|
2017-03-05 18:18:30 +01:00
|
|
|
void dos_qabstractitemmodel_dataChanged(::DosQAbstractItemModel *vptr,
|
2016-06-19 18:17:48 +02:00
|
|
|
const ::DosQModelIndex *topLeftIndex,
|
|
|
|
const ::DosQModelIndex *bottomRightIndex,
|
2016-01-23 19:08:58 +01:00
|
|
|
int *rolesArrayPtr,
|
2016-01-08 19:31:33 +01:00
|
|
|
int rolesArrayLength)
|
|
|
|
{
|
2016-02-27 15:07:23 +01:00
|
|
|
auto object = static_cast<QObject *>(vptr);
|
2017-03-05 18:18:30 +01:00
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2016-06-19 18:17:48 +02:00
|
|
|
auto topLeft = static_cast<const QModelIndex *>(topLeftIndex);
|
|
|
|
auto bottomRight = static_cast<const QModelIndex *>(bottomRightIndex);
|
2016-01-08 19:31:33 +01:00
|
|
|
auto roles = QVector<int>::fromStdVector(std::vector<int>(rolesArrayPtr, rolesArrayPtr + rolesArrayLength));
|
|
|
|
model->publicDataChanged(*topLeft, *bottomRight, roles);
|
|
|
|
}
|
2016-01-24 22:03:12 +01:00
|
|
|
|
2017-03-05 19:06:07 +01:00
|
|
|
DosQModelIndex *dos_qabstractitemmodel_createIndex(::DosQAbstractItemModel *vptr,
|
2017-03-22 22:23:17 +01:00
|
|
|
int row, int column, void *data)
|
2017-03-05 19:06:07 +01:00
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
|
|
|
return new QModelIndex(model->publicCreateIndex(row, column, data));
|
|
|
|
}
|
|
|
|
|
2017-03-25 15:08:04 +01:00
|
|
|
bool dos_qabstractitemmodel_setData(DosQAbstractItemModel *vptr,
|
|
|
|
DosQModelIndex *dosIndex, DosQVariant *dosValue, int role)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto index = static_cast<QModelIndex *>(dosIndex);
|
|
|
|
auto value = static_cast<QVariant *>(dosValue);
|
2017-03-25 15:08:04 +01:00
|
|
|
return model->defaultSetData(*index, *value, role);
|
|
|
|
}
|
|
|
|
|
|
|
|
DosQHashIntQByteArray *dos_qabstractitemmodel_roleNames(DosQAbstractItemModel *vptr)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
|
|
|
auto result = new QHash<int, QByteArray>(model->defaultRoleNames());
|
2017-04-09 14:34:47 +02:00
|
|
|
return static_cast<DosQHashIntQByteArray *>(result);
|
2017-03-25 15:08:04 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
int dos_qabstractitemmodel_flags(DosQAbstractItemModel *vptr, DosQModelIndex *dosIndex)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto index = static_cast<QModelIndex *>(dosIndex);
|
2018-10-07 10:42:59 +02:00
|
|
|
return static_cast<int>(model->defaultFlags(*index));
|
2017-03-25 15:08:04 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
DosQVariant *dos_qabstractitemmodel_headerData(DosQAbstractItemModel *vptr, int section, int orientation, int role)
|
2017-03-22 22:23:17 +01:00
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2017-03-25 15:08:04 +01:00
|
|
|
auto result = new QVariant(model->defaultHeaderData(section, static_cast<Qt::Orientation>(orientation), role));
|
|
|
|
return static_cast<DosQVariant *>(result);
|
2017-03-22 22:23:17 +01:00
|
|
|
}
|
|
|
|
|
2017-04-02 16:12:18 +02:00
|
|
|
bool dos_qabstractitemmodel_hasChildren(DosQAbstractItemModel *vptr, DosQModelIndex *dosParentIndex)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto parentIndex = static_cast<QModelIndex *>(dosParentIndex);
|
2017-04-02 16:12:18 +02:00
|
|
|
return model->defaultHasChildren(*parentIndex);
|
|
|
|
}
|
|
|
|
|
2017-04-17 00:52:43 +04:00
|
|
|
bool dos_qabstractitemmodel_hasIndex(DosQAbstractItemModel *vptr, int row, int column, DosQModelIndex *dosParentIndex)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
|
|
|
auto index = static_cast<QModelIndex *>(dosParentIndex);
|
|
|
|
return model->hasIndex(row, column, *index);
|
|
|
|
}
|
|
|
|
|
2017-04-02 16:12:18 +02:00
|
|
|
bool dos_qabstractitemmodel_canFetchMore(DosQAbstractItemModel *vptr, DosQModelIndex *dosParentIndex)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto parentIndex = static_cast<QModelIndex *>(dosParentIndex);
|
2017-04-02 16:12:18 +02:00
|
|
|
return model->defaultCanFetchMore(*parentIndex);
|
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qabstractitemmodel_fetchMore(DosQAbstractItemModel *vptr, DosQModelIndex *dosParentIndex)
|
|
|
|
{
|
|
|
|
auto object = static_cast<QObject *>(vptr);
|
|
|
|
auto model = dynamic_cast<DOS::DosIQAbstractItemModelImpl *>(object);
|
2017-04-09 14:34:47 +02:00
|
|
|
auto parentIndex = static_cast<QModelIndex *>(dosParentIndex);
|
2017-04-02 16:12:18 +02:00
|
|
|
model->defaultFetchMore(*parentIndex);
|
|
|
|
}
|
|
|
|
|
2016-02-27 16:05:23 +01:00
|
|
|
int dos_qdeclarative_qmlregistertype(const ::QmlRegisterType *cArgs)
|
2016-01-27 20:08:12 +01:00
|
|
|
{
|
2016-03-28 21:32:07 +02:00
|
|
|
auto holder = static_cast<DOS::DosIQMetaObjectHolder *>(cArgs->staticMetaObject);
|
2016-01-27 20:08:12 +01:00
|
|
|
|
|
|
|
DOS::QmlRegisterType args;
|
2016-02-21 18:14:51 +01:00
|
|
|
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-01-27 20:08:12 +01:00
|
|
|
|
2016-03-28 21:32:07 +02:00
|
|
|
return DOS::dosQmlRegisterType(std::move(args));
|
2016-01-24 22:03:12 +01:00
|
|
|
}
|
2016-02-21 19:58:06 +01:00
|
|
|
|
2016-02-27 16:05:23 +01:00
|
|
|
int dos_qdeclarative_qmlregistersingletontype(const ::QmlRegisterType *cArgs)
|
2016-02-21 19:58:06 +01:00
|
|
|
{
|
2016-03-28 21:32:07 +02:00
|
|
|
auto holder = static_cast<DOS::DosIQMetaObjectHolder *>(cArgs->staticMetaObject);
|
2016-02-21 19:58:06 +01:00
|
|
|
|
|
|
|
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-03-28 21:32:07 +02:00
|
|
|
return DOS::dosQmlRegisterSingletonType(std::move(args));
|
2016-02-21 19:58:06 +01:00
|
|
|
}
|
2017-08-24 22:52:39 +02:00
|
|
|
|
|
|
|
void dos_qquickstyle_set_style(const char *style)
|
|
|
|
{
|
2017-08-24 23:17:11 +02:00
|
|
|
#ifdef QT_QUICKCONTROLS2_LIB
|
2017-08-24 22:52:39 +02:00
|
|
|
QQuickStyle::setStyle(QString::fromUtf8(style));
|
2017-08-24 23:17:11 +02:00
|
|
|
#else
|
|
|
|
std::cerr << "Library has not QtQuickControls2 support" << std::endl;
|
|
|
|
#endif
|
2017-08-24 22:52:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void dos_qquickstyle_set_fallback_style(const char *style)
|
|
|
|
{
|
2017-08-24 23:17:11 +02:00
|
|
|
#ifdef QT_QUICKCONTROLS2_LIB
|
2017-08-24 22:52:39 +02:00
|
|
|
QQuickStyle::setFallbackStyle(QString::fromUtf8(style));
|
2017-08-24 23:17:11 +02:00
|
|
|
#else
|
|
|
|
std::cerr << "Library has no QtQuickControls2 support" << std::endl;
|
|
|
|
#endif
|
2017-08-24 22:52:39 +02:00
|
|
|
}
|
2019-10-04 00:47:36 +02:00
|
|
|
|
2019-11-13 21:55:52 +01:00
|
|
|
void dos_qcoreapplication_process_events(DosQEventLoopProcessEventFlag flags)
|
2019-10-04 00:47:36 +02:00
|
|
|
{
|
|
|
|
qApp->processEvents(static_cast<QEventLoop::ProcessEventsFlag>(flags));
|
|
|
|
}
|
|
|
|
|
2019-11-13 21:55:52 +01:00
|
|
|
void dos_qcoreapplication_process_events_timed(DosQEventLoopProcessEventFlag flags, int ms)
|
2019-10-04 00:47:36 +02:00
|
|
|
{
|
|
|
|
qApp->processEvents(static_cast<QEventLoop::ProcessEventsFlag>(flags), ms);
|
|
|
|
}
|