diff --git a/src/cpp/QtWidgets/QGridLayout/qgridlayout_wrap.cpp b/src/cpp/QtWidgets/QGridLayout/qgridlayout_wrap.cpp index 38310e123..ff43921bf 100644 --- a/src/cpp/QtWidgets/QGridLayout/qgridlayout_wrap.cpp +++ b/src/cpp/QtWidgets/QGridLayout/qgridlayout_wrap.cpp @@ -9,6 +9,7 @@ Napi::Object QGridLayoutWrap::init(Napi::Env env, Napi::Object exports) { char CLASSNAME[] = "QGridLayout"; Napi::Function func = DefineClass(env, CLASSNAME, { InstanceMethod("addWidget", &QGridLayoutWrap::addWidget), + InstanceMethod("removeWidget", &QGridLayoutWrap::removeWidget), QLAYOUT_WRAPPED_METHODS_EXPORT_DEFINE(QGridLayoutWrap) }); constructor = Napi::Persistent(func); @@ -50,3 +51,12 @@ Napi::Value QGridLayoutWrap::addWidget(const Napi::CallbackInfo& info) { return env.Null(); } +Napi::Value QGridLayoutWrap::removeWidget(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::HandleScope scope(env); + + Napi::Object qwidgetObject = info[0].As(); + QWidgetWrap* widget = Napi::ObjectWrap::Unwrap(qwidgetObject); + this->instance->removeWidget(widget->getInternalInstance()); + return env.Null(); +} diff --git a/src/cpp/QtWidgets/QGridLayout/qgridlayout_wrap.h b/src/cpp/QtWidgets/QGridLayout/qgridlayout_wrap.h index 48ed45834..2f0b23d5e 100644 --- a/src/cpp/QtWidgets/QGridLayout/qgridlayout_wrap.h +++ b/src/cpp/QtWidgets/QGridLayout/qgridlayout_wrap.h @@ -18,6 +18,7 @@ class QGridLayoutWrap : public Napi::ObjectWrap{ static Napi::FunctionReference constructor; //wrapped methods Napi::Value addWidget(const Napi::CallbackInfo& info); + Napi::Value removeWidget(const Napi::CallbackInfo& info); QLAYOUT_WRAPPED_METHODS_DECLARATION }; diff --git a/src/lib/QtWidgets/QGridLayout/index.ts b/src/lib/QtWidgets/QGridLayout/index.ts index 1a4a4158e..0a91c0a56 100644 --- a/src/lib/QtWidgets/QGridLayout/index.ts +++ b/src/lib/QtWidgets/QGridLayout/index.ts @@ -18,4 +18,8 @@ export class QGridLayout extends NodeLayout { this.native.addWidget(widget.native); this.children.add(widget); }; + removeWidget = (widget: NodeWidget) => { + this.native.removeWidget(widget.native); + this.children.delete(widget); + }; }