diff -r 48060abbbeaf -r b3cee849fa46 creator/engine/src/creator_phonebookbase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/creator/engine/src/creator_phonebookbase.cpp Tue Aug 31 15:15:20 2010 +0300 @@ -0,0 +1,154 @@ +/* +* Copyright (c) 2010 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 "engine.h" +#include "enginewrapper.h" +#include "creator_phonebookbase.h" +#include "creator_traces.h" + +void CCreatorPhonebookBase::QueryDialogClosedL(TBool aPositiveAction, TInt aUserData) + { + LOGSTRING("Creator: CCreatorPhonebookBase::QueryDialogClosedL"); + + if(aPositiveAction == EFalse && aUserData!=ECreatorPhonebookGetContactFields ) + { + iEngine->ShutDownEnginesL(); + return; + } + + const TDesC* showText = &KSavingText; + TBool finished(EFalse); + TBool retval(ETrue); + switch(aUserData) + { + case ECreatorPhonebookDelete: + showText = &KDeletingText; + finished = ETrue; + iEntriesToBeCreated = 1; + break; + case ECreatorPhonebookStart: + if(iCommand == ECmdCreatePhoneBookEntryContacts ) + { + retval = iEngine->GetEngineWrapper()->ListQueryDialog(_L("Fields in contact"), R_CONTACT_CREATION_TYPE_QUERY, + &iDummy, this, ECreatorPhonebookGetContactFields ); + } + else + { + retval = iEngine->GetEngineWrapper()->ListQueryDialog(_L("Number of contacts "), R_GROUP_CREATION_TYPE_QUERY, + &iDummy, this, ECreatorPhonebookGetGroupFields ); + } + break; + case ECreatorPhonebookGetContactFields: + if(iDummy==0)// first item, use default fields + + { + iDefaultFieldsSelected = ETrue; + finished = ETrue; + } + else + { + retval = iEngine->GetEngineWrapper()->EntriesQueryDialog(&iNumberOfPhoneNumberFields, _L("Amount of phone number fields in one contact?"), + ETrue, this, ECreatorPhonebookGetPhoneNumbersCount + ); + } + break; + case ECreatorPhonebookGetPhoneNumbersCount: + retval = iEngine->GetEngineWrapper()->EntriesQueryDialog(&iNumberOfURLFields, _L("Amount of URL fields in one contact?"), + ETrue, this, ECreatorPhonebookGetUrlsCount + ); + break; + case ECreatorPhonebookGetUrlsCount: + retval = iEngine->GetEngineWrapper()->EntriesQueryDialog(&iNumberOfEmailAddressFields, _L("Amount of email fields in one contact?"), + ETrue, this, ECreatorPhonebookGetEmailsCount + ); + break; + case ECreatorPhonebookGetEmailsCount: + retval = iEngine->GetEngineWrapper()->YesNoQueryDialog(_L("Add all the other fields to contacts?"), this, ECreatorPhonebookContactsAllFields); + break; + case ECreatorPhonebookContactsAllFields: + iAddAllFields = aPositiveAction; + // finaly we have all informations from user, start engine + finished = ETrue; + break; + case ECreatorPhonebookGetGroupFields: + iContactsInGroup = KCreateRandomAmountOfGroups; + if(iDummy==0)// first item, use default fields + { + finished = ETrue; + } + else + { + retval = iEngine->GetEngineWrapper()->EntriesQueryDialog(&iContactsInGroup, _L("Amount of contacts in one group?"), + ETrue, this, ECreatorPhonebookGetContactsInGroup); + } + break; + case ECreatorPhonebookGetContactsInGroup: + // finaly we have all informations from user, start engine + finished = ETrue; + break; + default: + //some error + retval = EFalse; + break; + } + if( retval == EFalse ) + { + iEngine->ShutDownEnginesL(); + } + else if( finished ) + { + // add this command to command array + iEngine->AppendToCommandArrayL(iCommand, NULL, iEntriesToBeCreated); + // started exucuting commands + iEngine->ExecuteFirstCommandL( *showText ); + } + } + +TBool CCreatorPhonebookBase::AskDataFromUserL(TInt aCommand) + { + LOGSTRING("Creator: CCreatorPhonebookBase::AskDataFromUserL"); + iCommand = aCommand; + + if( aCommand == ECmdDeleteContacts ) + { + return iEngine->GetEngineWrapper()->YesNoQueryDialog(_L("Delete all contacts?"), this, ECreatorPhonebookDelete ); + } + if( aCommand == ECmdDeleteCreatorContacts ) + { + return iEngine->GetEngineWrapper()->YesNoQueryDialog(_L("Delete all contacts created with Creator?"), this, ECreatorPhonebookDelete ); + } + if( aCommand == ECmdDeleteContactGroups ) + { + return iEngine->GetEngineWrapper()->YesNoQueryDialog(_L("Delete all contact groups?"), this, ECreatorPhonebookDelete ); + } + if( aCommand == ECmdDeleteCreatorContactGroups ) + { + return iEngine->GetEngineWrapper()->YesNoQueryDialog(_L("Delete all contact groups created with Creator?"), this, ECreatorPhonebookDelete ); + } + // display queries + return iEngine->GetEngineWrapper()->EntriesQueryDialog( &iEntriesToBeCreated, _L("How many entries to create?"), EFalse, this, ECreatorPhonebookStart); // ask number of entries to create + } + + +void CCreatorPhonebookBase::SetDefaultParameters() + { + iNumberOfPhoneNumberFields = 1; + iNumberOfURLFields = 0; + iNumberOfEmailAddressFields = 0; + iContactsInGroup = 50; + iDefaultFieldsSelected = EFalse; + }