Update: nav添加 打开串口 选项

This commit is contained in:
王立帮
2024-09-09 08:41:47 +08:00
parent cfbcd5cbef
commit 6787831c58
2 changed files with 32 additions and 11 deletions

View File

@@ -261,6 +261,22 @@ class App extends Component {
weight: 5 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({ /*const leftSideBarOption = this.#nav_.register({
icon: 'codicon-layout-sidebar-left-off', icon: 'codicon-layout-sidebar-left-off',
title: '操作左侧边栏', title: '操作左侧边栏',

View File

@@ -133,6 +133,18 @@ class StatusBarsManager extends PagesManager {
return this.#shown_; 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_() { #addDropdownMenu_() {
const selector = `div[m-id="${this.tabId}"] > .statusbar-dropdown-menu > .layui-btn`; const selector = `div[m-id="${this.tabId}"] > .statusbar-dropdown-menu > .layui-btn`;
let menu = new Menu(); let menu = new Menu();
@@ -147,14 +159,7 @@ class StatusBarsManager extends PagesManager {
isHtmlName: true, isHtmlName: true,
name: ContextMenu.getItem(Msg.Lang['statusbar.openSelectedPort'], ''), name: ContextMenu.getItem(Msg.Lang['statusbar.openSelectedPort'], ''),
callback: (key, opt) => { callback: (key, opt) => {
const port = Serial.getSelectedPortName(); this.openSelectedPort();
if (port) {
this.runEvent('onSelectMenu', port);
} else {
layer.msg(Msg.Lang['statusbar.serial.noDevice'], {
time: 1000
});
}
} }
} }
}); });
@@ -233,8 +238,8 @@ class StatusBarsManager extends PagesManager {
this.#dropdownMenu_.bind('getMenu', () => 'menu'); this.#dropdownMenu_.bind('getMenu', () => 'menu');
} }
#onSelectMenu_(event) { #onSelectMenu_(port) {
this.runEvent('onSelectMenu', event); this.runEvent('onSelectMenu', port);
} }
#getMenu_() { #getMenu_() {
@@ -254,7 +259,7 @@ class StatusBarsManager extends PagesManager {
this.add('serial', port); this.add('serial', port);
this.changeTo(port); this.changeTo(port);
const statusBarSerial = this.getStatusBarById(port); const statusBarSerial = this.getStatusBarById(port);
if (statusBarSerial.isInited()) { if (statusBarSerial.isInited() && !statusBarSerial.isOpened()) {
statusBarSerial.open().catch(Debug.error); statusBarSerial.open().catch(Debug.error);
} }
}); });