@@ -1089,11 +1089,30 @@ export default defineComponent({
1089
1089
throw new Error('Trajectory is not silent');
1090
1090
}
1091
1091
const phrase = props.piece.phraseGrid[track][silentTraj.phraseIdx!];
1092
- if (silentTraj.num === 0 || silentTraj.num === phrase.trajectories.length - 1) {
1093
- throw new Error('Silent trajectory is at the beginning or end of phrase');
1092
+ // if (silentTraj.num === 0 || silentTraj.num === phrase.trajectories.length - 1) {
1093
+ // throw new Error('Silent trajectory is at the beginning or end of phrase');
1094
+ // }
1095
+ let prevTraj: Trajectory | undefined = undefined;
1096
+ let nextTraj: Trajectory | undefined = undefined;
1097
+
1098
+ if (silentTraj.num === 0) {
1099
+ if (silentTraj.phraseIdx === 0) {
1100
+ throw new Error('Silent trajectory is at the beginning of the piece');
1101
+ }
1102
+ const prevPhrase = props.piece.phraseGrid[track][silentTraj.phraseIdx! - 1];
1103
+ prevTraj = prevPhrase.trajectories[prevPhrase.trajectories.length - 1];
1104
+ nextTraj = phrase.trajectories[1];
1105
+ } else if (silentTraj.num === phrase.trajectories.length - 1) {
1106
+ if (silentTraj.phraseIdx === props.piece.phraseGrid[track].length - 1) {
1107
+ throw new Error('Silent trajectory is at the end of the piece');
1108
+ }
1109
+ prevTraj = phrase.trajectories[silentTraj.num! - 1];
1110
+ const nextPhrase = props.piece.phraseGrid[track][silentTraj.phraseIdx! + 1];
1111
+ nextTraj = nextPhrase.trajectories[0];
1112
+ } else {
1113
+ prevTraj = phrase.trajectories[silentTraj.num! - 1];
1114
+ nextTraj = phrase.trajectories[silentTraj.num! + 1];
1094
1115
}
1095
- const prevTraj = phrase.trajectories[silentTraj.num! - 1];
1096
- const nextTraj = phrase.trajectories[silentTraj.num! + 1];
1097
1116
if (prevTraj.id === 12 || nextTraj.id === 12) {
1098
1117
throw new Error('Adjacent trajectory is silent');
1099
1118
}
@@ -1112,6 +1131,7 @@ export default defineComponent({
1112
1131
phrase.reset();
1113
1132
resetTrajRenderStatus()
1114
1133
renderTraj(newTraj);
1134
+ emit('unsavedChanges', true);
1115
1135
}
1116
1136
1117
1137
const startPlayingTransition = () => {
@@ -2446,10 +2466,10 @@ export default defineComponent({
2446
2466
contextMenuChoices.value.push({
2447
2467
text: 'Connect to next Traj',
2448
2468
action: () => {
2469
+ contextMenuClosed.value = true;
2449
2470
const phrase = props.piece.phraseGrid[track][pIdx];
2450
2471
const silTraj = phrase.trajectories[tIdx + 1];
2451
2472
replaceSilenceWithConnection(silTraj, track);
2452
- contextMenuClosed.value = true;
2453
2473
},
2454
2474
enabled: props.editable
2455
2475
})
@@ -2458,10 +2478,10 @@ export default defineComponent({
2458
2478
contextMenuChoices.value.push({
2459
2479
text: 'Connect to last Traj',
2460
2480
action: () => {
2481
+ contextMenuClosed.value = true;
2461
2482
const phrase = props.piece.phraseGrid[track][pIdx];
2462
2483
const silTraj = phrase.trajectories[tIdx - 1];
2463
2484
replaceSilenceWithConnection(silTraj, track);
2464
- contextMenuClosed.value = true;
2465
2485
},
2466
2486
enabled: props.editable
2467
2487
})
@@ -2804,7 +2824,6 @@ export default defineComponent({
2804
2824
if (nextTraj.id !== 12) {
2805
2825
return false;
2806
2826
}
2807
- console.log(traj.num, phrase.trajectories.length)
2808
2827
const followingTraj = phrase.trajectories[traj.num! + 2];
2809
2828
if (followingTraj && followingTraj.id === 12) {
2810
2829
return false;
0 commit comments