commit 4721fefd22bf2e77138750fb0566f43b95a04cdb
Author: phantomjinx <[email protected]>
Date: Sun Mar 6 14:34:52 2011 +0000
Add extra action to load a selected ipod
* With more than one iPod, it is annoying to click load iPods only to find
that all iPods try to be loaded rather than just the selected one.
* Load iPod toolbar button modified to have a drop down that includes a
"load selected ipod" menuitem as well as the "load all ipods".
* Default of the button is still to load all ipods as most users will have
just the one iPod
.../playlist_display/playlist_display_actions.c | 7 ++++++
.../playlist_display/playlist_display_actions.h | 1 +
.../playlist_display/playlist_display_toolbar.xml | 7 +++++-
plugins/playlist_display/plugin.c | 21 ++++++++++++++++++++
plugins/playlist_display/plugin.h | 3 ++
5 files changed, 38 insertions(+), 1 deletions(-)
---
diff --git a/plugins/playlist_display/playlist_display_actions.c
b/plugins/playlist_display/playlist_display_actions.c
index 3f7bf34..4c50881 100644
--- a/plugins/playlist_display/playlist_display_actions.c
+++ b/plugins/playlist_display/playlist_display_actions.c
@@ -333,6 +333,13 @@ static void create_add_files_dialog(Playlist *pl) {
gdk_threads_add_idle((GSourceFunc) fileselection_add_files_cb, names);
}
+void on_load_ipod_mi(GtkAction *action, PlaylistDisplayPlugin* plugin) {
+ iTunesDB *itdb = gtkpod_get_current_itdb();
+ if (itdb != NULL) {
+ gp_load_ipod(itdb);
+ }
+}
+
void on_load_ipods_mi(GtkAction* action, PlaylistDisplayPlugin* plugin) {
gp_load_ipods();
}
diff --git a/plugins/playlist_display/playlist_display_actions.h
b/plugins/playlist_display/playlist_display_actions.h
index a7fd41d..20ced8c 100644
--- a/plugins/playlist_display/playlist_display_actions.h
+++ b/plugins/playlist_display/playlist_display_actions.h
@@ -36,6 +36,7 @@
#include <gtk/gtk.h>
#include "plugin.h"
+void on_load_ipod_mi(GtkAction* action, PlaylistDisplayPlugin* plugin);
void on_load_ipods_mi(GtkAction* action, PlaylistDisplayPlugin* plugin);
void on_save_changes(GtkAction *action, PlaylistDisplayPlugin* plugin);
void on_create_add_files(GtkAction *action, PlaylistDisplayPlugin* plugin);
diff --git a/plugins/playlist_display/playlist_display_toolbar.xml
b/plugins/playlist_display/playlist_display_toolbar.xml
index 35f6216..0498e64 100644
--- a/plugins/playlist_display/playlist_display_toolbar.xml
+++ b/plugins/playlist_display/playlist_display_toolbar.xml
@@ -1,6 +1,11 @@
<ui>
<toolbar name="PlaylistToolbar">
- <toolitem name="Load iPod(s)" action="ActionLoadiPod" />
+ <toolitem name="Load iPod(s)" action="ActionDisplayLoadiPods">
+ <menu name="LoadiPodMenu" action="ActionLoadiPodsMenu">
+ <menuitem name="Load Selected iPod"
action="ActionLoadiPod"/>
+ <menuitem name="Load iPod(s)"
action="ActionLoadiPods"/>
+ </menu>
+ </toolitem>
<toolitem name="Save Changes" action="ActionSaveChanges" />
<toolitem name="Add Files" action="ActionAddFiles" />
<toolitem name="Add Directory" action="ActionAddDirectory" />
diff --git a/plugins/playlist_display/plugin.c
b/plugins/playlist_display/plugin.c
index 1edb02f..2368e2c 100644
--- a/plugins/playlist_display/plugin.c
+++ b/plugins/playlist_display/plugin.c
@@ -57,12 +57,28 @@ static GtkActionEntry playlist_actions[] =
{
ACTION_LOAD_IPOD, /* Action name */
PLAYLIST_DISPLAY_READ_ICON_STOCK_ID, /* Stock icon */
+ N_("_Load Selected iPod"), /* Display label */
+ NULL, /* short-cut */
+ N_("Load the currently selected iPod"), /* Tooltip */
+ G_CALLBACK (on_load_ipod_mi) /* callback */
+ },
+ {
+ ACTION_LOAD_IPODS, /* Action name */
+ PLAYLIST_DISPLAY_READ_ICON_STOCK_ID, /* Stock icon */
N_("_Load iPod(s)"), /* Display label */
NULL, /* short-cut */
N_("Load all currently listed iPods"), /* Tooltip */
G_CALLBACK (on_load_ipods_mi) /* callback */
},
{
+ ACTION_LOAD_IPODS_MENU,
+ NULL,
+ N_("_Load iPods"),
+ NULL,
+ NULL,
+ NULL
+ },
+ {
ACTION_SAVE_CHANGES, /* Action name */
PLAYLIST_DISPLAY_SYNC_ICON_STOCK_ID, /* Stock icon */
N_("_Save Changes"), /* Display label */
@@ -293,6 +309,7 @@ static gboolean activate_plugin(AnjutaPlugin *plugin) {
PlaylistDisplayPlugin *playlist_display_plugin;
GtkActionGroup* action_group;
GtkAction *new_playlist_action;
+ GtkAction *load_ipods_action;
/* Set preferences */
set_default_preferences();
@@ -321,6 +338,10 @@ static gboolean activate_plugin(AnjutaPlugin *plugin) {
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));
+ load_ipods_action = tool_menu_action_new (ACTION_DISPLAY_LOAD_IPODS,
_("Load iPods"), _("Load all or selected iPods"),
PLAYLIST_DISPLAY_READ_ICON_STOCK_ID);
+ g_signal_connect(load_ipods_action, "activate",
G_CALLBACK(on_load_ipods_mi), NULL);
+ gtk_action_group_add_action (playlist_display_plugin->action_group,
GTK_ACTION (load_ipods_action));
+
/* Merge UI */
gchar *uipath = g_build_filename(get_ui_dir(), "playlist_display.ui",
NULL);
playlist_display_plugin->uiid = anjuta_ui_merge(ui, uipath);
diff --git a/plugins/playlist_display/plugin.h
b/plugins/playlist_display/plugin.h
index 1d64f28..cee4f72 100644
--- a/plugins/playlist_display/plugin.h
+++ b/plugins/playlist_display/plugin.h
@@ -46,6 +46,9 @@
/* Action IDs */
#define ACTION_LOAD_IPOD "ActionLoadiPod"
+#define ACTION_LOAD_IPODS "ActionLoadiPods"
+#define ACTION_DISPLAY_LOAD_IPODS "ActionDisplayLoadiPods"
+#define ACTION_LOAD_IPODS_MENU "ActionLoadiPodsMenu"
#define ACTION_SAVE_CHANGES "ActionSaveChanges"
#define ACTION_ADD_FILES "ActionAddFiles"
#define ACTION_ADD_DIRECTORY "ActionAddDirectory"
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2