[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdepim/KDE/4.14] libkdepim/addressline: Use new baloocompletionemail
From: Montel Laurent <montel () kde ! org>
Date: 2015-02-04 7:40:34
Message-ID: E1YIuZe-0000oB-Da () scm ! kde ! org
[Download RAW message or body]
Git commit 8ad016dafe77116ee38861b603596a72ddff3407 by Montel Laurent.
Committed on 04/02/2015 at 07:40.
Pushed by mlaurent into branch 'KDE/4.14'.
Use new baloocompletionemail
M +7 -25 libkdepim/addressline/addresseelineedit.cpp
M +68 -0 libkdepim/addressline/autotests/baloocompletionemailtest.cpp
M +4 -0 libkdepim/addressline/autotests/baloocompletionemailtest.h
M +11 -2 libkdepim/addressline/baloocompletionemail.cpp
http://commits.kde.org/kdepim/8ad016dafe77116ee38861b603596a72ddff3407
diff --git a/libkdepim/addressline/addresseelineedit.cpp \
b/libkdepim/addressline/addresseelineedit.cpp index 412eca4..9af085d 100644
--- a/libkdepim/addressline/addresseelineedit.cpp
+++ b/libkdepim/addressline/addresseelineedit.cpp
@@ -29,6 +29,7 @@
#include "completionordereditor.h"
#include "addressline/blacklistbaloocompletion/blacklistbalooemailcompletiondialog.h"
#include "kmailcompletion.h"
+#include "baloocompletionemail.h"
#include <Akonadi/Contact/ContactSearchJob>
#include <Akonadi/Contact/ContactGroupSearchJob>
@@ -234,7 +235,6 @@ public:
connect( &m_delayedQueryTimer, SIGNAL(timeout()), q, \
SLOT(slotTriggerDelayedQueries()) ); }
void loadBalooBlackList();
- QStringList cleanupBalooContact(const QStringList &lst);
void alternateColor();
void init();
void startLoadingLDAPEntries();
@@ -368,35 +368,17 @@ void AddresseeLineEdit::Private::stopLDAPLookup()
s_static->ldapLineEdit = 0;
}
-
-QStringList AddresseeLineEdit::Private::cleanupBalooContact(const QStringList &lst)
-{
- if (lst.isEmpty())
- return lst;
- QHash<QString, QString> hashEmail;
- Q_FOREACH (const QString &email, lst) {
- if (!hashEmail.contains(email.toLower())) {
- hashEmail.insert(email.toLower(), email);
- }
- }
- return hashEmail.values();
-}
-
void AddresseeLineEdit::Private::searchInBaloo()
{
const QString trimmedString = m_searchString.trimmed();
Baloo::PIM::ContactCompleter com(trimmedString, 20);
- const QStringList listEmail = cleanupBalooContact(com.complete());
+ KPIM::BalooCompletionEmail completionEmail;
+ completionEmail.setEmailList(com.complete());
+ completionEmail.setBlackList(m_balooBlackList);
+ completionEmail.setExcludeDomain(m_domainExcludeList);
+ const QStringList listEmail = completionEmail.cleanupEmailList();
Q_FOREACH (const QString& email, listEmail) {
- Q_FOREACH(const QString &excludeDomain, m_domainExcludeList) {
- if (email.endsWith(excludeDomain)) {
- continue;
- }
- }
-
- if (!m_balooBlackList.contains(email)) {
- addCompletionItem(email, 1, s_static->balooCompletionSource);
- }
+ addCompletionItem(email, 1, s_static->balooCompletionSource);
}
doCompletion( m_lastSearchMode );
// if ( q->hasFocus() || q->completionBox()->hasFocus() ) {
diff --git a/libkdepim/addressline/autotests/baloocompletionemailtest.cpp \
b/libkdepim/addressline/autotests/baloocompletionemailtest.cpp index e567cdd..b1fed0e \
100644
--- a/libkdepim/addressline/autotests/baloocompletionemailtest.cpp
+++ b/libkdepim/addressline/autotests/baloocompletionemailtest.cpp
@@ -74,4 +74,72 @@ void \
BalooCompletionEmailTest::shouldReturnSameListIfBlackListDoesntInterceptEma \
QCOMPARE(completion.cleanupEmailList(), emailList); }
+void BalooCompletionEmailTest::shouldReturnUniqueEmail()
+{
+ KPIM::BalooCompletionEmail completion;
+ QStringList emailList;
+ emailList << QLatin1String("foo");
+ emailList << QLatin1String("foo");
+ emailList << QLatin1String("foo1");
+ emailList << QLatin1String("foo");
+ emailList << QLatin1String("foo1");
+ emailList << QLatin1String("foo2");
+ completion.setEmailList(emailList);
+ QCOMPARE(completion.cleanupEmailList(), (QStringList() << QLatin1String("foo") \
<< QLatin1String("foo1") << QLatin1String("foo2") ) ); +}
+
+void BalooCompletionEmailTest::shouldReturnEmptyListWhenAllBlackListed()
+{
+ KPIM::BalooCompletionEmail completion;
+ QStringList emailList;
+ emailList << QLatin1String("foo");
+ emailList << QLatin1String("foo2");
+ emailList << QLatin1String("foo3");
+ emailList << QLatin1String("foo4");
+ emailList << QLatin1String("foo5");
+ emailList << QLatin1String("foo6");
+ completion.setEmailList(emailList);
+ completion.setBlackList(emailList);
+ QVERIFY(completion.cleanupEmailList().isEmpty());
+}
+
+void BalooCompletionEmailTest::shouldExcludeDomain()
+{
+ KPIM::BalooCompletionEmail completion;
+ QStringList emailList;
+ emailList << QLatin1String("foo@kde.org");
+ emailList << QLatin1String("foo2@kde.org");
+ emailList << QLatin1String("foo3@kde.org");
+ emailList << QLatin1String("foo4@kde.org");
+ emailList << QLatin1String("foo5@kde.org");
+ emailList << QLatin1String("foo6@kde.org");
+ completion.setEmailList(emailList);
+ completion.setExcludeDomain(QStringList() << QLatin1String("kde.org"));
+ QVERIFY(completion.cleanupEmailList().isEmpty());
+
+ const QString newAddress = QLatin1String("foo6@linux.org");
+ emailList << newAddress;
+ completion.setEmailList(emailList);
+ QCOMPARE(completion.cleanupEmailList(), (QStringList() << newAddress) );
+
+ completion.setExcludeDomain(QStringList() << QLatin1String("kde.org") << \
QLatin1String("linux.org") ); + QVERIFY(completion.cleanupEmailList().isEmpty());
+}
+
+void BalooCompletionEmailTest::shouldReturnEmailListWhenDomainListIsNotNull()
+{
+ KPIM::BalooCompletionEmail completion;
+ QStringList emailList;
+ emailList << QLatin1String("foo@kde.org");
+ emailList << QLatin1String("foo2@kde.org");
+ emailList << QLatin1String("foo3@kde.org");
+ emailList << QLatin1String("foo4@kde.org");
+ emailList << QLatin1String("foo5@kde.org");
+ emailList << QLatin1String("foo6@kde.org");
+ emailList.sort();
+ completion.setEmailList(emailList);
+ completion.setExcludeDomain(QStringList() << QLatin1String(""));
+ QCOMPARE(completion.cleanupEmailList(), emailList);
+}
+
QTEST_KDEMAIN(BalooCompletionEmailTest, NoGUI)
diff --git a/libkdepim/addressline/autotests/baloocompletionemailtest.h \
b/libkdepim/addressline/autotests/baloocompletionemailtest.h index a815f3b..47cb248 \
100644
--- a/libkdepim/addressline/autotests/baloocompletionemailtest.h
+++ b/libkdepim/addressline/autotests/baloocompletionemailtest.h
@@ -34,6 +34,10 @@ private Q_SLOTS:
void returnEmptyListWhenEmailListIsEmpty();
void shouldReturnSameListWhenNotExclude();
void shouldReturnSameListIfBlackListDoesntInterceptEmail();
+ void shouldReturnUniqueEmail();
+ void shouldReturnEmptyListWhenAllBlackListed();
+ void shouldExcludeDomain();
+ void shouldReturnEmailListWhenDomainListIsNotNull();
};
#endif // BALOOCOMPLETIONEMAILTEST_H
diff --git a/libkdepim/addressline/baloocompletionemail.cpp \
b/libkdepim/addressline/baloocompletionemail.cpp index 0ec966c..d352448 100644
--- a/libkdepim/addressline/baloocompletionemail.cpp
+++ b/libkdepim/addressline/baloocompletionemail.cpp
@@ -19,8 +19,8 @@
*/
#include "baloocompletionemail.h"
-
#include <QMap>
+#include <QDebug>
using namespace KPIM;
BalooCompletionEmail::BalooCompletionEmail()
@@ -50,7 +50,16 @@ QStringList BalooCompletionEmail::cleanupEmailList() const
QMap<QString, QString> hashEmail;
Q_FOREACH (const QString &email, mListEmail) {
if (!mBlackList.contains(email)) {
- if (!hashEmail.contains(email.toLower())) {
+ bool excludeMail = false;
+ Q_FOREACH(const QString &excludeDomain, mExcludeDomain) {
+ if (!excludeDomain.isEmpty()) {
+ if (email.endsWith(excludeDomain)) {
+ excludeMail = true;
+ continue;
+ }
+ }
+ }
+ if (!excludeMail && !hashEmail.contains(email.toLower())) {
hashEmail.insert(email.toLower(), email);
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic