summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksW <qt-info@nokia.com>2010-04-12 18:47:36 +1000
committerDon Sanders <don.sanders@nokia.com>2010-04-12 21:37:50 +1000
commit38be106c7a639013c05cafc8d78a78be49c6709d (patch)
tree77a4023272e606ddbfa859f955a2858d162c9b8e
parent002c433b14a39ef3d7024f9b4203a5d0ff4ad602 (diff)
Prefix identifier on Windows Mobile backend. MOBILITY-377.
-rw-r--r--examples/serviceactions/mainwindow.cpp2
-rw-r--r--src/messaging/qmessageaccountid_win.cpp4
-rw-r--r--src/messaging/qmessagecontentcontainer_p.h6
-rw-r--r--src/messaging/qmessagecontentcontainerid_win.cpp5
-rw-r--r--src/messaging/qmessagefolderid_win.cpp4
-rw-r--r--src/messaging/qmessageid_win.cpp4
-rw-r--r--src/messaging/winhelpers.cpp20
-rw-r--r--src/messaging/winhelpers_p.h11
-rw-r--r--tests/auto/support/support.h1
-rw-r--r--tests/auto/support/support.pri1
-rw-r--r--tests/auto/support/support_win.cpp4
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 &params);
#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)