diff options
author | AleksW <qt-info@nokia.com> | 2010-04-12 18:47:36 +1000 |
---|---|---|
committer | Don Sanders <don.sanders@nokia.com> | 2010-04-12 21:37:50 +1000 |
commit | 38be106c7a639013c05cafc8d78a78be49c6709d (patch) | |
tree | 77a4023272e606ddbfa859f955a2858d162c9b8e | |
parent | 002c433b14a39ef3d7024f9b4203a5d0ff4ad602 (diff) |
Prefix identifier on Windows Mobile backend. MOBILITY-377.
-rw-r--r-- | examples/serviceactions/mainwindow.cpp | 2 | ||||
-rw-r--r-- | src/messaging/qmessageaccountid_win.cpp | 4 | ||||
-rw-r--r-- | src/messaging/qmessagecontentcontainer_p.h | 6 | ||||
-rw-r--r-- | src/messaging/qmessagecontentcontainerid_win.cpp | 5 | ||||
-rw-r--r-- | src/messaging/qmessagefolderid_win.cpp | 4 | ||||
-rw-r--r-- | src/messaging/qmessageid_win.cpp | 4 | ||||
-rw-r--r-- | src/messaging/winhelpers.cpp | 20 | ||||
-rw-r--r-- | src/messaging/winhelpers_p.h | 11 | ||||
-rw-r--r-- | tests/auto/support/support.h | 1 | ||||
-rw-r--r-- | tests/auto/support/support.pri | 1 | ||||
-rw-r--r-- | tests/auto/support/support_win.cpp | 4 |
11 files changed, 47 insertions, 15 deletions
diff --git a/examples/serviceactions/mainwindow.cpp b/examples/serviceactions/mainwindow.cpp index e2ebbd3296..da45276283 100644 --- a/examples/serviceactions/mainwindow.cpp +++ b/examples/serviceactions/mainwindow.cpp @@ -518,7 +518,7 @@ void RecentMessagesWidget::processResults() QMessage message(id); QListWidgetItem* newItem = new QListWidgetItem(message.from().addressee()+QString(":")+message.subject()); - newItem->setData(MessageIdRole,id.toString()); + newItem->setData(MessageIdRole,id.toString()); QFont itemFont = newItem->font(); bool isPartialMessage = !message.find(message.bodyId()).isContentAvailable(); itemFont.setItalic(isPartialMessage); diff --git a/src/messaging/qmessageaccountid_win.cpp b/src/messaging/qmessageaccountid_win.cpp index be91be8b8e..82790b7cad 100644 --- a/src/messaging/qmessageaccountid_win.cpp +++ b/src/messaging/qmessageaccountid_win.cpp @@ -90,7 +90,7 @@ QMessageAccountId::QMessageAccountId(const QMessageAccountId& other) QMessageAccountId::QMessageAccountId(const QString& id) : d_ptr(new QMessageAccountIdPrivate(this)) { - QDataStream idStream(QByteArray::fromBase64(id.toLatin1())); + QDataStream idStream(QByteArray::fromBase64(WinHelpers::stripIdPrefix(id).toLatin1())); idStream >> d_ptr->_storeRecordKey; } @@ -134,7 +134,7 @@ QString QMessageAccountId::toString() const QDataStream encodedIdStream(&encodedId, QIODevice::WriteOnly); encodedIdStream << d_ptr->_storeRecordKey; - return encodedId.toBase64(); + return WinHelpers::addIdPrefix(encodedId.toBase64()); } bool QMessageAccountId::isValid() const diff --git a/src/messaging/qmessagecontentcontainer_p.h b/src/messaging/qmessagecontentcontainer_p.h index 5303650f56..a7277e1a64 100644 --- a/src/messaging/qmessagecontentcontainer_p.h +++ b/src/messaging/qmessagecontentcontainer_p.h @@ -355,7 +355,7 @@ public: return; } #endif - container.d_ptr->_id = QMessageContentContainerId(QString::number(_attachments.count()+1)); + container.d_ptr->_id = QMessageContentContainerId(WinHelpers::addIdPrefix(QString::number(_attachments.count()+1))); _attachments.append(container); return container.d_ptr->_id; } @@ -370,14 +370,14 @@ public: #endif _attachments.prepend(container); for (int i = 0; i < _attachments.count(); ++i) { - _attachments[i].d_ptr->_id = QMessageContentContainerId(QString::number(i+1)); + _attachments[i].d_ptr->_id = QMessageContentContainerId(WinHelpers::addIdPrefix(QString::number(i+1))); } return _attachments[0].d_ptr->_id; } QMessageContentContainerId bodyContentId() const { - return QMessageContentContainerId(QString::number(0)); + return QMessageContentContainerId(WinHelpers::addIdPrefix(QString::number(0))); } static QString attachmentFilename(const QMessageContentContainer& container) diff --git a/src/messaging/qmessagecontentcontainerid_win.cpp b/src/messaging/qmessagecontentcontainerid_win.cpp index b6a667b339..bcbe437eac 100644 --- a/src/messaging/qmessagecontentcontainerid_win.cpp +++ b/src/messaging/qmessagecontentcontainerid_win.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qmessagecontentcontainerid.h" #include "qmessagecontentcontainerid_p.h" +#include "winhelpers_p.h" QTM_BEGIN_NAMESPACE @@ -58,7 +59,7 @@ QMessageContentContainerId::QMessageContentContainerId(const QString& id) : d_ptr(new QMessageContentContainerIdPrivate) { if (!id.isEmpty()) { - d_ptr->_number = id.toUInt(); + d_ptr->_number = WinHelpers::stripIdPrefix(id).toUInt(); } } @@ -83,7 +84,7 @@ QMessageContentContainerId& QMessageContentContainerId::operator=(const QMessage QString QMessageContentContainerId::toString() const { - return QString::number(d_ptr->_number); + return WinHelpers::addIdPrefix(QString::number(d_ptr->_number)); } bool QMessageContentContainerId::isValid() const diff --git a/src/messaging/qmessagefolderid_win.cpp b/src/messaging/qmessagefolderid_win.cpp index 718f0084ae..e63f06353c 100644 --- a/src/messaging/qmessagefolderid_win.cpp +++ b/src/messaging/qmessagefolderid_win.cpp @@ -108,7 +108,7 @@ QMessageFolderId::QMessageFolderId(const QMessageFolderId& other) QMessageFolderId::QMessageFolderId(const QString& id) : d_ptr(new QMessageFolderIdPrivate(this)) { - QDataStream idStream(QByteArray::fromBase64(id.toLatin1())); + QDataStream idStream(QByteArray::fromBase64(WinHelpers::stripIdPrefix(id).toLatin1())); d_ptr->_valid = true; #ifdef _WIN32_WCE idStream >> d_ptr->_entryId; @@ -201,7 +201,7 @@ QString QMessageFolderId::toString() const if (d_ptr->_entryId.count()) encodedIdStream << d_ptr->_entryId; #endif - return encodedId.toBase64(); + return WinHelpers::addIdPrefix(encodedId.toBase64()); } bool QMessageFolderId::isValid() const diff --git a/src/messaging/qmessageid_win.cpp b/src/messaging/qmessageid_win.cpp index 60d0570c21..ae1c1757a5 100644 --- a/src/messaging/qmessageid_win.cpp +++ b/src/messaging/qmessageid_win.cpp @@ -180,7 +180,7 @@ QMessageId::QMessageId(const QMessageId& other) QMessageId::QMessageId(const QString& id) : d_ptr(new QMessageIdPrivate(this)) { - QDataStream idStream(QByteArray::fromBase64(id.toLatin1())); + QDataStream idStream(QByteArray::fromBase64(WinHelpers::stripIdPrefix(id).toLatin1())); #ifdef _WIN32_WCE idStream >> d_ptr->_entryId; @@ -290,7 +290,7 @@ QString QMessageId::toString() const encodedIdStream << d_ptr->_folderRecordKey; encodedIdStream << d_ptr->_storeRecordKey; - return encodedId.toBase64(); + return WinHelpers::addIdPrefix(encodedId.toBase64()); } bool QMessageId::isValid() const diff --git a/src/messaging/winhelpers.cpp b/src/messaging/winhelpers.cpp index 613c2c5447..b83e0a8987 100644 --- a/src/messaging/winhelpers.cpp +++ b/src/messaging/winhelpers.cpp @@ -91,6 +91,24 @@ #include <QTimer> #include <QMutexLocker> +QTM_BEGIN_NAMESPACE + +namespace WinHelpers { + QString addIdPrefix(const QString& id) + { + Q_ASSERT(!id.startsWith(QString(idPrefix))); + return QString(idPrefix) + id; + } + + QString stripIdPrefix(const QString& id) + { + Q_ASSERT(id.startsWith(QString(id))); + return id.right(id.length() - QString(idPrefix).length()); + } +} + +QTM_END_NAMESPACE + #include <shlwapi.h> #include <shlguid.h> @@ -120,6 +138,8 @@ QTM_BEGIN_NAMESPACE namespace WinHelpers { + + bool setMapiProperty(IMAPIProp *object, ULONG tag, const QString &value) { SPropValue prop = { 0 }; diff --git a/src/messaging/winhelpers_p.h b/src/messaging/winhelpers_p.h index 03853a3779..e7b80ed9c1 100644 --- a/src/messaging/winhelpers_p.h +++ b/src/messaging/winhelpers_p.h @@ -53,6 +53,16 @@ #include <QQueue> #include <QEvent> +QTM_BEGIN_NAMESPACE + +namespace WinHelpers { + QString addIdPrefix(const QString& id); + QString stripIdPrefix(const QString& id); + static const char* idPrefix = "WIN_"; +}; + +QTM_END_NAMESPACE + #ifndef _WIN32_WCE #define USES_IID_IMAPIForm @@ -129,6 +139,7 @@ typedef QSharedPointer<MapiSession> MapiSessionPtr; namespace WinHelpers { + enum SavePropertyOption { DontSavePropertyChanges = 0, SavePropertyChanges }; QString QStringFromLpctstr(LPCTSTR lpszValue); diff --git a/tests/auto/support/support.h b/tests/auto/support/support.h index 845a730eba..d230190a3d 100644 --- a/tests/auto/support/support.h +++ b/tests/auto/support/support.h @@ -64,6 +64,7 @@ namespace Support { QMessageId addMessage(const Parameters ¶ms); #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) + bool mapiAvailable(); #endif } diff --git a/tests/auto/support/support.pri b/tests/auto/support/support.pri index 32c4f6501e..de233aedb3 100644 --- a/tests/auto/support/support.pri +++ b/tests/auto/support/support.pri @@ -19,7 +19,6 @@ symbian|wince*|maemo*|win32|mac { else { LIBS += mapi32.lib Advapi32.lib } - } maemo5 { QT += dbus diff --git a/tests/auto/support/support_win.cpp b/tests/auto/support/support_win.cpp index 9e4edd8de9..fc7649051d 100644 --- a/tests/auto/support/support_win.cpp +++ b/tests/auto/support/support_win.cpp @@ -386,7 +386,7 @@ QMessageAccountId accountIdFromRecordKey(const QByteArray &recordKey) encodedIdStream << recordKey; } - return QMessageAccountId(encodedId.toBase64()); + return QMessageAccountId(QString("WIN_")+encodedId.toBase64()); } QMessageFolderId folderIdFromProperties(const QByteArray &recordKey, const QByteArray &entryId, const QByteArray &storeKey) @@ -407,7 +407,7 @@ QMessageFolderId folderIdFromProperties(const QByteArray &recordKey, const QByte #endif } - return QMessageFolderId(encodedId.toBase64()); + return QMessageFolderId(QString("WIN_") + encodedId.toBase64()); } QByteArray objectProperty(IMAPIProp *object, ULONG tag) |