summaryrefslogtreecommitdiffstats
path: root/doc/src/snippets/qtcontactsdocsample/qtcontactsdocsample.cpp
diff options
context:
space:
mode:
authorChris Adams <chris.adams@nokia.com>2009-09-07 14:27:12 +1000
committerChris Adams <chris.adams@nokia.com>2009-09-07 14:27:12 +1000
commitbb4a6553548e206190eecc122c9ab9e2b95eff9f (patch)
tree87acb86e292e99b89de8a236286421a8a19a78ca /doc/src/snippets/qtcontactsdocsample/qtcontactsdocsample.cpp
parent88e784151145d760a43c2f68faeec6243d00b2f4 (diff)
Update docs and snippet example application
Diffstat (limited to 'doc/src/snippets/qtcontactsdocsample/qtcontactsdocsample.cpp')
-rw-r--r--doc/src/snippets/qtcontactsdocsample/qtcontactsdocsample.cpp62
1 files changed, 57 insertions, 5 deletions
diff --git a/doc/src/snippets/qtcontactsdocsample/qtcontactsdocsample.cpp b/doc/src/snippets/qtcontactsdocsample/qtcontactsdocsample.cpp
index 71caf94f8c..678c3b6a9a 100644
--- a/doc/src/snippets/qtcontactsdocsample/qtcontactsdocsample.cpp
+++ b/doc/src/snippets/qtcontactsdocsample/qtcontactsdocsample.cpp
@@ -32,9 +32,12 @@
****************************************************************************/
#include "qtcontacts.h"
+#include "requestexample.h"
#include <QDebug>
-#include <QApplication>
+#include <QCoreApplication>
+#include <QObject>
+#include <QTimer>
static void addContact(QContactManager*);
static void callContact(QContactManager*);
@@ -48,8 +51,13 @@ static void loadManagerWithParameters();
int main(int argc, char *argv[])
{
- QApplication app(argc, argv);
+ QCoreApplication app(argc, argv);
+ // manager configuration examples
+ loadManager();
+ loadManagerWithParameters();
+
+ // synchronous API examples
QContactManager* cm = new QContactManager();
addContact(cm);
callContact(cm);
@@ -59,10 +67,13 @@ int main(int argc, char *argv[])
viewDetails(cm);
addPlugin(cm);
editView(cm);
- delete cm;
- loadManager();
- loadManagerWithParameters();
+ // asynchronous API example
+ RequestExample re;
+ re.setManager(cm);
+ QTimer::singleShot(10, &re, SLOT(performRequest()));
+ app.exec();
+ delete cm;
return 0;
}
@@ -238,6 +249,47 @@ void editView(QContactManager* cm)
}
//! [Modifying an existing contact]
+//! [Asynchronous contact request]
+void RequestExample::performRequest()
+{
+ // retrieve any contact whose first name is "Alice"
+ QContactDetailFilter dfil;
+ dfil.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirst);
+ dfil.setValue("Alice");
+ dfil.setMatchFlags(Qt::MatchExactly);
+
+ m_fetchRequest->setFilter(dfil);
+ connect(m_fetchRequest, SIGNAL(progress(QContactFetchRequest*,bool)), this, SLOT(printContacts(QContactFetchRequest*,bool)));
+ if (!m_fetchRequest->start()) {
+ qDebug() << "Unable to request contacts!";
+ QCoreApplication::exit(0);
+ } else {
+ qDebug() << "Requested contacts; awaiting results...";
+ }
+}
+
+void RequestExample::printContacts(QContactFetchRequest* request, bool appendOnly)
+{
+ QList<QContact> results = request->contacts();
+ if (appendOnly) {
+ // we know that the results are still in the same order; just display the new results.
+ for (m_previousLastIndex += 1; m_previousLastIndex < results.size(); m_previousLastIndex++) {
+ qDebug() << "Found another Alice:" << results.at(m_previousLastIndex).displayLabel().label();
+ }
+ } else {
+ // the order of results has changed; display them all.
+ for (m_previousLastIndex = 0; m_previousLastIndex < results.size(); m_previousLastIndex++) {
+ qDebug() << "Found another Alice:" << results.at(m_previousLastIndex).displayLabel().label();
+ }
+ }
+
+ // once we've finished retrieving results, stop processing events.
+ if (request->status() == QContactAbstractRequest::Finished || request->status() == QContactAbstractRequest::Cancelled) {
+ QCoreApplication::exit(0);
+ }
+}
+//! [Asynchronous contact request]
+
//! [Loading a specific manager backend]
void loadManager()
{