GSoC 2008 Picture Browser

=Rationale= Importing images is one of Scribus's core features and it's already well implemented. However, it lacks a proper and easy to use picture browser to make the selection of pictures from large collections easier.

=Motivation= My motivation for this project is that i think this feature will greatly improve image handling in Scribus and I plan to deliver a vital contribution for all Scribus users (including myself). Furthermore, I like playing around with graphics and UI design, so that adding this feature corresponds with my personal interests.

=Overview= The basic goal is to create a picture browser similar to OpenOffice.org's "Gallery" [1], which allows users to select images from a neatly arranged preview with just a few clicks or drag and drop. Optional features like PictureFlow[2] and the display of additional information (metadata, color spaces, resolution) will further enhance the browsers usability. In addition, users will be able to access pictures from various external sources like network repositories and digital cameras.

=Details=

Implementation
The picture browser will provide access to large collections of images. It will be possible to drag and drop an image from the browser to a page. Alternatively, an image frame can be selected/created, and its content can be inserted from the browser. It will also be possible to add new and remove collections of images permanently as in the OpenOffice.org gallery. The picture browser will use the exisiting and possibly the new image file format plugins to make sure it can display all image types supported by scribus. If possible, Scribus will also be enabled to add online collections like Open Clip Art [3].

Existing work
The picture browser will be able to reuse much of Scribus's image-related code, eg. for previews, image data etc. Digital camera import could be based on existing digiKam[4] code. A prototype of a PictureFlow plug-in has been developed by a Scribus contributor who gave permission to extend his code.

User interface
I think the best solution is to keep this as simple as possible, but also to follow proven solutions. The OpenOffice.org Gallery is a well tested feature, which is used by millions of users all over the world, so that the picture browser in Scribus should work similarly. It will, however, need to be extended to meet the requirements of professional users. Scribus's "Manage Images" feature provides a solid basis to start from. It will be extended by a directory browser using a tree-hierarchy for easy navigation. The preview function will be altered to show all supported images in the selected folder and to provide basic filtering/sorting options (name, size etc). Optionally, the user can switch from the common preview list to PictureFlow. Moreover, the browser will allow users to create/remove collections of images.

=Deliverables=
 * An advanced picture browser for Scribus
 * Documentation

=Biographical Sketch= My name is Markus Durst, and I'm a student of physics at the university of Regensburg in Germany (http://www.uni-r.de) in the fourth term. My first computer was a 286, with which I started coding in QBasic. Later I switched to C/C++, and I have several years of experience with both languages. In addition, I have some knowledge in ASM and PHP. I am also very interested in computer security related issues and have already visited a couple of CCCs (Chaos Communication Congresses) in Germany.

=Timeline=


 * April 14: Accepted student proposals announced on the Google Summer of Code home page. Community Bonding Period: Students get to know mentors, read documentation, get up to speed to begin working on their projects.

''I start learning the Scribus internals and Qt coding as I am not sufficiently familiar with the Scribus development process yet. I will also ask layout professionals on #scribus for their requirements.''


 * May 26: Students begin coding for their GSoC projects;

By then, I should already be familiar with the Scribus development process and ready to start with the actual work.


 * July 7: Mentors and students can begin submitting mid-term evaluations.

Most of the basic features like browsing folders/collections and a simple preview list should work right now.


 * July 20: End of semester

''Now the basic features should be fully working, and I will start implementing extras like PictureFlow and network / digital camera access. Some exams at university will keep me from finishing my tasks at this time, but I cant specify any dates yet''

''I will recheck my code and get some final feedback for minor changes, if necessary. Also, I will finish the documentation.''
 * August 11: Suggested 'pencils down' date. Take a week to scrub code, write tests, improve documentation, etc.
 * August 18: Firm 'pencils down' date. Mentors, students and organization administrators can being submitting final evaluations to Google.

Hopefully everything is completed to the team's and my satisfaction.

[1] http://wiki.services.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Getting_Started/Working_with_the_Gallery

[2] http://code.google.com/p/pictureflow

[3] http://openclipart.org

[4] http://www.digikam.org