diff options
author | Tim E. Real <termtech@rogers.com> | 2011-09-13 23:59:23 +0000 |
---|---|---|
committer | Tim E. Real <termtech@rogers.com> | 2011-09-13 23:59:23 +0000 |
commit | a8c8fa89d916bded2905e0a5a8c05ac30e159902 (patch) | |
tree | a921aa8311d8542a77f6cbfc952561691cb7bd8d /muse2/muse/synth.cpp | |
parent | 56d4a94c40bbcae6a2862fba3e2923542511779f (diff) |
Added: You can now insert new tracks instead of always at the track list end.
If main menu 'Add track': Inserts before currently selected track, else adds at end.
If Track List right-click existing Track Name: New 'Insert track' menu inserts before clicked track.
If Track List right-click on empty space, or Mixer 'Create': Adds at end, as usual.
Fixed track selection bug: Track info panel not clearing when clicking empty area.
Diffstat (limited to 'muse2/muse/synth.cpp')
-rw-r--r-- | muse2/muse/synth.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/muse2/muse/synth.cpp b/muse2/muse/synth.cpp index ae54cd15..62da5e1d 100644 --- a/muse2/muse/synth.cpp +++ b/muse2/muse/synth.cpp @@ -35,13 +35,13 @@ //#include <QMenu> #include "app.h" +#include "arranger.h" #include "synth.h" #include "xml.h" #include "midi.h" #include "midiport.h" #include "mididev.h" -//#include "libsynti/mess.h" -#include "synti/libsynti/mess.h" // p4.0.2 +#include "synti/libsynti/mess.h" #include "song.h" #include "audio.h" #include "event.h" @@ -162,7 +162,6 @@ static Synth* findSynth(const QString& sclass, const QString& label) // create a synthesizer instance of class "label" //--------------------------------------------------------- -//static SynthI* createSynthI(const QString& sclass) static SynthI* createSynthInstance(const QString& sclass, const QString& label) { //Synth* s = findSynth(sclass); @@ -648,10 +647,10 @@ void initMidiSynth() //--------------------------------------------------------- // createSynthI // create a synthesizer instance of class "label" +// If insertAt is valid, inserts before insertAt. Else at the end after all tracks. //--------------------------------------------------------- -//SynthI* Song::createSynthI(const QString& sclass) -SynthI* Song::createSynthI(const QString& sclass, const QString& label) +SynthI* Song::createSynthI(const QString& sclass, const QString& label, Track* insertAt) { //printf("Song::createSynthI calling ::createSynthI class:%s\n", sclass.toLatin1().constData()); @@ -662,13 +661,15 @@ SynthI* Song::createSynthI(const QString& sclass, const QString& label) return 0; //printf("Song::createSynthI created SynthI. Before insertTrack1...\n"); - insertTrack1(si, -1); + int idx = insertAt ? _tracks.index(insertAt) : -1; + + insertTrack1(si, idx); //printf("Song::createSynthI after insertTrack1. Before msgInsertTrack...\n"); - msgInsertTrack(si, -1, true); // add to instance list + msgInsertTrack(si, idx, true); // add to instance list //printf("Song::createSynthI after msgInsertTrack. Before insertTrack3...\n"); - insertTrack3(si, -1); + insertTrack3(si, idx); //printf("Song::createSynthI after insertTrack3. Adding default routes...\n"); |