Skip to content

Commit

Permalink
[qtcontacts-sqlite] Provide extensions package
Browse files Browse the repository at this point in the history
Provide an extensions package with headers declaring the extensions
to qtcontacts supported by this backend.
  • Loading branch information
matthewvogt committed Jul 15, 2013
1 parent 6290aa5 commit 812a957
Show file tree
Hide file tree
Showing 20 changed files with 422 additions and 71 deletions.
13 changes: 13 additions & 0 deletions rpm/qtcontacts-sqlite-qt5.spec
Expand Up @@ -33,6 +33,19 @@ This package contains unit tests for the qtcontacts-sqlite-qt5 library.
%defattr(-,root,root,-)
/opt/tests/qtcontacts-sqlite-qt5/*

%package extensions
Summary: QtContacts extension headers for qtcontacts-sqlite-qt5
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}

%description extensions
This package contains extension headers for the qtcontacts-sqlite-qt5 library.

%files extensions
%defattr(-,root,root,-)
%{_libdir}/pkgconfig/qtcontacts-sqlite-qt5-extensions.pc
%{_includedir}/qtcontacts-sqlite-extensions/*


%prep
%setup -q -n %{name}-%{version}
Expand Down
13 changes: 13 additions & 0 deletions rpm/qtcontacts-sqlite.spec
Expand Up @@ -38,6 +38,19 @@ This package contains unit tests for the qtcontacts-sqlite library.
%defattr(-,root,root,-)
/opt/tests/qtcontacts-sqlite/*

%package extensions
Summary: QtContacts extension headers for qtcontacts-sqlite
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}

%description extensions
This package contains extension headers for the qtcontacts-sqlite library.

%files extensions
%defattr(-,root,root,-)
%{_libdir}/pkgconfig/qtcontacts-sqlite-extensions.pc
%{_includedir}/qtcontacts-sqlite-extensions/*


%prep
%setup -q -n %{name}-%{version}
Expand Down
20 changes: 11 additions & 9 deletions src/engine/contactreader.cpp
Expand Up @@ -31,9 +31,11 @@

#include "contactreader.h"
#include "contactsengine.h"
#include "constants_p.h"
#include "conversion_p.h"

#include "qtcontacts-extensions.h"
#include "QContactOriginMetadata"

#include <QContactAddress>
#include <QContactAnniversary>
#include <QContactAvatar>
Expand Down Expand Up @@ -449,16 +451,16 @@ static void setValues(QContactUrl *detail, QSqlQuery *query, const int offset)

static const FieldInfo tpMetadataFields[] =
{
{ QContactTpMetadata__FieldContactId, "telepathyId", StringField },
{ QContactTpMetadata__FieldAccountId, "accountId", StringField },
{ QContactTpMetadata__FieldAccountEnabled, "accountEnabled", BooleanField }
{ QContactOriginMetadata::FieldId, "telepathyId", StringField },
{ QContactOriginMetadata::FieldGroupId, "accountId", StringField },
{ QContactOriginMetadata::FieldEnabled, "accountEnabled", BooleanField }
};

static void setValues(QContactTpMetadata *detail, QSqlQuery *query, const int offset)
static void setValues(QContactOriginMetadata *detail, QSqlQuery *query, const int offset)
{
setValue(detail, QContactTpMetadata__FieldContactId , query->value(offset + 0));
setValue(detail, QContactTpMetadata__FieldAccountId , query->value(offset + 1));
setValue(detail, QContactTpMetadata__FieldAccountEnabled, query->value(offset + 2));
setValue(detail, QContactOriginMetadata::FieldId , query->value(offset + 0));
setValue(detail, QContactOriginMetadata::FieldGroupId, query->value(offset + 1));
setValue(detail, QContactOriginMetadata::FieldEnabled, query->value(offset + 2));
}

#ifdef USING_QTPIM
Expand Down Expand Up @@ -640,7 +642,7 @@ static const DetailInfo detailInfo[] =
DEFINE_DETAIL(QContactRingtone , Ringtones , ringtoneFields , false),
DEFINE_DETAIL(QContactTag , Tags , tagFields , false),
DEFINE_DETAIL(QContactUrl , Urls , urlFields , false),
DEFINE_DETAIL(QContactTpMetadata , TpMetadata , tpMetadataFields , true),
DEFINE_DETAIL(QContactOriginMetadata, TpMetadata , tpMetadataFields , true),
DEFINE_DETAIL(QContactGlobalPresence, GlobalPresences, presenceFields , true)
};

Expand Down
9 changes: 5 additions & 4 deletions src/engine/contactreader.h
Expand Up @@ -32,13 +32,14 @@
#ifndef CONTACTREADER_H
#define CONTACTREADER_H

#include <QSqlDatabase>
#include <QSqlQuery>
#include "contactid_p.h"
#include "contactsdatabase.h"

#include <QContact>
#include <QContactManager>

#include "contactid_p.h"
#include "contactsdatabase.h"
#include <QSqlDatabase>
#include <QSqlQuery>

USE_CONTACTS_NAMESPACE

Expand Down
8 changes: 1 addition & 7 deletions src/engine/contactsdatabase.cpp
Expand Up @@ -39,8 +39,6 @@

#include <QtDebug>

USE_CONTACTS_NAMESPACE

static const char *setupEncoding =
"\n PRAGMA encoding = \"UTF-16\";";

Expand Down Expand Up @@ -609,8 +607,4 @@ QString ContactsDatabase::expandQuery(const QSqlQuery &query)
return expandQuery(query.lastQuery(), query.boundValues());
}

#ifdef USING_QTPIM
const QContactDetail::DetailType QContactTpMetadata::Type(static_cast<QContactDetail::DetailType>(QContactDetail::TypeVersion + 1));
#else
Q_IMPLEMENT_CUSTOM_CONTACT_DETAIL(QContactTpMetadata, "TpMetadata");
#endif
#include "qcontactoriginmetadata_impl.h"
17 changes: 1 addition & 16 deletions src/engine/contactsdatabase.h
Expand Up @@ -33,9 +33,7 @@
#define QTCONTACTSSQLITE_CONTACTSDATABASE

#include <QSqlDatabase>
#include <QContactDetail>

#include <QtGlobal>
#include <QVariantList>

class ContactsDatabase
{
Expand All @@ -52,17 +50,4 @@ class ContactsDatabase
static QString expandQuery(const QSqlQuery &query);
};

BEGIN_CONTACTS_NAMESPACE
class QContactTpMetadata : public QContactDetail
{
public:
#ifdef USING_QTPIM
Q_DECLARE_CUSTOM_CONTACT_DETAIL(QContactTpMetadata)
#else
Q_DECLARE_CUSTOM_CONTACT_DETAIL(QContactTpMetadata, "TpMetadata")
#endif
};
END_CONTACTS_NAMESPACE


#endif
3 changes: 2 additions & 1 deletion src/engine/contactsengine.cpp
Expand Up @@ -35,7 +35,8 @@
#include "contactnotifier.h"
#include "contactreader.h"
#include "contactwriter.h"
#include "constants_p.h"

#include "qtcontacts-extensions.h"

#include <QCoreApplication>
#include <QMutex>
Expand Down
27 changes: 13 additions & 14 deletions src/engine/contactwriter.cpp
Expand Up @@ -34,7 +34,6 @@
#include "contactsengine.h"
#include "contactreader.h"
#include "contactnotifier.h"
#include "constants_p.h"
#include "conversion_p.h"
#include "semaphore_p.h"

Expand Down Expand Up @@ -393,7 +392,7 @@ static const char *insertUrl =
"\n :url,"
"\n :subTypes)";

static const char *insertTpMetadata =
static const char *insertOriginMetadata =
"\n INSERT INTO TpMetadata ("
"\n contactId,"
"\n telepathyId,"
Expand Down Expand Up @@ -505,7 +504,7 @@ ContactWriter::ContactWriter(const ContactsEngine &engine, const QSqlDatabase &d
, m_insertRingtone(prepare(insertRingtone, database))
, m_insertTag(prepare(insertTag, database))
, m_insertUrl(prepare(insertUrl, database))
, m_insertTpMetadata(prepare(insertTpMetadata, database))
, m_insertOriginMetadata(prepare(insertOriginMetadata, database))
, m_insertDetail(prepare(insertDetail, database))
, m_insertIdentity(prepare(insertIdentity, database))
, m_removeAddress(prepare("DELETE FROM Addresses WHERE contactId = :contactId;", database))
Expand All @@ -525,7 +524,7 @@ ContactWriter::ContactWriter(const ContactsEngine &engine, const QSqlDatabase &d
, m_removeRingtone(prepare("DELETE FROM Ringtones WHERE contactId = :contactId;", database))
, m_removeTag(prepare("DELETE FROM Tags WHERE contactId = :contactId;", database))
, m_removeUrl(prepare("DELETE FROM Urls WHERE contactId = :contactId;", database))
, m_removeTpMetadata(prepare("DELETE FROM TpMetadata WHERE contactId = :contactId;", database))
, m_removeOriginMetadata(prepare("DELETE FROM TpMetadata WHERE contactId = :contactId;", database))
, m_removeDetail(prepare("DELETE FROM Details WHERE contactId = :contactId AND detail = :detail;", database))
, m_removeIdentity(prepare("DELETE FROM Identities WHERE identity = :identity;", database))
, m_reader(reader)
Expand Down Expand Up @@ -1302,7 +1301,7 @@ QMap<QContactDetail::DetailType, const char *> getDetailTypeNames()
INSERT(rv, QContactVersion);

// Our extensions:
INSERT(rv, QContactTpMetadata);
INSERT(rv, QContactOriginMetadata);

return rv;
}
Expand Down Expand Up @@ -1731,7 +1730,7 @@ static ContactWriter::DetailList allSupportedDetails()
appendDetailType<QContactOnlineAccount>(&details);
appendDetailType<QContactPresence>(&details);
appendDetailType<QContactGlobalPresence>(&details);
appendDetailType<QContactTpMetadata>(&details);
appendDetailType<QContactOriginMetadata>(&details);
appendDetailType<QContactAddress>(&details);
appendDetailType<QContactTag>(&details);
appendDetailType<QContactUrl>(&details);
Expand All @@ -1756,7 +1755,7 @@ static ContactWriter::DetailList allSingularDetails()
appendDetailType<QContactGender>(&details);
appendDetailType<QContactTimestamp>(&details);
appendDetailType<QContactBirthday>(&details);
appendDetailType<QContactTpMetadata>(&details);
appendDetailType<QContactOriginMetadata>(&details);

return details;
}
Expand Down Expand Up @@ -2851,7 +2850,7 @@ QContactManager::Error ContactWriter::write(quint32 contactId, QContact *contact
&& writeDetails<QContactRingtone>(contactId, contact, m_removeRingtone, definitionMask, &error)
&& writeDetails<QContactTag>(contactId, contact, m_removeTag, definitionMask, &error)
&& writeDetails<QContactUrl>(contactId, contact, m_removeUrl, definitionMask, &error)
&& writeDetails<QContactTpMetadata>(contactId, contact, m_removeTpMetadata, definitionMask, &error)) {
&& writeDetails<QContactOriginMetadata>(contactId, contact, m_removeOriginMetadata, definitionMask, &error)) {
return QContactManager::NoError;
}
return error;
Expand Down Expand Up @@ -3097,11 +3096,11 @@ QSqlQuery &ContactWriter::bindDetail(quint32 contactId, const QContactUrl &detai
return m_insertUrl;
}

QSqlQuery &ContactWriter::bindDetail(quint32 contactId, const QContactTpMetadata &detail)
QSqlQuery &ContactWriter::bindDetail(quint32 contactId, const QContactOriginMetadata &detail)
{
m_insertTpMetadata.bindValue(0, contactId);
m_insertTpMetadata.bindValue(1, detailValue(detail, QContactTpMetadata__FieldContactId));
m_insertTpMetadata.bindValue(2, detailValue(detail, QContactTpMetadata__FieldAccountId));
m_insertTpMetadata.bindValue(3, detailValue(detail, QContactTpMetadata__FieldAccountEnabled));
return m_insertTpMetadata;
m_insertOriginMetadata.bindValue(0, contactId);
m_insertOriginMetadata.bindValue(1, detailValue(detail, QContactOriginMetadata::FieldId));
m_insertOriginMetadata.bindValue(2, detailValue(detail, QContactOriginMetadata::FieldGroupId));
m_insertOriginMetadata.bindValue(3, detailValue(detail, QContactOriginMetadata::FieldEnabled));
return m_insertOriginMetadata;
}
14 changes: 8 additions & 6 deletions src/engine/contactwriter.h
Expand Up @@ -35,8 +35,8 @@
#include "contactsdatabase.h"
#include "contactid_p.h"

#include <QSet>
#include <QSqlQuery>
#include "qtcontacts-extensions.h"
#include "QContactOriginMetadata"

#include <QContactAddress>
#include <QContactAnniversary>
Expand All @@ -55,9 +55,11 @@
#include <QContactRingtone>
#include <QContactTag>
#include <QContactUrl>

#include <QContactManager>

#include <QSet>
#include <QSqlQuery>

USE_CONTACTS_NAMESPACE

class ProcessMutex;
Expand Down Expand Up @@ -148,7 +150,7 @@ class ContactWriter
QSqlQuery &bindDetail(quint32 contactId, const QContactRingtone &detail);
QSqlQuery &bindDetail(quint32 contactId, const QContactTag &detail);
QSqlQuery &bindDetail(quint32 contactId, const QContactUrl &detail);
QSqlQuery &bindDetail(quint32 contactId, const QContactTpMetadata &detail);
QSqlQuery &bindDetail(quint32 contactId, const QContactOriginMetadata &detail);

const ContactsEngine &m_engine;
QSqlDatabase m_database;
Expand Down Expand Up @@ -186,7 +188,7 @@ class ContactWriter
QSqlQuery m_insertRingtone;
QSqlQuery m_insertTag;
QSqlQuery m_insertUrl;
QSqlQuery m_insertTpMetadata;
QSqlQuery m_insertOriginMetadata;
QSqlQuery m_insertDetail;
QSqlQuery m_insertIdentity;
QSqlQuery m_removeAddress;
Expand All @@ -206,7 +208,7 @@ class ContactWriter
QSqlQuery m_removeRingtone;
QSqlQuery m_removeTag;
QSqlQuery m_removeUrl;
QSqlQuery m_removeTpMetadata;
QSqlQuery m_removeOriginMetadata;
QSqlQuery m_removeDetail;
QSqlQuery m_removeIdentity;
ContactReader *m_reader;
Expand Down
13 changes: 13 additions & 0 deletions src/engine/engine.pro
Expand Up @@ -14,6 +14,9 @@ DEFINES += 'QTCONTACTS_SQLITE_PRIVILEGED_DATABASE_DIR=\'\"/home/nemo/.privileged
DEFINES += 'QTCONTACTS_SQLITE_DATABASE_DIR=\'\"/home/nemo/.local/share/data/\"\''
DEFINES += 'QTCONTACTS_SQLITE_DATABASE_NAME=\'\"contacts.db\"\''

INCLUDEPATH += \
../extensions

HEADERS += \
semaphore_p.h \
constants_p.h \
Expand All @@ -39,5 +42,15 @@ SOURCES += \
target.path = $$[QT_INSTALL_PLUGINS]/contacts
INSTALLS += target

headers.path = $${PREFIX}/include/qtcontacts-sqlite-extensions
headers.files = ../extensions/*
headers.depends = ../extensions/*
INSTALLS += headers

pkgconfig.path = $${PREFIX}/lib/pkgconfig
equals(QT_MAJOR_VERSION, 4): pkgconfig.files = ../qtcontacts-sqlite-extensions.pc
equals(QT_MAJOR_VERSION, 5): pkgconfig.files = ../qtcontacts-sqlite-qt5-extensions.pc
INSTALLS += pkgconfig

equals(QT_MAJOR_VERSION, 5): OTHER_FILES += plugin.json

1 change: 1 addition & 0 deletions src/extensions/QContactOriginMetadata
@@ -0,0 +1 @@
#include "./qcontactoriginmetadata.h"

0 comments on commit 812a957

Please sign in to comment.