47 mSettingsViewLauncher(NULL), |
47 mSettingsViewLauncher(NULL), |
48 mViewReady(false), |
48 mViewReady(false), |
49 mQueryDialog(NULL), |
49 mQueryDialog(NULL), |
50 mBackButtonPressed(false), |
50 mBackButtonPressed(false), |
51 mApplicationHidden(false), |
51 mApplicationHidden(false), |
52 mErrorNoteTimer(NULL) |
52 mErrorNoteTimer(NULL), |
|
53 mActivation(NULL), |
|
54 mActivityStorage(NULL) |
53 { |
55 { |
54 // Load the translation file. |
56 // Load the translation file. |
55 QTranslator *translator = new QTranslator(this); |
57 QTranslator *translator = new QTranslator(this); |
56 QString lang = QLocale::system().name(); |
58 QString lang = QLocale::system().name(); |
57 QString appName = "mail_"; |
59 QString appName = "mail_"; |
58 QString path = "Z:/resource/qt/translations/"; |
60 QString path = "Z:/resource/qt/translations/"; |
59 translator->load(appName + lang, path); |
61 translator->load(appName + lang, path); |
60 installTranslator(translator); |
62 installTranslator(translator); |
61 setApplicationName(hbTrId("txt_mail_title_mail")); |
63 setApplicationName(hbTrId("txt_mail_title_mail")); |
62 |
64 |
|
65 mActivation = new AfActivation(this); |
|
66 mActivityStorage = new AfActivityStorage(this); |
|
67 |
63 quint64 accountId = 0; |
68 quint64 accountId = 0; |
64 QString activateId = this->activateId(); |
69 QString activateId = this->activateId(); |
65 if (activateReason() == Hb::ActivationReasonActivity && |
70 if (mActivation->reason() == Af::ActivationReasonActivity && |
66 activateId.startsWith(NmActivityName) ) { |
71 activateId.startsWith(NmActivityName) ) { |
67 QString accountIdString = activateId.mid(NmActivityName.length()); |
72 QString accountIdString = activateId.mid(NmActivityName.length()); |
68 accountId = accountIdString.toULongLong(); |
73 accountId = accountIdString.toULongLong(); |
69 } |
74 } |
70 |
75 |
100 mMailboxServiceInterface->displayInboxByMailboxId(mailbox); |
105 mMailboxServiceInterface->displayInboxByMailboxId(mailbox); |
101 } |
106 } |
102 |
107 |
103 mEffects = new NmUiEffects(*mMainWindow); |
108 mEffects = new NmUiEffects(*mMainWindow); |
104 |
109 |
105 QObject::connect(this, SIGNAL(activate()), this, SLOT(activityActivated())); |
110 QObject::connect( |
|
111 mActivation, SIGNAL(activated(Af::ActivationReason, QString, QVariantHash)), |
|
112 this, SLOT(activityActivated())); |
106 } |
113 } |
107 |
114 |
108 |
115 |
109 /*! |
116 /*! |
110 Destructor. |
117 Destructor. |
392 // Hide the mail from the task switcher |
402 // Hide the mail from the task switcher |
393 TsTaskSettings taskSettings; |
403 TsTaskSettings taskSettings; |
394 taskSettings.setVisibility(false); |
404 taskSettings.setVisibility(false); |
395 |
405 |
396 // Remove also the mailbox item from the task switcher |
406 // Remove also the mailbox item from the task switcher |
397 activityManager()->removeActivity(NmActivityName); |
407 bool ok = mActivityStorage->removeActivity(NmActivityName); |
|
408 if(!ok) { |
|
409 NM_COMMENT("Remove activity from Task Switcher failed."); |
|
410 } |
398 } |
411 } |
399 |
412 |
400 |
413 |
401 /*! |
414 /*! |
402 Pop view from view stack. View object is deleted. |
415 Pop view from view stack. View object is deleted. |
643 */ |
656 */ |
644 void NmApplication::exitApplication() |
657 void NmApplication::exitApplication() |
645 { |
658 { |
646 NM_FUNCTION; |
659 NM_FUNCTION; |
647 |
660 |
648 activityManager()->removeActivity(NmActivityName); |
661 bool ok = mActivityStorage->removeActivity(NmActivityName); |
|
662 if(!ok) { |
|
663 NM_COMMENT("Remove activity from Task Switcher failed."); |
|
664 } |
649 |
665 |
650 delete mSendServiceInterface; |
666 delete mSendServiceInterface; |
651 mSendServiceInterface = NULL; |
667 mSendServiceInterface = NULL; |
652 delete mSendServiceInterface2; |
668 delete mSendServiceInterface2; |
653 mSendServiceInterface2 = NULL; |
669 mSendServiceInterface2 = NULL; |
830 /*! |
846 /*! |
831 Update the thumbnail in the task switcher. |
847 Update the thumbnail in the task switcher. |
832 */ |
848 */ |
833 void NmApplication::updateActivity() |
849 void NmApplication::updateActivity() |
834 { |
850 { |
|
851 bool ok(false); |
835 NmMailboxMetaData *meta = mUiEngine->mailboxById(mCurrentMailboxId); |
852 NmMailboxMetaData *meta = mUiEngine->mailboxById(mCurrentMailboxId); |
836 |
|
837 // This will ensure that when service is started as a embedded service and a mail |
853 // This will ensure that when service is started as a embedded service and a mail |
838 // process already exists the task activity will show the embedded service inside the |
854 // process already exists the task activity will show the embedded service inside the |
839 // calling processes activity and the already running mail process in its own activity. |
855 // calling processes activity and the already running mail process in its own activity. |
840 if(!XQServiceUtil::isService() || !XQServiceUtil::isEmbedded()) { |
856 if(!XQServiceUtil::isService() || !XQServiceUtil::isEmbedded()) { |
841 if (meta) { |
857 if (meta) { |
843 tasksettings.setVisibility(false); |
859 tasksettings.setVisibility(false); |
844 QVariantHash metadata; |
860 QVariantHash metadata; |
845 metadata.insert(ActivityScreenshotKeyword, QPixmap::grabWidget(mainWindow(), mainWindow()->rect())); |
861 metadata.insert(ActivityScreenshotKeyword, QPixmap::grabWidget(mainWindow(), mainWindow()->rect())); |
846 metadata.insert(ActivityApplicationName, meta->name()); |
862 metadata.insert(ActivityApplicationName, meta->name()); |
847 metadata.insert(ActivityVisibility, true); |
863 metadata.insert(ActivityVisibility, true); |
848 activityManager()->removeActivity(NmActivityName); |
864 ok = mActivityStorage->saveActivity(NmActivityName, QVariant(), metadata); |
849 activityManager()->addActivity(NmActivityName, QVariant(), metadata); |
865 if(!ok) { |
|
866 NM_COMMENT("Save activity to Task Switcher failed."); |
|
867 } |
850 } |
868 } |
851 else { |
869 else { |
852 activityManager()->removeActivity(NmActivityName); |
870 ok = mActivityStorage->removeActivity(NmActivityName); |
|
871 if(!ok) { |
|
872 NM_COMMENT("Remove activity from Task Switcher failed."); |
|
873 } |
853 TsTaskSettings tasksettings; |
874 TsTaskSettings tasksettings; |
854 tasksettings.setVisibility(true); |
875 tasksettings.setVisibility(true); |
855 } |
876 } |
856 } |
877 } |
857 } |
878 } |
861 */ |
882 */ |
862 void NmApplication::activityActivated() |
883 void NmApplication::activityActivated() |
863 { |
884 { |
864 quint64 accountId(0); |
885 quint64 accountId(0); |
865 QString activateId = this->activateId(); |
886 QString activateId = this->activateId(); |
866 if (activateReason() == Hb::ActivationReasonActivity && |
887 if (mActivation->reason() == Af::ActivationReasonActivity && |
867 activateId.startsWith(NmActivityName) ) { |
888 activateId.startsWith(NmActivityName) ) { |
868 QString accountIdString = activateId.mid(NmActivityName.length()); |
889 QString accountIdString = activateId.mid(NmActivityName.length()); |
869 accountId = accountIdString.toULongLong(); |
890 accountId = accountIdString.toULongLong(); |
870 QVariant mailbox; |
891 QVariant mailbox; |
871 mailbox.setValue(accountId); |
892 mailbox.setValue(accountId); |