17 |
17 |
18 #include "sifuidialog.h" // SifUiDialog |
18 #include "sifuidialog.h" // SifUiDialog |
19 #include "sifuidialogtitlewidget.h" // SifUiDialogTitleWidget |
19 #include "sifuidialogtitlewidget.h" // SifUiDialogTitleWidget |
20 #include "sifuidialogcontentwidget.h" // SifUiDialogContentWidget |
20 #include "sifuidialogcontentwidget.h" // SifUiDialogContentWidget |
21 #include "sifuidialoggrantcapabilities.h" // SifUiDialogGrantCapabilities |
21 #include "sifuidialoggrantcapabilities.h" // SifUiDialogGrantCapabilities |
22 #include "sifuiinstallindicatorparams.h" |
22 #include "sifuidialogselectlanguage.h" // SifUiDialogSelectLanguage |
|
23 #include "sifuiinstallindicatorparams.h" // KSifUiInstallIndicatorType |
23 #include <QFile> |
24 #include <QFile> |
24 #include <hblabel.h> |
25 #include <HbLabel> |
25 #include <hbaction.h> |
26 #include <HbAction> |
26 #include <hbindicator.h> |
27 #include <HbIndicator> |
27 #include <hbtranslator.h> |
28 #include <HbTranslator> |
28 #include <hbmessagebox.h> |
29 #include <HbMessageBox> |
29 #include <qvaluespacesubscriber.h> |
30 #include <HbSelectionDialog> |
|
31 #include <QValueSpaceSubscriber> |
30 #include <xqappmgr.h> // XQApplicationManager |
32 #include <xqappmgr.h> // XQApplicationManager |
31 |
33 |
32 QTM_USE_NAMESPACE |
34 QTM_USE_NAMESPACE |
33 |
35 |
34 const QString KTranslationsPath = "/resource/qt/translations/"; |
36 const QString KTranslationsPath = "/resource/qt/translations/"; |
35 const QString KSifUiTranslationsFile = "sifuidevicedialogplugin"; |
37 const QString KSifUiTranslationsFile = "sifuidevicedialogplugin"; |
36 const QString KCommonTranslationsFile = "common"; |
38 const QString KCommonTranslationsFile = "common"; |
37 const QString KSwiErrorsFile = "c:\\temp\\swierrors.txt"; |
39 const QString KSwiErrorsFile = "c:\\temp\\swierrors.txt"; |
38 const QString KSwiErrorFormat = " (%1)"; |
40 const QString KSwiErrorFormat = " (%1)"; |
39 |
41 |
|
42 #ifdef Q_OS_SYMBIAN |
|
43 QByteArray ConvertOptionalComponentIndexesL( const QList<QVariant> &aIndexes ); |
|
44 #endif // Q_OS_SYMBIAN |
|
45 |
|
46 |
|
47 // ======== LOCAL FUNCTIONS ======== |
|
48 |
|
49 // ---------------------------------------------------------------------------- |
|
50 // convertOptionalComponentIndexes() |
|
51 // ---------------------------------------------------------------------------- |
|
52 // |
|
53 QVariant convertOptionalComponentIndexes(const QList<QVariant> &selections) |
|
54 { |
|
55 #ifdef Q_OS_SYMBIAN |
|
56 QByteArray byteArray; |
|
57 QT_TRAP_THROWING( byteArray = ConvertOptionalComponentIndexesL( selections ) ); |
|
58 return QVariant( byteArray ); |
|
59 #else |
|
60 return QVariant(); |
|
61 #endif |
|
62 } |
|
63 |
|
64 |
|
65 // ======== MEMBER FUNCTIONS ======== |
40 |
66 |
41 // ---------------------------------------------------------------------------- |
67 // ---------------------------------------------------------------------------- |
42 // SifUiDialog::SifUiDialog() |
68 // SifUiDialog::SifUiDialog() |
43 // ---------------------------------------------------------------------------- |
69 // ---------------------------------------------------------------------------- |
44 // |
70 // |
235 case SifUiConfirmationQuery: |
261 case SifUiConfirmationQuery: |
236 //: Accepts the SW install confirmation query and starts installation. |
262 //: Accepts the SW install confirmation query and starts installation. |
237 mPrimaryAction = new HbAction(hbTrId("txt_common_button_ok")); |
263 mPrimaryAction = new HbAction(hbTrId("txt_common_button_ok")); |
238 addAction(mPrimaryAction); |
264 addAction(mPrimaryAction); |
239 disconnect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(close())); |
265 disconnect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(close())); |
240 connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleAccepted())); |
266 connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleInstallAccepted())); |
241 break; |
267 break; |
242 case SifUiProgressNote: |
268 case SifUiProgressNote: |
243 if (!parameters.contains(KSifUiProgressNoteIsHideButtonHidden)) { |
269 if (!parameters.contains(KSifUiProgressNoteIsHideButtonHidden)) { |
244 //: Hides the progress dialog. Progress note moves into universal indicator. |
270 //: Hides the progress dialog. Progress note moves into universal indicator. |
245 mPrimaryAction = new HbAction(hbTrId("txt_common_button_hide")); |
271 mPrimaryAction = new HbAction(hbTrId("txt_common_button_hide")); |
281 if (!parameters.contains(KSifUiProgressNoteIsCancelButtonHidden)) { |
307 if (!parameters.contains(KSifUiProgressNoteIsCancelButtonHidden)) { |
282 //: Cancels the SW install confirmation query and closes the dialog. |
308 //: Cancels the SW install confirmation query and closes the dialog. |
283 mSecondaryAction = new HbAction(hbTrId("txt_common_button_cancel")); |
309 mSecondaryAction = new HbAction(hbTrId("txt_common_button_cancel")); |
284 addAction(mSecondaryAction); |
310 addAction(mSecondaryAction); |
285 disconnect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(close())); |
311 disconnect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(close())); |
286 connect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(handleCancelled())); |
312 connect(mSecondaryAction, SIGNAL(triggered()), |
|
313 this, SLOT(handleInstallCancelled())); |
287 } |
314 } |
288 break; |
315 break; |
289 case SifUiCompleteNote: |
316 case SifUiCompleteNote: |
290 case SifUiErrorNote: |
317 case SifUiErrorNote: |
291 //: Closes the dialog. Control returns back to where the installation was started. |
318 //: Closes the dialog. Control returns back to where the installation was started. |
326 // SifUiDialog::displayAdditionalQuery() |
353 // SifUiDialog::displayAdditionalQuery() |
327 // ---------------------------------------------------------------------------- |
354 // ---------------------------------------------------------------------------- |
328 // |
355 // |
329 bool SifUiDialog::displayAdditionalQuery(const QVariantMap ¶meters) |
356 bool SifUiDialog::displayAdditionalQuery(const QVariantMap ¶meters) |
330 { |
357 { |
|
358 if (displayGrantCapabilitiesQuery(parameters) || |
|
359 displaySelectLanguageQuery(parameters) || |
|
360 displaySelectOptionsQuery(parameters)) { |
|
361 return true; |
|
362 } |
|
363 return false; |
|
364 } |
|
365 |
|
366 // ---------------------------------------------------------------------------- |
|
367 // SifUiDialog::displayGrantCapabilitiesQuery() |
|
368 // ---------------------------------------------------------------------------- |
|
369 // |
|
370 bool SifUiDialog::displayGrantCapabilitiesQuery(const QVariantMap ¶meters) |
|
371 { |
331 if (parameters.contains(KSifUiGrantCapabilities)) { |
372 if (parameters.contains(KSifUiGrantCapabilities)) { |
332 SifUiDialogGrantCapabilities *dlg = new SifUiDialogGrantCapabilities( |
373 SifUiDialogGrantCapabilities *dlg = new SifUiDialogGrantCapabilities( |
333 mContent->applicationName(), parameters.value(KSifUiGrantCapabilities)); |
374 mContent->applicationName(), parameters.value(KSifUiGrantCapabilities)); |
|
375 dlg->setAttribute(Qt::WA_DeleteOnClose, true); |
334 connect(dlg, SIGNAL(accepted()), this, SLOT(handleCapabilitiesGranted())); |
376 connect(dlg, SIGNAL(accepted()), this, SLOT(handleCapabilitiesGranted())); |
335 connect(dlg, SIGNAL(declined()), this, SLOT(handleCapabilitiesDenied())); |
377 connect(dlg, SIGNAL(rejected()), this, SLOT(handleAdditionalDialogClosed())); |
336 dlg->setAttribute(Qt::WA_DeleteOnClose, true); |
|
337 dlg->open(); |
378 dlg->open(); |
338 return true; |
379 return true; |
339 } |
380 } |
340 return false; |
381 return false; |
341 } |
382 } |
342 |
383 |
343 // ---------------------------------------------------------------------------- |
384 // ---------------------------------------------------------------------------- |
|
385 // SifUiDialog::displaySelectLanguageQuery() |
|
386 // ---------------------------------------------------------------------------- |
|
387 // |
|
388 bool SifUiDialog::displaySelectLanguageQuery(const QVariantMap ¶meters) |
|
389 { |
|
390 if (parameters.contains(KSifUiSelectableLanguages)) { |
|
391 SifUiDialogSelectLanguage *dlg = new SifUiDialogSelectLanguage( |
|
392 parameters.value(KSifUiSelectableLanguages)); |
|
393 dlg->setAttribute(Qt::WA_DeleteOnClose, true); |
|
394 connect(dlg, SIGNAL(languageSelected(int)), |
|
395 this, SLOT(handleLanguageSelected(int))); |
|
396 connect(dlg, SIGNAL(languageSelectionCancelled()), |
|
397 this, SLOT(handleAdditionalDialogClosed())); |
|
398 dlg->open(); |
|
399 return true; |
|
400 } |
|
401 return false; |
|
402 } |
|
403 |
|
404 // ---------------------------------------------------------------------------- |
|
405 // SifUiDialog::displaySelectOptionsQuery() |
|
406 // ---------------------------------------------------------------------------- |
|
407 // |
|
408 bool SifUiDialog::displaySelectOptionsQuery(const QVariantMap ¶meters) |
|
409 { |
|
410 if (parameters.contains(KSifUiSelectableOptions)) { |
|
411 HbSelectionDialog *dlg = new HbSelectionDialog; |
|
412 dlg->setAttribute(Qt::WA_DeleteOnClose, true); |
|
413 |
|
414 // TODO: localized UI string needed |
|
415 HbLabel *title = new HbLabel("Items to install:"); |
|
416 dlg->setHeadingWidget(title); |
|
417 |
|
418 dlg->setStringItems(parameters.value(KSifUiSelectableOptions).toStringList()); |
|
419 dlg->setSelectionMode(HbAbstractItemView::MultiSelection); |
|
420 |
|
421 dlg->open(this, SLOT(handleOptionsDialogClosed(int))); |
|
422 return true; |
|
423 } |
|
424 return false; |
|
425 } |
|
426 |
|
427 // ---------------------------------------------------------------------------- |
344 // SifUiDialog::sendResult() |
428 // SifUiDialog::sendResult() |
345 // ---------------------------------------------------------------------------- |
429 // ---------------------------------------------------------------------------- |
346 // |
430 // |
347 void SifUiDialog::sendResult(SifUiDeviceDialogReturnValue value) |
431 void SifUiDialog::sendResult(SifUiDeviceDialogReturnValue value) |
348 { |
432 { |
349 mResultMap[KSifUiQueryReturnValue] = QVariant(value); |
433 mResultMap[KSifUiQueryReturnValue] = QVariant(value); |
350 emit deviceDialogData(mResultMap); |
434 emit deviceDialogData(mResultMap); |
351 } |
435 } |
352 |
436 |
353 // ---------------------------------------------------------------------------- |
437 // ---------------------------------------------------------------------------- |
354 // SifUiDialog::handleAccepted() |
438 // SifUiDialog::handleInstallAccepted() |
355 // ---------------------------------------------------------------------------- |
439 // ---------------------------------------------------------------------------- |
356 // |
440 // |
357 void SifUiDialog::handleAccepted() |
441 void SifUiDialog::handleInstallAccepted() |
358 { |
442 { |
359 mContent->changeType(SifUiProgressNote); |
443 mContent->changeType(SifUiProgressNote); |
360 sendResult(SifUiContinue); |
444 sendResult(SifUiContinue); |
361 } |
445 } |
362 |
446 |
363 // ---------------------------------------------------------------------------- |
447 // ---------------------------------------------------------------------------- |
364 // SifUiDialog::handleCancelled() |
448 // SifUiDialog::handleInstallCancelled() |
365 // ---------------------------------------------------------------------------- |
449 // ---------------------------------------------------------------------------- |
366 // |
450 // |
367 void SifUiDialog::handleCancelled() |
451 void SifUiDialog::handleInstallCancelled() |
368 { |
452 { |
369 sendResult(SifUiCancel); |
453 sendResult(SifUiCancel); |
370 close(); |
454 close(); |
371 } |
455 } |
372 |
456 |
437 { |
521 { |
438 sendResult(SifUiContinue); |
522 sendResult(SifUiContinue); |
439 } |
523 } |
440 |
524 |
441 // ---------------------------------------------------------------------------- |
525 // ---------------------------------------------------------------------------- |
442 // SifUiDialog::handleCapabilitiesDenied() |
526 // SifUiDialog::handleAdditionalDialogClosed() |
443 // ---------------------------------------------------------------------------- |
527 // ---------------------------------------------------------------------------- |
444 // |
528 // |
445 void SifUiDialog::handleCapabilitiesDenied() |
529 void SifUiDialog::handleAdditionalDialogClosed() |
446 { |
530 { |
447 sendResult(SifUiCancel); |
531 sendResult(SifUiCancel); |
448 } |
532 } |
449 |
533 |
|
534 // ---------------------------------------------------------------------------- |
|
535 // SifUiDialog::handleLanguageSelected() |
|
536 // ---------------------------------------------------------------------------- |
|
537 // |
|
538 void SifUiDialog::handleLanguageSelected(int index) |
|
539 { |
|
540 mResultMap[KSifUiSelectedLanguageIndex] = QVariant(index); |
|
541 sendResult(SifUiContinue); |
|
542 } |
|
543 |
|
544 // ---------------------------------------------------------------------------- |
|
545 // SifUiDialog::handleOptionsDialogClosed() |
|
546 // ---------------------------------------------------------------------------- |
|
547 // |
|
548 void SifUiDialog::handleOptionsDialogClosed(int code) |
|
549 { |
|
550 if (code == HbDialog::Accepted) { |
|
551 HbSelectionDialog *dlg = reinterpret_cast<HbSelectionDialog*>(sender()); |
|
552 QList<QVariant> selections = dlg->selectedItems(); |
|
553 mResultMap[KSifUiSelectedOptions] = convertOptionalComponentIndexes(selections); |
|
554 sendResult(SifUiContinue); |
|
555 } else { |
|
556 sendResult(SifUiCancel); |
|
557 } |
|
558 } |
|
559 |