diff -r fcb676ca077d -r fdbe8253b596 messagingapp/msgui/unifiedviewer/src/unifiedviewer.cpp --- a/messagingapp/msgui/unifiedviewer/src/unifiedviewer.cpp Wed Sep 01 14:19:13 2010 +0530 +++ b/messagingapp/msgui/unifiedviewer/src/unifiedviewer.cpp Tue Sep 07 13:28:39 2010 +0530 @@ -27,6 +27,8 @@ #include #include #include +#include +#include // USER INCLUDES #include "uniscrollarea.h" @@ -64,7 +66,7 @@ //---------------------------------------------------------------------------- UnifiedViewer::UnifiedViewer(const qint32 messageId, QGraphicsItem *parent) : - MsgBaseView(parent) + MsgBaseView(parent), mConversationID(-1) { QDEBUG_WRITE("UnifiedViewer contruction start"); @@ -160,12 +162,13 @@ // UnifiedViewer::populateContent // @see header file //--------------------------------------------------------------- -void UnifiedViewer::populateContent(const qint32 messageId, bool update, int msgCount) +void UnifiedViewer::populateContent(const qint32 messageId, bool update, int msgCount, qint64 conversationId) { QDEBUG_WRITE("UnifiedViewer populateContent Start"); mMsgCount = msgCount; mMessageId = messageId; + mConversationID = conversationId; QDEBUG_WRITE("UnifiedViewer feeder->updateContent START"); @@ -198,6 +201,42 @@ } //--------------------------------------------------------------- +// UnifiedViewer::handleKeyEvent +// @see header file +//--------------------------------------------------------------- +bool UnifiedViewer::handleKeyEvent(int key) +{ + bool eventHandled = false; + if (Qt::Key_Yes == key) { + bool incoming = mViewFeeder->isIncoming(); + QString number; + if (incoming) { + QString alias; + mViewFeeder->fromAddressAndAlias(number, alias); + } + else if (!incoming && 1 == mViewFeeder->recipientCount()) { + ConvergedMessageAddressList addrList; + if ((addrList = mViewFeeder->toAddressList()).count()) { + number = addrList[0]->address(); + } + else if((addrList = mViewFeeder->ccAddressList()).count()) { + number = addrList[0]->address(); + } + else if ((addrList = mViewFeeder->bccAddressList()).count()) { + number = addrList[0]->address(); + } + } + + // Call + if (!number.isEmpty()) { + eventHandled = true; + call(number); + } + } + return eventHandled; +} + +//--------------------------------------------------------------- // UnifiedViewer::handleFwdAction // @see header file //--------------------------------------------------------------- @@ -298,6 +337,7 @@ if (mMsgCount > 1) { param << MsgBaseView::CV; param << MsgBaseView::UNIVIEWER; + param << mConversationID; } else { param << MsgBaseView::CLV; @@ -345,6 +385,26 @@ } //--------------------------------------------------------------- +// UnifiedViewer::call +// @see header file +//--------------------------------------------------------------- +void UnifiedViewer::call(const QString &number) +{ + QString service("phoneui"); + QString interface("com.nokia.symbian.ICallDial"); + QString operation("dial(QString)"); + + XQApplicationManager appManager; + QScopedPointer request(appManager.create(service, interface, operation, false)); + if (request) { + QList args; + args << number; + request->setArguments(args); + request->send(); + } +} + +//--------------------------------------------------------------- // UnifiedViewer::isForwardOk // @see header file //---------------------------------------------------------------