src/profilesmodel_p_symbian.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 04 Oct 2010 00:17:19 +0300
changeset 1 67589f86e56b
parent 0 dc71378f4890
permissions -rw-r--r--
Revision: 201036 Kit: 201039

/*
* Copyright (c) 2010 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: Profiles widget plugin.
*
*/

// System includes
#include <e32base.h>
#include <MProfileEngineExtended.h>
#include <xqconversions.h>
#include <mprofilename.h>
#include <mprofile.h>

// User includes
#include "profilesmodel_p.h"
#include "profileswidgetconsts.h"

/*!
    \class ProfilesModelPrivate
    \profiles widget model class

    This class is used to create profiles widget model
*/

// ======== MEMBER FUNCTIONS ========

/*!
   NewL
*/
ProfilesModelPrivate* ProfilesModelPrivate::NewL()
{
	ProfilesModelPrivate *self = new (ELeave)ProfilesModelPrivate();
    CleanupStack::PushL(self);
    self->ConstructL();
    CleanupStack::Pop(); //self
    return self;
}

/*!
   Constructor
*/
ProfilesModelPrivate::ProfilesModelPrivate()
{
    mEngine = NULL;
}

/*!
   ConstructL
*/
void ProfilesModelPrivate::ConstructL()
{
    mEngine = CreateProfileEngineExtendedL();
}

/*!
   Destroyer
*/
ProfilesModelPrivate::~ProfilesModelPrivate()
{
    mEngine->Release();
}

/*!
   Get the actived profile ID
*/
int ProfilesModelPrivate::activeProfileId()
{
    return mEngine->ActiveProfileId();
}

/*!
   Set active profile to specified ID
*/
int ProfilesModelPrivate::activateProfile(int profileId)
{
    TRAPD(err, mEngine->SetActiveProfileL(profileId));
    return err;
}

/*!
   Get actived profile name
*/
QString ProfilesModelPrivate::activeProfileName()
{
    MProfile *lProfile = mEngine->ActiveProfileL();
    CleanupReleasePushL(*lProfile);
     
    const MProfileName &lMProfileName = lProfile->ProfileName();
    TBuf<10> lProfileName = lMProfileName.Name();
    CleanupStack::PopAndDestroy();
    QString profileName = XQConversions::s60DescToQString(lProfileName);
    return profileName;
}