|
1 /* |
|
2 * Copyright (c) 2010 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 "fbattributesview.h" |
|
19 |
|
20 #include <HbView> |
|
21 #include <HbDataForm> |
|
22 #include <HbDataFormModel> |
|
23 #include <HbDataFormModelItem> |
|
24 #include <HbAction> |
|
25 #include <HbToolBar> |
|
26 |
|
27 #include <QGraphicsLinearLayout> |
|
28 |
|
29 #include <f32file.h> |
|
30 |
|
31 const QStringList AttributesChoices = QStringList() << "Skip" << "On" << "Off"; |
|
32 const QStringList RecurseChoices = QStringList() << "Recursive" << "Non-recursive"; |
|
33 const QString acceptActionText = "OK"; |
|
34 const QString rejectActionText = "Cancel"; |
|
35 const int AttributeOn = 1; |
|
36 const int AttributeOff = 2; |
|
37 const int AttributeEnableRecursion = 0; |
|
38 const int AttributeDisableRecursion = 1; |
|
39 |
|
40 FbAttributesView::FbAttributesView(quint32 &aSetAttMask, quint32 &aClearAttMask, bool &aRecurse) : |
|
41 mSetAttributesMask(aSetAttMask), |
|
42 mClearAttributesMask(aClearAttMask), |
|
43 mRecurse(aRecurse), |
|
44 mForm(0), |
|
45 mArchiveItem(0), |
|
46 mHiddenItem(0), |
|
47 mReadOnlyItem(0), |
|
48 mSystemItem(0), |
|
49 mRecurseItem(0) |
|
50 { |
|
51 setTitle("Set attributes"); |
|
52 |
|
53 // Override back navigation action |
|
54 HbAction *leaveViewAction = new HbAction(Hb::BackNaviAction, this); |
|
55 connect(leaveViewAction, SIGNAL(triggered()), this, SLOT(reject())); |
|
56 setNavigationAction(leaveViewAction); |
|
57 |
|
58 initDataForm(); |
|
59 createToolbar(); |
|
60 } |
|
61 |
|
62 FbAttributesView::~FbAttributesView() |
|
63 { |
|
64 } |
|
65 |
|
66 void FbAttributesView::initDataForm() |
|
67 { |
|
68 mForm = new HbDataForm(this); |
|
69 HbDataFormModel *model = new HbDataFormModel(); |
|
70 |
|
71 // Create Group for sequential image components |
|
72 //mGroupSeguantialCapture = model->appendDataFormGroup(QString("Archive"), parent); |
|
73 |
|
74 mArchiveItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); |
|
75 mArchiveItem->setLabel("Archive"); |
|
76 mArchiveItem->setContentWidgetData(QString("items"), AttributesChoices); |
|
77 mArchiveItem->setContentWidgetData(QString("displayMode"), QString("embedded")); |
|
78 |
|
79 mHiddenItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); |
|
80 mHiddenItem->setLabel("Hidden"); |
|
81 mHiddenItem->setContentWidgetData(QString("items"), AttributesChoices); |
|
82 mHiddenItem->setContentWidgetData(QString("displayMode"), QString("embedded")); |
|
83 |
|
84 mReadOnlyItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); |
|
85 mReadOnlyItem->setLabel("Read only"); |
|
86 mReadOnlyItem->setContentWidgetData(QString("items"), AttributesChoices); |
|
87 mReadOnlyItem->setContentWidgetData(QString("displayMode"), QString("embedded")); |
|
88 |
|
89 mSystemItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); |
|
90 mSystemItem->setLabel("System"); |
|
91 mSystemItem->setContentWidgetData(QString("items"), AttributesChoices); |
|
92 mSystemItem->setContentWidgetData(QString("displayMode"), QString("embedded")); |
|
93 |
|
94 mRecurseItem = new HbDataFormModelItem(HbDataFormModelItem::RadioButtonListItem); |
|
95 mRecurseItem->setLabel("Recurse"); |
|
96 mRecurseItem->setContentWidgetData(QString("items"), RecurseChoices); |
|
97 mRecurseItem->setContentWidgetData(QString("displayMode"), QString("embedded")); |
|
98 |
|
99 // load file search attribute values from FB engine: |
|
100 loadSettings(); |
|
101 |
|
102 model->appendDataFormItem(mArchiveItem); |
|
103 model->appendDataFormItem(mHiddenItem); |
|
104 model->appendDataFormItem(mReadOnlyItem); |
|
105 model->appendDataFormItem(mSystemItem); |
|
106 model->appendDataFormItem(mRecurseItem); |
|
107 |
|
108 mForm->setModel(model); |
|
109 |
|
110 QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical,this); |
|
111 layout->addItem(mForm); |
|
112 setLayout(layout); |
|
113 } |
|
114 |
|
115 void FbAttributesView::createToolbar() |
|
116 { |
|
117 HbToolBar *toolBar = new HbToolBar(this); |
|
118 HbAction *acceptAction = new HbAction(acceptActionText); |
|
119 connect(acceptAction, SIGNAL(triggered()), this, SLOT(accept())); |
|
120 toolBar->addAction(acceptAction); |
|
121 |
|
122 HbAction *rejectAction = new HbAction(rejectActionText); |
|
123 connect(rejectAction, SIGNAL(triggered()), this, SLOT(reject())); |
|
124 toolBar->addAction(rejectAction); |
|
125 |
|
126 setToolBar(toolBar); |
|
127 } |
|
128 |
|
129 /** |
|
130 Set form item values from settings \a settings. |
|
131 */ |
|
132 void FbAttributesView::loadSettings() |
|
133 { |
|
134 if (mSetAttributesMask & KEntryAttArchive) |
|
135 mArchiveItem->setContentWidgetData(QString("selected"), AttributeOn); |
|
136 else if (mClearAttributesMask & KEntryAttArchive) |
|
137 mArchiveItem->setContentWidgetData(QString("selected"), AttributeOff); |
|
138 |
|
139 if (mSetAttributesMask & KEntryAttHidden) |
|
140 mHiddenItem->setContentWidgetData(QString("selected"), AttributeOn); |
|
141 else if (mClearAttributesMask & KEntryAttHidden) |
|
142 mHiddenItem->setContentWidgetData(QString("selected"), AttributeOff); |
|
143 |
|
144 if (mSetAttributesMask & KEntryAttReadOnly) |
|
145 mReadOnlyItem->setContentWidgetData(QString("selected"), AttributeOn); |
|
146 else if (mClearAttributesMask & KEntryAttReadOnly) |
|
147 mReadOnlyItem->setContentWidgetData(QString("selected"), AttributeOff); |
|
148 |
|
149 if (mSetAttributesMask & KEntryAttSystem) |
|
150 mSystemItem->setContentWidgetData(QString("selected"), AttributeOn); |
|
151 else if (mClearAttributesMask & KEntryAttSystem) |
|
152 mSystemItem->setContentWidgetData(QString("selected"), AttributeOff); |
|
153 |
|
154 if (mRecurse) |
|
155 mRecurseItem->setContentWidgetData(QString("selected"), AttributeEnableRecursion); |
|
156 else |
|
157 mRecurseItem->setContentWidgetData(QString("selected"), AttributeDisableRecursion); |
|
158 } |
|
159 |
|
160 /** |
|
161 Store form item data into \a settings |
|
162 */ |
|
163 void FbAttributesView::saveSettings() |
|
164 { |
|
165 mSetAttributesMask = 0; |
|
166 mClearAttributesMask = 0; |
|
167 |
|
168 int archive = mArchiveItem->contentWidgetData(QString("selected")).toInt(); |
|
169 if (archive == AttributeOn) |
|
170 mSetAttributesMask |= KEntryAttArchive; |
|
171 else if (archive == AttributeOff) |
|
172 mClearAttributesMask |= KEntryAttArchive; |
|
173 |
|
174 int hidden = mHiddenItem->contentWidgetData(QString("selected")).toInt(); |
|
175 if (hidden == AttributeOn) |
|
176 mSetAttributesMask |= KEntryAttHidden; |
|
177 else if (hidden == AttributeOff) |
|
178 mClearAttributesMask |= KEntryAttHidden; |
|
179 |
|
180 int readOnly = mReadOnlyItem->contentWidgetData(QString("selected")).toInt(); |
|
181 if (readOnly == AttributeOn) |
|
182 mSetAttributesMask |= KEntryAttReadOnly; |
|
183 else if (readOnly == AttributeOff) |
|
184 mClearAttributesMask |= KEntryAttReadOnly; |
|
185 |
|
186 int system = mSystemItem->contentWidgetData(QString("selected")).toInt(); |
|
187 if (system == AttributeOn) |
|
188 mSetAttributesMask |= KEntryAttSystem; |
|
189 else if (system == AttributeOff) |
|
190 mClearAttributesMask |= KEntryAttSystem; |
|
191 |
|
192 int recurse = mRecurseItem->contentWidgetData(QString("selected")).toInt(); |
|
193 if (recurse == AttributeEnableRecursion) |
|
194 mRecurse = ETrue; |
|
195 else if (recurse == AttributeDisableRecursion) |
|
196 mRecurse = EFalse; |
|
197 } |
|
198 |
|
199 void FbAttributesView::accept() |
|
200 { |
|
201 saveSettings(); |
|
202 emit finished(true); |
|
203 } |
|
204 |
|
205 void FbAttributesView::reject() |
|
206 { |
|
207 emit finished(false); |
|
208 } |
|
209 |
|
210 // End of file |