Changing to setSignalListener since signals and events mean different things in qt. So changing it to match it
This commit is contained in:
parent
e970d55108
commit
44a88390fe
14
demo.ts
14
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()}`);
|
||||
|
||||
0
devdocs/signal_handling.md
Normal file
0
devdocs/signal_handling.md
Normal file
@ -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<ThreadSafeCallback>(info[0].As<Napi::Function>());
|
||||
// Qt Connects: Implement all signal connects here
|
||||
|
||||
@ -14,7 +14,7 @@ class QPushButtonWrap : public Napi::ObjectWrap<QPushButtonWrap> {
|
||||
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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
19
src/lib/core/SignalNodeWidget/index.ts
Normal file
19
src/lib/core/SignalNodeWidget/index.ts
Normal file
@ -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);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user