[Digikam-devel] extragear/graphics/digikam/digikam
Marcel Wiesweg
marcel.wiesweg at gmx.de
Mon Sep 25 13:10:21 BST 2006
SVN commit 588239 by mwiesweg:
Fix two subtle but annoying bugs in TagFilterView:
- all items are CheckBoxControllers.
Children-less controller items will enter the NoChange state after first click,
so a second click is necessary to make the filter take effect.
Set state to On directly in this case
- draw the checkbox three pixels to the right, as expected by Qt
CCMAIL: digikam-devel at kde.org
M +1 -1 folderitem.cpp
M +10 -0 tagfilterview.cpp
--- trunk/extragear/graphics/digikam/digikam/folderitem.cpp #588238:588239
@@ -199,7 +199,7 @@
(type() == QCheckListItem::CheckBoxController))
{
int boxsize = fv->style().pixelMetric(QStyle::PM_CheckListButtonSize, fv);
- int x = 0;
+ int x = 3;
int y = (height() - boxsize)/2 + margin;
r += boxsize + 4;
--- trunk/extragear/graphics/digikam/digikam/tagfilterview.cpp #588238:588239
@@ -97,6 +97,16 @@
{
QCheckListItem::stateChange(val);
+ // All TagFilterViewItems are CheckBoxControllers. If they have no children,
+ // they should be of type CheckBox, but that is not possible with our way of adding items.
+ // When clicked, children-less items first change to the NoChange state, and a second
+ // click is necessary to set them to On and make the filter take effect.
+ // So set them to On if the condition is met.
+ if (!firstChild() && state() == NoChange)
+ {
+ setState(On);
+ }
+
((TagFilterView*)listView())->triggerChange();
}
More information about the Digikam-devel
mailing list