*
*/
-#include <QDebug>
+#include <QtCore/QDebug>
#include "contactmanager.h"
-namespace
-{
- const int COUNTRY_CODES[] = {358, 45, 46, 47};
- const int NUM_OF_CODES = 4;
-}
ContactManager::ContactManager(): book_(0)
{
ContactManager::~ContactManager()
{
+ if(book_)
+ {
+ g_object_unref(book_);
+ }
}
bool ContactManager::numberExists(QString const& number)
EBookQuery* query;
GList *g_contacts;
- QString copy(number);
- QString clean = removeCountryCode(copy);
+ // Just check the last 7 digits
+ QString clean = number.right(7);
query = e_book_query_any_field_contains(clean.toLatin1());
return false;
}
+ e_book_query_unref(query);
+
if (g_contacts == 0)
{
- qDebug() << "no contacts";
return false;
}
return true;
}
- qDebug() << "Loading addressbook";
-
GError *error;
error = 0;
book_ = e_book_new_system_addressbook(&error);
- qDebug() << "Loaded almost";
-
if (!book_)
{
- qDebug() << "Couldn't open addressbook: %s" << error->message;
+ qDebug() << "Couldn't open addressbook: %s" << error->message;
g_error_free(error);
return false;
}
- qDebug() << "Addressbook loaded";
-
/* Open connection to the address book */
if (!e_book_open(book_, FALSE, &error))
{
return false;
}
- qDebug() << "Addressbook opened";
-
return true;
}
-QString& ContactManager::removeCountryCode(QString& number)
-{
- if(number.isEmpty())
- {
- return number;
- }
-
- if(number.at(0) == '0')
- {
- return number.remove(0, 1);
- }
- else if(number.at(0) != '+')
- {
- return number;
- }
-
- static QRegExp countryCodeCleaner;
- static bool countryCodeCleanerLoaded = false;
-
- if(!countryCodeCleanerLoaded)
- {
- QString match = "";
-
- for(int i = 0; i < NUM_OF_CODES; i++)
- {
- if(i > 0)
- {
- match += "|";
- }
-
- match += "\\+" + QString::number(COUNTRY_CODES[i]);
- }
-
- countryCodeCleaner = QRegExp("^(" + match + ")");
- countryCodeCleanerLoaded = true;
- }
-
- return number.replace(countryCodeCleaner, "");
-}
-