digiKam digest - 2009-06-28

Interesting things which happened last week:

  • Bugfixing, bugfixing, bugfixing, especially in new multi-language comments
  • Optimizations, always welcome
  • Improved interoperability with LightRoom (import/export of tags)
    • tagshierarchiesimportLR
  • Initial version of digiKam-Nepomuk cooperation
  • Metadata templates (note: this is early version of GUI and may change in future)
    • metadatatemplate
  • Discussions about efficiency of sqlite as database backend

Bug/wish table

Opened bugs Opened last week Closed last week Change Opened wishes Opened last week Closed last week Change
digikam237+20-173275+2-20
kipiplugins114+6-60148+1-01

Full tables:


NEWS reports

Issues closed last week (note: due to different methodologies numbers may not add up with table above)

digiKam

+General : Added support of LightRoom keywords path for interoperability purpose. +045 ==> 152219 : Impossible to clear comments in metadata. +046 ==> 197198 : Libpng not detected during configure. +047 ==> 152199 : Deleting tags can leave orphaned IPTC keywords inside files. +048 ==> 197285 : Understand keyword hierarchies with different delimitors. +049 ==> 197640 : Add the "New folder" Option while dragging items to folders. +050 ==> 197744 : Lists of languages miss en-US. +051 ==> 197622 : digiKam crashes on exit. +052 ==> 197808 : Bad images sort order when starting digiKam. +053 ==> 197641 : Can't delete exif x-default caption once set. +054 ==> 196437 : digiKam crashes at startup. +056 ==> 197868 : digiKam crashes on startup (digikam-0.10.0-2/x86_64/Archlinux). +057 ==> 196686 : Iconview (Qt4 Model/View based) : Select multiple images with Ctrl + Mouse not working anymore in 1.0.0-beta1 +058 ==> 197961 : Cameragui freezes digikam when starting to download images from camera. +059 ==> 197445 : digiKam freezes while attempting to import images from canon powershot a540. +060 ==> 198067 : digiKam does not show any pictures.

Kipi-plugins

+024 ==> AquireImages : 194341 : digiKam crashed with seg fault. +025 ==> BatchProcessImages : 198039 : digiKam crashed after resizing several photos. +026 ==> BatchProcessImages : 197764 : Batch resize crashes digiKam upon clicking the "close" option once resizing is done. +027 ==> BatchProcessImages : 193488 : Abort after batch processing. +028 ==> BatchProcessImages : 191955 : Turn off when resizing. +029 ==> GalleryExport : 198058 : EXIF information is lost on gallery export (only when resizing).

Selected commits

