camerauis/cameraxui/cxui/inc/cxuisettingsinfo.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 12:43:29 +0300
changeset 29 699651f2666f
parent 21 fa6d9f75d6a6
child 32 5c1e3c6aa4ef
permissions -rw-r--r--
Revision: 201019 Kit: 2010121

/*
* Copyright (c) 2009 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:
*
*/

#ifndef CXUISETTINGSINFO_H
#define CXUISETTINGSINFO_H

#include <QObject>
#include <QMap>
#include <QPair>
#include <QList>
#include <QString>
#include <QStringList>
#include "cxeerror.h"
#include "cxuisettingradiobuttonlist.h"


class CxeEngine;
class CxuiSettingXmlReader;

namespace CxUiSettings
{
    // Setting mappings
    static const char *IMAGE_SETTING_MAPPING_FILE = ":/xml/image_setting.xml";
    static const char *VIDEO_SETTING_MAPPING_FILE = ":/xml/video_setting.xml";

    struct SettingItem
    {
        QString mItem;
        QVariant mValue;
        QString mIcon;
    };

    /*!
    * Class that holds all the data required for radiobutton list
    */
    class RadioButtonListParams
    {
    public:
        RadioButtonListParams& operator=(const RadioButtonListParams& other);

    public:
        QString mHeading;
        QString mSettingId;
        QString mHeadingIcon;
        QList<SettingItem> mSettingPairList;
        bool mPreview;
        CxuiSettingRadioButtonList::ListBoxType mListboxType;
    };


    /*!
    * Class that holds all the data required for slider
    */
    class SliderParams
    {
    public:
        SliderParams& operator=(const SliderParams& other);

    public:
        QString mHeading;
        QString mSettingId;
        QString mHeadingIcon;
        QStringList mSettingStrings;
        QPair<int, int> mRange;
        qreal mMinorStep;
        qreal mMajorStep;
    };
}

/**
 * Model Class that handles all HbDialog settings content widget info
 */
class CxuiSettingsInfo : public QObject
{
    Q_OBJECT
public:
   CxuiSettingsInfo(CxeEngine *engine);
   ~CxuiSettingsInfo();
   bool getSettingsContent(const QString &key, CxUiSettings::RadioButtonListParams &p);
   bool getSettingsContent(const QString &key, CxUiSettings::SliderParams &p);

private:
    void getImageQualitySettings(CxUiSettings::RadioButtonListParams &settings);
    void getVideoQualitySettings(CxUiSettings::RadioButtonListParams &settings);
    void handleQualitySettings(const QString &key, CxUiSettings::RadioButtonListParams &settings);

private:
    void checkMode();

private: // data members
    int mMode;
    CxeEngine *mEngine;
    CxuiSettingXmlReader *mXmlReader;
};


#endif // CXUISETTINGSINFO_H