--- a/creator/src/creator_browser.cpp Thu Aug 19 09:55:38 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,592 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-
-
-#include "creator_browser.h"
-#include "creator_traces.h"
-
-#include <favouriteswapap.h>
-
-
-static const TInt KBrowserFieldLength = 128;
-
-_LIT(KCreatorBrowserPrefixName, "CR_");
-_LIT(KCreatorBrowserPrefixFolderName, "CR_FLDR_");
-
-//----------------------------------------------------------------------------
-
-CBrowserParameters::CBrowserParameters()
- {
- LOGSTRING("Creator: CBrowserParameters::CBrowserParameters");
-
- iBookmarkName = HBufC::New(KBrowserFieldLength);
- iBookmarkAddress = HBufC::New(KBrowserFieldLength);
- iBookmarkUsername = HBufC::New(KBrowserFieldLength);
- iBookmarkPassword = HBufC::New(KBrowserFieldLength);
- iBookmarkFolderName = HBufC::New(KBrowserFieldLength);
- iSavedDeckLinkName = HBufC::New(KBrowserFieldLength);
- iSavedDeckLocalAddress = HBufC::New(KBrowserFieldLength);
- iSavedDeckFolderName = HBufC::New(KBrowserFieldLength);
- }
-
-CBrowserParameters::~CBrowserParameters()
- {
- LOGSTRING("Creator: CBrowserParameters::~CBrowserParameters");
-
- delete iSavedDeckFolderName;
- delete iSavedDeckLocalAddress;
- delete iSavedDeckLinkName;
- delete iBookmarkFolderName;
- delete iBookmarkPassword;
- delete iBookmarkUsername;
- delete iBookmarkAddress;
- delete iBookmarkName;
-
- }
-
-//----------------------------------------------------------------------------
-
-CCreatorBrowser* CCreatorBrowser::NewL(CCreatorEngine* aEngine)
- {
- CCreatorBrowser* self = CCreatorBrowser::NewLC(aEngine);
- CleanupStack::Pop(self);
- return self;
- }
-
-CCreatorBrowser* CCreatorBrowser::NewLC(CCreatorEngine* aEngine)
- {
- CCreatorBrowser* self = new (ELeave) CCreatorBrowser;
- CleanupStack::PushL(self);
- self->ConstructL(aEngine);
- return self;
- }
-
-CCreatorBrowser::CCreatorBrowser()
- {
- }
-
-void CCreatorBrowser::ConstructL(CCreatorEngine* aEngine)
- {
- LOGSTRING("Creator: CCreatorBrowser::ConstructL");
-
- iEngine = aEngine;
- }
-
-CCreatorBrowser::~CCreatorBrowser()
- {
- LOGSTRING("Creator: CCreatorBrowser::~CCreatorBrowser");
- if ( iEngine && iBmEntryIds.Count() )
- {
- TRAP_IGNORE( iEngine->WriteEntryIdsToStoreL( iBmEntryIds, KUidDictionaryUidBrowserBookmarks ) );
- }
- iBmEntryIds.Reset();
- iBmEntryIds.Close();
-
- if ( iEngine && iBmFEntryIds.Count() )
- {
- TRAP_IGNORE( iEngine->WriteEntryIdsToStoreL( iBmFEntryIds, KUidDictionaryUidBrowserBookmarkF ) );
- }
- iBmFEntryIds.Reset();
- iBmFEntryIds.Close();
-
- if ( iEngine && iSpEntryIds.Count() )
- {
- TRAP_IGNORE( iEngine->WriteEntryIdsToStoreL( iSpEntryIds, KUidDictionaryUidBrowserSavedPg ) );
- }
- iSpEntryIds.Reset();
- iSpEntryIds.Close();
-
- if ( iEngine && iSpFEntryIds.Count() )
- {
- TRAP_IGNORE( iEngine->WriteEntryIdsToStoreL( iSpFEntryIds, KUidDictionaryUidBrowserSavedPgF ) );
- }
- iSpFEntryIds.Reset();
- iSpFEntryIds.Close();
-
- delete iParameters;
- }
-
-//----------------------------------------------------------------------------
-
-TBool CCreatorBrowser::AskDataFromUserL(TInt aCommand, TInt& aNumberOfEntries)
- {
- LOGSTRING("Creator: CCreatorBrowser::AskDataFromUserL");
-
- TBool result( EFalse );
- switch ( aCommand )
- {
- case ECmdDeleteBrowserBookmarks:
- {
- result = iEngine->YesNoQueryDialogL( _L("Delete all Browser bookmarks?") );
- break;
- }
- case ECmdDeleteCreatorBrowserBookmarks:
- {
- result = iEngine->YesNoQueryDialogL( _L("Delete all Browser bookmarks created with Creator?") );
- break;
- }
- case ECmdDeleteBrowserBookmarkFolders:
- {
- result = iEngine->YesNoQueryDialogL( _L("Delete all Browser bookmark folders?") );
- break;
- }
- case ECmdDeleteCreatorBrowserBookmarkFolders:
- {
- result = iEngine->YesNoQueryDialogL( _L("Delete all Browser bookmark folders created with Creator?") );
- break;
- }
- case ECmdDeleteBrowserSavedPages:
- {
- result = iEngine->YesNoQueryDialogL( _L("Delete all Browser saved pages?") );
- break;
- }
- case ECmdDeleteCreatorBrowserSavedPages:
- {
- result = iEngine->YesNoQueryDialogL( _L("Delete all Browser saved pages created with Creator?") );
- break;
- }
- case ECmdDeleteBrowserSavedPageFolders:
- {
- result = iEngine->YesNoQueryDialogL( _L("Delete all Browser saved pages folders?") );
- break;
- }
- case ECmdDeleteCreatorBrowserSavedPageFolders:
- {
- result = iEngine->YesNoQueryDialogL( _L("Delete all Browser saved pages folders created with Creator?") );
- break;
- }
- default:
- {
- result = iEngine->EntriesQueryDialogL(aNumberOfEntries, _L("How many entries to create?"));
- break;
- }
- }
- return result;
- }
-
-
-//----------------------------------------------------------------------------
-
-TInt CCreatorBrowser::CreateBookmarkEntryL(CBrowserParameters *aParameters)
- {
- LOGSTRING("Creator: CCreatorBrowser::CreateBookmarkEntryL");
-
- // clear any existing parameter definations
- delete iParameters;
- iParameters = NULL;
-
- CBrowserParameters* parameters = aParameters;
-
- // random data needed if no predefined data available
- if( !parameters )
- {
- iParameters = new(ELeave) CBrowserParameters;
- parameters = iParameters;
-
- TFileName userAndPassword = iEngine->RandomString(CCreatorEngine::EFirstName);
- TFileName name = iEngine->RandomString(CCreatorEngine::ECompany);
- TFileName url = name;
- url.Insert(0, _L("http://www."));
- url.Append(_L(".com/"));
- name.Insert(0, KCreatorBrowserPrefixName);
-
- parameters->iBookmarkName->Des() = name;
- parameters->iBookmarkAddress->Des() = url;
- parameters->iBookmarkUsername->Des() = userAndPassword;
- parameters->iBookmarkPassword->Des() = userAndPassword;
- }
-
- TInt err = KErrNone;
-
- RFavouritesSession session;
- User::LeaveIfError( session.Connect() );
- CleanupClosePushL<RFavouritesSession>(session);
- RFavouritesDb db;
- User::LeaveIfError( db.Open(session, KBrowserBookmarks) );
- CleanupClosePushL<RFavouritesDb>(db);
-
- CFavouritesItem* item = CFavouritesItem::NewLC();
- item->SetType( CFavouritesItem::EItem );
- item->SetParentFolder( KFavouritesRootUid ) ;
- item->SetNameL( parameters->iBookmarkName->Des() );
- item->SetUrlL( parameters->iBookmarkAddress->Des() );
- item->SetUserNameL( parameters->iBookmarkUsername->Des() );
- item->SetPasswordL( parameters->iBookmarkPassword->Des() );
- err = db.Add(*item, /*aAutoRename=*/ETrue);
- if (err)
- db.Commit();
-
- // id has been generated, store it for being able to delete
- // only entries created with Creator
- iBmEntryIds.Append( item->Uid() );
-
- CleanupStack::PopAndDestroy(3); //db, session, item
-
- return err;
- }
-
-//----------------------------------------------------------------------------
-
-TInt CCreatorBrowser::CreateBookmarkFolderEntryL(CBrowserParameters *aParameters)
- {
- LOGSTRING("Creator: CCreatorBrowser::CreateBookmarkFolderEntryL");
-
- // clear any existing parameter definations
- delete iParameters;
- iParameters = NULL;
-
- CBrowserParameters* parameters = aParameters;
-
- // random data needed if no predefined data available
- if (!parameters)
- {
- iParameters = new(ELeave) CBrowserParameters;
- parameters = iParameters;
-
- TFileName name = iEngine->RandomString(CCreatorEngine::ECompany);
- name.Insert(0, KCreatorBrowserPrefixFolderName);
-
- parameters->iBookmarkFolderName->Des() = name;
- }
-
- TInt err = KErrNone;
-
- RFavouritesSession session;
- User::LeaveIfError( session.Connect() );
- CleanupClosePushL<RFavouritesSession>(session);
- RFavouritesDb db;
- User::LeaveIfError( db.Open(session, KBrowserBookmarks) );
- CleanupClosePushL<RFavouritesDb>(db);
-
- CFavouritesItem* item = CFavouritesItem::NewLC();
- item->SetType( CFavouritesItem::EFolder );
- item->SetParentFolder( KFavouritesRootUid ) ;
- item->SetNameL( parameters->iBookmarkFolderName->Des() );
-
- err = db.Add(*item, /*aAutoRename=*/ETrue);
- if (err)
- db.Commit();
-
- // id has been generated, store it for being able to delete
- // only entries created with Creator
- iBmFEntryIds.Append( item->Uid() );
-
- CleanupStack::PopAndDestroy(3); //db, session, item
-
-
- return err;
-
- }
-
-//----------------------------------------------------------------------------
-
-TInt CCreatorBrowser::CreateSavedDeckEntryL(CBrowserParameters *aParameters)
- {
- LOGSTRING("Creator: CCreatorBrowser::CreateSavedDeckEntryL");
-
- // clear any existing parameter definations
- delete iParameters;
- iParameters = NULL;
-
- CBrowserParameters* parameters = aParameters;
-
- // random data needed if no predefined data available
- if (!parameters)
- {
- iParameters = new(ELeave) CBrowserParameters;
- parameters = iParameters;
-
- TFileName name = iEngine->RandomString(CCreatorEngine::ECompany);
- name.Insert(0, KCreatorBrowserPrefixName);
-
- parameters->iSavedDeckLinkName->Des() = name;
- parameters->iSavedDeckLocalAddress->Des() = iEngine->TestDataPathL(CCreatorEngine::ESavedDeck_1kB);
- }
-
- TInt err = KErrNone;
-
- // check the deck address is correct
- if ( parameters->iSavedDeckLocalAddress->Des().Length() == 0 ||
- !BaflUtils::FileExists( CEikonEnv::Static()->FsSession(), parameters->iSavedDeckLocalAddress->Des() ))
- {
- // not found, use a default deck instead
- delete parameters->iSavedDeckLocalAddress;
- parameters->iSavedDeckLocalAddress = 0;
- TPtrC tmp = iEngine->TestDataPathL(CCreatorEngine::ESavedDeck_1kB);
- parameters->iSavedDeckLocalAddress = HBufC::NewL(tmp.Length());
- parameters->iSavedDeckLocalAddress->Des() = tmp;
- }
-
-
- RFavouritesSession session;
- User::LeaveIfError( session.Connect() );
- CleanupClosePushL<RFavouritesSession>(session);
- RFavouritesDb db;
- User::LeaveIfError( db.Open(session, KBrowserSavedPages) );
- CleanupClosePushL<RFavouritesDb>(db);
-
- CFavouritesItem* item = CFavouritesItem::NewLC();
- item->SetType( CFavouritesItem::EItem );
- item->SetParentFolder( KFavouritesRootUid ) ;
- item->SetNameL( parameters->iSavedDeckLinkName->Des() );
- item->SetUrlL( _L(" ") );
-
- TFavouritesWapAp favouritesAp;
- favouritesAp.SetDefault();
- item->SetWapAp( favouritesAp );
-
-
- err = db.Add(*item, /*aAutoRename=*/ETrue);
- if (err)
- db.Commit();
-
- // read the source deck to buffer
- RFile sourceFile;
- User::LeaveIfError( sourceFile.Open(CEikonEnv::Static()->FsSession(), parameters->iSavedDeckLocalAddress->Des(), EFileRead) );
- CleanupClosePushL<RFile>(sourceFile);
- TInt sourceFileSize(0);
- err = sourceFile.Size(sourceFileSize);
- HBufC8* sourceBuf = HBufC8::NewLC(sourceFileSize);
- TPtr8 sourcePtr = sourceBuf->Des();
- sourceFile.Read(sourcePtr);
-
- // write the deck
- RFavouritesFile destinationFile;
- User::LeaveIfError( destinationFile.Replace(db, item->Uid() ));
- CleanupClosePushL<RFavouritesFile>(destinationFile);
- err = destinationFile.Write(sourceBuf->Des());
-
- // id has been generated, store it for being able to delete
- // only entries created with Creator
- iSpEntryIds.Append( item->Uid() );
-
-
- CleanupStack::PopAndDestroy(6); //db, session, item, sourceFile, destinationFile, sourceBuf
-
- return err;
- }
-
-//----------------------------------------------------------------------------
-
-TInt CCreatorBrowser::CreateSavedDeckFolderEntryL(CBrowserParameters *aParameters)
- {
- LOGSTRING("Creator: CCreatorBrowser::CreateSavedDeckFolderEntryL");
-
- // clear any existing parameter definations
- delete iParameters;
- iParameters = NULL;
-
- CBrowserParameters* parameters = aParameters;
- // random data needed if no predefined data available
- if (!parameters)
- {
- iParameters = new(ELeave) CBrowserParameters;
- parameters = iParameters;
-
- TFileName name = iEngine->RandomString(CCreatorEngine::ECompany);
- name.Insert(0, KCreatorBrowserPrefixFolderName);
-
- parameters->iSavedDeckFolderName->Des() = name;
- }
-
- TInt err = KErrNone;
-
- RFavouritesSession session;
- User::LeaveIfError( session.Connect() );
- CleanupClosePushL<RFavouritesSession>(session);
- RFavouritesDb db;
- User::LeaveIfError( db.Open(session, KBrowserSavedPages) );
- CleanupClosePushL<RFavouritesDb>(db);
-
- CFavouritesItem* item = CFavouritesItem::NewLC();
- item->SetType( CFavouritesItem::EFolder );
- item->SetParentFolder( KFavouritesRootUid ) ;
- item->SetNameL( parameters->iSavedDeckFolderName->Des() );
-
- err = db.Add(*item, /*aAutoRename=*/ETrue);
- if (err)
- db.Commit();
-
- // id has been generated, store it for being able to delete
- // only entries created with Creator
- iSpFEntryIds.Append( item->Uid() );
-
- CleanupStack::PopAndDestroy(3); //db, session, item
-
- return err;
-
- }
-
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllL");
- User::Leave( KErrNotSupported );
- // will not be supported, see separate implementations below
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllCreatedByCreatorL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllCreatedByCreatorL");
- User::Leave( KErrNotSupported );
- // will not be supported, see separate implementations below
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllBookmarksL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllBookmarksL");
- DeleteAllItemsL( KBrowserBookmarks,
- CFavouritesItem::EItem,
- EFalse,
- iBmEntryIds, // ignored, because deleting all
- KUidDictionaryUidBrowserBookmarks );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllBookmarksCreatedByCreatorL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllBookmarksCreatedByCreatorL");
- DeleteAllItemsL( KBrowserBookmarks,
- CFavouritesItem::EItem,
- ETrue,
- iBmEntryIds,
- KUidDictionaryUidBrowserBookmarks );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllBookmarkFoldersL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllBookmarkFoldersL");
- DeleteAllItemsL( KBrowserBookmarks,
- CFavouritesItem::EFolder,
- EFalse,
- iBmFEntryIds, // ignored, because deleting all
- KUidDictionaryUidBrowserBookmarkF );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllBookmarkFoldersCreatedByCreatorL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllBookmarkFoldersCreatedByCreatorL");
- DeleteAllItemsL( KBrowserBookmarks,
- CFavouritesItem::EFolder,
- ETrue,
- iBmFEntryIds,
- KUidDictionaryUidBrowserBookmarkF );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllSavedPagesL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllSavedPagesL");
- DeleteAllItemsL( KBrowserSavedPages,
- CFavouritesItem::EItem,
- EFalse,
- iSpEntryIds, // ignored, because deleting all
- KUidDictionaryUidBrowserSavedPg );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllSavedPagesCreatedByCreatorL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllSavedPagesCreatedByCreatorL");
- DeleteAllItemsL( KBrowserSavedPages,
- CFavouritesItem::EItem,
- ETrue,
- iSpEntryIds,
- KUidDictionaryUidBrowserSavedPg );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllSavedPageFoldersL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllSavedPageFoldersL");
- DeleteAllItemsL( KBrowserSavedPages,
- CFavouritesItem::EFolder,
- EFalse,
- iSpFEntryIds, // ignored, because deleting all
- KUidDictionaryUidBrowserSavedPgF );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllSavedPageFoldersCreatedByCreatorL()
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteAllSavedPageFolderssCreatedByCreatorL");
- DeleteAllItemsL( KBrowserSavedPages,
- CFavouritesItem::EFolder,
- ETrue,
- iSpFEntryIds,
- KUidDictionaryUidBrowserSavedPgF );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorBrowser::DeleteAllItemsL( const TDesC& aDbName,
- CFavouritesItem::TType aTypeFilter,
- TBool aOnlyCreatedWithCreator,
- RArray<TInt>& aEntryIds,
- const TUid aDictUid )
- {
- LOGSTRING("Creator: CCreatorBrowser::DeleteItemL");
- RFavouritesSession session;
- User::LeaveIfError( session.Connect() );
- CleanupClosePushL( session );
- RFavouritesDb db;
- User::LeaveIfError( db.Open( session, aDbName ) );
- CleanupClosePushL( db );
-
- if ( aOnlyCreatedWithCreator )
- {
- // read uids from Creator internal store
- aEntryIds.Reset();
- iEngine->ReadEntryIdsFromStoreL( aEntryIds, aDictUid );
-
- // delete entries from db
- for ( TInt i = 0; i < aEntryIds.Count(); i++ )
- {
- db.Delete( aEntryIds[i] );
- }
- }
- else
- {
- CArrayFixFlat<TInt>* uids = new (ELeave) CArrayFixFlat<TInt>(64);
- CleanupStack::PushL( uids );
-
- // read uids from browser db
- User::LeaveIfError( db.GetUids( *uids, KFavouritesRootUid, aTypeFilter ) );
-
- // delete entries from db
- for ( TInt i = 0; i < uids->Count(); i++ )
- {
- db.Delete( uids->At(i) );
- }
-
- // db.Commit() seems to panic with EFavouritesNoTransaction
- // deletion is successful even without commit, so not calling it
- CleanupStack::PopAndDestroy( uids );
- }
-
- // entries deleted, remove the Browser related registry
- aEntryIds.Reset();
- iEngine->RemoveStoreL( aDictUid );
-
- CleanupStack::PopAndDestroy( &db );
- CleanupStack::PopAndDestroy( &session );
- }