SVN commit 985202 by mwiesweg: Remove "optimization" in slotLayoutChanged that only causes relayout if certain tested filter parameters have changed. But neither testing these parameters nor testing for rowCount can rule out the necessity of a relayout (our filter models e.g. dont care about these parameters. Row count may be the same but completely different indexes may be present). Remove dataChanged reimplementation. This may cause side effects! But I see no need for this. And even less for caching visual rect before a possible relayout. For me, if a proxy model wants to re-categorize, it should emit layoutChanged(). 3 files changed
SVN commit 985047 by aclemens: Dropping an album into an empty space in the albumfolderview added this album to the albumroot. But since we have multiple collections, this isn't working anymore. Disabling it for now because we get an error, but I would suggest to remove this forever, because we can not guess the correct collection, in where the album should be moved. 1 file changed
SVN commit 985196 by mwiesweg: Pass current tag ids to removeAllTags (which is hardly used at all) to get better state in the change message. Fix possible crashes in ImageInfo (check for m_data) 5 files changed
SVN commit 985199 by mwiesweg: Retrieve image + album ids in one call from given album root, album path and file name 2 files changed
SVN commit 985245 by cgilles: Update photographer info container following ImageCopyright class to prepare registration in DB. Next stage is to make Photographers indentity manager for digiKAm setup, and later add to ALbumGUI and CameraGui right sidebar a new settings to adjust photo author informations. Marcel : as ImageComment, same problem in ImageCopyright class : how to remove copyright informations from DB ? We can Add/Append new item, but not delete... CCMAIL: marcel.wiesweg@gmx.de 4 files changed
SVN commit 985160 by cgilles: polish comments metadata registration. If default comment string isNull (not isEmpty), tags which host only one comments are removed as well. CCBUGS: 152219 2 files changed
SVN commit 985198 by mwiesweg: - keep thumb db files out of mod date list - make sure there is a complete scan after changing the database while running 1 file changed
SVN commit 985277 by aclemens: Add a new method to get invalid filePaths. This should speed up the batch thumbnailer a lot if used on a big collection. Unfortunately it seems that we are not (yet) using the NoThumbnail flag (or we don't add files without thumbs at all to the filePaths table). When adding new files, they don't appear in the thumbsDB when the album has not been opened or the batch thumbnailer has not yet run. Maybe we should add files immediately to the thumbsDB when they are added to the collection and set the NoThumbnail flag. 3 files changed
SVN commit 985220 by cgilles: displatch dirty state from caption widget to sidebar. User can now press apply button to register current caption edited. 3 files changed
SVN commit 985393 by aclemens: Use InfoDlg as base class for RawCameraDlg to have a more common look in these dialogs. InfoDlg can be factorized a little bit to make adding new widgets easier. 3 files changed
SVN commit 985414 by cgilles: set-up credits.xml info file to store photographer identies. re-write setup identity page as photographers info manager TODO : use these info to store data in DB and metadata http://websvn.kde.org/?view=rev&revision=985414 7 files changed
SVN commit 985792 by cgilles: import tags hierarchies from LightRoom CCBUGS: 197285 2 files changed
SVN commit 985834 by cgilles: Export digiKam tags hierarchies to LightRoom XMP namespace CCBUGS: 197285 1 file changed
SVN commit 985689 by cgilles: Camera GUI : add option to apply metadata template to items to download from camera. CCBUGS: 139361 4 files changed
SVN commit 986000 by mwiesweg: Nepomuk coding sprint results: Initial revision of a Digikam <-> Nepomuk synchronisation bridge. For now this is implemented as a Nepomuk service running independently from the main digikam instance. Syncs rating, comment and tags; tags is one-way currently, syncing tags from Nepomuk to digikam is awaiting implementation. Changes in digikam are immediately pushed to Nepomuk by listening to digikam's DBus signals. After first start, a full sync of all entries is triggered. The initial sync is recorded in the database. Changes in Nepomuk are registered by listening to global change signals. After a timed delay a Sparql query retrieves all relevant changes that occurred since the last check. The time is recorded in the database. The database file path is read from the digikam configuration file. If an instance is running, it is queried directly. If the database file changes, the service is informed by digikam. (This does not scale well to several instances running different DBs, but digikam does not support this scenario anyway) Both syncing directions are independently configurable. Default is false for now; we should consider defaulting to true. Note: I am running KDE4.3beta2 at the moment. If there is code not compiling with KDE4.2, we must add a conditional switch to CMake. CCMAIL: digikam-devel@kde.org trueg@kde.org 4 files changed
SVN commit 986001 by mwiesweg: Add compilation of Nepomuk sync service. Please test if this is fine with KDE4.2! If not, we must make it optional for KDE >= 4.3. I guess that should be possible with CMake. 2 files changed
SVN commit 985996 by mwiesweg: Add various remove and replace methods, adjust API, some internal changes 2 files changed
SVN commit 986124 by mwiesweg: Compile nepomuk service only with KDE4.3 (beta currently) 1 file changed
SVN commit 986203 by cgilles: new findBytContents method 2 files changed
SVN commit 986271 by cgilles: new method to export ImageCopyright to Template class 2 files changed
SVN commit 986330 by mwiesweg: Clear selection before calling setCurrentIndex() at those places where the intention is clearly to set exactly one selected + current index. If Ctrl or Shift are pressed, maybe for any unrelated purpose, it would be taken into account because the selectionCommand() is shared for all purposes including mouse selection, keyboard selection and programmatical selection. 1 file changed
SVN commit 986979 by cgilles: added template management to Caption and tags right side bar. CCBUGS: 139361 http://websvn.kde.org/?view=rev&revision=986979 4 files changed
SVN commit 987080 by cgilles: Template management : to be able to host more than one author at the same time. http://websvn.kde.org/?view=rev&revision=987080 9 files changed
SVN commit 987077 by aclemens: Fix sharpen method "unsharp mask". We use the "radius" input as diameter. Actually this setting has been wrong for a long time, and ha become visible by using CImg::blur() now. 2 files changed
SVN commit 987110 by aclemens: Add new tests for ImageLoader classes. They don't do much yet, but it seems we already found a bug in PNGLoader. We need definitely more test cases for digiKam ;-) also to reduce regression errors. 5 files changed
SVN commit 987220 by mwiesweg: Dont drop newly inserted comments... CCBUG: 197641 1 file changed
SVN commit 987612 by mwiesweg: Read rights usage terms and instruction correctly from metadata to database 1 file changed
SVN commit 987695 by mwiesweg: Ignore activation by click on thumbnail if the Ctrl or Shift modifiers are pressed. BUG: 196686 1 file changed
SVN commit 987819 by mwiesweg: Implement method to retrieve all entries of a property with language code. CCBUG: 139361 2 files changed
SVN commit 987694 by mwiesweg: Got enough of this: Port Qt's QListView code for setSelection and replace home-brewn implementation. In my tests it worked nicely. This fixes the problems of "Weird behavior with Shift + Click" (any bug report?) and the problem "Ctrl + rubberband selection deselects previous selection". CCBUG: 196686 2 files changed
SVN commit 987818 by mwiesweg: Remove hardcoded FreeDesktopStandard value - remove thumbnails properly from thumbnails db after JPEG lossless rotation or adjusting EXIF orientation flag 1 file changed
SVN commit 988101 by cgilles: Matadata Template : support of multi-language alternative contents. CCBUGS: 139361 http://websvn.kde.org/?view=rev&revision=988101 8 files changed
SVN commit 988170 by cgilles: new Metadata Template Batch tool for Batch Queue Manager 3 files changed
SVN commit 988322 by aclemens: Removing this code again, it will not make things faster. I did a lot of I/O performance testing now and at least with our sqlite3 solution, we really have reached the limit, it is just not performing well on bigger collections. My thumbsDB is 970MB big, and when the disk cache has not been already filled, querying the database is painfully slow. This is not digiKam's fault, it can be easily reproduced in the sqlite3 command line tool. as root: sync echo 1 > /proc/sys/vm/drop_caches Now your disk cache is cleared, as if the system just started up. Run a simple query on a bigger thumbsDB like: select count(*) from thumbnails where type = 0; Even though this query delivers no results, it takes up to 20 seconds to completely parse the table. When used in digiKam, the application is not responding at all during this operation, you get the impression that digiKam just hung up. I have a large RAM here (4GB), but I don't know what happens if you run digiKam 1.0.0 on an average system with 512MB or 1GB RAM. For me the only solution is to go with embedded MySQL or even a real MySQL server solution. Because now we don't have just one, but two rather big databases. CCMAIL:digikam-devel@kde.org 3 files changed
SVN commit 988708 by mwiesweg: Clean up album thumbnail loader thread at shutdown 3 files changed
SVN commit 988845 by aclemens: Little performance improvement: Don't call if (QRect.contains()) for every single point to draw the transparent gray overlay for the aspect ratio widget. Especially when images are bigger, this is very slow. It still isn't fluent, but at least a little bit faster. 1 file changed

>or even a real MySQL server

>or even a real MySQL server solution.

Then hopefully postgresql would be supported too.

Disclaimer: IAMD (I am not

Disclaimer: IAMD (I am not developer)

*If* digiKam abandons sqlite in first round it should be something MySQL based to minimize digiKam specific dependencies. MySQL-embedded is used in Amarok, very popular music player, and full MySQL server is backend for Akonadi, core part of KDE.

In future... Who knows? :)

nepomuk

i'm VERY happy for the nepomuk integration!

Exciting stuff in DigiKam

First of all - DigiKam is one of the most important applications to me as photography for me is a way to relax :-)

Congratulations on the progress you are making. I think it looks exciting and I am looking forward to new releases!

The compatibility with Lightroom is especially interesting to me as I am a paying Lightroom owner and would love to be able to move all of it over and keep as much as possible.

One feature from Lightroom that I miss on import of pictures is the possibility to autocreate folders based on a date pattern (of when the picture was taken, not imported) e.g. Pictures/year/month/day is a systems I prefer using.

Regarding MySQL - I would love to be able to put all pictures on the server at home and use DigiKam on everyone PC's to watch the pictures. That would make things a bit easier. Especially if I could mark all my pictures as Read-only so the others could not save any changes to the originals. As we are in the digital age, originals should actually be marked read-only automatically on import.

One big wish from me is to move a little closer to the color correction of Lightroom. I really like the way you work there and the options.

Do you mean in example, that

Do you mean in example, that you have shooted on three days on last week and when you import, the digiKam reads all the metadata and creates albums like 2009_06_31, 2009_06_28 and 2009_06_25 ?