digiKam

Professional Photo Management with the Power of Open Source

digiKam digest - 2009-05-03

by Anonymous

This week we see work on Qt4 List Model View which will make many things
possible, among them:

- small overlay icons to performa basic actions (like in Gwenview, Lightroom)
- color labels
- more status indications

Further work on Content Aware Resize plugin with many patches. Polishing of
Free Rotation plugin interface.

Introduction of new First Run Assistant. More about it in
Gilles blog.

Removing of last elements of Qt3 code from under the hood.

New functionality for Batch Queue Manager - welcome Matthias!


------------------------------------------------------------------------

Bug/wish count

digikam 210 +14 -2 12 253 +4 -0 4
kipiplugins 100 +3 -3 0 136 +0 -0 0

[1] Opened bugs
[2] Opened last week
[3] Closed last week
[4] Change
[5] Opened wishes
[6] Opened last week
[7] Closed last week
[8] Change

Full tables:
digiKam
KIPI-plugins

------------------------------------------------------------------------

SVN commit 959869 by mwiesweg:

Get drawing to work.
Add a hack for an extra spacing below the category (unpainted, but belonging to category)
KCategorizedView aligns items Top VCenter in the grid, this should be configurable.

M +28 -12 imagecategorydrawer.cpp
M +2 -1 imagecategorydrawer.h

------------------------------------------------------------------------

SVN commit 959871 by mwiesweg:

- handle grid size calculated by delegate
- add slot to open album
- fix infinite recursion in setThumbnailSize slot
- dont forget to call base class implementations in selection slots
- handle mouse press event to clear selection on click on empty space.
Here is a place to implement a "Restore selection" feature

M +77 -7 imagecategorizedview.cpp
M +7 -0 imagecategorizedview.h

------------------------------------------------------------------------

SVN commit 959870 by mwiesweg:

Make spacing and grid size work.
Calculate sizes in delegate and emit signal to view to set grid size.
Spacing also affects the category which we 100% do not want, so we have to use
the grid size. This has the effect the spacing on the left hand side is
only 1/2 of the spacing between items, but that's ok (we can think about
more evenly distributing width spacing in an optimized way, like dolphin).
There is a workaround in place for spacing below the category.
Category spacing should be independent from item spacing.

M +48 -13 imagedelegate.cpp
M +8 -1 imagedelegate.h

------------------------------------------------------------------------

SVN commit 959872 by mwiesweg:

Add stub for a ImageCategorizedView derived class that can implement all the non-view-UI
functionality of AlbumIconView (manipulating images, drag and drop, context menu etc.)

A digikamimageview.cpp [License: GPL (v2+)]
A digikamimageview.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 959864 by mwiesweg:

- implement methods and signals for current and selected image infos
- switch on the setUniformSizes optimization
- add initial attempt at implementing the prepareThumbnails functionality
for all painted items (to load thumbnails in order of items on screen)
Unfortunately there is no indexesInRect() method available at all,
so we need to work around that
- check with delegate mouse position before calling activate()

M +92 -11 imagecategorizedview.cpp
M +24 -0 imagecategorizedview.h

------------------------------------------------------------------------

SVN commit 959932 by aclemens:

New layout: We don't need to have a checkbox for "Manual Adjustment",
it is contra productive for the workflow, because you constantly need to
check the checkbox (or you leave it checked all the way anyway).
So removing it seems to be the best way.
Also the container widgets are not flat anymore, to have a better
separation of the options.

M +10 -38 freerotationtool.cpp
M +1 -3 freerotationtool.h

------------------------------------------------------------------------

SVN commit 959863 by mwiesweg:

- add a method to check if a given position is in the region to activate the item
- emit a signal when waiting for a thumbnail to be loaded

M +11 -0 imagedelegate.cpp
M +6 -0 imagedelegate.h

------------------------------------------------------------------------

SVN commit 959861 by mwiesweg:

- add drag and drop support with help of handler
- add some convenience calls
- structure code

M +77 -17 imagemodel.cpp
M +19 -7 imagemodel.h
M +2 -2 imagemodeldragdrophandler.cpp

------------------------------------------------------------------------

SVN commit 960313 by aclemens:

