email_plat/email_services_api/inc/email_services_api.h
author hgs
Thu, 30 Sep 2010 11:43:07 +0300
changeset 74 6c59112cfd31
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
74
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: Email services API to be used through Qt Highway.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef EMAIL_SERVICES_API_H
hgs
parents:
diff changeset
    19
#define EMAIL_SERVICES_API_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// Qt
hgs
parents:
diff changeset
    22
#include <QMetaType>
hgs
parents:
diff changeset
    23
#include <QString>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// Platform
hgs
parents:
diff changeset
    26
#include <xqaiwdeclplat.h>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
/*!
hgs
parents:
diff changeset
    30
    The flags which can be used with the service interfaces.
hgs
parents:
diff changeset
    31
*/
hgs
parents:
diff changeset
    32
enum EmailServiceInterfaceFlags {
hgs
parents:
diff changeset
    33
    EmailNoFlags = 0x0,
hgs
parents:
diff changeset
    34
    EmailBackReturnsToMessageList = 0x1
hgs
parents:
diff changeset
    35
};
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
Q_DECLARE_METATYPE(EmailServiceInterfaceFlags)
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
/*!
hgs
parents:
diff changeset
    41
    Keys for mail send service data.
hgs
parents:
diff changeset
    42
*/
hgs
parents:
diff changeset
    43
static const QString emailSendSubjectKey = "subject";
hgs
parents:
diff changeset
    44
static const QString emailSendToKey = "to";
hgs
parents:
diff changeset
    45
static const QString emailSendCcKey = "cc";
hgs
parents:
diff changeset
    46
static const QString emailSendBccKey = "bcc";
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
// MIME type for body text, e.g. "text/html". If this key is not defined,
hgs
parents:
diff changeset
    49
// emailSendBodyValueKey is treated as "text/plain".
hgs
parents:
diff changeset
    50
static const QString emailSendBodyMimeTypeKey = "mimeType";
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
static const QString emailSendBodyTextKey = "body";
hgs
parents:
diff changeset
    53
static const QString emailSendAttachmentKey = "attachment";
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
/*!
hgs
parents:
diff changeset
    56
    Mail service name
hgs
parents:
diff changeset
    57
*/
hgs
parents:
diff changeset
    58
static const QString emailServiceName("nmail");
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
/*!
hgs
parents:
diff changeset
    61
    Mail send service interface name.
hgs
parents:
diff changeset
    62
*/
hgs
parents:
diff changeset
    63
static const QString emailFullServiceNameSend = emailServiceName + "." + XQI_EMAIL_MESSAGE_SEND;
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
/*!
hgs
parents:
diff changeset
    66
    Mailbox service full name.
hgs
parents:
diff changeset
    67
*/
hgs
parents:
diff changeset
    68
static const QString emailFullServiceNameMailbox = emailServiceName + "." + XQI_EMAIL_INBOX_VIEW;
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
/*!
hgs
parents:
diff changeset
    72
    Message service full name.
hgs
parents:
diff changeset
    73
*/
hgs
parents:
diff changeset
    74
