controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilesettingform.cpp
changeset 10 0a74be98a8bc
child 11 10d0dd0e43f1
equal deleted inserted replaced
0:254040eb3b7d 10:0a74be98a8bc
       
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0""
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description:  
       
    15  *
       
    16  */
       
    17 
       
    18 #include "cpprofilesettingform.h"
       
    19 #include <QStringList>
       
    20 #include <hbdataformmodel.h>
       
    21 #include "cppersonalizationcustomviewitem.h"
       
    22 
       
    23 CpProfileSettingForm::CpProfileSettingForm()
       
    24 : mModel(0)
       
    25 {
       
    26     this->setHeading(tr("Profiles"));
       
    27     this->setDescription(tr("With profiles you can quickly change audio settings of your device"));
       
    28 
       
    29     QList<HbAbstractViewItem *> protoTypeList = itemPrototypes();
       
    30     protoTypeList.append(new CpPersonalizationCustomViewItem);
       
    31     setItemPrototypes(protoTypeList);
       
    32 
       
    33     initModel();
       
    34 }
       
    35 
       
    36 CpProfileSettingForm::~CpProfileSettingForm()
       
    37 {
       
    38     delete mModel;
       
    39 }
       
    40 
       
    41 void CpProfileSettingForm::initModel()
       
    42 {
       
    43     mModel = new HbDataFormModel();
       
    44 
       
    45     QStringList profileList;
       
    46     profileList << "Normal" << "Meeting" << "Silent"; //should be got from engine.
       
    47     foreach (const QString &profile,profileList) {
       
    48         HbDataFormModelItem *profilePage = mModel->appendDataFormPage(profile);
       
    49         initVolumeGroup(profilePage);
       
    50         initRingToneGroup(profilePage);
       
    51         initMessageToneGroup(profilePage);
       
    52         initAlertToneGroup(profilePage);
       
    53         initKeyAndScreenToneGroup(profilePage);
       
    54     }
       
    55     setModel(mModel);
       
    56 }
       
    57 
       
    58 void CpProfileSettingForm::initVolumeGroup(HbDataFormModelItem *parent)
       
    59 {
       
    60     HbDataFormModelItem *volumeGroup = mModel->appendDataFormGroup(
       
    61         tr("Volume"),parent);
       
    62     mModel->appendDataFormItem(static_cast<HbDataFormModelItem::DataItemType>(MasterVolumeSliderItem),QString(),volumeGroup);
       
    63     mModel->appendDataFormItem(HbDataFormModelItem::CheckBoxItem,tr("Ring alert vibra"),volumeGroup);    
       
    64     mModel->appendDataFormItem(HbDataFormModelItem::CheckBoxItem,tr("New message alert vibra"),volumeGroup);  
       
    65     mModel->appendDataFormItem(HbDataFormModelItem::CheckBoxItem,tr("New e-mail alert vibra"),volumeGroup);
       
    66     mModel->appendDataFormItem(HbDataFormModelItem::CheckBoxItem,tr("Reminder alarm vibra"),volumeGroup);
       
    67     mModel->appendDataFormItem(HbDataFormModelItem::CheckBoxItem,tr("Clock alarm vibra"),volumeGroup);
       
    68 }
       
    69 
       
    70 void CpProfileSettingForm::initRingToneGroup(HbDataFormModelItem *parent)
       
    71 {
       
    72     HbDataFormModelItem *ringToneGroup = mModel->appendDataFormGroup(
       
    73         tr("Ring tone"),parent);
       
    74 
       
    75     QStringList tonesList;
       
    76     tonesList << "Off" << "Beep" << "Default ring tone" << "set profile-specific tone";
       
    77 
       
    78     foreach (const QString &tone,tonesList) {
       
    79         HbDataFormModelItem *toneGroup = mModel->appendDataFormGroupPage(tone,ringToneGroup);
       
    80         mModel->appendDataFormItem(HbDataFormModelItem::CheckBoxItem,tr("Say caller name"),toneGroup);
       
    81         HbDataFormModelItem *threeDEffect = mModel->appendDataFormItem(
       
    82             HbDataFormModelItem::ComboBoxItem,tr("3D effect"),toneGroup);
       
    83         
       
    84         threeDEffect->setContentWidgetData("items",QStringList() 
       
    85             << tr("Off") << tr("Circular") << tr("Fly-by") << tr("Zigzag") 
       
    86             << tr("Meander") << tr("Chaos") << tr("Stereo widening"));
       
    87         threeDEffect->setContentWidgetData("currentIndex",0);
       
    88 
       
    89         HbDataFormModelItem *treeEcho = mModel->appendDataFormItem(
       
    90             HbDataFormModelItem::ComboBoxItem,tr("3D echo"),toneGroup);
       
    91         treeEcho->setContentWidgetData("items",QStringList()
       
    92             << tr("Off") << tr("Living room") << tr("Cave") << tr("Railway station")
       
    93             << tr("Forest") << tr("Duct") << tr("underwater"));
       
    94         treeEcho->setContentWidgetData("currentIndex",0);
       
    95     }
       
    96 }
       
    97 
       
    98 void CpProfileSettingForm::initMessageToneGroup(HbDataFormModelItem *parent)
       
    99 {
       
   100     HbDataFormModelItem *messageToneGroup = mModel->appendDataFormGroup(
       
   101         tr("Message tones"),parent);
       
   102 
       
   103     HbDataFormModelItem *messageTone = mModel->appendDataFormItem(
       
   104         HbDataFormModelItem::ComboBoxItem,tr("Message tone"),messageToneGroup);
       
   105 
       
   106     messageTone->setContentWidgetData("items",QStringList() 
       
   107         << tr("Off") << tr("Beep") << tr("Default mesage tone") << tr("set profile-specific tone"));
       
   108     messageTone->setContentWidgetData("currentIndex",2);
       
   109 
       
   110     HbDataFormModelItem *emailTone = mModel->appendDataFormItem(
       
   111         HbDataFormModelItem::ComboBoxItem,tr("E-mail tone"),messageToneGroup);
       
   112 
       
   113     emailTone->setContentWidgetData("items",QStringList() 
       
   114         << tr("Off") << tr("Beep") << tr("Default e-mail tone") << tr("set profile-specific tone"));
       
   115     emailTone->setContentWidgetData("currentIndex",2);
       
   116 
       
   117 }
       
   118 
       
   119 void CpProfileSettingForm::initAlertToneGroup(HbDataFormModelItem *parent)
       
   120 {
       
   121     HbDataFormModelItem *alertToneGroup = mModel->appendDataFormGroup(
       
   122         tr("Alert tones"),parent);
       
   123 
       
   124     HbDataFormModelItem *reminderTone = mModel->appendDataFormItem(
       
   125         HbDataFormModelItem::ComboBoxItem,tr("Reminder tone"),alertToneGroup);
       
   126 
       
   127     reminderTone->setContentWidgetData("items",QStringList() 
       
   128         << tr("Off") << tr("Beep") << tr("Default reminder tone") << tr("set profile-specific tone"));
       
   129     reminderTone->setContentWidgetData("currentIndex",2);
       
   130 
       
   131     HbDataFormModelItem *clockAlarmTone = mModel->appendDataFormItem(
       
   132         HbDataFormModelItem::ComboBoxItem,tr("Clock alarm tone"),alertToneGroup);
       
   133 
       
   134     clockAlarmTone->setContentWidgetData("items",QStringList() 
       
   135         << tr("Off") << tr("Beep") << tr("Default clock alarm tone") << tr("set profile-specific tone"));
       
   136     clockAlarmTone->setContentWidgetData("currentIndex",2);
       
   137 
       
   138 }
       
   139 
       
   140 void CpProfileSettingForm::initKeyAndScreenToneGroup(HbDataFormModelItem *parent)
       
   141 {
       
   142     HbDataFormModelItem *keyAndScreenToneGroup= mModel->appendDataFormGroup(
       
   143         tr("Key and screen tones"),parent);
       
   144     mModel->appendDataFormItem(static_cast<HbDataFormModelItem::DataItemType>(MasterVolumeSliderItem),
       
   145         tr("Key and touch screen tones"),keyAndScreenToneGroup);
       
   146     mModel->appendDataFormItem(HbDataFormModelItem::SliderItem,
       
   147         tr("Touch screen vibra"),keyAndScreenToneGroup);
       
   148 }