From e835a8be8625109218903028239a16a9e3035a55 Mon Sep 17 00:00:00 2001 From: Atul R Date: Sat, 8 Jun 2019 18:30:30 +0200 Subject: [PATCH] Cleanup --- .../QPushButton/qpushbutton_wrap.cpp | 30 +++++++++++++- .../QtWidgets/QPushButton/qpushbutton_wrap.h | 40 ++----------------- 2 files changed, 32 insertions(+), 38 deletions(-) diff --git a/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp b/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp index 33ed5f819..e32762bb7 100644 --- a/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp +++ b/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp @@ -37,10 +37,38 @@ QPushButtonWrap::QPushButtonWrap(const Napi::CallbackInfo& info): Napi::ObjectWr } QPushButtonWrap::~QPushButtonWrap() { - this->nodeEmit.release(); + this->emitOnNode.release(); //cleanup emitOnNode delete this->instance; } +Napi::Value QPushButtonWrap::setupEventListeners(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + this->emitOnNode = std::make_unique(info[0].As()); + // Qt Connects: Implement all signal connects here + QObject::connect(this->instance, &QPushButton::clicked, [=](bool checked) { + this->emitOnNode->call([=](Napi::Env env, std::vector& args) { + args = { Napi::String::New(env, "clicked"), Napi::Value::From(env, checked) }; + }); + }); + QObject::connect(this->instance, &QPushButton::released, [=]() { + this->emitOnNode->call([=](Napi::Env env, std::vector& args) { + args = { Napi::String::New(env, "released") }; + }); + }); + QObject::connect(this->instance, &QPushButton::pressed, [=]() { + this->emitOnNode->call([=](Napi::Env env, std::vector& args) { + args = { Napi::String::New(env, "pressed") }; + }); + }); + QObject::connect(this->instance, &QPushButton::toggled, [=](bool checked) { + this->emitOnNode->call([=](Napi::Env env, std::vector& args) { + args = { Napi::String::New(env, "toggled"), Napi::Value::From(env, checked) }; + }); + }); + return env.Null(); +} + + Napi::Value QPushButtonWrap::setText(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); Napi::HandleScope scope(env); diff --git a/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h b/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h index c661ad115..b903d655d 100644 --- a/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h +++ b/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h @@ -1,58 +1,24 @@ #pragma once #include +#include #include "npushbutton.h" #include "src/cpp/QtGui/QWidget/qwidget_macro.h" -#include "napi-thread-safe-callback.hpp" class QPushButtonWrap : public Napi::ObjectWrap { private: NPushButton* instance; - std::unique_ptr nodeEmit; + std::unique_ptr emitOnNode; public: static Napi::Object init(Napi::Env env, Napi::Object exports); QPushButtonWrap(const Napi::CallbackInfo& info); ~QPushButtonWrap(); NPushButton* getInternalInstance(); + Napi::Value setupEventListeners(const Napi::CallbackInfo& info); //class constructor static Napi::FunctionReference constructor; //wrapped methods Napi::Value setText(const Napi::CallbackInfo& info); - - Napi::Value setupEventListeners(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - this->nodeEmit = std::make_unique(info[0].As()); - - NPushButton::connect(this->instance, &QPushButton::clicked, - [=](bool val) { - this->nodeEmit->call([=](Napi::Env env, std::vector& args) { - args = { Napi::String::New(env, "clicked"), Napi::Value::From(env,val) }; - }); - } - ); - NPushButton::connect(this->instance, &QPushButton::released, - [=]() { - this->nodeEmit->call([=](Napi::Env env, std::vector& args) { - args = { Napi::String::New(env, "released") }; - }); - } - ); - NPushButton::connect(this->instance, &QPushButton::pressed, - [=]() { - this->nodeEmit->call([=](Napi::Env env, std::vector& args) { - args = { Napi::String::New(env, "pressed") }; - }); - } - ); - NPushButton::connect(this->instance, &QPushButton::toggled, - [=](bool val) { - this->nodeEmit->call([=](Napi::Env env, std::vector& args) { - args = { Napi::String::New(env, "toggled"), Napi::Value::From(env,val) }; - }); - } - ); - return env.Null(); - } QWIDGET_WRAPPED_METHODS_DECLARATION };