58 #include "mmsconformancecheck.h" |
58 #include "mmsconformancecheck.h" |
59 #include "msgsettingsview.h" |
59 #include "msgsettingsview.h" |
60 #include "unieditorpluginloader.h" |
60 #include "unieditorpluginloader.h" |
61 #include "unieditorplugininterface.h" |
61 #include "unieditorplugininterface.h" |
62 #include "msgaudiofetcherdialog.h" |
62 #include "msgaudiofetcherdialog.h" |
|
63 #include "msgservicelaunchutil.h" |
|
64 |
|
65 // LOCALIZATION |
|
66 #define LOC_TITLE hbTrId("txt_messaging_title_messaging") |
63 |
67 |
64 //Item specific menu. |
68 //Item specific menu. |
65 |
|
66 #define LOC_COMMON_OPEN hbTrId("txt_common_menu_open") |
69 #define LOC_COMMON_OPEN hbTrId("txt_common_menu_open") |
67 #define LOC_COMMON_DELETE hbTrId("txt_common_menu_delete") |
70 #define LOC_COMMON_DELETE hbTrId("txt_common_menu_delete") |
68 #define LOC_COMMON_FORWARD hbTrId("txt_common_menu_forward") |
71 #define LOC_COMMON_FORWARD hbTrId("txt_common_menu_forward") |
69 #define LOC_COMMON_DOWNLOAD hbTrId("txt_messaging_menu_download") |
72 #define LOC_COMMON_DOWNLOAD hbTrId("txt_messaging_menu_download") |
70 #define LOC_COMMON_SEND hbTrId("txt_common_button_send") |
73 #define LOC_COMMON_SEND hbTrId("txt_common_button_send") |
244 // Hide editor in case of BT conversations. |
247 // Hide editor in case of BT conversations. |
245 qint64 convId = ConversationsEngine::instance()->getCurrentConversationId(); |
248 qint64 convId = ConversationsEngine::instance()->getCurrentConversationId(); |
246 if (INVALID_CONVID != convId) { |
249 if (INVALID_CONVID != convId) { |
247 mContactCardWidget->updateContents(); |
250 mContactCardWidget->updateContents(); |
248 if (KBluetoothMsgsConversationId == convId || !(mContactCardWidget->isValidAddress())) { |
251 if (KBluetoothMsgsConversationId == convId || !(mContactCardWidget->isValidAddress())) { |
|
252 this->menu()->clearActions(); |
249 mMainLayout->removeItem(mEditorWidget); |
253 mMainLayout->removeItem(mEditorWidget); |
250 mEditorWidget->hide(); |
254 mEditorWidget->hide(); |
251 mEditorWidget->setParent(this); |
255 mEditorWidget->setParent(this); |
252 } |
256 } |
253 else { |
257 else { |
|
258 HbMenu *mainMenu = this->menu(); |
|
259 if(mainMenu->isEmpty()) { |
|
260 mainMenu->addAction(QString()); |
|
261 } |
254 mMainLayout->addItem(mEditorWidget); |
262 mMainLayout->addItem(mEditorWidget); |
255 mEditorWidget->show(); |
263 mEditorWidget->show(); |
256 } |
264 } |
257 TRAP_IGNORE(mEditorWidget->setEncodingSettingsL()); |
265 TRAP_IGNORE(mEditorWidget->setEncodingSettingsL()); |
258 } |
266 } |
534 HbAction* action = qobject_cast<HbAction*>(sender()); |
542 HbAction* action = qobject_cast<HbAction*>(sender()); |
535 |
543 |
536 if(!action) |
544 if(!action) |
537 return; |
545 return; |
538 |
546 |
|
547 QList<QVariant> args; |
|
548 args << LOC_TITLE; |
|
549 |
539 QString service("phonebookservices"); |
550 QString service("phonebookservices"); |
540 QString interface("com.nokia.symbian.IContactsFetch"); |
551 QString interface("com.nokia.symbian.IContactsFetch"); |
541 QString operation("multiFetch(QString,QString)"); |
552 QString operation("multiFetch(QString,QString)"); |
542 XQAiwRequest* request; |
553 XQAiwRequest* request; |
543 XQApplicationManager appManager; |
554 XQApplicationManager appManager; |
549 |
560 |
550 int mode = action->data().toInt(); |
561 int mode = action->data().toInt(); |
551 |
562 |
552 if( VCARD_INSERTION_MODE == mode) //vcard-insert mode |
563 if( VCARD_INSERTION_MODE == mode) //vcard-insert mode |
553 { |
564 { |
|
565 args << KCntActionAll; |
554 connect(request, SIGNAL(requestOk(const QVariant&)), |
566 connect(request, SIGNAL(requestOk(const QVariant&)), |
555 this, SLOT(contactsFetchedForVCards(const QVariant&))); |
567 this, SLOT(contactsFetchedForVCards(const QVariant&))); |
556 } |
568 } |
557 else //contact-insert mode |
569 else //contact-insert mode |
558 { |
570 { |
|
571 args << KCntActionSms; |
559 connect(request, SIGNAL(requestOk(const QVariant&)), |
572 connect(request, SIGNAL(requestOk(const QVariant&)), |
560 this, SLOT(contactsFetched(const QVariant&))); |
573 this, SLOT(contactsFetched(const QVariant&))); |
561 } |
574 } |
562 connect (request, SIGNAL(requestError(int,const QString&)), |
575 connect (request, SIGNAL(requestError(int,const QString&)), |
563 this, SLOT(serviceRequestError(int,const QString&))); |
576 this, SLOT(serviceRequestError(int,const QString&))); |
564 |
577 |
565 QList<QVariant> args; |
|
566 args << QString(tr("Phonebook")); |
|
567 args << KCntActionAll; |
|
568 args << KCntFilterDisplayAll; |
578 args << KCntFilterDisplayAll; |
569 |
|
570 request->setArguments(args); |
579 request->setArguments(args); |
571 request->send(); |
580 request->send(); |
572 delete request; |
581 delete request; |
573 } |
582 } |
574 //--------------------------------------------------------------- |
583 //--------------------------------------------------------------- |
834 //--------------------------------------------------------------- |
843 //--------------------------------------------------------------- |
835 void MsgConversationView::launchBtDisplayService(const QModelIndex & index) |
844 void MsgConversationView::launchBtDisplayService(const QModelIndex & index) |
836 { |
845 { |
837 qint32 messageId = index.data(ConvergedMsgId).toLongLong(); |
846 qint32 messageId = index.data(ConvergedMsgId).toLongLong(); |
838 |
847 |
839 QList<QVariant> args; |
848 // launch using msgservicelaunchutils |
840 QString serviceName("com.nokia.services.btmsgdispservices"); |
849 |
841 QString operation("displaymsg(int)"); |
850 MsgServiceLaunchUtil serviceLaunchUtil; |
842 XQAiwRequest* request; |
851 |
843 XQApplicationManager appManager; |
852 serviceLaunchUtil.launchContentViewer(messageId); |
844 request = appManager.create(serviceName, "displaymsg", operation, false); // embedded |
853 |
845 |
|
846 if ( request == NULL ) |
|
847 { |
|
848 return; |
|
849 } |
|
850 |
|
851 args << QVariant(messageId); |
|
852 request->setSynchronous(true); |
|
853 request->setEmbedded(true); |
|
854 request->setArguments(args); |
|
855 request->send(); |
|
856 delete request; |
|
857 } |
854 } |
858 |
855 |
859 //--------------------------------------------------------------- |
856 //--------------------------------------------------------------- |
860 // MsgConversationView::menuAboutToShow() |
857 // MsgConversationView::menuAboutToShow() |
861 // @See header |
858 // @See header |
864 { |
861 { |
865 // Clear all the previously added actions. |
862 // Clear all the previously added actions. |
866 HbMenu *mainMenu = this->menu(); |
863 HbMenu *mainMenu = this->menu(); |
867 mainMenu->clearActions(); |
864 mainMenu->clearActions(); |
868 |
865 |
869 // Message type specific menu items |
866 // Attach sub-menu |
870 QModelIndex index = ConversationsEngine::instance()->getConversationsModel()->index(0, 0); |
867 HbMenu *attachSubMenu = mainMenu->addMenu(LOC_ATTACH); |
871 if (ConvergedMessage::BT != index.data(MessageType).toInt()) |
868 |
872 { |
869 attachSubMenu->addAction(LOC_PHOTO,this, SLOT(fetchImages())); |
873 // Attach sub-menu |
870 attachSubMenu->addAction(LOC_SOUND,this, SLOT(fetchAudio())); |
874 HbMenu *attachSubMenu = mainMenu->addMenu(LOC_ATTACH); |
871 |
875 |
872 HbAction* addVCard = attachSubMenu->addAction(LOC_VCARD); |
876 attachSubMenu->addAction(LOC_PHOTO,this, SLOT(fetchImages())); |
873 addVCard->setData(VCARD_INSERTION_MODE); |
877 attachSubMenu->addAction(LOC_SOUND,this, SLOT(fetchAudio())); |
874 connect(addVCard, SIGNAL(triggered()),this,SLOT(fetchContacts())); |
878 |
875 |
879 HbAction* addVCard = attachSubMenu->addAction(LOC_VCARD); |
876 HbAction *addRecipients = mainMenu->addAction(LOC_ADD_RECIPIENTS); |
880 addVCard->setData(VCARD_INSERTION_MODE); |
877 addRecipients->setData(CONTACT_INSERTION_MODE); |
881 connect(addVCard, SIGNAL(triggered()),this,SLOT(fetchContacts())); |
878 connect(addRecipients, SIGNAL(triggered()), this, SLOT(fetchContacts())); |
882 |
879 |
883 HbAction *addRecipients = mainMenu->addAction(LOC_ADD_RECIPIENTS); |
880 mainMenu->addAction(LOC_ADD_SUBJECT,this, SLOT(addSubject())); |
884 addRecipients->setData(CONTACT_INSERTION_MODE); |
881 |
885 connect(addRecipients, SIGNAL(triggered()), this, SLOT(fetchContacts())); |
|
886 |
|
887 mainMenu->addAction(LOC_ADD_SUBJECT,this, SLOT(addSubject())); |
|
888 } |
|
889 } |
882 } |
890 |
883 |
891 //--------------------------------------------------------------- |
884 //--------------------------------------------------------------- |
892 //MsgConversationView::openItem |
885 //MsgConversationView::openItem |
893 //@see header |
886 //@see header |
1044 if( editorOperation != MsgBaseView::FORWARD_MSG ) |
1037 if( editorOperation != MsgBaseView::FORWARD_MSG ) |
1045 { |
1038 { |
1046 message.setBodyText(mEditorWidget->content()); |
1039 message.setBodyText(mEditorWidget->content()); |
1047 |
1040 |
1048 // add address from contact-card to to-field |
1041 // add address from contact-card to to-field |
|
1042 ConvergedMessageAddressList addresses; |
|
1043 addresses = mContactCardWidget->address(); |
|
1044 |
1049 ConvergedMessageAddress address; |
1045 ConvergedMessageAddress address; |
1050 address.setAlias(mContactCardWidget->address().at(0)->alias()); |
1046 address.setAlias(addresses.at(0)->alias()); |
1051 address.setAddress(mContactCardWidget->address().at(0)->address()); |
1047 address.setAddress(addresses.at(0)->address()); |
1052 message.addToRecipient(address); |
1048 message.addToRecipient(address); |
1053 |
1049 |
1054 if(editorOperation == MsgBaseView::ADD_PHOTO || |
1050 if(editorOperation == MsgBaseView::ADD_PHOTO || |
1055 editorOperation == MsgBaseView::ADD_AUDIO || |
1051 editorOperation == MsgBaseView::ADD_AUDIO || |
1056 editorOperation == MsgBaseView::ADD_VIDEO ) |
1052 editorOperation == MsgBaseView::ADD_VIDEO ) |
1506 QDataStream messageStream |
1502 QDataStream messageStream |
1507 (&dataArray, QIODevice::WriteOnly | QIODevice::Append); |
1503 (&dataArray, QIODevice::WriteOnly | QIODevice::Append); |
1508 |
1504 |
1509 ConvergedMessage message; |
1505 ConvergedMessage message; |
1510 message.setBodyText(mEditorWidget->content()); |
1506 message.setBodyText(mEditorWidget->content()); |
1511 // add address from contact-card to to-field |
1507 |
|
1508 // add address from contact-card to to-field |
|
1509 ConvergedMessageAddressList addresses; |
|
1510 addresses = mContactCardWidget->address(); |
|
1511 |
1512 ConvergedMessageAddress address; |
1512 ConvergedMessageAddress address; |
1513 address.setAlias(mContactCardWidget->address().at(0)->alias()); |
1513 address.setAlias(addresses.at(0)->alias()); |
1514 address.setAddress(mContactCardWidget->address().at(0)->address()); |
1514 address.setAddress(addresses.at(0)->address()); |
1515 message.addToRecipient(address); |
1515 message.addToRecipient(address); |
1516 |
1516 |
1517 //add the attachment as selected from audio picker |
1517 //add the attachment as selected from audio picker |
1518 ConvergedMessageAttachment* attachment = |
1518 ConvergedMessageAttachment* attachment = |
1519 new ConvergedMessageAttachment(filePath); |
1519 new ConvergedMessageAttachment(filePath); |