37 #include "msgsettingsview.h" |
37 #include "msgsettingsview.h" |
38 #include "convergedmessageid.h" |
38 #include "convergedmessageid.h" |
39 #include "ringbc.h" |
39 #include "ringbc.h" |
40 #include "unidatamodelloader.h" |
40 #include "unidatamodelloader.h" |
41 #include "unidatamodelplugininterface.h" |
41 #include "unidatamodelplugininterface.h" |
|
42 #include "msgcontacthandler.h" |
|
43 #include "debugtraces.h" |
|
44 #include "msgaudiofetcherview.h" |
42 |
45 |
43 // LOCALIZATION |
46 // LOCALIZATION |
44 #define LOC_BUTTON_DELETE hbTrId("txt_common_button_delete") |
|
45 #define LOC_BUTTON_CANCEL hbTrId("txt_common_button_cancel") |
|
46 #define LOC_DELETE_MESSAGE hbTrId("txt_messaging_dialog_delete_message") |
47 #define LOC_DELETE_MESSAGE hbTrId("txt_messaging_dialog_delete_message") |
47 #define LOC_DIALOG_SAVE_RINGTONE hbTrId("txt_conversations_dialog_save_ringing_tone") |
48 #define LOC_DIALOG_SAVE_RINGTONE hbTrId("txt_conversations_dialog_save_ringing_tone") |
48 #define LOC_COMMON_SAVE hbTrId("txt_common_menu_save") |
|
49 |
49 |
50 const qint64 NULL_CONVERSATIONID = -1; |
50 const qint64 NULL_CONVERSATIONID = -1; |
51 |
51 |
52 MsgViewManager::MsgViewManager(bool serviceRequest, HbMainWindow* mainWindow, QObject* parent) : |
52 MsgViewManager::MsgViewManager(bool serviceRequest, HbMainWindow* mainWindow, QObject* parent,int activityMsgId) : |
53 QObject(parent), mMainWindow(mainWindow), mUniEditor(0), mListView(0), mConversationView(0), |
53 QObject(parent), mMainWindow(mainWindow), mUniEditor(0), mListView(0), mConversationView(0), |
54 mUniViewer(0), mDraftsListView(0), mSettingsView(0), mBackAction(0), mServiceRequest( |
54 mUniViewer(0), mDraftsListView(0), mSettingsView(0), mAudioFetcherView(0), mBackAction(0), |
55 serviceRequest), mConversationId(-1), mViewServiceRequest(false),mMessageId(-1) |
55 mServiceRequest(serviceRequest), mConversationId(-1), mViewServiceRequest(false),mMessageId(-1) |
56 { |
56 { |
57 //creating back action. |
57 //creating back action. |
58 mBackAction = new HbAction(Hb::BackNaviAction, this); |
58 mBackAction = new HbAction(Hb::BackNaviAction, this); |
59 connect(mBackAction, SIGNAL(triggered()), this, SLOT(onBackAction())); |
59 connect(mBackAction, SIGNAL(triggered()), this, SLOT(onBackAction())); |
60 |
60 |
61 //create clv as first view if not a service request. |
61 //create clv as first view if not a service request. |
62 if (!mServiceRequest) { |
62 if (!mServiceRequest) { |
|
63 |
|
64 if(activityMsgId == NULL_CONVERSATIONID) |
|
65 { |
63 QVariantList param; |
66 QVariantList param; |
64 param << MsgBaseView::CLV; |
67 param << MsgBaseView::CLV; |
65 param << MsgBaseView::CLV; |
68 param << MsgBaseView::CLV; |
66 switchView(param); |
69 switchView(param); |
|
70 } |
|
71 else |
|
72 { |
|
73 openUniEditorActivity(activityMsgId); |
|
74 } |
67 } |
75 } |
68 else |
76 else |
69 { |
77 { |
70 mDummyview = new HbView(); |
78 mDummyview = new HbView(); |
71 mMainWindow->addView(mDummyview); |
79 mMainWindow->addView(mDummyview); |
100 break; |
109 break; |
101 } |
110 } |
102 |
111 |
103 case MsgBaseView::CV: |
112 case MsgBaseView::CV: |
104 { |
113 { |
|
114 mConversationId = -1; //reset the conversation view id since its closed |
|
115 |
105 //Save content to drafts before switching to clv |
116 //Save content to drafts before switching to clv |
106 mConversationView->saveContentToDrafts(); |
117 mConversationView->saveContentToDrafts(); |
107 |
118 |
108 //marking messages as red in CV. |
119 //marking messages as red in CV. |
109 mConversationView->markMessagesAsRead(); |
120 mConversationView->markMessagesAsRead(); |
110 |
121 |
111 // reset the conversation id published |
122 // reset the conversation id published |
112 mConversationView->setPSCVId(false); |
123 mConversationView->setPSCVId(false); |
113 |
124 |
114 //clearing content of cv. |
125 //clearing content of cv. |
115 mConversationView->clearContent(); |
126 mConversationView->clearContent(); |
116 |
127 |
117 // if service request for veiwer the just switch to univiewer. |
128 // if service request for veiwer the just switch to univiewer. |
118 if (mViewServiceRequest) { |
129 if (mViewServiceRequest) { |
257 case MsgBaseView::MSGSETTINGS: |
288 case MsgBaseView::MSGSETTINGS: |
258 { |
289 { |
259 switchToMsgSettings(data); |
290 switchToMsgSettings(data); |
260 break; |
291 break; |
261 } |
292 } |
262 } |
293 case MsgBaseView::AUDIOFETCHER: |
|
294 { |
|
295 switchToAudioFetcher(data); |
|
296 break; |
|
297 } |
|
298 } |
|
299 QCRITICAL_WRITE("MsgViewManager::switchView end."); |
263 } |
300 } |
264 |
301 |
265 void MsgViewManager::deletePreviousView() |
302 void MsgViewManager::deletePreviousView() |
266 { |
303 { |
267 while(mViewTobeDeleted.count()) |
304 while(mViewTobeDeleted.count()) |
268 { |
305 { |
269 HbView* v = mViewTobeDeleted.takeAt(0); |
306 HbView* v = mViewTobeDeleted.takeAt(0); |
270 mMainWindow->removeView(v); |
307 mMainWindow->removeView(v); |
271 delete v; |
308 delete v; |
272 } |
309 } |
273 disconnect(mMainWindow, SIGNAL(viewReady()), this, SLOT(deletePreviousView())); |
|
274 } |
310 } |
275 |
311 |
276 |
312 |
277 void MsgViewManager::send(const qint32 contactId, const QString phoneNumber, |
313 void MsgViewManager::send(const qint32 contactId, const QString phoneNumber, |
278 const QString displayName) |
314 const QString displayName) |
447 switchToLastSavedView(); |
483 switchToLastSavedView(); |
448 } |
484 } |
449 |
485 |
450 void MsgViewManager::switchToClv(const QVariantList& data) |
486 void MsgViewManager::switchToClv(const QVariantList& data) |
451 { |
487 { |
452 //switch to CLV. |
|
453 mCurrentView = MsgBaseView::CLV; |
|
454 mPreviousView = data.at(1).toInt(); |
488 mPreviousView = data.at(1).toInt(); |
455 |
489 |
456 // delete case from viewer service |
490 // delete case from viewer service |
457 if (mViewServiceRequest && (mPreviousView == MsgBaseView::UNIVIEWER)) { |
491 if (mViewServiceRequest && (mPreviousView == MsgBaseView::UNIVIEWER)) { |
458 // quit the application |
492 // quit the application |
459 HbApplication::quit(); |
493 HbApplication::quit(); |
|
494 } |
|
495 |
|
496 // this is the case when viewer/editor is opened and contacts update takes |
|
497 // place resulting in CV close, the view should directly come to CLV |
|
498 // bypassing the CV |
|
499 if ((mCurrentView == MsgBaseView::UNIVIEWER |
|
500 && mPreviousView != MsgBaseView::UNIVIEWER) |
|
501 || (mCurrentView == MsgBaseView::UNIEDITOR |
|
502 && mPreviousView != MsgBaseView::UNIEDITOR)) |
|
503 { |
|
504 //dont do anything |
|
505 //wait for the back from viewer/editor |
|
506 //and reset the open CV id |
|
507 mConversationId = -1; |
|
508 return; |
|
509 } |
|
510 |
|
511 //delete UniEditor |
|
512 if (mUniEditor) |
|
513 { |
|
514 appendViewToBeDeleted(mUniEditor); |
|
515 mUniEditor = NULL; |
|
516 } |
|
517 |
|
518 //delete UniViewer |
|
519 if (mUniViewer) |
|
520 { |
|
521 appendViewToBeDeleted(mUniViewer); |
|
522 mUniViewer = NULL; |
460 } |
523 } |
461 |
524 |
462 if (mConversationView) { |
525 if (mConversationView) { |
463 mConversationView->saveContentToDrafts(); |
526 mConversationView->saveContentToDrafts(); |
464 //clearing content of cv. |
527 //clearing content of cv. |
465 mConversationView->clearContent(); |
528 mConversationView->clearContent(); |
466 } |
529 //reset the open CV id |
467 |
530 mConversationId = -1; |
|
531 } |
|
532 |
|
533 //switch to CLV. |
|
534 mCurrentView = MsgBaseView::CLV; |
468 if (!mListView) { |
535 if (!mListView) { |
469 mListView = new MsgListView(); |
536 mListView = new MsgListView(); |
470 mListView->setNavigationAction(mBackAction); |
537 mListView->setNavigationAction(mBackAction); |
471 connect(mListView, SIGNAL(switchView(const QVariantList&)), this, |
538 connect(mListView, SIGNAL(switchView(const QVariantList&)), this, |
472 SLOT(switchView(const QVariantList&))); |
539 SLOT(switchView(const QVariantList&))); |
473 mMainWindow->addView(mListView); |
540 mMainWindow->addView(mListView); |
474 } |
541 } |
475 |
542 |
476 mMainWindow->setCurrentView(mListView); |
543 mMainWindow->setCurrentView(mListView); |
477 |
|
478 //delete UniEditor |
|
479 if (mUniEditor) |
|
480 { |
|
481 appendViewToBeDeleted(mUniEditor); |
|
482 mUniEditor = NULL; |
|
483 } |
|
484 |
|
485 //delete UniViewer |
|
486 if (mUniViewer) |
|
487 { |
|
488 appendViewToBeDeleted(mUniViewer); |
|
489 mUniViewer = NULL; |
|
490 } |
|
491 } |
544 } |
492 |
545 |
493 void MsgViewManager::switchToCv(const QVariantList& data) |
546 void MsgViewManager::switchToCv(const QVariantList& data) |
494 { |
547 { |
495 //switch to CV. |
548 //switch to CV. |
496 mCurrentView = MsgBaseView::CV; |
549 mCurrentView = MsgBaseView::CV; |
497 mPreviousView = data.at(1).toInt(); |
550 mPreviousView = data.at(1).toInt(); |
498 |
551 |
499 // delete case from viewer service |
552 // delete case from viewer service |
500 if (mViewServiceRequest && (mPreviousView == MsgBaseView::UNIVIEWER)) { |
553 if (mViewServiceRequest && (mPreviousView == MsgBaseView::UNIVIEWER)) { |
501 // quit the application |
554 // quit the application |
502 HbApplication::quit(); |
555 HbApplication::quit(); |
|
556 } |
|
557 |
|
558 // delete Audio Fetcher view |
|
559 if(mAudioFetcherView) |
|
560 { |
|
561 appendViewToBeDeleted(mAudioFetcherView); |
|
562 mAudioFetcherView = NULL; |
|
563 } |
|
564 |
|
565 //delete UniEditor |
|
566 if (mUniEditor) |
|
567 { |
|
568 appendViewToBeDeleted(mUniEditor); |
|
569 mUniEditor = NULL; |
|
570 } |
|
571 |
|
572 //delete UniViewer |
|
573 if (mUniViewer) |
|
574 { |
|
575 appendViewToBeDeleted(mUniViewer); |
|
576 mUniViewer = NULL; |
503 } |
577 } |
504 |
578 |
505 QVariant var = data.at(2); |
579 QVariant var = data.at(2); |
506 qint64 conversationId; |
580 qint64 conversationId; |
507 if (var.type() == QVariant::String) { |
581 if (var.type() == QVariant::String) { |
508 QString phoneNumber = var.toString(); |
582 QString phoneNumber = var.toString(); |
509 conversationId = findConversationId(phoneNumber); |
583 qint32 contactId = findContactId(phoneNumber); |
|
584 if (contactId != -1) { |
|
585 conversationId = ConversationsEngine::instance()->getConversationIdFromContactId(contactId); |
|
586 } |
|
587 else { |
|
588 conversationId = findConversationId(phoneNumber); |
|
589 } |
510 |
590 |
511 if (conversationId == NULL_CONVERSATIONID) { |
591 if (conversationId == NULL_CONVERSATIONID) { |
512 QVariantList param; |
592 QVariantList param; |
513 param << MsgBaseView::CLV; |
593 param << MsgBaseView::CLV; |
514 param << MsgBaseView::CV; |
594 param << MsgBaseView::CV; |
515 |
595 |
516 if( mCurrentView == MsgBaseView::CV && mConversationView){ |
596 if( mCurrentView == MsgBaseView::CV && mConversationView){ |
517 mConversationView->setPSCVId(false); |
597 mConversationView->setPSCVId(false); |
518 } |
598 } |
519 |
599 |
520 switchView(param); |
600 switchView(param); |
521 return; |
601 return; |
522 } |
602 } |
523 } |
603 } |
524 else if (var.type() == QVariant::Invalid) { |
604 else if (var.type() == QVariant::Invalid) { |
525 // this case comes when a message is deleted from |
605 // this case comes when a message is deleted from |
526 // Unified viewer set curent view as conversation view |
606 // Unified viewer set curent view as conversation view |
527 // and return |
607 // and return |
528 mMainWindow->setCurrentView(mConversationView); |
608 mMainWindow->setCurrentView(mConversationView); |
529 |
609 |
530 // publish already opened conversation's id |
610 // publish already opened conversation's id |
531 mConversationView->setPSCVId(true); |
611 mConversationView->setPSCVId(true); |
532 |
|
533 if (mUniViewer) |
|
534 { |
|
535 appendViewToBeDeleted(mUniViewer); |
|
536 mUniViewer = NULL; |
|
537 } |
|
538 |
|
539 return; |
612 return; |
540 } |
613 } |
541 else { |
614 else { |
542 conversationId = var.toLongLong(); |
615 conversationId = var.toLongLong(); |
543 } |
616 } |
604 { |
657 { |
605 /** |
658 /** |
606 * Editor is tried to open again before exiting the previously |
659 * Editor is tried to open again before exiting the previously |
607 * opened editor. Multi taping in DLV or Forward. |
660 * opened editor. Multi taping in DLV or Forward. |
608 */ |
661 */ |
609 if (mUniEditor) { |
662 if (mUniEditor && !mAudioFetcherView) |
|
663 { |
610 return; |
664 return; |
611 } |
665 } |
612 |
666 |
613 mCurrentView = MsgBaseView::UNIEDITOR; |
667 mCurrentView = MsgBaseView::UNIEDITOR; |
614 mPreviousView = data.at(1).toInt(); |
668 if(MsgBaseView::AUDIOFETCHER != data.at(1).toInt()) |
615 |
669 { |
616 if (mConversationView) { |
670 mPreviousView = data.at(1).toInt(); |
|
671 } |
|
672 |
|
673 // delete Audio Fetcher view |
|
674 if(mAudioFetcherView) |
|
675 { |
|
676 appendViewToBeDeleted(mAudioFetcherView); |
|
677 mAudioFetcherView = NULL; |
|
678 } |
|
679 |
|
680 // delete UniViewer |
|
681 if (mUniViewer ) |
|
682 { |
|
683 appendViewToBeDeleted(mUniViewer); |
|
684 mUniViewer = NULL; |
|
685 } |
|
686 |
|
687 if (mConversationView) |
|
688 { |
617 //clearing content of cv. |
689 //clearing content of cv. |
618 mConversationView->clearContent(); |
690 mConversationView->clearContent(); |
619 } |
691 } |
620 |
692 |
621 // reset conversation id published |
693 // reset conversation id published |
622 if(mPreviousView == MsgBaseView::CV && mConversationView) |
694 if(mPreviousView == MsgBaseView::CV && mConversationView) |
623 { |
695 { |
624 mConversationView->setPSCVId(false); |
696 mConversationView->setPSCVId(false); |
625 } |
697 } |
626 |
698 |
627 //swich to unieditor. |
699 //swich to unieditor. |
628 if (!mUniEditor) { |
700 if (!mUniEditor) { |
629 mUniEditor = new MsgUnifiedEditorView(); |
701 mUniEditor = new MsgUnifiedEditorView(); |
630 mMainWindow->addView(mUniEditor); |
702 mMainWindow->addView(mUniEditor); |
631 mUniEditor->setNavigationAction(mBackAction); |
703 mUniEditor->setNavigationAction(mBackAction); |
677 mPreviousView = data.at(1).toInt(); |
739 mPreviousView = data.at(1).toInt(); |
678 |
740 |
679 //switch to univiewer. |
741 //switch to univiewer. |
680 if (data.length() > 2) { |
742 if (data.length() > 2) { |
681 qint32 contactId = data.at(2).toLongLong(); |
743 qint32 contactId = data.at(2).toLongLong(); |
682 QByteArray dataArray = data.at(3).toByteArray(); |
744 qint32 messageId = data.at(3).toInt(); |
683 int msgCount = data.at(4).toInt(); |
745 int msgCount = data.at(4).toInt(); |
684 |
746 int canForwardMessage = data.at(5).toInt(); |
685 ConvergedMessage *message = new ConvergedMessage; |
747 |
686 QDataStream stream(&dataArray, QIODevice::ReadOnly); |
|
687 message->deserialize(stream); |
|
688 qint32 messageId = message->id()->getId(); |
|
689 if (!mUniViewer) { |
748 if (!mUniViewer) { |
690 mUniViewer = new UnifiedViewer(messageId); |
749 mUniViewer = new UnifiedViewer(messageId, canForwardMessage); |
691 mUniViewer->setNavigationAction(mBackAction); |
750 mUniViewer->setNavigationAction(mBackAction); |
692 mMainWindow->addView(mUniViewer); |
751 mMainWindow->addView(mUniViewer); |
693 connect(mUniViewer, SIGNAL(switchView(const QVariantList&)), this, |
752 connect(mUniViewer, SIGNAL(switchView(const QVariantList&)), this, |
694 SLOT(switchView(const QVariantList&))); |
753 SLOT(switchView(const QVariantList&))); |
695 } |
754 } |
696 mUniViewer->populateContent(messageId, true, msgCount); |
755 mUniViewer->populateContent(messageId, true, msgCount); |
697 delete message; |
756 } |
698 } |
757 |
699 |
|
700 if(mPreviousView==MsgBaseView::CV && mConversationView) |
758 if(mPreviousView==MsgBaseView::CV && mConversationView) |
701 { |
759 { |
702 mConversationView->setPSCVId(false); |
760 mConversationView->setPSCVId(false); |
703 } |
761 } |
704 |
762 |
705 mMainWindow->setCurrentView(mUniViewer); |
763 mMainWindow->setCurrentView(mUniViewer); |
706 } |
764 } |
707 void MsgViewManager::switchToMsgSettings(const QVariantList& data) |
765 void MsgViewManager::switchToMsgSettings(const QVariantList& data) |
708 { |
766 { |
709 mCurrentView = MsgBaseView::MSGSETTINGS; |
767 mCurrentView = MsgBaseView::MSGSETTINGS; |
710 mPreviousView = data.at(1).toInt(); |
768 mPreviousView = data.at(1).toInt(); |
711 |
769 |
712 if (!mSettingsView) { |
770 if (!mSettingsView) { |
713 |
771 |
714 MsgSettingsView::SettingsView view = MsgSettingsView::DefaultView; |
772 MsgSettingsView::SettingsView view = MsgSettingsView::DefaultView; |
715 if (mPreviousView == MsgBaseView::UNIEDITOR || mPreviousView |
773 if (mPreviousView == MsgBaseView::UNIEDITOR || mPreviousView |
716 == MsgBaseView::CV) |
774 == MsgBaseView::CV) |
717 { |
775 { |
718 view = (MsgSettingsView::SettingsView)data.at(2).toInt(); |
776 view = (MsgSettingsView::SettingsView)data.at(2).toInt(); |
719 } |
777 } |
720 |
778 |
721 mSettingsView = new MsgSettingsView(view); |
779 mSettingsView = new MsgSettingsView(view); |
722 mSettingsView->setNavigationAction(mBackAction); |
780 mSettingsView->setNavigationAction(mBackAction); |
723 mMainWindow->addView(mSettingsView); |
781 mMainWindow->addView(mSettingsView); |
724 mMainWindow->setCurrentView(mSettingsView); |
782 mMainWindow->setCurrentView(mSettingsView); |
725 } |
783 } |
886 { |
945 { |
887 if(!mMainWindow->isInteractive()) |
946 if(!mMainWindow->isInteractive()) |
888 { |
947 { |
889 mMainWindow->setInteractive(true); |
948 mMainWindow->setInteractive(true); |
890 } |
949 } |
|
950 |
|
951 disconnect(mMainWindow, SIGNAL(viewReady()),this,SLOT(setViewInteractive())); |
|
952 } |
|
953 |
|
954 void MsgViewManager::appendViewToBeDeleted(HbView* view) |
|
955 { |
|
956 if (view) |
|
957 { |
|
958 mViewTobeDeleted << view; |
|
959 connect(mMainWindow, SIGNAL(viewReady()), this, SLOT(deletePreviousView()), Qt::UniqueConnection); |
|
960 } |
|
961 } |
|
962 |
|
963 // ---------------------------------------------------------------------------- |
|
964 // MsgViewManager::populateEditorAfterViewReady |
|
965 // @see header |
|
966 // ---------------------------------------------------------------------------- |
|
967 void MsgViewManager::populateUniEditorAfterViewReady(const QVariantList& editorData) |
|
968 { |
|
969 //Save the editor data and use it in ViewReady handler |
|
970 mEditorData = editorData; |
|
971 connect(mMainWindow, SIGNAL(viewReady()), this, SLOT(populateUniEditorView())); |
|
972 } |
|
973 |
|
974 // ---------------------------------------------------------------------------- |
|
975 // MsgViewManager::populateUniEditorView |
|
976 // @see header |
|
977 // ---------------------------------------------------------------------------- |
|
978 void MsgViewManager::populateUniEditorView() |
|
979 { |
|
980 if (mUniEditor) |
|
981 { |
|
982 mUniEditor->openDraftsMessage(mEditorData); |
|
983 } |
|
984 mEditorData.clear(); |
891 |
985 |
892 disconnect(mMainWindow, SIGNAL(viewReady()),this,SLOT(setViewInteractive())); |
986 disconnect(mMainWindow, SIGNAL(viewReady()), this, |
893 } |
987 SLOT(populateUniEditorView())); |
894 |
|
895 void MsgViewManager::appendViewToBeDeleted(HbView* view) |
|
896 { |
|
897 if (view) |
|
898 { |
|
899 mViewTobeDeleted << view; |
|
900 connect(mMainWindow, SIGNAL(viewReady()), this, SLOT(deletePreviousView())); |
|
901 } |
|
902 } |
988 } |
903 |
989 |
904 // ---------------------------------------------------------------------------- |
990 // ---------------------------------------------------------------------------- |
905 // MsgViewManager::onDialogDeleteMsg |
991 // MsgViewManager::onDialogDeleteMsg |
906 // @see header |
992 // @see header |
946 |
1032 |
947 // close the application once its handled |
1033 // close the application once its handled |
948 HbApplication::quit(); |
1034 HbApplication::quit(); |
949 } |
1035 } |
950 |
1036 |
|
1037 // ---------------------------------------------------------------------------- |
|
1038 // MsgViewManager::currentView |
|
1039 // @see header |
|
1040 // ---------------------------------------------------------------------------- |
|
1041 int MsgViewManager::currentView() |
|
1042 { |
|
1043 return mCurrentView; |
|
1044 } |
|
1045 |
|
1046 // ---------------------------------------------------------------------------- |
|
1047 // MsgViewManager::switchToAudioFetcher |
|
1048 // @see header |
|
1049 // ---------------------------------------------------------------------------- |
|
1050 void MsgViewManager::switchToAudioFetcher(const QVariantList& data) |
|
1051 { |
|
1052 /** |
|
1053 * Audio Fetcher is tried to open again |
|
1054 */ |
|
1055 if(mAudioFetcherView) |
|
1056 { |
|
1057 return; |
|
1058 } |
|
1059 |
|
1060 //switch to Audio Fetcher view |
|
1061 mCurrentView = MsgBaseView::AUDIOFETCHER; |
|
1062 mPreviousView = data.at(1).toInt(); |
|
1063 QVariantList editorData; |
|
1064 // i=2 because view manager consumed first two args |
|
1065 for (int i = 2; i < data.length(); i++) { |
|
1066 editorData << data.at(i); |
|
1067 } |
|
1068 mAudioFetcherView = new MsgAudioFetcherView(editorData); |
|
1069 mAudioFetcherView->setNavigationAction(mBackAction); |
|
1070 connect(mAudioFetcherView, SIGNAL(switchView(const QVariantList&)), this, |
|
1071 SLOT(switchView(const QVariantList&))); |
|
1072 |
|
1073 if(mPreviousView==MsgBaseView::CV && mConversationView) |
|
1074 { |
|
1075 mConversationView->setPSCVId(false); |
|
1076 } |
|
1077 |
|
1078 mMainWindow->addView(mAudioFetcherView); |
|
1079 mMainWindow->setCurrentView(mAudioFetcherView); |
|
1080 } |
|
1081 |
|
1082 // ---------------------------------------------------------------------------- |
|
1083 // MsgViewManager::saveContentToDraft |
|
1084 // @see header |
|
1085 // ---------------------------------------------------------------------------- |
|
1086 int MsgViewManager::saveContentToDraft() |
|
1087 { |
|
1088 int msgId = NULL_CONVERSATIONID; |
|
1089 if( mCurrentView == MsgBaseView::CV ) |
|
1090 { |
|
1091 msgId = mConversationView->saveContentToDrafts(); |
|
1092 } |
|
1093 else if( mCurrentView ==MsgBaseView::UNIEDITOR) |
|
1094 { |
|
1095 msgId = mUniEditor->saveContentToDrafts(); |
|
1096 } |
|
1097 return msgId; |
|
1098 } |
|
1099 |
|
1100 // ---------------------------------------------------------------------------- |
|
1101 // MsgViewManager::saveContentToDraft |
|
1102 // @see header |
|
1103 // ---------------------------------------------------------------------------- |
|
1104 void MsgViewManager::openUniEditorActivity(int activityMsgId) |
|
1105 { |
|
1106 int msgType; |
|
1107 int msgSubType; |
|
1108 |
|
1109 qint32 messageId(activityMsgId); |
|
1110 // get the message type |
|
1111 ConversationsEngine::instance()->markAsReadAndGetType(messageId, msgType, msgSubType); |
|
1112 |
|
1113 if (!mUniEditor) { |
|
1114 mUniEditor = new MsgUnifiedEditorView(); |
|
1115 mMainWindow->addView(mUniEditor); |
|
1116 mUniEditor->setNavigationAction(mBackAction); |
|
1117 connect(mUniEditor, SIGNAL(switchView(const QVariantList&)), this, |
|
1118 SLOT(switchView(const QVariantList&))); |
|
1119 } |
|
1120 |
|
1121 // buffer data to open the draft message |
|
1122 ConvergedMessageId convergedMsgId(activityMsgId); |
|
1123 ConvergedMessage message; |
|
1124 message.setMessageType((ConvergedMessage::MessageType) msgType); |
|
1125 message.setMessageId(convergedMsgId); |
|
1126 |
|
1127 // Launch uni-editor view |
|
1128 QByteArray dataArray; |
|
1129 QDataStream messageStream(&dataArray, QIODevice::WriteOnly | QIODevice::Append); |
|
1130 message.serialize(messageStream); |
|
1131 |
|
1132 QVariantList editorData; |
|
1133 editorData << dataArray; |
|
1134 mUniEditor->openDraftsMessage(editorData); |
|
1135 |
|
1136 // set the current view |
|
1137 mCurrentView = MsgBaseView::UNIEDITOR; |
|
1138 mMainWindow->setCurrentView(mUniEditor); |
|
1139 } |
|
1140 |
|
1141 // ---------------------------------------------------------------------------- |
|
1142 // MsgViewManager::findContactId |
|
1143 // @see header |
|
1144 // ---------------------------------------------------------------------------- |
|
1145 qint32 MsgViewManager::findContactId(QString address) |
|
1146 { |
|
1147 QString displayLabel; |
|
1148 int count; |
|
1149 int localId = |
|
1150 MsgContactHandler::resolveContactDisplayName(address, |
|
1151 displayLabel, |
|
1152 count); |
|
1153 |
|
1154 return localId; |
|
1155 } |
|
1156 |
|
1157 //EOF |