From 6787831c5813c00c6956f79fc91dabe36ba43cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Mon, 9 Sep 2024 08:41:47 +0800 Subject: [PATCH] =?UTF-8?q?Update:=20nav=E6=B7=BB=E5=8A=A0=20`=E6=89=93?= =?UTF-8?q?=E5=BC=80=E4=B8=B2=E5=8F=A3`=20=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/modules/mixly-modules/common/app.js | 16 +++++++++++ .../common/statusbars-manager.js | 27 +++++++++++-------- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/common/modules/mixly-modules/common/app.js b/common/modules/mixly-modules/common/app.js index 25893d52..b8fa7927 100644 --- a/common/modules/mixly-modules/common/app.js +++ b/common/modules/mixly-modules/common/app.js @@ -261,6 +261,22 @@ class App extends Component { weight: 5 }); + this.#nav_.register({ + icon: 'icon-usb', + title: '', + id: 'serial-open-btn', + displayText: Msg.Lang['statusbar.serial.port'], + preconditionFn: () => { + return true; + }, + callback: () => { + const statusBarsManager = this.#workspace_.getStatusBarsManager(); + statusBarsManager.openSelectedPort(); + }, + scopeType: Nav.Scope.LEFT, + weight: 10 + }); + /*const leftSideBarOption = this.#nav_.register({ icon: 'codicon-layout-sidebar-left-off', title: '操作左侧边栏', diff --git a/common/modules/mixly-modules/common/statusbars-manager.js b/common/modules/mixly-modules/common/statusbars-manager.js index 9406af65..b5d678dd 100644 --- a/common/modules/mixly-modules/common/statusbars-manager.js +++ b/common/modules/mixly-modules/common/statusbars-manager.js @@ -133,6 +133,18 @@ class StatusBarsManager extends PagesManager { return this.#shown_; } + openSelectedPort() { + const port = Serial.getSelectedPortName(); + if (port) { + this.show(); + this.#onSelectMenu_(port); + } else { + layer.msg(Msg.Lang['statusbar.serial.noDevice'], { + time: 1000 + }); + } + } + #addDropdownMenu_() { const selector = `div[m-id="${this.tabId}"] > .statusbar-dropdown-menu > .layui-btn`; let menu = new Menu(); @@ -147,14 +159,7 @@ class StatusBarsManager extends PagesManager { isHtmlName: true, name: ContextMenu.getItem(Msg.Lang['statusbar.openSelectedPort'], ''), callback: (key, opt) => { - const port = Serial.getSelectedPortName(); - if (port) { - this.runEvent('onSelectMenu', port); - } else { - layer.msg(Msg.Lang['statusbar.serial.noDevice'], { - time: 1000 - }); - } + this.openSelectedPort(); } } }); @@ -233,8 +238,8 @@ class StatusBarsManager extends PagesManager { this.#dropdownMenu_.bind('getMenu', () => 'menu'); } - #onSelectMenu_(event) { - this.runEvent('onSelectMenu', event); + #onSelectMenu_(port) { + this.runEvent('onSelectMenu', port); } #getMenu_() { @@ -254,7 +259,7 @@ class StatusBarsManager extends PagesManager { this.add('serial', port); this.changeTo(port); const statusBarSerial = this.getStatusBarById(port); - if (statusBarSerial.isInited()) { + if (statusBarSerial.isInited() && !statusBarSerial.isOpened()) { statusBarSerial.open().catch(Debug.error); } });