photosgallery/imgvwr/src/glxivwrdocument.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 00:10:37 +0200
changeset 4 57d388cc48c1
parent 1 9ba538e329bd
child 9 6b87b143d312
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
 * 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:    Document class 
 *
 */

#include <mpxviewutility.h>

#include "glxivwrappui.h"
#include "glxivwrdocument.h"
#include <glximageviewermanager.h>
#include <glxtracer.h>

// -----------------------------------------------------------------------------
// NewL
// -----------------------------------------------------------------------------
//
CGlxIVwrDocument* CGlxIVwrDocument::NewL(CEikApplication& aApp)
    {
    TRACER("CGlxIVwrDocument::NewL");
    CGlxIVwrDocument* self = NewLC(aApp);
    CleanupStack::Pop(self);
    return self;
    }

// -----------------------------------------------------------------------------
// NewLC
// -----------------------------------------------------------------------------
//
CGlxIVwrDocument* CGlxIVwrDocument::NewLC(CEikApplication& aApp)
    {
    TRACER("CGlxIVwrDocument::NewLC");
    CGlxIVwrDocument* self = new (ELeave) CGlxIVwrDocument(aApp);
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
    }

// -----------------------------------------------------------------------------
// ConstructL
// -----------------------------------------------------------------------------
//
void CGlxIVwrDocument::ConstructL()
    {
    TRACER("CGlxIVwrDocument::ConstructL");
    iViewUtility = MMPXViewUtility::UtilityL();
    iImageViewerInstance = CGlxImageViewerManager::InstanceL();
    }    

// -----------------------------------------------------------------------------
// Constructor
// -----------------------------------------------------------------------------
//
CGlxIVwrDocument::CGlxIVwrDocument(CEikApplication& aApp) : CAknDocument(aApp) 
            {
            }

// -----------------------------------------------------------------------------
// Destructor
// -----------------------------------------------------------------------------
//
CGlxIVwrDocument::~CGlxIVwrDocument()
    {
    TRACER("CGlxIVwrDocument::~CGlxDocument()");
    if (iViewUtility != NULL)
        {
        iViewUtility->Close();
        }
    if ( NULL != iImageViewerInstance)
        {
        iImageViewerInstance->DeleteInstance();
        }
    }

// -----------------------------------------------------------------------------
// OpenFileL()
// Open document.
// -----------------------------------------------------------------------------
CFileStore* CGlxIVwrDocument::OpenFileL( TBool /*aDoOpen*/,
        const TDesC& aFilename, RFs& /*aFs*/ )
    {
    TRACER("CFileStore* CGlxIVwrDocument::OpenFileL");
    // Reset old data
    ResetDocument();
    
    iImageViewerInstance->SetImageUriL(aFilename);
    
    // Open the viewer
    static_cast<CGlxIVwrAppUi*>(iAppUi)->HandleOpenFileL();
    
    return NULL;
    }

// -----------------------------------------------------------------------------
// CGlxDocument::OpenFileL()
// Open document.
// -----------------------------------------------------------------------------
void CGlxIVwrDocument::OpenFileL( CFileStore*& /*aFileStore*/, RFile& aFile )
    {	
    TRACER("CGlxIVwrDocument::OpenFileL()");
    // Reset old data
    ResetDocument();    
    
    // Make sure that aFile is closed in leave situation
    CleanupClosePushL( aFile );
    iImageViewerInstance->SetImageFileHandleL(aFile);	
    CleanupStack::PopAndDestroy(); // Close aFile
    
    // Open the viewer
    static_cast<CGlxIVwrAppUi*>(iAppUi)->HandleOpenFileL();
    }

// ----------------------------------------------------------------------------
// CGlxDocument::ResetDocument
// Reset the document
// ----------------------------------------------------------------------------
//
void CGlxIVwrDocument::ResetDocument()
    {	
    TRACER("CGlxIVwrDocument::ResetDocument()");
    // Set document to NULL
    iImageViewerInstance->Reset();    
    }

// -----------------------------------------------------------------------------
// CreateAppUiL
// -----------------------------------------------------------------------------
//
CEikAppUi* CGlxIVwrDocument::CreateAppUiL()
    {
    TRACER("CGlxIVwrDocument::CreateAppUiL()");
    // Create the application user interface, and return a pointer to it,
    // the framework takes ownership of this object
    CEikAppUi* appUi = new (ELeave) CGlxIVwrAppUi();
    return appUi;
    }