Update of /cvsroot/audacity/audacity-src/src
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv29314/src
Modified Files:
Track.cpp TrackPanel.cpp
Log Message:
Fix case where the starting track is not part of a group
Index: Track.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Track.cpp,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- Track.cpp 4 Apr 2009 05:45:05 -0000 1.59
+++ Track.cpp 7 Apr 2009 07:01:35 -0000 1.60
@@ -413,20 +413,24 @@
{
Track *t = NULL;
- while (member->GetKind() == Track::Wave) {
+ // Scan forward for a label track
+ while (member && member->GetKind() == Track::Wave) {
member = l->GetNext(member);
}
- if (member->GetKind() != Track::Label) {
+ // It's not part of a group if one wasn't found
+ if (!member || member->GetKind() != Track::Label) {
return NULL;
}
+ // Find first wave track in the group
member = l->GetPrev(member);
while (member && member->GetKind() == Track::Wave) {
t = member;
member = l->GetPrev(member);
}
+ // Make it current
cur = (TrackListNode *) t->GetNode();
return t;
@@ -436,10 +440,12 @@
{
Track *t = TrackListIterator::Next(skiplinked);
+ // End of the group has been reached
if (!t || mEndOfGroup) {
return NULL;
}
+ // Found the end of the group, so signal for next iteration
if (t->GetKind() == Track::Label) {
mEndOfGroup = true;
}
Index: TrackPanel.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackPanel.cpp,v
retrieving revision 1.443
retrieving revision 1.444
diff -u -d -r1.443 -r1.444
--- TrackPanel.cpp 6 Apr 2009 21:58:12 -0000 1.443
+++ TrackPanel.cpp 7 Apr 2009 07:01:35 -0000 1.444
@@ -2217,11 +2217,10 @@
mCapturedClipIsSelection = true;
+ TrackGroupIterator iter(mTracks);
Track *t;
- if (GetProject()->IsSticky()) {
- TrackGroupIterator iter(mTracks);
-
- for (t = iter.First(wt); t; t = iter.Next()) {
+ if (GetProject()->IsSticky() && (t = iter.First(wt))) {
+ while (t) {
if (t->GetKind() == Track::Wave) {
WaveTrack *wt = (WaveTrack *)t;
WaveClipList::Node* it;
@@ -2239,6 +2238,7 @@
else {
mCapturedClipArray.Add(TrackClip(t, NULL));
}
+ t = iter.Next();
}
}
else {
@@ -2269,11 +2269,10 @@
}
}
else {
+ TrackGroupIterator iter(mTracks);
Track *t;
- if (GetProject()->IsSticky()) {
- TrackGroupIterator iter(mTracks);
-
- for (t = iter.First(wt); t; t = iter.Next()) {
+ if (GetProject()->IsSticky() && (t = iter.First(wt))) {
+ while (t) {
if (t->GetKind() == Track::Wave) {
WaveTrack *wt = (WaveTrack *)t;
WaveClipList::Node* it;
@@ -2285,6 +2284,7 @@
else {
mCapturedClipArray.Add(TrackClip(t, NULL));
}
+ t = iter.Next();
}
}
else {
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs