commit ff36716a74a099b4f6d6365acf1b1003a2608c8d
Author: phantomjinx <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2