cmmanager/cmapplsettingsui/src/cmapplsettingsui_p.cpp
branchRCL_3
changeset 58 83ca720e2b9a
parent 57 05bc53fe583b
child 62 bb1f80fb7db2
--- a/cmmanager/cmapplsettingsui/src/cmapplsettingsui_p.cpp	Tue Aug 31 15:35:44 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,407 +0,0 @@
-/*
-* 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:
-* CM Manager Application Settings UI private implementation.  
-*/
-
-// System includes
-
-#include <HbTranslator>
-#include <HbApplication>
-#include <HbLabel>
-#include <cmmanager_shim.h>
-
-// User includes
-
-#include "cmradiodialog.h"
-#include "cmapplsettingsui_p.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "cmapplsettingsui_pTraces.h"
-#endif
-
-
-/*!
-    \class CmApplSettingsUiPrivate
-    \brief Private implementation class for Application Settings UI.
-
-    Displays a radio button list dialog for an application that can be used
-    to select a destination or connection method.
-*/
-
-// External function prototypes
-
-// Local constants
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
-    Constructor.
-    
-    @param q_pointer Parent object.
- */
-CmApplSettingsUiPrivate::CmApplSettingsUiPrivate(CmApplSettingsUi *q_pointer) :
-    QObject(q_pointer),
-    q_ptr(q_pointer),
-    mTranslator(new HbTranslator("cmapplsettingsui")),
-    mListItems(
-        CmApplSettingsUi::ShowDestinations |
-        CmApplSettingsUi::ShowConnectionMethods),
-    mSettingData(),
-    mDestinationDialog(0),
-    mConnMethodDialog(0),
-    mSelection(),
-    mDestinations(),
-    mConnMethods()
-{   
-    OstTraceFunctionEntry0(CMAPPLSETTINGSUIPRIVATE_CMAPPLSETTINGSUIPRIVATE_ENTRY);
-    
-    // Initialize to default selection
-    mSelection.result = CmApplSettingsUi::SelectionTypeDestination;
-    mSelection.id = 0;
-        
-    // Install also common localization
-    mTranslator->loadCommon();
-
-    OstTraceFunctionExit0(CMAPPLSETTINGSUIPRIVATE_CMAPPLSETTINGSUIPRIVATE_EXIT);
-}
-
-/*!
-    Destructor.
- */
-CmApplSettingsUiPrivate::~CmApplSettingsUiPrivate()
-{
-    OstTraceFunctionEntry0(DUP1_CMAPPLSETTINGSUIPRIVATE_CMAPPLSETTINGSUIPRIVATE_ENTRY);
-    OstTraceFunctionExit0(DUP1_CMAPPLSETTINGSUIPRIVATE_CMAPPLSETTINGSUIPRIVATE_EXIT);
-}
-
-/*!
-    Options setter. 
-     
-    @param[in] listItems Dialog list items configuration.
-    @param[in] bearerFilter Dialog Connection Method bearer filter.
- */
-void CmApplSettingsUiPrivate::setOptions(
-    const QFlags<CmApplSettingsUi::SelectionDialogItems> &listItems,
-    const QSet<CmApplSettingsUi::BearerTypeFilter> &bearerFilter)
-{
-    // Store the options
-    mListItems = listItems;
-    mSettingData.setBearerFilter(bearerFilter);
-}
-
-/*!
-    Dialog selection setter.
-    
-    @param[in] selection Dialog selection to set.
- */
-void CmApplSettingsUiPrivate::setSelection(
-    const CmApplSettingsUi::SettingSelection &selection)
-{
-    // Set the selection.
-    // If the selection is invalid, it is ignored later on,
-    // and default is used instead.
-    mSelection = selection;
-}
-
-/*!
-    Dialog selection getter. Returns the current selection.
-    
-    @return Current dialog selection.
- */
-CmApplSettingsUi::SettingSelection CmApplSettingsUiPrivate::selection() const
-{
-    return mSelection;
-}
-
-/*!
-    This function runs the dialog asynchronously. Use the setters to
-    configure the dialog before running. After the dialog has been closed
-    (accepted or cancelled), the signal finished() is emitted.
- */
-void CmApplSettingsUiPrivate::open()
-{
-    OstTraceFunctionEntry0(CMAPPLSETTINGSUIPRIVATE_OPEN_ENTRY);
-
-    // Fetch filtered Destinations and Connection Methods
-    bool settingsRead = true;
-    if (mListItems.testFlag(CmApplSettingsUi::ShowDestinations)) {
-        settingsRead = mSettingData.fetchDestinations(mDestinations);
-    }
-    if (mListItems.testFlag(CmApplSettingsUi::ShowConnectionMethods)) {
-        settingsRead &= mSettingData.fetchConnMethods(mConnMethods);
-    }
-
-    if (!settingsRead) {
-        // Settings reading failed
-        emitFinished(CmApplSettingsUi::ApplSettingsErrorSettingsRead);
-    } else if (mListItems.testFlag(CmApplSettingsUi::ShowDestinations)) {
-        // Start with destination view
-        runDestinationDialog();
-    } else if (mListItems.testFlag(CmApplSettingsUi::ShowConnectionMethods)) {
-        // Start directly with connection method view
-        runConnectionMethodDialog();
-    } else {
-        // Nothing to show, so finish
-        emitFinished(CmApplSettingsUi::ApplSettingsErrorNoContent);
-    }
-    
-    OstTraceFunctionExit0(CMAPPLSETTINGSUIPRIVATE_OPEN_EXIT);
-}
-
-/*!
-    Destination selection dialog execution.
- */
-void CmApplSettingsUiPrivate::runDestinationDialog()
-{
-    OstTraceFunctionEntry0(CMAPPLSETTINGSUIPRIVATE_RUNDESTINATIONDIALOG_ENTRY);
-
-    // Check that there is some content to show:
-    // -At least one Destination
-    // -Or at least one Connection Method under "Dedicated access point"
-    if (mDestinations.isEmpty()
-        && (!mListItems.testFlag(CmApplSettingsUi::ShowConnectionMethods)
-            || mConnMethods.isEmpty())) {
-        // Nothing to show, so finish
-        emitFinished(CmApplSettingsUi::ApplSettingsErrorNoContent);
-        OstTraceFunctionExit0(CMAPPLSETTINGSUIPRIVATE_RUNDESTINATIONDIALOG_EXIT);
-        return;
-    }
-
-    // Create a new Destination dialog
-    delete mDestinationDialog;
-    mDestinationDialog = new CmRadioDialog(this);
-    mDestinationDialog->setType(CmRadioDialogTypeDestination);
-    
-    // Add Dedicated access point option if requested & supported
-    if (mListItems.testFlag(CmApplSettingsUi::ShowConnectionMethods)
-        && !mConnMethods.isEmpty()) {
-        QSet<CmRadioDialogOpt> options;
-        options.insert(CmRadioDialogOptDedicatedAP);
-        mDestinationDialog->setOptions(options);
-    }
-    
-    // Add destinations to the dialog
-    QStringList destinations;
-    for (int i = 0; i < mDestinations.count(); i++) {
-        destinations << mDestinations[i]->name;
-    }
-    mDestinationDialog->setItems(destinations);
-    
-    // Set selection
-    int index = 0;          // Default index is the first
-    if (mListItems.testFlag(CmApplSettingsUi::ShowConnectionMethods)
-        && mSelection.result == CmApplSettingsUi::SelectionTypeConnectionMethod
-        && !mConnMethods.isEmpty()) {
-        // Dedicated access point
-        index = destinations.count();
-    } else {
-        int destinationIndex = findDestination(mSelection.id);
-        if (destinationIndex != ItemNotFound) {
-            index = destinationIndex;
-        }
-    }
-    mDestinationDialog->setSelected(index);
-    
-    // Execute the dialog
-    bool connected = connect(
-        mDestinationDialog,
-        SIGNAL(finished(bool)),
-        this,
-        SLOT(destinationDialogResult(bool)));
-    Q_ASSERT(connected);
-    mDestinationDialog->open();
-    
-    OstTraceFunctionExit0(DUP1_CMAPPLSETTINGSUIPRIVATE_RUNDESTINATIONDIALOG_EXIT);
-}
-
-/*!
-    Connection method selection dialog execution.
- */
-void CmApplSettingsUiPrivate::runConnectionMethodDialog()
-{
-    OstTraceFunctionEntry0(CMAPPLSETTINGSUIPRIVATE_RUNCONNECTIONMETHODDIALOG_ENTRY);
-    
-    // Check that there is at least one Connection Method to show
-    if (mConnMethods.count() == 0) {
-        // Nothing to show, so finish
-        emitFinished(CmApplSettingsUi::ApplSettingsErrorNoContent);
-        OstTraceFunctionExit0(CMAPPLSETTINGSUIPRIVATE_RUNCONNECTIONMETHODDIALOG_EXIT);
-        return;
-    }
-
-    // Create a dialog & configure it
-    delete mConnMethodDialog;
-    mConnMethodDialog = new CmRadioDialog(this);
-    mConnMethodDialog->setType(CmRadioDialogTypeAccessPoint);
-
-    // Add connection methods to the dialog
-    QStringList connectionMethods;
-    for (int i = 0; i < mConnMethods.count(); i++) {
-        connectionMethods << mConnMethods[i]->name;
-    }
-    mConnMethodDialog->setItems(connectionMethods);
-
-    // Set selection
-    int index = findConnectionMethod(mSelection.id);
-    if (index == ItemNotFound) {
-        // Connection Method not found
-        index = 0;
-    }
-    mConnMethodDialog->setSelected(index);
-    
-    // Execute the dialog
-    bool connected = connect(
-        mConnMethodDialog,
-        SIGNAL(finished(bool)),
-        this,
-        SLOT(connMethodDialogResult(bool)));
-    Q_ASSERT(connected);
-    mConnMethodDialog->open();
-
-    OstTraceFunctionExit0(DUP1_CMAPPLSETTINGSUIPRIVATE_RUNCONNECTIONMETHODDIALOG_EXIT);
-}
-
-/*!
-    Destination search function.
-    
-    @param destinationId Destination ID.
-    
-    @return Returns index if found, and ItemNotFound if not. 
- */
-int CmApplSettingsUiPrivate::findDestination(uint destinationId) const
-{
-    OstTraceFunctionEntry0(CMAPPLSETTINGSUIPRIVATE_FINDDESTINATION_ENTRY);
-    
-    int result = ItemNotFound;
-    
-    for (int i = 0; i < mDestinations.count(); i++) {
-        if (mDestinations[i]->id == destinationId) {
-            result = i;
-            break;
-        }
-    }
-    
-    OstTraceExt2(
-        TRACE_NORMAL,
-        CMAPPLSETTINGSUIPRIVATE_FINDDESTINATION,
-        "CmApplSettingsUiPrivate::findDestination;destinationId=%u;result=%d",
-        destinationId,
-        result);
-    
-    OstTraceFunctionExit0(CMAPPLSETTINGSUIPRIVATE_FINDDESTINATION_EXIT);
-    return result;
-}
-
-/*!
-    Connection Method search function.
-    
-    @param connMethodId Connection Method ID.
-    
-    @return Returns index if found, and ItemNotFound if not. 
- */
-int CmApplSettingsUiPrivate::findConnectionMethod(uint connMethodId) const
-{
-    OstTraceFunctionEntry0(CMAPPLSETTINGSUIPRIVATE_FINDCONNECTIONMETHOD_ENTRY);
-
-    int result = ItemNotFound;
-    
-    for (int i = 0; i < mConnMethods.count(); i++) {
-        if (mConnMethods[i]->id == connMethodId) {
-            result = i;
-            break;
-        }
-    }
-    
-    OstTraceExt2(
-        TRACE_NORMAL,
-        CMAPPLSETTINGSUIPRIVATE_FINDCONNECTIONMETHOD,
-        "CmApplSettingsUiPrivate::findConnectionMethod;connMethodId=%u;result=%d",
-        connMethodId,
-        result);
-    
-    OstTraceFunctionExit0(CMAPPLSETTINGSUIPRIVATE_FINDCONNECTIONMETHOD_EXIT);
-    return result;
-}
-
-/*!
-   Emits the completion signal "finished(uint)".
-   
-   @param status Finishing status code.
- */
-void CmApplSettingsUiPrivate::emitFinished(uint status) const
-{
-    OstTrace1(
-        TRACE_NORMAL,
-        CMAPPLSETTINGSUIPRIVATE_EMITFINISHED,
-        "CmApplSettingsUiPrivate::emitFinished;status=%u",
-        status);
-    emit q_ptr->finished(status);
-}
-
-/*!
-    Destination dialog result handling slot.
-    
-    @param success Destination dialog result - TRUE if accepted.
- */
-void CmApplSettingsUiPrivate::destinationDialogResult(bool success)
-{
-    OstTraceFunctionEntry0(CMAPPLSETTINGSUIPRIVATE_DESTINATIONDIALOGRESULT_ENTRY);
-    
-    if (success) {
-        // Dialog was accepted - user clicked "OK"
-        int index = mDestinationDialog->selected();    
-        if (mListItems.testFlag(CmApplSettingsUi::ShowConnectionMethods)
-            && index == mDestinations.count()) {
-            // Dedicated access point was selected
-            runConnectionMethodDialog();
-        } else {
-            // Destination was selected
-            mSelection.result = CmApplSettingsUi::SelectionTypeDestination;
-            mSelection.id = mDestinations[index]->id;
-            emitFinished(CmApplSettingsUi::ApplSettingsErrorNone);
-        }
-    } else {
-        // Dialog was cancelled - user clicked "Cancel"
-        emitFinished(CmApplSettingsUi::ApplSettingsErrorCancel);
-    }
-    
-    OstTraceFunctionExit0(CMAPPLSETTINGSUIPRIVATE_DESTINATIONDIALOGRESULT_EXIT);
-}
-
-/*!
-    Connection method dialog result handling slot.
-    
-    @param success Connection method dialog result - TRUE if accepted.
- */
-void CmApplSettingsUiPrivate::connMethodDialogResult(bool success)
-{
-    OstTraceFunctionEntry0(CMAPPLSETTINGSUIPRIVATE_CONNMETHODDIALOGRESULT_ENTRY);
-    
-    if (success) {
-        // Dialog was accepted - user clicked "OK"
-        int index = mConnMethodDialog->selected();
-        mSelection.result = CmApplSettingsUi::SelectionTypeConnectionMethod;
-        mSelection.id = mConnMethods[index]->id;
-        emitFinished(CmApplSettingsUi::ApplSettingsErrorNone);
-    } else {
-        // Dialog was cancelled - user clicked "Cancel"
-        emitFinished(CmApplSettingsUi::ApplSettingsErrorCancel);
-    }
-    
-    OstTraceFunctionExit0(CMAPPLSETTINGSUIPRIVATE_CONNMETHODDIALOGRESULT_EXIT);
-}