diff -r cfea66083b62 -r baacf668fe89 phoneapp/phoneui2/src/phoneuihousehold_p.cpp --- a/phoneapp/phoneui2/src/phoneuihousehold_p.cpp Mon Oct 04 16:06:10 2010 +0300 +++ b/phoneapp/phoneui2/src/phoneuihousehold_p.cpp Fri Oct 15 12:58:46 2010 +0300 @@ -41,26 +41,24 @@ PhoneUiHouseHoldPrivate::PhoneUiHouseHoldPrivate(HbMainWindow &window) : iAppsReady (0), iStartupSignalRecoveryId (0), iLightIdleReached (EFalse), - iPhoneUIController (0), m_window (window) + iPhoneUIController (0), m_window (window), m_featMgrInit(false) { PHONE_DEBUG("phoneui - Start phoneapp"); - TRAPD( error, ConstructL() ); - qt_symbian_throwIfError(error); + QT_TRAP_THROWING( ConstructL() ); } PhoneUiHouseHoldPrivate::~PhoneUiHouseHoldPrivate() { - while (!m_translators.isEmpty()) { - HbTranslator *translator = m_translators.takeFirst(); - delete translator; - translator = 0; - } - + resetTranslators(); + delete iKeyEventAdapter; delete iCommandAdapter; delete iPhoneUIController; delete iViewAdapter; + if (m_featMgrInit) { + FeatureManager::UnInitializeLib(); + } } TInt PhoneUiHouseHoldPrivate::DoStartupSignalL( TAny* aAny ) @@ -74,21 +72,16 @@ appUi->DoStartupSignalSecurityL(); } - TInt PhoneUiHouseHoldPrivate::DoStartupSignalIdleL() { PHONE_DEBUG("phoneui::DoStartupSignalIdleL()"); + //Workaround: pre-load libs + m_window.show(); // Idle application has already started if ( !( iAppsReady & EPhoneIdleStartedUp ) ) { PHONE_DEBUG("phoneui::DoStartupSignalIdleL() Idle App started "); iAppsReady += EPhoneIdleStartedUp; - - // Remove Phone application from Fast Swap Window. - // iPhoneViewController->SetHiddenL( ETrue ); - - // Avkon removal - // hack to make sure EPhonePhase1Ok is set - to be fixed properly PHONE_DEBUG("phoneui::DoStartupSignalIdleL() Phone and Idle apps have both been started"); CPhonePubSubProxy::Instance()->ChangePropertyValue( @@ -124,8 +117,7 @@ { PHONE_DEBUG("phoneui::HandlePropertyChangedL()"); - if ( aCategory == KPSUidStartup ) - { + if ( aCategory == KPSUidStartup ){ const TInt startupState = CPhonePubSubProxy::Instance()->Value( KPSUidStartup, @@ -137,34 +129,24 @@ startupState == ESwStateEmergencyCallsOnly || startupState == ESwStateNormalRfOn || startupState == ESwStateNormalRfOff || - startupState == ESwStateNormalBTSap ) - { + startupState == ESwStateNormalBTSap ){ PHONE_DEBUG("phoneui::HandlePropertyChangedL() Try to update the startup signal again..." ); // Try to update the startup signal again CPhoneRecoverySystem::Instance()->RecoverNow( iStartupSignalRecoveryId, CTeleRecoverySystem::EPhonePriorityHigh ); - } } + } } void PhoneUiHouseHoldPrivate::ConstructL() { new( ELeave ) CPhoneLogger( KUidPhoneUILoggerSingleton ); FeatureManager::InitializeLibL(); + m_featMgrInit = true; - HbTranslator *translator = new HbTranslator(QString("telephone")); - - if (translator) { - translator->loadCommon(); - m_translators.append(translator); - } + loadTranslators(); - HbTranslator *translator2 = new HbTranslator(QString("telephone_cp")); - if (translator2) { - m_translators.append(translator2); - } - PhoneUIQtView *view = new PhoneUIQtView(m_window); iViewAdapter = new PhoneUIQtViewAdapter(*view); iPhoneUIController = CPhoneUIController::NewL(iViewAdapter); @@ -188,12 +170,6 @@ QObject::connect(iViewAdapter->noteController(), SIGNAL(command (int)), iCommandAdapter, SLOT(handleCommand (int))); - // Disable default Send key functionality in application framework - // avkon removal -// CAknAppUi *appUi = static_cast(CEikonEnv::Static()->AppUi()); -// appUi->SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort | -// CAknAppUiBase::EDisableSendKeyLong ); - // CLI Name. TInt err = RProperty::Define( KPSUidTelRemotePartyInformation, @@ -315,3 +291,28 @@ } } +void PhoneUiHouseHoldPrivate::loadTranslators() +{ + PHONE_DEBUG2("PhoneUiHouseHoldPrivate::LoadTranslators, locale:", QLocale::system().name()); + resetTranslators(); + + HbTranslator *translator2 = new HbTranslator(QString("telephone_cp")); + if (translator2) { + m_translators.append(translator2); + } + + HbTranslator *translator = new HbTranslator(QString("telephone")); + if (translator) { + translator->loadCommon(); + m_translators.append(translator); //most used translation file added last + } +} + +void PhoneUiHouseHoldPrivate::resetTranslators() +{ + while (!m_translators.isEmpty()) { + HbTranslator *translator = m_translators.takeFirst(); + delete translator; + translator = 0; + } +}