Branch 'kolab/integration/4.13.0' - akonadi/searchquery.cpp akonadi/searchquery.h

Sandro Knauß knauss at kolabsys.com
Mon Sep 1 13:12:55 CEST 2014


 akonadi/searchquery.cpp |   29 +++++++++++++++++++++++++++++
 akonadi/searchquery.h   |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+)

New commits:
commit fc65b10588c6824823fa018150b6efb0ffb5c1eb
Author: Sandro Knauß <knauss at kolabsys.com>
Date:   Thu Aug 28 13:44:46 2014 +0200

    Add Search for Invitations,decliend events..

diff --git a/akonadi/searchquery.cpp b/akonadi/searchquery.cpp
index ab81b03..dd625dd 100644
--- a/akonadi/searchquery.cpp
+++ b/akonadi/searchquery.cpp
@@ -377,3 +377,32 @@ ContactSearchTerm::ContactSearchField ContactSearchTerm::fromKey(const QString &
 {
     return contactSearchFieldMapping.key(key);
 }
+
+QMap<IncidenceSearchTerm::IncidenceSearchField, QString> initializeIncidenceMapping()
+{
+  QMap<IncidenceSearchTerm::IncidenceSearchField, QString> mapping;
+  mapping.insert(IncidenceSearchTerm::All, QLatin1String("all"));
+  mapping.insert(IncidenceSearchTerm::PartStatus, QLatin1String("partstatus"));
+  mapping.insert(IncidenceSearchTerm::Organizer, QLatin1String("organizer"));
+  mapping.insert(IncidenceSearchTerm::Summary, QLatin1String("summary"));
+  mapping.insert(IncidenceSearchTerm::Location, QLatin1String("location"));
+  return mapping;
+}
+
+static QMap<IncidenceSearchTerm::IncidenceSearchField, QString> incidenceSearchFieldMapping = initializeIncidenceMapping();
+
+IncidenceSearchTerm::IncidenceSearchTerm(IncidenceSearchTerm::IncidenceSearchField field, const QVariant &value, SearchTerm::Condition condition)
+: SearchTerm(toKey(field), value, condition)
+{
+
+}
+
+QString IncidenceSearchTerm::toKey(IncidenceSearchTerm::IncidenceSearchField field)
+{
+  return incidenceSearchFieldMapping.value(field);
+}
+
+IncidenceSearchTerm::IncidenceSearchField IncidenceSearchTerm::fromKey(const QString &key)
+{
+  return incidenceSearchFieldMapping.key(key);
+}
\ No newline at end of file
diff --git a/akonadi/searchquery.h b/akonadi/searchquery.h
index 3918c2b..ddaf6c5 100644
--- a/akonadi/searchquery.h
+++ b/akonadi/searchquery.h
@@ -271,6 +271,38 @@ public:
     static ContactSearchField fromKey(const QString &key);
 };
 
+/**
+ * A search term for a incidence field.
+ *
+ * This class can be used to create queries that akonadi incidence search backends understand.
+ *
+ * @since 5.0
+ */
+class AKONADI_EXPORT IncidenceSearchTerm : public SearchTerm
+{
+public:
+    enum IncidenceSearchField {
+        Unknown,
+        All,
+        PartStatus,                                         // Own PartStatus
+        Organizer,
+        Summary,
+        Location
+      };
+
+    IncidenceSearchTerm(IncidenceSearchField field, const QVariant &value, SearchTerm::Condition condition = SearchTerm::CondEqual);
+
+    /**
+     * Translates field to key
+     */
+    static QString toKey(IncidenceSearchField);
+
+    /**
+     * Translates key to field
+     */
+    static IncidenceSearchField fromKey(const QString &key);
+};
+
 }
 
 #endif // AKONADI_SEARCHQUERY_H




More information about the commits mailing list