Pushed more patches at github right now. :-) * Support for libfm's file menu. libfm shared object is not loaded when program starts, but dlopen()'ed at runtime. That allows libfm to be optional runtime dependency. I already used the same technique in lxpanelx. The only thing we need from libfm is "just give me GtkMenu* for that file", so nothing complicated here.
* Buttons change their sensitivity depending on current program state: * file menu, rotate, flip, save, delete operations are disabled in slideshow mode (or when no image opened); * prev, next, slideshow operations are disabled if image list contain less than 2 items; * zoom operations are disabled when no image opened (or when scale is max/min, for zoom in and zoom out operations respectively). * Confirmation dialog for delete operation shows real file name, not just "the file". * Little optimization in image-view.c: do not repaint surface second time when scale is 100%. (Second update is used to erase artifacts of GDK_INTERP_NEAREST interpolation. Drawing with 100% scale makes no such artifacts.) * Implemented caching and preloading of images. It may look somewhat frustrating when you see in htop that gpicview eats 100-200MB RSS, but I tested the feature on a relatively slow system (1GB RAM, Celeron D 2.6GHz) with high memory load (run several browsers with lots of sites opened in them, so the system swapped pages in and out constantly), and it works quite well. Cache limit is adjusted automatically based on RAM size. However, we probably should allow user completely disable that feature, as some users will be not happy of that. Note on an implementation detail: I used g_timeout_add() instead of g_idle_add(), as the latter conflicts with on_idle handler in image-view.c. We've got the following sequence of events: the surface painted with GDK_INTERP_NEAREST, next image preloaded, the surface painted with GDK_INTERP_BILINEAR. That is not what we want, so g_timeout_add() helps keep things in the right order (first update, second update, preloading). * New option: "Auto-select background color based on image edge". Oh... I love it! ;-) And by the way, I checked out eog, mirage and viewnior, and all of them lack such feature. * Massive refactoring of main-win.c. Not fully completed yet. The futher direction, as I see it: * Complete refactoring of main-win.c. * Optimize image scaling and drawing. gpicview works really fast, compared to eog, but that is more eog's "feature", than ours. (Oh... How did they manage to achieve so sloooow image loading?) There are many places to optimize. I think we can dramatically improve rendering speed. * Remove files into Trash Bin, not unlink() them. * Handle multiple file arguments in the command line. * Some editing operations, in addition to rotate and flip: crop, resize, adjust brightness and saturation. 2012/8/5 Julien Lavergne <[email protected]>: > Le 08/03/2012 07:57 PM, Vadim Ushakov a écrit : >> I made some improvements for gpicview: https://github.com/geekless/gpicview >> >> Fixes: >> * Builds successfully with Gtk3. It seems to run almost fine. The only >> problem I noticed is hang up in fullscreen mode. I failed to locate >> that bug, unfortunately. >> * Fixed a scrolling problem when scale is 100% >> * Fixed a bug with "Fit Image" button state. >> >> New features: >> * Keep zoom mode and/or scale when switching between images. >> * Show/hide toolbar on T key press. >> * When run as "gpicview path/to/some/directory", do not display error >> message, but open images from the directory. >> * When run without arguments, open images from current directory. > Thanks :-) Looks ok, merged to master to get more testing. > > Regards, > Julien Lavergne -- Regards, Vadim Ushakov ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Lxde-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/lxde-list
