messagingapp/msgui/conversationview/src/msgconversationview.cpp
changeset 56 f42d9a78f435
parent 51 3507212d340e
child 62 fdbe8253b596
equal deleted inserted replaced
55:5b3b2fa8c3ec 56:f42d9a78f435
    16  */
    16  */
    17 
    17 
    18 #include "msgconversationview.h"
    18 #include "msgconversationview.h"
    19 
    19 
    20 // SYSTEM INCLUDES
    20 // SYSTEM INCLUDES
       
    21 #include <hbapplication.h>
    21 #include <HbMenu>
    22 #include <HbMenu>
    22 #include <HbAction>
    23 #include <HbAction>
    23 #include <HbListView>
    24 #include <HbListView>
    24 #include <HbMessageBox>
    25 #include <HbMessageBox>
    25 #include <HbNotificationDialog>
    26 #include <HbNotificationDialog>
    29 #include <HbStyleLoader>
    30 #include <HbStyleLoader>
    30 #include <xqaiwrequest.h>
    31 #include <xqaiwrequest.h>
    31 #include <xqappmgr.h>
    32 #include <xqappmgr.h>
    32 #include <HbMainWindow>
    33 #include <HbMainWindow>
    33 
    34 
       
    35 #include <QInputContext>
    34 #include <QDir>
    36 #include <QDir>
    35 #include <QDateTime>
    37 #include <QDateTime>
    36 #include <QGraphicsLinearLayout>
    38 #include <QGraphicsLinearLayout>
    37 #include <QStandardItemModel>
    39 #include <QStandardItemModel>
    38 
    40 
    55 #include "unidatamodelloader.h"
    57 #include "unidatamodelloader.h"
    56 #include "unidatamodelplugininterface.h"
    58 #include "unidatamodelplugininterface.h"
    57 #include "ringbc.h"
    59 #include "ringbc.h"
    58 #include "mmsconformancecheck.h"
    60 #include "mmsconformancecheck.h"
    59 #include "msgsettingsview.h"
    61 #include "msgsettingsview.h"
    60 #include "msgaudiofetcherview.h"
       
    61 #include "unieditorpluginloader.h"
    62 #include "unieditorpluginloader.h"
    62 #include "unieditorplugininterface.h"
    63 #include "unieditorplugininterface.h"
       
    64 #include "msgaudiofetcherdialog.h"
    63 
    65 
    64 //Item specific menu.
    66 //Item specific menu.
    65 
    67 
    66 #define LOC_COMMON_OPEN hbTrId("txt_common_menu_open")
    68 #define LOC_COMMON_OPEN hbTrId("txt_common_menu_open")
    67 #define LOC_COMMON_DELETE hbTrId("txt_common_menu_delete")
    69 #define LOC_COMMON_DELETE hbTrId("txt_common_menu_delete")
   104     mMessageModel(NULL),
   106     mMessageModel(NULL),
   105     mEditorWidget(NULL),
   107     mEditorWidget(NULL),
   106     mContactCardWidget(contactCardWidget),
   108     mContactCardWidget(contactCardWidget),
   107     mSendUtil(NULL),
   109     mSendUtil(NULL),
   108     mVkbHost(NULL),
   110     mVkbHost(NULL),
       
   111     mDialog(NULL),
   109     mVisibleIndex(),
   112     mVisibleIndex(),
   110     mModelPopulated(false),
   113     mModelPopulated(false),
   111     mViewReady(false)
   114     mViewReady(false)
   112 {
   115 {
   113     //create send utils
   116     //create send utils
   131 // MsgConversationView::~MsgConversationView
   134 // MsgConversationView::~MsgConversationView
   132 // @see header file
   135 // @see header file
   133 //---------------------------------------------------------------
   136 //---------------------------------------------------------------
   134 MsgConversationView::~MsgConversationView()
   137 MsgConversationView::~MsgConversationView()
   135 {
   138 {
   136     
   139     //delete the popup dialog
       
   140     delete mDialog;
   137 }
   141 }
   138 //---------------------------------------------------------------
   142 //---------------------------------------------------------------
   139 // MsgConversationView::setupView
   143 // MsgConversationView::setupView
   140 // @see header file
   144 // @see header file
   141 //---------------------------------------------------------------
   145 //---------------------------------------------------------------
   483         {
   487         {
   484             mEditorWidget->clear();
   488             mEditorWidget->clear();
   485         }
   489         }
   486     }
   490     }
   487     deactivateInputBlocker();
   491     deactivateInputBlocker();
       
   492 
       
   493     // make sure virtual keyboard is closed
       
   494     QInputContext *ic = qApp->inputContext();
       
   495     if (ic) {
       
   496     QEvent *closeEvent = new QEvent(QEvent::CloseSoftwareInputPanel);
       
   497     ic->filterEvent(closeEvent);
       
   498     delete closeEvent;
       
   499     }
       
   500 
   488     if( sendResult == KErrNotFound)
   501     if( sendResult == KErrNotFound)
   489     {
   502     {
   490     HbMessageBox::question(LOC_DIALOG_SMS_SETTINGS_INCOMPLETE, this,
   503     HbMessageBox::question(LOC_DIALOG_SMS_SETTINGS_INCOMPLETE, this,
   491                            SLOT(onDialogSettingsLaunch(HbAction*)), 
   504                            SLOT(onDialogSettingsLaunch(HbAction*)), 
   492                            HbMessageBox::Ok | HbMessageBox::Cancel);
   505                            HbMessageBox::Ok | HbMessageBox::Cancel);
   593 // MsgConversationView::fetchAudio
   606 // MsgConversationView::fetchAudio
   594 // @see header file
   607 // @see header file
   595 //---------------------------------------------------------------
   608 //---------------------------------------------------------------
   596 void MsgConversationView::fetchAudio()
   609 void MsgConversationView::fetchAudio()
   597 {
   610 {
   598     // Launch Audio fetcher view
   611     // Launch Audio fetcher dialog
   599     QVariantList params;
   612     if (!mDialog)
   600     QByteArray dataArray;
   613     {
   601     QDataStream messageStream
   614         mDialog = new MsgAudioFetcherDialog();
   602     (&dataArray, QIODevice::WriteOnly | QIODevice::Append);
   615         bool b = connect(mDialog,
   603 
   616                 SIGNAL(audioSelected(QString&)),
   604     ConvergedMessage message;
   617                 this,
   605     message.setBodyText(mEditorWidget->content());
   618                 SLOT(onAudioSelected(QString&)));
   606     // add address from contact-card to to-field
   619     }
   607     ConvergedMessageAddress address;
   620 
   608     address.setAlias(mContactCardWidget->address().at(0)->alias());
   621     //show the dialog
   609     address.setAddress(mContactCardWidget->address().at(0)->address());
   622     mDialog->show();    
   610     message.addToRecipient(address);
       
   611     message.serialize(messageStream);
       
   612 
       
   613     params << MsgBaseView::AUDIOFETCHER; // target view
       
   614     params << MsgBaseView::CV; // source view
       
   615     params << dataArray;
       
   616     emit switchView(params);
       
   617 }
   623 }
   618 
   624 
   619 //---------------------------------------------------------------
   625 //---------------------------------------------------------------
   620 // MsgConversationView::contactsFetched
   626 // MsgConversationView::contactsFetched
   621 // @see header file
   627 // @see header file
   839         return;
   845         return;
   840         }
   846         }
   841 
   847 
   842     args << QVariant(messageId);
   848     args << QVariant(messageId);
   843     request->setSynchronous(true);
   849     request->setSynchronous(true);
   844     
   850     request->setEmbedded(true);
   845     request->setArguments(args);
   851     request->setArguments(args);
   846     request->send();
   852     request->send();
   847     delete request;    
   853     delete request;    
   848 }
   854 }
   849 
   855 
  1486     delete pluginLoader;    
  1492     delete pluginLoader;    
  1487 
  1493 
  1488     return shared;
  1494     return shared;
  1489 }
  1495 }
  1490 
  1496 
       
  1497 void MsgConversationView::onAudioSelected(QString& filePath)
       
  1498 {
       
  1499     QVariantList params;
       
  1500     QByteArray dataArray;
       
  1501     QDataStream messageStream
       
  1502     (&dataArray, QIODevice::WriteOnly | QIODevice::Append);
       
  1503 
       
  1504     ConvergedMessage message;
       
  1505     message.setBodyText(mEditorWidget->content());
       
  1506     // add address from contact-card to to-field
       
  1507     ConvergedMessageAddress address;
       
  1508     address.setAlias(mContactCardWidget->address().at(0)->alias());
       
  1509     address.setAddress(mContactCardWidget->address().at(0)->address());
       
  1510     message.addToRecipient(address);
       
  1511     
       
  1512     //add the attachment as selected from audio picker
       
  1513     ConvergedMessageAttachment* attachment =
       
  1514                 new ConvergedMessageAttachment(filePath);
       
  1515     ConvergedMessageAttachmentList attachmentList;
       
  1516     attachmentList.append(attachment);
       
  1517     message.addAttachments(attachmentList);
       
  1518     message.serialize(messageStream);
       
  1519 
       
  1520     params << MsgBaseView::UNIEDITOR; // target view
       
  1521     params << MsgBaseView::CV; // source view
       
  1522     params << dataArray;
       
  1523     params << MsgBaseView::ADD_AUDIO;
       
  1524     emit switchView(params);
       
  1525 }
       
  1526 
  1491 // EOF
  1527 // EOF