mirror of
https://github.com/status-im/dotherside.git
synced 2025-02-12 04:26:43 +00:00
Add functionality to load assets with the Qt Resource System
Use case: Load application QML file and/or vendor QML modules from external binary resources (RCC)
This commit is contained in:
parent
e02b2b80b3
commit
d71da6200b
@ -29,6 +29,8 @@ DOS_API void dos_qapplication_delete();
|
|||||||
// QQmlApplicationEngine
|
// QQmlApplicationEngine
|
||||||
DOS_API void dos_qqmlapplicationengine_create(void** vptr);
|
DOS_API void dos_qqmlapplicationengine_create(void** vptr);
|
||||||
DOS_API void dos_qqmlapplicationengine_load(void* vptr, const char* filename);
|
DOS_API void dos_qqmlapplicationengine_load(void* vptr, const char* filename);
|
||||||
|
DOS_API void dos_qqmlapplicationengine_load_url(void* vptr, void* url);
|
||||||
|
DOS_API void dos_qqmlapplicationengine_add_import_path(void* vptr, const char* path);
|
||||||
DOS_API void dos_qqmlapplicationengine_context(void* vptr, void** context);
|
DOS_API void dos_qqmlapplicationengine_context(void* vptr, void** context);
|
||||||
DOS_API void dos_qqmlapplicationengine_delete(void* vptr);
|
DOS_API void dos_qqmlapplicationengine_delete(void* vptr);
|
||||||
|
|
||||||
@ -136,6 +138,13 @@ DOS_API void dos_qabstractlistmodel_endResetModel(void* vptr);
|
|||||||
DOS_API void dos_qabstractlistmodel_dataChanged(void* vptr, void* topLeft, void* bottomRight, int* rolesPtr, int rolesLength);
|
DOS_API void dos_qabstractlistmodel_dataChanged(void* vptr, void* topLeft, void* bottomRight, int* rolesPtr, int rolesLength);
|
||||||
DOS_API void dos_qabstractlistmodel_delete(void* vptr);
|
DOS_API void dos_qabstractlistmodel_delete(void* vptr);
|
||||||
|
|
||||||
|
// QResource
|
||||||
|
DOS_API void dos_qresource_register(const char* filename);
|
||||||
|
|
||||||
|
// QUrl
|
||||||
|
DOS_API void dos_qurl_create(void** vptr, const char* url, int parsingMode);
|
||||||
|
DOS_API void dos_qurl_delete(void* vptr);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <QtQml/QQmlApplicationEngine>
|
#include <QtQml/QQmlApplicationEngine>
|
||||||
#include <QtQuick/QQuickView>
|
#include <QtQuick/QQuickView>
|
||||||
#include <QtWidgets/QApplication>
|
#include <QtWidgets/QApplication>
|
||||||
|
#include <QResource>
|
||||||
|
|
||||||
#include "DOtherSide/DynamicQObject.h"
|
#include "DOtherSide/DynamicQObject.h"
|
||||||
#include "DOtherSide/BaseQAbstractListModel.h"
|
#include "DOtherSide/BaseQAbstractListModel.h"
|
||||||
@ -80,6 +81,19 @@ void dos_qqmlapplicationengine_load(void* vptr, const char* filename)
|
|||||||
engine->load(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QDir::separator() + QString(filename)));
|
engine->load(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QDir::separator() + QString(filename)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dos_qqmlapplicationengine_load_url(void* vptr, void* url)
|
||||||
|
{
|
||||||
|
QQmlApplicationEngine* engine = reinterpret_cast<QQmlApplicationEngine*>(vptr);
|
||||||
|
QUrl* qurl = reinterpret_cast<QUrl*>(url);
|
||||||
|
engine -> load(*qurl);
|
||||||
|
}
|
||||||
|
|
||||||
|
void dos_qqmlapplicationengine_add_import_path(void* vptr, const char* path)
|
||||||
|
{
|
||||||
|
QQmlApplicationEngine* engine = reinterpret_cast<QQmlApplicationEngine*>(vptr);
|
||||||
|
engine -> addImportPath(QString(path));
|
||||||
|
}
|
||||||
|
|
||||||
void dos_qqmlapplicationengine_context(void* vptr, void** context)
|
void dos_qqmlapplicationengine_context(void* vptr, void** context)
|
||||||
{
|
{
|
||||||
QQmlApplicationEngine* engine = reinterpret_cast<QQmlApplicationEngine*>(vptr);
|
QQmlApplicationEngine* engine = reinterpret_cast<QQmlApplicationEngine*>(vptr);
|
||||||
@ -531,3 +545,19 @@ void dos_qhash_int_qbytearray_value(QHashIntQByteArrayVoidPtr vptr, int key, cha
|
|||||||
*result = qstrdup(value.data());
|
*result = qstrdup(value.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dos_qresource_register(const char* filename)
|
||||||
|
{
|
||||||
|
QResource::registerResource(QString(filename));
|
||||||
|
}
|
||||||
|
|
||||||
|
void dos_qurl_create(void** vptr, const char* url, int parsingMode)
|
||||||
|
{
|
||||||
|
*vptr = new QUrl(QString(url), (QUrl::ParsingMode) parsingMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void dos_qurl_delete(void* vptr)
|
||||||
|
{
|
||||||
|
QUrl* url = reinterpret_cast<QUrl*>(vptr);
|
||||||
|
delete url;
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user