Branch 'dev/invitations' - kpimidentities/CMakeLists.txt kpimidentities/utils.cpp kpimidentities/utils.h
Sandro Knauß
knauss at kolabsys.com
Wed Sep 24 13:31:38 CEST 2014
kpimidentities/CMakeLists.txt | 3 +-
kpimidentities/utils.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++
kpimidentities/utils.h | 19 +++++++++++++++
3 files changed, 73 insertions(+), 1 deletion(-)
New commits:
commit 8fd882bf054d8c8930c0153e8fb0264341ea63f3
Author: Sandro Knauà <knauss at kolabsys.com>
Date: Wed Sep 24 13:31:28 2014 +0200
added utils for cached version
diff --git a/kpimidentities/CMakeLists.txt b/kpimidentities/CMakeLists.txt
index 8957f69..2692c82 100644
--- a/kpimidentities/CMakeLists.txt
+++ b/kpimidentities/CMakeLists.txt
@@ -2,7 +2,7 @@
add_definitions( -DQT_NO_CAST_FROM_ASCII )
add_definitions( -DQT_NO_CAST_TO_ASCII )
-set(kpimidentities_LIB_SRCS identitymanager.cpp identity.cpp signature.cpp signatureconfigurator.cpp identitycombo.cpp)
+set(kpimidentities_LIB_SRCS identitymanager.cpp identity.cpp signature.cpp signatureconfigurator.cpp identitycombo.cpp utils.cpp)
add_subdirectory( tests )
@@ -28,6 +28,7 @@ install(FILES
signatureconfigurator.h
identitymanager.h
identitycombo.h
+ utils.h
${CMAKE_CURRENT_BINARY_DIR}/kpimidentities_export.h
DESTINATION ${INCLUDE_INSTALL_DIR}/kpimidentities COMPONENT Devel)
diff --git a/kpimidentities/utils.cpp b/kpimidentities/utils.cpp
new file mode 100644
index 0000000..ac087bf
--- /dev/null
+++ b/kpimidentities/utils.cpp
@@ -0,0 +1,52 @@
+#include "utils.h"
+#include "identitymanager.h"
+
+#include <QObject>
+
+using namespace KPIMIdentities;
+
+class IdendentitiesCache : public QObject
+{
+ Q_OBJECT
+public:
+ IdendentitiesCache()
+ : mIdentityManager(/*ro=*/ true)
+ {
+ connect(&mIdentityManager, SIGNAL(changed()),
+ SLOT(slotIdentitiesChanged()));
+ slotIdentitiesChanged();
+ }
+
+ const QSet<QString> &emails()
+ {
+ return mEmails;
+ }
+
+private slots:
+ void slotIdentitiesChanged()
+ {
+ mEmails.clear();
+ foreach(const QString &email, mIdentityManager.allEmails()) {
+ mEmails.insert(email.toLower());
+ }
+ }
+
+private:
+ IdentityManager mIdentityManager;
+ QSet<QString> mEmails;
+};
+
+IdendentitiesCache identitiesCache;
+
+bool thatIsMe(const QString &email)
+{
+ return allEmails().contains(email.toLower());
+}
+
+const QSet<QString> &allEmails()
+{
+ return identitiesCache.emails();
+}
+
+
+#include "utils.moc"
\ No newline at end of file
diff --git a/kpimidentities/utils.h b/kpimidentities/utils.h
new file mode 100644
index 0000000..58919b3
--- /dev/null
+++ b/kpimidentities/utils.h
@@ -0,0 +1,19 @@
+#ifndef KPIMIDENTITES_UTILS_H
+#define KPIMIDENTITES_UTILS_H
+
+#include <kpimidentities/kpimidentities_export.h>
+
+#include <QString>
+#include <QSet>
+
+namespace KPIMIdentities
+{
+ /* All functions here are very fast, cause they using a cached version of all identity emails
+ *
+ */
+ KPIMIDENTITIES_EXPORT bool thatIsMe(const QString &email);
+
+ KPIMIDENTITIES_EXPORT const QSet<QString> &allEmails();
+}
+
+#endif
\ No newline at end of file
More information about the commits
mailing list