diff -r 1881ad52dc45 -r a5ed90760192 calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp --- a/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp Tue Aug 31 18:15:13 2010 +0530 +++ b/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp Mon Sep 06 10:12:45 2010 +0530 @@ -130,7 +130,16 @@ void CCalenLunarChinesePlugin::ConstructL() { OstTraceFunctionEntry0( CCALENLUNARCHINESEPLUGIN_CONSTRUCTL_ENTRY ); - iServices->RegisterForNotificationsL( this, ECalenNotifyContextChanged ); + + RArray notifications; + notifications.Append(ECalenNotifyContextChanged); + notifications.Append(ECalenNotifyCloseDialogs); + + iServices->RegisterForNotificationsL( this, notifications ); + + notifications.Close(); + + iServices->GetCommandRange( iStart, iEnd ); // Install the translator before the CCalenLunarLocalizer is constructed @@ -299,10 +308,14 @@ const TCalenNotification aNotification ) { OstTraceFunctionEntry0( CCALENLUNARCHINESEPLUGIN_HANDLENOTIFICATION_ENTRY ); - if (aNotification == ECalenNotifyContextChanged) - { - TRAP_IGNORE(UpdateLocalizerInfoL()); - } + if (aNotification == ECalenNotifyContextChanged) { + TRAP_IGNORE(UpdateLocalizerInfoL()); + } else if(aNotification == ECalenNotifyCloseDialogs) { + if(mPopup){ + //close the popup + mPopup->done(0); + } + } OstTraceFunctionExit0( CCALENLUNARCHINESEPLUGIN_HANDLENOTIFICATION_EXIT ); } @@ -359,30 +372,34 @@ // void CCalenLunarChinesePlugin::ExecuteMessageDialogL(QString aMsgText) { - OstTraceFunctionEntry0( CCALENLUNARCHINESEPLUGIN_EXECUTEMESSAGEDIALOGL_ENTRY ); - // Instantiate a popup - HbMessageBox *popup = new HbMessageBox(); - popup->setDismissPolicy(HbDialog::NoDismiss); - popup->setTimeout(HbDialog::NoTimeout); - popup->setIconVisible(false); - popup->setAttribute( Qt::WA_DeleteOnClose, true ); - - popup->setHeadingWidget(new HbLabel(hbTrId("txt_calendar_title_lunar_calendar"))); - popup->setText(aMsgText); - - // Remove the default actions - QList list = popup->actions(); - for(int i=0; i < list.count(); i++) - { - popup->removeAction(list[i]); - } - // Sets the primary action - popup->addAction(new HbAction(hbTrId("txt_common_button_close_singledialog"), popup)); + OstTraceFunctionEntry0( CCALENLUNARCHINESEPLUGIN_EXECUTEMESSAGEDIALOGL_ENTRY ); + + // Instantiate a popup + mPopup = new HbMessageBox(); + mPopup->setDismissPolicy(HbDialog::NoDismiss); + mPopup->setTimeout(HbDialog::NoTimeout); + mPopup->setIconVisible(false); + mPopup->setAttribute(Qt::WA_DeleteOnClose, true); + + mPopup->setHeadingWidget(new HbLabel(hbTrId( + "txt_calendar_title_lunar_calendar"))); + mPopup->setText(aMsgText); - // Launch popup - popup->open(); - OstTraceFunctionExit0( CCALENLUNARCHINESEPLUGIN_EXECUTEMESSAGEDIALOGL_EXIT ); - } + // Remove the default actions + QList list = mPopup->actions(); + for (int i = 0; i < list.count(); i++) + { + mPopup->removeAction(list[i]); + } + // Sets the primary action + mPopup->addAction(new HbAction(hbTrId( + "txt_common_button_close_singledialog"), mPopup)); + + // Launch popup + mPopup->open(); + + OstTraceFunctionExit0( CCALENLUNARCHINESEPLUGIN_EXECUTEMESSAGEDIALOGL_EXIT ); + } //EOF