--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/UIControls/src/TPbk2DeleteItemManager.cpp Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2002-2007 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: Phonebook 2 contact editor delete item manager.
+*
+*/
+
+
+#include "TPbk2DeleteItemManager.h"
+
+// Phonebook 2
+#include "MPbk2ContactEditorFieldArray.h"
+#include <MPbk2ContactEditorField.h>
+#include <Pbk2UIControls.rsg>
+#include <CPbk2PresentationContact.h>
+#include <CPbk2PresentationContactFieldCollection.h>
+#include <CPbk2PresentationContactField.h>
+#include <CVPbkContactManager.h>
+#include <CVPbkSpeedDialAttribute.h>
+#include <MPbk2ApplicationServices.h>
+#include <MPbk2AppUi.h>
+#include "CPbk2ContactEditorArrayItem.h"
+#include <MPbk2ApplicationServices.h>
+
+// System includes
+#include <StringLoader.h>
+#include <aknnotewrappers.h>
+#include <featmgr.h>
+
+// --------------------------------------------------------------------------
+// TPbk2DeleteItemManager::TPbk2DeleteItemManager
+// --------------------------------------------------------------------------
+//
+TPbk2DeleteItemManager::TPbk2DeleteItemManager
+ ( CPbk2PresentationContact& aContact,
+ MPbk2ContactEditorFieldArray& aFieldArray,
+ MPbk2ApplicationServices* aAppServices ):
+ iContact( aContact ),
+ iFieldArray( aFieldArray ),
+ iAppServices( aAppServices )
+ {
+ }
+
+// --------------------------------------------------------------------------
+// TPbk2DeleteItemManager::DeleteFieldL
+// --------------------------------------------------------------------------
+//
+TBool TPbk2DeleteItemManager::DeleteFieldL( TInt aControlId )
+ {
+ TBool result = EFalse;
+ CPbk2ContactEditorArrayItem* uiField = iFieldArray.Find(aControlId);
+ if (uiField)
+ {
+ HBufC* prompt = NULL;
+ if(uiField->ContactEditorField())
+ {
+ prompt = StringLoader::LoadLC(R_QTN_PHOB_QUERY_DELETE_ITEM,
+ uiField->ContactEditorField()->FieldLabel());
+ }
+ else if(uiField->ContactEditorUIField())
+ {
+ prompt = StringLoader::LoadLC(R_QTN_PHOB_QUERY_DELETE_ITEM,
+ uiField->ContactEditorUIField()->FieldLabel());
+ }
+ CAknQueryDialog* dlg = CAknQueryDialog::NewL();
+ CleanupStack::PushL(dlg);
+ dlg->SetPromptL(*prompt);
+ CleanupStack::Pop(); // dlg
+ if(dlg->ExecuteLD(R_PBK2_GENERAL_CONFIRMATION_QUERY))
+ {
+ if(uiField->ContactEditorField())
+ {
+ MVPbkStoreContactField& storeField =
+ uiField->ContactEditorField()->ContactField();
+
+ InformDeleteSpeedDialL(storeField);
+ }
+
+ // Delete the field
+ iFieldArray.RemoveField(*uiField);
+ result = ETrue;
+ }
+ CleanupStack::PopAndDestroy(prompt);
+ }
+ return result;
+ }
+
+// --------------------------------------------------------------------------
+// TPbk2DeleteItemManager::InformDeleteSpeedDialL
+// --------------------------------------------------------------------------
+//
+inline void TPbk2DeleteItemManager::InformDeleteSpeedDialL
+ ( const MVPbkStoreContactField& storeField ) const
+ {
+ // Utilise attribute manager to find out does
+ // the contact field have a speed dial defined
+ TBool hasSpeedDial = EFalse;
+ if( iAppServices )
+ {
+ hasSpeedDial = iAppServices->ContactManager().ContactAttributeManagerL().HasFieldAttributeL
+ ( CVPbkSpeedDialAttribute::Uid(), storeField );
+ }
+ else
+ {
+ hasSpeedDial = Phonebook2::Pbk2AppUi()->ApplicationServices().
+ ContactManager().ContactAttributeManagerL().HasFieldAttributeL
+ ( CVPbkSpeedDialAttribute::Uid(), storeField );
+ }
+
+ if ( hasSpeedDial )
+ {
+ HBufC* note = StringLoader::LoadLC
+ ( R_QTN_PHOB_NOTE_SPEED_DIAL_DEL );
+ CAknConfirmationNote* dlg =
+ new ( ELeave ) CAknConfirmationNote( ETrue );
+ dlg->ExecuteLD( *note );
+ CleanupStack::PopAndDestroy(); // note
+ }
+ }
+
+// End of File