mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-04-19 12:57:17 +00:00
close websocket connection after closing serial plotter
This commit is contained in:
parent
fe3fbb189c
commit
f84c15bea0
@ -46,6 +46,7 @@ export class MonitorManagerProxyClientImpl
|
||||
private wsPort?: number;
|
||||
private lastConnectedBoard: BoardsConfig.Config;
|
||||
private onBoardsConfigChanged: Disposable | undefined;
|
||||
private isMonitorWidgetOpen = false;
|
||||
|
||||
getWebSocketPort(): number | undefined {
|
||||
return this.wsPort;
|
||||
@ -174,6 +175,14 @@ export class MonitorManagerProxyClientImpl
|
||||
return this.server().getCurrentSettings(board, port);
|
||||
}
|
||||
|
||||
setMonitorWidgetStatus(value: boolean): void {
|
||||
this.isMonitorWidgetOpen = value;
|
||||
}
|
||||
|
||||
getMonitorWidgetStatus(): boolean {
|
||||
return this.isMonitorWidgetOpen;
|
||||
}
|
||||
|
||||
send(message: string): void {
|
||||
if (!this.webSocket) {
|
||||
return;
|
||||
|
@ -74,6 +74,10 @@ export class MonitorWidget extends ReactWidget {
|
||||
this.monitorManagerProxy.startMonitor();
|
||||
}
|
||||
|
||||
protected override onAfterAttach(msg: Message): void {
|
||||
this.monitorManagerProxy.setMonitorWidgetStatus(this.isAttached);
|
||||
}
|
||||
|
||||
onMonitorSettingsDidChange(settings: MonitorSettings): void {
|
||||
this.settings = {
|
||||
...this.settings,
|
||||
@ -91,6 +95,7 @@ export class MonitorWidget extends ReactWidget {
|
||||
}
|
||||
|
||||
override dispose(): void {
|
||||
this.monitorManagerProxy.setMonitorWidgetStatus(this.isAttached);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
@ -65,6 +65,9 @@ export class PlotterFrontendContribution extends Contribution {
|
||||
|
||||
ipcRenderer.on(CLOSE_PLOTTER_WINDOW, async () => {
|
||||
if (!!this.window) {
|
||||
if (!this.monitorManagerProxy.getMonitorWidgetStatus()) {
|
||||
this.monitorManagerProxy.disconnect();
|
||||
}
|
||||
this.window = null;
|
||||
}
|
||||
});
|
||||
|
@ -37,6 +37,8 @@ export interface MonitorManagerProxyClient {
|
||||
isWSConnected(): Promise<boolean>;
|
||||
startMonitor(settings?: PluggableMonitorSettings): Promise<void>;
|
||||
getCurrentSettings(board: Board, port: Port): Promise<MonitorSettings>;
|
||||
setMonitorWidgetStatus(value: boolean): void;
|
||||
getMonitorWidgetStatus(): boolean;
|
||||
send(message: string): void;
|
||||
changeSettings(settings: MonitorSettings): void;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user