Learn your lessons ; write good docs !
August 3, 2006
Hello,
As you read in previous post, i lake motivation to dive into the code and continue the hard work of the early stage of the project. With my mentor Vincent Untz, i decided to document the code. Documentation is a very important goal of this project. The GnomePrint project failed to provide a good documentation and that lead to an underused library. Luckly, GtkPrint in Gtk+ 2.10 is landing and we can expect good and common print dialogs. Reviewing the past weeks, it clearly appear that the most important parts of work in the Gnome Scan project are libgnomescan and libgnomescanui. That sound very similar to libgnomeprint and libgnome printui. This is why writing good docs was a lesson to learn from GnomePrint.
Of cours, gtk-doc is the definitive tool to document GObject API. gtk-doc is the only in-source documentation extractor able to parse GObject, properties, signals and object hierarchy. It also has nice feature like widget gallery and other hacks. The big problem about gtk-doc is that it is undocumented. An unfinished manual reside in the CVS, but most tricks are note documented. I spend quite 3 days to understand almost all i wanted from gtk-doc. In order to save a lot of ours to other developers, i created a wiki page documenting gtk-doc : http://live.gnome.org/DocumentationProject/GtkDoc. Feel free to complete and correct it.
I finally reach to write some good documentation of the API. My desktop computer is available at http://pigi.fr/. You can see the documentation at http://www.pigi.fr/bersace/flegita/doc/reference/libgnomescan/html/ and http://www.pigi.fr/bersace/flegita/doc/reference/libgnomescanui/html/ . I did not wrote turorial, I need further investigation in gtk-doc and a real stable API to do this. But that is planned.
Documenting the two library has been a opportunity to review all the code, unify the style (now a lot closer to Gtk+ one) and see what is wrong. I now have an idea of what improvements are need, what implementation is needed and i will do this in the next days. Luckly i now have the motivation to do the work. So let’s go and do that rocking Gimp plugin ! ;D
Back from Holydays
August 1, 2006
Hello everyone,
As some of you may noticed, i’m back from holydays. The first good news is : i continue ! Thanks to my mentor and Google, i passed the mi-term evaluation. So I’m awaking the GnomeScanning project. I have some lake of motivation :(. I have a few goals to reach the end of the SoC project :
- Complete current work.
- Document API.
- Gimp plug-in.
- debug, debug.
See you for a next release.
gnomescan-0.0.2.99 prerelease
July 3, 2006
Hello all,
This week was a tremendous week. I implemented Preview. The preview is divided in two widget : an area widget and a widget encapsulating the area. This allow to implement Simple Preview and Advanced Preview. For flegita, i only implemented simple Preview widget. I drop the rulers since its quite useless for day to day scan. For simple preview, i prefer to implement auto selection and fixed selection. The preview area is drawn using cairo, of course 🙂
I fixed a lot of bugs and implemented a lot of tiny features and API call that make libgnomescan, libgnomescanui and flegita a lot better. This version has a bug in the translation between pixels and millimeter for the scan area.
This version is a prerelease as i go to holidays during 3 weeks. I’ll be back late july. Wish you’ll put ideas in http://live.gnome.org/GnomeScanning/Ideas 🙂
The 0.0.3 release will have a full preview implementation including rotation, fixed selection and maybe autoselection. The 0.0.4 release will have source handling, i.e. flatbed or automatic document feeder (ADF) with mass acquisition support. Then i will start plugins.
Many thanks to neo from #gimp and other for the great help they provide.
As of now, I dedicate the project in memoriam Mark Finlay, a lovely Gnome hacker and funny blogger that passed away late 2003. He did some work on GnomeScan that highly inspire me to do the Preview area.
Have nice holydays.
Update:Something very important imho, i use this software for real use :). I needed to scan sketches and was able to do it using Flegita in the Graphics menu, croping the image to the right size :D. This make me quite confident about the state of the program and this is why i let it rest during 3 week before wake it up late july.
Annoucing gnomescan-0.0.2
June 26, 2006
Hello all,
I’m glad to announce the availability of GnomeScan version 0.0.2. You download it at the current releases page hosted at my homepage. See the screenshot page for a preview of flegita.
A few word about GnomeScan for new readers : GnomeScan is a Gnome xsane replacement for the Gnome desktop. The project provide libgnomescan : a glib-ish API for scanner access using SANE as backend ; libgnomescanui : a collection of widget that use libgnomescan API for scanner access ; and flegita, a tiny standalone app for quick scan.
What’s new in this version :
- Acquisition is implemented. Not yet cancelable. All signals for acquisitions has been implemented : “acquisition-started”, “data-received”, “acquisition-terminated” and “image-received”. This allow a high coordination of Widgets
- Flegita now connect to the signal “image-received” and just save to a file using a GtkFileChooserDialog. Flegita is close to what it will be. I’ll only add a GnomeScanPreview widget to the UI and flegita will be done. As Flegita is pretty near its final state, you can easily see the simplicity of the code : 99 lines including comments and blank line !
- Option handling has been highly improved. Properties “title”, “desc”, “readonly” and “unit” has been added and implemented. Future options “range” and “enum” for constraint are declared. A new signal “changed” is trigger on value set. This signal will be propagate to GnomeScanner signal “option-changed”.
- The GnomeScanContext object received a lot of improvement. A new property “image-size” allow UI to inform the user of the approximate end image size. GnomeScanContext has now a lot of signal to coordinate all the GnomeScan implementation. This Object just rocks !
- UI receive good improvement. Window use “xsane” icon. The ScannerSelector now show “xsane” icon for each device. The final goal is to have a Flegita icon and a icon representing the type of the scanner. An important changes is that the GnomeScanDialog now receive the UI as parameters. This allow and force user to instanciate ScanWidget (like ScannerSelector, Preview, etc.) before the ScanDialog. That’s a better design in a general manner.
- Probe is threaded, but thread is blocking so that’s not yet useful. I may investigate further in that domain later.
The future :
- Implement GnomeScanPreview widget. Get inspired by Mark Finlay work (thanks Colin Marquardt)
- Improve GnomeScannerOption. Implement option lookup and improve “changed” signals. etc.
- Maybe provide a ComboBox to Flegita that allow to choose action : “Save to File”, “Print”, “Fax”, “e-mail”, etc.
- Investigate global well know option in GnomeScanContext. (e.g. resolution, area, etc.).
Stay tuned.
Gnome Scan Technology Preview
June 21, 2006
The work on Gnome Scan API and UI is going on. I work on a quite well designed API and start building a GnomeScanDialog and a GnomeScannerSelector widgets. As a first step is done, I release gnomescan-0.0.1.
What is implemented :
- Devices and Device’s option probe.
- Device selector updated on “probe-done” signal. If you have only one device, the selector is hidden.
- Device selection and “scanner-selected” signal.
- Preliminary handle of “ok” response to trigger acquisition
GnomeScan already have a nice feature : you can choose dynamically a device without reprobe. GnomeScan use signals to propagate choices and actions.
You can see screenshot at http://bersace03.free.fr/pub/captures/gnome/flegita and download at http://bersace03.free.fr/pub/GNOME/Scan/Releases/.
Next step is basic acquisition using signals to inform both acquisition status and sent picture.
Étienne.
Giving Gnome A Sane Scanner Infrastructure
May 30, 2006
So nice that the only one app i submit has been selected to take part of the Google Summer of Code 2006. Thanks to Google.
My project is a librarized Gnome xsane replacement. I do not intend to replace xsane because xsane is multiplateforme, maintained and full-featured.
This project is dual headed : in one hand Gnome needs a real scan Api, in the other hand we needs great interface integrated in the desktop. To address thos goals, i will build the following targets :
- A library for scan access
- A library for scan widgets
- A capplet to configure devices
Once the Gnome scan infrastructure is done, we will be able to easily produce good UI. For this SoC i intend to write :
- A simple standalone app
- A Gimp plugin
- An Abiword plugin
- gthumb patch to add album import feature
I create the GnomeScanning wiki page that gather all information and thoughts on that problem. I posted a call for comment at gnome-devel mailing list. Any comment are very very welcome.
Étienne.