Editor::external_audio_dialog ()
{
vector<Glib::ustring> paths;
+ uint32_t track_cnt;
if (session == 0) {
MessageDialog msg (0, _("You can't import or embed an audiofile until you have a session loaded."));
return;
}
+ track_cnt = 0;
+
+ for (TrackSelection::iterator x = selection->tracks.begin(); x != selection->tracks.end(); ++x) {
+ AudioTimeAxisView* atv = dynamic_cast<AudioTimeAxisView*>(*x);
+
+ if (!atv) {
+ continue;
+ } else if (atv->is_audio_track()) {
+ track_cnt++;
+ }
+ }
+
if (sfbrowser == 0) {
- sfbrowser = new SoundFileOmega (*this, _("Add existing audio"), session, selection->tracks.size());
+ sfbrowser = new SoundFileOmega (*this, _("Add existing audio"), session, track_cnt);
} else {
- sfbrowser->reset (selection->tracks.size());
+ sfbrowser->reset (track_cnt);
}
sfbrowser->show_all ();
case RESPONSE_OK:
sfbrowser->hide ();
break;
+
default:
// cancel from the browser - we are done
sfbrowser->hide ();
TrackSelection::iterator x;
for (x = selection->tracks.begin(); nth > 0 && x != selection->tracks.end(); ++x) {
- if (dynamic_cast<AudioTimeAxisView*>(*x)) {
+
+ atv = dynamic_cast<AudioTimeAxisView*>(*x);
+
+ if (!atv) {
+ continue;
+ } else if (atv->is_audio_track()) {
--nth;
}
}
atv = dynamic_cast<AudioTimeAxisView*>(*x);
}
- if (!atv) {
+ if (!atv || !atv->is_audio_track()) {
return boost::shared_ptr<AudioTrack>();
}
{
if (!existing_track) {
- if (selection->tracks.empty()) {
- return -1;
- }
-
- AudioTimeAxisView* atv = dynamic_cast<AudioTimeAxisView*>(selection->tracks.front());
-
- if (!atv) {
+ existing_track = get_nth_selected_audio_track (0);
+
+ if (!existing_track) {
return -1;
}
-
- existing_track = atv->audio_track();
}
boost::shared_ptr<Playlist> playlist = existing_track->diskstream()->playlist();