--- a/messagingapp/msgservices/msgserviceapp/src/msgserviceviewmanager.cpp Fri Jun 25 15:47:40 2010 +0530
+++ b/messagingapp/msgservices/msgserviceapp/src/msgserviceviewmanager.cpp Tue Jun 29 23:42:47 2010 +0530
@@ -344,7 +344,7 @@
case ConvergedMessage::Mms:
case ConvergedMessage::MmsNotification:
{
- handleSmsMmsMsg(msgId);
+ handleSmsMmsMsg(msgId,msgType);
break;
}
case ConvergedMessage::BioMsg:
@@ -377,22 +377,64 @@
// MsgServiceViewManager::handleSmsMmsMsg
// @see header
// ----------------------------------------------------------------------------
-void MsgServiceViewManager::handleSmsMmsMsg(int msgId)
+void MsgServiceViewManager::handleSmsMmsMsg(int msgId,int msgType)
+{
+ if(mStoreHandler->isDraftMessage(msgId))
{
- if (!mUniViewer) {
- mUniViewer = new UnifiedViewer(msgId);
- mUniViewer->setNavigationAction(mBackAction);
- mMainWindow->addView(mUniViewer);
- connect(mUniViewer, SIGNAL(switchView(const QVariantList&)), this,
- SLOT(switchView(const QVariantList&)));
+ ConvergedMessageId convergedMsgId = ConvergedMessageId(msgId);
+ ConvergedMessage message;
+ message.setMessageType((ConvergedMessage::MessageType) msgType);
+ message.setMessageId(convergedMsgId);
+
+ // Launch uni-editor view
+ QByteArray dataArray;
+ QDataStream messageStream(&dataArray, QIODevice::WriteOnly | QIODevice::Append);
+ message.serialize(messageStream);
+
+ QVariantList params;
+ params << MsgBaseView::UNIEDITOR; // target view
+ params << MsgBaseView::SERVICE; // source view
+
+ params << dataArray;
+
+ // except first 2 parameters pass other parameters
+ QVariantList editorData;
+ for(int a = 2; a < params.length(); ++a)
+ {
+ editorData << params.at(a);
+ }
+ // construct
+ if (!mUniEditor) {
+ mUniEditor = new MsgUnifiedEditorView();
+ mMainWindow->addView(mUniEditor);
+ mUniEditor->setNavigationAction(mBackAction);
+ connect(mUniEditor, SIGNAL(switchView(const QVariantList&)), this,
+ SLOT(switchView(const QVariantList&)));
+ }
+
+ // check if additional data for unieditor's consumption is available
+ mUniEditor->openDraftsMessage(editorData);
+
+ mMainWindow->setCurrentView(mUniEditor);
+ mCurrentView = MsgBaseView::UNIEDITOR;
}
- mUniViewer->populateContent(msgId, true, 1);
+ else
+ {
+ if (!mUniViewer) {
+ mUniViewer = new UnifiedViewer(msgId);
+ mUniViewer->setNavigationAction(mBackAction);
+ mMainWindow->addView(mUniViewer);
+ connect(mUniViewer, SIGNAL(switchView(const QVariantList&)), this,
+ SLOT(switchView(const QVariantList&)));
+ }
+ mUniViewer->populateContent(msgId, true, 1);
- mMainWindow->setCurrentView(mUniViewer);
-
- // set current view as viewer
- mCurrentView = MsgBaseView::UNIVIEWER;
+ mMainWindow->setCurrentView(mUniViewer);
+
+ // set current view as viewer
+ mCurrentView = MsgBaseView::UNIVIEWER;
}
+}
// ----------------------------------------------------------------------------
// MsgServiceViewManager::handleRingtoneMsg