From: <jc...@us...> - 2008-07-16 23:43:30
|
Revision: 2049 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2049&view=rev Author: jcsjcs Date: 2008-07-16 23:43:38 +0000 (Wed, 16 Jul 2008) Log Message: ----------- * src/display_playlists.c (pm_get_iter_for_playlist): remove assertion (pl!=NULL) that is no longer valid with the introduction of the "Photo" entity. Should take care of the segfaults when removing a playlist listed after the Photo entity. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/display_playlists.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-14 23:06:53 UTC (rev 2048) +++ gtkpod/trunk/ChangeLog 2008-07-16 23:43:38 UTC (rev 2049) @@ -1,3 +1,11 @@ +2008-07-06 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/display_playlists.c (pm_get_iter_for_playlist): remove + assertion (pl!=NULL) that is no longer valid with the + introduction of the "Photo" entity. Should take care of the + segfaults when removing a playlist listed after the Photo + entity. + 2008-07-14 Todd Zullinger <tmzullinger at users.sourceforge.net> * scripts/sync-evolution.sh Modified: gtkpod/trunk/src/display_playlists.c =================================================================== --- gtkpod/trunk/src/display_playlists.c 2008-07-14 23:06:53 UTC (rev 2048) +++ gtkpod/trunk/src/display_playlists.c 2008-07-16 23:43:38 UTC (rev 2049) @@ -1092,7 +1092,7 @@ gtk_tree_model_get (model, &itdb_iter, PM_COLUMN_PLAYLIST, &pl, -1); - g_return_val_if_fail (pl, FALSE); + if (pl == playlist) { *pl_iter = itdb_iter; @@ -1111,7 +1111,7 @@ gtk_tree_model_get (model, pl_iter, PM_COLUMN_PLAYLIST, &pl, -1); - g_return_val_if_fail (pl, FALSE); + if (pl == playlist) { return TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pha...@us...> - 2008-07-18 09:36:22
|
Revision: 2052 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2052&view=rev Author: phantom_sf Date: 2008-07-18 09:36:25 +0000 (Fri, 18 Jul 2008) Log Message: ----------- 2008-07-18 P.G. Richardson <phantom_sf at users.sourceforge.net> * src/file.c (get_track_info_from_file): Commented out test itdb_track_has_thumbnails test on line 1418 as this stops coverart being added to new tracks as they are being imported from directory. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/file.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-18 09:04:25 UTC (rev 2051) +++ gtkpod/trunk/ChangeLog 2008-07-18 09:36:25 UTC (rev 2052) @@ -1,3 +1,10 @@ +2008-07-18 P.G. Richardson <phantom_sf at users.sourceforge.net> + + * src/file.c (get_track_info_from_file): + Commented out test itdb_track_has_thumbnails test on line 1418 + as this stops coverart being added to new tracks as they are being + imported from directory. + 2008-07-06 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/display_playlists.c (pm_get_iter_for_playlist): remove Modified: gtkpod/trunk/src/file.c =================================================================== --- gtkpod/trunk/src/file.c 2008-07-18 09:04:25 UTC (rev 2051) +++ gtkpod/trunk/src/file.c 2008-07-18 09:36:25 UTC (rev 2052) @@ -1415,7 +1415,7 @@ if (prefs_get_int("coverart_file")) { /* APIC data takes precedence */ - if (itdb_track_has_thumbnails (nti)) + /*if (itdb_track_has_thumbnails (nti))*/ add_coverart (nti); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pha...@us...> - 2008-07-18 16:08:49
|
Revision: 2053 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2053&view=rev Author: phantom_sf Date: 2008-07-18 16:08:57 +0000 (Fri, 18 Jul 2008) Log Message: ----------- 2008-07-18 P.G. Richardson <phantom_sf at users.sourceforge.net> * src/file.c (get_track_info_from_file): Relating to previous change. Rather than comment out, have reversed logic as per Michael Tiffany's patch (15/07/2008) Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/file.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-18 09:36:25 UTC (rev 2052) +++ gtkpod/trunk/ChangeLog 2008-07-18 16:08:57 UTC (rev 2053) @@ -1,6 +1,12 @@ 2008-07-18 P.G. Richardson <phantom_sf at users.sourceforge.net> * src/file.c (get_track_info_from_file): + Relating to previous change. Rather than comment out, have reversed + logic as per Michael Tiffany's patch (15/07/2008) + +2008-07-18 P.G. Richardson <phantom_sf at users.sourceforge.net> + + * src/file.c (get_track_info_from_file): Commented out test itdb_track_has_thumbnails test on line 1418 as this stops coverart being added to new tracks as they are being imported from directory. Modified: gtkpod/trunk/src/file.c =================================================================== --- gtkpod/trunk/src/file.c 2008-07-18 09:36:25 UTC (rev 2052) +++ gtkpod/trunk/src/file.c 2008-07-18 16:08:57 UTC (rev 2053) @@ -1415,7 +1415,7 @@ if (prefs_get_int("coverart_file")) { /* APIC data takes precedence */ - /*if (itdb_track_has_thumbnails (nti))*/ + if (! itdb_track_has_thumbnails (nti)) add_coverart (nti); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-07-19 13:53:57
|
Revision: 2056 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2056&view=rev Author: jcsjcs Date: 2008-07-19 13:54:01 +0000 (Sat, 19 Jul 2008) Log Message: ----------- * src/display_playlists.c (pm_add_child): when adding playlists to the end, don't add behind the Photo item. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/display_playlists.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-19 13:14:13 UTC (rev 2055) +++ gtkpod/trunk/ChangeLog 2008-07-19 13:54:01 UTC (rev 2056) @@ -1,3 +1,8 @@ +2008-07-19 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/display_playlists.c (pm_add_child): when adding + playlists to the end, don't add behind the Photo item. + 2008-07-18 P.G. Richardson <phantom_sf at users.sourceforge.net> * src/file.c (get_track_info_from_file): Modified: gtkpod/trunk/src/display_playlists.c =================================================================== --- gtkpod/trunk/src/display_playlists.c 2008-07-19 13:14:13 UTC (rev 2055) +++ gtkpod/trunk/src/display_playlists.c 2008-07-19 13:54:01 UTC (rev 2056) @@ -1237,13 +1237,36 @@ mpli = NULL; } else - { + { /* Handle normal playlist */ /* MPL must be set before calling this function */ g_return_if_fail (mpli); - /* reduce position by one because the MPL is not included in the - tree model's count */ - if (pos != -1) + if (pos == -1) + { /* just adding at the end will add behind the photo + * item. Find out how many playlists there are and add + * at the end. */ + GtkTreeIter pl_iter; + Playlist *pl; + pos = 0; + /* go down one hierarchy and try all other iters */ + if (gtk_tree_model_iter_children (model, &pl_iter, &mpl_iter)) + { + do + { + gtk_tree_model_get (model, &pl_iter, + PM_COLUMN_PLAYLIST, &pl, + -1); + if (pl != NULL) + { + ++pos; + } + } while (pl && gtk_tree_model_iter_next (model, &pl_iter)); + } + } + else + { /* reduce position by one because the MPL is not included in the + tree model's count */ --pos; + } } break; case PM_COLUMN_PHOTOS: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-07-19 14:03:33
|
Revision: 2057 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2057&view=rev Author: jcsjcs Date: 2008-07-19 14:03:36 +0000 (Sat, 19 Jul 2008) Log Message: ----------- * src/confirmation.c (gtkpod_confirmation): initialize <scrolled> variable. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/confirmation.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-19 13:54:01 UTC (rev 2056) +++ gtkpod/trunk/ChangeLog 2008-07-19 14:03:36 UTC (rev 2057) @@ -1,5 +1,10 @@ 2008-07-19 Jorg Schuler <jcsjcs at users.sourceforge.net> + * src/confirmation.c (gtkpod_confirmation): initialize + <scrolled> variable. Thanks to Andrea. + +2008-07-19 Jorg Schuler <jcsjcs at users.sourceforge.net> + * src/display_playlists.c (pm_add_child): when adding playlists to the end, don't add behind the Photo item. Modified: gtkpod/trunk/src/confirmation.c =================================================================== --- gtkpod/trunk/src/confirmation.c 2008-07-19 13:54:01 UTC (rev 2056) +++ gtkpod/trunk/src/confirmation.c 2008-07-19 14:03:36 UTC (rev 2057) @@ -372,7 +372,7 @@ glade_xml_signal_autoconnect (confirm_xml); /* insert ID into hash table */ - cd = g_new (ConfData, 1); + cd = g_new0 (ConfData, 1); cd->window = window; cd->window_xml = confirm_xml; cd->option1_key = g_strdup(option1_key); @@ -426,12 +426,13 @@ gtk_tree_view_append_column (GTK_TREE_VIEW (w), column); - if (text) + if (text) { confirm_append_text (cd->window_xml, text); + cd->scrolled = TRUE; defx = prefs_get_int("size_conf_sw.x"); defy = prefs_get_int("size_conf_sw.y"); - } + } else { /* no text -> hide widget */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-07-19 14:18:00
|
Revision: 2058 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2058&view=rev Author: jcsjcs Date: 2008-07-19 14:18:02 +0000 (Sat, 19 Jul 2008) Log Message: ----------- * src/file_itunesdb.c (data_changed): don't mark non-imported iPods as changed. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/file_itunesdb.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-19 14:03:36 UTC (rev 2057) +++ gtkpod/trunk/ChangeLog 2008-07-19 14:18:02 UTC (rev 2058) @@ -1,5 +1,10 @@ 2008-07-19 Jorg Schuler <jcsjcs at users.sourceforge.net> + * src/file_itunesdb.c (data_changed): don't mark non-imported + iPods as changed. Thanks to Andrea. + +2008-07-19 Jorg Schuler <jcsjcs at users.sourceforge.net> + * src/confirmation.c (gtkpod_confirmation): initialize <scrolled> variable. Thanks to Andrea. Modified: gtkpod/trunk/src/file_itunesdb.c =================================================================== --- gtkpod/trunk/src/file_itunesdb.c 2008-07-19 14:03:36 UTC (rev 2057) +++ gtkpod/trunk/src/file_itunesdb.c 2008-07-19 14:18:02 UTC (rev 2058) @@ -2145,9 +2145,19 @@ eitdb = itdb->userdata; g_return_if_fail (eitdb); - eitdb->data_changed = TRUE; - pm_itdb_name_changed (itdb); - space_data_update (); + if ((itdb->usertype & GP_ITDB_TYPE_IPOD) && !eitdb->itdb_imported) + { /* don't do anything for non-imported iPod + repositories. Marking them as "changed" allows the empty + repository to be saved back to the iPod, overwriting data + there */ + return; + } + else + { + eitdb->data_changed = TRUE; + pm_itdb_name_changed (itdb); + space_data_update (); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-07-20 12:51:01
|
Revision: 2059 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2059&view=rev Author: jcsjcs Date: 2008-07-20 12:49:55 +0000 (Sun, 20 Jul 2008) Log Message: ----------- * src/fileselection.c src/fileselection.h: restructure code. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/fileselection.c gtkpod/trunk/src/fileselection.h Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-19 14:18:02 UTC (rev 2058) +++ gtkpod/trunk/ChangeLog 2008-07-20 12:49:55 UTC (rev 2059) @@ -1,3 +1,8 @@ +2008-07-20 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/fileselection.c + src/fileselection.h: restructure code. Thanks to Andrea. + 2008-07-19 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/file_itunesdb.c (data_changed): don't mark non-imported Modified: gtkpod/trunk/src/fileselection.c =================================================================== --- gtkpod/trunk/src/fileselection.c 2008-07-19 14:18:02 UTC (rev 2058) +++ gtkpod/trunk/src/fileselection.c 2008-07-20 12:49:55 UTC (rev 2059) @@ -54,10 +54,62 @@ #include "fileselection.h" #include "display_coverart.h" -/* OK button */ -static void add_files_ok(GtkFileChooser* filechooser, Playlist *playlist) + +/* Open a modal file selection dialog with multiple selction enabled */ +GSList* fileselection_get_files(const gchar *title) { - GSList* names; /* List of selected names */ + GtkWidget* fc; /* The file chooser dialog */ + gint response; /* The response of the filechooser */ + gchar *last_dir, *new_dir; + GSList * files = NULL; + + fc = gtk_file_chooser_dialog_new (title, + NULL, + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, + GTK_RESPONSE_ACCEPT, + NULL); + + /* allow multiple selection of files */ + gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), TRUE); + + /* set same directory as last time */ + last_dir = prefs_get_string ("last_dir_browsed"); + if (last_dir) + { + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc), + last_dir); + g_free (last_dir); + } + + /* Run the dialog */ + response = gtk_dialog_run (GTK_DIALOG(fc)); + + /* Handle the response */ + switch (response) + { + case GTK_RESPONSE_ACCEPT: + new_dir = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fc)); + prefs_set_string ("last_dir_browsed", new_dir); + g_free (new_dir); + files = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (fc)); + break; + case GTK_RESPONSE_CANCEL: + break; + default: /* Fall through */ + break; + } + gtk_widget_destroy (fc); + + return files; +} + + + +static void fileselection_add_files (GSList* names, Playlist *playlist) +{ GSList* gsl; /* Current node in list */ gboolean result = TRUE; /* Result of file adding */ @@ -66,17 +118,6 @@ block_widgets (); - names = gtk_file_chooser_get_filenames (filechooser); - - if (names) - { - gchar *dirname = gtk_file_chooser_get_current_folder (filechooser); - prefs_set_string ("last_dir_browsed", dirname); - g_free (dirname); - } - - block_widgets (); - /* Get the filenames and add them */ for (gsl=names; gsl; gsl=gsl->next) { @@ -85,13 +126,8 @@ playlist, prefs_get_int ("add_recursively"), NULL, NULL); - g_free (gsl->data); } - g_slist_free (names); - names = NULL; - release_widgets (); - /* clear log of non-updated tracks */ display_non_updated ((void *)-1, NULL); @@ -129,9 +165,8 @@ /* Open a modal file selection dialog for adding individual files */ void create_add_files_dialog (Playlist *pl) { - GtkWidget* fc; /* The file chooser dialog */ - gint response; /* The response of the filechooser */ - gchar *last_dir, *str; + gchar *str; + GSList *names; iTunesDB *itdb; ExtraiTunesDBData *eitdb; Playlist *mpl; @@ -165,66 +200,29 @@ { str = g_strdup_printf (_("Add files to '%s/%s'"), mpl->name, pl->name); } - /* Create the file chooser */ - fc = gtk_file_chooser_dialog_new (str, - NULL, - GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, - GTK_RESPONSE_ACCEPT, - NULL); + + names = fileselection_get_files(str); g_free (str); - /* allow multiple selection of files */ - gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), TRUE); + if (!names) + return; - /* set same directory as last time */ - last_dir = prefs_get_string ("last_dir_browsed"); - if (last_dir) - { - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc), - last_dir); - g_free (last_dir); - } + fileselection_add_files (names, pl); - /* Run the dialog */ - response = gtk_dialog_run (GTK_DIALOG(fc)); - - /* Handle the response */ - switch (response) - { - case GTK_RESPONSE_ACCEPT: - add_files_ok (GTK_FILE_CHOOSER (fc), pl); - break; - case GTK_RESPONSE_CANCEL: - break; - default: /* Fall through */ - break; - } - gtk_widget_destroy (fc); + g_slist_foreach (names, (GFunc)g_free, NULL); + g_slist_free (names); } /* OK Button */ -static void add_playlists_ok (GtkFileChooser* filechooser, iTunesDB *itdb) +static void fileselection_add_playlists (GSList* names, iTunesDB *itdb) { - GSList* names; /* List of selected names */ GSList* gsl; /* Get the names of the playlist(s) and add them */ g_return_if_fail (itdb); - names = gtk_file_chooser_get_filenames(filechooser); - - if (names) - { - gchar *dirname = gtk_file_chooser_get_current_folder (filechooser); - prefs_set_string ("last_dir_browsed", dirname); - g_free (dirname); - } - block_widgets (); for (gsl=names; gsl; gsl=gsl->next) @@ -232,10 +230,7 @@ add_playlist_by_filename (itdb, gsl->data, NULL, -1, NULL, NULL); - g_free (gsl->data); } - g_slist_free (names); - names = NULL; release_widgets (); @@ -271,9 +266,8 @@ /* Open a modal file selection dialog for adding playlist files */ void create_add_playlists_dialog (iTunesDB *itdb) { - GtkWidget* fc ; /* The file chooser dialog */ - gint response; /* The response of the filechooser */ - gchar *last_dir, *str; + gchar *str; + GSList *names; ExtraiTunesDBData *eitdb; Playlist *mpl; @@ -298,49 +292,19 @@ /* Create window title */ str = g_strdup_printf (_("Add playlist files to '%s'"), mpl->name); - /* Create the file chooser */ - fc = gtk_file_chooser_dialog_new (str, - NULL, - GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, - GTK_RESPONSE_ACCEPT, - NULL); + names = fileselection_get_files(str); g_free (str); - - /* allow multiple selection of files */ - gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), TRUE); - /* set same directory as last time */ - last_dir = prefs_get_string ("last_dir_browsed"); - if (last_dir) - { - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc), - last_dir); - g_free (last_dir); - } + if (!names) + return; - /* Run the dialog */ - response = gtk_dialog_run (GTK_DIALOG(fc)); - - /* Handle the response */ - switch (response) - { - case GTK_RESPONSE_ACCEPT: - add_playlists_ok(GTK_FILE_CHOOSER (fc), itdb); - break; - case GTK_RESPONSE_CANCEL: - break; - default: /* Fall through */ - break; - } - gtk_widget_destroy(fc); + fileselection_add_playlists (names, itdb); + + g_slist_foreach (names, (GFunc)g_free, NULL); + g_slist_free (names); } - - /* * Add Cover Art */ @@ -424,6 +388,7 @@ GtkWidget* fc; /* The file chooser dialog */ gint response; /* The response of the filechooser */ gchar *new_file = NULL; /* The chosen file */ + gchar *new_dir; /* The new dir to remember */ g_return_val_if_fail (title, NULL); @@ -463,6 +428,9 @@ switch (response) { case GTK_RESPONSE_ACCEPT: + new_dir = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fc)); + prefs_set_string ("last_dir_browsed", new_dir); + g_free (new_dir); new_file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fc)); break; case GTK_RESPONSE_CANCEL: Modified: gtkpod/trunk/src/fileselection.h =================================================================== --- gtkpod/trunk/src/fileselection.h 2008-07-19 14:18:02 UTC (rev 2058) +++ gtkpod/trunk/src/fileselection.h 2008-07-20 12:49:55 UTC (rev 2059) @@ -51,6 +51,7 @@ const gchar *fallback, const gchar *title, const gchar *additional_text); +GSList* fileselection_get_files(const gchar *title); /* dirbrowser */ void dirbrowser_create (Playlist *pl); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pha...@us...> - 2008-07-20 16:57:08
|
Revision: 2061 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2061&view=rev Author: phantom_sf Date: 2008-07-20 16:57:17 +0000 (Sun, 20 Jul 2008) Log Message: ----------- 2008-07-20 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display_photo.c: Patch to stop photo action signals being added to actions multiple times. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/display_photo.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-20 14:43:19 UTC (rev 2060) +++ gtkpod/trunk/ChangeLog 2008-07-20 16:57:17 UTC (rev 2061) @@ -1,3 +1,9 @@ +2008-07-20 Paul Richardson <phantom_sf at users.sourceforge.net> + + * src/display_photo.c: + Patch to stop photo action signals being added to actions + multiple times. Thanks to Andrea. + 2008-07-20 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/fileselection.c Modified: gtkpod/trunk/src/display_photo.c =================================================================== --- gtkpod/trunk/src/display_photo.c 2008-07-20 14:43:19 UTC (rev 2060) +++ gtkpod/trunk/src/display_photo.c 2008-07-20 16:57:17 UTC (rev 2061) @@ -301,26 +301,26 @@ gtk_container_remove (GTK_CONTAINER (photowin), photo_viewport); /* we don't need this any more */ gtk_widget_destroy (photowin); + + /* Bring the menus to life */ + g_signal_connect (G_OBJECT(photo_add_album_menuItem), "activate", G_CALLBACK(on_photodb_add_album_menuItem_activate), + NULL); + g_signal_connect (G_OBJECT(photo_add_image_menuItem), "activate", G_CALLBACK(on_photodb_add_image_menuItem_activate), + NULL); + g_signal_connect (G_OBJECT(photo_add_image_dir_menuItem), "activate", G_CALLBACK(on_photodb_add_image_dir_menuItem_activate), + NULL); + g_signal_connect (G_OBJECT(photo_remove_album_menuItem), "activate", G_CALLBACK(on_photodb_remove_album_menuItem_activate), + NULL); + g_signal_connect (G_OBJECT(photo_remove_image_menuItem), "activate", G_CALLBACK(on_photodb_remove_image_menuItem_activate), + NULL); + g_signal_connect (G_OBJECT(photo_view_full_size_menuItem), "activate", G_CALLBACK(on_photodb_view_full_size_menuItem_activate), + NULL); + g_signal_connect (G_OBJECT(photo_rename_album_menuItem), "activate", G_CALLBACK(on_photodb_rename_album_menuItem_activate), + NULL); } if (gtk_widget_get_parent (photo_viewport) == NULL) gtk_container_add (GTK_CONTAINER (main_vbox), photo_viewport); - - /* Bring the menus to life */ - g_signal_connect (G_OBJECT(photo_add_album_menuItem), "activate", G_CALLBACK(on_photodb_add_album_menuItem_activate), - NULL); - g_signal_connect (G_OBJECT(photo_add_image_menuItem), "activate", G_CALLBACK(on_photodb_add_image_menuItem_activate), - NULL); - g_signal_connect (G_OBJECT(photo_add_image_dir_menuItem), "activate", G_CALLBACK(on_photodb_add_image_dir_menuItem_activate), - NULL); - g_signal_connect (G_OBJECT(photo_remove_album_menuItem), "activate", G_CALLBACK(on_photodb_remove_album_menuItem_activate), - NULL); - g_signal_connect (G_OBJECT(photo_remove_image_menuItem), "activate", G_CALLBACK(on_photodb_remove_image_menuItem_activate), - NULL); - g_signal_connect (G_OBJECT(photo_view_full_size_menuItem), "activate", G_CALLBACK(on_photodb_view_full_size_menuItem_activate), - NULL); - g_signal_connect (G_OBJECT(photo_rename_album_menuItem), "activate", G_CALLBACK(on_photodb_rename_album_menuItem_activate), - NULL); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-07-21 11:38:23
|
Revision: 2062 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2062&view=rev Author: jcsjcs Date: 2008-07-21 11:38:25 +0000 (Mon, 21 Jul 2008) Log Message: ----------- * src/misc_confirm (on_gtkpod_delete_event): return TRUE to prevent other handlers from being called. (Tons of error messages otherwise.) Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/misc_confirm.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-07-20 16:57:17 UTC (rev 2061) +++ gtkpod/trunk/ChangeLog 2008-07-21 11:38:25 UTC (rev 2062) @@ -1,3 +1,9 @@ +2008-07-21 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/misc_confirm (on_gtkpod_delete_event): return TRUE to + prevent other handlers from being called. (Tons of error + messages otherwise.) + 2008-07-20 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display_photo.c: Modified: gtkpod/trunk/src/misc_confirm.c =================================================================== --- gtkpod/trunk/src/misc_confirm.c 2008-07-20 16:57:17 UTC (rev 2061) +++ gtkpod/trunk/src/misc_confirm.c 2008-07-21 11:38:25 UTC (rev 2062) @@ -901,7 +901,9 @@ if (ok_to_close_gtkpod ()) { gtkpod_shutdown (); - return FALSE; + /* returning FALSE to continue calling other handlers + causes tons of errors. */ + return TRUE; } } return TRUE; /* don't quit -- would cause numerous error messages */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-02 10:50:01
|
Revision: 2079 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2079&view=rev Author: jcsjcs Date: 2008-08-02 10:50:09 +0000 (Sat, 02 Aug 2008) Log Message: ----------- * src/file_itunesdb (gp_import_itdb): fix memory leak. Thanks to Andrea. * src/prefs.c (prefs_get_cfgdir): fix possible memory leak. Thanks to Andrea. * src/prefs.c (temp_prefs_load): fix memory leaks. Thanks to Andrea. * src/misc.c (load_ipod_index_prefs): fix memory leaks. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/file_itunesdb.c gtkpod/trunk/src/misc.c gtkpod/trunk/src/prefs.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-02 08:20:34 UTC (rev 2078) +++ gtkpod/trunk/ChangeLog 2008-08-02 10:50:09 UTC (rev 2079) @@ -1,3 +1,17 @@ +2008-0-02 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/file_itunesdb (gp_import_itdb): fix memory leak. Thanks to + Andrea. + + * src/prefs.c (prefs_get_cfgdir): fix possible memory leak. Thanks + to Andrea. + + * src/prefs.c (temp_prefs_load): fix memory leaks. Thanks to + Andrea. + + * src/misc.c (load_ipod_index_prefs): fix memory leaks. Thanks to + Andrea. + 2008-07-21 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/misc_confirm (on_gtkpod_delete_event): return TRUE to Modified: gtkpod/trunk/src/file_itunesdb.c =================================================================== --- gtkpod/trunk/src/file_itunesdb.c 2008-08-02 08:20:34 UTC (rev 2078) +++ gtkpod/trunk/src/file_itunesdb.c 2008-08-02 10:50:09 UTC (rev 2079) @@ -413,7 +413,7 @@ const gchar *mp, const gchar *name_off, const gchar *name_loc) { - gchar *cfgdir = prefs_get_cfgdir (); + gchar *cfgdir; GList *gl; Playlist *pod_pl; ExtraiTunesDBData *eitdb; @@ -426,6 +426,8 @@ g_return_val_if_fail (!(type & GP_ITDB_TYPE_LOCAL) || name_loc, NULL); g_return_val_if_fail (!(type & GP_ITDB_TYPE_IPOD) || (mp && name_off), NULL); + + cfgdir = prefs_get_cfgdir (); g_return_val_if_fail (cfgdir, NULL); if (old_itdb) @@ -502,7 +504,6 @@ } g_free (name_ext); g_free (name_db); - g_free (cfgdir); } else { /* GP_ITDB_TYPE_IPOD _and_ iPod is connected */ @@ -557,6 +558,7 @@ g_free (name_db); g_free (itunes_dir); } + g_free (cfgdir); if (!itdb) { @@ -1972,7 +1974,7 @@ } } } - if (success && cfgdir) + if (success) { /* copy to cfgdir */ GError *error = NULL; if (!itdb_cp (itdb->filename, eitdb->offline_filename, &error)) Modified: gtkpod/trunk/src/misc.c =================================================================== --- gtkpod/trunk/src/misc.c 2008-08-02 08:20:34 UTC (rev 2078) +++ gtkpod/trunk/src/misc.c 2008-08-02 10:50:09 UTC (rev 2079) @@ -1690,12 +1690,14 @@ GError *error = NULL; gchar *path = g_build_filename (dir, "gtkpod.prefs", NULL); temp_prefs = temp_prefs_load (path, &error); + g_free (path); if (temp_prefs) { gchar *subkey; subkey = get_itdb_prefs_key (index, ""); /* rename 'itdb_*' to 'itdb_<index>_*' */ temp_prefs_rename_subkey (temp_prefs, "itdb_", subkey); + g_free (subkey); /* merge with real prefs */ temp_prefs_apply (temp_prefs); /* destroy temp prefs */ Modified: gtkpod/trunk/src/prefs.c =================================================================== --- gtkpod/trunk/src/prefs.c 2008-08-02 08:20:34 UTC (rev 2078) +++ gtkpod/trunk/src/prefs.c 2008-08-02 10:50:09 UTC (rev 2079) @@ -567,16 +567,17 @@ { if ((g_mkdir(folder, 0777)) == -1) { - printf(_("Couldn't create ~/.gtkpod\n")); + printf(_("Couldn't create '%s'\n"), folder); + g_free (folder); return NULL; } } - return folder; } /* get @key and @value from a string like "key=value" */ +/* you must g_free (*key) and (*value) after use */ static gboolean read_prefs_get_key_value (const gchar *buf, gchar **key, gchar **value) { @@ -790,7 +791,7 @@ do { - gchar *line; + gchar *line = NULL; status = g_io_channel_read_line (gio, &line, NULL, NULL, error); if (status == G_IO_STATUS_NORMAL) @@ -799,9 +800,11 @@ if (read_prefs_get_key_value (line, &key, &value)) { temp_prefs_set_string (temp_prefs, key, value); + g_free (key); + g_free (value); } - g_free (line); } + g_free (line); } while (status == G_IO_STATUS_NORMAL); g_io_channel_unref (gio); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-02 11:10:27
|
Revision: 2080 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2080&view=rev Author: jcsjcs Date: 2008-08-02 11:10:36 +0000 (Sat, 02 Aug 2008) Log Message: ----------- * src/display_itdb.c (gp_itdb_extra_destroy): fix memory leaks. Thanks to Andrea. * src/stock_icons.c (register_stock_icon): fix memory leak. Thanks to Andrea. * src/display_photo.c (gphoto_album_selection_changed): fix memory leak. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/display_itdb.c gtkpod/trunk/src/display_photo.c gtkpod/trunk/src/stock_icons.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-02 10:50:09 UTC (rev 2079) +++ gtkpod/trunk/ChangeLog 2008-08-02 11:10:36 UTC (rev 2080) @@ -12,6 +12,15 @@ * src/misc.c (load_ipod_index_prefs): fix memory leaks. Thanks to Andrea. + * src/display_itdb.c (gp_itdb_extra_destroy): fix memory + leaks. Thanks to Andrea. + + * src/stock_icons.c (register_stock_icon): fix memory leak. Thanks + to Andrea. + + * src/display_photo.c (gphoto_album_selection_changed): fix memory + leak. Thanks to Andrea. + 2008-07-21 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/misc_confirm (on_gtkpod_delete_event): return TRUE to Modified: gtkpod/trunk/src/display_itdb.c =================================================================== --- gtkpod/trunk/src/display_itdb.c 2008-08-02 10:50:09 UTC (rev 2079) +++ gtkpod/trunk/src/display_itdb.c 2008-08-02 11:10:36 UTC (rev 2080) @@ -65,6 +65,8 @@ { sha1_free_eitdb (eitdb); gp_itdb_pc_path_hash_destroy (eitdb); + g_free (eitdb->offline_filename); + itdb_photodb_free (eitdb->photodb); g_free (eitdb); } } Modified: gtkpod/trunk/src/display_photo.c =================================================================== --- gtkpod/trunk/src/display_photo.c 2008-08-02 10:50:09 UTC (rev 2079) +++ gtkpod/trunk/src/display_photo.c 2008-08-02 11:10:36 UTC (rev 2080) @@ -584,6 +584,10 @@ gtk_widget_set_sensitive (GTK_WIDGET(photo_remove_album_menuItem), TRUE); selected_album = itdb_photodb_photoalbum_by_name (photodb, album_name); + + g_free (album_name); + album_name = NULL; + if (selected_album->album_type != 0x01) { /* Only allow renaming of album if not the Photo Library */ Modified: gtkpod/trunk/src/stock_icons.c =================================================================== --- gtkpod/trunk/src/stock_icons.c 2008-08-02 10:50:09 UTC (rev 2079) +++ gtkpod/trunk/src/stock_icons.c 2008-08-02 11:10:36 UTC (rev 2080) @@ -40,7 +40,8 @@ gtk_icon_source_set_icon_name (source, name); gtk_icon_set_add_source (pl_iconset, source); - + gtk_icon_source_free (source); /* _add_source() copies source */ + GtkIconFactory *factory = gtk_icon_factory_new (); gtk_icon_factory_add (factory, stockid, pl_iconset); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-02 11:49:25
|
Revision: 2082 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2082&view=rev Author: jcsjcs Date: 2008-08-02 11:49:35 +0000 (Sat, 02 Aug 2008) Log Message: ----------- * src/display_itdb.c (gp_track_extra_destroy): fix memory leaks. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/display_itdb.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-02 11:16:33 UTC (rev 2081) +++ gtkpod/trunk/ChangeLog 2008-08-02 11:49:35 UTC (rev 2082) @@ -21,6 +21,8 @@ * src/display_photo.c (gphoto_album_selection_changed): fix memory leak. Thanks to Andrea. + * src/display_itdb.c (gp_track_extra_destroy): fix memory leaks. + 2008-07-21 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/misc_confirm (on_gtkpod_delete_event): return TRUE to Modified: gtkpod/trunk/src/display_itdb.c =================================================================== --- gtkpod/trunk/src/display_itdb.c 2008-08-02 11:16:33 UTC (rev 2081) +++ gtkpod/trunk/src/display_itdb.c 2008-08-02 11:49:35 UTC (rev 2082) @@ -107,7 +107,11 @@ if (etrack) { g_free (etrack->year_str); + g_free (etrack->pc_path_locale); g_free (etrack->pc_path_utf8); + g_free (etrack->converted_file); + g_free (etrack->thumb_path_locale); + g_free (etrack->thumb_path_utf8); g_free (etrack->hostname); g_free (etrack->sha1_hash); g_free (etrack->charset); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-03 02:58:51
|
Revision: 2084 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2084&view=rev Author: jcsjcs Date: 2008-08-03 02:59:01 +0000 (Sun, 03 Aug 2008) Log Message: ----------- * src/display_itdb.c (gp_replace_itdb): fix memory leak. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/display_itdb.c gtkpod/trunk/src/display_playlists.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-03 02:55:51 UTC (rev 2083) +++ gtkpod/trunk/ChangeLog 2008-08-03 02:59:01 UTC (rev 2084) @@ -1,6 +1,11 @@ +2008-0-03 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/display_itdb.c (gp_replace_itdb): fix memory leak. Thanks to + Andrea. + 2008-0-02 Jorg Schuler <jcsjcs at users.sourceforge.net> - * src/file_itunesdb (gp_import_itdb): fix memory leak. Thanks to + * src/file_itunesdb.c (gp_import_itdb): fix memory leak. Thanks to Andrea. * src/prefs.c (prefs_get_cfgdir): fix possible memory leak. Thanks Modified: gtkpod/trunk/src/display_itdb.c =================================================================== --- gtkpod/trunk/src/display_itdb.c 2008-08-03 02:55:51 UTC (rev 2083) +++ gtkpod/trunk/src/display_itdb.c 2008-08-03 02:59:01 UTC (rev 2084) @@ -515,6 +515,9 @@ /* Set prefs system with name of MPL */ mpl = itdb_playlist_mpl (new_itdb); set_itdb_prefs_string (new_itdb, "name", mpl->name); + + /* Clean up */ + g_free (old_pl_name); } Modified: gtkpod/trunk/src/display_playlists.c =================================================================== --- gtkpod/trunk/src/display_playlists.c 2008-08-03 02:55:51 UTC (rev 2083) +++ gtkpod/trunk/src/display_playlists.c 2008-08-03 02:59:01 UTC (rev 2084) @@ -2351,6 +2351,7 @@ * an iPod */ eitdb = pl->itdb->userdata; g_return_val_if_fail (eitdb, FALSE); + block_widgets (); if (!eitdb->itdb_imported) { gp_load_ipod (pl->itdb); @@ -2359,6 +2360,7 @@ { gp_eject_ipod (pl->itdb); } + release_widgets (); return TRUE; } if (pl->itdb->usertype & GP_ITDB_TYPE_LOCAL) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-04 13:12:18
|
Revision: 2087 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2087&view=rev Author: jcsjcs Date: 2008-08-04 13:12:23 +0000 (Mon, 04 Aug 2008) Log Message: ----------- * src/sort_window.c: fix bug that selected sort column (for track view) was displayed incorrectly. Make handling of "no sorting" more intuitive. * data/gtkpod.glade: small bugfix (radio button group for track display sort order was not set up correctly) Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/data/gtkpod.glade gtkpod/trunk/src/sort_window.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-03 11:48:11 UTC (rev 2086) +++ gtkpod/trunk/ChangeLog 2008-08-04 13:12:23 UTC (rev 2087) @@ -1,12 +1,21 @@ -2008-0-03 Jorg Schuler <jcsjcs at users.sourceforge.net> +2008-08-04 Jorg Schuler <jcsjcs at users.sourceforge.net> + * src/sort_window.c: fix bug that selected sort column (for track + view) was displayed incorrectly. Make handling of "no sorting" + more intuitive. + + * data/gtkpod.glade: small bugfix (radio button group for track + display sort order was not set up correctly) + +2008-08-03 Jorg Schuler <jcsjcs at users.sourceforge.net> + * src/display_itdb.c (gp_replace_itdb): fix memory leak. Thanks to Andrea. * src/display_playlists.c (pm_button_press): block widgets during eject. Thanks to Andrea for spotting this potential crash site. -2008-0-02 Jorg Schuler <jcsjcs at users.sourceforge.net> +2008-08-02 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/file_itunesdb.c (gp_import_itdb): fix memory leak. Thanks to Andrea. Modified: gtkpod/trunk/data/gtkpod.glade =================================================================== --- gtkpod/trunk/data/gtkpod.glade 2008-08-03 11:48:11 UTC (rev 2086) +++ gtkpod/trunk/data/gtkpod.glade 2008-08-04 13:12:23 UTC (rev 2087) @@ -2696,7 +2696,7 @@ <property name="can_focus">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> - <property name="group">st_ascend</property> + <property name="group">tm_ascend</property> <signal name="toggled" handler="on_tm_none_toggled"/> <child> <widget class="GtkImage" id="image2015"> @@ -2730,7 +2730,7 @@ <property name="can_focus">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> - <property name="group">st_ascend</property> + <property name="group">tm_ascend</property> <signal name="toggled" handler="on_tm_descend_toggled"/> <child> <widget class="GtkImage" id="image2014"> Modified: gtkpod/trunk/src/sort_window.c =================================================================== --- gtkpod/trunk/src/sort_window.c 2008-08-03 11:48:11 UTC (rev 2086) +++ gtkpod/trunk/src/sort_window.c 2008-08-04 13:12:23 UTC (rev 2087) @@ -157,7 +157,6 @@ } else { - GList *collist = NULL; GList *sort_ign_strings; GList *current; /* current sort ignore item */ GtkWidget *w; @@ -167,6 +166,7 @@ GtkTextIter ti; gchar *str; GtkTooltips *tooltips; + gint *tm_listed_order, tm_list_pos; sort_temp_prefs = temp_prefs_create(); sort_temp_lists = temp_lists_create(); @@ -226,31 +226,46 @@ /* create the list in the order of the columns displayed */ tm_store_col_order (); + /* Here we store the order of TM_Items in the + * GtkComboBox */ + tm_listed_order = g_new (gint, TM_NUM_COLUMNS); + tm_list_pos = 1; + w = gtkpod_xml_get_widget (sort_window_xml, "sort_combo"); gtk_combo_box_remove_text (GTK_COMBO_BOX (w), 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (w), _("No sorting")); + for (i = 0; i < TM_NUM_COLUMNS; ++i) { /* first the visible columns */ TM_item col = prefs_get_int_index("col_order", i); if (col != -1) { if (prefs_get_int_index("col_visible", col)) + { gtk_combo_box_append_text (GTK_COMBO_BOX (w), gettext (get_tm_string (col))); + tm_listed_order[col] = tm_list_pos; + ++tm_list_pos; + } } } for (i=0; i<TM_NUM_COLUMNS; ++i) - { /* first the visible columns */ + { /* now the hidden colums */ TM_item col = prefs_get_int_index("col_order", i); if (col != -1) { if (!prefs_get_int_index("col_visible", col)) + { gtk_combo_box_append_text (GTK_COMBO_BOX (w), gettext (get_tm_string (col))); + tm_listed_order[col] = tm_list_pos; + ++tm_list_pos; + } } } - g_list_free (collist); - collist = NULL; + /* associate tm_listed_order with sort_window */ + g_object_set_data (G_OBJECT (sort_window), "tm_listed_order", tm_listed_order); tooltips = gtk_tooltips_new (); gtk_tooltips_set_tip (tooltips, w, _("You can also use the table headers, but this allows you to sort according to a column that is not displayed."), NULL); @@ -272,6 +287,9 @@ { /* gchar *str; */ GtkWidget *w = NULL; + gint *tm_listed_order; + gint sortorder; + TM_item sortcol; switch (prefs_get_int("pm_sort")) { @@ -334,7 +352,18 @@ w = gtkpod_xml_get_widget (sort_window_xml, "sort_combo"); gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (w)->entry), str); */ w = gtkpod_xml_get_widget (sort_window_xml, "sort_combo"); - gtk_combo_box_set_active(GTK_COMBO_BOX(w), prefs_get_int("tm_sortcol")); + tm_listed_order = g_object_get_data (G_OBJECT (sort_window), "tm_listed_order"); + g_return_if_fail (tm_listed_order); + sortcol = prefs_get_int ("tm_sortcol"); + sortorder = prefs_get_int ("tm_sort"); + if ((sortcol >= 0) && (sortcol < TM_NUM_COLUMNS) && (sortorder != SORT_NONE)) + { + gtk_combo_box_set_active (GTK_COMBO_BOX(w), tm_listed_order[sortcol]); + } + else + { + gtk_combo_box_set_active (GTK_COMBO_BOX(w), 0); + } } } @@ -384,25 +413,38 @@ /* get the sort_column selected in the combo */ static TM_item sort_window_get_sort_col (void) { - const gchar *str; GtkWidget *w; - gint i = -1; + TM_item sortcol; + gint item; + gint *tm_listed_order; + g_return_val_if_fail (sort_window, -1); + tm_listed_order = g_object_get_data (G_OBJECT (sort_window), "tm_listed_order"); + w = gtkpod_xml_get_widget (sort_window_xml, "sort_combo"); - str = gtk_combo_box_get_active_text (GTK_COMBO_BOX (w)); - /* Check which string is selected in the combo */ - if (str) - for (i=0; get_tm_string (i); ++i) - if (strcmp (gettext (get_tm_string (i)), str) == 0) break; - if ((i<0) || (i>= TM_NUM_COLUMNS)) + item = gtk_combo_box_get_active (GTK_COMBO_BOX (w)); + + if ((item<=0) || (item >TM_NUM_COLUMNS)) + { /* either an error or no entry is active or "No sorting" is + selected (0). In all these cases we return -1 ("No + sorting") */ + sortcol = -1; + } + else { - fprintf (stderr, - "Programming error: cal_get_category () -- item not found.\n"); - /* set to something reasonable at least */ - i = TM_COLUMN_TITLE; + gint i; + sortcol = -1; + for (i=0; i<TM_NUM_COLUMNS; ++i) + { + if (tm_listed_order[i] == item) + { + sortcol = i; + break; + } + } } - return i; + return sortcol; } @@ -415,26 +457,62 @@ sortcol_old = prefs_get_int("tm_sortcol"); sortcol_new = sort_window_get_sort_col(); - prefs_set_int("tm_sortcol", sortcol_new); + if (sortcol_new != -1) + { + prefs_set_int ("tm_sortcol", sortcol_new); + if (prefs_get_int ("tm_sort") == SORT_NONE) + { + if (temp_prefs_get_int_value (sort_temp_prefs, "tm_sort", &val)) + { + prefs_set_int ("tm_sort", val); + } + else + { + prefs_set_int ("tm_sort", GTK_SORT_ASCENDING); + } + } + } + else + { + if (prefs_get_int ("tm_sort") == SORT_NONE) + { /* no change */ + sortcol_new = sortcol_old; + } + else + { + prefs_set_int ("tm_sort", SORT_NONE); + } + } /* update compare string keys */ compare_string_fuzzy_generate_keys (); /* if sort type has changed, initialize display */ if (temp_prefs_get_int_value(sort_temp_prefs, "pm_sort", &val)) + { pm_sort (val); + temp_prefs_remove_key (sort_temp_prefs, "pm_sort"); + } if (temp_prefs_get_int_value(sort_temp_prefs, "st_sort", &val)) + { st_sort (val); + temp_prefs_remove_key (sort_temp_prefs, "st_sort"); + } if (temp_prefs_get_int_value(sort_temp_prefs, "tm_sort", NULL) || (sortcol_old != sortcol_new)) { tm_sort_counter (-1); tm_sort (prefs_get_int("tm_sortcol"), prefs_get_int("tm_sort")); + temp_prefs_remove_key (sort_temp_prefs, "tm_sort"); } /* if auto sort was changed to TRUE, store order */ if (!temp_prefs_get_int(sort_temp_prefs, "tm_autostore")) + { tm_rows_reordered (); + temp_prefs_remove_key (sort_temp_prefs, "tm_autostore"); + } + sort_window_update (); } @@ -599,7 +677,13 @@ /* close the window */ if(sort_window) + { + gint *tm_listed_order; + tm_listed_order = g_object_get_data (G_OBJECT (sort_window), "tm_listed_order"); + g_warn_if_fail (tm_listed_order); + g_free (tm_listed_order); gtk_widget_destroy(sort_window); + } sort_window = NULL; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pha...@us...> - 2008-08-16 14:28:56
|
Revision: 2097 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2097&view=rev Author: phantom_sf Date: 2008-08-16 14:29:05 +0000 (Sat, 16 Aug 2008) Log Message: ----------- 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Tomas Carnecky for the patch. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/display.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-09 17:00:34 UTC (rev 2096) +++ gtkpod/trunk/ChangeLog 2008-08-16 14:29:05 UTC (rev 2097) @@ -1,3 +1,8 @@ +2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> + + * src/display.c: memory leak fix in display_image_dialog. Thanks to + Tomas Carnecky for the patch. + 2008-08-04 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/sort_window.c: fix bug that selected sort column (for track Modified: gtkpod/trunk/src/display.c =================================================================== --- gtkpod/trunk/src/display.c 2008-08-09 17:00:34 UTC (rev 2096) +++ gtkpod/trunk/src/display.c 2008-08-16 14:29:05 UTC (rev 2097) @@ -562,9 +562,7 @@ gint pixwidth = gdk_pixbuf_get_width (image); /* Set the resolution in the label */ - gchar *resvalues = (gchar *) g_malloc (sizeof(gint) + (sizeof(gchar) * 3) + sizeof(gint)); - g_sprintf (resvalues, "%d x %d", pixwidth, pixheight); - text = g_markup_printf_escaped (_("<b>Image Dimensions: %s</b>"), resvalues); + text = g_markup_printf_escaped (_("<b>Image Dimensions: %d x %d</b>"), pixwidth, pixheight); gtk_label_set_markup (GTK_LABEL (res_label), text); g_free (text); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-17 02:12:20
|
Revision: 2098 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2098&view=rev Author: jcsjcs Date: 2008-08-17 02:12:30 +0000 (Sun, 17 Aug 2008) Log Message: ----------- * src/file_itunesdb.c (read_extended_info): fixed valgrind warning. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/file_itunesdb.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-16 14:29:05 UTC (rev 2097) +++ gtkpod/trunk/ChangeLog 2008-08-17 02:12:30 UTC (rev 2098) @@ -1,3 +1,8 @@ +2008-08-04 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/file_itunesdb.c (read_extended_info): fixed valgrind + warning. Thanks to Andrea. + 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Modified: gtkpod/trunk/src/file_itunesdb.c =================================================================== --- gtkpod/trunk/src/file_itunesdb.c 2008-08-16 14:29:05 UTC (rev 2097) +++ gtkpod/trunk/src/file_itunesdb.c 2008-08-17 02:12:30 UTC (rev 2098) @@ -232,8 +232,15 @@ struct track_extended_info *sei = NULL; FILE *fp; + g_return_val_if_fail (itunes, FALSE); + if (!name) + { /* name can be NULL if it does not exist on the iPod */ + return FALSE; + } + fp = fopen (name, "r"); + if (!fp) { gtkpod_warning (_("Could not open \"%s\" for reading extended info.\n"), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-17 02:13:36
|
Revision: 2100 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2100&view=rev Author: jcsjcs Date: 2008-08-17 02:13:46 +0000 (Sun, 17 Aug 2008) Log Message: ----------- * src/mp3file.c (mp3_read_lame_tag, mp3_get_track_gapless, mp3_get_track_lame_replaygain, set_uncommon_tag): fixed possible compiler warnings. (mp3_read_lame_tag, mp3_read_gapless): fixed memory leaks. Thanks to Andrea. * src/mp3file.[ch]: Added "const" qualifier to filename arguments. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/mp3file.c gtkpod/trunk/src/mp3file.h Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-17 02:12:56 UTC (rev 2099) +++ gtkpod/trunk/ChangeLog 2008-08-17 02:13:46 UTC (rev 2100) @@ -3,6 +3,20 @@ * src/file_itunesdb.c (read_extended_info): fixed valgrind warning. Thanks to Andrea. + * src/repository.c (sync_playlist_mode_automatic_toggled): fixed + memory leak. Thanks to Andrea. + + (repwin_free): fixed memory leak. Thanks to Andrea. + + * src/mp3file.c (mp3_read_lame_tag, mp3_get_track_gapless, + mp3_get_track_lame_replaygain, set_uncommon_tag): fixed possible + compiler warnings. + + (mp3_read_lame_tag, mp3_read_gapless): fixed memory + leaks. Thanks to Andrea. + + * src/mp3file.[ch]: Added "const" qualifier to filename arguments. + 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Modified: gtkpod/trunk/src/mp3file.c =================================================================== --- gtkpod/trunk/src/mp3file.c 2008-08-17 02:12:56 UTC (rev 2099) +++ gtkpod/trunk/src/mp3file.c 2008-08-17 02:13:46 UTC (rev 2100) @@ -1,4 +1,4 @@ -/* Time-stamp: <2008-05-17 12:00:49 jcs> +/* Time-stamp: <2008-08-17 11:00:07 jcs> | | Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net> | Part of the gtkpod project. @@ -220,7 +220,7 @@ } MP3Header; typedef struct { - gchar *filename; + const gchar *filename; FILE *file; off_t datasize; gint header_isvalid; @@ -234,11 +234,11 @@ } MP3Info; /* This is for xmms code */ -static guint get_track_time(gchar *path); +static guint get_track_time(const gchar *path); /* This is for soundcheck code */ -gboolean mp3_read_lame_tag (gchar *path, LameTag *lt); +gboolean mp3_read_lame_tag (const gchar *path, LameTag *lt); /* ------------------------------------------------------------ @@ -992,7 +992,7 @@ return 0; } -static guint get_track_time (gchar *path) +static guint get_track_time (const gchar *path) { guint result = 0; @@ -1572,9 +1572,9 @@ { #if 0 struct id3_frame *frame; + union id3_field *field; frame = id3_tag_findframe (id3tag, id, 0); - union id3_field *field; frame->flags = 0; field = id3_frame_field (frame, 0); if (field) @@ -1595,7 +1595,7 @@ * Write the ID3 tags to the file. * @returns: TRUE on success, else FALSE. */ -gboolean mp3_write_file_info (gchar *filename, Track *track) +gboolean mp3_write_file_info (const gchar *filename, Track *track) { struct id3_tag* id3tag; struct id3_file* id3file; @@ -1912,14 +1912,16 @@ * TODO: Check CRC. */ -gboolean mp3_get_track_lame_replaygain (gchar *path, GainData *gd) +gboolean mp3_get_track_lame_replaygain (const gchar *path, GainData *gd) { + unsigned char ubuf[2]; + int gain_adjust = 0; + LameTag lt; + g_return_val_if_fail (path, FALSE); - LameTag lt; if (!mp3_read_lame_tag (path, <)) goto rg_fail; - int gain_adjust = 0; g_return_val_if_fail (gd, FALSE); @@ -1963,7 +1965,6 @@ version[0], version[1], version[2], version[3], version[4]); */ } - unsigned char ubuf[2]; /* radio gain */ memcpy(ubuf,<.radio_replay_gain,2); read_lame_replaygain (ubuf, gd, gain_adjust); @@ -1988,7 +1989,7 @@ * The function only modifies the gains if they have not previously been set. */ -gboolean mp3_get_track_ape_replaygain(gchar *path, GainData *gd) +gboolean mp3_get_track_ape_replaygain(const gchar *path, GainData *gd) { /* The Ape Tag is located a t the end of the file. Or at least that * seems where it can most likely be found. Either it is at the very end @@ -2167,7 +2168,7 @@ * * Returns TRUE if the soundcheck field could be set. */ -gboolean mp3_read_soundcheck (gchar *path, Track *track) +gboolean mp3_read_soundcheck (const gchar *path, Track *track) { GainData gd; @@ -2226,21 +2227,24 @@ * @path: location of the file * @lt: pointer to structure to be filled */ -gboolean mp3_read_lame_tag (gchar *path, LameTag *lt) +gboolean mp3_read_lame_tag (const gchar *path, LameTag *lt) { + MP3Info *mp3i = NULL; + MP3Header h; + int flags; + int toskip = 0; + FILE *file; unsigned char ubuf[LAME_TAG_SIZE]; int sideinfo; - unsigned char full_info_tag[INFO_TAG_CRC_SIZE]; g_return_val_if_fail (path, FALSE); /* Attempt to open the file */ - FILE *file = fopen (path, "r"); + file = fopen (path, "r"); if (!file) goto lt_fail; - MP3Info *mp3i = NULL; mp3i = g_malloc0 (sizeof (MP3Info)); mp3i->filename = path; mp3i->file = file; @@ -2253,7 +2257,6 @@ goto lt_fail; fseek(mp3i->file, -INFO_TAG_CRC_SIZE, SEEK_CUR); - MP3Header h; if (!get_header (mp3i->file, &h)) goto lt_fail; @@ -2282,9 +2285,7 @@ goto lt_fail; /* Determine the offset of the LAME tag based on contents of the Xing header */ - int flags; fread (&flags, 4, 1, mp3i->file); - int toskip = 0; if (flags | 0x1) { /* frames field is set */ toskip += 4; @@ -2346,11 +2347,13 @@ lt->calculated_info_tag_crc = crc_compute(full_info_tag, INFO_TAG_CRC_SIZE, 0x0000); fclose(file); + g_free (mp3i); return (lt->calculated_info_tag_crc == lt->info_tag_crc); lt_fail: if (file) fclose(file); + g_free (mp3i); return FALSE; } @@ -2368,6 +2371,13 @@ gboolean mp3_get_track_gapless (MP3Info *mp3i, GaplessData *gd) { int i; + int xing_header_offset; + int mysamplesperframe; + int totaldatasize; + int lastframes[8]; + int totalframes; + int finaleight; + int l; g_return_val_if_fail (mp3i, FALSE); g_return_val_if_fail (gd, FALSE); @@ -2375,27 +2385,26 @@ /* use get_first_header() to seek to the first mp3 header */ get_first_header (mp3i, 0); - int xing_header_offset = ftell (mp3i->file); + xing_header_offset = ftell (mp3i->file); get_header(mp3i->file, &(mp3i->header)); - int mysamplesperframe = samplesperframe[mp3i->header.version & 1][3 - mp3i->header.layer]; + mysamplesperframe = samplesperframe[mp3i->header.version & 1][3 - mp3i->header.layer]; /* jump to the end of the frame with the xing header */ if (fseek (mp3i->file, xing_header_offset + frame_length (&(mp3i->header)), SEEK_SET)) goto gp_fail; /* counts bytes from the start of the 1st sync frame */ - int totaldatasize = frame_length (&(mp3i->header)); + totaldatasize = frame_length (&(mp3i->header)); - /* keeps track of the last 8 frame sizes */ - int lastframes[8]; + /* lastframes keeps track of the last 8 frame sizes */ /* counts number of music frames */ - int totalframes = 0; + totalframes = 0; /* quickly parse the file, reading only frame headers */ - int l = 0; + l = 0; while ((l = get_header (mp3i->file, &(mp3i->header))) != 0) { lastframes[totalframes%8] = l; @@ -2406,7 +2415,7 @@ goto gp_fail; } - int finaleight = 0; + finaleight = 0; for (i = 0; i < 8; i++) { finaleight += lastframes[i]; @@ -2451,7 +2460,7 @@ * FALSE otherwise. */ -gboolean mp3_read_gapless (gchar *path, Track *track) { +gboolean mp3_read_gapless (const gchar *path, Track *track) { MP3Info *mp3i=NULL; FILE *file; @@ -2486,6 +2495,7 @@ } else { /* insert non-LAME methods of finding pregap and postgap */ fclose(file); + g_free (mp3i); return FALSE; } @@ -2524,6 +2534,7 @@ } fclose(file); + g_free (mp3i); return TRUE; } return FALSE; @@ -2724,7 +2735,7 @@ /* Return a Track structure with all information read from the mp3 file filled in */ -Track *mp3_get_file_info (gchar *name) +Track *mp3_get_file_info (const gchar *name) { Track *track = NULL; MP3Info *mp3i=NULL; Modified: gtkpod/trunk/src/mp3file.h =================================================================== --- gtkpod/trunk/src/mp3file.h 2008-08-17 02:12:56 UTC (rev 2099) +++ gtkpod/trunk/src/mp3file.h 2008-08-17 02:13:46 UTC (rev 2100) @@ -1,4 +1,4 @@ -/* Time-stamp: <2007-07-14 15:55:29 jcs> +/* Time-stamp: <2008-08-17 10:58:51 jcs> | | Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net> | Part of the gtkpod project. @@ -32,10 +32,10 @@ #include "itdb.h" -gboolean mp3_write_file_info (gchar *filename, Track *track); -Track *mp3_get_file_info (gchar *name); -gboolean mp3_read_soundcheck (gchar *path, Track *track); -gboolean mp3_read_gapless (gchar *path, Track *track); +gboolean mp3_write_file_info (const gchar *filename, Track *track); +Track *mp3_get_file_info (const gchar *name); +gboolean mp3_read_soundcheck (const gchar *path, Track *track); +gboolean mp3_read_gapless (const gchar *path, Track *track); gboolean id3_read_tags (const gchar *name, Track *track); #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-17 02:13:59
|
Revision: 2101 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2101&view=rev Author: jcsjcs Date: 2008-08-17 02:14:07 +0000 (Sun, 17 Aug 2008) Log Message: ----------- * src/file.c (add_coverart): fixed memory leak. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/file.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-17 02:13:46 UTC (rev 2100) +++ gtkpod/trunk/ChangeLog 2008-08-17 02:14:07 UTC (rev 2101) @@ -17,6 +17,8 @@ * src/mp3file.[ch]: Added "const" qualifier to filename arguments. + * src/file.c (add_coverart): fixed memory leak. Thanks to Andrea. + 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Modified: gtkpod/trunk/src/file.c =================================================================== --- gtkpod/trunk/src/file.c 2008-08-17 02:13:46 UTC (rev 2100) +++ gtkpod/trunk/src/file.c 2008-08-17 02:14:07 UTC (rev 2101) @@ -1260,7 +1260,8 @@ } g_strfreev (templates); - g_free(full_template); + g_free (full_template); + g_free (dirname); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-17 02:14:16
|
Revision: 2102 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2102&view=rev Author: jcsjcs Date: 2008-08-17 02:14:27 +0000 (Sun, 17 Aug 2008) Log Message: ----------- * src/details.c (details_get_item): fixed memory leak. Thanks to Andrea. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/details.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-17 02:14:07 UTC (rev 2101) +++ gtkpod/trunk/ChangeLog 2008-08-17 02:14:27 UTC (rev 2102) @@ -19,6 +19,9 @@ * src/file.c (add_coverart): fixed memory leak. Thanks to Andrea. + * src/details.c (details_get_item): fixed memory leak. Thanks to + Andrea. + 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Modified: gtkpod/trunk/src/details.c =================================================================== --- gtkpod/trunk/src/details.c 2008-08-17 02:14:07 UTC (rev 2101) +++ gtkpod/trunk/src/details.c 2008-08-17 02:14:27 UTC (rev 2102) @@ -1131,6 +1131,8 @@ text = gtk_text_buffer_get_text (tb, &start, &end, TRUE); changed = track_set_text (track, text, item); + + g_free (text); } break; case T_COMPILATION: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-17 02:14:39
|
Revision: 2103 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2103&view=rev Author: jcsjcs Date: 2008-08-17 02:14:48 +0000 (Sun, 17 Aug 2008) Log Message: ----------- * src/prefs.c (get_list_from_buffer): fixed memory leaks. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/prefs.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-17 02:14:27 UTC (rev 2102) +++ gtkpod/trunk/ChangeLog 2008-08-17 02:14:48 UTC (rev 2103) @@ -22,6 +22,8 @@ * src/details.c (details_get_item): fixed memory leak. Thanks to Andrea. + * src/prefs.c (get_list_from_buffer): fixed memory leaks. + 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Modified: gtkpod/trunk/src/prefs.c =================================================================== --- gtkpod/trunk/src/prefs.c 2008-08-17 02:14:27 UTC (rev 2102) +++ gtkpod/trunk/src/prefs.c 2008-08-17 02:14:48 UTC (rev 2103) @@ -2347,6 +2347,9 @@ string_iter++; } + + g_free (text_buffer); + g_strfreev (string_array); return list; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-17 02:33:56
|
Revision: 2104 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2104&view=rev Author: jcsjcs Date: 2008-08-17 02:34:06 +0000 (Sun, 17 Aug 2008) Log Message: ----------- * src/prefsdlg.c (on_unsetdeps_checkbox_toggled): fixed memory leak. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/prefsdlg.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-17 02:14:48 UTC (rev 2103) +++ gtkpod/trunk/ChangeLog 2008-08-17 02:34:06 UTC (rev 2104) @@ -24,6 +24,9 @@ * src/prefs.c (get_list_from_buffer): fixed memory leaks. + * src/prefsdlg.c (on_unsetdeps_checkbox_toggled): fixed memory + leak. + 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Modified: gtkpod/trunk/src/prefsdlg.c =================================================================== --- gtkpod/trunk/src/prefsdlg.c 2008-08-17 02:14:48 UTC (rev 2103) +++ gtkpod/trunk/src/prefsdlg.c 2008-08-17 02:34:06 UTC (rev 2104) @@ -723,7 +723,7 @@ if(xml && !gtk_toggle_button_get_active (sender)) { int i; - gchar *deps = (gchar *) g_object_get_data (G_OBJECT(sender), "deps"); + const gchar *deps = (gchar *) g_object_get_data (G_OBJECT(sender), "deps"); gchar **deparray = g_strsplit (deps, ",", 0); for(i = 0; deparray[i]; i++) @@ -731,6 +731,7 @@ GtkWidget *dep = gtkpod_xml_get_widget (xml, deparray[i]); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dep), FALSE); } + g_strfreev (deparray); } /* and then call the default handler */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-17 02:43:06
|
Revision: 2105 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2105&view=rev Author: jcsjcs Date: 2008-08-17 02:43:16 +0000 (Sun, 17 Aug 2008) Log Message: ----------- * src/prefsdlg.c (on_commands_clicked, on_cmd_aacgain_file_set): variable for aacgain was defined as "aacgain_path" instead of "path_aacgain". Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/prefsdlg.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-17 02:34:06 UTC (rev 2104) +++ gtkpod/trunk/ChangeLog 2008-08-17 02:43:16 UTC (rev 2105) @@ -27,6 +27,10 @@ * src/prefsdlg.c (on_unsetdeps_checkbox_toggled): fixed memory leak. + * src/prefsdlg.c (on_commands_clicked, on_cmd_aacgain_file_set): + variable for aacgain was defined as "aacgain_path" instead of + "path_aacgain". + 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Modified: gtkpod/trunk/src/prefsdlg.c =================================================================== --- gtkpod/trunk/src/prefsdlg.c 2008-08-17 02:34:06 UTC (rev 2104) +++ gtkpod/trunk/src/prefsdlg.c 2008-08-17 02:43:16 UTC (rev 2105) @@ -1144,7 +1144,7 @@ g_free (path); } - temp = prefs_get_string ("aacgain_path"); + temp = prefs_get_string ("path_aacgain"); if(temp) { @@ -1199,7 +1199,7 @@ */ G_MODULE_EXPORT void on_cmd_aacgain_file_set (GtkFileChooserButton *sender, gpointer e) { - prefs_set_string ("aacgain_path", + prefs_set_string ("path_aacgain", gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (sender))); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-17 04:59:18
|
Revision: 2106 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2106&view=rev Author: jcsjcs Date: 2008-08-17 04:59:27 +0000 (Sun, 17 Aug 2008) Log Message: ----------- * src/prefsdlg.c data/gtkpod.glade: Fix usability problems in prefs dialog (Music->Commands). * src/file_convert.c data/gtkpod.glade: The widget name "conversion_log" was used twice, but for some reason this didn't cause problems until glade-3 re-wrote the file. Fixed by using different name for the menu item. Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/data/gtkpod.glade gtkpod/trunk/src/file_convert.c gtkpod/trunk/src/prefsdlg.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-17 02:43:16 UTC (rev 2105) +++ gtkpod/trunk/ChangeLog 2008-08-17 04:59:27 UTC (rev 2106) @@ -31,6 +31,16 @@ variable for aacgain was defined as "aacgain_path" instead of "path_aacgain". + * src/prefsdlg.c + data/gtkpod.glade: + Fix usability problems in prefs dialog (Music->Commands). + + * src/file_convert.c + data/gtkpod.glade: + The widget name "conversion_log" was used twice, but for some + reason this didn't cause problems until glade-3 re-wrote the + file. Fixed by using different name for the menu item. + 2008-08-16 Paul Richardson <phantom_sf at users.sourceforge.net> * src/display.c: memory leak fix in display_image_dialog. Thanks to Modified: gtkpod/trunk/data/gtkpod.glade =================================================================== --- gtkpod/trunk/data/gtkpod.glade 2008-08-17 02:43:16 UTC (rev 2105) +++ gtkpod/trunk/data/gtkpod.glade 2008-08-17 04:59:27 UTC (rev 2106) @@ -539,8 +539,8 @@ <widget class="GtkImage" id="menu-item-image34"> <property name="visible">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="icon_size">1</property> <property name="icon_name">playlist</property> - <property name="icon_size">1</property> </widget> </child> </widget> @@ -584,7 +584,7 @@ </child> <child> <widget class="GtkSeparatorMenuItem" id="menuitem2"> - <property name="visible">True</property> + <property name="visible">True</property> </widget> </child> <child> @@ -637,7 +637,7 @@ </child> <child> <widget class="GtkSeparatorMenuItem" id="menuitem3"> - <property name="visible">True</property> + <property name="visible">True</property> </widget> </child> <child> @@ -810,7 +810,7 @@ </widget> </child> <child> - <widget class="GtkCheckMenuItem" id="conversion_log"> + <widget class="GtkCheckMenuItem" id="view_conversion_log"> <property name="visible">True</property> <property name="label" translatable="yes">_Conversion Log</property> <property name="use_underline">True</property> @@ -1712,14 +1712,13 @@ <property name="column_spacing">12</property> <property name="row_spacing">6</property> <child> - <widget class="GtkHBox" id="hbox14"> + <widget class="GtkHBox" id="hbox181"> <property name="visible">True</property> - <property name="spacing">6</property> <child> - <widget class="GtkCheckButton" id="sp_rating0"> + <widget class="GtkCheckButton" id="sp_added_button"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">0</property> + <property name="label" translatable="yes">Added:</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -1729,11 +1728,22 @@ <property name="fill">False</property> </packing> </child> + </widget> + <packing> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox180"> + <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="sp_rating1"> + <widget class="GtkCheckButton" id="sp_modified_button"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">1</property> + <property name="label" translatable="yes">Modified:</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -1741,14 +1751,24 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">1</property> </packing> </child> + </widget> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox179"> + <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="sp_rating2"> + <widget class="GtkCheckButton" id="sp_played_button"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">2</property> + <property name="label" translatable="yes">Played:</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -1756,14 +1776,25 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">2</property> </packing> </child> + </widget> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox178"> + <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="sp_rating3"> + <widget class="GtkCheckButton" id="sp_playcount_button"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">3</property> + <property name="tooltip" translatable="yes">Specify interval</property> + <property name="label" translatable="yes">Playcount:</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -1771,14 +1802,24 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">3</property> </packing> </child> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox177"> + <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="sp_rating4"> + <widget class="GtkCheckButton" id="sp_rating_button"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">4</property> + <property name="label" translatable="yes">Rating:</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -1786,96 +1827,20 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">4</property> </packing> </child> - <child> - <widget class="GtkCheckButton" id="sp_rating5"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">5</property> - <property name="use_underline">True</property> - <property name="response_id">0</property> - <property name="draw_indicator">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">5</property> - </packing> - </child> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox15"> + <widget class="GtkHBox" id="hbox57"> <property name="visible">True</property> - <child> - <widget class="GtkHBox" id="hbox23"> - <property name="visible">True</property> - <child> - <widget class="GtkSpinButton" id="sp_playcount_low"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Select '0' for no lower limit.</property> - <property name="adjustment">0 0 99 1 10 10</property> - <property name="climb_rate">1</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label54"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes"> <= cts <= </property> - <property name="selectable">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <widget class="GtkSpinButton" id="sp_playcount_high"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Select '-1' for no upper limit.</property> - <property name="adjustment">0 -1 99 1 10 10</property> - <property name="climb_rate">1</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkHBox" id="hbox17"> - <property name="visible">True</property> <property name="spacing">6</property> <child> - <widget class="GtkEntry" id="sp_played_entry"> + <widget class="GtkEntry" id="sp_added_entry"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip" translatable="yes">'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when finished.</property> @@ -1883,7 +1848,7 @@ </widget> </child> <child> - <widget class="GtkButton" id="sp_played_cal_button"> + <widget class="GtkButton" id="sp_added_cal_button"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Calendar</property> @@ -1900,8 +1865,8 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> <property name="y_options"></property> </packing> </child> @@ -1941,11 +1906,11 @@ </packing> </child> <child> - <widget class="GtkHBox" id="hbox57"> + <widget class="GtkHBox" id="hbox17"> <property name="visible">True</property> <property name="spacing">6</property> <child> - <widget class="GtkEntry" id="sp_added_entry"> + <widget class="GtkEntry" id="sp_played_entry"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip" translatable="yes">'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when finished.</property> @@ -1953,7 +1918,7 @@ </widget> </child> <child> - <widget class="GtkButton" id="sp_added_cal_button"> + <widget class="GtkButton" id="sp_played_cal_button"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Calendar</property> @@ -1970,43 +1935,78 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox177"> + <widget class="GtkHBox" id="hbox15"> <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="sp_rating_button"> + <widget class="GtkHBox" id="hbox23"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Rating:</property> - <property name="use_underline">True</property> - <property name="response_id">0</property> - <property name="draw_indicator">True</property> + <child> + <widget class="GtkSpinButton" id="sp_playcount_low"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip" translatable="yes">Select '0' for no lower limit.</property> + <property name="adjustment">0 0 99 1 10 10</property> + <property name="climb_rate">1</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label54"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes"> <= cts <= </property> + <property name="selectable">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkSpinButton" id="sp_playcount_high"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip" translatable="yes">Select '-1' for no upper limit.</property> + <property name="adjustment">0 -1 99 1 10 10</property> + <property name="climb_rate">1</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> </child> </widget> <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox178"> + <widget class="GtkHBox" id="hbox14"> <property name="visible">True</property> + <property name="spacing">6</property> <child> - <widget class="GtkCheckButton" id="sp_playcount_button"> + <widget class="GtkCheckButton" id="sp_rating0"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Specify interval</property> - <property name="label" translatable="yes">Playcount:</property> + <property name="label" translatable="yes">0</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -2016,22 +2016,11 @@ <property name="fill">False</property> </packing> </child> - </widget> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkHBox" id="hbox179"> - <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="sp_played_button"> + <widget class="GtkCheckButton" id="sp_rating1"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">Played:</property> + <property name="label" translatable="yes">1</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -2039,24 +2028,14 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> + <property name="position">1</property> </packing> </child> - </widget> - <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkHBox" id="hbox180"> - <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="sp_modified_button"> + <widget class="GtkCheckButton" id="sp_rating2"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">Modified:</property> + <property name="label" translatable="yes">2</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -2064,24 +2043,14 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> + <property name="position">2</property> </packing> </child> - </widget> - <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkHBox" id="hbox181"> - <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="sp_added_button"> + <widget class="GtkCheckButton" id="sp_rating3"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">Added:</property> + <property name="label" translatable="yes">3</property> <property name="use_underline">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> @@ -2089,12 +2058,43 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> + <property name="position">3</property> </packing> </child> + <child> + <widget class="GtkCheckButton" id="sp_rating4"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">4</property> + <property name="use_underline">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">4</property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="sp_rating5"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">5</property> + <property name="use_underline">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">5</property> + </packing> + </child> </widget> <packing> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> @@ -2671,39 +2671,13 @@ <property name="n_rows">9</property> <property name="n_columns">11</property> <child> - <widget class="GtkLabel" id="label431"> - <property name="can_focus">True</property> - <property name="label" translatable="yes">n/a</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="selectable">True</property> - </widget> - <packing> - <property name="left_attach">9</property> - <property name="right_attach">10</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkHBox" id="hbox45"> + <widget class="GtkHBox" id="hbox69"> <property name="visible">True</property> - <property name="homogeneous">True</property> <child> - <widget class="GtkRadioButton" id="tm_none"> + <widget class="GtkLabel" id="label89"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="response_id">0</property> - <property name="draw_indicator">True</property> - <property name="group">tm_ascend</property> - <signal name="toggled" handler="on_tm_none_toggled"/> - <child> - <widget class="GtkImage" id="image2015"> - <property name="visible">True</property> - <property name="stock">gtk-undo</property> - </widget> - </child> + <property name="label" translatable="yes">Tracks</property> </widget> <packing> <property name="expand">False</property> @@ -2712,8 +2686,8 @@ </child> </widget> <packing> - <property name="left_attach">7</property> - <property name="right_attach">8</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="top_attach">7</property> <property name="bottom_attach">8</property> <property name="x_options"></property> @@ -2721,23 +2695,13 @@ </packing> </child> <child> - <widget class="GtkHBox" id="hbox44"> + <widget class="GtkHBox" id="hbox68"> <property name="visible">True</property> - <property name="homogeneous">True</property> <child> - <widget class="GtkRadioButton" id="tm_descend"> + <widget class="GtkLabel" id="label88"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="response_id">0</property> - <property name="draw_indicator">True</property> - <property name="group">tm_ascend</property> - <signal name="toggled" handler="on_tm_descend_toggled"/> - <child> - <widget class="GtkImage" id="image2014"> - <property name="visible">True</property> - <property name="stock">gtk-sort-descending</property> - </widget> - </child> + <property name="label" translatable="yes">Filter tabs</property> </widget> <packing> <property name="expand">False</property> @@ -2746,40 +2710,50 @@ </child> </widget> <packing> - <property name="left_attach">5</property> - <property name="right_attach">6</property> - <property name="top_attach">7</property> - <property name="bottom_attach">8</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkVSeparator" id="vseparator7"> + <widget class="GtkHBox" id="hbox67"> <property name="visible">True</property> + <child> + <widget class="GtkLabel" id="label87"> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Playlists</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </widget> <packing> - <property name="left_attach">4</property> - <property name="right_attach">5</property> - <property name="top_attach">1</property> - <property name="bottom_attach">8</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox43"> + <widget class="GtkHBox" id="hbox34"> <property name="visible">True</property> <property name="homogeneous">True</property> <child> - <widget class="GtkRadioButton" id="tm_ascend"> + <widget class="GtkRadioButton" id="st_ascend"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_tm_ascend_toggled"/> + <signal name="toggled" handler="on_st_ascend_toggled"/> <child> - <widget class="GtkImage" id="image2013"> + <widget class="GtkImage" id="image1931"> <property name="visible">True</property> <property name="stock">gtk-sort-ascending</property> </widget> @@ -2794,41 +2768,29 @@ <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> - <property name="top_attach">7</property> - <property name="bottom_attach">8</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label96"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">n/a</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - </widget> - <packing> - <property name="left_attach">9</property> - <property name="right_attach">10</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> + <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox41"> + <widget class="GtkHBox" id="hbox35"> <property name="visible">True</property> <property name="homogeneous">True</property> <child> - <widget class="GtkCheckButton" id="tm_autostore"> + <widget class="GtkRadioButton" id="st_descend"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Please refer to the notice below.</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_tm_autostore_toggled"/> + <property name="group">st_ascend</property> + <signal name="toggled" handler="on_st_descend_toggled"/> <child> - <placeholder/> + <widget class="GtkImage" id="image1932"> + <property name="visible">True</property> + <property name="stock">gtk-sort-descending</property> + </widget> </child> </widget> <packing> @@ -2838,139 +2800,206 @@ </child> </widget> <packing> - <property name="left_attach">9</property> - <property name="right_attach">10</property> - <property name="top_attach">7</property> - <property name="bottom_attach">8</property> + <property name="left_attach">5</property> + <property name="right_attach">6</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkTable" id="table19"> + <widget class="GtkHBox" id="hbox36"> <property name="visible">True</property> - <property name="border_width">3</property> - <property name="n_rows">1</property> - <property name="n_columns">1</property> + <property name="homogeneous">True</property> <child> - <widget class="GtkLabel" id="label95"> + <widget class="GtkRadioButton" id="st_none"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes"><b>Auto Store</b></property> - <property name="use_markup">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + <property name="group">st_ascend</property> + <signal name="toggled" handler="on_st_none_toggled"/> + <child> + <widget class="GtkImage" id="image1933"> + <property name="visible">True</property> + <property name="stock">gtk-undo</property> + </widget> + </child> </widget> <packing> - <property name="y_options"></property> + <property name="expand">False</property> + <property name="fill">False</property> </packing> </child> </widget> <packing> - <property name="left_attach">9</property> - <property name="right_attach">10</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> + <property name="left_attach">7</property> + <property name="right_attach">8</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkVSeparator" id="vseparator9"> + <widget class="GtkHBox" id="hbox33"> <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <widget class="GtkRadioButton" id="pm_none"> + <property name="can_focus">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + <property name="group">pm_ascend</property> + <signal name="toggled" handler="on_pm_none_toggled"/> + <child> + <widget class="GtkImage" id="image1930"> + <property name="visible">True</property> + <property name="stock">gtk-undo</property> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </widget> <packing> - <property name="left_attach">10</property> - <property name="right_attach">11</property> - <property name="top_attach">1</property> - <property name="bottom_attach">8</property> - <property name="x_options"></property> + <property name="left_attach">7</property> + <property name="right_attach">8</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHSeparator" id="hseparator11"> - <property name="visible">True</property> + <widget class="GtkHBox" id="hbox32"> + <property name="homogeneous">True</property> + <child> + <widget class="GtkRadioButton" id="pm_descend"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + <property name="group">pm_ascend</property> + <signal name="toggled" handler="on_pm_descend_toggled"/> + <child> + <widget class="GtkImage" id="image1929"> + <property name="visible">True</property> + <property name="stock">gtk-sort-descending</property> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">10</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> + <property name="left_attach">5</property> + <property name="right_attach">6</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHSeparator" id="hseparator12"> + <widget class="GtkHBox" id="hbox37"> + <property name="homogeneous">True</property> + <child> + <widget class="GtkRadioButton" id="pm_ascend"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_pm_ascend_toggled"/> + <child> + <widget class="GtkImage" id="image1928"> + <property name="visible">True</property> + <property name="stock">gtk-sort-ascending</property> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">10</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHSeparator" id="hseparator13"> + <widget class="GtkVSeparator" id="vseparator2"> <property name="visible">True</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">10</property> - <property name="top_attach">6</property> - <property name="bottom_attach">7</property> + <property name="top_attach">1</property> + <property name="bottom_attach">8</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHSeparator" id="hseparator10"> + <widget class="GtkVSeparator" id="vseparator3"> <property name="visible">True</property> </widget> <packing> - <property name="right_attach">11</property> - <property name="top_attach">8</property> - <property name="bottom_attach">9</property> + <property name="left_attach">8</property> + <property name="right_attach">9</property> + <property name="top_attach">1</property> + <property name="bottom_attach">8</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHSeparator" id="hseparator9"> + <widget class="GtkVSeparator" id="vseparator6"> <property name="visible">True</property> </widget> <packing> - <property name="right_attach">11</property> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">8</property> <property name="x_options"></property> <property name="y_options"></property> </packing> ... [truncated message content] |
From: <jc...@us...> - 2008-08-31 02:02:06
|
Revision: 2113 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2113&view=rev Author: jcsjcs Date: 2008-08-31 02:02:16 +0000 (Sun, 31 Aug 2008) Log Message: ----------- * src/mp3file.c: Handle Artist and AlbumArtist fields differently: For Artist: try the Artist tag and fall back to the Album Artist tag if the former does not exist. For Album Artist: set to the contents of the Album Artist tag, but only if the Artist tag does exist. Thanks to Dudy Kohen for the patch. * src/mp4file.c: do the same for mp4 files (the Album Artist tag was not supported before). Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/src/mp3file.c gtkpod/trunk/src/mp4file.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-23 18:04:30 UTC (rev 2112) +++ gtkpod/trunk/ChangeLog 2008-08-31 02:02:16 UTC (rev 2113) @@ -1,3 +1,15 @@ +2008-08-31 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/mp3file.c: Handle Artist and AlbumArtist fields differently: + For Artist: try the Artist tag and fall back to the Album Artist + tag if the former does not exist. + For Album Artist: set to the contents of the Album Artist tag, + but only if the Artist tag does exist. + Thanks to Dudy Kohen for the patch. + + * src/mp4file.c: do the same for mp4 files (the Album Artist tag + was not supported before). + 2008-08-04 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/file_itunesdb.c (read_extended_info): fixed valgrind Modified: gtkpod/trunk/src/mp3file.c =================================================================== --- gtkpod/trunk/src/mp3file.c 2008-08-23 18:04:30 UTC (rev 2112) +++ gtkpod/trunk/src/mp3file.c 2008-08-31 02:02:16 UTC (rev 2113) @@ -88,6 +88,7 @@ gchar *lyrics; /* does not appear to be the full lyrics -- only used to set the flag 'lyrics_flag' of the Track structure */ + gchar *albumartist; /* Album artist */ }; @@ -1459,11 +1460,13 @@ if ((id3tag = id3_file_tag(id3file))) { tag->title = id3_get_string (id3tag, ID3_FRAME_TITLE); - tag->artist = id3_get_string (id3tag, ID3_FRAME_GROUP); + tag->artist = id3_get_string (id3tag, ID3_FRAME_ARTIST); if (!tag->artist || !*tag->artist) { g_free (tag->artist); - tag->artist = id3_get_string (id3tag, ID3_FRAME_ARTIST); + tag->artist = id3_get_string (id3tag, ID3_FRAME_GROUP); + } else { + tag->albumartist = id3_get_string (id3tag, ID3_FRAME_GROUP); } tag->album = id3_get_string (id3tag, ID3_FRAME_ALBUM); tag->year = id3_get_string (id3tag, ID3_FRAME_YEAR); @@ -2565,6 +2568,11 @@ track->artist = filetag.artist; } + if (filetag.albumartist) + { + track->albumartist = filetag.albumartist; + } + if (filetag.title) { track->title = filetag.title; Modified: gtkpod/trunk/src/mp4file.c =================================================================== --- gtkpod/trunk/src/mp4file.c 2008-08-23 18:04:30 UTC (rev 2112) +++ gtkpod/trunk/src/mp4file.c 2008-08-31 02:02:16 UTC (rev 2113) @@ -1,4 +1,4 @@ -/* Time-stamp: <2007-06-23 02:49:08 jcs> +/* Time-stamp: <2008-08-31 11:00:33 jcs> | | Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net> | Part of the gtkpod project. @@ -375,6 +375,22 @@ track->artist = charset_to_utf8 (value); g_free(value); } + if (!track->artist || !*track->artist) + { + g_free (track->artist); + track->artist = NULL; + if (MP4GetMetadataAlbumArtist(mp4File, &value) && value != NULL) + { + track->artist = charset_to_utf8 (value); + } + } + else + { + if (MP4GetMetadataAlbumArtist(mp4File, &value) && value != NULL) + { + track->albumartist = charset_to_utf8 (value); + } + } if (MP4GetMetadataWriter(mp4File, &value) && value != NULL) { track->composer = charset_to_utf8 (value); @@ -488,7 +504,7 @@ * you have to delete all meta data before modifying * it. Therefore we have to read it first to avoid data * loss. (Bug present in mpeg4ip-1.0RC1.) */ -/* gchar *m_name = NULL, *m_artist = NULL; +/* gchar *m_name = NULL, *m_artist = NULL, *m_albumartist = NULL; gchar *m_writer = NULL, *m_comment = NULL; gchar *m_year = NULL; gchar *m_album = NULL, *m_genre = NULL;*/ @@ -507,6 +523,7 @@ &m_cpl); /* MP4GetMetadataName (mp4File, &m_name); MP4GetMetadataArtist (mp4File, &m_artist); + MP4GetMetadataAlbumArtist (mp4File, &m_albumartist); MP4GetMetadataWriter (mp4File, &m_writer); MP4GetMetadataComment (mp4File, &m_comment); MP4GetMetadataYear (mp4File, &m_year); @@ -524,6 +541,10 @@ MP4SetMetadataArtist (mp4File, value); g_free (value); + value = charset_from_utf8 (track->albumartist); + MP4SetMetadataAlbumArtist (mp4File, value); + g_free (value); + value = charset_from_utf8 (track->composer); MP4SetMetadataWriter (mp4File, value); g_free (value); @@ -561,6 +582,7 @@ if (m_covert) MP4SetMetadataCoverArt (mp4File, m_covert, m_size); /* g_free (m_name); g_free (m_artist); + g_free (m_albumartist); g_free (m_writer); g_free (m_comment); g_free (m_year); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-09-07 02:15:29
|
Revision: 2114 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2114&view=rev Author: jcsjcs Date: 2008-09-07 02:15:30 +0000 (Sun, 07 Sep 2008) Log Message: ----------- * configure.in src/mp4file.c: Check whether MP4 AlbumArtist functions are available (fixes compilation error with older versions of libmp4v2). Modified Paths: -------------- gtkpod/trunk/ChangeLog gtkpod/trunk/configure.in gtkpod/trunk/src/mp4file.c Modified: gtkpod/trunk/ChangeLog =================================================================== --- gtkpod/trunk/ChangeLog 2008-08-31 02:02:16 UTC (rev 2113) +++ gtkpod/trunk/ChangeLog 2008-09-07 02:15:30 UTC (rev 2114) @@ -1,3 +1,10 @@ +2008-09-07 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * configure.in + src/mp4file.c: Check whether MP4 AlbumArtist functions are + available (fixes compilation error with older versions of + libmp4v2). + 2008-08-31 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/mp3file.c: Handle Artist and AlbumArtist fields differently: Modified: gtkpod/trunk/configure.in =================================================================== --- gtkpod/trunk/configure.in 2008-08-31 02:02:16 UTC (rev 2113) +++ gtkpod/trunk/configure.in 2008-09-07 02:15:30 UTC (rev 2114) @@ -125,7 +125,7 @@ have_gnome_vfs="*no -- will build without iPod autodetection support" fi -#dnl Check for HAL +dnl Check for HAL AC_ARG_WITH(hal, AC_HELP_STRING([--without-hal],[Disable HAL support])) if test "x$with_hal" != "xno"; then PKG_CHECK_MODULES(HAL, hal >= 0.5 hal < 0.6, have_hal=yes, have_hal=no) @@ -154,28 +154,41 @@ have_mp4v2="no" AC_MSG_WARN([mp4.h cannot be found or is unusable. Check your mp4v2 installation.]) else - AC_TRY_COMPILE( [#include <mp4.h> ], - [bool TestMP4GetMetadataFreeForm(MP4FileHandle hFile, const char *name, - u_int8_t** pValue, u_int32_t* valueSize, const char *owner) - { - MP4GetMetadataFreeForm(hFile, name,pValue, valueSize, owner); - } ], freeform_accepts_extra_arg=yes) - AC_TRY_COMPILE( [#include <mp4.h>], - [bool TestMP4GetMetadataCoverArt(MP4FileHandle hFile, - u_int8_t **coverArt, u_int32_t* size, uint32_t index) - { - MP4GetMetadataCoverArt(hFile, coverArt, size, index); - }], coverart_accepts_extra_arg=yes) +dnl Check if MP4GetMetadataFreeForm() requires an extra argument + AC_TRY_COMPILE( [#include <mp4.h> ], + [bool TestMP4GetMetadataFreeForm(MP4FileHandle hFile, const char *name, + u_int8_t** pValue, u_int32_t* valueSize, const char *owner) + { + MP4GetMetadataFreeForm(hFile, name,pValue, valueSize, owner); + } ], freeform_accepts_extra_arg=yes) + if test "x$freeform_accepts_extra_arg" = "xyes"; then + AC_DEFINE(FREEFORM_ACCEPTS_EXTRA_ARG, 1,[libmp4v2 probably version 1.6 or higher: + MP4GetMetadataFreeForm accepts extra argument]) + fi +dnl Check if MP4GetMetadataCoverArt() requires an extra argument + AC_TRY_COMPILE( [#include <mp4.h>], + [bool TestMP4GetMetadataCoverArt(MP4FileHandle hFile, + u_int8_t **coverArt, u_int32_t* size, uint32_t index) + { + MP4GetMetadataCoverArt(hFile, coverArt, size, index); + }], coverart_accepts_extra_arg=yes) - if test "x$freeform_accepts_extra_arg" = "xyes"; then - AC_DEFINE(FREEFORM_ACCEPTS_EXTRA_ARG, 1,[libmp4v2 probably version 1.6 or higher: - MP4GetMetadataFreeForm accepts extra argument]) + if test "x$coverart_accepts_extra_arg" = "xyes"; then + AC_DEFINE(COVERART_ACCEPTS_EXTRA_ARG, 1,[libmp4v2 probably version 1.6 or higher: + MP4GetMetadataCoverArt accepts an extra argument] ) + fi +dnl Check if MP4SetMetadataAlbumArtist() exists + AC_TRY_COMPILE( [#include <mp4.h>], + [bool TestMP4SetMetadataAlbumArtist(MP4FileHandle hFile, + const char* value) + { + MP4SetMetadataAlbumArtist(hFile, value); + }], mp4_albumartist_exists=yes) + if test "x$mp4_albumartist_exists" = "xyes"; then + AC_DEFINE(MP4_ALBUMARTIST_EXISTS, 1,[libmp4v2 probably version 1.6 or higher: + MP4SetMetadataAlbumArtist exists] ) + fi fi - if test "x$coverart_accepts_extra_arg" = "xyes"; then - AC_DEFINE(COVERART_ACCEPTS_EXTRA_ARG, 1,[libmp4v2 probably version 1.6 or higher: - MP4GetMetadataCoverArt accepts an extra argument] ) - fi - fi if test "x$with_mp4v2" = "xyes" -a "x$have_mp4v2" = "xno"; then AC_MSG_ERROR([MP4/AAC support explicitly requested but libmp4v2 couldn't be found]) fi Modified: gtkpod/trunk/src/mp4file.c =================================================================== --- gtkpod/trunk/src/mp4file.c 2008-08-31 02:02:16 UTC (rev 2113) +++ gtkpod/trunk/src/mp4file.c 2008-09-07 02:15:30 UTC (rev 2114) @@ -1,4 +1,4 @@ -/* Time-stamp: <2008-08-31 11:00:33 jcs> +/* Time-stamp: <2008-09-07 11:16:18 jcs> | | Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net> | Part of the gtkpod project. @@ -375,6 +375,7 @@ track->artist = charset_to_utf8 (value); g_free(value); } +#if MP4_ALBUMARTIST_EXISTS if (!track->artist || !*track->artist) { g_free (track->artist); @@ -391,6 +392,9 @@ track->albumartist = charset_to_utf8 (value); } } +#else +#warning "Album Artist field not supported with this version of libmp4v2. Album Artist support requires at least V1.6.0" +#endif if (MP4GetMetadataWriter(mp4File, &value) && value != NULL) { track->composer = charset_to_utf8 (value); @@ -541,10 +545,11 @@ MP4SetMetadataArtist (mp4File, value); g_free (value); +#if MP4_ALBUMARTIST_EXISTS value = charset_from_utf8 (track->albumartist); MP4SetMetadataAlbumArtist (mp4File, value); g_free (value); - +#endif value = charset_from_utf8 (track->composer); MP4SetMetadataWriter (mp4File, value); g_free (value); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |