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); } });