along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id$
*/
#include <gtkmm/button.h>
-#include <ardour/session_playlist.h>
-#include <ardour/audio_diskstream.h>
-#include <ardour/playlist.h>
-#include <ardour/audio_track.h>
-#include <ardour/audioplaylist.h>
-#include <ardour/configuration.h>
+#include "ardour/session_playlist.h"
+#include "ardour/audio_diskstream.h"
+#include "ardour/playlist.h"
+#include "ardour/audio_track.h"
+#include "ardour/audioplaylist.h"
+#include "ardour/configuration.h"
#include <gtkmm2ext/gtk_ui.h>
+#include <gtkmm2ext/window_title.h>
#include "playlist_selector.h"
#include "route_ui.h"
using namespace std;
using namespace sigc;
using namespace Gtk;
+using namespace Gtkmm2ext;
using namespace ARDOUR;
using namespace PBD;
set_position (WIN_POS_MOUSE);
set_name ("PlaylistSelectorWindow");
- set_title (_("ardour: playlists"));
set_modal(true);
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
set_size_request (300, 200);
+ WindowTitle title(Glib::get_application_name());
+ title += _("Playlists");
+ set_title(title.get_string());
+
model = TreeStore::create (columns);
tree.set_model (model);
tree.append_column (_("Playlists grouped by track"), columns.text);
scroller.add (tree);
scroller.set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC);
- // GTK2FIX do we need this stuff or is GTK applying some policy now?
- //set_border_width (6);
- // set_spacing (12);
+ get_vbox()->set_border_width (6);
+ get_vbox()->set_spacing (12);
get_vbox()->pack_start (scroller);
bool
PlaylistSelector::on_unmap_event (GdkEventAny* ev)
{
- cerr << "PLselector unmapped\n";
clear_map ();
if (model) {
model->clear ();
rui = ruix;
- str = _("ardour: playlist for ");
- str += rui->route()->name();
-
- set_title (str);
+ WindowTitle title(Glib::get_application_name());
+ title += string_compose (_("Playlist for %1"), rui->route()->name());
+ set_title (title.get_string());
clear_map ();
select_connection.disconnect ();
}
}
+ // Add unassigned (imported) playlists to the list
+ list<boost::shared_ptr<Playlist> > unassigned;
+ session->unassigned_playlists (unassigned);
+
+ TreeModel::Row row;
+ TreeModel::Row* selected_row = 0;
+ TreePath this_path;
+
+ row = *(model->append (others.children()));
+ row[columns.text] = _("Imported");
+ proxy = row[columns.playlist];
+ proxy.reset ();
+
+ for (list<boost::shared_ptr<Playlist> >::iterator p = unassigned.begin(); p != unassigned.end(); ++p) {
+ TreeModel::Row child_row;
+
+ child_row = *(model->append (row.children()));
+ child_row[columns.text] = (*p)->name();
+ child_row[columns.playlist] = *p;
+
+ if (*p == this_ds->playlist()) {
+ selected_row = &child_row;
+ }
+
+ if (selected_row != 0) {
+ tree.get_selection()->select (*selected_row);
+ }
+ }
+
show_all ();
select_connection = tree.get_selection()->signal_changed().connect (mem_fun(*this, &PlaylistSelector::selection_changed));
}
if ((playlist = ((*iter)[columns.playlist])) != 0) {
- AudioTrack* at;
+ boost::shared_ptr<AudioTrack> at;
boost::shared_ptr<AudioPlaylist> apl;
if ((at = rui->audio_track()) == 0) {