28 lines
785 B
Rust
28 lines
785 B
Rust
|
use cpp::{cpp, cpp_class};
|
||
|
use qmetaobject::prelude::*;
|
||
|
use qmetaobject::QObjectPinned;
|
||
|
|
||
|
cpp! {{
|
||
|
#include <KLocalizedContext>
|
||
|
#include <QtCore/QObject>
|
||
|
#include <QtQml/QQmlEngine>
|
||
|
#include <QtQuick/QtQuick>
|
||
|
|
||
|
struct KLocalizedContextHolder {
|
||
|
std::unique_ptr<KLocalizedContext> klocalized;
|
||
|
|
||
|
KLocalizedContextHolder(QObject *parent) : klocalized(new KLocalizedContext(parent)) {}
|
||
|
};
|
||
|
}}
|
||
|
|
||
|
cpp_class!(pub unsafe struct KLocalizedContext as "KLocalizedContextHolder");
|
||
|
|
||
|
impl KLocalizedContext {
|
||
|
pub fn init_from_engine(engine: &QmlEngine) {
|
||
|
let engine_ptr = engine.cpp_ptr();
|
||
|
cpp!(unsafe [engine_ptr as "QQmlEngine*"] {
|
||
|
engine_ptr->rootContext()->setContextObject(new KLocalizedContext(engine_ptr));
|
||
|
});
|
||
|
}
|
||
|
}
|