Add "Go to this Tag" action in tagspopupmenu.
Sometimes you want to go to a tag that is not a child / endpoint in the
tag hierarchy.
For example:

You are watching images that contain animal tags, some of them are
specific (dog, cat, horse), but some animals have no specific
description tag.

Animals
Animals/Dog
Animals/Cat
Animals/Horse

You are not able to go to animals with the current implementation. This
patch fixes the problem.

M +10 -0 tagspopupmenu.cpp

------------------------------------------------------------------------

SVN commit 960274 by cgilles:

first implementation of first run assistant. Base classes are there. Not yet complete of course

M +1 -0 CMakeLists.txt
A firstrun (directory)
AM firstrun/assistantdlg.cpp [License: GPL (v2+)]
AM firstrun/assistantdlg.h [License: GPL (v2+)]
AM firstrun/assistantdlgpage.cpp [License: GPL (v2+)]
AM firstrun/assistantdlgpage.h [License: GPL (v2+)]
AM firstrun/welcomepage.cpp [License: GPL (v2+)]
AM firstrun/welcomepage.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 961073 by mwiesweg:

- simplify hit test API
- optimize painting - on probation, need to verify it gives the same result

M +17 -11 imagedelegate.cpp
M +9 -3 imagedelegate.h

------------------------------------------------------------------------

SVN commit 961074 by mwiesweg:

Show pointing hand cursor on activation area.
Restrict tool tip rect to rect returned from delegate.

M +24 -4 imagecategorizedview.cpp
M +1 -0 imagecategorizedview.h

------------------------------------------------------------------------

SVN commit 960912 by aclemens:

Continue porting to Qt4 / KDE4
Most of the elements are converted now, only BatchProcessImagesList has
not been converted (it is still a K3ListView), because I think we should use the
ListView used in other KIPI plugins (like RemoveRedEyes or
DNGConverter).

M +15 -25 batchprocessimagesdialog.cpp

------------------------------------------------------------------------

SVN commit 960902 by cgilles:

Added page about metadata storage

M +7 -0 assistantdlg.cpp
AM metadatapage.cpp [License: GPL (v2+)]
AM metadatapage.h [License: GPL (v2+)]
M +11 -10 rawpage.cpp

------------------------------------------------------------------------

SVN commit 960893 by aclemens:

Beginning to convert to a pure Qt4 / KDE4 implementation.
Fix layout. My hope is that this will fix the crashing of all the batch
plugins. Unfortunately you are not able to debug the plugins, BT (and
valgrind) is useless. So I cleanup the code first before making further
investigations.

M +50 -38 batchprocessimagesdialog.cpp
M +6 -6 batchprocessimagesdialog.h

------------------------------------------------------------------------

SVN commit 960805 by cgilles:

added page to set Raw file handling with editor

M +5 -0 assistantdlg.cpp
AM rawpage.cpp [License: GPL (v2+)]
AM rawpage.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 961521 by aclemens:

Hide the progressbar on startup. When plugin has been finished, hide the
progressbar again after 500ms.

Introducing new method enableWidgets(bool) to avoid code duplication.

M +24 -36 batchprocessimagesdialog.cpp
M +21 -17 batchprocessimagesdialog.h

------------------------------------------------------------------------

SVN commit 961515 by cgilles:

SendImage kipi-plugins : make dialog non modal.
BUG: 190964

M +1 -1 emailpage.h
M +1 -1 imageresize.h
M +28 -8 plugin_sendimages.cpp
M +10 -6 plugin_sendimages.h
M +2 -2 sendimages.h
M +2 -2 sendimagesdialog.cpp
M +2 -2 sendimagesdialog.h

------------------------------------------------------------------------

SVN commit 961507 by aclemens:

This should prevent all batch kipiplugins from crashing. Closing() the
dialog, then saving its settings and then deleting itself doesn't work
;-)

M +1 -2 batchprocessimagesdialog.cpp

------------------------------------------------------------------------

SVN commit 961323 by cgilles:

new page to setup preview behavour

M +5 -0 assistantdlg.cpp
AM previewpage.cpp [License: GPL (v2+)]
AM previewpage.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 961792 by mwiesweg:

