From 88cd9d430f2c26ad644a225282470f131d6d9f2e Mon Sep 17 00:00:00 2001 From: Mikko Sairio Date: Sun, 10 Nov 2019 17:29:59 +0200 Subject: [PATCH] Added echoMode to QLineEdit (#187) --- .../nodegui/QtWidgets/QLineEdit/qlineedit_wrap.h | 1 + src/cpp/lib/QtWidgets/QLineEdit/qlineedit_wrap.cpp | 11 +++++++++++ src/index.ts | 2 +- src/lib/QtWidgets/QLineEdit.ts | 9 +++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/cpp/include/nodegui/QtWidgets/QLineEdit/qlineedit_wrap.h b/src/cpp/include/nodegui/QtWidgets/QLineEdit/qlineedit_wrap.h index b3f673077..8bc2e32c5 100644 --- a/src/cpp/include/nodegui/QtWidgets/QLineEdit/qlineedit_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QLineEdit/qlineedit_wrap.h @@ -25,6 +25,7 @@ class QLineEditWrap : public Napi::ObjectWrap { Napi::Value setPlaceholderText(const Napi::CallbackInfo& info); Napi::Value setReadOnly(const Napi::CallbackInfo& info); Napi::Value clear(const Napi::CallbackInfo& info); + Napi::Value setEchoMode(const Napi::CallbackInfo& info); QWIDGET_WRAPPED_METHODS_DECLARATION }; diff --git a/src/cpp/lib/QtWidgets/QLineEdit/qlineedit_wrap.cpp b/src/cpp/lib/QtWidgets/QLineEdit/qlineedit_wrap.cpp index fdcd0cd21..3107ade6e 100644 --- a/src/cpp/lib/QtWidgets/QLineEdit/qlineedit_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QLineEdit/qlineedit_wrap.cpp @@ -18,6 +18,7 @@ Napi::Object QLineEditWrap::init(Napi::Env env, Napi::Object exports) { InstanceMethod("text", &QLineEditWrap::text), InstanceMethod("setReadOnly", &QLineEditWrap::setReadOnly), InstanceMethod("clear", &QLineEditWrap::clear), + InstanceMethod("setEchoMode", &QLineEditWrap::setEchoMode), QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QLineEditWrap)}); constructor = Napi::Persistent(func); exports.Set(CLASSNAME, func); @@ -81,9 +82,19 @@ Napi::Value QLineEditWrap::setPlaceholderText(const Napi::CallbackInfo& info) { this->instance->setPlaceholderText(text.Utf8Value().c_str()); return env.Null(); } + Napi::Value QLineEditWrap::clear(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); Napi::HandleScope scope(env); this->instance->clear(); return env.Null(); } + +Napi::Value QLineEditWrap::setEchoMode(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::HandleScope scope(env); + Napi::Number mode = info[0].As(); + this->instance->setEchoMode( + static_cast(mode.Int32Value())); + return env.Null(); +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 97c5197a9..fa36530cc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -23,7 +23,7 @@ export { QWidget, QWidgetEvents } from './lib/QtWidgets/QWidget'; export { QCheckBox, QCheckBoxEvents } from './lib/QtWidgets/QCheckBox'; export { QLabel, QLabelEvents } from './lib/QtWidgets/QLabel'; export { QDial, QDialEvents } from './lib/QtWidgets/QDial'; -export { QLineEdit, QLineEditEvents } from './lib/QtWidgets/QLineEdit'; +export { QLineEdit, QLineEditEvents, EchoMode } from './lib/QtWidgets/QLineEdit'; export { QMainWindow, QMainWindowEvents } from './lib/QtWidgets/QMainWindow'; export { QProgressBar, QProgressBarEvents } from './lib/QtWidgets/QProgressBar'; export { QPushButton, QPushButtonEvents } from './lib/QtWidgets/QPushButton'; diff --git a/src/lib/QtWidgets/QLineEdit.ts b/src/lib/QtWidgets/QLineEdit.ts index 4882b7df7..34ec36a4d 100644 --- a/src/lib/QtWidgets/QLineEdit.ts +++ b/src/lib/QtWidgets/QLineEdit.ts @@ -3,6 +3,12 @@ import { NodeWidget } from './QWidget'; import { BaseWidgetEvents } from '../core/EventWidget'; import { NativeElement } from '../core/Component'; +export enum EchoMode { + Normal, + NoEcho, + Password, + PasswordEchoOnEdit, +}; export const QLineEditEvents = Object.freeze({ ...BaseWidgetEvents, cursorPositionChanged: 'cursorPositionChanged', @@ -48,4 +54,7 @@ export class QLineEdit extends NodeWidget { // react:✓ this.native.clear(); } + setEchoMode(mode: EchoMode): void { + this.native.setEchoMode(mode); + } }