46 #include "qcontactmanager_p.h" |
46 #include "qcontactmanager_p.h" |
47 |
47 |
48 #include <QMap> |
48 #include <QMap> |
49 #include <QString> |
49 #include <QString> |
50 #include <QList> |
50 #include <QList> |
51 |
51 #include <QQueue> |
52 #include <QDebug> |
52 #include <QDebug> |
53 |
53 |
54 #include "qtcontacts.h" |
54 #include "qtcontacts.h" |
55 #include "qcontactabook_p.h" |
55 #include "qcontactabook_p.h" |
56 #include "qcontactchangeset.h" |
56 #include "qcontactchangeset.h" |
57 |
57 |
58 #define MAEMO5_ENGINE_VERSION 0.1 |
58 #define MAEMO5_ENGINE_VERSION 0.1 |
59 |
59 |
60 QTM_USE_NAMESPACE |
60 QTM_USE_NAMESPACE |
|
61 |
|
62 Q_DEFINE_LATIN1_CONSTANT(AddressFieldExtension, "X-Maemo5-Extension"); |
61 |
63 |
62 class Q_DECL_EXPORT ContactMaemo5Factory : public QObject, public QContactManagerEngineFactory |
64 class Q_DECL_EXPORT ContactMaemo5Factory : public QObject, public QContactManagerEngineFactory |
63 { |
65 { |
64 Q_OBJECT |
66 Q_OBJECT |
65 Q_INTERFACES(QtMobility::QContactManagerEngineFactory) |
67 Q_INTERFACES(QtMobility::QContactManagerEngineFactory) |
103 |
105 |
104 QString managerName() const; |
106 QString managerName() const; |
105 QString synthesizedDisplayLabel(const QContact& contact, QContactManager::Error* error) const; |
107 QString synthesizedDisplayLabel(const QContact& contact, QContactManager::Error* error) const; |
106 bool validateContact(const QContact&, QContactManager::Error* error) const; |
108 bool validateContact(const QContact&, QContactManager::Error* error) const; |
107 bool validateDefinition(const QContactDetailDefinition&, QContactManager::Error* error) const; |
109 bool validateDefinition(const QContactDetailDefinition&, QContactManager::Error* error) const; |
|
110 QContact compatibleContact(const QContact& contact, QContactManager::Error* error) const; |
108 |
111 |
109 /* "Self" contact id (MyCard) */ |
112 /* "Self" contact id (MyCard) */ |
110 QContactLocalId selfContactId(QContactManager::Error* errors) const; |
113 QContactLocalId selfContactId(QContactManager::Error* errors) const; |
111 |
114 |
112 /* Filtering */ |
115 /* Filtering */ |
132 bool hasFeature(QContactManager::ManagerFeature feature, const QString& contactType) const; |
135 bool hasFeature(QContactManager::ManagerFeature feature, const QString& contactType) const; |
133 bool isFilterSupported(const QContactFilter& filter) const; |
136 bool isFilterSupported(const QContactFilter& filter) const; |
134 QList<QVariant::Type> supportedDataTypes() const; |
137 QList<QVariant::Type> supportedDataTypes() const; |
135 QStringList supportedContactTypes() const {return (QStringList() << QContactType::TypeContact);} |
138 QStringList supportedContactTypes() const {return (QStringList() << QContactType::TypeContact);} |
136 |
139 |
137 // XXX TODO: FIXME - these are pure virtual and so MUST be implemented by the backend. Stubs here. |
140 /* Asynchronous Request Support - synchronous versions until thread worker is stable */ |
138 QMap<QString, QString> managerParameters() const {return QMap<QString,QString>();} |
141 void requestDestroyed(QContactAbstractRequest *req); |
139 |
142 bool startRequest(QContactAbstractRequest *req); |
140 QContact compatibleContact(const QContact&, QContactManager::Error* error) const {*error = QContactManager::NotSupportedError;return QContact();} |
143 bool cancelRequest(QContactAbstractRequest *req); |
141 |
144 bool waitForRequestProgress(QContactAbstractRequest* req, int msecs); |
142 bool setSelfContactId(const QContactLocalId&, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} |
145 bool waitForRequestFinished(QContactAbstractRequest* req, int msecs); |
143 bool saveDetailDefinition(const QContactDetailDefinition&, const QString&, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} |
|
144 bool removeDetailDefinition(const QString&, const QString&, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} |
|
145 |
|
146 void requestDestroyed(QContactAbstractRequest*) {} |
|
147 bool startRequest(QContactAbstractRequest*) {return false;} |
|
148 bool cancelRequest(QContactAbstractRequest*) {return false;} |
|
149 bool waitForRequestFinished(QContactAbstractRequest*, int) {return false;} |
|
150 |
146 |
151 bool saveRelationships(QList<QContactRelationship>*, QMap<int, QContactManager::Error>*, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} |
147 private slots: |
152 bool removeRelationships(const QList<QContactRelationship>&, QMap<int, QContactManager::Error>*, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} |
148 void performAsynchronousOperation(); |
153 bool isRelationshipTypeSupported(const QString&, const QString&) const {return false;} |
149 |
154 QList<QContactRelationship> relationships(const QString&, const QContactId&, QContactRelationship::Role, QContactManager::Error* error) const {*error = QContactManager::NotSupportedError; return QList<QContactRelationship>();} |
150 private: |
155 |
151 QQueue<QContactAbstractRequest*> m_asynchronousOperations; // async requests to be performed. |
156 private: |
|
157 QSharedDataPointer<QContactMaemo5EngineData> d; |
152 QSharedDataPointer<QContactMaemo5EngineData> d; |
158 }; |
153 }; |
159 |
154 |
160 #endif |
155 #endif |
161 |
156 |