From c47f788094a45b3efa6ad33c3630e13b9378fb34 Mon Sep 17 00:00:00 2001 From: feng8848 <40539968+feng8848@users.noreply.github.com> Date: Sat, 8 Feb 2020 03:22:49 +0800 Subject: [PATCH] Add QScrollBar and other improvements (#383) * Add QScrollBar and other improvements * Add Windows plugin export * Fixes QDateEdit and QTimeEdit. Co-authored-by: Atul R --- CMakeLists.txt | 2 + .../nodegui/QtWidgets/QCheckBox/ncheckbox.hpp | 10 ++- .../QtWidgets/QCheckBox/qcheckbox_wrap.h | 4 +- .../nodegui/QtWidgets/QDial/qdial_wrap.h | 6 -- .../QtWidgets/QGroupBox/qgroupbox_wrap.h | 10 --- .../QtWidgets/QScrollBar/nscrollbar.hpp | 19 ++++ .../QtWidgets/QScrollBar/qscrollbar_wrap.h | 25 ++++++ .../nodegui/QtWidgets/QSpinBox/nspinbox.hpp | 8 +- .../QtWidgets/QSpinBox/qspinbox_wrap.h | 12 +-- .../QtWidgets/QCheckBox/qcheckbox_wrap.cpp | 18 ++-- src/cpp/lib/QtWidgets/QDial/qdial_wrap.cpp | 57 +----------- .../QtWidgets/QGroupBox/qgroupbox_wrap.cpp | 90 +------------------ .../QtWidgets/QScrollBar/qscrollbar_wrap.cpp | 45 ++++++++++ .../lib/QtWidgets/QSpinBox/qspinbox_wrap.cpp | 79 +--------------- src/cpp/main.cpp | 2 + src/demo.ts | 10 +-- src/index.ts | 11 ++- src/lib/QtWidgets/QAbstractSpinBox.ts | 5 ++ src/lib/QtWidgets/QCheckBox.ts | 19 ++-- src/lib/QtWidgets/QDateEdit.ts | 4 +- src/lib/QtWidgets/QDateTimeEdit.ts | 79 ++++++++-------- src/lib/QtWidgets/QDial.ts | 29 +++--- src/lib/QtWidgets/QGroupBox.ts | 46 +++++----- src/lib/QtWidgets/QScrollBar.ts | 39 ++++++++ src/lib/QtWidgets/QSpinBox.ts | 73 +++++++++------ src/lib/QtWidgets/QTimeEdit.ts | 4 +- 26 files changed, 330 insertions(+), 376 deletions(-) create mode 100644 src/cpp/include/nodegui/QtWidgets/QScrollBar/nscrollbar.hpp create mode 100644 src/cpp/include/nodegui/QtWidgets/QScrollBar/qscrollbar_wrap.h create mode 100644 src/cpp/lib/QtWidgets/QScrollBar/qscrollbar_wrap.cpp create mode 100644 src/lib/QtWidgets/QScrollBar.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e5a0c054..b306d4ae2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,6 +88,7 @@ add_library(${CORE_WIDGETS_ADDON} SHARED "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QLineEdit/qlineedit_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QPlainTextEdit/qplaintextedit_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QScrollArea/qscrollarea_wrap.cpp" + "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QScrollBar/qscrollbar_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QAction/qaction_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QShortcut/qshortcut_wrap.cpp" @@ -129,6 +130,7 @@ add_library(${CORE_WIDGETS_ADDON} SHARED "${PROJECT_SOURCE_DIR}/src/cpp/include/nodegui/QtWidgets/QRadioButton/nradiobutton.hpp" "${PROJECT_SOURCE_DIR}/src/cpp/include/nodegui/QtWidgets/QPlainTextEdit/nplaintextedit.hpp" "${PROJECT_SOURCE_DIR}/src/cpp/include/nodegui/QtWidgets/QScrollArea/nscrollarea.hpp" + "${PROJECT_SOURCE_DIR}/src/cpp/include/nodegui/QtWidgets/QScrollBar/nscrollbar.hpp" "${PROJECT_SOURCE_DIR}/src/cpp/include/nodegui/QtWidgets/QStackedWidget/nstackedwidget.hpp" "${PROJECT_SOURCE_DIR}/src/cpp/include/nodegui/QtWidgets/QTabWidget/ntabwidget.hpp" "${PROJECT_SOURCE_DIR}/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/nsystemtrayicon.hpp" diff --git a/src/cpp/include/nodegui/QtWidgets/QCheckBox/ncheckbox.hpp b/src/cpp/include/nodegui/QtWidgets/QCheckBox/ncheckbox.hpp index e9a90fe47..f745c2ddf 100644 --- a/src/cpp/include/nodegui/QtWidgets/QCheckBox/ncheckbox.hpp +++ b/src/cpp/include/nodegui/QtWidgets/QCheckBox/ncheckbox.hpp @@ -13,5 +13,13 @@ class DLL_EXPORT NCheckBox : public QCheckBox, public NodeWidget { public: using QCheckBox::QCheckBox; // inherit all constructors of QCheckBox - void connectSignalsToEventEmitter() { QABSTRACT_BUTTON_SIGNALS } + void connectSignalsToEventEmitter() { + QABSTRACT_BUTTON_SIGNALS + QObject::connect(this, &QCheckBox::stateChanged, [=](int state) { + Napi::Env env = this->emitOnNode.Env(); + Napi::HandleScope scope(env); + this->emitOnNode.Call({Napi::String::New(env, "stateChanged"), + Napi::Value::From(env, state)}); + }); + } }; diff --git a/src/cpp/include/nodegui/QtWidgets/QCheckBox/qcheckbox_wrap.h b/src/cpp/include/nodegui/QtWidgets/QCheckBox/qcheckbox_wrap.h index 38ec3b0f6..5e4a474df 100644 --- a/src/cpp/include/nodegui/QtWidgets/QCheckBox/qcheckbox_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QCheckBox/qcheckbox_wrap.h @@ -23,6 +23,6 @@ class DLL_EXPORT QCheckBoxWrap : public Napi::ObjectWrap { // class constructor static Napi::FunctionReference constructor; // wrapped methods - Napi::Value isChecked(const Napi::CallbackInfo& info); - Napi::Value setChecked(const Napi::CallbackInfo& info); + Napi::Value checkState(const Napi::CallbackInfo& info); + Napi::Value setCheckState(const Napi::CallbackInfo& info); }; diff --git a/src/cpp/include/nodegui/QtWidgets/QDial/qdial_wrap.h b/src/cpp/include/nodegui/QtWidgets/QDial/qdial_wrap.h index 949300e7f..1e00f8ada 100644 --- a/src/cpp/include/nodegui/QtWidgets/QDial/qdial_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QDial/qdial_wrap.h @@ -22,10 +22,4 @@ class DLL_EXPORT QDialWrap : public Napi::ObjectWrap { // class constructor static Napi::FunctionReference constructor; // wrapped methods - Napi::Value setNotchesVisible(const Napi::CallbackInfo& info); - Napi::Value setWrapping(const Napi::CallbackInfo& info); - Napi::Value setNotchTarget(const Napi::CallbackInfo& info); - Napi::Value notchTarget(const Napi::CallbackInfo& info); - Napi::Value notchesVisible(const Napi::CallbackInfo& info); - Napi::Value wrapping(const Napi::CallbackInfo& info); }; diff --git a/src/cpp/include/nodegui/QtWidgets/QGroupBox/qgroupbox_wrap.h b/src/cpp/include/nodegui/QtWidgets/QGroupBox/qgroupbox_wrap.h index 206e64ab0..fa2696377 100644 --- a/src/cpp/include/nodegui/QtWidgets/QGroupBox/qgroupbox_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QGroupBox/qgroupbox_wrap.h @@ -21,14 +21,4 @@ class DLL_EXPORT QGroupBoxWrap : public Napi::ObjectWrap { // class constructor static Napi::FunctionReference constructor; // wrapped methods - Napi::Value alignment(const Napi::CallbackInfo& info); - Napi::Value isCheckable(const Napi::CallbackInfo& info); - Napi::Value isChecked(const Napi::CallbackInfo& info); - Napi::Value isFlat(const Napi::CallbackInfo& info); - Napi::Value setAlignment(const Napi::CallbackInfo& info); - Napi::Value setCheckable(const Napi::CallbackInfo& info); - Napi::Value setFlat(const Napi::CallbackInfo& info); - Napi::Value setTitle(const Napi::CallbackInfo& info); - Napi::Value title(const Napi::CallbackInfo& info); - Napi::Value setChecked(const Napi::CallbackInfo& info); }; diff --git a/src/cpp/include/nodegui/QtWidgets/QScrollBar/nscrollbar.hpp b/src/cpp/include/nodegui/QtWidgets/QScrollBar/nscrollbar.hpp new file mode 100644 index 000000000..fb4e0f340 --- /dev/null +++ b/src/cpp/include/nodegui/QtWidgets/QScrollBar/nscrollbar.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include + +#include "Extras/Utils/nutils.h" +#include "QtWidgets/QAbstractSlider/qabstractslider_macro.h" +#include "core/NodeWidget/nodewidget.h" + +class DLL_EXPORT NScrollBar : public QScrollBar, public NodeWidget { + Q_OBJECT + NODEWIDGET_IMPLEMENTATIONS(QScrollBar) + public: + using QScrollBar::QScrollBar; // inherit all constructors of QScrollBar + + void connectSignalsToEventEmitter() { + // Qt Connects: Implement all signal connects here + QABSTRACT_SLIDER_SIGNALS + } +}; diff --git a/src/cpp/include/nodegui/QtWidgets/QScrollBar/qscrollbar_wrap.h b/src/cpp/include/nodegui/QtWidgets/QScrollBar/qscrollbar_wrap.h new file mode 100644 index 000000000..5acb222df --- /dev/null +++ b/src/cpp/include/nodegui/QtWidgets/QScrollBar/qscrollbar_wrap.h @@ -0,0 +1,25 @@ +#pragma once + +#include + +#include + +#include "Extras/Utils/nutils.h" +#include "QtWidgets/QAbstractSlider/qabstractslider_macro.h" +#include "QtWidgets/QWidget/qwidget_macro.h" +#include "nscrollbar.hpp" + +class DLL_EXPORT QScrollBarWrap : public Napi::ObjectWrap { + QABSTRACTSLIDER_WRAPPED_METHODS_DECLARATION + private: + QPointer instance; + + public: + static Napi::Object init(Napi::Env env, Napi::Object exports); + QScrollBarWrap(const Napi::CallbackInfo& info); + ~QScrollBarWrap(); + NScrollBar* getInternalInstance(); + // class constructor + static Napi::FunctionReference constructor; + // wrapped methods +}; diff --git a/src/cpp/include/nodegui/QtWidgets/QSpinBox/nspinbox.hpp b/src/cpp/include/nodegui/QtWidgets/QSpinBox/nspinbox.hpp index 9cc1556bd..d6865f0a2 100644 --- a/src/cpp/include/nodegui/QtWidgets/QSpinBox/nspinbox.hpp +++ b/src/cpp/include/nodegui/QtWidgets/QSpinBox/nspinbox.hpp @@ -1,8 +1,9 @@ #pragma once + #include #include "Extras/Utils/nutils.h" -#include "QtWidgets/QWidget/qwidget_macro.h" +#include "QtWidgets/QAbstractSpinBox/qabstractspinbox_macro.h" #include "core/NodeWidget/nodewidget.h" #include "napi.h" @@ -13,13 +14,14 @@ class DLL_EXPORT NSpinBox : public QSpinBox, public NodeWidget { using QSpinBox::QSpinBox; // inherit all constructors of QSpinBox void connectSignalsToEventEmitter() { - QWIDGET_SIGNALS + QABSTRACTSPINBOX_SIGNALS // Qt Connects: Implement all signal connects here QObject::connect( this, QOverload::of(&QSpinBox::valueChanged), [=](int val) { Napi::Env env = this->emitOnNode.Env(); Napi::HandleScope scope(env); - this->emitOnNode.Call({Napi::String::New(env, "valueChanged")}); + this->emitOnNode.Call({Napi::String::New(env, "valueChanged"), + Napi::Value::From(env, val)}); }); } }; diff --git a/src/cpp/include/nodegui/QtWidgets/QSpinBox/qspinbox_wrap.h b/src/cpp/include/nodegui/QtWidgets/QSpinBox/qspinbox_wrap.h index 1ba4bede6..4e87f7294 100644 --- a/src/cpp/include/nodegui/QtWidgets/QSpinBox/qspinbox_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QSpinBox/qspinbox_wrap.h @@ -5,11 +5,11 @@ #include #include "Extras/Utils/nutils.h" -#include "QtWidgets/QWidget/qwidget_macro.h" +#include "QtWidgets/QAbstractSpinBox/qabstractspinbox_macro.h" #include "nspinbox.hpp" class DLL_EXPORT QSpinBoxWrap : public Napi::ObjectWrap { - QWIDGET_WRAPPED_METHODS_DECLARATION + QABSTRACTSPINBOX_WRAPPED_METHODS_DECLARATION private: QPointer instance; @@ -21,13 +21,5 @@ class DLL_EXPORT QSpinBoxWrap : public Napi::ObjectWrap { // class constructor static Napi::FunctionReference constructor; // wrapped methods - Napi::Value setPrefix(const Napi::CallbackInfo &info); - Napi::Value setSingleStep(const Napi::CallbackInfo &info); - Napi::Value setSuffix(const Napi::CallbackInfo &info); Napi::Value setRange(const Napi::CallbackInfo &info); - Napi::Value setValue(const Napi::CallbackInfo &info); - Napi::Value cleanText(const Napi::CallbackInfo &info); - Napi::Value maximum(const Napi::CallbackInfo &info); - Napi::Value minimum(const Napi::CallbackInfo &info); - Napi::Value value(const Napi::CallbackInfo &info); }; diff --git a/src/cpp/lib/QtWidgets/QCheckBox/qcheckbox_wrap.cpp b/src/cpp/lib/QtWidgets/QCheckBox/qcheckbox_wrap.cpp index 8170281a0..70d10c024 100644 --- a/src/cpp/lib/QtWidgets/QCheckBox/qcheckbox_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QCheckBox/qcheckbox_wrap.cpp @@ -12,8 +12,8 @@ Napi::Object QCheckBoxWrap::init(Napi::Env env, Napi::Object exports) { char CLASSNAME[] = "QCheckBox"; Napi::Function func = DefineClass( env, CLASSNAME, - {InstanceMethod("setChecked", &QCheckBoxWrap::setChecked), - InstanceMethod("isChecked", &QCheckBoxWrap::isChecked), + {InstanceMethod("checkState", &QCheckBoxWrap::checkState), + InstanceMethod("setCheckState", &QCheckBoxWrap::setCheckState), QABSTRACTBUTTON_WRAPPED_METHODS_EXPORT_DEFINE(QCheckBoxWrap)}); constructor = Napi::Persistent(func); exports.Set(CLASSNAME, func); @@ -57,17 +57,19 @@ QCheckBoxWrap::~QCheckBoxWrap() { } } -Napi::Value QCheckBoxWrap::isChecked(const Napi::CallbackInfo& info) { +Napi::Value QCheckBoxWrap::checkState(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); Napi::HandleScope scope(env); - bool isChecked = this->instance->isChecked(); - return Napi::Value::From(env, isChecked); + + Qt::CheckState state = this->instance->checkState(); + return Napi::Value::From(env, static_cast(state)); } -Napi::Value QCheckBoxWrap::setChecked(const Napi::CallbackInfo& info) { +Napi::Value QCheckBoxWrap::setCheckState(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); Napi::HandleScope scope(env); - Napi::Boolean check = info[0].As(); - this->instance->setChecked(check.Value()); + + int state = info[0].As().Int32Value(); + this->instance->setCheckState(static_cast(state)); return env.Null(); } diff --git a/src/cpp/lib/QtWidgets/QDial/qdial_wrap.cpp b/src/cpp/lib/QtWidgets/QDial/qdial_wrap.cpp index e6bfa4d15..90f08a3ff 100644 --- a/src/cpp/lib/QtWidgets/QDial/qdial_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QDial/qdial_wrap.cpp @@ -11,15 +11,9 @@ Napi::FunctionReference QDialWrap::constructor; Napi::Object QDialWrap::init(Napi::Env env, Napi::Object exports) { Napi::HandleScope scope(env); char CLASSNAME[] = "QDial"; - Napi::Function func = DefineClass( - env, CLASSNAME, - {InstanceMethod("setNotchesVisible", &QDialWrap::setNotchesVisible), - InstanceMethod("setWrapping", &QDialWrap::setWrapping), - InstanceMethod("setNotchTarget", &QDialWrap::setNotchTarget), - InstanceMethod("notchTarget", &QDialWrap::notchTarget), - InstanceMethod("notchesVisible", &QDialWrap::notchesVisible), - InstanceMethod("wrapping", &QDialWrap::wrapping), - QABSTRACTSLIDER_WRAPPED_METHODS_EXPORT_DEFINE(QDialWrap)}); + Napi::Function func = + DefineClass(env, CLASSNAME, + {QABSTRACTSLIDER_WRAPPED_METHODS_EXPORT_DEFINE(QDialWrap)}); constructor = Napi::Persistent(func); exports.Set(CLASSNAME, func); return exports; @@ -50,48 +44,3 @@ QDialWrap::QDialWrap(const Napi::CallbackInfo& info) } QDialWrap::~QDialWrap() { extrautils::safeDelete(this->instance); } - -Napi::Value QDialWrap::setNotchesVisible(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - Napi::Boolean visible = info[0].As(); - this->instance->setNotchesVisible(visible.Value()); - return env.Null(); -} - -Napi::Value QDialWrap::setWrapping(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - Napi::Boolean on = info[0].As(); - this->instance->setWrapping(on.Value()); - return env.Null(); -} - -Napi::Value QDialWrap::setNotchTarget(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - Napi::Number target = info[0].As(); - this->instance->setNotchTarget(target.FloatValue()); - return env.Null(); -} - -Napi::Value QDialWrap::notchTarget(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - float target = this->instance->notchTarget(); - return Napi::Value::From(env, target); -} - -Napi::Value QDialWrap::notchesVisible(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - bool notchesVisible = this->instance->notchesVisible(); - return Napi::Value::From(env, notchesVisible); -} - -Napi::Value QDialWrap::wrapping(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - bool wrapping = this->instance->wrapping(); - return Napi::Value::From(env, wrapping); -} diff --git a/src/cpp/lib/QtWidgets/QGroupBox/qgroupbox_wrap.cpp b/src/cpp/lib/QtWidgets/QGroupBox/qgroupbox_wrap.cpp index b3740bb57..3a719eb5e 100644 --- a/src/cpp/lib/QtWidgets/QGroupBox/qgroupbox_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QGroupBox/qgroupbox_wrap.cpp @@ -10,19 +10,8 @@ Napi::FunctionReference QGroupBoxWrap::constructor; Napi::Object QGroupBoxWrap::init(Napi::Env env, Napi::Object exports) { Napi::HandleScope scope(env); char CLASSNAME[] = "QGroupBox"; - Napi::Function func = - DefineClass(env, CLASSNAME, - {InstanceMethod("alignment", &QGroupBoxWrap::alignment), - InstanceMethod("isCheckable", &QGroupBoxWrap::isCheckable), - InstanceMethod("isChecked", &QGroupBoxWrap::isChecked), - InstanceMethod("isFlat", &QGroupBoxWrap::isFlat), - InstanceMethod("setAlignment", &QGroupBoxWrap::setAlignment), - InstanceMethod("setCheckable", &QGroupBoxWrap::setCheckable), - InstanceMethod("setFlat", &QGroupBoxWrap::setFlat), - InstanceMethod("setTitle", &QGroupBoxWrap::setTitle), - InstanceMethod("title", &QGroupBoxWrap::title), - InstanceMethod("setChecked", &QGroupBoxWrap::setChecked), - QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QGroupBoxWrap)}); + Napi::Function func = DefineClass( + env, CLASSNAME, {QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QGroupBoxWrap)}); constructor = Napi::Persistent(func); exports.Set(CLASSNAME, func); return exports; @@ -52,78 +41,3 @@ QGroupBoxWrap::QGroupBoxWrap(const Napi::CallbackInfo& info) } QGroupBoxWrap::~QGroupBoxWrap() { extrautils::safeDelete(this->instance); } - -Napi::Value QGroupBoxWrap::alignment(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - int alignment = static_cast(this->instance->alignment()); - return Napi::Value::From(env, alignment); -} - -Napi::Value QGroupBoxWrap::isCheckable(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - bool checkable = this->instance->isCheckable(); - return Napi::Value::From(env, checkable); -} - -Napi::Value QGroupBoxWrap::isChecked(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - bool checked = this->instance->isChecked(); - return Napi::Value::From(env, checked); -} - -Napi::Value QGroupBoxWrap::isFlat(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - bool flat = this->instance->isFlat(); - return Napi::Value::From(env, flat); -} - -Napi::Value QGroupBoxWrap::setAlignment(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - int alignment = info[0].As().Int32Value(); - this->instance->setAlignment(alignment); - return env.Null(); -} - -Napi::Value QGroupBoxWrap::setCheckable(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - bool checkable = info[0].As().Value(); - this->instance->setCheckable(checkable); - return env.Null(); -} - -Napi::Value QGroupBoxWrap::setFlat(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - bool flat = info[0].As().Value(); - this->instance->setFlat(flat); - return env.Null(); -} - -Napi::Value QGroupBoxWrap::setTitle(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - std::string text = info[0].As().Utf8Value(); - this->instance->setTitle(text.c_str()); - return env.Null(); -} - -Napi::Value QGroupBoxWrap::title(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - QString text = this->instance->title(); - return Napi::String::New(env, text.toStdString().c_str()); -} - -Napi::Value QGroupBoxWrap::setChecked(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - bool checked = info[0].As().Value(); - this->instance->setChecked(checked); - return env.Null(); -} \ No newline at end of file diff --git a/src/cpp/lib/QtWidgets/QScrollBar/qscrollbar_wrap.cpp b/src/cpp/lib/QtWidgets/QScrollBar/qscrollbar_wrap.cpp new file mode 100644 index 000000000..f74bb348d --- /dev/null +++ b/src/cpp/lib/QtWidgets/QScrollBar/qscrollbar_wrap.cpp @@ -0,0 +1,45 @@ +#include "QtWidgets/QScrollBar/qscrollbar_wrap.h" + +#include + +#include "Extras/Utils/nutils.h" +#include "QtWidgets/QWidget/qwidget_wrap.h" + +Napi::FunctionReference QScrollBarWrap::constructor; + +Napi::Object QScrollBarWrap::init(Napi::Env env, Napi::Object exports) { + Napi::HandleScope scope(env); + char CLASSNAME[] = "QScrollBar"; + Napi::Function func = DefineClass( + env, CLASSNAME, + {QABSTRACTSLIDER_WRAPPED_METHODS_EXPORT_DEFINE(QScrollBarWrap)}); + constructor = Napi::Persistent(func); + exports.Set(CLASSNAME, func); + return exports; +} + +NScrollBar* QScrollBarWrap::getInternalInstance() { return this->instance; } + +QScrollBarWrap::QScrollBarWrap(const Napi::CallbackInfo& info) + : Napi::ObjectWrap(info) { + Napi::Env env = info.Env(); + Napi::HandleScope scope(env); + + if (info.Length() == 1) { + Napi::Object parentObject = info[0].As(); + QWidgetWrap* parentWidgetWrap = + Napi::ObjectWrap::Unwrap(parentObject); + this->instance = new NScrollBar(parentWidgetWrap->getInternalInstance()); + } else if (info.Length() == 0) { + this->instance = new NScrollBar(); + } else { + Napi::TypeError::New(env, "Wrong number of arguments") + .ThrowAsJavaScriptException(); + } + + this->rawData = extrautils::configureQWidget( + this->getInternalInstance(), this->getInternalInstance()->getFlexNode(), + true); +} + +QScrollBarWrap::~QScrollBarWrap() { extrautils::safeDelete(this->instance); } diff --git a/src/cpp/lib/QtWidgets/QSpinBox/qspinbox_wrap.cpp b/src/cpp/lib/QtWidgets/QSpinBox/qspinbox_wrap.cpp index e46469f5b..c54a77537 100644 --- a/src/cpp/lib/QtWidgets/QSpinBox/qspinbox_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QSpinBox/qspinbox_wrap.cpp @@ -11,17 +11,8 @@ Napi::Object QSpinBoxWrap::init(Napi::Env env, Napi::Object exports) { char CLASSNAME[] = "QSpinBox"; Napi::Function func = DefineClass( env, CLASSNAME, - {InstanceMethod("setPrefix", &QSpinBoxWrap::setPrefix), - InstanceMethod("setSingleStep", &QSpinBoxWrap::setSingleStep), - InstanceMethod("setSuffix", &QSpinBoxWrap::setSuffix), - InstanceMethod("setRange", &QSpinBoxWrap::setRange), - InstanceMethod("setValue", &QSpinBoxWrap::setValue), - InstanceMethod("cleanText", &QSpinBoxWrap::cleanText), - InstanceMethod("maximum", &QSpinBoxWrap::maximum), - InstanceMethod("minimum", &QSpinBoxWrap::minimum), - InstanceMethod("value", &QSpinBoxWrap::value), - - QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QSpinBoxWrap)}); + {InstanceMethod("setRange", &QSpinBoxWrap::setRange), + QABSTRACTSPINBOX_WRAPPED_METHODS_EXPORT_DEFINE(QSpinBoxWrap)}); constructor = Napi::Persistent(func); exports.Set(CLASSNAME, func); return exports; @@ -52,35 +43,6 @@ QSpinBoxWrap::QSpinBoxWrap(const Napi::CallbackInfo& info) QSpinBoxWrap::~QSpinBoxWrap() { extrautils::safeDelete(this->instance); } -Napi::Value QSpinBoxWrap::setPrefix(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - - Napi::String napiPrefix = info[0].As(); - std::string prefix = napiPrefix.Utf8Value(); - this->instance->setPrefix(prefix.c_str()); - return env.Null(); -} - -Napi::Value QSpinBoxWrap::setSingleStep(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - - Napi::Number val = info[0].As(); - this->instance->setSingleStep(val.Int32Value()); - return env.Null(); -} - -Napi::Value QSpinBoxWrap::setSuffix(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - - Napi::String napiSuffix = info[0].As(); - std::string suffix = napiSuffix.Utf8Value(); - this->instance->setSuffix(suffix.c_str()); - return env.Null(); -} - Napi::Value QSpinBoxWrap::setRange(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); Napi::HandleScope scope(env); @@ -90,40 +52,3 @@ Napi::Value QSpinBoxWrap::setRange(const Napi::CallbackInfo& info) { this->instance->setRange(minimum.Int32Value(), maximum.Int32Value()); return env.Null(); } - -Napi::Value QSpinBoxWrap::setValue(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - - Napi::Number val = info[0].As(); - this->instance->setValue(val.Int32Value()); - return env.Null(); -} - -Napi::Value QSpinBoxWrap::cleanText(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - QString cleanText = this->instance->cleanText(); - return Napi::String::New(env, cleanText.toStdString().c_str()); -} - -Napi::Value QSpinBoxWrap::maximum(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - int maximum = this->instance->maximum(); - return Napi::Number::New(env, maximum); -} - -Napi::Value QSpinBoxWrap::minimum(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - int minimum = this->instance->minimum(); - return Napi::Number::New(env, minimum); -} - -Napi::Value QSpinBoxWrap::value(const Napi::CallbackInfo& info) { - Napi::Env env = info.Env(); - Napi::HandleScope scope(env); - int value = this->instance->value(); - return Napi::Number::New(env, value); -} \ No newline at end of file diff --git a/src/cpp/main.cpp b/src/cpp/main.cpp index efe5ac66b..7d367a631 100644 --- a/src/cpp/main.cpp +++ b/src/cpp/main.cpp @@ -53,6 +53,7 @@ #include "QtWidgets/QPushButton/qpushbutton_wrap.h" #include "QtWidgets/QRadioButton/qradiobutton_wrap.h" #include "QtWidgets/QScrollArea/qscrollarea_wrap.h" +#include "QtWidgets/QScrollBar/qscrollbar_wrap.h" #include "QtWidgets/QShortcut/qshortcut_wrap.h" #include "QtWidgets/QSlider/qslider_wrap.h" #include "QtWidgets/QSpinBox/qspinbox_wrap.h" @@ -132,6 +133,7 @@ Napi::Object Main(Napi::Env env, Napi::Object exports) { QDialWrap::init(env, exports); QLabelWrap::init(env, exports); QScrollAreaWrap::init(env, exports); + QScrollBarWrap::init(env, exports); QSystemTrayIconWrap::init(env, exports); QActionWrap::init(env, exports); QShortcutWrap::init(env, exports); diff --git a/src/demo.ts b/src/demo.ts index b3cd586a8..da567b055 100644 --- a/src/demo.ts +++ b/src/demo.ts @@ -1,7 +1,7 @@ -import { QInputDialog } from './index'; +import { QDateEdit } from './lib/QtWidgets/QDateEdit'; -const dialog = new QInputDialog(); -dialog.setLabelText('Click that Omg button'); -dialog.exec(); +const dateEdit = new QDateEdit(); -// (global as any).win = win; +dateEdit.show(); + +(global as any).dateEdit = dateEdit; diff --git a/src/index.ts b/src/index.ts index 5b1fdee7d..bd51082be 100644 --- a/src/index.ts +++ b/src/index.ts @@ -25,12 +25,18 @@ export { QAbstractScrollArea } from './lib/QtWidgets/QAbstractScrollArea'; export { QAbstractSlider, QAbstractSliderSignals } from './lib/QtWidgets/QAbstractSlider'; export { QAbstractButton, QAbstractButtonSignals } from './lib/QtWidgets/QAbstractButton'; export { QAbstractItemView, QAbstractItemViewSignals } from './lib/QtWidgets/QAbstractItemView'; -export { QAbstractSpinBox } from './lib/QtWidgets/QAbstractSpinBox'; +export { + QAbstractSpinBox, + QAbstractSpinBoxSignals, + ButtonSymbols, + CorrectionMode, + StepType, +} from './lib/QtWidgets/QAbstractSpinBox'; // Widgets: export { QCalendarWidget, QCalendarWidgetSignals } from './lib/QtWidgets/QCalendarWidget'; export { QCheckBox, QCheckBoxSignals } from './lib/QtWidgets/QCheckBox'; export { QDateEdit } from './lib/QtWidgets/QDateEdit'; -export { QDateTimeEdit, QDateTimeEditSignals } from './lib/QtWidgets/QDateTimeEdit'; +export { QDateTimeEdit, NodeDateTimeEdit, QDateTimeEditSignals } from './lib/QtWidgets/QDateTimeEdit'; export { QLabel, QLabelSignals } from './lib/QtWidgets/QLabel'; export { QDial, QDialSignals } from './lib/QtWidgets/QDial'; export { QFileDialog, QFileDialogSignals } from './lib/QtWidgets/QFileDialog'; @@ -52,6 +58,7 @@ export { QMenu, QMenuSignals } from './lib/QtWidgets/QMenu'; export { QMenuBar, QMenuBarSignals } from './lib/QtWidgets/QMenuBar'; export { QPlainTextEdit, QPlainTextEditSignals, LineWrapMode } from './lib/QtWidgets/QPlainTextEdit'; export { QScrollArea, QScrollAreaSignals } from './lib/QtWidgets/QScrollArea'; +export { QScrollBar, QScrollBarSignals } from './lib/QtWidgets/QScrollBar'; export { QSlider, QSliderSignals, TickPosition } from './lib/QtWidgets/QSlider'; export { QTimeEdit } from './lib/QtWidgets/QTimeEdit'; export { QTreeWidget, QTreeWidgetSignals } from './lib/QtWidgets/QTreeWidget'; diff --git a/src/lib/QtWidgets/QAbstractSpinBox.ts b/src/lib/QtWidgets/QAbstractSpinBox.ts index 8a8818d48..fdbd7fb40 100644 --- a/src/lib/QtWidgets/QAbstractSpinBox.ts +++ b/src/lib/QtWidgets/QAbstractSpinBox.ts @@ -100,6 +100,11 @@ export enum CorrectionMode { CorrectToNearestValue, } +export enum StepType { + DefaultStepType, + AdaptiveDecimalStepType, +} + export interface QAbstractSpinBoxSignals extends QWidgetSignals { editingFinished: () => void; } diff --git a/src/lib/QtWidgets/QCheckBox.ts b/src/lib/QtWidgets/QCheckBox.ts index 08e907fac..73d8b5c0d 100644 --- a/src/lib/QtWidgets/QCheckBox.ts +++ b/src/lib/QtWidgets/QCheckBox.ts @@ -3,6 +3,7 @@ import { NodeWidget } from './QWidget'; import { NativeElement, NativeRawPointer, Component } from '../core/Component'; import { QAbstractButton, QAbstractButtonSignals } from './QAbstractButton'; import { checkIfNativeElement, checkIfNapiExternal } from '../utils/helpers'; +import { CheckState } from '../QtEnums'; /** @@ -44,12 +45,20 @@ export class QCheckBox extends QAbstractButton { this.native = native; parent && this.setNodeParent(parent); } - setChecked(check: boolean): void { - this.native.setChecked(check); + setTristate(y = true): void { + this.setProperty('tristate', y); } - isChecked(): boolean { - return this.native.isChecked(); + isTristate(): boolean { + return this.property('tristate').toBool(); + } + checkState(): CheckState { + return this.native.checkState(); + } + setCheckState(state: CheckState): void { + this.native.setCheckState(state); } } -export type QCheckBoxSignals = QAbstractButtonSignals; +export interface QCheckBoxSignals extends QAbstractButtonSignals { + stateChanged: (state: number) => void; +} diff --git a/src/lib/QtWidgets/QDateEdit.ts b/src/lib/QtWidgets/QDateEdit.ts index 6dba0d0c6..1aa329f50 100644 --- a/src/lib/QtWidgets/QDateEdit.ts +++ b/src/lib/QtWidgets/QDateEdit.ts @@ -1,7 +1,7 @@ import addon from '../utils/addon'; import { NodeWidget } from './QWidget'; import { NativeElement } from '../core/Component'; -import { QDateTimeEdit } from './QDateTimeEdit'; +import { NodeDateTimeEdit } from './QDateTimeEdit'; /** @@ -20,7 +20,7 @@ const dateEdit = new QDateEdit(); // must be implemented ``` */ -export class QDateEdit extends QDateTimeEdit { +export class QDateEdit extends NodeDateTimeEdit { native: NativeElement; constructor(); constructor(parent: NodeWidget); diff --git a/src/lib/QtWidgets/QDateTimeEdit.ts b/src/lib/QtWidgets/QDateTimeEdit.ts index 3520008ba..951a1a677 100644 --- a/src/lib/QtWidgets/QDateTimeEdit.ts +++ b/src/lib/QtWidgets/QDateTimeEdit.ts @@ -8,45 +8,8 @@ import { QDateTime } from '../QtCore/QDateTime'; import { QTime } from '../QtCore/QTime'; import { TimeSpec } from '../QtEnums'; -/** - -> Creates and controls a widget for editing dates and times with spin box layout. - -* **This class is a JS wrapper around Qt's [QDateTimeEdit class](https://doc.qt.io/qt-5/qdatetimeedit.html)** - -### Example - -```javascript -const { QDateTimeEdit, QDate, QTime } = require("@nodegui/nodegui"); - -const dateTimeEdit = new QDateTimeEdit(); - -let date = new QDate(); -date.setDate(2020, 1, 1); - -let time = new QTime(); -time.setHMS(16, 30, 0); - -dateTimeEdit.setDate(date); -dateTimeEdit.setTime(time); -``` - */ -export class QDateTimeEdit extends QAbstractSpinBox { - native: NativeElement; +export abstract class NodeDateTimeEdit extends QAbstractSpinBox { calendar?: QCalendarWidget; - constructor(); - constructor(parent: NodeWidget); - constructor(parent?: NodeWidget) { - let native; - if (parent) { - native = new addon.QDateTimeEdit(parent.native); - } else { - native = new addon.QDateTimeEdit(); - } - super(native); - this.native = native; - this.setNodeParent(parent); - } setCalendarWidget(calendarWidget: QCalendarWidget): void { this.calendar = calendarWidget; this.native.setCalendarWidget(calendarWidget.native); @@ -99,6 +62,46 @@ export class QDateTimeEdit extends QAbstractSpinBox { } } +/** + +> Creates and controls a widget for editing dates and times with spin box layout. + +* **This class is a JS wrapper around Qt's [QDateTimeEdit class](https://doc.qt.io/qt-5/qdatetimeedit.html)** + +### Example + +```javascript +const { QDateTimeEdit, QDate, QTime } = require("@nodegui/nodegui"); + +const dateTimeEdit = new QDateTimeEdit(); + +let date = new QDate(); +date.setDate(2020, 1, 1); + +let time = new QTime(); +time.setHMS(16, 30, 0); + +dateTimeEdit.setDate(date); +dateTimeEdit.setTime(time); +``` + */ +export class QDateTimeEdit extends NodeDateTimeEdit { + native: NativeElement; + constructor(); + constructor(parent: NodeWidget); + constructor(parent?: NodeWidget) { + let native; + if (parent) { + native = new addon.QDateTimeEdit(parent.native); + } else { + native = new addon.QDateTimeEdit(); + } + super(native); + this.native = native; + this.setNodeParent(parent); + } +} + export interface QDateTimeEditSignals extends QAbstractSpinBoxSignals { dateChanged: (date: QDate) => void; dateTimeChanged: (datetime: QDateTime) => void; diff --git a/src/lib/QtWidgets/QDial.ts b/src/lib/QtWidgets/QDial.ts index 9de17921a..928e72923 100644 --- a/src/lib/QtWidgets/QDial.ts +++ b/src/lib/QtWidgets/QDial.ts @@ -34,23 +34,26 @@ export class QDial extends QAbstractSlider { this.native = native; this.setNodeParent(parent); } - setNotchesVisible(visible: boolean): void { - this.native.setNotchesVisible(visible); - } - notchesVisible(): boolean { - return this.native.notchesVisible(); - } - setWrapping(on: boolean): void { - this.native.setWrapping(on); - } - wrapping(): boolean { - return this.native.wrapping(); + notchSize(): number { + return this.property('notchSize').toInt(); } setNotchTarget(target: number): void { - this.native.setNotchTarget(target); + this.setProperty('notchTarget', target); } notchTarget(): number { - return this.native.notchTarget(); + return this.property('notchTarget').toDouble(); + } + setNotchesVisible(visible: boolean): void { + this.setProperty('notchesVisible', visible); + } + notchesVisible(): boolean { + return this.property('notchesVisible').toBool(); + } + setWrapping(on: boolean): void { + this.setProperty('wrapping', on); + } + wrapping(): boolean { + return this.property('wrapping').toBool(); } } diff --git a/src/lib/QtWidgets/QGroupBox.ts b/src/lib/QtWidgets/QGroupBox.ts index cdf08445b..0db6a035e 100644 --- a/src/lib/QtWidgets/QGroupBox.ts +++ b/src/lib/QtWidgets/QGroupBox.ts @@ -54,35 +54,35 @@ export class QGroupBox extends NodeWidget { this.native = native; this.setNodeParent(parent); } + setAlignment(alignment: AlignmentFlag): void { + this.setProperty('alignment', alignment); + } alignment(): AlignmentFlag { - return this.native.alignment(); - } - isCheckable(): boolean { - return this.native.isCheckable(); - } - isChecked(): boolean { - return this.native.isChecked(); - } - isFlat(): boolean { - return this.native.isFlat(); - } - setAlignment(alignment: number): void { - this.native.setAlignment(alignment); + return this.property('alignment').toInt(); } setCheckable(checkable: boolean): void { - this.native.setCheckable(checkable); + this.setProperty('checkable', checkable); } - setFlat(flat: boolean): void { - this.native.setFlat(flat); - } - setTitle(title: string): void { - this.native.setTitle(title); - } - title(): string { - return this.native.title(); + isCheckable(): boolean { + return this.property('checkable').toBool(); } setChecked(checked: boolean): void { - this.native.setChecked(checked); + this.setProperty('checked', checked); + } + isChecked(): boolean { + return this.property('checked').toBool(); + } + setFlat(flat: boolean): void { + this.setProperty('flat', flat); + } + isFlat(): boolean { + return this.property('flat').toBool(); + } + setTitle(title: string): void { + this.setProperty('title', title); + } + title(): string { + return this.property('title').toString(); } } diff --git a/src/lib/QtWidgets/QScrollBar.ts b/src/lib/QtWidgets/QScrollBar.ts new file mode 100644 index 000000000..b06fa38e9 --- /dev/null +++ b/src/lib/QtWidgets/QScrollBar.ts @@ -0,0 +1,39 @@ +import addon from '../utils/addon'; +import { NodeWidget } from './QWidget'; +import { NativeElement } from '../core/Component'; +import { QAbstractSlider, QAbstractSliderSignals } from './QAbstractSlider'; + +/** + +> Create and control scollbar widgets. + +* **This class is a JS wrapper around Qt's [QScrollBar class](https://doc.qt.io/qt-5/qscrollbar.html)** + +A `QScrollBar` provides ability to add and manipulate native scrollbar widgets. + +### Example + +```javascript +const { QScrollBar } = require("@nodegui/nodegui"); + +const scrollbar = new QScrollBar(); +``` + */ +export class QScrollBar extends QAbstractSlider { + native: NativeElement; + constructor(); + constructor(parent: NodeWidget); + constructor(parent?: NodeWidget) { + let native; + if (parent) { + native = new addon.QScrollBar(parent.native); + } else { + native = new addon.QScrollBar(); + } + super(native); + this.native = native; + this.setNodeParent(parent); + } +} + +export type QScrollBarSignals = QAbstractSliderSignals; diff --git a/src/lib/QtWidgets/QSpinBox.ts b/src/lib/QtWidgets/QSpinBox.ts index fb2a5476c..7cbaee719 100644 --- a/src/lib/QtWidgets/QSpinBox.ts +++ b/src/lib/QtWidgets/QSpinBox.ts @@ -1,6 +1,7 @@ import addon from '../utils/addon'; -import { NodeWidget, QWidgetSignals } from './QWidget'; +import { NodeWidget } from './QWidget'; import { NativeElement } from '../core/Component'; +import { QAbstractSpinBox, QAbstractSpinBoxSignals, StepType } from './QAbstractSpinBox'; /** @@ -18,7 +19,7 @@ const { QSpinBox } = require("@nodegui/nodegui"); const spinBox = new QSpinBox(); ``` */ -export class QSpinBox extends NodeWidget { +export class QSpinBox extends QAbstractSpinBox { native: NativeElement; constructor(); constructor(parent: NodeWidget); @@ -33,44 +34,62 @@ export class QSpinBox extends NodeWidget { this.setNodeParent(parent); this.native = native; } - setPrefix(prefix: string): void { - // react:✓ - this.native.setPrefix(prefix); - } - setSuffix(suffix: string): void { - // react:✓ - this.native.setSuffix(suffix); - } cleanText(): string { - // react:✓ - return this.native.cleanText(); + return this.property('cleanText').toString(); } - setSingleStep(val: number): void { - // react:✓ - this.native.setSingleStep(val); + setDisplayIntegerBase(base: number): void { + this.setProperty('displayIntegerBase', base); } - setRange(minimum: number, maximum: number): void { - // react:✓ - this.native.setRange(minimum, maximum); + displayIntegerBase(): number { + return this.property('displayIntegerBase').toInt(); + } + setMaximum(max: number): void { + this.setProperty('maximum', max); } maximum(): number { - // react:✓ - return this.native.maximum(); + return this.property('maximum').toInt(); + } + setMinimum(min: number): void { + this.setProperty('minimum', min); } minimum(): number { - // react:✓ - return this.native.minimum(); + return this.property('minimum').toInt(); + } + setPrefix(prefix: string): void { + this.setProperty('prefix', prefix); + } + prefix(): string { + return this.property('prefix').toString(); + } + setSingleStep(val: number): void { + this.setProperty('singleStep', val); + } + singleStep(): number { + return this.property('singleStep').toInt(); + } + setStepType(stepType: StepType): void { + this.setProperty('stepType', stepType); + } + stepType(): StepType { + return this.property('stepType').toInt(); + } + setSuffix(suffix: string): void { + this.setProperty('suffix', suffix); + } + suffix(): string { + return this.property('suffix').toString(); } setValue(val: number): void { - // react:✓ - this.native.setValue(val); + this.setProperty('value', val); } value(): number { - // react:✓ - return this.native.value(); + return this.property('value').toInt(); + } + setRange(minimum: number, maximum: number): void { + this.native.setRange(minimum, maximum); } } -export interface QSpinBoxSignals extends QWidgetSignals { +export interface QSpinBoxSignals extends QAbstractSpinBoxSignals { valueChanged: (value: number) => void; } diff --git a/src/lib/QtWidgets/QTimeEdit.ts b/src/lib/QtWidgets/QTimeEdit.ts index d827dfdbe..18d3c97a9 100644 --- a/src/lib/QtWidgets/QTimeEdit.ts +++ b/src/lib/QtWidgets/QTimeEdit.ts @@ -1,7 +1,7 @@ import addon from '../utils/addon'; import { NodeWidget } from './QWidget'; import { NativeElement } from '../core/Component'; -import { QDateTimeEdit } from './QDateTimeEdit'; +import { NodeDateTimeEdit } from './QDateTimeEdit'; /** @@ -20,7 +20,7 @@ const timeEdit = new QTimeEdit(); // must be implemented ``` */ -export class QTimeEdit extends QDateTimeEdit { +export class QTimeEdit extends NodeDateTimeEdit { native: NativeElement; constructor(); constructor(parent: NodeWidget);