diff -r e0432375ea67 -r 5d3e34b7618a securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationcontentwidget.cpp --- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationcontentwidget.cpp Tue Jul 06 15:15:05 2010 +0300 +++ b/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationcontentwidget.cpp Wed Aug 18 10:40:08 2010 +0300 @@ -83,7 +83,7 @@ void SecUiNotificationContentWidget::constructFromParameters(const QVariantMap ¶meters) { RDEBUG("0", 0); - qDebug() << parameters; + RDEBUGQT("parameters", parameters); QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical); lMinLength = 4; // might be replaced later @@ -146,32 +146,32 @@ { lEmergencySupported = ESecUiEmergencySupported; } - qDebug() << "SecUiNotificationContentWidget::lEmergencySupported =" << lEmergencySupported; + RDEBUG("lEmergencySupported", lEmergencySupported); } if (parameters.contains(KQueryMinLength)) { - qDebug() << "SecUiNotificationContentWidget::KQueryMinLength"; + RDEBUG("KQueryMinLength", 0); lMinLength = parameters.value(KQueryMinLength).toUInt(); - qDebug() << lMinLength; + RDEBUG("lMinLength", lMinLength); } if (parameters.contains(KQueryMaxLength)) { - qDebug() << "SecUiNotificationContentWidget::KQueryMaxLength"; + RDEBUG("KQueryMaxLength", 0); lMaxLength = parameters.value(KQueryMaxLength).toUInt(); - qDebug() << lMaxLength; + RDEBUG("lMaxLength", lMaxLength); } if (parameters.contains(KEmergency)) { - qDebug() << "SecUiNotificationContentWidget::KEmergency"; + RDEBUG("KEmergency", 0); QString emergencyText = parameters.value(KEmergency).toString(); - qDebug() << emergencyText; + RDEBUGQT("emergencyText", emergencyText); if(!emergencyText.compare("emergencyYes")) { - qDebug() << "SecUiNotificationContentWidget::KEmergency emergencyYes"; + RDEBUG("emergencyYes", 1); isEmergency = 1; } if(!emergencyText.compare("emergencyNo")) { - qDebug() << "SecUiNotificationContentWidget::KEmergency emergencyNo"; + RDEBUG("emergencyNo", 0); isEmergency = 0; } } @@ -179,47 +179,42 @@ // KCodeTop if (parameters.contains(KCodeTop)) { - qDebug() << "SecUiNotificationContentWidget::KCodeTop 1"; + RDEBUG("KCodeTop", 0); codeTop = new HbLineEdit(""); // no default value - qDebug() << "SecUiNotificationContentWidget::KCodeTop lMaxLength="; - qDebug() << lMaxLength; - if(lMaxLength>2) - codeTop->setMaxLength(lMaxLength); - qDebug() << "SecUiNotificationContentWidget::KCodeTop queryType="; - qDebug() << queryType; + RDEBUG("queryType", queryType); codeTop->setInputMethodHints(Qt::ImhDigitsOnly); // default if (queryType & ESecUiAlphaSupported) { - qDebug() << "SecUiNotificationContentWidget::KCodeTop setUpAsLatinAlphabetOnlyEditor"; + RDEBUG("ESecUiAlphaSupported", ESecUiAlphaSupported); codeTop->setInputMethodHints(Qt::ImhNone); } if (queryType & ESecUiSecretSupported) { - qDebug() << "SecUiNotificationContentWidget::KCodeTop ESecUiSecretSupported"; + RDEBUG("ESecUiSecretSupported", ESecUiSecretSupported); codeTop->setEchoMode(HbLineEdit::PasswordEchoOnEdit); - // note that codeButtom is never in secret mode. This nevertheless is restricted by the caller. } - qDebug() << "SecUiNotificationContentWidget::KCodeTop 3"; - codeTop->setMaxLength(lMaxLength); + RDEBUG("lMaxLength", lMaxLength); + if(lMaxLength>2) + codeTop->setMaxLength(lMaxLength); if (parameters.contains(KDefaultCode)) { - qDebug() << "SecUiNotificationContentWidget::KDefaultCode"; + RDEBUG("KDefaultCode", 0); QString defaultCode = parameters.value(KDefaultCode).toString(); - qDebug() << defaultCode; + RDEBUGQT("defaultCode", defaultCode); codeTop->setText(defaultCode); } - qDebug() << "SecUiNotificationContentWidget::KCodeTop 4"; + RDEBUG("1", 1); connect(codeTop, SIGNAL(textChanged(const QString &)), this, SIGNAL(codeTopChanged(const QString &))); connect(codeTop, SIGNAL(contentsChanged()), this, SIGNAL(codeTopContentChanged())); if (parameters.contains(KDefaultCode)) { // this is done in this step so that the OK becomes valid (if rules are fulfilled) - qDebug() << "SecUiNotificationContentWidget::KDefaultCode"; + RDEBUG("KDefaultCode", 0); QString defaultCode = parameters.value(KDefaultCode).toString(); - qDebug() << defaultCode; + RDEBUGQT("defaultCode", defaultCode); codeTop->setText(defaultCode); } - qDebug() << "SecUiNotificationContentWidget::KCodeTop 4"; + RDEBUG("2", 2); if (parameters.contains(KDialogTitle)) { QString titleText = parameters.value(KDialogTitle).toString(); @@ -228,21 +223,43 @@ { // if separator, take only first part titleText = titleText.left(titleText.indexOf('|')); } - if(titleText.indexOf('#')>0) + if(titleText.indexOf('$')>0) { // if separator, take only first part - titleAttempts = titleText.right(titleText.length()-titleText.indexOf('#')-1); - qDebug() << "SecUiNotificationDialog::titleAttempts=" << titleAttempts; + // it comes translated alredy, from the client + titleAttempts = titleText.right(titleText.length()-titleText.indexOf('$')-1); + RDEBUGQT("titleAttempts", titleAttempts); int nAttempts = titleAttempts.toInt(); RDEBUG("nAttempts", nAttempts); - titleText = titleText.left(titleText.indexOf('#')); - if(nAttempts>0) - titleText = titleText + " attempts=" + QString::number(nAttempts); - } + titleText = titleText.left(titleText.indexOf('$')); // this comes translated already + if(nAttempts==1) // last attempt + { + // This must be in a new line, to avoid problems with left-to-right writing + titleAttempts = hbTrId("txt_pin_code_dpophead_last_attempt"); + } + else if(nAttempts>0) + { + titleAttempts = hbTrId("attempts") + "=" + QString::number(nAttempts); + // TODO this requires %L1 localization using txt_pin_code_dpopinfo_ln_attempts_remaining + } + else if(nAttempts==0) + { + titleAttempts = ""; // something special for the last attempt ? + } + else + { + titleAttempts = ""; + } + } HbLabel *titleTop = new HbLabel(titleText); mainLayout->addItem(titleTop); + if (titleAttempts.length()>0 ) + { + HbLabel *titleTopAttemps = new HbLabel(titleAttempts); + mainLayout->addItem(titleTopAttemps); + } // in the dialog, it was setHeadingWidget(title); } - + RDEBUG("3", 3); mainLayout->addItem(codeTop); // double-query if (parameters.contains(KCodeBottom)) @@ -252,6 +269,7 @@ if(titleText.indexOf('|')>0) { // if no separator, don't create label QString titleBottomStr = titleText.right(titleText.length()-titleText.indexOf('|')-1); + // no need to translate HbLabel *titleBottom = new HbLabel(titleBottomStr); mainLayout->addItem(titleBottom); } @@ -262,10 +280,15 @@ codeBottom->setInputMethodHints(Qt::ImhDigitsOnly); // default if (queryType & ESecUiAlphaSupported) { - qDebug() << "SecUiNotificationContentWidget::KCodeBottom setUpAsLatinAlphabetOnlyEditor"; + RDEBUG("setInputMethodHints", 0); codeBottom->setInputMethodHints(Qt::ImhNone); } - qDebug() << "SecUiNotificationContentWidget::KCodeBottom 3"; + if (queryType & ESecUiSecretSupported) + { + RDEBUG("ESecUiSecretSupported", 0); + codeBottom->setEchoMode(HbLineEdit::PasswordEchoOnEdit); // this will also remove predictive, which is what we want + } + RDEBUG("connecting", 0); connect(codeBottom, SIGNAL(textChanged(const QString &)), this, SIGNAL(codeBottomChanged(const QString &))); connect(codeBottom, SIGNAL(contentsChanged(const QString &)), this, SIGNAL(codeBottomChanged(const QString &))); mainLayout->addItem(codeBottom); @@ -286,12 +309,13 @@ mainLayout->addItem(mainLayoutButtons); - codeTop->setFocus(); // this should open the VKB + // remove setFocus from PIN query because Orbit can't handle it + // codeTop->setFocus(); // this should open the VKB } if (parameters.contains(KChecboxType)) { - qDebug() << "SecUiNotificationContentWidget::KChecboxType"; + RDEBUG("KChecboxType", 0); if (parameters.contains(KDialogTitle)) { //TODO position of the label is not centered QString tmpText=parameters.value(KDialogTitle).toString(); @@ -304,20 +328,20 @@ checkbox = new HbCheckBox("Caption"); if (parameters.contains(KDefaultCode)) { - qDebug() << "SecUiNotificationContentWidget::KDefaultCode"; + RDEBUG("KDefaultCode", 0); QStringList list1 = parameters.value(KDefaultCode).toString().split("|"); if (!list1.isEmpty() && list1.count()==2) { if (!list1[0].isNull() && !list1[0].isEmpty()) checkbox->setText(list1[0]); if (!list1[1].isNull() && !list1[1].isEmpty()) checkbox->setChecked(list1[1].toInt()); } - + // TODO this needs localization } mainLayout->addItem(checkbox); } if (parameters.contains(KMultiChecboxType) && parameters.contains(KDefaultCode)) { - qDebug() << "SecUiNotificationContentWidget::KMultiChecboxType"; + RDEBUG("KMultiChecboxType", 0); QStringList list1 = parameters.value(KDefaultCode).toString().split("1\t"); if (!list1.isEmpty()) { listWidget = new HbListWidget(); @@ -325,6 +349,7 @@ if (!list1[i].isEmpty() && !list1[i].isNull()) { HbListWidgetItem* modelItem = new HbListWidgetItem(); modelItem->setData(QVariant(list1[i]), Qt::DisplayRole); + // TODO this needs localization listWidget->addItem(modelItem); } listWidget->setCurrentRow(0);