Finding contact manager in Qt
hamishwillee
(Talk | contribs) m (Hamishwillee - Add Abstract. Improve categories) |
|||
| (10 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | [[Category:Qt]][[Category:Qt Mobility]][[Category:MeeGo Harmattan]][[Category:Symbian]][[Category:PIM]][[Category:Code Snippet]][[Category:S60 5th Edition]] | |
| − | + | {{Abstract|This code snippet demonstrates how to search contact back-end managers in Qt using the Qt Mobility Contacts module.}} | |
| − | {{ | + | |
| − | | | + | {{ArticleMetaData <!-- v1.2 --> |
| − | |platform=S60 5th Edition<br />Maemo 5 | + | |sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> |
| − | | | + | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> |
| − | | | + | |devices= Nokia N97, Nokia N900 |
| − | | | + | |sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> |
| − | | | + | |platform= S60 5th Edition<br />Maemo 5 |
| + | |devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) --> | ||
| + | |dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --> | ||
| + | |signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | ||
| + | |capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --> | ||
|keywords= QContactManager, QContactLocalId | |keywords= QContactManager, QContactLocalId | ||
| + | |language= <!-- Language category code for non-English topics - e.g. Lang-Chinese --> | ||
| + | |translated-by= <!-- [[User:XXXX]] --> | ||
| + | |translated-from-title= <!-- Title only --> | ||
| + | |translated-from-id= <!-- Id of translated revision --> | ||
| + | |review-by= <!-- After re-review: [[User:username]] --> | ||
| + | |review-timestamp= <!-- After re-review: YYYYMMDD --> | ||
| + | |update-by= <!-- After significant update: [[User:username]]--> | ||
| + | |update-timestamp= <!-- After significant update: YYYYMMDD --> | ||
| + | |creationdate= 20100524 | ||
| + | |author= [[User:Tepaa]] | ||
| + | <!-- The following are not in current metadata --> | ||
| + | |id= CS001620 | ||
}} | }} | ||
| − | |||
| − | |||
| − | |||
| − | |||
==Qt project file== | ==Qt project file== | ||
| − | <code cpp> | + | <code cpp-qt> |
CONFIG += mobility | CONFIG += mobility | ||
MOBILITY = contacts | MOBILITY = contacts | ||
</code> | </code> | ||
| − | <code cpp> | + | <code cpp-qt> |
symbian { | symbian { | ||
TARGET.CAPABILITY = ReadUserData WriteUserData | TARGET.CAPABILITY = ReadUserData WriteUserData | ||
| Line 30: | Line 42: | ||
==Header== | ==Header== | ||
| − | <code cpp> | + | <code cpp-qt> |
#include <QtGui/QMainWindow> | #include <QtGui/QMainWindow> | ||
#include <QPointer> | #include <QPointer> | ||
| Line 57: | Line 69: | ||
==Source== | ==Source== | ||
| − | <code cpp> | + | <code cpp-qt> |
#include <QTimer> | #include <QTimer> | ||
#include <QMessageBox> | #include <QMessageBox> | ||
| Line 112: | Line 124: | ||
</code> | </code> | ||
| − | You can also create QContactManager to stack using | + | You can also create QContactManager to stack using '''symbian''' or '''maemo5''' backend keys: |
<code> | <code> | ||
// Create manager (Symbian backend) | // Create manager (Symbian backend) | ||
| Line 126: | Line 138: | ||
==Postconditions== | ==Postconditions== | ||
| − | Contact manager found. | + | Contact manager is found. |
==See also== | ==See also== | ||
| − | * [[ | + | * [[Setting up Qt Mobility]] |
* http://doc.qt.nokia.com/qtmobility-1.0/contacts.html | * http://doc.qt.nokia.com/qtmobility-1.0/contacts.html | ||
| − | |||
| − | |||
Latest revision as of 09:32, 17 October 2012
This code snippet demonstrates how to search contact back-end managers in Qt using the Qt Mobility Contacts module.
Article Metadata
Tested with
Devices(s): Nokia N97, Nokia N900
Compatibility
Platform(s): S60 5th Edition
Maemo 5
Maemo 5
Article
Keywords: QContactManager, QContactLocalId
Created: tepaa
(24 May 2010)
Last edited: hamishwillee
(17 Oct 2012)
Contents |
Qt project file
CONFIG += mobility
MOBILITY = contacts
symbian {
TARGET.CAPABILITY = ReadUserData WriteUserData
}
Header
#include <QtGui/QMainWindow>
#include <QPointer>
// QtMobility
#include <qcontactmanager.h>
#include <qcontact.h>
QTM_USE_NAMESPACE
class qtSnippets : public QMainWindow
{
Q_OBJECT
public:
qtSnippets(QWidget *parent = 0);
~qtSnippets();
private slots:
void createManager();
private:
QPointer<QContactManager> m_contactManager;
};
Source
#include <QTimer>
#include <QMessageBox>
qtSnippets::qtSnippets(QWidget *parent)
: QMainWindow(parent)
{
// Let application to startup fully and then
// create manager
QTimer::singleShot(0, this, SLOT(createManager()));
}
qtSnippets::~qtSnippets()
{
delete m_contactManager;
}
void qtSnippets::createManager()
{
// Get list of different contact back-ends
QStringList availableManagers = QContactManager::availableManagers();
QList<QContactLocalId> contactIds;
// Try to find contacts from some back-end
while (!availableManagers.isEmpty()) {
// Get some manager
m_contactManager = new QContactManager(availableManagers.first());
availableManagers.removeFirst();
// Contacts exists?
contactIds = m_contactManager->contactIds();
if (!contactIds.isEmpty()) {
// Contact found
availableManagers.clear();
break;
}
else {
// Not found, try the next manager
delete m_contactManager;
m_contactManager = 0;
}
}
// Use default if no contact found from any back-end
if (!m_contactManager) {
m_contactManager = new QContactManager();
}
// Show message to the user
QString msg = QString("Manager %1 created, that has %2 contacts")
.arg(m_contactManager->managerName()).arg(contactIds.count());
QMessageBox::information(this,"Contacts",msg);
}
You can also create QContactManager to stack using symbian or maemo5 backend keys:
// Create manager (Symbian backend)
QContactManager contactManager("symbian");
// Create manager (Maemo 5, Nokia N900 backend)
QContactManager contactManager("maemo5");
Postconditions
Contact manager is found.

