photosgallery/viewframework/views/metadatadialog/src/glxresourceutilities.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:45:44 +0200
changeset 0 4e91876724a2
child 25 191387a8b767
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* 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>

//  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 );
            }
        }
    }