commit cda30e4f23e44eb6c7d2af6d699206d529d4098f
Author: phantomjinx <[email protected]>
Date: Thu Feb 25 20:43:30 2010 +0000
Remaining delete features
- gtkpod_app_iface.c
- Ensure that list of tracks in set_selected_tracks is copied rather than
pointed at.
- playlist display plugin
- Add TRACK_REMOVED signal to remove appropriate tracks from current
playlist.
- sorttab display plugin
- Include "Delete Entry" actions in Edit Menu
- Add TRACK_REMOVED signal to remove appropriate tracks from current
sorttabs.
- misc_track.*
- delete_track_ok and delete_track_cancel no longer static as both used
by sorttab's delete_entry_head().
libgtkpod/gtkpod_app_iface.c | 2 +-
plugins/playlist_display/display_playlists.h | 1 +
plugins/playlist_display/playlist_display.ui | 1 +
plugins/playlist_display/plugin.c | 1 +
plugins/sorttab_display/display_sorttabs.h | 5 +
plugins/sorttab_display/plugin.c | 25 ++++
plugins/sorttab_display/sorttab_display.ui | 10 ++
plugins/sorttab_display/sorttab_display_actions.c | 50 +++++++-
plugins/sorttab_display/sorttab_display_actions.h | 10 ++
plugins/track_display/track_display.ui | 1 +
src/display_playlists.c | 7 +
src/display_sorttabs.c | 157 ++++++++++++++++++++-
src/misc_input.c | 84 +-----------
src/misc_track.c | 6 +-
src/misc_track.h | 2 +
15 files changed, 269 insertions(+), 93 deletions(-)
---
diff --git a/libgtkpod/gtkpod_app_iface.c b/libgtkpod/gtkpod_app_iface.c
index 26863f1..12a941b 100644
--- a/libgtkpod/gtkpod_app_iface.c
+++ b/libgtkpod/gtkpod_app_iface.c
@@ -261,7 +261,7 @@ GList *gtkpod_get_selected_tracks() {
void gtkpod_set_selected_tracks(GList *tracks) {
g_return_if_fail (GTKPOD_IS_APP(gtkpod_app));
- GTKPOD_APP_GET_INTERFACE (gtkpod_app)->selected_tracks = tracks;
+ GTKPOD_APP_GET_INTERFACE (gtkpod_app)->selected_tracks =
g_list_copy(tracks);
g_signal_emit(gtkpod_app, gtkpod_app_signals[TRACKS_SELECTED], 0, tracks);
}
diff --git a/plugins/playlist_display/display_playlists.h
b/plugins/playlist_display/display_playlists.h
index a64c2c5..0ab5eb5 100644
--- a/plugins/playlist_display/display_playlists.h
+++ b/plugins/playlist_display/display_playlists.h
@@ -58,5 +58,6 @@ void playlist_display_update_itdb_cb (GtkPodApp *app,
gpointer olditdb, gpointer
void playlist_display_select_playlist_cb (GtkPodApp *app, gpointer pl,
gpointer data);
void playlist_display_playlist_added_cb(GtkPodApp *app, gpointer pl, gint32
pos, gpointer data);
void playlist_display_playlist_removed_cb(GtkPodApp *app, gpointer pl, gint32
pos, gpointer data);
+void playlist_display_track_removed_cb(GtkPodApp *app, gpointer tk, gint32
pos, gpointer data);
#endif /* __DISPLAY_PLAYLIST_H__ */
diff --git a/plugins/playlist_display/playlist_display.ui
b/plugins/playlist_display/playlist_display.ui
index 86b28b2..b87799b 100644
--- a/plugins/playlist_display/playlist_display.ui
+++ b/plugins/playlist_display/playlist_display.ui
@@ -13,6 +13,7 @@
<menuitem name="Selected Playlist"
action="ActionUpdatePlaylist" />
<menuitem name="Selected Tab Entry"
action="ActionUpdateTabEntry" />
<menuitem name="Selected Tracks"
action="ActionUpdateTracks" />
+ <separator name="separator3" />
</menu>
</placeholder>
</menu>
diff --git a/plugins/playlist_display/plugin.c
b/plugins/playlist_display/plugin.c
index a65f0d0..d1deaaf 100644
--- a/plugins/playlist_display/plugin.c
+++ b/plugins/playlist_display/plugin.c
@@ -292,6 +292,7 @@ static gboolean activate_plugin(AnjutaPlugin *plugin) {
g_signal_connect (gtkpod_app, SIGNAL_ITDB_UPDATED, G_CALLBACK
(playlist_display_update_itdb_cb), NULL);
g_signal_connect (gtkpod_app, SIGNAL_PLAYLIST_ADDED, G_CALLBACK
(playlist_display_playlist_added_cb), NULL);
g_signal_connect (gtkpod_app, SIGNAL_PLAYLIST_REMOVED, G_CALLBACK
(playlist_display_playlist_removed_cb), NULL);
+ g_signal_connect (gtkpod_app, SIGNAL_TRACK_REMOVED, G_CALLBACK
(playlist_display_track_removed_cb), NULL);
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);
diff --git a/plugins/sorttab_display/display_sorttabs.h
b/plugins/sorttab_display/display_sorttabs.h
index a109540..4469ba0 100644
--- a/plugins/sorttab_display/display_sorttabs.h
+++ b/plugins/sorttab_display/display_sorttabs.h
@@ -38,6 +38,7 @@
#include "date_parser.h"
#include "sorttab_conversion.h"
#include "libgtkpod/gtkpod_app_iface.h"
+#include "libgtkpod/gp_itdb.h"
/* Number of search tabs to be supported. */
#define SORT_TAB_MAX (ST_CAT_NUM-1)
@@ -131,9 +132,13 @@ void st_redisplay(guint32 inst);
GList *st_get_selected_members(guint32 inst);
void st_update_paned_position();
void st_show_visible(void);
+TabEntry *st_get_selected_entry(gint inst);
+gint st_get_sort_tab_number(gchar *text);
+void st_delete_entry_head(gint inst, DeleteAction deleteaction);
void cal_open_calendar(gint inst, T_item item);
void sorttab_display_select_playlist_cb(GtkPodApp *app, gpointer pl, gpointer
data);
+void sorttab_display_track_removed_cb(GtkPodApp *app, gpointer tk, gint32 pos,
gpointer data);
#endif /* __DISPLAY_SORTTAB_H__ */
diff --git a/plugins/sorttab_display/plugin.c b/plugins/sorttab_display/plugin.c
index f7d3ab6..01252b1 100644
--- a/plugins/sorttab_display/plugin.c
+++ b/plugins/sorttab_display/plugin.c
@@ -58,6 +58,30 @@ static GtkActionEntry sorttab_actions[] =
NULL, /* Tooltip */
G_CALLBACK (on_fewer_sort_tabs_activate) /* callback */
},
+ {
+ "ActionDeleteSelectedEntry",
+ GTK_STOCK_DELETE,
+ N_("Selected Filter Tab Entry from Playlist"),
+ NULL,
+ NULL,
+ G_CALLBACK (on_delete_selected_entry_from_playlist)
+ },
+ {
+ "ActionDeleteSelectedEntryFromDb",
+ GTK_STOCK_DELETE,
+ N_("Selected Filter Tab Entry from Database"),
+ NULL,
+ NULL,
+ G_CALLBACK (on_delete_selected_entry_from_database)
+ },
+ {
+ "ActionDeleteSelectedEntryFromDev",
+ GTK_STOCK_DELETE,
+ N_("Selected Filter Tab Entry from Device"),
+ NULL,
+ NULL,
+ G_CALLBACK (on_delete_selected_entry_from_device)
+ }
};
static gboolean activate_sorttab_display_plugin(AnjutaPlugin *plugin) {
@@ -84,6 +108,7 @@ static gboolean activate_sorttab_display_plugin(AnjutaPlugin
*plugin) {
gtk_widget_show(sorttab_display_plugin->st_paned);
g_signal_connect (gtkpod_app, SIGNAL_PLAYLIST_SELECTED, G_CALLBACK
(sorttab_display_select_playlist_cb), NULL);
+ g_signal_connect (gtkpod_app, SIGNAL_TRACK_REMOVED, G_CALLBACK
(sorttab_display_track_removed_cb), NULL);
anjuta_shell_add_widget(plugin->shell, sorttab_display_plugin->st_paned,
"SorttabDisplayPlugin", "Track Filter", NULL, ANJUTA_SHELL_PLACEMENT_CENTER,
NULL);
return TRUE; /* FALSE if activation failed */
diff --git a/plugins/sorttab_display/sorttab_display.ui
b/plugins/sorttab_display/sorttab_display.ui
index ecc33d2..a91811c 100644
--- a/plugins/sorttab_display/sorttab_display.ui
+++ b/plugins/sorttab_display/sorttab_display.ui
@@ -1,6 +1,16 @@
<!--*- xml -*-->
<ui>
<menubar name="MenuMain">
+ <menu name="MenuEdit" action="ActionMenuEdit">
+ <placeholder name="PlaceholderEditMenus">
+ <menu name="Delete"
action="ActionEditDeleteMenu">
+ <menuitem name="Selected Entry from
Playlist" action="ActionDeleteSelectedEntry" />
+ <menuitem name="Selected Entry from
Database" action="ActionDeleteSelectedEntryFromDb" />
+ <menuitem name="Selected Entry from
Device" action="ActionDeleteSelectedEntryFromDev" />
+ <separator name="separator1" />
+ </menu>
+ </placeholder>
+ </menu>
<menu name="MenuView" action="ActionMenuView">
<placeholder
name="PlaceholderSorttabDisplayActionMenuView">
<menuitem name="More Filter Tabs"
action="ActionViewMoreFilterTabs"/>
diff --git a/plugins/sorttab_display/sorttab_display_actions.c
b/plugins/sorttab_display/sorttab_display_actions.c
index 76bb06e..8ab3159 100644
--- a/plugins/sorttab_display/sorttab_display_actions.c
+++ b/plugins/sorttab_display/sorttab_display_actions.c
@@ -34,13 +34,59 @@
#include "libgtkpod/prefs.h"
#include "sorttab_display_actions.h"
#include "display_sorttabs.h"
+#include "libgtkpod/gp_itdb.h"
-void on_more_sort_tabs_activate (GtkAction *action, SorttabDisplayPlugin*
plugin) {
+void on_more_sort_tabs_activate(GtkAction *action, SorttabDisplayPlugin*
plugin) {
prefs_set_int("sort_tab_num", prefs_get_int("sort_tab_num") + 1);
st_show_visible();
}
-void on_fewer_sort_tabs_activate (GtkAction *action, SorttabDisplayPlugin*
plugin) {
+void on_fewer_sort_tabs_activate(GtkAction *action, SorttabDisplayPlugin*
plugin) {
prefs_set_int("sort_tab_num", prefs_get_int("sort_tab_num") - 1);
st_show_visible();
}
+
+static void delete_selected_entry(DeleteAction deleteaction, gchar *text) {
+ TabEntry *entry;
+ gint inst;
+
+ inst = st_get_sort_tab_number(text);
+ if (inst == -1)
+ return;
+
+ entry = st_get_selected_entry(inst);
+ if (!entry) {
+ gtkpod_statusbar_message(_("No entry selected in Sort Tab %d"), inst +
1);
+ return;
+ }
+ st_delete_entry_head(inst, deleteaction);
+}
+
+void on_delete_selected_entry_from_database(GtkAction *action,
SorttabDisplayPlugin* plugin) {
+ delete_selected_entry(DELETE_ACTION_DATABASE, _("Remove entry of which
sort tab from database?"));
+}
+
+void on_delete_selected_entry_from_ipod(GtkAction *action,
SorttabDisplayPlugin* plugin) {
+ delete_selected_entry(DELETE_ACTION_IPOD, _("Remove tracks in selected
entry of which filter tab from the iPod?"));
+}
+
+void on_delete_selected_entry_from_harddisk(GtkAction *action,
SorttabDisplayPlugin* plugin) {
+ delete_selected_entry(DELETE_ACTION_LOCAL, _("Remove tracks in selected
entry of which filter tab from the harddisk?"));
+}
+
+void on_delete_selected_entry_from_playlist(GtkAction *action,
SorttabDisplayPlugin* plugin) {
+ delete_selected_entry(DELETE_ACTION_PLAYLIST, _("Remove tracks in selected
entry of which filter tab from playlist?"));
+}
+
+void on_delete_selected_entry_from_device(GtkAction *action,
SorttabDisplayPlugin* plugin) {
+ iTunesDB *itdb = gtkpod_get_current_itdb();
+ if (!itdb)
+ return;
+
+ if (itdb->usertype & GP_ITDB_TYPE_IPOD) {
+ on_delete_selected_entry_from_ipod(action, plugin);
+ }
+ else if (itdb->usertype & GP_ITDB_TYPE_LOCAL) {
+ on_delete_selected_entry_from_harddisk(action, plugin);
+ }
+}
diff --git a/plugins/sorttab_display/sorttab_display_actions.h
b/plugins/sorttab_display/sorttab_display_actions.h
index 515249a..0c60f4e 100644
--- a/plugins/sorttab_display/sorttab_display_actions.h
+++ b/plugins/sorttab_display/sorttab_display_actions.h
@@ -40,4 +40,14 @@ void on_more_sort_tabs_activate (GtkAction *action,
SorttabDisplayPlugin* plugin
void on_fewer_sort_tabs_activate (GtkAction *action, SorttabDisplayPlugin*
plugin);
+void on_delete_selected_entry_from_database(GtkAction *action,
SorttabDisplayPlugin* plugin);
+
+void on_delete_selected_entry_from_ipod(GtkAction *action,
SorttabDisplayPlugin* plugin);
+
+void on_delete_selected_entry_from_harddisk(GtkAction *action,
SorttabDisplayPlugin* plugin);
+
+void on_delete_selected_entry_from_playlist(GtkAction *action,
SorttabDisplayPlugin* plugin);
+
+void on_delete_selected_entry_from_device(GtkAction *action,
SorttabDisplayPlugin* plugin);
+
#endif
diff --git a/plugins/track_display/track_display.ui
b/plugins/track_display/track_display.ui
index a44fcce..21d15e6 100644
--- a/plugins/track_display/track_display.ui
+++ b/plugins/track_display/track_display.ui
@@ -7,6 +7,7 @@
<menuitem name="Selected Tracks from
Playlist" action="ActionDeleteSelectedTracksFromPlaylist" />
<menuitem name="Selected Tracks from
Database" action="ActionDeleteSelectedTracksFromDatabase" />
<menuitem name="Selected Tracks from
Device" action="ActionDeleteSelectedTracksFromDevice" />
+ <separator name="separator2" />
</menu>
</placeholder>
</menu>
diff --git a/src/display_playlists.c b/src/display_playlists.c
index 973eec3..5a493a1 100644
--- a/src/display_playlists.c
+++ b/src/display_playlists.c
@@ -2205,3 +2205,10 @@ void playlist_display_playlist_removed_cb(GtkPodApp
*app, gpointer pl, gint32 po
pm_remove_playlist(old_playlist, TRUE);
}
+void playlist_display_track_removed_cb(GtkPodApp *app, gpointer tk, gint32
pos, gpointer data) {
+ Track *old_track = tk;
+ Playlist *current_playlist = gtkpod_get_current_playlist();
+
+ pm_remove_track(current_playlist, old_track);
+}
+
diff --git a/src/display_sorttabs.c b/src/display_sorttabs.c
index 303aca4..28b2ca9 100644
--- a/src/display_sorttabs.c
+++ b/src/display_sorttabs.c
@@ -1583,11 +1583,7 @@ static void st_remove_track_normal(Track *track, guint32
inst) {
/* 02. Feb 2003: bugfix: track is always passed on to the next sort
* tab: it might have been recategorized, but still be displayed. JCS */
void st_remove_track(Track *track, guint32 inst) {
- if (inst == prefs_get_int("sort_tab_num")) {
- g_warning("st_remove_track: signal a track should be removed");
- // tm_remove_track(track);
- }
- else if (inst < prefs_get_int("sort_tab_num")) {
+ if (inst < prefs_get_int("sort_tab_num")) {
switch (sorttab[inst]->current_category) {
case ST_CAT_ARTIST:
case ST_CAT_ALBUM:
@@ -3339,6 +3335,150 @@ void cal_open_calendar(gint inst, T_item item) {
gtk_widget_show(cal);
}
+/* Let the user select a sort tab number */
+/* @text: text to be displayed */
+/* return value: -1: user selected cancel
+ 0...prefs_get_sort_tab_number()-1: selected tab */
+gint st_get_sort_tab_number(gchar *text) {
+ static gint last_nr = 1;
+ GtkWidget *mdialog;
+ GtkDialog *dialog;
+ GtkWidget *combo;
+ gint result;
+ gint i, nr, stn;
+ GList *list = NULL, *lnk;
+ gchar buf[20], *bufp;
+
+ mdialog
+ = gtk_message_dialog_new(GTK_WINDOW (gtkpod_app),
GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL,
"%s", text);
+
+ dialog = GTK_DIALOG (mdialog);
+
+ combo = gtk_combo_new();
+ gtk_widget_show(combo);
+ gtk_container_add(GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), combo);
+
+ stn = prefs_get_int("sort_tab_num");
+ /* Create list */
+ for (i = 1; i <= stn; ++i) {
+ bufp = g_strdup_printf("%d", i);
+ list = g_list_append(list, bufp);
+ }
+
+ /* set pull down items */
+ gtk_combo_set_popdown_strings(GTK_COMBO (combo), list);
+ /* set standard entry */
+ if (last_nr > stn)
+ last_nr = 1; /* maybe the stn has become
+ smaller... */
+ snprintf(buf, 20, "%d", last_nr);
+ gtk_entry_set_text(GTK_ENTRY (GTK_COMBO (combo)->entry), buf);
+
+ result = gtk_dialog_run(GTK_DIALOG (mdialog));
+
+ /* free the list */
+ for (lnk = list; lnk; lnk = lnk->next) {
+ C_FREE (lnk->data);
+ }
+ g_list_free(list);
+ list = NULL;
+
+ if (result == GTK_RESPONSE_CANCEL) {
+ nr = -1; /* no selection */
+ }
+ else {
+ bufp = gtk_editable_get_chars(GTK_EDITABLE (GTK_COMBO (combo)->entry),
0, -1);
+ nr = atoi(bufp) - 1;
+ last_nr = nr + 1;
+ C_FREE (bufp);
+ }
+
+ gtk_widget_destroy(mdialog);
+
+ return nr;
+}
+
+void st_delete_entry_head(gint inst, DeleteAction deleteaction) {
+ struct DeleteData *dd;
+ Playlist *pl;
+ GList *selected_tracks = NULL;
+ GString *str;
+ gchar *label = NULL, *title = NULL;
+ gboolean confirm_again;
+ gchar *confirm_again_key;
+ TabEntry *entry;
+ GtkResponseType response;
+ iTunesDB *itdb;
+
+ g_return_if_fail (inst >= 0);
+ g_return_if_fail (inst <= prefs_get_int("sort_tab_num"));
+
+ pl = gtkpod_get_current_playlist();
+ if (pl == NULL) { /* no playlist??? Cannot happen, but... */
+ message_sb_no_playlist_selected();
+ return;
+ }
+ itdb = pl->itdb;
+ g_return_if_fail (itdb);
+
+ entry = st_get_selected_entry(inst);
+ if (entry == NULL) { /* no entry selected */
+ gtkpod_statusbar_message(_("No entry selected."));
+ return;
+ }
+
+ if (entry->members == NULL) { /* no tracks in entry -> just remove entry */
+ if (!entry->master)
+ st_remove_entry(entry, inst);
+ else
+ gtkpod_statusbar_message(_("Cannot remove entry 'All'"));
+ return;
+ }
+
+ selected_tracks = g_list_copy(entry->members);
+
+ dd = g_malloc0(sizeof(struct DeleteData));
+ dd->deleteaction = deleteaction;
+ dd->tracks = selected_tracks;
+ dd->pl = pl;
+ dd->itdb = itdb;
+
+ delete_populate_settings(dd, &label, &title, &confirm_again,
&confirm_again_key, &str);
+
+ /* open window */
+ response = gtkpod_confirmation(-1, /* gint id, */
+ TRUE, /* gboolean modal, */
+ title, /* title */
+ label, /* label */
+ str->str, /* scrolled text */
+ NULL, 0, NULL, /* option 1 */
+ NULL, 0, NULL, /* option 2 */
+ confirm_again, /* gboolean confirm_again, */
+ confirm_again_key,/* ConfHandlerOpt confirm_again_key,*/
+ CONF_NULL_HANDLER, /* ConfHandler ok_handler,*/
+ NULL, /* don't show "Apply" button */
+ CONF_NULL_HANDLER, /* cancel_handler,*/
+ NULL, /* gpointer user_data1,*/
+ NULL); /* gpointer user_data2,*/
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ /* Delete the tracks */
+ delete_track_ok(dd);
+ /* Delete the entry */
+ st_remove_entry(entry, inst);
+ break;
+ default:
+ delete_track_cancel(dd);
+ break;
+ }
+
+ g_free(label);
+ g_free(title);
+ g_free(confirm_again_key);
+ g_string_free(str, TRUE);
+}
+
void sorttab_display_select_playlist_cb(GtkPodApp *app, gpointer pl, gpointer
data) {
Playlist *new_playlist = pl;
@@ -3357,9 +3497,12 @@ void sorttab_display_select_playlist_cb(GtkPodApp *app,
gpointer pl, gpointer da
st_add_track(track, FALSE, TRUE, 0);
}
-// gtkpod_set_current_tracks(new_playlist->members);
-
st_enable_disable_view_sort(0, TRUE);
st_add_track(NULL, TRUE, TRUE, 0);
}
}
+
+void sorttab_display_track_removed_cb(GtkPodApp *app, gpointer tk, gint32 pos,
gpointer data) {
+ Track *old_track = tk;
+ st_remove_track(old_track, 0);
+}
diff --git a/src/misc_input.c b/src/misc_input.c
index 4ab3d39..44e8724 100644
--- a/src/misc_input.c
+++ b/src/misc_input.c
@@ -2,7 +2,7 @@
|
| Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
| Part of the gtkpod project.
-|
+|
| URL: http://www.gtkpod.org/
| URL: http://gtkpod.sourceforge.net/
|
@@ -95,7 +95,7 @@ gchar *get_user_string (gchar *title, gchar *message, gchar
*dflt,
temp = g_markup_printf_escaped ("<span weight='bold'
size='larger'>%s</span>\n\n%s", title, message);
gtk_label_set_markup (GTK_LABEL (label), temp);
g_free (temp);
-
+
if (dflt)
{
gtk_entry_set_text (GTK_ENTRY (entry), dflt);
@@ -119,7 +119,7 @@ gchar *get_user_string (gchar *title, gchar *message, gchar
*dflt,
if (response == GTK_RESPONSE_OK)
{
result = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, -1);
-
+
/* get state of checkbox only if opt_msg was non NULL */
if (opt_msg && checkb)
{
@@ -133,82 +133,6 @@ gchar *get_user_string (gchar *title, gchar *message,
gchar *dflt,
}
-
-/* Let the user select a sort tab number */
-/* @text: text to be displayed */
-/* return value: -1: user selected cancel
- 0...prefs_get_sort_tab_number()-1: selected tab */
-gint get_sort_tab_number (gchar *text)
-{
- static gint last_nr = 1;
- GtkWidget *mdialog;
- GtkDialog *dialog;
- GtkWidget *combo;
- gint result;
- gint i, nr, stn;
- GList *list=NULL, *lnk;
- gchar buf[20], *bufp;
-
- mdialog = gtk_message_dialog_new (
- GTK_WINDOW (gtkpod_app),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_OK_CANCEL,
- "%s", text);
-
- dialog = GTK_DIALOG (mdialog);
-
- combo = gtk_combo_new ();
- gtk_widget_show (combo);
- gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), combo);
-
- stn = prefs_get_int("sort_tab_num");
- /* Create list */
- for (i=1; i<=stn; ++i)
- {
- bufp = g_strdup_printf ("%d", i);
- list = g_list_append (list, bufp);
- }
-
- /* set pull down items */
- gtk_combo_set_popdown_strings (GTK_COMBO (combo), list);
- /* set standard entry */
- if (last_nr > stn) last_nr = 1; /* maybe the stn has become
- smaller... */
- snprintf (buf, 20, "%d", last_nr);
- gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (combo)->entry), buf);
-
- result = gtk_dialog_run (GTK_DIALOG (mdialog));
-
- /* free the list */
- for (lnk = list; lnk; lnk = lnk->next)
- {
- C_FREE (lnk->data);
- }
- g_list_free (list);
- list = NULL;
-
- if (result == GTK_RESPONSE_CANCEL)
- {
- nr = -1; /* no selection */
- }
- else
- {
- bufp = gtk_editable_get_chars (GTK_EDITABLE (GTK_COMBO (combo)->entry),
- 0, -1);
- nr = atoi (bufp)-1;
- last_nr = nr+1;
- C_FREE (bufp);
- }
-
- gtk_widget_destroy (mdialog);
-
- return nr;
-}
-
-
-
-
/*------------------------------------------------------------------*\
* *
* Functions for blocking widgets (block input) *
@@ -303,7 +227,7 @@ static void block_release_widgets (gint action, GtkWidget
*w, gboolean sens)
bw = (struct blocked_widget *)l->data;
gtk_widget_set_sensitive (bw->widget,
bw->sensitive);
}
-
+
sort_window_release ();
widgets_blocked = FALSE;
}
diff --git a/src/misc_track.c b/src/misc_track.c
index a95ab47..ffab141 100644
--- a/src/misc_track.c
+++ b/src/misc_track.c
@@ -1935,7 +1935,7 @@ gchar *get_track_info(Track *track, gboolean
prefer_filename) {
/* cancel handler for delete track */
/* @user_data1 the selected playlist, @user_data2 are the selected tracks */
-static void delete_track_cancel(struct DeleteData *dd) {
+void delete_track_cancel(struct DeleteData *dd) {
g_return_if_fail (dd);
g_list_free(dd->tracks);
@@ -1944,7 +1944,7 @@ static void delete_track_cancel(struct DeleteData *dd) {
/* ok handler for delete track */
/* @user_data1 the selected playlist, @user_data2 are the selected tracks */
-static void delete_track_ok(struct DeleteData *dd) {
+void delete_track_ok(struct DeleteData *dd) {
gint n;
GList *l;
@@ -2040,7 +2040,7 @@ void delete_track_head(DeleteAction deleteaction) {
itdb = pl->itdb;
g_return_if_fail (itdb);
- selected_tracks = gtkpod_get_displayed_tracks();
+ selected_tracks = gtkpod_get_selected_tracks();
if (selected_tracks == NULL) { /* no tracks selected */
message_sb_no_tracks_selected();
return;
diff --git a/src/misc_track.h b/src/misc_track.h
index 274dcc2..0317ff0 100644
--- a/src/misc_track.h
+++ b/src/misc_track.h
@@ -74,5 +74,7 @@ gchar *track_get_text(Track *track, T_item item);
gboolean track_set_text(Track *track, const gchar *new_text, T_item item);
void delete_track_head (DeleteAction deleteaction);
+void delete_track_ok(struct DeleteData *dd);
+void delete_track_cancel(struct DeleteData *dd);
#endif
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2