appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogselectlanguage.cpp
branchRCL_3
changeset 25 7333d7932ef7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogselectlanguage.cpp	Tue Aug 31 15:21:33 2010 +0300
@@ -0,0 +1,96 @@
+/*
+* 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();
+}
+