소스 검색

moved adding the voiceEntry to the parent staffEntry into the voiceEntry constructor

Matthias Uiberacker 4 년 전
부모
커밋
6b10b01c0a
3개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. 0 3
      src/MusicalScore/ScoreIO/VoiceGenerator.ts
  2. 0 1
      src/MusicalScore/VoiceData/SourceMeasure.ts
  3. 8 0
      src/MusicalScore/VoiceData/VoiceEntry.ts

+ 0 - 3
src/MusicalScore/ScoreIO/VoiceGenerator.ts

@@ -87,9 +87,6 @@ export class VoiceGenerator {
     if (addToVoice) {
     if (addToVoice) {
       this.voice.VoiceEntries.push(this.currentVoiceEntry);
       this.voice.VoiceEntries.push(this.currentVoiceEntry);
     }
     }
-    if (parentStaffEntry.VoiceEntries.indexOf(this.currentVoiceEntry) === -1) {
-      parentStaffEntry.VoiceEntries.push(this.currentVoiceEntry);
-    }
   }
   }
 
 
   /**
   /**

+ 0 - 1
src/MusicalScore/VoiceData/SourceMeasure.ts

@@ -302,7 +302,6 @@ export class SourceMeasure {
         }
         }
         if (!ve) {
         if (!ve) {
             ve = new VoiceEntry(sse.Timestamp, voice, sse);
             ve = new VoiceEntry(sse.Timestamp, voice, sse);
-            sse.VoiceEntries.push(ve);
             createdNewVoiceEntry = true;
             createdNewVoiceEntry = true;
         }
         }
         return {createdVoiceEntry: createdNewVoiceEntry, voiceEntry: ve};
         return {createdVoiceEntry: createdNewVoiceEntry, voiceEntry: ve};

+ 8 - 0
src/MusicalScore/VoiceData/VoiceEntry.ts

@@ -35,6 +35,14 @@ export class VoiceEntry {
         this.graceAfterMainNote = false;
         this.graceAfterMainNote = false;
         this.graceNoteSlash = graceNoteSlash;
         this.graceNoteSlash = graceNoteSlash;
         this.graceSlur = graceSlur;
         this.graceSlur = graceSlur;
+
+        // add currentVoiceEntry to staff entry:
+        if (parentSourceStaffEntry !== undefined) {
+            const list: VoiceEntry[] = parentSourceStaffEntry.VoiceEntries;
+            if (list.indexOf(this) === -1) {
+                list.push(this);
+            }
+        }
     }
     }
 
 
     private parentVoice: Voice;
     private parentVoice: Voice;