Skip to content

Commit a7f45f9

Browse files
committed
finish up qml exposure
1 parent 420ffe8 commit a7f45f9

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

demos/ff7tkQmlGallery/main.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,19 @@ int main(int argc, char *argv[])
2626
{
2727
QGuiApplication app(argc, argv);
2828

29-
qmlRegisterSingletonType<FF7Text>("org.ff7tk", 1, 0, "FF7Text", [](QQmlEngine *engine, QJSEngine *jsEngine) -> QObject * {
29+
qmlRegisterSingletonType<FF7Text>("org.ff7tk", 1, 0, "FF7Text", [](QQmlEngine *engine, QJSEngine *jsEngine) -> QObject * {
3030
return FF7Text::qmlSingletonRegister(engine, jsEngine);
3131
});
3232

3333
qmlRegisterSingletonType<FF7Item>("org.ff7tk", 1, 0, "FF7Item", [](QQmlEngine *engine, QJSEngine *jsEngine) -> QObject * {
3434
return FF7Item::qmlSingletonRegister(engine, jsEngine);
3535
});
3636

37-
QString versionString = QStringLiteral("%1").arg(ff7tkInfo::version());
37+
qmlRegisterSingletonType<ff7tkInfo>("org.ff7tk", 1, 0, "FF7Info", [](QQmlEngine *engine, QJSEngine *jsEngine) -> QObject * {
38+
return ff7tkInfo::qmlSingletonRegister(engine, jsEngine);
39+
});
40+
3841
QQmlApplicationEngine engine;
39-
engine.rootContext()->setContextProperty("ff7tkVersion", versionString);
4042
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
4143

4244
if (engine.rootObjects().isEmpty()) {

demos/ff7tkQmlGallery/main.qml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import QtQuick 2.15
2-
import QtQuick.Controls 2.15
1+
import QtQuick
2+
import QtQuick.Controls
33
import org.ff7tk 1.0 as FF7tk
44

55
ApplicationWindow {
66
id: root
77
width: 800
88
height: 600
9-
title: "ff7tkQmlGallery-" + ff7tkVersion
9+
title: "ff7tkQmlGallery-" + FF7tk.FF7Info.version
1010
visible: true
1111
header: Item {
1212
id: headerItem
@@ -70,6 +70,7 @@ ApplicationWindow {
7070
anchors.top: itemPreviewOptions.bottom
7171
anchors.left: parent.left
7272
anchors.margins: 6
73+
editable: true
7374
value: -1
7475
from: -1
7576
to: 319

src/core/ff7tkInfo.h.in

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@
2020
#include <QMap>
2121
#include <QTranslator>
2222
#include <QCoreApplication>
23+
#include <QQmlEngine>
2324

24-
25-
class QQmlEngine;
2625
class QJSEngine;
2726

2827
/*! \class ff7tk
@@ -31,11 +30,17 @@ class QJSEngine;
3130
class FF7TK_EXPORT ff7tkInfo: public QObject
3231
{
3332
Q_OBJECT
33+
Q_PROPERTY(QString ff7tkVersion READ version CONSTANT)
3434
public:
3535
/**
3636
* @brief Register The ff7tkInfo Singleton for QML
3737
*/
38-
static QObject *qmlSingletonRegister(QQmlEngine *engine, QJSEngine *scriptEngine);
38+
static QObject *qmlSingletonRegister(QQmlEngine *engine, QJSEngine *scriptEngine)
39+
{
40+
Q_UNUSED(scriptEngine)
41+
engine->setObjectOwnership(instance(), QQmlEngine::CppOwnership);
42+
return instance();
43+
}
3944

4045
/**
4146
* @brief Report version of ff7tk in use
@@ -101,6 +106,10 @@ public:
101106
return ff7tk_translations;
102107
}
103108
private:
104-
static ff7tkInfo *instance();
109+
static ff7tkInfo *instance()
110+
{
111+
static ff7tkInfo m;
112+
return &m;
113+
}
105114
inline static const auto m_ff7tk_version = QStringLiteral("@FF7TK_VERSION@");
106115
};

0 commit comments

Comments
 (0)