--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cmmanager/cmapplsettingsui/src/cmradiodialog.cpp Mon May 03 12:53:07 2010 +0300
@@ -0,0 +1,276 @@
+/*
+* 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:
+* Dialog implementation for the CM Manager Application Settings UI.
+*
+*/
+
+// System includes
+
+#include <HbDialog>
+#include <HbLabel>
+#include <HbRadioButtonList>
+#include <HbAction>
+#include <HbDocumentLoader>
+
+// User includes
+
+#include "cmradiodialog.h"
+
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cmradiodialogTraces.h"
+#endif
+
+
+/*!
+ \class CmRadioDialog
+ \brief Radio dutton dialog class for Application Settings UI.
+*/
+
+// External function prototypes
+
+// Local constants
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+/*!
+ Constructor.
+
+ @param parent Parent object.
+*/
+CmRadioDialog::CmRadioDialog(QObject *parent) :
+ QObject(parent),
+ mType(CmRadioDialogTypeDestination),
+ mLoader(),
+ mListItems(),
+ mDialog(),
+ mHeading(0),
+ mList(0),
+ mOkAction(0)
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_CMRADIODIALOG_ENTRY);
+
+ mLoader = QSharedPointer<HbDocumentLoader>(new HbDocumentLoader());
+ loadDocml();
+
+ OstTraceFunctionExit0(CMRADIODIALOG_CMRADIODIALOG_EXIT);
+}
+
+/*!
+ Destructor.
+*/
+CmRadioDialog::~CmRadioDialog()
+{
+ OstTraceFunctionEntry0(DUP1_CMRADIODIALOG_CMRADIODIALOG_ENTRY);
+ OstTraceFunctionExit0(DUP1_CMRADIODIALOG_CMRADIODIALOG_EXIT);
+}
+
+/*!
+ Heading setter.
+
+ @param type Dialog type.
+*/
+void CmRadioDialog::setType(CmRadioDialogType type)
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_SETTYPE_ENTRY);
+
+ mType = type;
+
+ OstTraceFunctionExit0(CMRADIODIALOG_SETTYPE_EXIT);
+}
+
+/*!
+ Options setter.
+
+ @param options Dialog options.
+ */
+void CmRadioDialog::setOptions(const QSet<CmRadioDialogOpt> &options)
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_SETOPTIONS_ENTRY);
+
+ mOptions = options;
+
+ OstTraceFunctionExit0(CMRADIODIALOG_SETOPTIONS_EXIT);
+}
+
+/*!
+ Radio button list items setter.
+
+ @param list List of radio button item strings.
+*/
+void CmRadioDialog::setItems(const QStringList &list)
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_SETITEMS_ENTRY);
+
+ // Store the new items
+ mListItems = list;
+
+ // Append "Dedicated access point"
+ if (mOptions.contains(CmRadioDialogOptDedicatedAP)) {
+ mListItems.append(hbTrId("txt_occ_list_dedicated_access_point"));
+ }
+
+ // Set the items to the radio list
+ mList->setItems(mListItems);
+
+ OstTraceFunctionExit0(CMRADIODIALOG_SETITEMS_EXIT);
+}
+
+/*!
+ Setter for current selection.
+
+ @param index Radio list item current selection setter. Indexing from zero.
+*/
+void CmRadioDialog::setSelected(int index)
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_SETSELECTED_ENTRY);
+
+ OstTrace1(
+ TRACE_NORMAL,
+ CMRADIODIALOG_SETSELECTED,
+ "CmRadioDialog::setSelected;index=%d",
+ index);
+
+ // The index must be valid
+ Q_ASSERT(index < mList->items().count());
+
+ // Set the current selection
+ mList->setSelected(index);
+
+ OstTraceFunctionExit0(CMRADIODIALOG_SETSELECTED_EXIT);
+}
+
+/*!
+ Getter for current selection.
+
+ @return Current selection index. Indexing from zero.
+*/
+int CmRadioDialog::selected() const
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_SELECTED_ENTRY);
+
+ int selection = mList->selected();
+
+ OstTrace1(
+ TRACE_NORMAL,
+ CMRADIODIALOG_SELECTED,
+ "CmRadioDialog::selected;index=%d",
+ index);
+
+ OstTraceFunctionExit0(CMRADIODIALOG_SELECTED_EXIT);
+ return selection;
+}
+
+/*!
+ Run the dialog asynchronously. When the dialog has finished, the signal
+ finished(bool) is sent.
+*/
+void CmRadioDialog::open()
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_EXEC_ENTRY);
+
+ setHeading();
+ mDialog->open(this, SLOT(dialogClosed(HbAction*)));
+
+ OstTraceFunctionExit0(CMRADIODIALOG_EXEC_EXIT);
+}
+
+/*!
+ Dialog result handling slot.
+
+ @param action Selected action.
+ */
+void CmRadioDialog::dialogClosed(HbAction *action)
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_DIALOGCLOSED_ENTRY);
+
+ // Extract the selection status
+ bool success;
+ if (action == mOkAction) {
+ success = true;
+ } else {
+ success = false;
+ }
+ emit finished(success);
+
+ OstTraceExt1(
+ TRACE_NORMAL,
+ CMRADIODIALOG_EXEC_RESULT,
+ "CmRadioDialog::exec;success=%hhu",
+ success);
+
+ OstTraceFunctionExit0(CMRADIODIALOG_DIALOGCLOSED_EXIT);
+}
+
+/*!
+ Dialog heading setter.
+ */
+void CmRadioDialog::setHeading()
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_SETHEADING_ENTRY);
+
+ QString heading;
+
+ // Select correct header based on dialog type
+ switch (mType) {
+ case CmRadioDialogTypeDestination:
+ heading = hbTrId("txt_occ_title_network_connection");
+ break;
+
+ case CmRadioDialogTypeAccessPoint:
+ heading = hbTrId("txt_occ_title_access_point");
+ break;
+
+#ifndef QT_NO_DEBUG
+ default:
+ // Unsupported dialog type detected
+ Q_ASSERT(0);
+ break;
+#endif
+ }
+
+ mHeading->setPlainText(heading);
+
+ OstTraceFunctionExit0(CMRADIODIALOG_SETHEADING_EXIT);
+}
+
+/*!
+ Docml loading for the dialog.
+*/
+void CmRadioDialog::loadDocml()
+{
+ OstTraceFunctionEntry0(CMRADIODIALOG_LOADDOCML_ENTRY);
+ bool ok = false;
+
+ // Load the common section
+ mLoader->load(":/docml/cmradiodialog.docml", &ok);
+ Q_ASSERT(ok);
+
+ mDialog = QSharedPointer<HbDialog>(qobject_cast<HbDialog *>(mLoader->findWidget("dialog")));
+ Q_ASSERT(mDialog);
+
+ mHeading = qobject_cast<HbLabel *>(mLoader->findWidget("heading"));
+ Q_ASSERT(mHeading);
+
+ mList = qobject_cast<HbRadioButtonList *>(mLoader->findWidget("radioButtonList"));
+ Q_ASSERT(mList);
+
+ mOkAction = qobject_cast<HbAction *>(mLoader->findObject("okAction"));
+ Q_ASSERT(mOkAction);
+
+ OstTraceFunctionExit0(CMRADIODIALOG_LOADDOCML_EXIT);
+}