commit ff36716a74a099b4f6d6365acf1b1003a2608c8d Author: phantomjinx <p.g.richard...@phantomjinx.co.uk> Date: Wed Sep 15 21:15:47 2010 +0100
Playlist display context toolbar added * glade removed and no need to gtkbuilder xml either * playlist_display_toolbar.xml * Lists actions for context toolbar * Icon added to view window .gitignore | 2 +- plugins/playlist_display/Makefile.am | 70 +++++++++++++- plugins/playlist_display/display_playlists.c | 51 +++++++++- plugins/playlist_display/display_playlists.h | 4 +- plugins/playlist_display/playlist_display.glade | 5 - plugins/playlist_display/playlist_display.ui | 33 +------ .../playlist_display/playlist_display_toolbar.xml | 31 ++++++ plugins/playlist_display/plugin.c | 100 ++++++++++---------- plugins/playlist_display/plugin.h | 11 ++- 9 files changed, 207 insertions(+), 100 deletions(-) --- diff --git a/.gitignore b/.gitignore index 085179e..ececc45 100644 --- a/.gitignore +++ b/.gitignore @@ -80,7 +80,7 @@ cscope.out /data/glade/track_display.glade /data/glade/repository_editor.glade /data/glade/cover_display.glade -/data/glade/playlist_display.glade +/data/glade/playlist_display_toolbar.xml /data/glade/core_prefs.xml /data/glade/photo_editor.glade /data/glade/media_player.glade diff --git a/plugins/playlist_display/Makefile.am b/plugins/playlist_display/Makefile.am index c9b0db9..2195c33 100644 --- a/plugins/playlist_display/Makefile.am +++ b/plugins/playlist_display/Makefile.am @@ -6,9 +6,13 @@ plugin_file = $(plugin_name).plugin playlist_display_uidir = $(gtkpod_ui_dir) playlist_display_ui_DATA = $(plugin_name).ui -# Plugin Glade file +# Plugin Glade file - No glade/xml file playlist_display_gladedir = $(gtkpod_glade_dir) -playlist_display_glade_DATA = $(plugin_name).glade +playlist_display_glade_DATA = + +# Plugin Toolbar file +playlist_display_toolbardir = $(gtkpod_glade_dir) +playlist_display_toolbar_DATA = $(plugin_name)_toolbar.xml # Plugin Icon file playlist_display_pixmapsdir = $(gtkpod_image_dir) @@ -19,7 +23,23 @@ playlist_display_plugin_DATA = $(plugin_file) SUBDIRS = icons -include ../plugins.mk +# Plugin description file +plugin_in_files = $(plugin_file) + +# Include paths +AM_CPPFLAGS = \ + -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -DGTKPOD_DATA_DIR=\"$(gtkpod_data_dir)\" \ + -DGTKPOD_PLUGIN_DIR=\"$(gtkpod_plugin_dir)\" \ + -DGTKPOD_IMAGE_DIR=\"$(gtkpod_image_dir)\" \ + -DGTKPOD_GLADE_DIR=\"$(gtkpod_glade_dir)\" \ + -DGTKPOD_UI_DIR=\"$(gtkpod_ui_dir)\" \ + -DPACKAGE_DATA_DIR=\"$(datadir)\" \ + -DPACKAGE_SRC_DIR=\"$(srcdir)\" \ + $(GTKPOD_CFLAGS) + +# Where to install the plugin +plugindir = $(gtkpod_plugin_dir) # The plugin plugin_LTLIBRARIES = libplaylist_display.la @@ -42,4 +62,48 @@ EXTRA_DIST = \ $(playlist_display_plugin_DATA) \ $(playlist_display_ui_DATA) \ $(playlist_display_glade_DATA) \ + $(playlist_display_toolbar_DATA) \ $(playlist_display_pixmaps_DATA) + +all-local: create-plugin-links create-ui-link create-toolbar-link + +# Creating symbolic links in plugin root directory +create-plugin-links: + echo "Creating plugin links" + if [ ! -e ../$(plugin_lib) ]; then \ + ln -s `pwd`/.libs/$(plugin_lib) ../$(plugin_lib); \ + fi; \ + if [ ! -e ../$(plugin_file) ]; then \ + ln -s `pwd`/$(plugin_file) ../$(plugin_file); \ + fi; + +# Creating symbolic link to ui file in installed ui directory +create-ui-link: + if [ ! -e ../../data/ui/$(plugin_name).ui ]; then \ + ln -s `pwd`/$(plugin_name).ui ../../data/ui/$(plugin_name).ui; \ + fi; + +create-toolbar-link: + if [ -e `pwd`/$(plugin_name)_toolbar.xml ]; then \ + if [ ! -e ../../data/glade/$(plugin_name)_toolbar.xml ]; then \ + ln -s `pwd`/$(plugin_name)_toolbar.xml ../../data/glade/$(plugin_name)_toolbar.xml; \ + fi; \ + fi; + +# Clean up the links and files created purely for dev [ing +clean-local: clean-plugin-files clean-ui-dir clean-glade-dir + +clean-plugin-files: + if [ -h ../$(plugin_file) ]; then \ + rm -f ../$(plugin_lib) ../$(plugin_file); \ + fi; + +clean-ui-dir: + if [ -h ../../data/ui/$(plugin_name).ui ]; then \ + rm -f ../../data/ui/$(plugin_name).ui; \ + fi; + +clean-glade-dir: + if [ -h ../../data/glade/$(plugin_name)_toolbar.xml ]; then \ + rm -f ../../data/glade/$(plugin_name)_toolbar.xml; \ + fi; diff --git a/plugins/playlist_display/display_playlists.c b/plugins/playlist_display/display_playlists.c index 81ddb94..e792fdd 100644 --- a/plugins/playlist_display/display_playlists.c +++ b/plugins/playlist_display/display_playlists.c @@ -41,6 +41,7 @@ #include "playlist_display_actions.h" #include "playlist_display_context_menu.h" #include "libgtkpod/gp_private.h" +#include "libgtkpod/directories.h" #include "libgtkpod/file.h" #include "libgtkpod/misc.h" #include "libgtkpod/misc_track.h" @@ -54,6 +55,10 @@ #define gdk_drag_context_get_suggested_action(x) ((x)->suggested_action) #endif +/* Container containing both toolbar and view */ +static GtkWidget *playlist_viewport = NULL; +/* pointer to the playlist display's toolbar */ +static GtkToolbar *playlist_toolbar = NULL; /* pointer to the treeview for the playlist display */ static GtkTreeView *playlist_treeview = NULL; /* flag set if selection changes to be ignored temporarily */ @@ -74,6 +79,7 @@ static GtkTargetEntry pm_drop_types[] = { "text/plain", 0, DND_TEXT_PLAIN }, { "STRING", 0, DND_TEXT_PLAIN } }; +static void pm_create_treeview(void); static void pm_rows_reordered(void); static GtkTreePath *pm_get_path_for_itdb(Itdb_iTunesDB *itdb); static GtkTreePath *pm_get_path_for_playlist(Playlist *pl); @@ -1876,15 +1882,17 @@ static void pm_add_columns(void) { } /* Free the playlist listview */ -void pm_destroy_treeview(void) { - if (GTK_IS_WIDGET(playlist_treeview)) { - gtk_widget_destroy(GTK_WIDGET(playlist_treeview)); +void pm_destroy_playlist_view(void) { + if (GTK_IS_WIDGET(playlist_viewport)) { + gtk_widget_destroy(GTK_WIDGET(playlist_viewport)); } + playlist_viewport = NULL; + playlist_toolbar = NULL; playlist_treeview = NULL; } /* Create playlist listview */ -GtkTreeView* pm_create_treeview(void) { +static void pm_create_treeview(void) { GtkTreeStore *model; GtkTreeSelection *selection; GtkWidget *tree; @@ -1892,7 +1900,7 @@ GtkTreeView* pm_create_treeview(void) { /* destroy old treeview */ if (playlist_treeview) { model = GTK_TREE_STORE (gtk_tree_view_get_model(playlist_treeview)); - g_return_val_if_fail (model, NULL); + g_return_if_fail (model); g_object_unref(model); gtk_widget_destroy(GTK_WIDGET (playlist_treeview)); playlist_treeview = NULL; @@ -1969,8 +1977,39 @@ GtkTreeView* pm_create_treeview(void) { NULL); g_signal_connect (G_OBJECT (playlist_treeview), "button-press-event", G_CALLBACK (pm_button_press), model); +} + +static void pm_create_toolbar(GtkActionGroup *action_group) { + GtkUIManager *mgr; + + mgr = gtk_ui_manager_new(); + + gtk_ui_manager_insert_action_group(mgr, action_group, 0); + + gchar *toolbar_path = g_build_filename(get_glade_dir(), "playlist_display_toolbar.xml", NULL); + gtk_ui_manager_add_ui_from_file(mgr, toolbar_path, NULL); + + playlist_toolbar = GTK_TOOLBAR(gtk_ui_manager_get_widget(mgr, "/PlaylistToolbar")); + gtk_toolbar_set_style(playlist_toolbar, GTK_TOOLBAR_ICONS); + gtk_toolbar_set_icon_size(playlist_toolbar, GTK_ICON_SIZE_SMALL_TOOLBAR); + +} + +GtkWidget *pm_create_playlist_view(GtkActionGroup *action_group) { + GtkBox *vbox; + + vbox = GTK_BOX(gtk_vbox_new (FALSE, 0)); + + pm_create_toolbar(action_group); + gtk_box_pack_start(vbox, GTK_WIDGET(playlist_toolbar), FALSE, TRUE, 0); + + pm_create_treeview(); + gtk_box_pack_start(vbox, GTK_WIDGET(playlist_treeview), TRUE, TRUE, 0); + + playlist_viewport = gtk_viewport_new (0, 0); + gtk_container_add (GTK_CONTAINER(playlist_viewport), GTK_WIDGET(vbox)); - return playlist_treeview; + return playlist_viewport; } Playlist* pm_get_selected_playlist(void) { diff --git a/plugins/playlist_display/display_playlists.h b/plugins/playlist_display/display_playlists.h index 07a0c88..2bfe5a9 100644 --- a/plugins/playlist_display/display_playlists.h +++ b/plugins/playlist_display/display_playlists.h @@ -46,8 +46,8 @@ typedef enum { PM_NUM_COLUMNS } PM_column_type; -GtkTreeView* pm_create_treeview (void); -void pm_destroy_treeview(void); +GtkWidget *pm_create_playlist_view(GtkActionGroup *action_group); +void pm_destroy_playlist_view(void); void pm_select_playlist(Playlist *playlist); void pm_set_selected_playlist(Playlist *pl); void pm_remove_all_playlists (gboolean clear_sort); diff --git a/plugins/playlist_display/playlist_display.ui b/plugins/playlist_display/playlist_display.ui index 90ad4a1..f987cc3 100644 --- a/plugins/playlist_display/playlist_display.ui +++ b/plugins/playlist_display/playlist_display.ui @@ -27,7 +27,7 @@ <menuitem name="Selected Playlist including Tracks from Device" action="ActionDeleteSelectedPlaylistIncDev" /> </menu> <separator/> - <menu name="Playlist Menu" action="NewPlaylistMenu"> + <menu name="Playlist Menu" action="ActionNewPlaylistMenu"> <menuitem name="Empty Playlist" action="ActionNewEmptyPlaylist"/> <!-- on_new_playlist1_activate" --> <!-- playlist --> <menuitem name="Smart Playlist" action="ActionNewSmartPlaylist"/> <!-- on_smart_playlist_activate" --> <menuitem name="Random Playlist from Displayed Tracks" action="ActionNewRandomPlaylist"/> <!-- on_random_playlist_activate --> @@ -52,35 +52,4 @@ </placeholder> </menu> </menubar> - <toolbar name="ToolbarMain"> - <placeholder name="PlaceholderMusicToolbar"> - <toolitem name="Load iPod(s)" action="ActionLoadiPod" /> - <toolitem name="Save Changes" action="ActionSaveChanges" /> - <toolitem name="Add Files" action="ActionAddFiles" /> - <toolitem name="Add Directory" action="ActionAddDirectory" /> - <toolitem name="Add Playlist" action="ActionAddPlaylist" /> - <toolitem name="New Playlist" action="ActionNewPlaylist"> - <menu name="Playlist Menu" action="NewPlaylistMenu"> - <menuitem name="Empty Playlist" action="ActionNewEmptyPlaylist"/> <!-- on_new_playlist1_activate" --> <!-- playlist --> - <menuitem name="Smart Playlist" action="ActionNewSmartPlaylist"/> <!-- on_smart_playlist_activate" --> - <menuitem name="Random Playlist from Displayed Tracks" action="ActionNewRandomPlaylist"/> <!-- on_random_playlist_activate --> - <menuitem name="Containing Displayed Tracks" action="ActionNewContainingDisplayedPlaylist"/> <!-- on_pl_containing_displayed_tracks_activate --> - <menuitem name="Containing Selected Tracks" action="ActionNewContainingSelectedPlaylist"/> <!-- on_pl_containing_selected_tracks_activate --> - <menuitem name="Best Rated Tracks" action="ActionNewBestRatedPlaylist"/> <!-- on_most_rated_tracks_playlist_s1_activate --> - <menuitem name="Tracks Most Often Listened To" action="ActionNewTracksMostOftenPlaylist"/> <!-- on_most_listened_tracks1_activate --> - <menuitem name="Most Recently Played Tracks" action="ActionNewMostRecentPlayledPlaylist"/> <!-- on_most_recent_played_tracks_activate --> - <menuitem name="All Tracks Played Since Last Time" action="ActionNewAllPlayedSinceLastTimePlaylist"/> <!-- on_played_since_last_time1_activate --> - <menuitem name="All Tracks Never Listened To" action="ActionNewAllNeverListenedPlaylist"/> <!-- on_all_tracks_never_listened_to1_activate --> - <menuitem name="All Tracks not Listed in any Playlist" action="ActionAllNeverListedPlaylist"/> <!-- on_all_tracks_not_listed_in_any_playlist1_activate --> - <separator/> - <menuitem name="One for each Artist" action="ActionNewOnePerArtistPlaylist"/> <!-- on_pl_for_each_artist_activate --> - <menuitem name="One for each Album" action="ActionNewOnePerAlbumPlaylist"/> <!-- on_pl_for_each_album_activate --> - <menuitem name="One for each Genre" action="ActionNewOnePerGenrePlaylist"/> <!-- on_pl_for_each_genre_activate --> - <menuitem name="One for each Composer" action="ActionNewOnePreComposerPlaylist"/> <!-- on_pl_for_each_composer_activate --> - <menuitem name="One for each Year" action="ActionNewOnePerYearPlaylist"/> <!-- on_pl_for_each_year_activate --> - <menuitem name="One for each Rating" action="ActionNewOnePerRatingPlaylist"/> <!-- on_pl_for_each_rating_activate --> - </menu> - </toolitem> - </placeholder> - </toolbar> </ui> diff --git a/plugins/playlist_display/playlist_display_toolbar.xml b/plugins/playlist_display/playlist_display_toolbar.xml new file mode 100644 index 0000000..35f6216 --- /dev/null +++ b/plugins/playlist_display/playlist_display_toolbar.xml @@ -0,0 +1,31 @@ +<ui> + <toolbar name="PlaylistToolbar"> + <toolitem name="Load iPod(s)" action="ActionLoadiPod" /> + <toolitem name="Save Changes" action="ActionSaveChanges" /> + <toolitem name="Add Files" action="ActionAddFiles" /> + <toolitem name="Add Directory" action="ActionAddDirectory" /> + <toolitem name="Add Playlist" action="ActionAddPlaylist" /> + <toolitem name="New Playlist" action="ActionNewPlaylist"> + <menu name="Playlist Menu" action="ActionNewPlaylistMenu"> + <menuitem name="Empty Playlist" action="ActionNewEmptyPlaylist"/> <!-- on_new_playlist1_activate" --> <!-- playlist --> + <menuitem name="Smart Playlist" action="ActionNewSmartPlaylist"/> <!-- on_smart_playlist_activate" --> + <menuitem name="Random Playlist from Displayed Tracks" action="ActionNewRandomPlaylist"/> <!-- on_random_playlist_activate --> + <menuitem name="Containing Displayed Tracks" action="ActionNewContainingDisplayedPlaylist"/> <!-- on_pl_containing_displayed_tracks_activate --> + <menuitem name="Containing Selected Tracks" action="ActionNewContainingSelectedPlaylist"/> <!-- on_pl_containing_selected_tracks_activate --> + <menuitem name="Best Rated Tracks" action="ActionNewBestRatedPlaylist"/> <!-- on_most_rated_tracks_playlist_s1_activate --> + <menuitem name="Tracks Most Often Listened To" action="ActionNewTracksMostOftenPlaylist"/> <!-- on_most_listened_tracks1_activate --> + <menuitem name="Most Recently Played Tracks" action="ActionNewMostRecentPlayledPlaylist"/> <!-- on_most_recent_played_tracks_activate --> + <menuitem name="All Tracks Played Since Last Time" action="ActionNewAllPlayedSinceLastTimePlaylist"/> <!-- on_played_since_last_time1_activate --> + <menuitem name="All Tracks Never Listened To" action="ActionNewAllNeverListenedPlaylist"/> <!-- on_all_tracks_never_listened_to1_activate --> + <menuitem name="All Tracks not Listed in any Playlist" action="ActionAllNeverListedPlaylist"/> <!-- on_all_tracks_not_listed_in_any_playlist1_activate --> + <separator/> + <menuitem name="One for each Artist" action="ActionNewOnePerArtistPlaylist"/> <!-- on_pl_for_each_artist_activate --> + <menuitem name="One for each Album" action="ActionNewOnePerAlbumPlaylist"/> <!-- on_pl_for_each_album_activate --> + <menuitem name="One for each Genre" action="ActionNewOnePerGenrePlaylist"/> <!-- on_pl_for_each_genre_activate --> + <menuitem name="One for each Composer" action="ActionNewOnePreComposerPlaylist"/> <!-- on_pl_for_each_composer_activate --> + <menuitem name="One for each Year" action="ActionNewOnePerYearPlaylist"/> <!-- on_pl_for_each_year_activate --> + <menuitem name="One for each Rating" action="ActionNewOnePerRatingPlaylist"/> <!-- on_pl_for_each_rating_activate --> + </menu> + </toolitem> + </toolbar> +</ui> \ No newline at end of file diff --git a/plugins/playlist_display/plugin.c b/plugins/playlist_display/plugin.c index c58b174..b10188d 100644 --- a/plugins/playlist_display/plugin.c +++ b/plugins/playlist_display/plugin.c @@ -49,43 +49,43 @@ static gpointer parent_class; static GtkActionEntry playlist_actions[] = { { - "ActionLoadiPod", /* Action name */ + ACTION_LOAD_IPOD, /* Action name */ PLAYLIST_DISPLAY_READ_ICON_STOCK_ID, /* Stock icon */ N_("_Load iPod(s)"), /* Display label */ NULL, /* short-cut */ - NULL, /* Tooltip */ + N_("Load all currently listed ipods"), /* Tooltip */ G_CALLBACK (on_load_ipods_mi) /* callback */ }, { - "ActionSaveChanges", /* Action name */ + ACTION_SAVE_CHANGES, /* Action name */ PLAYLIST_DISPLAY_SYNC_ICON_STOCK_ID, /* Stock icon */ N_("_Save Changes"), /* Display label */ NULL, /* short-cut */ - NULL, /* Tooltip */ + N_("Save all changes"), /* Tooltip */ G_CALLBACK (on_save_changes) /* callback */ }, { - "ActionAddFiles", /* Action name */ + ACTION_ADD_FILES, /* Action name */ PLAYLIST_DISPLAY_ADD_FILES_ICON_STOCK_ID, /* Stock icon */ N_("Add _Files"), /* Display label */ NULL, /* short-cut */ - NULL, /* Tooltip */ + N_("Add files to selected ipod"), /* Tooltip */ G_CALLBACK (on_create_add_files) /* callback */ }, { - "ActionAddDirectory", /* Action name */ + ACTION_ADD_DIRECTORY, /* Action name */ PLAYLIST_DISPLAY_ADD_DIRS_ICON_STOCK_ID, /* Stock icon */ N_("Add Fol_der"), /* Display label */ NULL, /* short-cut */ - NULL, /* Tooltip */ + N_("Add folder contents to selected ipod"), /* Tooltip */ G_CALLBACK (on_create_add_directory) /* callback */ }, { - "ActionAddPlaylist", /* Action name */ + ACTION_ADD_PLAYLIST, /* Action name */ PLAYLIST_DISPLAY_ADD_PLAYLISTS_ICON_STOCK_ID, /* Stock icon */ N_("Add _Playlist"), /* Display label */ NULL, /* short-cut */ - NULL, /* Tooltip */ + N_("Add playlist to selected ipod"), /* Tooltip */ G_CALLBACK (on_create_add_playlists) /* callback */ }, { @@ -97,144 +97,144 @@ static GtkActionEntry playlist_actions[] = G_CALLBACK (on_sync_playlist_with_dirs) }, { - "NewPlaylistMenu", + ACTION_NEW_PLAYLIST_MENU, NULL, N_("_New Playlist Menu") }, { "ActionNewEmptyPlaylist", - NULL, + GTK_STOCK_NEW, N_("Empty Playlist"), NULL, - NULL, + N_("Create an empty playlist"), G_CALLBACK (on_new_playlist_activate) }, { "ActionNewSmartPlaylist", - NULL, + GTK_STOCK_NEW, N_("Smart Playlist"), NULL, - NULL, + N_("Create a new smart playlist"), G_CALLBACK (on_smart_playlist_activate) }, { "ActionNewRandomPlaylist", - NULL, + GTK_STOCK_NEW, N_("Random Playlist from Displayed Tracks"), NULL, - NULL, + N_("Create a random playlist from the displayed tracks"), G_CALLBACK (on_random_playlist_activate) }, { "ActionNewContainingDisplayedPlaylist", - NULL, + GTK_STOCK_NEW, N_("Containing Displayed Tracks"), NULL, - NULL, + N_("Create a playlist containing the displayed tracks"), G_CALLBACK (on_pl_containing_displayed_tracks_activate) }, { "ActionNewContainingSelectedPlaylist", - NULL, + GTK_STOCK_NEW, N_("Containing Selected Tracks"), NULL, - NULL, + N_("Create a playlist containing the selected tracks"), G_CALLBACK (on_pl_containing_selected_tracks_activate) }, { "ActionNewBestRatedPlaylist", - NULL, + GTK_STOCK_NEW, N_("Best Rated Tracks"), NULL, - NULL, + N_("Create a playlist containing the best rated tracks"), G_CALLBACK (on_most_rated_tracks_playlist_s1_activate) }, { "ActionNewTracksMostOftenPlaylist", - NULL, + GTK_STOCK_NEW, N_("Tracks Most Often Listened To"), NULL, - NULL, + N_("Create a playlist containing the tracks most often listened to"), G_CALLBACK (on_most_listened_tracks1_activate) }, { "ActionNewMostRecentPlayledPlaylist", - NULL, + GTK_STOCK_NEW, N_("Most Recently Played Tracks"), NULL, - NULL, + N_("Create a playlist containing the most recently played tracks"), G_CALLBACK (on_most_recent_played_tracks_activate) }, { "ActionNewAllPlayedSinceLastTimePlaylist", - NULL, + GTK_STOCK_NEW, N_("All Tracks Played Since Last Time"), NULL, - NULL, + N_("Create a playlist containing all tracks played since last time"), G_CALLBACK (on_played_since_last_time1_activate) }, { "ActionNewAllNeverListenedPlaylist", - NULL, + GTK_STOCK_NEW, N_("All Tracks Never Listened To"), NULL, - NULL, + N_("Create a playlist of all tracks never listened to"), G_CALLBACK (on_all_tracks_never_listened_to1_activate) }, { "ActionAllNeverListedPlaylist", - NULL, + GTK_STOCK_NEW, N_("All Tracks not Listed in any Playlist"), NULL, - NULL, + N_("Create a playlist of tracks not list in any other playlist"), G_CALLBACK (on_all_tracks_not_listed_in_any_playlist1_activate) }, { "ActionNewOnePerArtistPlaylist", - NULL, + GTK_STOCK_NEW, N_("One for each Artist"), NULL, - NULL, + N_("Create a playlist for each artist"), G_CALLBACK (on_pl_for_each_artist_activate) }, { "ActionNewOnePerAlbumPlaylist", - NULL, + GTK_STOCK_NEW, N_("One for each Album"), NULL, - NULL, + N_("Create a playlist for each album"), G_CALLBACK (on_pl_for_each_album_activate) }, { "ActionNewOnePerGenrePlaylist", - NULL, + GTK_STOCK_NEW, N_("One for each Genre"), NULL, - NULL, + N_("Create a playlist for each genre"), G_CALLBACK (on_pl_for_each_genre_activate) }, { "ActionNewOnePreComposerPlaylist", - NULL, + GTK_STOCK_NEW, N_("One for each Composer"), NULL, - NULL, + N_("Create a playlist for each composer"), G_CALLBACK (on_pl_for_each_composer_activate) }, { "ActionNewOnePerYearPlaylist", - NULL, + GTK_STOCK_NEW, N_("One for each Year"), NULL, - NULL, + N_("Create a playlist for each year"), G_CALLBACK (on_pl_for_each_year_activate) }, { "ActionNewOnePerRatingPlaylist", - NULL, + GTK_STOCK_NEW, N_("One for each Rating"), NULL, - NULL, + N_("Create a playlist for each rating"), G_CALLBACK (on_pl_for_each_rating_activate) }, { @@ -312,10 +312,10 @@ static gboolean activate_plugin(AnjutaPlugin *plugin) { /* Add our playlist_actions */ action_group - = anjuta_ui_add_action_group_entries(ui, "ActionGroupPlaylistDisplay", _("Playlist Display"), playlist_actions, G_N_ELEMENTS (playlist_actions), GETTEXT_PACKAGE, TRUE, plugin); + = anjuta_ui_add_action_group_entries(ui, "ActionGroupPlaylistDisplay", _("Playlist Display"), playlist_actions, G_N_ELEMENTS (playlist_actions), GETTEXT_PACKAGE, TRUE, plugin); playlist_display_plugin->action_group = action_group; - new_playlist_action = tool_menu_action_new ("ActionNewPlaylist", _("New Playlist"), NULL, GTK_STOCK_NEW); + new_playlist_action = tool_menu_action_new (ACTION_NEW_PLAYLIST, _("New Playlist"), N_("Create a new playlist for the selected ipod"), GTK_STOCK_NEW); g_signal_connect(new_playlist_action, "activate", G_CALLBACK(on_new_playlist_activate), NULL); gtk_action_group_add_action (playlist_display_plugin->action_group, GTK_ACTION (new_playlist_action)); @@ -330,7 +330,7 @@ static gboolean activate_plugin(AnjutaPlugin *plugin) { gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW (playlist_display_plugin->pl_window), GTK_SHADOW_IN); gtk_widget_set_size_request(playlist_display_plugin->pl_window, 250, -1); - playlist_display_plugin->playlist_view = pm_create_treeview(); + playlist_display_plugin->playlist_view = pm_create_playlist_view(action_group); g_signal_connect (gtkpod_app, SIGNAL_PLAYLIST_SELECTED, G_CALLBACK (playlist_display_select_playlist_cb), NULL); g_signal_connect (gtkpod_app, SIGNAL_PLAYLIST_ADDED, G_CALLBACK (playlist_display_playlist_added_cb), NULL); @@ -344,7 +344,7 @@ static gboolean activate_plugin(AnjutaPlugin *plugin) { gtk_container_add(GTK_CONTAINER (playlist_display_plugin->pl_window), GTK_WIDGET (playlist_display_plugin->playlist_view)); gtk_widget_show_all(playlist_display_plugin->pl_window); - anjuta_shell_add_widget(plugin->shell, playlist_display_plugin->pl_window, "PlaylistDisplayPlugin", "iPod Repositories", GTK_STOCK_OPEN, ANJUTA_SHELL_PLACEMENT_LEFT, NULL); + anjuta_shell_add_widget(plugin->shell, playlist_display_plugin->pl_window, "PlaylistDisplayPlugin", " iPod Repositories", PLAYLIST_DISPLAY_PLAYLIST_ICON_STOCK_ID, ANJUTA_SHELL_PLACEMENT_LEFT, NULL); return TRUE; /* FALSE if activation failed */ } @@ -367,7 +367,7 @@ static gboolean deactivate_plugin(AnjutaPlugin *plugin) { g_signal_handlers_disconnect_by_func (plugin->shell, G_CALLBACK (playlist_display_itdb_data_changed_cb), plugin); /* Destroy the treeview */ - pm_destroy_treeview(); + pm_destroy_playlist_view(); playlist_display_plugin->playlist_view = NULL; /* Unmerge UI */ diff --git a/plugins/playlist_display/plugin.h b/plugins/playlist_display/plugin.h index dfae2ef..a0ae212 100644 --- a/plugins/playlist_display/plugin.h +++ b/plugins/playlist_display/plugin.h @@ -44,13 +44,22 @@ #define PLAYLIST_DISPLAY_ADD_PLAYLISTS_ICON_STOCK_ID "playlist_display-add-playlists-icon" #define PLAYLIST_DISPLAY_SYNC_ICON_STOCK_ID "playlist_display-sync-icon" +/* Action IDs */ +#define ACTION_LOAD_IPOD "ActionLoadiPod" +#define ACTION_SAVE_CHANGES "ActionSaveChanges" +#define ACTION_ADD_FILES "ActionAddFiles" +#define ACTION_ADD_DIRECTORY "ActionAddDirectory" +#define ACTION_ADD_PLAYLIST "ActionAddPlaylist" +#define ACTION_NEW_PLAYLIST "ActionNewPlaylist" +#define ACTION_NEW_PLAYLIST_MENU "ActionNewPlaylistMenu" + typedef struct _PlaylistDisplayPlugin PlaylistDisplayPlugin; typedef struct _PlaylistDisplayPluginClass PlaylistDisplayPluginClass; struct _PlaylistDisplayPlugin { AnjutaPlugin parent; - GtkTreeView *playlist_view; GtkWidget *pl_window; + GtkWidget *playlist_view; gint uiid; GtkActionGroup *action_group; }; ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gtkpod-cvs2 mailing list gtkpod-cvs2@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2