qtinternetradio/ui/src/irsymbianapplication.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:25:23 +0300
changeset 2 2e1adbfc62af
parent 0 09774dfdd46b
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
* Copyright (c) 2006-2007 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:  ?Description
*
*/

#include <coemain.h>
#include <apgwgnam.h>

#include "irsymbianapplication.h"
#include "irsymbiandocument.h"

IRSymbianApplication * IRSymbianApplication::appInstance = NULL;

CApaApplication *newS60Application()
{
    return IRSymbianApplication::getInstance();
}

IRSymbianApplication * IRSymbianApplication::getInstance()
{
    if (NULL == appInstance)
    {
        appInstance = new IRSymbianApplication;
    }
    
    return appInstance;
}

bool IRSymbianApplication::getInstanceFlag() const
{
    return iSecondInstance;
}

IRSymbianApplication::IRSymbianApplication() : iSecondInstance(false)
{
    
}

CApaDocument * IRSymbianApplication::CreateDocumentL()
{
    return IRSymbianDocument::getInstance();
}

void IRSymbianApplication::PreDocConstructL()
{
    RWsSession& ws = iCoeEnv->WsSession();
    const TInt myWgId = iCoeEnv->RootWin().Identifier();
    TInt wgId = 0;
    TUid uid(AppDllUid());
    iSecondInstance = false;
    
    // Look for another instance of this app
    while (wgId >= 0)
    {
        if (wgId && wgId != myWgId)
        {
            iSecondInstance = true;
        }
        CApaWindowGroupName::FindByAppUid(uid, ws, wgId);
    }
    
    if (!iSecondInstance)
    {
        CAknApplication::PreDocConstructL(); 
    }
}