appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp
changeset 64 48c14c385b0e
parent 58 67f2119dc623
equal deleted inserted replaced
58:67f2119dc623 64:48c14c385b0e
    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 &parameters)
   356 bool SifUiDialog::displayAdditionalQuery(const QVariantMap &parameters)
   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 &parameters)
       
   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 &parameters)
       
   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 &parameters)
       
   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