photosgallery/viewframework/views/metadatadialog/src/glxresourceutilities.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:37:53 +0300
branchRCL_3
changeset 25 191387a8b767
parent 0 4e91876724a2
permissions -rw-r--r--
Revision: 201015 Kit: 201017

/*
* Copyright (c) 2008-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:    Implementation of Metadata dialog
*
*/




//  CLASS HEADER
#include "glxresourceutilities.h"
    
//  EXTERNAL INCLUDES
#include <bautils.h>
#include <AknUtils.h>
#include <f32file.h>
#include <glxuistd.h>
#include <data_caging_path_literals.hrh>
//  INTERNAL INCLUDES
#include	<glxtracer.h>

// ---------------------------------------------------------------------------
// GetResourceFilenameL
// ---------------------------------------------------------------------------
//
EXPORT_C void CGlxResourceUtilities::GetResourceFilenameL( TFileName& aResFile )
    {
	TRACER("CGlxResourceUtilities::GetResourceFilenameL( TFileName& aResFile)");
    
	RFs fs;
    User::LeaveIfError( fs.Connect() );
    CleanupClosePushL( fs );
    CGlxResourceUtilities::GetResourceFilenameL( aResFile, fs );
    CleanupStack::PopAndDestroy( &fs );
    }

// ---------------------------------------------------------------------------
// GetResourceFilenameL
// ---------------------------------------------------------------------------
//
EXPORT_C void CGlxResourceUtilities::GetResourceFilenameL( TFileName& aResFile, RFs& aFs )
    {
	TRACER("CGlxResourceUtilities::GetResourceFilenameL( TFileName& aResFile, RFs& aFs )");
    
    // don't use AknUtils CompleteWithAppPath  
    aResFile.Insert( 0, TDriveUnit( EDriveC).Name() );
	// try to locate the localised resource
    BaflUtils::NearestLanguageFile( aFs, aResFile );
    // if the localised resource is found, the file name is changed to 
    // the localised name (z:\apps\resources\xxx.r001)
    if( !BaflUtils::FileExists( aFs, aResFile ) )
        {
        // not found on c drive, try z
        aResFile.Replace( 0, KMaxDriveName, TDriveUnit( EDriveZ ).Name() );
    	// try to locate the localised resource again
        BaflUtils::NearestLanguageFile( aFs, aResFile );
        // if file was not found this time, there is no localised 
        // resource with the name
        if (!BaflUtils::FileExists( aFs, aResFile ) )
            {
            User::Leave( KErrNotFound );
            }
        }
    }

// ---------------------------------------------------------------------------
// GetUiUtilitiesResourceFilenameL
// ---------------------------------------------------------------------------
//
EXPORT_C TFileName CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL()

    {
    TParse parse;
    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
    TFileName resourceFile(parse.FullName());
    GetResourceFilenameL(resourceFile);
    return resourceFile;
    }