Cleanup
This commit is contained in:
parent
6ddc6167e2
commit
e835a8be86
@ -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<ThreadSafeCallback>(info[0].As<Napi::Function>());
|
||||
// Qt Connects: Implement all signal connects here
|
||||
QObject::connect(this->instance, &QPushButton::clicked, [=](bool checked) {
|
||||
this->emitOnNode->call([=](Napi::Env env, std::vector<napi_value>& 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<napi_value>& args) {
|
||||
args = { Napi::String::New(env, "released") };
|
||||
});
|
||||
});
|
||||
QObject::connect(this->instance, &QPushButton::pressed, [=]() {
|
||||
this->emitOnNode->call([=](Napi::Env env, std::vector<napi_value>& args) {
|
||||
args = { Napi::String::New(env, "pressed") };
|
||||
});
|
||||
});
|
||||
QObject::connect(this->instance, &QPushButton::toggled, [=](bool checked) {
|
||||
this->emitOnNode->call([=](Napi::Env env, std::vector<napi_value>& 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);
|
||||
|
||||
@ -1,58 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include <napi.h>
|
||||
#include <napi-thread-safe-callback.hpp>
|
||||
#include "npushbutton.h"
|
||||
#include "src/cpp/QtGui/QWidget/qwidget_macro.h"
|
||||
#include "napi-thread-safe-callback.hpp"
|
||||
|
||||
class QPushButtonWrap : public Napi::ObjectWrap<QPushButtonWrap> {
|
||||
private:
|
||||
NPushButton* instance;
|
||||
std::unique_ptr<ThreadSafeCallback> nodeEmit;
|
||||
std::unique_ptr<ThreadSafeCallback> 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<ThreadSafeCallback>(info[0].As<Napi::Function>());
|
||||
|
||||
NPushButton::connect(this->instance, &QPushButton::clicked,
|
||||
[=](bool val) {
|
||||
this->nodeEmit->call([=](Napi::Env env, std::vector<napi_value>& 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<napi_value>& args) {
|
||||
args = { Napi::String::New(env, "released") };
|
||||
});
|
||||
}
|
||||
);
|
||||
NPushButton::connect(this->instance, &QPushButton::pressed,
|
||||
[=]() {
|
||||
this->nodeEmit->call([=](Napi::Env env, std::vector<napi_value>& args) {
|
||||
args = { Napi::String::New(env, "pressed") };
|
||||
});
|
||||
}
|
||||
);
|
||||
NPushButton::connect(this->instance, &QPushButton::toggled,
|
||||
[=](bool val) {
|
||||
this->nodeEmit->call([=](Napi::Env env, std::vector<napi_value>& args) {
|
||||
args = { Napi::String::New(env, "toggled"), Napi::Value::From(env,val) };
|
||||
});
|
||||
}
|
||||
);
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
QWIDGET_WRAPPED_METHODS_DECLARATION
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user