Eliminate one template param on WrapperCache::get()
This commit is contained in:
parent
1d92cc8f3e
commit
7bf97ef618
@ -30,7 +30,7 @@ class DLL_EXPORT NApplication : public QApplication, public EventWidget {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
auto instance =
|
||||
WrapperCache::instance.get<QScreen, QScreenWrap>(env, screen, false);
|
||||
WrapperCache::instance.get<QScreen>(env, screen, &QScreenWrap::constructor, false);
|
||||
this->emitOnNode.Call(
|
||||
{Napi::String::New(env, "primaryScreenChanged"), instance});
|
||||
});
|
||||
@ -39,7 +39,7 @@ class DLL_EXPORT NApplication : public QApplication, public EventWidget {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
auto instance =
|
||||
WrapperCache::instance.get<QScreen, QScreenWrap>(env, screen, false);
|
||||
WrapperCache::instance.get<QScreen>(env, screen, &QScreenWrap::constructor, false);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "screenAdded"), instance});
|
||||
});
|
||||
|
||||
@ -48,7 +48,7 @@ class DLL_EXPORT NApplication : public QApplication, public EventWidget {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
auto instance =
|
||||
WrapperCache::instance.get<QScreen, QScreenWrap>(env, screen, false);
|
||||
WrapperCache::instance.get<QScreen>(env, screen, &QScreenWrap::constructor, false);
|
||||
this->emitOnNode.Call(
|
||||
{Napi::String::New(env, "screenRemoved"), instance});
|
||||
});
|
||||
|
||||
@ -427,7 +427,7 @@
|
||||
Napi::Env env = info.Env(); \
|
||||
QWindow* window = this->instance->windowHandle(); \
|
||||
if (window) { \
|
||||
return WrapperCache::instance.get<QWindow, QWindowWrap>(env, window, false); \
|
||||
return WrapperCache::instance.get<QWindow>(env, window, &QWindowWrap::constructor, false); \
|
||||
} else { \
|
||||
return env.Null(); \
|
||||
} \
|
||||
|
||||
@ -44,8 +44,8 @@ class DLL_EXPORT WrapperCache : public QObject {
|
||||
* @param object - Pointer to the QObject for which a wrapper is required.
|
||||
* @return The JS wrapper object.
|
||||
*/
|
||||
template <class T, class W>
|
||||
Napi::Object get(Napi::Env env, T* object, bool isCreatedByNodeGui) {
|
||||
template <class T>
|
||||
Napi::Object get(Napi::Env env, T* object, Napi::FunctionReference* constructorFunc, bool isCreatedByNodeGui) {
|
||||
uint64_t ptrHash = extrautils::hashPointerTo53bit(object);
|
||||
if (this->cache.contains(ptrHash)) {
|
||||
napi_value result = nullptr;
|
||||
@ -58,8 +58,7 @@ class DLL_EXPORT WrapperCache : public QObject {
|
||||
}
|
||||
}
|
||||
|
||||
Napi::Object wrapper =
|
||||
W::constructor.New({Napi::External<T>::New(env, object)});
|
||||
Napi::Object wrapper = constructorFunc->New({Napi::External<T>::New(env, object)});
|
||||
|
||||
store(env, extrautils::hashPointerTo53bit(object), object, wrapper, isCreatedByNodeGui);
|
||||
return wrapper;
|
||||
|
||||
@ -118,8 +118,8 @@ Napi::Value StaticQApplicationWrapMethods::clipboard(
|
||||
Napi::Env env = info.Env();
|
||||
QClipboard* clipboard = QApplication::clipboard();
|
||||
if (clipboard) {
|
||||
return WrapperCache::instance.get<QClipboard, QClipboardWrap>(env,
|
||||
clipboard, false);
|
||||
return WrapperCache::instance.get<QClipboard>(env,
|
||||
clipboard, &QClipboardWrap::constructor, false);
|
||||
} else {
|
||||
return env.Null();
|
||||
}
|
||||
@ -163,7 +163,7 @@ Napi::Value StaticQApplicationWrapMethods::primaryScreen(
|
||||
Napi::Env env = info.Env();
|
||||
auto screen = QApplication::primaryScreen();
|
||||
if (screen) {
|
||||
return WrapperCache::instance.get<QScreen, QScreenWrap>(env, screen, false);
|
||||
return WrapperCache::instance.get<QScreen>(env, screen, &QScreenWrap::constructor, false);
|
||||
} else {
|
||||
return env.Null();
|
||||
}
|
||||
@ -177,7 +177,7 @@ Napi::Value StaticQApplicationWrapMethods::screens(
|
||||
for (int i = 0; i < screens.size(); i++) {
|
||||
QScreen* screen = screens[i];
|
||||
auto instance =
|
||||
WrapperCache::instance.get<QScreen, QScreenWrap>(env, screen, false);
|
||||
WrapperCache::instance.get<QScreen>(env, screen, &QScreenWrap::constructor, false);
|
||||
jsArray[i] = instance;
|
||||
}
|
||||
return jsArray;
|
||||
|
||||
@ -56,7 +56,7 @@ void QWindowWrap::connectSignalsToEventEmitter() {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
auto instance =
|
||||
WrapperCache::instance.get<QScreen, QScreenWrap>(env, screen, false);
|
||||
WrapperCache::instance.get<QScreen>(env, screen, &QScreenWrap::constructor, false);
|
||||
this->emitOnNode.Call(
|
||||
{Napi::String::New(env, "screenChanged"), instance});
|
||||
});
|
||||
@ -81,7 +81,7 @@ Napi::Value QWindowWrap::screen(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
QScreen* screen = this->instance->screen();
|
||||
if (screen) {
|
||||
return WrapperCache::instance.get<QScreen, QScreenWrap>(env, screen, false);
|
||||
return WrapperCache::instance.get<QScreen>(env, screen, &QScreenWrap::constructor, false);
|
||||
} else {
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
@ -47,8 +47,8 @@ void CacheTestQObjectWrap::connectSignalsToEventEmitter() {
|
||||
Napi::Value CacheTestQObjectWrap::foo(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
CacheTestQObject* foo = this->instance->foo();
|
||||
return WrapperCache::instance.get<CacheTestQObject, CacheTestQObjectWrap>(
|
||||
env, foo, false);
|
||||
return WrapperCache::instance.get<CacheTestQObject>(
|
||||
env, foo, &CacheTestQObjectWrap::constructor, false);
|
||||
}
|
||||
|
||||
Napi::Value CacheTestQObjectWrap::clearFoo(const Napi::CallbackInfo& info) {
|
||||
@ -60,6 +60,6 @@ Napi::Value CacheTestQObjectWrap::clearFoo(const Napi::CallbackInfo& info) {
|
||||
Napi::Value CacheTestQObjectWrap::bar(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
CacheTestQObject* bar = this->instance->bar();
|
||||
return WrapperCache::instance.get<CacheTestQObject, CacheTestQObjectWrap>(
|
||||
env, bar, false);
|
||||
return WrapperCache::instance.get<CacheTestQObject>(
|
||||
env, bar, &CacheTestQObjectWrap::constructor, false);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user