messagingapp/msgui/unifiedviewer/src/unifiedviewer.cpp
changeset 25 84d9eb65b26f
parent 23 238255e8b033
child 27 e4592d119491
child 37 518b245aa84c
equal deleted inserted replaced
23:238255e8b033 25:84d9eb65b26f
    22 #include <HbAction>
    22 #include <HbAction>
    23 #include <HbToolBar>
    23 #include <HbToolBar>
    24 #include <hbmessagebox.h>
    24 #include <hbmessagebox.h>
    25 #include <hbnotificationdialog.h>
    25 #include <hbnotificationdialog.h>
    26 #include <HbStyleLoader>
    26 #include <HbStyleLoader>
       
    27 #include <centralrepository.h>       
       
    28 #include <MmsEngineDomainCRKeys.h>
    27 
    29 
    28 // USER INCLUDES
    30 // USER INCLUDES
    29 #include "uniscrollarea.h"
    31 #include "uniscrollarea.h"
    30 #include "unicontentswidget.h"
    32 #include "unicontentswidget.h"
    31 #include "univiewerfeeder.h"
    33 #include "univiewerfeeder.h"
    34 #include "convergedmessageaddress.h"
    36 #include "convergedmessageaddress.h"
    35 #include "conversationsenginedefines.h"
    37 #include "conversationsenginedefines.h"
    36 #include "conversationsengine.h"
    38 #include "conversationsengine.h"
    37 #include "debugtraces.h"
    39 #include "debugtraces.h"
    38 #include "nativemessageconsts.h"
    40 #include "nativemessageconsts.h"
       
    41 #include "mmsconformancecheck.h"
       
    42 #include "UniEditorGenUtils.h" // This is needed for KDefaultMaxSize
    39 
    43 
    40 // LOCAL CONSTANTS
    44 // LOCAL CONSTANTS
    41 const QString REPLY_ICON("qtg_mono_reply.svg");
    45 const QString REPLY_ICON("qtg_mono_reply");
    42 const QString REPLY_ALL_ICON("qtg_mono_reply_all.svg");
    46 const QString REPLY_ALL_ICON("qtg_mono_reply_all");
    43 const QString FORWARD_ICON("qtg_mono_forward.svg");
    47 const QString FORWARD_ICON("qtg_mono_forward");
    44 const QString DELETE_ICON("qtg_mono_delete.svg");
    48 const QString SEND_ICON("qtg_mono_send");
       
    49 const QString DELETE_ICON("qtg_mono_delete");
    45 
    50 
    46 //LOCALIZED CONSTANTS
    51 //LOCALIZED CONSTANTS
    47 #define LOC_DELETE_MESSAGE hbTrId("txt_messaging_dialog_delete_message")
    52 #define LOC_DELETE_MESSAGE hbTrId("txt_messaging_dialog_delete_message")
    48 #define LOC_BUTTON_DELETE hbTrId("txt_common_button_delete")
    53 #define LOC_BUTTON_DELETE hbTrId("txt_common_button_delete")
    49 #define LOC_BUTTON_CANCEL hbTrId("txt_common_button_cancel")
    54 #define LOC_BUTTON_CANCEL hbTrId("txt_common_button_cancel")
    50 #define LOC_DELETE_POPINFO hbTrId("txt_messaging_dpopinfo_message_deleted")
       
    51 
    55 
    52 //----------------------------------------------------------------------------
    56 //----------------------------------------------------------------------------
    53 // UnifiedViewer::UnifiedViewer
    57 // UnifiedViewer::UnifiedViewer
    54 // constructor
    58 // constructor
    55 //----------------------------------------------------------------------------
    59 //----------------------------------------------------------------------------
    85     mMainLayout->setSpacing(0);
    89     mMainLayout->setSpacing(0);
    86     mMainLayout->setContentsMargins(0, 0, 0, 0);
    90     mMainLayout->setContentsMargins(0, 0, 0, 0);
    87 
    91 
    88     setLayout(mMainLayout);
    92     setLayout(mMainLayout);
    89 
    93 
    90     createToolBar();
       
    91 
       
    92     QDEBUG_WRITE("UnifiedViewer contruction End");
    94     QDEBUG_WRITE("UnifiedViewer contruction End");
    93 }
    95 }
    94 
    96 
    95 //----------------------------------------------------------------------------
    97 //----------------------------------------------------------------------------
    96 // UnifiedViewer::UnifiedViewer
    98 // UnifiedViewer::UnifiedViewer
    97 // Destructor
    99 // Destructor
    98 //----------------------------------------------------------------------------
   100 //----------------------------------------------------------------------------
    99 UnifiedViewer::~UnifiedViewer()
   101 UnifiedViewer::~UnifiedViewer()
   100 {
   102 {
   101     HbStyleLoader::unregisterFilePath(":/layouts");
   103     HbStyleLoader::unregisterFilePath(":/layouts");
   102 
       
   103 }
   104 }
   104 
   105 
   105 //----------------------------------------------------------------------------
   106 //----------------------------------------------------------------------------
   106 // UnifiedViewer::createToolBar
   107 // UnifiedViewer::createToolBar
   107 // Creates tool bar actions
   108 // Creates tool bar actions
   108 //----------------------------------------------------------------------------
   109 //----------------------------------------------------------------------------
   109 void UnifiedViewer::createToolBar()
   110 void UnifiedViewer::createToolBar()
   110 {
   111 {
   111     HbToolBar *toolBar = this->toolBar();
   112     HbToolBar* toolbar = this->toolBar();
   112     toolBar->setOrientation(Qt::Horizontal);
   113     toolbar->setOrientation(Qt::Horizontal);
   113 
   114 
   114     HbAction* replyAction = new HbAction(HbIcon(REPLY_ICON), "", this);
   115     int sendingState = mViewFeeder->sendingState();
   115     toolBar->addAction(replyAction);
   116 
   116 
   117     if (mViewFeeder->sendingState() == ConvergedMessage::Failed)
   117     HbAction* replyAllAction = new HbAction(HbIcon(REPLY_ALL_ICON), "", this);
   118     {
   118     toolBar->addAction(replyAllAction);
   119         toolbar->addAction(HbIcon(SEND_ICON), "");
   119 
   120     }
   120     HbAction* forwardAction = new HbAction(HbIcon(FORWARD_ICON), "", this);
   121     else
   121     toolBar->addAction(forwardAction);
   122     {
   122 
   123         toolbar->addAction(HbIcon(REPLY_ICON), "");
   123     HbAction* deleteAction = new HbAction(HbIcon(DELETE_ICON), "", this);
   124         toolbar->addAction(HbIcon(REPLY_ALL_ICON), "");
   124     toolBar->addAction(deleteAction);
   125     }
   125 
   126 
   126     connect(deleteAction, SIGNAL(triggered()),
   127     if (validateMsgForForward())
   127     this, SLOT(handleDeleteAction()));
   128     {
       
   129         toolbar->addAction(HbIcon(FORWARD_ICON), "", this, SLOT(handleFwdAction()));
       
   130     }
       
   131 
       
   132     toolbar->addAction(HbIcon(DELETE_ICON), "", this, SLOT(handleDeleteAction()));
   128 }
   133 }
   129 
   134 
   130 //---------------------------------------------------------------
   135 //---------------------------------------------------------------
   131 // UnifiedViewer::clearContent
   136 // UnifiedViewer::clearContent
   132 // @see header file
   137 // @see header file
   173     }
   178     }
   174     mScrollArea->resetCurrentSlide();
   179     mScrollArea->resetCurrentSlide();
   175 
   180 
   176     mContentsWidget->populateContent();
   181     mContentsWidget->populateContent();
   177 
   182 
       
   183     //Creation of toolbar now depends on content
       
   184     createToolBar();
       
   185     
   178     QDEBUG_WRITE("UnifiedViewer populateContent END");
   186     QDEBUG_WRITE("UnifiedViewer populateContent END");
   179 }
   187 }
   180 
   188 
   181 //---------------------------------------------------------------
   189 //---------------------------------------------------------------
   182 // UnifiedViewer::handleFwdAction
   190 // UnifiedViewer::handleFwdAction
   183 // @see header file
   191 // @see header file
   184 //---------------------------------------------------------------
   192 //---------------------------------------------------------------
   185 void UnifiedViewer::handleFwdAction()
   193 void UnifiedViewer::handleFwdAction()
   186 {
   194 {
       
   195     ConvergedMessage message;
       
   196     ConvergedMessageId id(mMessageId);
       
   197     message.setMessageId(id);
       
   198     if(mViewFeeder->msgType() == KSenduiMtmMmsUidValue)
       
   199     {
       
   200         message.setMessageType(ConvergedMessage::Mms);
       
   201     }
       
   202     else
       
   203     {
       
   204         message.setMessageType(ConvergedMessage::Sms);    
       
   205     }
       
   206 
       
   207     QByteArray dataArray;
       
   208     QDataStream messageStream
       
   209     (&dataArray, QIODevice::WriteOnly | QIODevice::Append);
       
   210     message.serialize(messageStream);
       
   211 
       
   212     QVariantList params;
       
   213     params << MsgBaseView::UNIEDITOR; // target view
       
   214     params << MsgBaseView::UNIVIEWER; // source view
       
   215 
       
   216     params << dataArray;
       
   217     params << MsgBaseView::FORWARD_MSG;
       
   218         
       
   219     emit switchView(params);
   187 }
   220 }
   188 
   221 
   189 //---------------------------------------------------------------
   222 //---------------------------------------------------------------
   190 // UnifiedViewer::resizeEvent
   223 // UnifiedViewer::resizeEvent
   191 // @see header file
   224 // @see header file
   209     {
   242     {
   210         QList<int> msgIdList;
   243         QList<int> msgIdList;
   211         msgIdList << mMessageId;
   244         msgIdList << mMessageId;
   212 
   245 
   213         ConversationsEngine::instance()->deleteMessages(msgIdList);
   246         ConversationsEngine::instance()->deleteMessages(msgIdList);
   214         HbNotificationDialog::launchDialog(LOC_DELETE_POPINFO);
       
   215 
   247 
   216         QVariantList param;
   248         QVariantList param;
   217         if (mMsgCount > 1)
   249         if (mMsgCount > 1)
   218         {
   250         {
   219             param << MsgBaseView::CV;
   251             param << MsgBaseView::CV;
   256     params << MsgBaseView::UNIVIEWER;
   288     params << MsgBaseView::UNIVIEWER;
   257     params << dataArray;
   289     params << dataArray;
   258 
   290 
   259     emit switchView(params);
   291     emit switchView(params);
   260     }
   292     }
       
   293 
       
   294 //---------------------------------------------------------------
       
   295 // UnifiedViewer::validateMsgForForward
       
   296 // @see header file
       
   297 //---------------------------------------------------------------
       
   298 bool UnifiedViewer::validateMsgForForward()
       
   299 {
       
   300     if (mViewFeeder->msgType() == KSenduiMtmMmsUidValue)
       
   301     {
       
   302         bool retValue = false;
       
   303 
       
   304         //Validate if the mms msg can be forwarded or not
       
   305         MmsConformanceCheck* mmsConformanceCheck = new MmsConformanceCheck;        
       
   306         retValue = mmsConformanceCheck->validateMsgForForward(mMessageId);
       
   307 
       
   308         delete mmsConformanceCheck;        
       
   309         return retValue;
       
   310     }
       
   311 
       
   312     return true;
       
   313 }
       
   314 
   261 // EOF
   315 // EOF