Re: gtkpod 2 ... heading towards releasing

phantomjinx <[email protected]>
Newsgroups gmane.comp.ipod.gtkpod
Message-ID <[email protected]>
> I confirm that isn't built, but that commit only removed coverweb.c
> from POTFILES.in because there weren't string marked as translatable:
>
> +plugins/coverweb/coverweb.glade
> +plugins/coverweb/coverweb_preferences.c
> +plugins/coverweb/plugin.c
>
> -plugins/coverweb/coverweb.c
> -plugins/coverweb/plugin.c
> -plugins/coverweb/coverweb_preferences.c
> -plugins/coverweb/coverweb.glade
>
> (now I added coverweb.c back because there were 2 strings to be
> translated and installed libwebkit-dev to test it)
>
>    
>> I will readd the entries back as it has broken the ubuntu auto-build.
>>      
>    
Seemed that data/coverweb.glade got removed and never re-added, which 
was the only error in the auto-build so fixed.
> sure, but please don't make update-po until the last moment before you
> will ask people to work on translations because it makes git history
> unnecessarily bigger (diff are usually big if line numbers are changed
> and there's no need for updated .po/.mo files with untranslated
> strings because there is no user visible difference) ideally there
> would be only 2 commits of .po files, one to prepare the files on
> which translators will work and one to integrate their work
>
> ***
>    
Too late ... sorry! Will not in future. Although I am trying to keep 
them up to date with the ones on transifex. That said no one has done 
any translations for them yet ...
> cover web segfaults
> on a regular image a popup menu with 3 or 4 items is shown and
> everything is ok, but in Google images when you hover a picture and
> the bigger picture is shown, the popup menu has 7 items and chosing
> "Copy image" results in a segfault:
>
> #0 0xb39cfd07 in ?? () from /usr/lib/libwebkit-1.0.so.2
> #1 0xb351de12 in ?? () from /usr/lib/libwebkit-1.0.so.2
> #2 0xb368db65 in ?? () from /usr/lib/libwebkit-1.0.so.2
> #3 0xb39c6a38 in ?? () from /usr/lib/libwebkit-1.0.so.2
> #4 0x00d2c93c in g_cclosure_marshal_VOID__VOID () from
> /usr/lib/libgobject-2.0.so.0
> #5 0x00d1d412 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #6 0x00d33595 in ?? () from /usr/lib/libgobject-2.0.so.0
> #7 0x00d349bc in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
> #8 0x00d34e62 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #9 0x008d3945 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
> #10 0x007b13a0 in gtk_menu_shell_activate_item () from
> /usr/lib/libgtk-x11-2.0.so.0
> #11 0x007b2d3f in ?? () from /usr/lib/libgtk-x11-2.0.so.0
> #12 0x007a7a54 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
> #13 0x007a1284 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
> #14 0x00d1ba87 in ?? () from /usr/lib/libgobject-2.0.so.0
> #15 0x00d1d412 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #16 0x00d331e6 in ?? () from /usr/lib/libgobject-2.0.so.0
> #17 0x00d3483b in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
> #18 0x00d34e62 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #19 0x008cfb96 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
> #20 0x0079985d in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
> #21 0x0079ac17 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
> #22 0x0026f36a in ?? () from /usr/lib/libgdk-x11-2.0.so.0
> #23 0x00e9d855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
> #24 0x00ea1668 in ?? () from /lib/libglib-2.0.so.0
> #25 0x00ea1ba7 in g_main_loop_run () from /lib/libglib-2.0.so.0
> #26 0x0079b1d9 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
> #27 0x08053813 in main (argc=1, argv=0xbfbae094) at main.c:63
>
> ***
>
> gtkpod freezes:
> right click on a track and choose edit track details, do not apply but
> close the track details dock, then right click on a track, the popup
> menu never shows and gtkpod freezes
> attaching gdb, this is the interesting part of the backtrace:
> #0 0x00575416 in __kernel_vsyscall ()
> #1 0x006b6169 in __lll_lock_wait () at
> ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:142
> #2 0x006b15cb in _L_lock_748 () from /lib/libpthread.so.0
> #3 0x006b13f1 in __pthread_mutex_lock (mutex=0x8f32220) at
> pthread_mutex_lock.c:61
> #4 0x002e96d6 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
> #5 0x002e9660 in gdk_threads_enter () from /usr/lib/libgdk-x11-2.0.so.0
> #6 0x01152685 in details_set_tracks (tracks=0x947fed0) at details.c:1292
> #7 0x00590ef8 in g_cclosure_marshal_VOID__POINTER () from
> /usr/lib/libgobject-2.0.so.0
> #8 0x00582412 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #9 0x00598595 in ?? () from /usr/lib/libgobject-2.0.so.0
> #10 0x005999bc in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
> #11 0x00599e62 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #12 0x00894f59 in gtkpod_set_selected_tracks (tracks=0x947fed0) at
> gtkpod_app_iface.c:379
> #13 0x065e64a1 in tm_context_menu_init () at track_display_context_menu.c:157
> #14 0x065e9559 in tm_button_press_event (w=0x910cc80, e=0x9376808,
> data=0x0) at display_tracks.c:1966
>
> it also freezes if you have Playlist Tracks and Track Details open at
> the same time, start editing the details and right click on a track in
> Playlist Tracks
>
> ***
>
> Right clicking on an item in Track Display selects the line and open
> the popup menu, while on Filter Tabs only selects it, you need to
> right click a second time to open the popup menu.
>
> Copying tracks from this popup menu is the same as exporting from the
> Tools menu? If so the menu labels should be more similar, while we
> have
> (popup menu) Copy / Copy Tracks to Filesystem
> (Tools menu) Export Tracks /  Export Tracks To Filesystem
>
> (Tools menu) Export Tracks / Export Tracks To Playlist File
> (popup menu) Create Playlist / Create Playlist File
>
> ***
>
> While editing track details does it make sense to modify Filesize?
>    
No. Should be read-only.
> ***
>
> There is a bunch of strings that might need translations, since you
> know the code you may be able to tell if it's true faster than me, and
> it seems strange that two files are identical except one included
> file, see:
> diff -u ./plugins/cover_display/fetchcover.c
> ./plugins/details_editor/fetchcover.c
>    
Yeah. Its because the fetchcover service is used in the two separate 
plugins, ie. cover_display and details editor. The fetchcover service 
operates by dragging n dropping an image onto the relevant canvas, which 
them downloads and copies the image. In both plugins, it is possible to 
do this thus both plugins need the service. However, I didnt want it in 
the core library since it is an optional service. Unfortunately, it is 
impossible for plugins to depend on each other so I am left with 
replicating it since both plugins are completely independant on one another.

