diff -r ef2fc0210362 -r 90bd2c331703 qmlfrontend/main.cpp --- a/qmlfrontend/main.cpp Fri Dec 07 13:04:00 2018 +0100 +++ b/qmlfrontend/main.cpp Fri Dec 07 13:35:08 2018 +0100 @@ -4,7 +4,9 @@ #include #include "engine_interface.h" +#include "game_view.h" #include "hwengine.h" +#include "preview_acceptor.h" namespace Engine { hedgewars_engine_protocol_version_t* hedgewars_engine_protocol_version; @@ -18,6 +20,14 @@ advance_simulation_t* advance_simulation; }; // namespace Engine +static QObject* previewacceptor_singletontype_provider( + QQmlEngine* engine, QJSEngine* scriptEngine) { + Q_UNUSED(scriptEngine) + + PreviewAcceptor* acceptor = new PreviewAcceptor(engine); + return acceptor; +} + void loadEngineLibrary() { #ifdef Q_OS_WIN QLibrary hwlib("./libhedgewars_engine.dll"); @@ -64,7 +74,14 @@ QQmlApplicationEngine engine; - HWEngine::exposeToQML(); + qmlRegisterSingletonType( + "Hedgewars.Engine", 1, 0, "PreviewAcceptor", + previewacceptor_singletontype_provider); + qmlRegisterType("Hedgewars.Engine", 1, 0, "HWEngine"); + qmlRegisterType("Hedgewars.Engine", 1, 0, "GameView"); + qmlRegisterUncreatableType("Hedgewars.Engine", 1, 0, + "EngineInstance", + "Create by HWEngine run methods"); engine.load(QUrl(QLatin1String("qrc:/main.qml"))); if (engine.rootObjects().isEmpty()) return -1;