Add support for overlays

M +49 -5 imagedelegate.cpp
M +17 -3 imagedelegate.h

------------------------------------------------------------------------

SVN commit 961787 by mwiesweg:

Optimize painting: squeezedText uses about one third of callgrindable painting
cycles. Optimize by use of a QCache. Now the significant callgrindable painting
step left is drawText(). Note: pixmap painting does not add on digikam's cycles, but X's!

M +19 -8 imagedelegate.cpp
M +0 -1 imagedelegate.h

------------------------------------------------------------------------

SVN commit 961789 by mwiesweg:

ItemViewHoverButton is an animated button carrying an icon that is to be shown on an item view.
Speaking clearly, it is Peter Penz's great Dolphin SelectionToggle not confined to selection icons.
Allows the same toggleSelect button as we had in IconView but with animation.

A itemviewhoverbutton.cpp [License: GPL (v2+)]
A itemviewhoverbutton.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 961791 by mwiesweg:

The ImageSelectionOverlay is an ImageDelegateOverlay that displays an ItemViewHoverButton
with the select/deselect icon in the upper corner of the item's visual rect
and adjusts the view's selection.

A imageselectionoverlay.cpp [License: GPL (v2+)]
A imageselectionoverlay.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 961786 by mwiesweg:

Make mouse wheel scrolling more "smooth" (smaller steps)

M +9 -0 imagecategorizedview.cpp
M +1 -0 imagecategorizedview.h

------------------------------------------------------------------------

SVN commit 961790 by mwiesweg:

ImageDelegateOverlay is the concept of "overlaying" functionality over the drawing of the image
view delegate. Think of the selection toggle button and the in-place rating edit box.
An overlay can extend the delegate's painting or install its own widget, and can receive
selected events and signals from the view. Overlays can be added and removed on a view anytime.
I hope it allows to implement a bit more functionality on the view in the future.

A imagedelegateoverlay.cpp [License: GPL (v2+)]
A imagedelegateoverlay.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 961986 by cgilles:

new first run assistant page to setup tooltips

M +5 -0 assistantdlg.cpp
AM tooltipspage.cpp [License: GPL (v2+)]
AM tooltipspage.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 962104 by jnarboux:

fix enable/disable of mask tool settings

M +13 -11 contentawareresizetool.cpp
M +1 -0 contentawareresizetool.h

------------------------------------------------------------------------

SVN commit 962421 by mwiesweg:

Add methods to abort the schema update at first startup (includes the initial collection
scan for images imported from older db versions)
or cancel the complete scan at normal startup (including the scan at first startup
when starting with an empty database)

CCBUG: 188959

M +41 -0 scancontroller.cpp
M +14 -2 scancontroller.h

------------------------------------------------------------------------

SVN commit 962563 by cgilles:

add info about Tools/Scan for New Items

M +3 -2 startscanpage.cpp

------------------------------------------------------------------------

SVN commit 962513 by cgilles:

more informations about first scan process, especially if user cancel this operation at the first run
CCBUGS: 188959

M +4 -3 startscanpage.cpp

------------------------------------------------------------------------

SVN commit 962658 by cgilles:

new assistant page to setup thmbnal right click

M +5 -0 assistantdlg.cpp
AM openfilepage.cpp [License: GPL (v2+)]
AM openfilepage.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 962965 by welwarsky:

add batchtool to sharpen up images

A sharpen.cpp [License: GPL (v2+)]
A sharpen.h [License: GPL (v2+)]

------------------------------------------------------------------------

SVN commit 963183 by cgilles:

add Matthias as developer

M +1 -0 AUTHORS

------------------------------------------------------------------------

Color labels

Color labels? Really? You mean putting a colored mark on a picture a-la tag?

Oh, man, this is getting way better than Bridge!

Gratz!

Color labels are in BKO and

Color labels are in BKO and they will be possible thanks to porting of Album GUI.

Note however that it was just my compilation of less or more random ;) wishes. I am not developer and in true KDE spirit this is their call.

I may be called a bit hipocryte because in appropriate bug report I was against it but after few more complicated jobs I really appreciated need for secondary, quick, simple tagging system.