|
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 } |