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 @@
-