diff --git a/src/components/sidebar/index.vue b/src/components/sidebar/index.vue index 2e179b1..0ee20fa 100644 --- a/src/components/sidebar/index.vue +++ b/src/components/sidebar/index.vue @@ -23,7 +23,7 @@ @@ -76,6 +76,7 @@ import SignalItem from './signal-item.vue'; import GroupItem from './group-item.vue'; import GroupContextMenu from './group-context-menu.vue'; import { sidebarSelectedWires } from '@/hook/sidebar-select-wire'; +import { genOrderedLinks } from '@/hook/wave-container-view'; const { t } = useI18n(); defineComponent({ name: 'side-bar' }); @@ -102,18 +103,37 @@ function addSignal() { } -function handleItemClick(link) { +function handleItemClick(event, link) { contextmenu.show = false; groupcontextmenu.show = false; + const lastLink = sidebarSelectedWires.lastLink; - if (sidebarSelectedWires.has(link)) { - sidebarSelectedWires.delete(link); + if (event.shiftKey && lastLink !== undefined) { + // 如果按下了 shift,那么把刚刚的 link 到现在之间所有的 link 全部加入 + let addBegin = false; + const links = []; + for (const currentLink of genOrderedLinks({returnGroup: false})) { + if (currentLink === link || currentLink === lastLink) { + links.push(currentLink); + addBegin = !addBegin; + } else if (addBegin) { + links.push(currentLink); + } + } + sidebarSelectedWires.addLinks(links); } else { - sidebarSelectedWires.add(link); + // 如果没有,则加入;有,则删除 + if (sidebarSelectedWires.has(link)) { + sidebarSelectedWires.delete(link); + } else { + sidebarSelectedWires.add(link); + } } } + + function handleSidebarGlobalClick() { contextmenu.show = false; groupcontextmenu.show = false; diff --git a/src/components/treeview/index.vue b/src/components/treeview/index.vue index 5385973..4d5052a 100644 --- a/src/components/treeview/index.vue +++ b/src/components/treeview/index.vue @@ -70,6 +70,7 @@ export default { display: flex; flex-direction: column; transition: height .5s ease-in-out; + user-select: none; } .vcd-module-wrapper { diff --git a/src/components/treeview/signals.vue b/src/components/treeview/signals.vue index d152ac9..d3e7575 100644 --- a/src/components/treeview/signals.vue +++ b/src/components/treeview/signals.vue @@ -4,7 +4,7 @@
@@ -19,42 +19,73 @@
-