Summary: | tag filtering works only a the second click on the tag filter list | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | cm007 |
Component: | Tags-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 0.9.0 | |
Sentry Crash Report: |
Description
cm007
2006-08-23 08:06:03 UTC
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@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(); } |