meetingrequest/mrgui/src/cesmrconfirmationquery.cpp
branchRCL_3
changeset 12 4ce476e64c59
parent 11 0396474f30f5
child 13 8592a65ad3fb
--- 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
-