add type parameters to QSignal
This commit is contained in:
34
src/extern/kwin.d.ts
vendored
34
src/extern/kwin.d.ts
vendored
@@ -15,14 +15,14 @@ declare const workspace: {
|
||||
currentActivity: string;
|
||||
|
||||
// Signals
|
||||
clientAdded: QSignal;
|
||||
clientRemoved: QSignal;
|
||||
clientMinimized: QSignal;
|
||||
clientUnminimized: QSignal;
|
||||
clientMaximizeSet: QSignal;
|
||||
clientActivated: QSignal;
|
||||
numberDesktopsChanged: QSignal;
|
||||
virtualScreenSizeChanged: QSignal;
|
||||
clientAdded: QSignal<[KwinClient]>;
|
||||
clientRemoved: QSignal<[AbstractClient]>;
|
||||
clientMinimized: QSignal<[AbstractClient]>;
|
||||
clientUnminimized: QSignal<[AbstractClient]>;
|
||||
clientMaximizeSet: QSignal<[AbstractClient, horizontally: boolean, vertically: boolean]>;
|
||||
clientActivated: QSignal<[AbstractClient]>;
|
||||
numberDesktopsChanged: QSignal<[oldNumberOfVirtualDesktops: number]>;
|
||||
virtualScreenSizeChanged: QSignal<[void]>;
|
||||
|
||||
// Functions
|
||||
clientArea(option: ClientAreaOption, screenNumber: number, desktopNumber: number);
|
||||
@@ -52,14 +52,14 @@ interface AbstractClient {
|
||||
minimized: boolean;
|
||||
|
||||
// Signals
|
||||
fullScreenChanged: QSignal;
|
||||
desktopChanged: QSignal;
|
||||
activitiesChanged: QSignal;
|
||||
captionChanged: QSignal;
|
||||
tileChanged: QSignal;
|
||||
moveResizedChanged: QSignal;
|
||||
moveResizeCursorChanged: QSignal;
|
||||
clientStartUserMovedResized: QSignal;
|
||||
fullScreenChanged: QSignal<[void]>;
|
||||
desktopChanged: QSignal<[void]>;
|
||||
activitiesChanged: QSignal<[AbstractClient]>;
|
||||
captionChanged: QSignal<[void]>;
|
||||
tileChanged: QSignal<[Tile]>;
|
||||
moveResizedChanged: QSignal<[void]>;
|
||||
moveResizeCursorChanged: QSignal<[void]>;
|
||||
clientStartUserMovedResized: QSignal<[void]>;
|
||||
|
||||
// Functions
|
||||
setMaximize(vertically: boolean, horizontally: boolean): void;
|
||||
@@ -74,7 +74,7 @@ interface TopLevel extends AbstractClient {
|
||||
managed: boolean;
|
||||
|
||||
// Signals
|
||||
frameGeometryChanged: QSignal;
|
||||
frameGeometryChanged: QSignal<[TopLevel, oldGeometry: QRect]>;
|
||||
}
|
||||
|
||||
interface KwinClient extends TopLevel {}
|
||||
|
||||
8
src/extern/qt.d.ts
vendored
8
src/extern/qt.d.ts
vendored
@@ -28,14 +28,14 @@ type QSize = {
|
||||
height: number;
|
||||
}
|
||||
|
||||
type QSignal = {
|
||||
connect(handler: (...args: any[]) => void): void;
|
||||
disconnect(handler: (...args: any[]) => void): void;
|
||||
type QSignal<T extends unknown[]> = {
|
||||
connect(handler: (...args: [...T]) => void): void;
|
||||
disconnect(handler: (...args: [...T]) => void): void;
|
||||
}
|
||||
|
||||
type QQmlTimer = {
|
||||
interval: number;
|
||||
triggered: QSignal;
|
||||
triggered: QSignal<[void]>;
|
||||
restart(): void;
|
||||
destroy(): void;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
class SignalManager {
|
||||
private connections: { signal: QSignal, handler: (...args: any[]) => void }[];
|
||||
private connections: { signal: QSignal<any>, handler: (...args: any) => void }[];
|
||||
|
||||
constructor() {
|
||||
this.connections = [];
|
||||
}
|
||||
|
||||
public connect(signal: QSignal, handler: (...args: any[]) => void) {
|
||||
public connect<T extends unknown[]>(signal: QSignal<T>, handler: (...args: [...T]) => void) {
|
||||
signal.connect(handler);
|
||||
this.connections.push({ signal: signal, handler: handler });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user