Since you added RAW support in the last version I have now actually tried Shotwell with my real photo collection. Here are some things that I noted (some minor 0.7.0 bugs at the end):
First I ran into some already ticket stuff (so I'm just listen them as a +1 for 0.8.0): * I really really miss a Sharpen button or Sharpen slider (ticket #690). * I don't want the "master copy" of any data in ~/.shotwell, I prefer if tags are applied directly as metadata to the original photo files, ofc at very explicit opt-in from the user. (ticket #1897). Other issues I encountered in my workflow (these most likely not relevant for 0.7.0): * I shoot RAW+JPG and the RAW photos look very poor since they are rendering using "default settings". Here are some RAW+JPG equivalents directly from the camera (no modifications). Are you passing any parameters to libraw when you do the conversion or is this a libraw "bug"? Also I wonder if this affects all RAW capable cameras much or if different camera have different specific problems... Anyway, import these: http://temp.minimum.se/shotwell_raw/ * I would like to have "Camera: BLAH" in the basic metadata rather than hidden away in the extended dialog. * While cropping I'd like to be able to live preview the pixel size of the crop region while I'm resizing it. Right now the "Size:" field in "basic info" is not updated until I finish the crop by pressing OK. * It would be nice if the "basic metadata" panel was re-designed so that it fits more and more stuff into itself the bigger I make it. So if I drag the horizontal splitter upwards, more and more metadata shows up in this pane (right now I just get more gray space). * I miss the ability to zoom out more than "fit photo to screen" (i.e. make photo smaller than the photo viewport). This is useful for quickly previewing what the photo would look like inserted into a blog post or similar (i.e. resized and inserted into the text). * At some point I wanted to inspect a photo at 100% size to check noise levels, sharpness etc. So I zoom to maximum but then I realized the UI doesn't tell me if "maximum zoom" means "100% size" or not. I guess it does but I think it would be nice if there was some actual percentage number that changed when the zoom slider is dragged just so that the user knows for sure what magnification he/she is at. Since you don't have a status bar (which I think is a good thing) maybe some tiny popup window could appear which goes away immediately when the user releases the zoom slider (similar to the Adjust dialog but a lot smaller and hovering above the photo just above the zoom slider itself)? * A lot of important metadata is not viewable in Shotwell (but running exiv2 shows it), in particular: - I really miss "ISO Speed" - It would also be useful to have "Metering mode" and "White balance" included. - And just for fun, it would be nice to include the EXIF "ShutterCount" (i.e. total number of times the shutter has opened on this particular camera). - What lens was used (mostly a DSLR feature but it's something I miss a lot from Adobe Lightroom). Not sure if this info is available in generic EXIF but it's certain available in for example "Exif.NikonLd2.LensIDNumber" (see http://www.exiv2.org/tags-nikon.html etc). * I would like to be able to easily view "all photos I've ever taken with a rating >X". Right now the "View::Filter Photos" utility only works well for a single event. If I select a "Month" or a year in the event treeview I still see all events listed in the right hand side which means I have to open each and every event to see if there actually was any rating>N photos from that event. I'd like some sort of smart solution to this although I'm not sure what the best way to do it. * Shotwell says "focal length: 60mm" but exiv2 terminal says "60mm (35mm sensor equivalent: 90mm)" and I think the latter is better (many people might not know the crop factor for their sensor or even if they do they might just mistake the given number for 35mm equiv). See "Exif.Photo.FocalLengthIn35mmFilm". POTENTIAL BUGS: * This photo fails to import but (as far as I know it's not a corrupt file and it opens just fine using F-Spot. The photo came straight from my Nikon D50, although it's been sitting in my photo folder for a long time so maybe some program or HDD issue accidently corrupted it without me noticing it). Here is the file: http://temp.minimum.se/shotwell_other/file_error_DSC_0128.NEF * Repro steps: For a large photo collection, select "Photos" and then select the top-left-most photo (without opening it). Now press "Page Down" key 2-3 times. Notice that the selection is no longer within the currently screenful which is unintuitive compared to most other apps. This means that if I browse around by mixing "page down" and actual "key down" strokes things get messed up since the "key down" takes me to where I was before I started hitting "page down". I suggest you fix it so that pressing "page down" actually keeps a photo within the current screenful selected, for example if I start out with photo X selected, then maybe you could compute the coordinates at the center of that photos thumbnail relative to the viewport origin and then when after the "page down" when you arrive at the new screenful, just select the photo that lies closest to those coordinates (I'm thinking this semi complex procedure is needed for cases when people have imported images of highly irregular shapes like a few really really wide ones which tend to mess up the column alignment). * Gtk-Critical Warning "_gtk_accel_group_detach: assertion `g_slist_find (accel_group->acceleratables, object) != NULL' failed". Repro steps: Import some photos, single click the first event to open it, open the first photo, single click that same event again to go back all view all the photos in the event. Now two bad things happen (two bugs imo), first off the assert fires and secondly shotwell assumes I want to rename the event which I don't want (I just want to go back to viewing all the photos from that event). For the latter part I could expect single click to mean rename, only if that event was already selected and it's photos were already visible in the main right hand view (agree?). Anyway, here is the stack leading up to the gtk-critical assert (and you can also hit a similar one via "IA__gtk_window_add_accel_group"): #0 IA__g_log (log_domain=0x7ffff4b6e9f7 "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=0x7ffff193530d "%s: assertion `%s' failed") at /build/buildd/glib2.0-2.24.1/glib/gmessages.c:565 #1 0x00007ffff4b0590a in IA__gtk_window_remove_accel_group (window=0x112e0e0, accel_group=0x76bff40) at /build/buildd/gtk+2.0-2.20.1/gtk/gtkwindow.c:1805 #2 0x000000000054bafd in library_window_switch_to_page (self=0x112e0e0, page=0x1164240) at LibraryWindow.vala:1409 #3 0x000000000054e0ce in library_window_is_tag_selected (_sender=<value optimized out>, self=<value optimized out>) at LibraryWindow.vala:1517 #4 library_window_on_sidebar_cursor_changed (_sender=<value optimized out>, self=<value optimized out>) at LibraryWindow.vala:1542 #5 _library_window_on_sidebar_cursor_changed_gtk_tree_view_cursor_changed (_sender=<value optimized out>, self=<value optimized out>) at LibraryWindow.c:1869 #6 0x00007ffff21a55de in IA__g_closure_invoke (closure=0x72a69e0, return_value=0x0, n_param_values=1, param_values=0x6dfcf80, invocation_hint=0x7fffffffd530) at /build/buildd/glib2.0-2.24.1/gobject/gclosure.c:767 #7 0x00007ffff21b9598 in signal_emit_unlocked_R (node=0x960240, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>, instance_and_params=<value optimized out>) at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c:3248 #8 0x00007ffff21baa76 in IA__g_signal_emit_valist (instance=0x1134010, signal_id=<value optimized out>, detail=0, var_args=0x7fffffffd720) at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c:2981 #9 0x00007ffff21bb033 in IA__g_signal_emit (instance=0x7ffff4b6e9f7, signal_id=8, detail=4052964109) at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c:3038 #10 0x00007ffff4ad568d in gtk_tree_view_real_set_cursor (tree_view=0x1134010, path=0x7fffcc489a40, clear_and_select=0, clamp_node=1) at /build/buildd/gtk+2.0-2.20.1/gtk/gtktreeview.c:12590 #11 0x00007ffff4ad65d7 in gtk_tree_view_real_start_editing (tree_view=0x1134010, column=<value optimized out>, path=0x7fffcc489a40, cell_editable=0x11453b0, cell_area=0x7fffffffd900, event=0x4e892b0, flags=0) at /build/buildd/gtk+2.0-2.20.1/gtk/gtktreeview.c:14841 #12 0x00007ffff4adfc9f in gtk_tree_view_button_press (widget=0x1134010, event=0x4e892b0) at /build/buildd/gtk+2.0-2.20.1/gtk/gtktreeview.c:2744 #13 0x00007ffff49db178 in _gtk_marshal_BOOLEAN__BOXED (closure=0x945f90, return_value=0x7fffffffdb40, n_param_values=<value optimized out>, param_values=0x7fffdc2c2580, invocation_hint=<value optimized out>, marshal_data=0x5086d0) at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmarshalers.c:84 #14 0x00007ffff21a55de in IA__g_closure_invoke (closure=0x945f90, return_value=0x7fffffffdb40, n_param_values=2, param_values=0x7fffdc2c2580, invocation_hint=0x7fffffffdb00) at /build/buildd/glib2.0-2.24.1/gobject/gclosure.c:767 #15 0x00007ffff21b91dd in signal_emit_unlocked_R (node=0x945fe0, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>, instance_and_params=<value optimized out>) at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c:3286 #16 0x00007ffff21ba8b9 in IA__g_signal_emit_valist (instance=0x1134010, signal_id=<value optimized out>, detail=0, var_args=0x7fffffffdcf0) at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c:2991 #17 0x00007ffff21bb033 in IA__g_signal_emit (instance=0x7ffff4b6e9f7, signal_id=8, detail=4052964109) at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c:3038 #18 0x00007ffff4af20bf in gtk_widget_event_internal (widget=0x1134010, event=0x4e892b0) at /build/buildd/gtk+2.0-2.20.1/gtk/gtkwidget.c:4951 #19 0x00007ffff49d3643 in IA__gtk_propagate_event (widget=0x1134010, event=0x4e892b0) at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c:2447 #20 0x00007ffff49d471b in IA__gtk_main_do_event (event=0x4e892b0) at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c:1647 #21 0x00007ffff2fb586c in gdk_event_dispatch (source=<value optimized out>, callback=<value optimized out>, user_data=<value optimized out>) at /build/buildd/gtk+2.0-2.20.1/gdk/x11/gdkevents-x11.c:2372 #22 0x00007ffff18e78c2 in g_main_dispatch (context=0x8f0bc0) at /build/buildd/glib2.0-2.24.1/glib/gmain.c:1960 #23 IA__g_main_context_dispatch (context=0x8f0bc0) at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2513 #24 0x00007ffff18eb748 in g_main_context_iterate (context=0x8f0bc0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2591 #25 0x00007ffff18ebc55 in IA__g_main_loop_run (loop=0x6659c20) at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2799 #26 0x00007ffff49d4bb7 in IA__gtk_main () at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c:1219 #27 0x000000000045e88e in library_exec (mounts=<value optimized out>, mounts_length1=<value optimized out>) at main.vala:191 #28 0x000000000045f092 in _vala_main (args=0x7fffffffe268, args_length1=1) at main.vala:304 #29 0x000000000045f119 in main (argc=1, argv=0x7fffffffe268) at main.vala:236 Martin On 08/12/2010 06:47 AM, Jim Nelson wrote: > Hello, > > Shotwell 0.7 is on the horizon and we could use your help. Now would be a > great time to test trunk and make sure we're not missing anything > important. 0.7 is a short development cycle, so the feature list isn't > long, but does feature some long-asked-for goodies: > > * F-Spot import (thank you Bruno Girin!) > * Last Import page > * Directory scan at startup (which verifies that all your photos are > present; any that are not are moved to the "Missing Files" page) > * Numerous bug fixes > > Although we have more bugs to attack, the final release will look very > similar to what is in trunk right now. > > If you're interested, follow the directions here for getting the source and > building it: > > http://www.yorba.org/shotwell/install/#source > > If you find bugs or issues please feel free to report them here on the > mailing list or via our Trac ticketing system at: > > http://trac.yorba.org/ > > Here's to 0.7! > > -- Jim Nelson > _______________________________________________ > Shotwell mailing list > [email protected] > http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell > _______________________________________________ Shotwell mailing list [email protected] http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
