Refine the wrapper type registration

This commit is contained in:
Simon Edwards 2022-05-01 20:23:21 +02:00
parent 02f901ddf1
commit bc9bf12e11

View File

@ -12,7 +12,13 @@ Napi::Object QObjectWrap::init(Napi::Env env, Napi::Object exports) {
env, CLASSNAME, {QOBJECT_WRAPPED_METHODS_EXPORT_DEFINE(QObjectWrap)}); env, CLASSNAME, {QOBJECT_WRAPPED_METHODS_EXPORT_DEFINE(QObjectWrap)});
constructor = Napi::Persistent(func); constructor = Napi::Persistent(func);
exports.Set(CLASSNAME, func); exports.Set(CLASSNAME, func);
WrapperCache::instance.registerWrapper(QString("NObject"), QObjectWrap::wrapFunc);
WrapperCache::instance.registerWrapper(QString("NObject"),
[](Napi::Env env, QObject *qobject) -> Napi::Object {
QObject *exactQObject = dynamic_cast<QObject*>(qobject);
Napi::Object wrapper = QObjectWrap::constructor.New({Napi::External<QObject>::New(env, exactQObject)});
return wrapper;
});
return exports; return exports;
} }
@ -39,11 +45,4 @@ QObjectWrap::QObjectWrap(const Napi::CallbackInfo& info)
.ThrowAsJavaScriptException(); .ThrowAsJavaScriptException();
} }
this->rawData = extrautils::configureQObject(this->getInternalInstance()); this->rawData = extrautils::configureQObject(this->getInternalInstance());
// WrapperCache::instance.store<QObject, QObjectWrap>(env, this->getInternalInstance(), this);
}
Napi::Object QObjectWrap::wrapFunc(Napi::Env env, QObject *qobject) {
// Qtype *exactQObject = dynamic_cast<Qtype*>(qobject)
Napi::Object wrapper = QObjectWrap::constructor.New({Napi::External<QObject>::New(env, qobject)});
return wrapper;
} }