--- a/meetingrequest/mrgui/src/cesmrconfirmationquery.cpp Mon Mar 15 12:39:10 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,344 +0,0 @@
-/*
-* Copyright (c) 2002-2009 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: Class is responsible of showing confirmation queries
-*
-*/
-
-// INCLUDE FILES
-#include "emailtrace.h"
-#include "cesmrconfirmationquery.h"
-
-//<cmail>
-#include "esmrdef.h"
-//</cmail>
-#include <AknQueryDialog.h>
-#include <bautils.h>
-#include <esmrgui.rsg>
-#include <eikenv.h>
-#include <avkon.rsg>
-#include <data_caging_path_literals.hrh>
-#include <StringLoader.h>
-#include <AknBidiTextUtils.h>//line wrapping and mirroring
-#include <aknlayoutscalable_apps.cdl.h> //xml layout data for applications
-#include <aknlayoutscalable_avkon.cdl.h> //xml layout data of avkon components
-#include "esmrhelper.h"//locateresourcefile
-
-// Unnamed namespace for local definitions
-namespace {
-
-#ifdef _DEBUG
-
-// Definition for panic text
-_LIT( KESMRConfirmationQueryPanicTxt, "ESMRConfirmationQueryPanic" );
-
-/** Panic code enumaration */
-enum TESMRConfirmationQueryPanic
- {
- EESMRInvalidIdentifier = 0 // Invalid identifier
- };
-
-void Panic( TESMRConfirmationQueryPanic aPanic )
- {
- User::Panic( KESMRConfirmationQueryPanicTxt, aPanic );
- }
-
-#endif
-
-_LIT(KResourceFileName,"esmrgui.rsc");
-
-const TInt KVariantIndex(2); //a LAF variant value required for pop up window
-const TInt KRequiredLinesPlus(2); //minimum lines needed for aknbiditextutils API array set up
-const TInt KActualLine(0); //minimum lines needed for aknbiditextutils API array set up
-const TInt KDummyLineForcedByAPI(1); //minimum lines needed for aknbiditextutils API array set up
-} // namespace
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CESMRConfirmationQuery::CESMRConfirmationQuery
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CESMRConfirmationQuery::CESMRConfirmationQuery(
- TESMRConfirmationQueryType aType) :
- iType(aType)
- {
- FUNC_LOG;
- //do nothing
- }
-
-// -----------------------------------------------------------------------------
-// CESMRConfirmationQuery::~CESMRConfirmationQuery
-// -----------------------------------------------------------------------------
-//
-CESMRConfirmationQuery::~CESMRConfirmationQuery()
- {
- FUNC_LOG;
- iEnv->DeleteResourceFile(iResourceOffset);
- }
-
-// -----------------------------------------------------------------------------
-// CESMRConfirmationQuery::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CESMRConfirmationQuery::ConstructL()
- {
- FUNC_LOG;
- TFileName filename;
-
- //cache the Eikon pointer, as Static() is slow
- iEnv = CEikonEnv::Static(); // codescanner::eikonenvstatic
-
- ESMRHelper::LocateResourceFile(
- KResourceFileName,
- KDC_RESOURCE_FILES_DIR,
- filename,
- &iEnv->FsSession() );
-
- //for localization
- BaflUtils::NearestLanguageFile(iEnv->FsSession(),filename);
- iResourceOffset = iEnv->AddResourceFileL(filename);
- }
-
-// -----------------------------------------------------------------------------
-// CESMRConfirmationQuery::ExecuteLD
-// -----------------------------------------------------------------------------
-//
-TBool CESMRConfirmationQuery::ExecuteLD()
- {
- FUNC_LOG;
- HBufC* noteText = NULL;
- switch ( iType )
- {
- case EESMRDeleteMR:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_DELETE_QUERY);
- break;
- }
- case EESMRSendCancellationInfoToParticipants:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_SEND_CANCELLATION_QUERY);
- break;
- }
- case EESMRRemoveAppointment:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_REMOVE_APPOINTMENT_QUERY);
- break;
- }
- case EESMRSaveChanges:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_FORM_QUEST_SAVE_CHANGES);
- break;
- }
- case EESMRDeleteEntry:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_DELETE_QUERY);
- break;
- }
- case EESMRSendDecline:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_DECLINE_QUERY );
- }
- break;
- case EESMRSaveAnnivChangedStartDay:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_QUEST_CHANGE_START_DAY );
- }
- break;
- case EESMRAttachments:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_NOTE_ATTACHMENTS );
- }
- break;
- case EESMRCancelDownloadingAttachment:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_VIEWER_CANCEL_DOWNLOAD_QUERY );
- }
- break;
- case EESMRCancelDownloadingAllAttachments:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_VIEWER_CANCEL_DOWNLOADS_QUERY );
- }
- break;
- case EESMRSaveMeetingChangedStartDay:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_QUEST_CHANGE_START_DAY );
- }
- break;
- case EESMRAssignUpdatedLocation:
- {
- noteText =
- iEnv->AllocReadResourceAsDes16LC(
- R_QTN_MEET_REQ_ASSIGN_UPDATED_LOCATION );
- }
- break;
- default:
- {
- #ifdef _DEBUG
- // Invalid identifier --> panic
- Panic( EESMRInvalidIdentifier );
- #endif
- }
- break;
- }
-
- TBool response(EFalse);
- if ( noteText )
- {
- CAknQueryDialog* dlg = CAknQueryDialog::NewL();
- if( dlg->ExecuteLD(R_MR_CONFIRMATION_QUERY, *noteText) )
- {
- response = ETrue;
- }
- CleanupStack::PopAndDestroy(noteText);
- }
-
- delete this;
- return response;
- }
-
-// -----------------------------------------------------------------------------
-// CESMRConfirmationQuery::ExecuteL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool CESMRConfirmationQuery::ExecuteL( TESMRConfirmationQueryType aType)
- {
- FUNC_LOG;
- CESMRConfirmationQuery* query = new (ELeave) CESMRConfirmationQuery(aType);
- CleanupStack::PushL( query );
- query->ConstructL( );
- TBool ret = query->ExecuteLD();
- CleanupStack::Pop( query );
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CESMRConfirmationQuery::ExecuteL
-// -----------------------------------------------------------------------------
-//
-TBool CESMRConfirmationQuery::ExecuteL( const TDesC& aLocation )
- {
- FUNC_LOG;
- CESMRConfirmationQuery* query = new (ELeave) CESMRConfirmationQuery(EESMRDeleteMR);
- CleanupStack::PushL( query );
- query->ConstructL( );
-
- HBufC* location = NULL;
-
- if ( aLocation.Length() > 0 )
- {
- location = query->TruncateTextToLAFNoteL( aLocation );
- CleanupDeletePushL( location );
- }
- else
- {
- // Allocate dummy buffer for query.
- location = aLocation.AllocLC();
- }
-
- HBufC* noteText = StringLoader::LoadLC( R_MEET_REQ_REPLACE_PREVIOUS_LOCATION, *location );
-
- TBool response = EFalse;
-
- CAknQueryDialog* dlg = CAknQueryDialog::NewL();
- if( dlg->ExecuteLD( R_MR_CONFIRMATION_QUERY, *noteText) )
- {
- response = ETrue;
- }
-
- CleanupStack::PopAndDestroy( noteText );
- CleanupStack::PopAndDestroy( location );
- CleanupStack::Pop( query );
- return response;
- }
-
-// -----------------------------------------------------------------------------
-// CESMRConfirmationQuery::TruncateTextToLAFNoteL
-// -----------------------------------------------------------------------------
-//
-HBufC* CESMRConfirmationQuery::TruncateTextToLAFNoteL( const TDesC& aLocation )
- {
- FUNC_LOG;
- //wrap long string into array of individual lines
- CArrayFixFlat<TPtrC>* textLines = new(ELeave)CArrayFixFlat<TPtrC>( KRequiredLinesPlus );
- CleanupStack::PushL( textLines );
-
- //layout stuff to fetch list font and list line width
- TAknLayoutText fontType;
-
- TSize main_pane_Size;
- AknLayoutUtils::LayoutMetricsSize( AknLayoutUtils::EMainPane, main_pane_Size );
- TRect main_pane( main_pane_Size );
-
- fontType.LayoutText( main_pane, AknLayoutScalable_Avkon::popup_note_window_t4( KVariantIndex ).LayoutLine() );
-
- TInt lineWidth = fontType.TextRect().Width();
-
- //extra bidi space for the two lines. second line is not actually used in the query but is required by the API
- HBufC* locationText = HBufC::NewLC( aLocation.Length() + KAknBidiExtraSpacePerLine + KAknBidiExtraSpacePerLine);
- TPtr locationTextPtr = locationText->Des();
- locationTextPtr.Append(aLocation);
-
- // First wrap, then do formatting.
- CArrayFixFlat<TInt>* lineWidths = new( ELeave )CArrayFixFlat<TInt>( KRequiredLinesPlus );
- CleanupStack::PushL( lineWidths );
- lineWidths->InsertL( KActualLine, lineWidth );
- lineWidths->InsertL( KDummyLineForcedByAPI, lineWidth );
-
- TBool useEllipsis(ETrue);
-
- // measure, wrap and truncate location item.
- AknBidiTextUtils::ConvertToVisualAndWrapToArrayL(
- locationTextPtr,
- *lineWidths,
- *fontType.Font(),
- *textLines,
- useEllipsis );
-
- //place result to new created target buffer
- HBufC* target = HBufC::NewL( textLines->At(KActualLine).Length() );
- target->Des().Append(textLines->At( KActualLine ));
-
- CleanupStack::PopAndDestroy( lineWidths );
- CleanupStack::PopAndDestroy( locationText );
- CleanupStack::PopAndDestroy( textLines );
- delete this;
- return target;
- }
-
-// End of File
-