diff -r 518b245aa84c -r 4e4b6adb1024 messagingapp/msgservices/msgserviceapp/src/msgserviceviewmanager.cpp --- 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