Skip to content

Commit e813895

Browse files
committed
fixes #555
1 parent 3f84755 commit e813895

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

src/comps/editor/renderer/TranscriptionLayer.vue

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1089,11 +1089,30 @@ export default defineComponent({
10891089
throw new Error('Trajectory is not silent');
10901090
}
10911091
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];
10941115
}
1095-
const prevTraj = phrase.trajectories[silentTraj.num! - 1];
1096-
const nextTraj = phrase.trajectories[silentTraj.num! + 1];
10971116
if (prevTraj.id === 12 || nextTraj.id === 12) {
10981117
throw new Error('Adjacent trajectory is silent');
10991118
}
@@ -1112,6 +1131,7 @@ export default defineComponent({
11121131
phrase.reset();
11131132
resetTrajRenderStatus()
11141133
renderTraj(newTraj);
1134+
emit('unsavedChanges', true);
11151135
}
11161136

11171137
const startPlayingTransition = () => {
@@ -2446,10 +2466,10 @@ export default defineComponent({
24462466
contextMenuChoices.value.push({
24472467
text: 'Connect to next Traj',
24482468
action: () => {
2469+
contextMenuClosed.value = true;
24492470
const phrase = props.piece.phraseGrid[track][pIdx];
24502471
const silTraj = phrase.trajectories[tIdx + 1];
24512472
replaceSilenceWithConnection(silTraj, track);
2452-
contextMenuClosed.value = true;
24532473
},
24542474
enabled: props.editable
24552475
})
@@ -2458,10 +2478,10 @@ export default defineComponent({
24582478
contextMenuChoices.value.push({
24592479
text: 'Connect to last Traj',
24602480
action: () => {
2481+
contextMenuClosed.value = true;
24612482
const phrase = props.piece.phraseGrid[track][pIdx];
24622483
const silTraj = phrase.trajectories[tIdx - 1];
24632484
replaceSilenceWithConnection(silTraj, track);
2464-
contextMenuClosed.value = true;
24652485
},
24662486
enabled: props.editable
24672487
})
@@ -2804,7 +2824,6 @@ export default defineComponent({
28042824
if (nextTraj.id !== 12) {
28052825
return false;
28062826
}
2807-
console.log(traj.num, phrase.trajectories.length)
28082827
const followingTraj = phrase.trajectories[traj.num! + 2];
28092828
if (followingTraj && followingTraj.id === 12) {
28102829
return false;

0 commit comments

Comments
 (0)