Update of /cvsroot/audacity/audacity-src/src
In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv13716/src
Modified Files:
TrackPanel.cpp
Log Message:
- Improved Mute/Solo behaviour
- Prevent TruncSilence with 0 or below for duration.
Index: TrackPanel.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackPanel.cpp,v
retrieving revision 1.373
retrieving revision 1.374
diff -u -d -r1.373 -r1.374
--- TrackPanel.cpp 14 Sep 2007 21:48:50 -0000 1.373
+++ TrackPanel.cpp 23 Sep 2007 19:49:06 -0000 1.374
@@ -5401,22 +5401,43 @@
if (shiftDown)
{
- // Shift-click mutes/solos this track and unmutes/unsolos other
tracks.
+ // Cosmetic...
+ // Shift-click mutes this track and unmutes other tracks.
TrackListIterator iter(mTracks);
Track *i = iter.First();
while (i) {
if (i == t) {
i->SetMute(true);
+ i->SetSolo(false);
}
else {
i->SetMute(false);
+ i->SetSolo(false);
}
i = iter.Next();
}
}
else {
- // Normal click just toggles this track.
+ // Normal click toggles this track.
t->SetMute(!t->GetMute());
+
+ TrackListIterator iter(mTracks);
+ Track *i = iter.First();
+ int nPlaying=0;
+
+ // We also set a solo indicator if we have just one track playing.
+ // otherwise clear solo on everything.
+ while (i) {
+ if( !i->GetMute())
+ nPlaying += 1;
+ i = iter.Next();
+ }
+
+ i = iter.First();
+ while (i) {
+ i->SetSolo( (nPlaying==1) && !i->GetMute() );
+ i = iter.Next();
+ }
}
Refresh(false);
@@ -5432,25 +5453,23 @@
if (shiftDown)
{
- // Shift-click mutes/solos this track and unmutes/unsolos other
tracks.
- TrackListIterator iter(mTracks);
- Track *i = iter.First();
- while (i) {
- if (i == t) {
- i->SetSolo(true);
-
- }
- else {
- i->SetSolo(false);
-
- }
- i = iter.Next();
- }
+ // A cosmetic feature - we can solo more than one by shift clicking.
+ // on additional tracks.
+ t->SetSolo( true );
+ t->SetMute( false );
}
else {
- // Normal click just toggles this track.
-
- t->SetSolo(!t->GetSolo());
+ // Normal click solo this track only, mute everything else.
+ // OR unmute and unsolo everything.
+ TrackListIterator iter(mTracks);
+ Track *i = iter.First();
+ bool bWasSolo = t->GetSolo();
+ while (i) {
+ i->SetSolo( (i==t) && !bWasSolo);
+ i->SetMute( (i!=t) && !bWasSolo);
+ i = iter.Next();
+ }
+ //t->SetSolo(!t->GetSolo());
}
Refresh(false);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs