News
I've just returned from one week of vacation on Zakynthos in Greece, and the
result is the same as every year of summer vacation - a lot of time to
spent on KPhotoAlbum :-)
This year I rewrote the thumbnail viewer from the old Q3IconView to
Qt4's QListView, and while I was at it (and yes that was really my starting
point), I optimized the loading of thumbnails quite a bit. We are talking
about orders of magnitude here!
The technical details - in case you care
Just prior to my vacation I experienced with storing thumbnails in one
large file, which is much faster to load than storing each thumbail in a
file of their own. See the
details in my blog
This is what I do now, but that really only contribute to a minor part
of the speed up, it turned out that thumbnails was scaled when loaded from
the cache - at the time that seemed like a good idea, but the result was
that each thumbnail costed an extra 10 msec - which amounts to a whole
second for 100 thumbnails. Now the images in the cache has the actual size
needed. This means that it is flushed each time you resize the thumbnail -
so stop doing that a lot :-)
Another slowdown was the drawing of the 3D effect around each
thumbnail. By changing that from drawing 5 rectangles to drawing 5 filled
rectangles, I got a huge speedup :-)
What are the catch?
So is this all great, no catch?, well there is a few minor ones.
- We are storing the thumbnails in our own format now, so other
application wont be able to reused them - anyway, that has been so for
a few years already, so no big deal.
- Thumbnails needs to be recreated when thumbnail size is
changed. This was the price we had to pay for this, as the
alternative, which we used before, was to store the images in say
256x256, and then scale them down, but that was exactly what costed a
lot.
- When you resize the thumbnails, new thumbnails are generated for all
the videos too. As the thumbnail for the videos are a random screenshot from
the video, this means that it will change each time, which might make it
harder to recognize them.
- The old selection model of the thumbnail viewer has been replaced with
QListView's version. This means you do rectangle selections with the
mouse. I might rework that to use our own selection method again later
on, if there is a public demand for it.
- I'm sure I've introduced a lot of new bugs :-)
What are the advantages?
- Much much faster - we are talking about smoooth scrolling now,
something like going over say 5-10 pages of thumbnails per second,
where the old implementation took perhaps 1-2 second per page.
- The code has been rewritten to use Qt 4's QListView, which means a lot
of code had been cleaned up - to the end user this means fewer lines
for us developers to add bugs to :-)
KPhotoAlbum 4.1.1 has been released with one important bugfix, namely a
fix for images getting rotated with random angles. If you have any images
with such rotations, please do ask for help on the mailing list.
KPhotoAlbum is now a reality with many improvements and bugfixes over
the 4.0.x series. Special thanks goes to Hassan Ibraheem and Miika Turkia
who have made a large contribution to this version, and also to Wes
Hardaker, Franck Sicard, Matthias Fussel, Thomas Pircher, and Bart Visscher
who all have contributed with patches.
Try it out
New Features and major improvements since 4.0
- Reworked the browser completely
- Reworked the thumbnail view so it no looks much better
- When AnnotationDialog is called with multiple images, show
selected only shows also partially selected items. Thanks to
Hassan Ibraheem for patch.
- Added support for a copyright tag on the HTML generated pages
(Thanks to Miika Turkia for a patch for this)
- Added new theme for HTML pages which includes improved support
using java script. (Thanks to Miika Turkia for a patch for this)
- Speed up browsing of categories with many sub categories. This
took browsing from the order of magnitude of half minutes to a second.
- Made it much more explicit when done tagging images (Now there is a
show untagged images category)
- Added support for searching by rating.
- Now it is possible to add a category image from a context menu,
which makes that process much faster (this fixes bug
#195023). Thanks to Thomas Pircher for the work on that.
- Now it is possible to chose the thumbnail storage format from
the settings dialog (ppm files which we used by default are pretty
large, so on limited disk space you may wish to choose jpg instead
to trade some speed for disk space. (thanks to Franck Sicard
for a patch for this)
- Add a keybinding for delete in the viewer that will take the
image of the display list. This is useful when comparing a number
of images and want to take the worst one away every time to find
the best one. Thanks to Wes Hardaker for a
patch implementing this.
Bugfixes since 4.0
- Invoke external application for multiple files did not
work. Thanks to Miika Turkia for a patch for this.
- The HTML generator did not display the available themes
correctly. Thanks to Miika Turkia for a patch for this.
- Changed default shortcut for copy from previous image in the
annotation dialog to Alt+insert, as control+insert was eaten by
the line edits, and the shortcut did thus not work when they had
the keyboard focus.
- fixed bug #192385 - it was not possible to hide items in the
annotation between sessions.
- fixed bug #186807 - no cancel button in "create own database
dialog"
- New images was not correctly inserted into the exif database
(thanks to Bart Visscher for a patch that fixes this.)
Please rerun "Maintainance->Recreate Exif Search Database" to
ensure your database it working again.
- Somehow the XML database can get a file loaded twice. As a
remedy until we find the real bug, we will ignore the new files
when they are loaded from the database. Thanks to Franck Sicard
for a patch for this
- fixed bug #186708 - Tokens can not be access from the annotation dialog
- The remove token dialog was broken second time it was
brought up.
- fixed bug #167045: add ENTER as search dialog tag auto
completion key. Thanks to Hassan Ibraheem for the patch for this.
- fixed bug #165742: ListSelect blanks out when typing an initial
letter that does not match. Thanks to Hassan Ibraheem for the patch for this.
- fixed issue #196095 - Add icon for hide non selected. Thanks to
Hassan Ibraheem for patch.
- fixed bug #171517: Repopulate categories lists whenever an image
is loaded. Thanks to Hassan Ibraheem for patch.
- fixed bug #197107: Generated HTML pages have empty theme name and
theme author.
- Added support for rating multiple images at once in the annotation
dialog.
- Improved focus handling in the annotation dialog
- Resizing the category overview page now is done without the
actual thumbnails, that makes it much faster and much more smooth
- Fixed bug #150971 - disable too low zoom levels, thanks to alexjironkin@gmail.com
- Fixed bug #199629 - new images don't trigger dirty state, thanks
to mat.fuessel@gmx.net
- fixed bug #201116: kphotoalbum crashes when trying to remove image without deleting from disk
- To move items around in the thumbnail viewer, you now first have
to select them, then move them. This makes it so much easier to
select items, as you do not have to find an empty space to start.
- Show the file list directly in the Read Exif Info
dialog. Previously it was a secondary dialog, with a
do-not-show-again checkbox and a cancel button (none of those two
made any sense there)
A patch release of KPhotoAlbum 4.0 has been released, and it includes
these fixes:
- fixed bug #201116: kphotoalbum crashes when trying to remove image without deleting from disk
- Exif database insertion works again. Thanks to Matthias Fussel
- fixed bug #197107: Generated HTML pages have empty theme name and
theme author.
- When AnnotationDialog is called with multiple images, show
selected only shows also partially selected items. Thanks to
Hassan Ibraheem for patch.
- fixed bug #165742: ListSelect blanks out when typing an initial
letter that does not match. Thanks to Hassan Ibraheem for the patch for this.
- fixed bug #167045: add ENTER as search dialog tag auto
completion key. Thanks to Hassan Ibraheem for the patch for this.
- bug fix: The remove token dialog was broken second time it was
brought up.
- fixed bug #186708 - Tokens can not be access from the annotation dialog
- Somehow the XML database can get a file loaded twice. As a
remedy until we find the real bug, we will ignore the new files
when they are loaded from the database. Thanks to Franck Sicard
for a patch for this
- New images was not correctly inserted into the exif database
(thanks to Bart Visscher for a patch that fixes this.)
Please rerun "Maintainance->Recreate Exif Search Database" to
ensure your database it working again.
Try it out
A new snapshot has been created, the highlights are:
- Add a keybinding for delete in the viewer that will take the image of
the display list. This is useful when comparing a number of images and want
to take the worst one away every time to find the best one. Thanks to Wes
Hardaker for a patch implementing this.
- Now it is possible to chose the thumbnail storage format from the
settings dialog (ppm files which we used by default are pretty large, so on
limited disk space you may wish to choose jpg instead to trade some speed
for disk space. (thanks to Franck Sicard for a patch for this)
- To move items around in the thumbnail viewer, you now first have to
select them, then move them. This makes it so much easier to select items,
as you do not have to find an empty space to start.
- new (non round) look of the thumbnail viweer
- Refactored the code of the thumbnail viewer, so it now is much
more clean and understandable.
- Exif database insertion works again. Thanks to Matthias Fussel
- Fixed bug #199629 - new images don't trigger dirty state, thanks Matthias Fussel
- Fixed bug #150971 - disable too low zoom levels, thanks to alexjironkin AT gmail.com
Try it out
New snapshot
(11 July 2009 17:40:00 +0200
)
A new snapshot has been created, the highlights are:
- Now it is possible to add a category image from a context menu,
which makes that process much faster (this fixes bug
#195023). Thanks to Thomas Pircher for the work on that.
- Resizing the category overview page now is done without the
actual thumbnails, that makes it much faster and much more smooth
- Improved focus handling in the annotation dialog
- Made the icons in the thumbnail viewer nicer (round and with a
3D effect)
- Added support for searching by rating.
- Much improved HTML export by Miika Turkia
- Added support for rating multiple images at once in the annotation
dialog.
Try it out
New snapshot
(30 June 2009 11:00:00 +0200
)
A new snapshot has been created, the highlights are:
- Made it much more explicit when done tagging images:
- An item for showing images not yet tagged are available in the
browser
- A configuration option is available for specifying which
category and tag should be used to specify untagged images.
- This tag is set on images when loaded in
- This tag is removed when selecting "done tagging" in the
annotation dialog. It is also possible to select "continue
later" in that dialog
- Speed up browsing of categories with many sub categories. This
took browsing from the order of magnitude of half minutes to a second.
- Added new theme for HTML pages which includes improved support
using java script. (Thanks to Miika Turkia for a patch for this)
- Added support for a copyright tag on the HTML generated pages
(Thanks to Miika Turkia for a patch for this)
- A number of bugfixes.
Try it out
New web pages
(25 June 2009 17:35:00 +0200
)
It is not everything that is visible to the eye! One of those things is
the new revision of the KPhotoAlbum website. Every change this time has
happen behind the screen, where Martin
Jaburek have rewritten it all to now use PHP. Previously the sidebar
was duplicated in each an every web page - trust me that was no fun to maintain.
A new snapshot has been made today, which includes a brand new browser,
see details and download from the
snapshot page.

A brand new section has been added to the KPhotoAlbum web site helping
people getting involved. Give it a
try
Among other things, a number of junior tasks have been identified - that
is tasks, that will help you get started with the code without loosing too
much hair.
This weekend Jesper (as the last 3-4 weekends) will be working on
KPhotoAlbum all day, so join him on the IRC channel, to get started with
your contribution.
Older News