static const QString emailFullServiceNameMessage = emailServiceName + "." + XQI_EMAIL_MESSAGE_VIEW;
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
/*!
hgs
parents:
diff changeset
    78
    \fn send(QVariant data)
hgs
parents:
diff changeset
    79
    \param data The email message data e.g. recipients.
hgs
parents:
diff changeset
    80
    \return 1 if success, 0 otherwise.
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
    The method opens the mail editor view and adds the given data into the view.
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
    The data is of type QMap<QString, QVariant> where the keys define the type
hgs
parents:
diff changeset
    85
    of the data (e.g. recipient or mail subject). The values in the map for
hgs
parents:
diff changeset
    86
    recipients (to, cc and bcc) may contain either strings (for a single
hgs
parents:
diff changeset
    87
    recipient) or string lists (for multiple recipients).
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
    The method supports the following mail data:
hgs
parents:
diff changeset
    90
        - recipients (to, cc and bcc) and
hgs
parents:
diff changeset
    91
        - mail subject.
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
    This service is used via Qt Highway.
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
    Usage example:
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
        bool syncronous;
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
        XQServiceRequest request(XQI_EMAIL_MESSAGE_SEND,
hgs
parents:
diff changeset
   100
                                 XQOP_EMAIL_MESSAGE_SEND,
hgs
parents:
diff changeset
   101
                                 syncronous);
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
        QMap<QString, QVariant> map;
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
        QStringList recipients;
hgs
parents:
diff changeset
   106
        QString subject;
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
        ...
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
        map.insert(emailSendToKey, QVariant::fromValue(recipients));
hgs
parents:
diff changeset
   111
        map.insert(emailSendSubjectKey, QVariant(subject));
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
        QList<QVariant> data;
hgs
parents:
diff changeset
   114
        data.append(map);
hgs
parents:
diff changeset
   115
        request.setArguments(data);
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
        QVariant returnValue;
hgs
parents:
diff changeset
   118
        bool retVal = request.send(returnValue);
hgs
parents:
diff changeset
   119
*/
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
/*!
hgs
parents:
diff changeset
   123
    \fn displayInboxByMailboxId(QVariant data)
hgs
parents:
diff changeset
   124
    \param data The ID of the mailbox to open
hgs
parents:
diff changeset
   125
    \return 1 if mailbox opened. 0 if mailbox ID was incorrect.
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
    This method opens a view for displaying the inbox of the given mailbox.
hgs
parents:
diff changeset
   128
    It is intended to be used via Qt Highway.
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
    Usage example:
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
    XQServiceRequest request(
hgs
parents:
diff changeset
   133
        XQI_EMAIL_INBOX_VIEW,
hgs
parents:
diff changeset
   134
        XQOP_EMAIL_INBOX_VIEW,
hgs
parents:
diff changeset
   135
        syncronous);
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
    QList<QVariant> list;
hgs
parents:
diff changeset
   138
    list.append(QVariant(id));
hgs
parents:
diff changeset
   139
    request.setArguments(list);
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
    QVariant returnValue;
hgs
parents:
diff changeset
   142
    bool rval = request.send(returnValue);
hgs
parents:
diff changeset
   143
*/
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
/*!
hgs
parents:
diff changeset
   147
    \fn viewMessage(QVariant idList, QVariant flags)
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
    This method opens the mail viewer view containing the specific message.
hgs
parents:
diff changeset
   150
    It is intended to be used via Qt Highway.
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
    \param idList A list containing the required IDs for locating the wanted
hgs
parents:
diff changeset
   154
                  message. The ID are the following (and should be placed in
hgs
parents:
diff changeset
   155
                  the following order): mailbox ID, folder ID and message ID.
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
    \param flags The flags which can contain any values defined by
hgs
parents:
diff changeset
   158
                 EmailServiceInterfaceFlags enumeration. The only flag
hgs
parents:
diff changeset
   159
                 acknowledged by this interface is EmailBackReturnsToMessageList,
hgs
parents:
diff changeset
   160
                 which, if given, will add the message list (according to the
hgs
parents:
diff changeset
   161
                 given mailbox and folder IDs) into the view stack. This means
hgs
parents:
diff changeset
   162
                 that when the back button is pressed from the viewer view, the
hgs
parents:
diff changeset
   163
                 message list view will be shown.
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    \return 1 if message was opened. 0 if one of the IDs was incorrect.
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
    Usage example:
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
    XQServiceRequest request(
hgs
parents:
diff changeset
   171
       XQI_EMAIL_MESSAGE_VIEW,
hgs
parents:
diff changeset
   172
       XQOP_EMAIL_MESSAGE_VIEW,
hgs
parents:
diff changeset
   173
       synchronous);
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
    QVariantList idList;
hgs
parents:
diff changeset
   176
    idList.append(mailboxId);
hgs
parents:
diff changeset
   177
    idList.append(folderId);
hgs
parents:
diff changeset
   178
    idList.append(messageId);
hgs
parents:
diff changeset
   179
    QVariant idListAsVariant = QVariant::fromValue(idList);
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
    // Add the message list view into the view stack. If the list view should
hgs
parents:
diff changeset
   182
    // not be added into the stack, use "quint64 flags(EmailNoFlags);" instead.
hgs
parents:
diff changeset
   183
    quint64 flags(EmailBackReturnsToMessageList);
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
    QList<QVariant> argumentList;
hgs
parents:
diff changeset
   186
    argumentList.append(idListAsVariant);
hgs
parents:
diff changeset
   187
    argumentList.append(flags);
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
    request.setArguments(argumentList);
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
    QVariant returnValue;
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
    bool rval = request.send(returnValue);
hgs
parents:
diff changeset
   194
*/
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
hgs
parents:
diff changeset
   197
#endif // EMAIL_SERVICES_API_H