appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogselectlanguage.cpp
author hgs
Fri, 20 Aug 2010 11:39:56 +0300
changeset 64 48c14c385b0e
permissions -rw-r--r--
201033_01

/*
* 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: Language selection dialog in SifUi
*
*/

#include "sifuidialogselectlanguage.h"  // SifUiDialogSelectLanguage
#include <HbLabel>
#include <HbRadioButtonList>
#include <HbAction>


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

// ----------------------------------------------------------------------------
// SifUiDialogSelectLanguage::SifUiDialogSelectLanguage()
// ----------------------------------------------------------------------------
//
SifUiDialogSelectLanguage::SifUiDialogSelectLanguage(const QVariant &languages,
        QGraphicsItem *parent) : HbDialog(parent), mRadioButtonList(0), mOkAction(0)
{
    setTimeout(HbPopup::NoTimeout);
    setDismissPolicy(HbPopup::NoDismiss);
    setModal(true);

    HbLabel *title = new HbLabel(hbTrId("txt_installer_title_select_language"));
    setHeadingWidget(title);

    Q_ASSERT( mRadioButtonList == 0 );
    mRadioButtonList = new HbRadioButtonList(this);
    mRadioButtonList->setItems(languageNames(languages));
    setContentWidget(mRadioButtonList);

    HbAction *okAction = new HbAction(QString(hbTrId("txt_common_button_ok")), this);
    disconnect(okAction, SIGNAL(triggered()), this, SLOT(close()));
    connect(okAction, SIGNAL(triggered()), this, SLOT(handleAccepted()));
    addAction(okAction);

    HbAction *cancelAction = new HbAction(QString(hbTrId("txt_common_button_cancel")), this);
    disconnect(cancelAction, SIGNAL(triggered()), this, SLOT(close()));
    connect(cancelAction, SIGNAL(triggered()), this, SLOT(handleRejected()));
    addAction(cancelAction);
}

// ----------------------------------------------------------------------------
// SifUiDialogSelectLanguage::~SifUiDialogSelectLanguage()
// ----------------------------------------------------------------------------
//
SifUiDialogSelectLanguage::~SifUiDialogSelectLanguage()
{
}

// ----------------------------------------------------------------------------
// SifUiDialogSelectLanguage::selectedLanguageIndex()
// ----------------------------------------------------------------------------
//
int SifUiDialogSelectLanguage::selectedLanguageIndex() const
{
    if (mRadioButtonList) {
        return mRadioButtonList->selected();
    }
    return -1;
}

// ----------------------------------------------------------------------------
// SifUiDialogSelectLanguage::handleAccepted()
// ----------------------------------------------------------------------------
//
void SifUiDialogSelectLanguage::handleAccepted()
{
    int index = selectedLanguageIndex();
    emit languageSelected(index);
    close();
}

// ----------------------------------------------------------------------------
// SifUiDialogSelectLanguage::handleRejected()
// ----------------------------------------------------------------------------
//
void SifUiDialogSelectLanguage::handleRejected()
{
    emit languageSelectionCancelled();
    close();
}