> I hand picked them running grep "g_strdup" . -rn | grep '"' | grep -v
> '_(' | grep -v ngettext | less
>
> ./plugins/details_editor/details.c:1202: = g_strdup_printf("%d / %d",
> g_list_index(details_view->tracks, details_view->track) + 1,
> g_list_length(details_view->tracks));
>
> ./plugins/filetype_wav/wavfile.c:164: track->filetype = g_strdup("WAV
> audio file");
>
> ./plugins/filetype_video/videofile.c:47: track->filetype =
> g_strdup("Generic video file");
>
> ./plugins/filetype_flac/flacfile.c:157: track->description =
> g_strdup("FLAC audio file");
>
> ./plugins/filetype_ogg/oggfile.c:80: track->description =
> g_strdup("OGG audio file");
>
> ./plugins/filetype_mp3/mp3file.c:1195: gchar *tmp =
> g_strdup_printf("(%d)", index);
> ./plugins/filetype_mp3/mp3file.c:1626: string1 =
> g_strdup_printf("%d/%d", track->track_nr, track->tracks);
> ./plugins/filetype_mp3/mp3file.c:1633: string1 =
> g_strdup_printf("%d/%d", track->cd_nr, track->cds);
> ./plugins/filetype_mp3/mp3file.c:2784: track->filetype =
> g_strdup("MPEG audio file");
>
> ./plugins/filetype_mp4/mp4file.c:693: track->filetype = g_strdup("AAC
> audio file");
> ./plugins/filetype_mp4/mp4file.c:695: track->filetype =
> g_strdup("Protected AAC audio file");
> ./plugins/filetype_mp4/mp4file.c:697: track->filetype = g_strdup("AAC
> audio book file");
> ./plugins/filetype_mp4/mp4file.c:699: track->filetype = g_strdup("MP4
> video file");
> ./plugins/filetype_m4a/mp4file.c:693: track->filetype = g_strdup("AAC
> audio file");
> ./plugins/filetype_m4a/mp4file.c:695: track->filetype =
> g_strdup("Protected AAC audio file");
> ./plugins/filetype_m4a/mp4file.c:697: track->filetype = g_strdup("AAC
> audio book file");
> ./plugins/filetype_m4a/mp4file.c:699: track->filetype = g_strdup("MP4
> video file");
>
> ./plugins/cover_display/fetchcover.c:150: fetch_cover->err_msg =
> g_strdup("Only jpg images are currently supported at this time\n");
> ./plugins/cover_display/fetchcover.c:173: fetch_cover->err_msg =
> g_strdup("fetchcover curl data memory is null so failed to download
> anything!\n");
> ./plugins/cover_display/fetchcover.c:180: fetch_cover->err_msg =
> g_strdup("fetchcover memory contains<html>  tag so not a valid jpg
> image\n");
> ./plugins/cover_display/fetchcover.c:200: fetch_cover->err_msg =
> g_strdup ("Failed to create a file with the filename\n");
> ./plugins/cover_display/fetchcover.c:214: fetch_cover->err_msg =
> g_strdup("fetchcover failed to write the data to the new file\n");
> ./plugins/cover_display/fetchcover.c:225: fetch_cover->err_msg =
> g_strdup("fetchcover downloaded file is not a valid image file\n");
> ./plugins/cover_display/fetchcover.c:261: fetch_cover->err_msg =
> g_strdup("fetchcover object's tracks list either NULL or no tracks
> were selected\n");
> ./plugins/cover_display/fetchcover.c:302: fetch_cover->err_msg =
> g_strdup("operation cancelled\n");
>
> ./plugins/details_editor/fetchcover.c:149: fetch_cover->err_msg =
> g_strdup("Only jpg images are currently supported at this time\n");
> ./plugins/details_editor/fetchcover.c:172: fetch_cover->err_msg =
> g_strdup("fetchcover curl data memory is null so failed to download
> anything!\n");
> ./plugins/details_editor/fetchcover.c:179: fetch_cover->err_msg =
> g_strdup("fetchcover memory contains<html>  tag so not a valid jpg
> image\n");
> ./plugins/details_editor/fetchcover.c:199: fetch_cover->err_msg =
> g_strdup ("Failed to create a file with the filename\n");
> ./plugins/details_editor/fetchcover.c:213: fetch_cover->err_msg =
> g_strdup("fetchcover failed to write the data to the new file\n");
> ./plugins/details_editor/fetchcover.c:224: fetch_cover->err_msg =
> g_strdup("fetchcover downloaded file is not a valid image file\n");
> ./plugins/details_editor/fetchcover.c:260: fetch_cover->err_msg =
> g_strdup("fetchcover object's tracks list either NULL or no tracks
> were selected\n");
> ./plugins/details_editor/fetchcover.c:301: fetch_cover->err_msg =
> g_strdup("operation cancelled\n");
>
> ./plugins/sorttab_display/display_sorttabs.c:2990: =
> g_strdup_printf("%02d/%02d/%04d %d:%02d", tm->tm_mday, tm->tm_mon + 1,
> 1900 + tm->tm_year, tm->tm_hour, tm->tm_min);
> ./plugins/sorttab_display/display_sorttabs.c:3024: str =
> g_strdup_printf(">  %s", str1);
> ./plugins/sorttab_display/display_sorttabs.c:3026: str =
> g_strdup_printf("<  %s", str2);
> ./plugins/sorttab_display/display_sorttabs.c:3028: str =
> g_strdup_printf("%s<  <  %s", str1, str2);
>
> ./plugins/repository_editor/repository_init.c:72: =
> g_strdup_printf("%2.0f GB %s (x%s)", info->capacity,
> itdb_info_get_ipod_model_name_string(info->ipod_model),
> info->model_number);
> ./plugins/repository_editor/repository_init.c:76: =
> g_strdup_printf("%3.0f MB %s (x%s)", info->capacity * 1024,
> itdb_info_get_ipod_model_name_string(info->ipod_model),
> info->model_number);
> ./plugins/repository_editor/repository_init.c:80: =
> g_strdup_printf("%s (x%s)",
> itdb_info_get_ipod_model_name_string(info->ipod_model),
> info->model_number);
>
> ./libgtkpod/misc_playlist.c:191: category = g_strdup_printf("[%s %s]",
> qualifier, track_cat);
> ./libgtkpod/misc_playlist.c:254: pl_name = g_strdup_printf("[%s]", pl_name1);
> ./libgtkpod/misc_playlist.c:408: gchar *pl_name = g_strdup_printf("[%s]", str);
>
> ./libgtkpod/misc_conversion.c:379: return g_strdup ("--");
>
> ./libgtkpod/tools.c:398: gchar *label_buf = g_strdup_printf ("%d/%d", count, n);
>
> ./libgtkpod/misc_track.c:1105: return g_strdup_printf("%d:%06.3f",
> length / 60000, ((float) (length % 60000)) / 1000);
> ./libgtkpod/misc_track.c:1195: text = g_strdup_printf("%d/%d",
> track->track_nr, track->tracks);
> ./libgtkpod/misc_track.c:1201: text = g_strdup_printf("%d/%d",
> track->cd_nr, track->cds);
> ./libgtkpod/misc_track.c:1207: text = g_strdup("--");
> ./libgtkpod/misc_track.c:1249: text = g_strdup_printf("%dk", track->bitrate);
> ./libgtkpod/misc_track.c:1914: return g_strdup_printf("iPod ID: %d", track->id);
>
>    
Will look into these further over the next couple of days.

Cheers

PGR


------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.