diff --git a/src/cpp/include/nodegui/QtWidgets/QColorDialog/qcolordialog_wrap.h b/src/cpp/include/nodegui/QtWidgets/QColorDialog/qcolordialog_wrap.h index 968e5cca3..394840bb1 100644 --- a/src/cpp/include/nodegui/QtWidgets/QColorDialog/qcolordialog_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QColorDialog/qcolordialog_wrap.h @@ -9,7 +9,7 @@ #include "QtWidgets/QDialog/qdialog_macro.h" class DLL_EXPORT QColorDialogWrap : public Napi::ObjectWrap { - QDIALOG_WRAPPED_METHODS_DECLARATION + QDIALOG_WRAPPED_METHODS_DECLARATION_NO_ACCEPT_OR_DONE private: QPointer instance; @@ -24,6 +24,8 @@ class DLL_EXPORT QColorDialogWrap : public Napi::ObjectWrap { Napi::Value selectedColor(const Napi::CallbackInfo& info); Napi::Value setOption(const Napi::CallbackInfo& info); Napi::Value testOption(const Napi::CallbackInfo& info); + Napi::Value accept(const Napi::CallbackInfo& info); + Napi::Value done(const Napi::CallbackInfo& info); }; namespace StaticQColorDialogWrapMethods { diff --git a/src/cpp/include/nodegui/QtWidgets/QDialog/qdialog_macro.h b/src/cpp/include/nodegui/QtWidgets/QDialog/qdialog_macro.h index 1985e8882..3d7809b6a 100644 --- a/src/cpp/include/nodegui/QtWidgets/QDialog/qdialog_macro.h +++ b/src/cpp/include/nodegui/QtWidgets/QDialog/qdialog_macro.h @@ -10,39 +10,55 @@ This macro adds common QDialog exported methods The exported methods are taken into this macro to avoid writing them in each - and every widget we export. + and every widget we export. */ +#ifndef QDIALOG_WRAPPED_METHODS_DECLARATION_NO_ACCEPT_OR_DONE +#define QDIALOG_WRAPPED_METHODS_DECLARATION_NO_ACCEPT_OR_DONE \ + \ + QWIDGET_WRAPPED_METHODS_DECLARATION \ + \ + Napi::Value setResult(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + Napi::Number result = info[0].As(); \ + this->instance->setResult(result.Int32Value()); \ + return env.Null(); \ + } \ + Napi::Value result(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + int value = this->instance->result(); \ + return Napi::Value::From(env, value); \ + } \ + Napi::Value exec(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + int value = static_cast(this->instance->exec()); \ + return Napi::Number::From(env, value); \ + } \ + Napi::Value open(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + this->instance->open(); \ + return env.Null(); \ + } \ + Napi::Value reject(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + this->instance->reject(); \ + return env.Null(); \ + } +#endif + #ifndef QDIALOG_WRAPPED_METHODS_DECLARATION -#define QDIALOG_WRAPPED_METHODS_DECLARATION \ - \ - QWIDGET_WRAPPED_METHODS_DECLARATION \ - \ - Napi::Value setResult(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - Napi::Number result = info[0].As(); \ - this->instance->setResult(result.Int32Value()); \ - return env.Null(); \ - } \ - Napi::Value result(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - int value = this->instance->result(); \ - return Napi::Value::From(env, value); \ - } \ - Napi::Value exec(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - int value = static_cast(this->instance->exec()); \ - return Napi::Number::From(env, value); \ - } \ - Napi::Value open(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - this->instance->open(); \ - return env.Null(); \ - } \ - Napi::Value reject(const Napi::CallbackInfo& info) { \ - Napi::Env env = info.Env(); \ - this->instance->reject(); \ - return env.Null(); \ +#define QDIALOG_WRAPPED_METHODS_DECLARATION \ + QDIALOG_WRAPPED_METHODS_DECLARATION_NO_ACCEPT_OR_DONE \ + Napi::Value accept(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + this->instance->accept(); \ + return env.Null(); \ + } \ + Napi::Value done(const Napi::CallbackInfo& info) { \ + Napi::Env env = info.Env(); \ + int r = info[0].As().Int32Value(); \ + this->instance->done(r); \ + return env.Null(); \ } #endif @@ -54,7 +70,9 @@ InstanceMethod("setResult", &DialogWrapName::setResult), \ InstanceMethod("exec", &DialogWrapName::exec), \ InstanceMethod("open", &DialogWrapName::open), \ - InstanceMethod("reject", &DialogWrapName::reject), + InstanceMethod("reject", &DialogWrapName::reject), \ + InstanceMethod("accept", &DialogWrapName::accept), \ + InstanceMethod("done", &DialogWrapName::done), #endif // QDIALOG_WRAPPED_METHODS_EXPORT_DEFINE diff --git a/src/cpp/include/nodegui/QtWidgets/QErrorMessage/qerrormessage_wrap.h b/src/cpp/include/nodegui/QtWidgets/QErrorMessage/qerrormessage_wrap.h index a5d984e47..9d1ac1c1a 100644 --- a/src/cpp/include/nodegui/QtWidgets/QErrorMessage/qerrormessage_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QErrorMessage/qerrormessage_wrap.h @@ -10,7 +10,7 @@ class DLL_EXPORT QErrorMessageWrap : public Napi::ObjectWrap { - QDIALOG_WRAPPED_METHODS_DECLARATION + QDIALOG_WRAPPED_METHODS_DECLARATION_NO_ACCEPT_OR_DONE private: QPointer instance; @@ -23,4 +23,6 @@ class DLL_EXPORT QErrorMessageWrap static Napi::FunctionReference constructor; // wrapped methods Napi::Value showMessage(const Napi::CallbackInfo& info); + Napi::Value accept(const Napi::CallbackInfo& info); + Napi::Value done(const Napi::CallbackInfo& info); }; diff --git a/src/cpp/include/nodegui/QtWidgets/QFileDialog/qfiledialog_wrap.h b/src/cpp/include/nodegui/QtWidgets/QFileDialog/qfiledialog_wrap.h index 9f90ef19a..65365b76d 100644 --- a/src/cpp/include/nodegui/QtWidgets/QFileDialog/qfiledialog_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QFileDialog/qfiledialog_wrap.h @@ -9,7 +9,7 @@ #include "QtWidgets/QFileDialog/nfiledialog.hpp" class DLL_EXPORT QFileDialogWrap : public Napi::ObjectWrap { - QDIALOG_WRAPPED_METHODS_DECLARATION + QDIALOG_WRAPPED_METHODS_DECLARATION_NO_ACCEPT_OR_DONE private: QPointer instance; @@ -28,4 +28,6 @@ class DLL_EXPORT QFileDialogWrap : public Napi::ObjectWrap { Napi::Value setOption(const Napi::CallbackInfo& info); Napi::Value setNameFilter(const Napi::CallbackInfo& info); Napi::Value selectedFiles(const Napi::CallbackInfo& info); + Napi::Value accept(const Napi::CallbackInfo& info); + Napi::Value done(const Napi::CallbackInfo& info); }; diff --git a/src/cpp/include/nodegui/QtWidgets/QFontDialog/qfontdialog_wrap.h b/src/cpp/include/nodegui/QtWidgets/QFontDialog/qfontdialog_wrap.h index c08b8e1ab..e53abb001 100644 --- a/src/cpp/include/nodegui/QtWidgets/QFontDialog/qfontdialog_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QFontDialog/qfontdialog_wrap.h @@ -9,7 +9,7 @@ #include "QtWidgets/QFontDialog/nfontdialog.hpp" class DLL_EXPORT QFontDialogWrap : public Napi::ObjectWrap { - QDIALOG_WRAPPED_METHODS_DECLARATION + QDIALOG_WRAPPED_METHODS_DECLARATION_NO_ACCEPT_OR_DONE private: QPointer instance; @@ -24,4 +24,6 @@ class DLL_EXPORT QFontDialogWrap : public Napi::ObjectWrap { Napi::Value selectedFont(const Napi::CallbackInfo& info); Napi::Value setOption(const Napi::CallbackInfo& info); Napi::Value testOption(const Napi::CallbackInfo& info); + Napi::Value accept(const Napi::CallbackInfo& info); + Napi::Value done(const Napi::CallbackInfo& info); }; diff --git a/src/cpp/include/nodegui/QtWidgets/QMessageBox/qmessagebox_wrap.h b/src/cpp/include/nodegui/QtWidgets/QMessageBox/qmessagebox_wrap.h index 6e7fc49c4..87f92210c 100644 --- a/src/cpp/include/nodegui/QtWidgets/QMessageBox/qmessagebox_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QMessageBox/qmessagebox_wrap.h @@ -23,8 +23,6 @@ class DLL_EXPORT QMessageBoxWrap : public Napi::ObjectWrap { // wrapped methods Napi::Value setDefaultButton(const Napi::CallbackInfo& info); Napi::Value addButton(const Napi::CallbackInfo& info); - Napi::Value accept(const Napi::CallbackInfo& info); - Napi::Value done(const Napi::CallbackInfo& info); }; namespace StaticQMessageBoxWrapMethods { DLL_EXPORT Napi::Value about(const Napi::CallbackInfo& info); diff --git a/src/cpp/lib/QtWidgets/QColorDialog/qcolordialog_wrap.cpp b/src/cpp/lib/QtWidgets/QColorDialog/qcolordialog_wrap.cpp index 5fb1e1ad3..9ff4deba2 100644 --- a/src/cpp/lib/QtWidgets/QColorDialog/qcolordialog_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QColorDialog/qcolordialog_wrap.cpp @@ -91,6 +91,20 @@ Napi::Value QColorDialogWrap::testOption(const Napi::CallbackInfo& info) { return Napi::Boolean::New(env, on); } +Napi::Value QColorDialogWrap::accept(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + this->instance->accept(); + return env.Null(); +} + +Napi::Value QColorDialogWrap::done(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::TypeError::New( + env, "NodeGui: QColorDialog: done() is protected and can't be called.") + .ThrowAsJavaScriptException(); + return env.Null(); +} + Napi::Value StaticQColorDialogWrapMethods::customColor( const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); diff --git a/src/cpp/lib/QtWidgets/QErrorMessage/qerrormessage_wrap.cpp b/src/cpp/lib/QtWidgets/QErrorMessage/qerrormessage_wrap.cpp index a23f4551b..38e02f433 100644 --- a/src/cpp/lib/QtWidgets/QErrorMessage/qerrormessage_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QErrorMessage/qerrormessage_wrap.cpp @@ -64,3 +64,17 @@ Napi::Value QErrorMessageWrap::showMessage(const Napi::CallbackInfo& info) { this->instance->showMessage(message); return env.Null(); } + +Napi::Value QErrorMessageWrap::accept(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + this->instance->accept(); + return env.Null(); +} + +Napi::Value QErrorMessageWrap::done(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::TypeError::New( + env, "NodeGui: QErrorMessage: done() is protected and can't be called.") + .ThrowAsJavaScriptException(); + return env.Null(); +} diff --git a/src/cpp/lib/QtWidgets/QFileDialog/qfiledialog_wrap.cpp b/src/cpp/lib/QtWidgets/QFileDialog/qfiledialog_wrap.cpp index f3e38d31a..34e645bf6 100644 --- a/src/cpp/lib/QtWidgets/QFileDialog/qfiledialog_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QFileDialog/qfiledialog_wrap.cpp @@ -134,3 +134,19 @@ Napi::Value QFileDialogWrap::selectedFiles(const Napi::CallbackInfo& info) { } return fileList; } + +Napi::Value QFileDialogWrap::accept(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::TypeError::New( + env, "NodeGui: QFileDialog: accept() is protected and can't be called.") + .ThrowAsJavaScriptException(); + return env.Null(); +} + +Napi::Value QFileDialogWrap::done(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::TypeError::New( + env, "NodeGui: QFileDialog: done() is protected and can't be called.") + .ThrowAsJavaScriptException(); + return env.Null(); +} diff --git a/src/cpp/lib/QtWidgets/QFontDialog/qfontdialog_wrap.cpp b/src/cpp/lib/QtWidgets/QFontDialog/qfontdialog_wrap.cpp index bec840ae8..ba352d141 100644 --- a/src/cpp/lib/QtWidgets/QFontDialog/qfontdialog_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QFontDialog/qfontdialog_wrap.cpp @@ -78,3 +78,17 @@ Napi::Value QFontDialogWrap::testOption(const Napi::CallbackInfo& info) { static_cast(option)); return Napi::Boolean::New(env, on); } + +Napi::Value QFontDialogWrap::accept(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + this->instance->accept(); + return env.Null(); +} + +Napi::Value QFontDialogWrap::done(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::TypeError::New( + env, "NodeGui: QFontDialog: done() is protected and can't be called.") + .ThrowAsJavaScriptException(); + return env.Null(); +} diff --git a/src/cpp/lib/QtWidgets/QMessageBox/qmessagebox_wrap.cpp b/src/cpp/lib/QtWidgets/QMessageBox/qmessagebox_wrap.cpp index edb3c3bcc..d26aeff0e 100644 --- a/src/cpp/lib/QtWidgets/QMessageBox/qmessagebox_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QMessageBox/qmessagebox_wrap.cpp @@ -16,8 +16,6 @@ Napi::Object QMessageBoxWrap::init(Napi::Env env, Napi::Object exports) { env, CLASSNAME, {InstanceMethod("setDefaultButton", &QMessageBoxWrap::setDefaultButton), InstanceMethod("addButton", &QMessageBoxWrap::addButton), - InstanceMethod("accept", &QMessageBoxWrap::accept), - InstanceMethod("done", &QMessageBoxWrap::done), StaticMethod("about", &StaticQMessageBoxWrapMethods::about), StaticMethod("aboutQt", &StaticQMessageBoxWrapMethods::aboutQt), QDIALOG_WRAPPED_METHODS_EXPORT_DEFINE(QMessageBoxWrap)}); @@ -79,17 +77,6 @@ Napi::Value QMessageBoxWrap::addButton(const Napi::CallbackInfo& info) { this->instance->addButton(btn, QMessageBox::ButtonRole(role)); return env.Null(); } -Napi::Value QMessageBoxWrap::accept(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - this->instance->accept(); - return env.Null(); -} -Napi::Value QMessageBoxWrap::done(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::Number r = info[0].As(); - this->instance->done(r.Int32Value()); - return env.Null(); -} Napi::Value StaticQMessageBoxWrapMethods::about( const Napi::CallbackInfo& info) { diff --git a/src/lib/QtWidgets/QDialog.ts b/src/lib/QtWidgets/QDialog.ts index f0f93639b..41bbe328e 100644 --- a/src/lib/QtWidgets/QDialog.ts +++ b/src/lib/QtWidgets/QDialog.ts @@ -43,6 +43,12 @@ export class QDialog extends QW isSizeGripEnabled(): boolean { return this.property('sizeGripEnabled').toBool(); } + accept(): void { + this.native.accept(); + } + done(r: number): void { + this.native.done(r); + } exec(): DialogCode { return this.native.exec(); }