mirror of
https://github.com/qmlnet/qmlnet.git
synced 2026-05-21 06:45:32 -06:00
Added support for registering an rcc file (compiled outside of .NET).
This commit is contained in:
parent
3147b58ce3
commit
3b2a4a6c97
5 changed files with 45 additions and 2 deletions
13
src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.cpp
Normal file
13
src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.cpp
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#include <QtNetCoreQml/qml/QResource.h>
|
||||
#include <QResource>
|
||||
#include <QDir>
|
||||
|
||||
extern "C" {
|
||||
|
||||
Q_DECL_EXPORT bool qresource_registerResource(LPWSTR rccFileName, LPWSTR resourceRoot) {
|
||||
QString rccFileNameString = QString::fromUtf16((const char16_t*)rccFileName);
|
||||
QString resourceRootString = QString::fromUtf16((const char16_t*)resourceRoot);
|
||||
return QResource::registerResource(rccFileNameString, resourceRootString);
|
||||
}
|
||||
|
||||
}
|
||||
6
src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.h
Normal file
6
src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef NET_QRESOURCE_H
|
||||
#define NET_QRESOURCE_H
|
||||
|
||||
#include <QtNetCoreQml.h>
|
||||
|
||||
#endif // NET_QRESOURCE_H
|
||||
|
|
@ -6,7 +6,8 @@ HEADERS += \
|
|||
$$PWD/NetValueMetaObject.h \
|
||||
$$PWD/NetValueType.h \
|
||||
$$PWD/NetVariantList.h \
|
||||
$$PWD/NetTestHelper.h
|
||||
$$PWD/NetTestHelper.h \
|
||||
$$PWD/QResource.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/QGuiApplication.cpp \
|
||||
|
|
@ -16,4 +17,5 @@ SOURCES += \
|
|||
$$PWD/NetValueMetaObject.cpp \
|
||||
$$PWD/NetValueType.cpp \
|
||||
$$PWD/NetVariantList.cpp \
|
||||
$$PWD/NetTestHelper.cpp
|
||||
$$PWD/NetTestHelper.cpp \
|
||||
$$PWD/QResource.cpp
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ namespace Qt.NetCore
|
|||
NetInstance = NativeLibraryBuilder.Default.ActivateInterface<INetInstanceInterop>("QtNetCoreQml");
|
||||
NetVariantList = NativeLibraryBuilder.Default.ActivateInterface<INetVariantListInterop>("QtNetCoreQml");
|
||||
NetTestHelper = NativeLibraryBuilder.Default.ActivateInterface<INetTestHelperInterop>("QtNetCoreQml");
|
||||
QResource = NativeLibraryBuilder.Default.ActivateInterface<IQResourceInterop>("QtNetCoreQml");
|
||||
|
||||
var cb = DefaultCallbacks.Callbacks();
|
||||
Callbacks.RegisterCallbacks(ref cb);
|
||||
|
|
@ -51,6 +52,8 @@ namespace Qt.NetCore
|
|||
|
||||
public static INetTestHelperInterop NetTestHelper { get; }
|
||||
|
||||
public static IQResourceInterop QResource { get; set; }
|
||||
|
||||
public static void RegisterCallbacks(ICallbacks callbacks)
|
||||
{
|
||||
var callbacksImpl = new CallbacksImpl(callbacks);
|
||||
|
|
|
|||
19
src/net/Qt.NetCore/Qml/QResource.cs
Normal file
19
src/net/Qt.NetCore/Qml/QResource.cs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
using System.Runtime.InteropServices;
|
||||
using AdvancedDLSupport;
|
||||
|
||||
namespace Qt.NetCore.Qml
|
||||
{
|
||||
public class QResource
|
||||
{
|
||||
public static bool RegisterResource(string rccFileName, string resourceRoot = null)
|
||||
{
|
||||
return Interop.QResource.RegisterResource(rccFileName, resourceRoot);
|
||||
}
|
||||
}
|
||||
|
||||
public interface IQResourceInterop
|
||||
{
|
||||
[NativeSymbol(Entrypoint = "qresource_registerResource")]
|
||||
bool RegisterResource([MarshalAs(UnmanagedType.LPWStr)]string rccFileName, [MarshalAs(UnmanagedType.LPWStr)]string resourceRoot);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue