Update of /cvsroot/gtkpod/gtkpod/src
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv3759/src
Modified Files:
display_playlists.c misc.c
Log Message:
* src/display_playlist (pm_remove_playlist): if entire itdb is
removed, clear display (filter tabs, playlist view) first to
avoid segfaults when non-existent tracks are accessed for
display updates.
Index: display_playlists.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/display_playlists.c,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -d -r1.91 -r1.92
--- display_playlists.c 24 Jun 2006 15:39:22 -0000 1.91
+++ display_playlists.c 27 Jun 2006 16:29:43 -0000 1.92
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-06-25 00:25:34 jcs>
+/* Time-stamp: <2006-06-28 01:25:27 jcs>
|
| Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
| Part of the gtkpod project.
@@ -1145,16 +1145,12 @@
}
-/* Remove "playlist" from the display model.
- "select": TRUE: a new playlist is selected
- FALSE: no selection is taking place
- (useful when quitting program) */
-void pm_remove_playlist (Playlist *playlist, gboolean select)
-{
- gboolean pm_delete_playlist_fe (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gpointer data)
+
+ /* former inline function: used by pm_remove_playlist() */
+ static gboolean pm_delete_playlist_fe (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data)
{
Playlist *playlist=NULL;
@@ -1165,6 +1161,13 @@
}
return FALSE;
}
+
+/* Remove "playlist" from the display model.
+ "select": TRUE: a new playlist is selected
+ FALSE: no selection is taking place
+ (useful when quitting program) */
+void pm_remove_playlist (Playlist *playlist, gboolean select)
+{
GtkTreeModel *model;
gboolean have_iter = FALSE;
GtkTreeIter i;
@@ -1173,11 +1176,21 @@
g_return_if_fail (playlist);
model = gtk_tree_view_get_model (playlist_treeview);
g_return_if_fail (model);
-
+
ts = gtk_tree_view_get_selection (playlist_treeview);
+
+ if (itdb_playlist_is_mpl (playlist) && current_playlist &&
+ (playlist->itdb == current_playlist->itdb))
+ { /* We are about to remove the entire itdb (playlist is MPL) and
+ * a playlist of this itdb is selected --> clear display
+ * (pm_unselect_playlist probably works as well, but the
+ * unselect won't be done until later (callback)) */
+ st_init (-1, 0);
+ current_playlist = NULL;
+ }
+
if (select && (current_playlist == playlist))
- {
- /* We are about to delete the currently selected
+ { /* We are about to delete the currently selected
playlist. Try to select the next. */
if (gtk_tree_selection_get_selected (ts, NULL, &i))
{
@@ -1197,6 +1210,7 @@
gtk_tree_path_free (path);
}
}
+
/* find the pl and delete it */
gtk_tree_model_foreach (model, pm_delete_playlist_fe, playlist);
/* select our new iter !!! */
@@ -1235,14 +1249,11 @@
}
-
-/* Select specified playlist */
-void pm_select_playlist (Playlist *playlist)
-{
- gboolean pm_select_playlist_fe (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gpointer data)
+ /* former inline function: used by pm_select_playlist */
+ static gboolean pm_select_playlist_fe (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data)
{
Playlist *playlist=NULL;
@@ -1257,6 +1268,10 @@
}
return FALSE;
}
+
+/* Select specified playlist */
+void pm_select_playlist (Playlist *playlist)
+{
GtkTreeModel *model;
g_return_if_fail (playlist_treeview);
@@ -1270,13 +1285,11 @@
}
-/* Unselect specified playlist */
-void pm_unselect_playlist (Playlist *playlist)
-{
- gboolean pm_unselect_playlist_fe (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gpointer data)
+ /* former inline function: used by pm_unselect_playlist */
+ static gboolean pm_unselect_playlist_fe (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data)
{
Playlist *playlist=NULL;
@@ -1291,6 +1304,10 @@
}
return FALSE;
}
+
+/* Unselect specified playlist */
+void pm_unselect_playlist (Playlist *playlist)
+{
GtkTreeModel *model;
g_return_if_fail (playlist_treeview);
Index: misc.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/misc.c,v
retrieving revision 1.212
retrieving revision 1.213
diff -u -d -r1.212 -r1.213
--- misc.c 27 Jun 2006 03:55:00 -0000 1.212
+++ misc.c 27 Jun 2006 16:30:02 -0000 1.213
@@ -1,5 +1,5 @@
/* -*- coding: utf-8; -*-
-| Time-stamp: <2006-06-25 15:20:33 jcs>
+| Time-stamp: <2006-06-28 01:21:08 jcs>
|
| Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
| Part of the gtkpod project.
@@ -143,8 +143,8 @@
Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3
tags\n"),
"\n",
_("\
-James Liggett:\n replacement of old GTK file selection dialogs with new
GTK filechooser dialogs\n"),
- _("\
+James Liggett:\n\
+ replacement of old GTK file selection dialogs with new GTK filechooser
dialogs\n\
refactored user preferences system.\n"),
"\n",
_("\
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2