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 #include "drmuidialogsbuilder.h" |
|
18 #include <hbdocumentloader.h> |
|
19 #include "drmuidialogpluginkeys.h" |
|
20 #include <drmuidialogids.h> |
|
21 #include <hbaction.h> |
|
22 #include <hbdialog.h> |
|
23 #include <hblabel.h> |
|
24 #include <QString> |
|
25 #include <HbPopup.h> |
|
26 |
|
27 static const QString DOCML_NO_RIGHTS_OBJECT_DIALOG_QUERY = |
|
28 ":/xml/norightsobjectquery.docml"; |
|
29 static const QString DOCML_SIM_NOT_ALLOWED_QUERY = |
|
30 ":/xml/simnotallowedquery.docml"; |
|
31 static const QString DOCML_RIGHTS_OBJECT_EXPIRED_QUERY = |
|
32 ":/xml/rightsobjectexpiredquery.docml"; |
|
33 static const QString DOCML_WAITING_FOR_RIGHTS_OBJECT_CONF = |
|
34 ":/xml/waitingforrightsobjconf.docml"; |
|
35 static const QString DOCML_COPY_OBJECTS_QUERY = |
|
36 ":/xml/copyobjectsquery.docml"; |
|
37 static const QString DOCML_DELETED_CONF = ":/xml/filedeletedconf.docml"; |
|
38 static const QString DOCML_DELETED_DRM_FILE_QUERY = |
|
39 ":/xml/deletedrmfilequery.docml"; |
|
40 static const QString DOCML_MOVE_OBJECTS_QUERY = |
|
41 ":/xml/moveobjectsquery.docml"; |
|
42 static const QString DOCML_NO_COUNT_QUERY = ":/xml/nocountquery.docml"; |
|
43 static const QString DOCML_NO_USAGE_QUERY = ":/xml/nousagequery.docml"; |
|
44 static const QString DOCML_OBJECT_LOCKED_CONF = |
|
45 ":/xml/objectlockedconf.docml"; |
|
46 static const QString DOCML_UNABLE_TO_COPY_CONF = |
|
47 ":/xml/unabletocopyconf.docml"; |
|
48 static const QString DOCML_UNABLE_TO_MOVE_CONF = |
|
49 ":/xml/unabletomoveconf.docml"; |
|
50 static const QString DOCML_UNSUPPORTED_CONF = ":/xml/unsupportedconf.docml"; |
|
51 static const QString DOCML_DEREGISTERED_CONF = ":/xml/deregisteredconf.docml"; |
|
52 static const QString DOCML_FILEDELETED_CONF = ":/xml/filedeletedconf.docml"; |
|
53 static const QString DOCML_FORWARD_PROTECTED_CONF = |
|
54 ":/xml/forwardprotectedconf.docml"; |
|
55 static const QString DOCML_LICENCE_EXPIRED_CONF = |
|
56 ":/xml/licenceexpiredconf.docml"; |
|
57 static const QString DOCML_NOT_RECOGNIZED_CONF = |
|
58 ":/xml/notrecognizedconf.docml"; |
|
59 static const QString DOCML_REGISTERED_CONF = ":/xml/registeredconf.docml"; |
|
60 static const QString DOCML_REGISTER_FAILURE_CONF = |
|
61 ":/xml/registerfailureconf.docml"; |
|
62 static const QString DOCML_UNABLE_TO_DEREGISTER_CONF = |
|
63 ":/xml/unabletoderegisterconf.docml"; |
|
64 static const QString DOCML_UNABLE_TO_SEND_CONF = |
|
65 ":/xml/unabletosendconf.docml"; |
|
66 static const QString DOCML_UPDATED_CONF = ":/xml/updatedconf.docml"; |
|
67 static const QString DOCML_UPDATE_FAILURE_CONF = |
|
68 ":/xml/updatefailureconf.docml"; |
|
69 static const QString DOCML_VIEW_RESTRICTION_CONF = |
|
70 ":/xml/viewrestrictionconf.docml"; |
|
71 static const QString DOCML_ACCOUNT_UPDATE_QUERY = |
|
72 ":/xml/accountupdatequery.docml"; |
|
73 static const QString DOCML_GET_LICENCE_QUERY = |
|
74 ":/xml/getnewlicencequery.docml"; |
|
75 static const QString DOCML_RETRY_FOR_LICENCE_QUERY = |
|
76 ":/xml/retryforlicencequery.docml"; |
|
77 static const QString DOCML_UNABLE_TO_SEND_QUERY = |
|
78 ":/xml/unabletosendquery.docml"; |
|
79 static const QString DOCML_RIGHTS_OBJECTS_RECIEVED_NOTE = |
|
80 ":/xml/rightsobjectsrecievednote.docml"; |
|
81 static const QString DOCML_WAITING_FOR_LICENCE_CONF = |
|
82 ":/xml/waitingforlicenceconf.docml"; |
|
83 static const QString DOCML_ACQUIRING_LICENCE_PROG = |
|
84 ":/xml/acquiringlicenceprog.docml"; |
|
85 static const QString DOCML_REGISTERING_PROG = |
|
86 ":/xml/Registeringprog.docml"; |
|
87 static const QString DOCML_UPDATING_PROG = |
|
88 ":/xml/updatingprog.docml"; |
|
89 static const QString DOCML_DEREGISTERING_PROG = |
|
90 ":/xml/deregisteringprog.docml"; |
|
91 |
|
92 // Notes have not been defined in the XLS document yet hence commented out |
|
93 /* |
|
94 static const QString DOCML_NO_CONNECTION_DEFINED = |
|
95 ":/xml/noconnectiondefined.docml"; |
|
96 static const QString DOCML_INVALID_OR_NO_AP = ":/xml/invalidornoap.docml"; |
|
97 static const QString DOCML_OPENING_FAIL_PERM = ":/xml/openingfailperm.docml"; |
|
98 */ |
|
99 |
|
100 /*! |
|
101 class Constructor |
|
102 */ |
|
103 DrmUiDialogsBuilder::DrmUiDialogsBuilder(const QVariantMap ¶meters) : |
|
104 QObject() |
|
105 { |
|
106 constructDialog(parameters); |
|
107 } |
|
108 |
|
109 DrmUiDialogsBuilder::~DrmUiDialogsBuilder() |
|
110 { |
|
111 delete mLoader; |
|
112 mLoader = NULL; |
|
113 } |
|
114 |
|
115 /*! |
|
116 Get error, implementation of interface |
|
117 */ |
|
118 int DrmUiDialogsBuilder::deviceDialogError() const |
|
119 { |
|
120 return 0; |
|
121 } |
|
122 |
|
123 /*! |
|
124 Set parameters, implementation of interface |
|
125 Invoked when HbDeviceDialog::update calls. |
|
126 */ |
|
127 bool DrmUiDialogsBuilder::setDeviceDialogParameters( |
|
128 const QVariantMap ¶meters) |
|
129 { |
|
130 constructDialog(parameters); |
|
131 return true; |
|
132 } |
|
133 |
|
134 /*! |
|
135 Close notification, implementation of interface |
|
136 */ |
|
137 void DrmUiDialogsBuilder::closeDeviceDialog(bool byClient) |
|
138 { |
|
139 Q_UNUSED(byClient); |
|
140 emit deviceDialogClosed(); |
|
141 } |
|
142 /*! |
|
143 Return display widget, implementation of interface |
|
144 */ |
|
145 QObject *DrmUiDialogsBuilder::signalSender() const |
|
146 { |
|
147 return const_cast<DrmUiDialogsBuilder*> (this); |
|
148 } |
|
149 |
|
150 /*! |
|
151 Return display widget, implementation of interface |
|
152 */ |
|
153 HbPopup* DrmUiDialogsBuilder::deviceDialogWidget() const |
|
154 { |
|
155 return mDialog; |
|
156 } |
|
157 |
|
158 /*! |
|
159 Construct display widget |
|
160 */ |
|
161 bool DrmUiDialogsBuilder::constructDialog(const QVariantMap ¶meters) |
|
162 { |
|
163 if (mLoader == 0) |
|
164 { |
|
165 mLoader = new HbDocumentLoader(); |
|
166 } |
|
167 bool ok = false; |
|
168 int mQueryType; |
|
169 if (parameters.contains(KDrmUIDialogId)) |
|
170 { |
|
171 |
|
172 mQueryType = parameters.value(KDrmUIDialogId).toInt(); |
|
173 //switch cases to set load docml files for the parameters |
|
174 switch (mQueryType) |
|
175 { |
|
176 case EQueryNoRightsObj: |
|
177 mLoader->load(DOCML_NO_RIGHTS_OBJECT_DIALOG_QUERY, &ok); |
|
178 break; |
|
179 |
|
180 case EQueryFileLockedForSim: |
|
181 mLoader->load(DOCML_SIM_NOT_ALLOWED_QUERY, &ok); |
|
182 break; |
|
183 |
|
184 case EQueryRightsObjExpired: |
|
185 mLoader->load(DOCML_RIGHTS_OBJECT_EXPIRED_QUERY, &ok); |
|
186 break; |
|
187 |
|
188 case EConfWaitingForLicence: |
|
189 mLoader->load(DOCML_WAITING_FOR_LICENCE_CONF, &ok); |
|
190 break; |
|
191 |
|
192 case EConfDeleted: |
|
193 mLoader->load(DOCML_DELETED_CONF, &ok); |
|
194 break; |
|
195 |
|
196 case EConfObjLocked: |
|
197 mLoader->load(DOCML_OBJECT_LOCKED_CONF, &ok); |
|
198 break; |
|
199 |
|
200 case EConfUnableToCopy: |
|
201 mLoader->load(DOCML_UNABLE_TO_COPY_CONF, &ok); |
|
202 break; |
|
203 case EConfUnableToMove: |
|
204 mLoader->load(DOCML_UNABLE_TO_MOVE_CONF, &ok); |
|
205 break; |
|
206 |
|
207 case EConfUnsupportedObj: |
|
208 mLoader->load(DOCML_UNSUPPORTED_CONF, &ok); |
|
209 break; |
|
210 |
|
211 case EQueryCopyObjects: |
|
212 mLoader->load(DOCML_COPY_OBJECTS_QUERY, &ok); |
|
213 break; |
|
214 |
|
215 case EQueryDeleteDRMFile: |
|
216 mLoader->load(DOCML_DELETED_DRM_FILE_QUERY, &ok); |
|
217 break; |
|
218 |
|
219 case EQueryMoveObjects: |
|
220 mLoader->load(DOCML_MOVE_OBJECTS_QUERY, &ok); |
|
221 break; |
|
222 |
|
223 case EQueryNoCount: |
|
224 mLoader->load(DOCML_NO_COUNT_QUERY, &ok); |
|
225 break; |
|
226 |
|
227 case EQueryNoUsage: |
|
228 mLoader->load(DOCML_NO_USAGE_QUERY, &ok); |
|
229 break; |
|
230 |
|
231 case EQuerySendUnprotectedObjs: |
|
232 mLoader->load(DOCML_UNABLE_TO_SEND_QUERY, &ok); |
|
233 break; |
|
234 |
|
235 case EQueryAccountUpdate: |
|
236 mLoader->load(DOCML_ACCOUNT_UPDATE_QUERY, &ok); |
|
237 break; |
|
238 |
|
239 case EQueryRetryForLicence: |
|
240 mLoader->load(DOCML_RETRY_FOR_LICENCE_QUERY, &ok); |
|
241 break; |
|
242 |
|
243 case EQueryGetNewLicence: |
|
244 mLoader->load(DOCML_GET_LICENCE_QUERY, &ok); |
|
245 break; |
|
246 |
|
247 case EConfLicenceExpired: |
|
248 mLoader->load(DOCML_LICENCE_EXPIRED_CONF, &ok); |
|
249 break; |
|
250 |
|
251 case EConfForwardProtected: |
|
252 mLoader->load(DOCML_FORWARD_PROTECTED_CONF, &ok); |
|
253 break; |
|
254 |
|
255 case EConfUnableToSend: |
|
256 mLoader->load(DOCML_UNABLE_TO_SEND_CONF, &ok); |
|
257 break; |
|
258 |
|
259 case EConfViewRestriction: |
|
260 mLoader->load(DOCML_VIEW_RESTRICTION_CONF, &ok); |
|
261 break; |
|
262 |
|
263 case EConfUnableToDeregister: |
|
264 mLoader->load(DOCML_UNABLE_TO_DEREGISTER_CONF, &ok); |
|
265 break; |
|
266 |
|
267 case EConfPhoneDeregistered: |
|
268 mLoader->load(DOCML_DEREGISTERED_CONF, &ok); |
|
269 break; |
|
270 |
|
271 case EConfRegUpdateFailure: |
|
272 mLoader->load(DOCML_UPDATE_FAILURE_CONF, &ok); |
|
273 break; |
|
274 |
|
275 case EConfAccountNotRecognized: |
|
276 mLoader->load(DOCML_NOT_RECOGNIZED_CONF, &ok); |
|
277 break; |
|
278 |
|
279 case EConfPhoneRegistered: |
|
280 mLoader->load(DOCML_REGISTERED_CONF, &ok); |
|
281 break; |
|
282 |
|
283 case EConfRegistrationUpdated: |
|
284 mLoader->load(DOCML_UPDATED_CONF, &ok); |
|
285 break; |
|
286 |
|
287 case EConfRegistrationFailure: |
|
288 mLoader->load(DOCML_REGISTER_FAILURE_CONF, &ok); |
|
289 break; |
|
290 |
|
291 case ENoteRightsObjReceived: |
|
292 mLoader->load(DOCML_RIGHTS_OBJECTS_RECIEVED_NOTE, &ok); |
|
293 break; |
|
294 |
|
295 case EProgDeregisteringPhone: |
|
296 mLoader->load(DOCML_DEREGISTERING_PROG, &ok); |
|
297 break; |
|
298 |
|
299 case EProgAcquiringLicence: |
|
300 mLoader->load(DOCML_ACQUIRING_LICENCE_PROG, &ok); |
|
301 break; |
|
302 |
|
303 case EProgRegisteringPhone: |
|
304 mLoader->load(DOCML_REGISTERING_PROG, &ok); |
|
305 break; |
|
306 case EProgUpdatingRegistration: |
|
307 mLoader->load(DOCML_UPDATING_PROG, &ok); |
|
308 break; |
|
309 |
|
310 //Notes are not defined in the locatization xls hence commented out |
|
311 /*case ENoteNoConnectionDefined: |
|
312 mLoader->load(DOCML_NO_CONNECTION_DEFINED, &ok); |
|
313 break; |
|
314 |
|
315 case ENoteInvalidOrNoAP: |
|
316 mLoader->load(DOCML_INVALID_OR_NO_AP, &ok); |
|
317 break; |
|
318 |
|
319 case ENoteOpeningFailPerm: |
|
320 mLoader->load(DOCML_OPENING_FAIL_PERM, &ok); |
|
321 break;*/ |
|
322 default: |
|
323 break; |
|
324 |
|
325 } |
|
326 if (ok) |
|
327 { |
|
328 QGraphicsWidget *widget = mLoader->findWidget(QString("dialog")); |
|
329 mDialog = qobject_cast<HbDialog*> (widget); |
|
330 switch (mQueryType) |
|
331 { |
|
332 //Cases for two push button dialogs |
|
333 case EQueryNoRightsObj: |
|
334 case EQueryFileLockedForSim: |
|
335 case EQueryRightsObjExpired: |
|
336 case EQueryCopyObjects: |
|
337 case EQueryDeleteDRMFile: |
|
338 case EQueryMoveObjects: |
|
339 case EQueryNoCount: |
|
340 case EQueryNoUsage: |
|
341 case EQuerySendUnprotectedObjs: |
|
342 case EQueryAccountUpdate: |
|
343 case EQueryRetryForLicence: |
|
344 case EQueryGetNewLicence: |
|
345 connect(qobject_cast<HbAction*> (mLoader->findObject( |
|
346 "secondary")), SIGNAL( |
|
347 triggered()), this, SLOT(cancelDialog())); |
|
348 connect(qobject_cast<HbAction*> (mLoader->findObject( |
|
349 "primary")), SIGNAL( |
|
350 triggered()), this, SLOT(confirmDialog())); |
|
351 mDialog->setTimeout(HbPopup::NoTimeout); |
|
352 mDialog->setDismissPolicy(HbPopup::NoDismiss); |
|
353 mDialog->setModal(true); |
|
354 break; |
|
355 |
|
356 //Cases single push button dialogs |
|
357 case EConfWaitingForLicence: |
|
358 case EConfDeleted: |
|
359 case EConfObjLocked: |
|
360 case EConfUnableToCopy: |
|
361 case EConfUnableToMove: |
|
362 case EConfUnsupportedObj: |
|
363 case EConfLicenceExpired: |
|
364 case EConfForwardProtected: |
|
365 case EConfUnableToSend: |
|
366 case EConfViewRestriction: |
|
367 case EConfUnableToDeregister: |
|
368 case EConfPhoneDeregistered: |
|
369 case EConfRegUpdateFailure: |
|
370 case EConfAccountNotRecognized: |
|
371 case EConfPhoneRegistered: |
|
372 case EConfRegistrationUpdated: |
|
373 case EConfRegistrationFailure: |
|
374 connect(qobject_cast<HbAction*> (mLoader->findObject( |
|
375 "primary")), SIGNAL( |
|
376 triggered()), this, SLOT(confirmDialog())); |
|
377 mDialog->setTimeout(HbPopup::NoTimeout); |
|
378 mDialog->setDismissPolicy(HbPopup::NoDismiss); |
|
379 mDialog->setModal(true); |
|
380 break; |
|
381 |
|
382 // Cases for progress bar or wait notes |
|
383 case EProgDeregisteringPhone: |
|
384 case EProgAcquiringLicence: |
|
385 case EProgRegisteringPhone: |
|
386 case EProgUpdatingRegistration: |
|
387 connect(qobject_cast<HbAction*> (mLoader->findObject( |
|
388 "primary")), SIGNAL( |
|
389 triggered()), this, SLOT(cancelDialog())); |
|
390 mDialog->setTimeout(HbPopup::NoTimeout); |
|
391 mDialog->setDismissPolicy(HbPopup::NoDismiss); |
|
392 mDialog->setModal(true); |
|
393 break; |
|
394 |
|
395 //DrmUi Notes |
|
396 //Notes are not defined in the locatization xls hence commented out |
|
397 // case ENoteNoConnectionDefined: |
|
398 // case ENoteInvalidOrNoAP: |
|
399 // case ENoteOpeningFailPerm: |
|
400 case ENoteRightsObjReceived: |
|
401 mDialog->setTimeout(HbPopup::StandardTimeout); |
|
402 mDialog->setDismissPolicy(HbPopup::NoDismiss); |
|
403 break; |
|
404 default: |
|
405 break; |
|
406 |
|
407 } |
|
408 } |
|
409 else |
|
410 { |
|
411 qFatal("Unable to load %S"); |
|
412 return EFalse; |
|
413 } |
|
414 } |
|
415 |
|
416 return ETrue; |
|
417 } |
|
418 /*! |
|
419 Handle secondary push button triggered |
|
420 */ |
|
421 void DrmUiDialogsBuilder::cancelDialog() |
|
422 { |
|
423 QVariantMap val; |
|
424 QVariant index(ECancelled); |
|
425 val.insert("result", index); |
|
426 emit deviceDialogData(val); |
|
427 emit deviceDialogClosed(); |
|
428 } |
|
429 /*! |
|
430 Handle Primary push button triggered |
|
431 */ |
|
432 void DrmUiDialogsBuilder::confirmDialog() |
|
433 { |
|
434 QVariantMap val; |
|
435 QVariant index(EOk); |
|
436 val.insert("result", index); |
|
437 emit deviceDialogData(val); |
|
438 emit deviceDialogClosed(); |
|
439 } |
|