From 44a88390feb57f037de21cafc44c1e998559fc1f Mon Sep 17 00:00:00 2001 From: Atul R Date: Sat, 8 Jun 2019 20:58:40 +0200 Subject: [PATCH] Changing to setSignalListener since signals and events mean different things in qt. So changing it to match it --- demo.ts | 14 +++++++------- devdocs/signal_handling.md | 0 .../QPushButton/qpushbutton_wrap.cpp | 4 ++-- .../QtWidgets/QPushButton/qpushbutton_wrap.h | 2 +- src/lib/QtWidgets/QPushButton/index.ts | 6 +++--- src/lib/core/EventNodeWidget/index.ts | 19 ------------------- src/lib/core/SignalNodeWidget/index.ts | 19 +++++++++++++++++++ 7 files changed, 32 insertions(+), 32 deletions(-) create mode 100644 devdocs/signal_handling.md delete mode 100644 src/lib/core/EventNodeWidget/index.ts create mode 100644 src/lib/core/SignalNodeWidget/index.ts diff --git a/demo.ts b/demo.ts index c9e5e3195..16929a486 100644 --- a/demo.ts +++ b/demo.ts @@ -4,7 +4,7 @@ import { QGridLayout } from "./src/lib/QtWidgets/QGridLayout"; import { QLabel } from "./src/lib/QtWidgets/QLabel"; import { QPushButton, - QPushButtonEvents + QPushButtonSignal } from "./src/lib/QtWidgets/QPushButton"; import { QCheckBox } from "./src/lib/QtWidgets/QCheckBox"; import { QProgressBar } from "./src/lib/QtWidgets/QProgressBar"; @@ -25,17 +25,17 @@ const testGridLayout = () => { label.setStyleSheet("background-color:blue; color:white;"); const button1 = new QPushButton(); - button1.setEventListener(QPushButtonEvents.clicked, (...args) => { - console.log("clicked", ...args); + button1.setSignalListener(QPushButtonSignal.clicked, isChecked => { + console.log("clicked", isChecked); }); - button1.setEventListener(QPushButtonEvents.pressed, (...args) => { + button1.setSignalListener(QPushButtonSignal.pressed, (...args) => { console.log("pressed", ...args); }); - button1.setEventListener(QPushButtonEvents.released, (...args) => { + button1.setSignalListener(QPushButtonSignal.released, (...args) => { console.log("released", ...args); }); - button1.setEventListener(QPushButtonEvents.toggled, (...args) => { - console.log("toggled", ...args); + button1.setSignalListener(QPushButtonSignal.toggled, isToggled => { + console.log("toggled", isToggled); }); button1.setText(`Button for Label with text: ${label.text()}`); diff --git a/devdocs/signal_handling.md b/devdocs/signal_handling.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp b/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp index e32762bb7..1dd7e5136 100644 --- a/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp +++ b/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp @@ -9,7 +9,7 @@ Napi::Object QPushButtonWrap::init(Napi::Env env, Napi::Object exports) { char CLASSNAME[] = "QPushButton"; Napi::Function func = DefineClass(env, CLASSNAME, { InstanceMethod("setText", &QPushButtonWrap::setText), - InstanceMethod("setupEventListeners",&QPushButtonWrap::setupEventListeners), + InstanceMethod("setupSignalListeners",&QPushButtonWrap::setupSignalListeners), QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QPushButtonWrap) }); constructor = Napi::Persistent(func); @@ -41,7 +41,7 @@ QPushButtonWrap::~QPushButtonWrap() { delete this->instance; } -Napi::Value QPushButtonWrap::setupEventListeners(const Napi::CallbackInfo& info) { +Napi::Value QPushButtonWrap::setupSignalListeners(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); this->emitOnNode = std::make_unique(info[0].As()); // Qt Connects: Implement all signal connects here diff --git a/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h b/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h index b903d655d..f906daa1a 100644 --- a/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h +++ b/src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h @@ -14,7 +14,7 @@ class QPushButtonWrap : public Napi::ObjectWrap { QPushButtonWrap(const Napi::CallbackInfo& info); ~QPushButtonWrap(); NPushButton* getInternalInstance(); - Napi::Value setupEventListeners(const Napi::CallbackInfo& info); + Napi::Value setupSignalListeners(const Napi::CallbackInfo& info); //class constructor static Napi::FunctionReference constructor; //wrapped methods diff --git a/src/lib/QtWidgets/QPushButton/index.ts b/src/lib/QtWidgets/QPushButton/index.ts index 0605fefee..934711031 100644 --- a/src/lib/QtWidgets/QPushButton/index.ts +++ b/src/lib/QtWidgets/QPushButton/index.ts @@ -1,15 +1,15 @@ import addon from "../../core/addon"; import { NodeWidget } from "../../QtGui/QWidget"; -import { EventNodeWidget } from "../../core/EventNodeWidget"; +import { SignalNodeWidget } from "../../core/SignalNodeWidget"; -export enum QPushButtonEvents { +export enum QPushButtonSignal { clicked = "clicked", pressed = "pressed", released = "released", toggled = "toggled" } -export class QPushButton extends EventNodeWidget { +export class QPushButton extends SignalNodeWidget { native: any; constructor(parent?: NodeWidget) { let native; diff --git a/src/lib/core/EventNodeWidget/index.ts b/src/lib/core/EventNodeWidget/index.ts deleted file mode 100644 index 7a6d38b0b..000000000 --- a/src/lib/core/EventNodeWidget/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { NodeWidget } from "../../QtGui/QWidget"; -import { EventEmitter } from "events"; - -export abstract class EventNodeWidget extends NodeWidget { - private emitter: EventEmitter; - constructor(native: any) { - super(); - if (native.setupEventListeners) { - this.emitter = new EventEmitter(); - native.setupEventListeners(this.emitter.emit.bind(this.emitter)); - } else { - throw new Error("Event Listeners not implemented on native side"); - } - } - - setEventListener(eventType: string, callback: (payload?: any) => void) { - this.emitter.on(eventType, callback); - } -} diff --git a/src/lib/core/SignalNodeWidget/index.ts b/src/lib/core/SignalNodeWidget/index.ts new file mode 100644 index 000000000..eff497e4f --- /dev/null +++ b/src/lib/core/SignalNodeWidget/index.ts @@ -0,0 +1,19 @@ +import { NodeWidget } from "../../QtGui/QWidget"; +import { EventEmitter } from "events"; + +export abstract class SignalNodeWidget extends NodeWidget { + private emitter: EventEmitter; + constructor(native: any) { + super(); + if (native.setupSignalListeners) { + this.emitter = new EventEmitter(); + native.setupSignalListeners(this.emitter.emit.bind(this.emitter)); + } else { + throw new Error("Signal Listeners not implemented on native side"); + } + } + + setSignalListener(signalType: string, callback: (payload?: any) => void) { + this.emitter.on(signalType, callback); + } +}