emailuis/nmailui/src/nmapplication.cpp
changeset 75 47d84de1c893
parent 72 64e38f08e49c
equal deleted inserted replaced
72:64e38f08e49c 75:47d84de1c893
    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.
   159     // Effects need to be deleted before MainWindow.
   166     // Effects need to be deleted before MainWindow.
   160     delete mEffects;
   167     delete mEffects;
   161     delete mMainWindow;
   168     delete mMainWindow;
   162     delete mAttaManager;
   169     delete mAttaManager;
   163     delete mSettingsViewLauncher;
   170     delete mSettingsViewLauncher;
       
   171     delete mActivityStorage;
       
   172     delete mActivation;
   164 }
   173 }
   165 
   174 
   166 
   175 
   167 /*!
   176 /*!
   168     Main application window creation.
   177     Main application window creation.
   250 
   259 
   251         if (currentView) {
   260         if (currentView) {
   252             currentView->viewReady();
   261             currentView->viewReady();
   253             emit applicationReady();
   262             emit applicationReady();
   254         }
   263         }
       
   264     NM_TIMESTAMP("Application view ready.");
   255     }
   265     }
   256 }
   266 }
   257 
   267 
   258 
   268 
   259 /*!
   269 /*!
   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);