diff -r d1838696558c -r 9dcba1ee99f7 appinstaller/AppMngr2/src/appmngr2log.cpp --- a/appinstaller/AppMngr2/src/appmngr2log.cpp Thu Oct 14 14:11:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,192 +0,0 @@ -/* -* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Shows installation log in a popup list dialog -* -*/ - - -#include "appmngr2log.h" // CAppMngr2Log -#include "appmngr2logpopuplist.h" // CAppMngr2LogPopupList -#include "appmngr2logdatabase.h" // CAppMngr2LogDatabase -#include "appmngr2logdatabaseentry.h" // CAppMngr2LogDatabaseEntry -#include // Resource IDs -#include // CAknDoublePopupMenuStyleListBox -#include // Stingloader - -const TInt KMaxNumberOfShownLogItems = 50; -const TInt KInstDateTimeTextLength = 64; -const TInt KInstActionTextLength = 64; -const TInt KInstLogLineTextLen = KInstDateTimeTextLength + - KInstActionTextLength + SwiUI::KMaxLogNameLength; - -// Date and action separated by " - " -_LIT( KSeparator, " - " ); -_LIT( KVersionPrefix, " (" ); -_LIT( KVersionSuffix, ")" ); - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CAppMngr2Log::CAppMngr2Log() -// --------------------------------------------------------------------------- -// -CAppMngr2Log::CAppMngr2Log( CEikonEnv& aEikEnv ) : iEikEnv( aEikEnv ) - { - } - -// --------------------------------------------------------------------------- -// CAppMngr2Log::NewLC() -// --------------------------------------------------------------------------- -// -CAppMngr2Log* CAppMngr2Log::NewLC() - { - CAppMngr2Log* self = new (ELeave) CAppMngr2Log( *( CEikonEnv::Static() ) ); - CleanupStack::PushL( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CAppMngr2Log::~CAppMngr2Log() -// --------------------------------------------------------------------------- -// -CAppMngr2Log::~CAppMngr2Log() - { - } - -// --------------------------------------------------------------------------- -// CAppMngr2Log::ShowInstallationLogL() -// --------------------------------------------------------------------------- -// -void CAppMngr2Log::ShowInstallationLogL() - { - CEikFormattedCellListBox* listBox = new (ELeave) CAknDoublePopupMenuStyleListBox; - CleanupStack::PushL( listBox ); - - // AppMngr version of Avkon popup list with heading - CAppMngr2LogPopupList* popupList = CAppMngr2LogPopupList::NewL( - listBox, R_AVKON_SOFTKEYS_OK_EMPTY__OK, AknPopupLayouts::EMenuDoubleWindow ); - CleanupStack::PushL( popupList ); - - // Set title text - HBufC* title = StringLoader::LoadLC( R_INST_LOG_HEADER ); - popupList->SetTitleL( *title ); - CleanupStack::PopAndDestroy( title ); - - // Set listbox properties and create item array - listBox->ConstructL( popupList, EAknListBoxViewerFlags ); - listBox->CreateScrollBarFrameL( ETrue ); - listBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - MDesCArray* itemList = listBox->Model()->ItemTextArray(); - CDesCArray* itemArray = static_cast( itemList ); - ConstructLogArrayL( itemArray ); - - // Set empty text - CListBoxView* view = listBox->View(); - HBufC* emptyText = StringLoader::LoadLC( R_QTN_SWINS_LOG_EMPTY ); - view->SetListEmptyTextL( *emptyText ); - CleanupStack::PopAndDestroy( emptyText ); - - // Lauch popup list - popupList->ExecuteLD(); - - CleanupStack::Pop( popupList ); - CleanupStack::PopAndDestroy( listBox ); - } - -// --------------------------------------------------------------------------- -// CAppMngr2Log::ConstructLogArrayL() -// --------------------------------------------------------------------------- -// -void CAppMngr2Log::ConstructLogArrayL( CDesCArray* aItemArray ) - { - CAppMngr2LogDatabase* log = CAppMngr2LogDatabase::NewL(); - CleanupStack::PushL( log ); - - const RPointerArray& logEntries = log->Entries(); - - // Read KMaxNumberOfShownLogItems first log entries, ignore the rest - TInt length = logEntries.Count(); - TInt diff = length - KMaxNumberOfShownLogItems; - - // Add entries from the latest log item (reverse order) into item array - for( TInt index = length - 1; index >= diff && index >= 0; index-- ) - { - if( logEntries[ index ] ) - { - const CAppMngr2LogDatabaseEntry& entry = *( logEntries[ index ] ); - - HBufC* buffer = HBufC::NewMaxLC( KInstLogLineTextLen ); - TPtr listboxLine = buffer->Des(); - listboxLine.Zero(); - - // First row in double list item contains application name - listboxLine.Append( entry.Name() ); - listboxLine.Append( KVersionPrefix ); - listboxLine.Append( entry.Version() ); - listboxLine.Append( KVersionSuffix ); - listboxLine.Append( KColumnListSeparator ); - - // Second row contains date and action type (install/uninstall/partial) - SetLogDateTimeColumnL( listboxLine, entry.Time() ); - listboxLine.Append( KSeparator ); - SetLogActionTextColumnL( listboxLine, entry.Action() ); - - aItemArray->AppendL( listboxLine ); - CleanupStack::PopAndDestroy( buffer ); - } - } - - CleanupStack::PopAndDestroy( log ); - } - -// --------------------------------------------------------------------------- -// CAppMngr2Log::SetLogActionTextColumnL() -// --------------------------------------------------------------------------- -// -void CAppMngr2Log::SetLogActionTextColumnL( TDes& aListboxLine, - const SwiUI::TLogTaskAction& aAction ) - { - TBuf action; - switch( aAction ) - { - case SwiUI::ELogTaskActionInstall: - iEikEnv.ReadResourceL( action, R_INST_INSTALL_EVENT ); - break; - case SwiUI::ELogTaskActionUninstall: - iEikEnv.ReadResourceL( action, R_INST_REMOVE_EVENT ); - break; - // no action for R_INST_PARTIAL_INSTALL_EVENT, not supported - default: - break; - } - aListboxLine.Append( action ); - } - -// --------------------------------------------------------------------------- -// CAppMngr2Log::SetLogDateTimeColumnL() -// --------------------------------------------------------------------------- -// -void CAppMngr2Log::SetLogDateTimeColumnL( TDes& aListboxLine, - const TTime& aDateTime ) - { - TBuf tempBuf; - TBuf dateFormat; - iEikEnv.ReadResourceL( dateFormat, R_QTN_DATE_USUAL_WITH_ZERO ); - aDateTime.FormatL( tempBuf, dateFormat ); - AknTextUtils::DisplayTextLanguageSpecificNumberConversion( tempBuf ); - aListboxLine.Append( tempBuf ); - } -