cmmanager/cmapplsettingsui/inc/cmapplsettingsui_p.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 16:15:46 +0300
changeset 23 7ec726f93df1
parent 20 9c97ad6591ae
permissions -rw-r--r--
Revision: 201017 Kit: 201019

/*
* 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 interface.  
*/

#ifndef CMAPPLSETTINGSUI_P_H
#define CMAPPLSETTINGSUI_P_H

// System includes

#include <QObject>
#include <QFlags>
#include <QSet>
#include <QList>
#include <QSharedPointer>

// User includes

#include "cmconnectionmethod_shim.h"
#include "cmdestination_shim.h"
#include "cmsettingdata.h"
#include "cmapplsettingsui.h"

// Forward declarations

class HbTranslator;
class CmManagerShim;
class CmRadioDialog;
class TestCmApplSettingsUi;

// External data types

// Constants

// Class declaration

class CmApplSettingsUiPrivate : QObject
{
    Q_OBJECT

public:

    // Data types

    explicit CmApplSettingsUiPrivate(CmApplSettingsUi *q_pointer);
    
    virtual ~CmApplSettingsUiPrivate();

    void setOptions(
        const QFlags<CmApplSettingsUi::SelectionDialogItems> &listItems,
        const QSet<CmApplSettingsUi::BearerTypeFilter> &bearerFilter);
    
    void setSelection(
        const CmApplSettingsUi::SettingSelection &selection);
    
    CmApplSettingsUi::SettingSelection selection() const;
    
    void open();
    
signals:

public slots:

protected:

protected slots:

private:

    Q_DISABLE_COPY(CmApplSettingsUiPrivate)

    void runDestinationDialog();
    
    void runConnectionMethodDialog();
        
    int findDestination(uint destinationId) const;

    int findConnectionMethod(uint connMethodId) const;

    void emitFinished(uint status) const;
    
private slots:

    void destinationDialogResult(bool success);
    
    void connMethodDialogResult(bool success);

private: // data
    
    //! "Not found" search index value. 
    static const int ItemNotFound = -1;

    // General member data
    CmApplSettingsUi *q_ptr;                //!< Public implementation
    QSharedPointer<CmManagerShim> mCmManagerShim;   //!< CM Manager client instance
    QSharedPointer<HbTranslator> mTranslator;   //!< Translator for the dialog       

    // Configuration
    QFlags<CmApplSettingsUi::SelectionDialogItems> mListItems;  //!< Wanted dialog type's
    
    // State data
    CmSettingData mSettingData;             //!< Setting data
    CmRadioDialog *mDestinationDialog;      //!< Destination dialog
    CmRadioDialog *mConnMethodDialog;       //!< Connection method dialog
    CmApplSettingsUi::SettingSelection mSelection;          //!< Current selection
    QList< QSharedPointer<CmSettingData::Destination> > mDestinations;  //! Destinations
    QList< QSharedPointer<CmSettingData::ConnMethod> > mConnMethods;    //! Connection methods
    
    // Friend classes
    
    // Test class needs direct access
    friend class TestCmApplSettingsUi;
};

#endif // CMAPPLSETTINGSUI_P_H