digiKam digest - 2009-06-07
Outstanding work this week was done on:
First visible effect of porting to Qt4 model list view: overlays over image thumbnails. When hovering with mouse over “plate” user will see small icons for loss-less rotating of image, rating, selection and probably more in future. Icons are faded in and out with nice looking animation, also rating widget interaction was improved.
Optimizations of database queries.
Reorganization of code with moving of 3rd party libs to one place for clarity.
Support for PGF wavelet-based image format. This
format will be used in future as internal thumbnail cache.
Eraser tool for Liquid Rescale plugin. Now editing of masks will be much simpler.
Simplification of UI in printing kipi-plugin.
|Opened bugs||Opened last week||Closed last week||Change||Opened wishes||Opened last week||Closed last week||Change|
SVN commit 976210 by cgilles:
moving DBStatDlg to libdigikam. thank to MSVC 2008 to simplify developers life with weird dll concept…
M +1 -1 CMakeLists.txt
A digikam/dbstatdlg.cpp libs/database/dbstatdlg.cpp#976209 [License: GPL (v2+)]
A digikam/dbstatdlg.h libs/database/dbstatdlg.h#976209 [License: GPL (v2+)]
SVN commit 976164 by cgilles:
New overlay buttons over icon view item to rotate left/right images. Transformations are lossless for jpeg :
we use kipi-plugin to rotate.
M +1 -0 CMakeLists.txt
M +50 -5 digikam/digikamimageview.cpp
M +6 -0 digikam/digikamimageview.h
AM digikam/imagerotationoverlay.cpp [License: GPL (v2+)]
AM digikam/imagerotationoverlay.h [License: GPL (v2+)]
SVN commit 976287 by jnarboux:
Apply patch of Pino Toscano to use external Lqr is available.
M +6 -0 CMakeLists.txt
M +34 -21 imageplugins/contentawareresizing/CMakeLists.txt
SVN commit 976426 by cgilles:
reset selection when rotate buttons are used.
M +28 -2 imagerotationoverlay.cpp
M +10 -2 imagerotationoverlay.h
SVN commit 976791 by cgilles:
remove RatingBox widget. Use RatingWidget instead everywhere.
RatingWidget has now a fading mode to display progressively widget
This mode is used in new icon-view based on Model View to switch is edit mode when
user move mouse over the widget.
During fading, widget appear and rating cannot be edited. fading duration is 1500ms.
This will prevent unwanted rating assignation to item when user move mouse over the item to
just only select it.
To really want to change rating to item, user need to stay over rating widget more than
This patch only change this behavour in iconview, not with thummbar. Thumbbar is not yet
ported to Model/View, but when it will done, we will use same component than iconview and
problem will be fixed automatically there.
M +0 -1 CMakeLists.txt
M +7 -6 digikam/albumiconviewfilter.cpp
M +18 -17 digikam/iconview.cpp
M +26 -24 digikam/imagepreviewbar.cpp
M +10 -6 digikam/imageratingoverlay.cpp
M +3 -2 digikam/imageratingoverlay.h
M +174 -65 digikam/ratingwidget.cpp
M +14 -0 digikam/ratingwidget.h
M +1 -0 libs/imageproperties/imagedescedittab.cpp
SVN commit 976887 by cgilles:
if image is unrated, draw star properly (not 6 stars)
set fading duration to 600ms
M +5 -5 ratingwidget.cpp
SVN commit 977100 by jnarboux:
Fix bug: the mask was deleted when window is resized, now it is resized.
M +0 -2 imageplugins/contentawareresizing/TODO
M +2 -4 libs/widgets/imageplugins/imageguidewidget.cpp
SVN commit 977032 by cgilles:
Display rating widget when mouse is over icon view item. By this way:
- user can always see where he can click to change rating, especially with unrated item.
- behavour is the same than select/rotate buttons over icon view item. It’s homogeneous.
With previous behavour, rating widget been displayed only when mouse is over rating widget area.
User need to discover this feature by searching area. Now, it’s more intuitive.
M +1 -1 imageratingoverlay.cpp
M +18 -5 ratingwidget.cpp
M +5 -2 ratingwidget.h
SVN commit 976979 by aclemens:
If the format string is empty, don’t add it to the map. Nobody will ever
know what format is listed and therefore it doesn’t make much sense to
add it at all.
Anyway an empty format should never appear in the query, but just to be
sure we should continue in this case.
M +3 -1 albumdb.cpp
SVN commit 976973 by aclemens:
Instead of creating multiple sub-queries, why not just use GROUP BY in
the query? This will speed up the “Database Statistics” dialog a little
Thanks to Stefano Rivoir for the tip (damn, used GROUP BY a lot in some
project, but here I forgot it ;-))
I removed the code under FIXME now, since you said it is not needed
M +12 -15 albumdb.cpp
SVN commit 977062 by jnarboux:
Add circle shaped cursor whose diameter is equal to brush size when painting mask.
M +0 -1 imageplugins/contentawareresizing/TODO
M +9 -1 libs/widgets/imageplugins/imageguidewidget.cpp
SVN commit 977055 by cgilles:
Rating Widget will use fading effect if KDE control center has right options enabled
M +4 -2 imageratingoverlay.cpp
SVN commit 977237 by jnarboux:
add icon for gallery plugin
M +2 -0 CMakeLists.txt
A icons (directory)
M +1 -1 plugin_galleryexport.cpp
SVN commit 977301 by cgilles:
enable Rating Widget fadding mode in thumbbar
M +1 -0 imagepreviewbar.cpp
SVN commit 977452 by cgilles:
move clapack to 3rdparty
M +31 -31 CMakeLists.txt
M +1 -1 digikam/CMakeLists.txt
A libs/3rdparty/clapack (directory) libs/dimg/filters/clapack#977409
D libs/dimg/filters/clapack (directory)
SVN commit 977451 by cgilles:
move sqlite2 to 3rdparty
M +32 -32 CMakeLists.txt
M +2 -2 digikam/CMakeLists.txt
A libs/3rdparty/sqlite2 (directory) libs/database/sqlite2#977409
D libs/database/sqlite2 (directory)
SVN commit 977442 by cgilles:
move libpgf in 3rdparty
A 3rdparty/libpgf (directory) database/libpgf#977409
D database/libpgf (directory)
SVN commit 977441 by cgilles:
add new sub dir for 3rd party components
A 3rdparty (directory)
SVN commit 977437 by cgilles:
first implementation of PGF image loader for digiKam image editor and Showfoto.
At this moment, only loading image is supported. Saving still in my todo list.
More info about PGF image format : http://www.libpgf.org
M +7 -8 CMakeLists.txt
SVN commit 977483 by cgilles:
Implement progress callbacks compatible with C++ and thread safe.
This is the same problem than old LibRaw implementation : libpgf only permit to use a static C ansi
procedure and handle progress event. An additional void pointer is now used to pass C++ class
which host static method.
For more informations, we follow this paper :
Julien, this is exactly a good example to do with liblqr implementation to be relly thread safe.
M +46 -41 PGFimage.cpp
M +11 -6 PGFimage.h
M +2 -2 PGFplatform.h
SVN commit 977484 by cgilles:
implement progress callback using new libpgf api
M +28 -1 pgfloader.cpp
M +4 -0 pgfloader.h
SVN commit 977534 by mwiesweg:
Not only select, but set current index as well.
For me it fixes the problem that initially the right arrow need to be pressed twice.
M +4 -0 imagecategorizedview.cpp
SVN commit 977453 by cgilles:
move lprof to 3rdparty
M +12 -12 CMakeLists.txt
A libs/3rdparty/lprof (directory) libs/lprof#977409
D libs/lprof (directory)
SVN commit 977538 by mwiesweg:
For me, KDirWatch is broken since KDE 4.2.4. It insists on reporting changes in the db journal file
and fails to watch subdirs. Thankfully we have KDirNotify as a resort.
Filter out reports of the db file and its journal.
M +4 -0 albummanager.cpp
SVN commit 977562 by mwiesweg:
For the sorting by tags and by image size many images can in fact have the same sorting value
(imagine an album without any rated image sorted by rating. The last sorting will be used,
because I think a stablesort is applied. This may be desirable, but there may be no last
sorting at all, in this case sorting is random / by image id)
In the case of equal values by rating or by image size, use the file name for sorting.
Need second-order sorting be configurable?
M +13 -2 imagesortsettings.cpp
SVN commit 977584 by aclemens:
Add more information to the AboutData dialog, like IRC and general
M +1 -1 digikam/main.cpp
M +6 -2 digikam/version.h.cmake
M +1 -1 showfoto/main.cpp
SVN commit 977590 by cgilles:
first version of PGF writer
M +53 -207 pgfloader.cpp
SVN commit 977633 by jnarboux:
Add a new tool to erase green or red masks.
M +1 -1 imageplugins/contentawareresizing/TODO
M +29 -7 imageplugins/contentawareresizing/contentawareresizetool.cpp
M +17 -5 libs/widgets/imageplugins/imageguidewidget.cpp
M +3 -2 libs/widgets/imageplugins/imageguidewidget.h
M +7 -2 libs/widgets/imageplugins/imagewidget.cpp
M +2 -1 libs/widgets/imageplugins/imagewidget.h
SVN commit 977731 by cgilles:
Saving and loading PGF file in RGB 8 bits work fine now.
M +14 -13 pgfloader.cpp
SVN commit 977776 by cgilles:
read/write PGF in 16bits work fine now
M +52 -21 pgfloader.cpp
SVN commit 977947 by cgilles:
implement loading without image data
M +25 -18 pgfloader.cpp
SVN commit 977976 by cgilles:
pgf provide a preview extraction (scaled image version) as JPEG. great
M +15 -0 thumbnailcreator.cpp
SVN commit 978111 by cgilles:
add pgf settings panel
M +1 -2 dimg/loaders/pgfloader.cpp
AM dimg/loaders/pgfsettings.cpp [License: GPL (v2+)]
AM dimg/loaders/pgfsettings.h [License: GPL (v2+)]
M +4 -3 widgets/common/filesaveoptionsbox.cpp
SVN commit 978048 by aclemens:
Use a normal JOIN here, this will greatly improve speed, especially when
called multiple times, like we do in batchthumbnailgenerator.
In my (extreme) test case the thumbnails dialog was filled in only 2
seconds instead of 3 minutes!!! (:-))
I will check further queries in the database model to see if we can
improve speed there.
M +1 -2 albumdb.cpp
SVN commit 978047 by cgilles:
preview PGF with scaled image
M +31 -5 dimg/loaders/pgfloader.cpp
M +2 -3 threadimageio/pgfutils.cpp
M +1 -0 threadimageio/previewtask.cpp
SVN commit 978055 by gateau:
More compact ui.
M +158 -198 printoptionspage.ui
SVN commit 978137 by aclemens:
a normal JOIN should be enough here, every image will have
ImageInformation in the database, at least the creation date and the
format is always known.
Therefore the images table doesn’t have to be always fully returned.
M +1 -1 imagelister.cpp
SVN commit 978169 by aclemens:
According to some dev from the sqlite IRC channel, it is always better to
tell sqlite exactly what you want to do, otherwise it might try to
optimize a query in a wrong way. If you want to use a normal INNER JOIN,
tell sqlite explicitly to do so.
M +7 -7 albumdb.cpp
SVN commit 978243 by mwiesweg:
Insert initial revision of SQL for thumbnail db.
Nothing in use yet, schema is open for discussion + changes.
M +76 -4 thumbnaildb.cpp
M +33 -2 thumbnaildb.h
M +40 -4 thumbnailschemaupdater.cpp
SVN commit 978238 by mwiesweg:
Factorize ThumbnailCreator code and prepare for addition of another
storage method for thumbnails.
M +267 -145 thumbnailcreator.cpp
M +51 -6 thumbnailcreator.h
M +24 -0 thumbnailcreator_p.h
M +3 -2 thumbnailloadthread.cpp
SVN commit 978319 by mwiesweg:
Don’t forget to rotate the image returned the first time after creation.
Prepare for database storage, where thumbs will be stored unrotated.
Add documentation to ThumbnailInfo.
M +19 -3 thumbnailcreator.cpp
M +15 -6 thumbnailcreator.h
M +1 -1 thumbnailcreator_p.h
SVN commit 978368 by mwiesweg:
A persistent index must be used here as well, else crashes can occur.
Now that the stars are shown whenever the item is entered, we dont need
mouseMoved() anymore, slotEntered() is enough.
M +4 -21 imageratingoverlay.cpp
M +1 -2 imageratingoverlay.h
SVN commit 978480 by cgilles:
compile under MSVC 9 and MinGW
M +9 -1 dimg/loaders/pgfloader.cpp
M +5 -1 threadimageio/pgfutils.cpp
SVN commit 978584 by aclemens:
Optimizing the parser a little bit.
It is always a good idea to move variable creation out of loops, to
speed up the algorithm a little and save us from constructing /
destructing the object all the time.
M +9 -8 manualrenameinput.cpp
SVN commit 978638 by cgilles:
add PGF as file to load in showfoto
M +4 -3 imagedialog.cpp
SVN commit 978687 by aclemens:
small optimizations: if possible, don’t generate variables inside of
loops to save instruction calls
M +2 -1 haariface.cpp
SVN commit 978688 by aclemens:
Use const refs in foreach loops if possible, to avoid copying of data
I marked one line with a FIXME, not sure if we can use a const ref here,
What do you think?
M +1 -1 digikam/albummanager.cpp
M +1 -1 digikam/digikamimageview.cpp
M +3 -2 libs/threadimageio/thumbnailloadthread.cpp