--- a/qtmobility/plugins/contacts/wince/contactconversions.cpp Wed Jun 23 19:08:38 2010 +0300
+++ b/qtmobility/plugins/contacts/wince/contactconversions.cpp Tue Jul 06 15:12:50 2010 +0300
@@ -1428,6 +1428,32 @@
break;
case QContactFilter::ActionFilter:
+ {
+ // Find any matching actions, and do a union filter on their filter objects
+ QContactActionFilter af(filter);
+ QList<QContactActionDescriptor> descriptors = QContactAction::actionDescriptors(af.actionName(), af.vendorName(), af.implementationVersion());
+
+ QString str;
+ QStringList strList;
+ for (int j = 0; j < descriptors.count(); j++) {
+ QContactAction* action = QContactAction::action(descriptors.at(j));
+
+ QContactFilter d = action->contactFilter(af.value());
+ delete action; // clean up.
+ if (!QContactManagerEngine::validateActionFilter(d))
+ return QString();
+
+ str = convertFilterToQueryString(d);
+ if (str.isEmpty())
+ return QString();
+ strList << str;
+ }
+
+ if (!strList.isEmpty()) {
+ ret =QString("(%1)").arg(strList.join(" OR "));
+ }
+ // Fall through to end
+ }
break;
case QContactFilter::IntersectionFilter: