--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationcontentwidget.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*
-* Description: SecUi notification content widget.
-*
-*/
-
-#include "secuinotificationdebug.h"
-#include "secuinotificationcontentwidget.h"
-#include "secuinotificationdialogpluginkeys.h"
-#include <QGraphicsLinearLayout>
-#include <QToolButton>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbiconitem.h>
-#include <hbcombobox.h>
-#include <hblineedit.h>
-#include <hbinputeditorinterface.h>
-#include <QDebug>
-
-#include <HbCheckBox> // needed for a checkbox dialog
-#include <HbListWidget> // needed for multicheckbox dialog
-#include <HbListWidgetItem>
-#include <HbAbstractItemView>
-#include <HbEmailAddressFilter>
-
-#define ESecUiCancelSupported 0x1000000
-#define ESecUiCancelNotSupported 0x0000000
-
-#define ESecUiEmergencySupported 0x2000000
-#define ESecUiEmergencyNotSupported 0x0000000
-
-#define ESecUiAlphaSupported 0x4000000
-#define ESecUiAlphaNotSupported 0x0000000
-
-#define ESecUiSecretSupported 0x8000000
-#define ESecUiSecretNotSupported 0x0000000
-
-#define ESecUiMaskFlags 0xFF000000
-#define ESecUiMaskType 0x00FFFFFF
-
-#define ESecUiTypeDeviceLock 0x00100000
-#define ESecUiTypeKeyguard 0x00200000
-#define ESecUiTypeClock 0x00300000
-#define ESecUiTypeScreensaver 0x00400000
-
-#define ESecUiTypeMaskLock 0x00F00000
-
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationContentWidget::SecUiNotificationContentWidget()
-// ----------------------------------------------------------------------------
-//
-SecUiNotificationContentWidget::SecUiNotificationContentWidget(
- QGraphicsItem *parent, Qt::WindowFlags flags) : HbWidget(parent, flags)
-{
- RDEBUG("0", 0);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationContentWidget::~SecUiNotificationContentWidget()
-// ----------------------------------------------------------------------------
-//
-SecUiNotificationContentWidget::~SecUiNotificationContentWidget()
-{
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationContentWidget::constructFromParameters()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationContentWidget::constructFromParameters(const QVariantMap ¶meters)
-{
- RDEBUG("0", 0);
- RDEBUGQT("parameters", parameters);
- QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical);
-
- lMinLength = 4; // might be replaced later
- lMaxLength = 8; // might be replaced later
- queryDual=0;
- isEmergency=0;
- codeTop=0;
-
- // KApplicationSize
- if (parameters.contains(KQueryType)) {
- RDEBUG("0", 0);
- queryType = parameters.value(KQueryType).toUInt();
- RDEBUG("queryType", queryType);
- if( (queryType & ESecUiTypeMaskLock) )
- {
- RDEBUG("KQueryType=ESecUiTypeMaskLock", queryType);
- // showing "Lock" icon. All other params are irrelevant. codeTop is not even created
-
- HbLabel *iconLabel = new HbLabel("Locked");
- HbIcon *icon = new HbIcon("qtg_large_device_lock");
- // iconLabel->setAspectRatioMode(Qt::IgnoreAspectRatio);
- // iconLabel->setGeometry(QRectF(QPointF(10,10),QSizeF(300,300)));
- iconLabel->setIcon(*icon);
- if( (queryType & ESecUiTypeMaskLock)==ESecUiTypeDeviceLock )
- { // really big icon for the devicelock
- iconLabel->setPreferredHeight(500);
- iconLabel->setPreferredWidth(500);
- }
- else if( (queryType & ESecUiTypeMaskLock)==ESecUiTypeKeyguard )
- { // smaller icon for the keyguard
- iconLabel->setPreferredHeight(100);
- iconLabel->setPreferredWidth(100);
- }
-
- // icon->setWidth(300);
- // icon->setHeight(350);
- // icon->setGeometry(QRectF(QPointF(10,10),QSizeF(500,300)));
- // icon->setSize(QSizeF(300,300));
-
- mainLayout->addItem(iconLabel);
- mainLayout->setAlignment(iconLabel, Qt::AlignCenter );
- // mainLayout->setGeometry(QRectF(QPointF(10,10),QSizeF(300,300)));
-
- /*
- QToolButton* mLabelIcon = new QToolButton;
- mLabelIcon->setIcon(QIcon(":/AutolockSrv_hbicon/qtg_large_device_lock.svg"));
- mLabelIcon->setIconSize(QSize(300,300));
- HbLabel *iconLabel = new HbLabel("Locked");
- iconLabel->setIcon(*mLabelIcon);
- mainLayout->addItem(iconLabel);
- */
-
- // mainLayout->setContentsMargins(10,10,300,500); // this makes the dialog really big
- setLayout(mainLayout); // same as at the end
- return;
- }
- // not ESecUiTypeMaskLock
- lEmergencySupported = ESecUiEmergencyNotSupported;
- if((queryType & ESecUiEmergencySupported)==ESecUiEmergencySupported)
- {
- lEmergencySupported = ESecUiEmergencySupported;
- }
- RDEBUG("lEmergencySupported", lEmergencySupported);
- }
-
- if (parameters.contains(KQueryMinLength)) {
- RDEBUG("KQueryMinLength", 0);
- lMinLength = parameters.value(KQueryMinLength).toUInt();
- RDEBUG("lMinLength", lMinLength);
- }
- if (parameters.contains(KQueryMaxLength)) {
- RDEBUG("KQueryMaxLength", 0);
- lMaxLength = parameters.value(KQueryMaxLength).toUInt();
- RDEBUG("lMaxLength", lMaxLength);
- }
-
- if (parameters.contains(KEmergency)) {
- RDEBUG("KEmergency", 0);
- QString emergencyText = parameters.value(KEmergency).toString();
- RDEBUGQT("emergencyText", emergencyText);
- if(!emergencyText.compare("emergencyYes"))
- {
- RDEBUG("emergencyYes", 1);
- isEmergency = 1;
- }
- if(!emergencyText.compare("emergencyNo"))
- {
- RDEBUG("emergencyNo", 0);
- isEmergency = 0;
- }
- }
-
-
- // KCodeTop
- if (parameters.contains(KCodeTop)) {
- RDEBUG("KCodeTop", 0);
- codeTop = new HbLineEdit(""); // no default value
- RDEBUG("queryType", queryType);
- codeTop->setInputMethodHints(Qt::ImhDigitsOnly); // default
- if (queryType & ESecUiAlphaSupported)
- {
- RDEBUG("ESecUiAlphaSupported", ESecUiAlphaSupported);
- codeTop->setInputMethodHints(Qt::ImhNone);
- }
- if (queryType & ESecUiSecretSupported)
- {
- RDEBUG("ESecUiSecretSupported", ESecUiSecretSupported);
- codeTop->setEchoMode(HbLineEdit::PasswordEchoOnEdit);
- }
- RDEBUG("lMaxLength", lMaxLength);
- if(lMaxLength>2)
- codeTop->setMaxLength(lMaxLength);
-
- if (parameters.contains(KDefaultCode)) {
- RDEBUG("KDefaultCode", 0);
- QString defaultCode = parameters.value(KDefaultCode).toString();
- RDEBUGQT("defaultCode", defaultCode);
- codeTop->setText(defaultCode);
- }
- 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)
- RDEBUG("KDefaultCode", 0);
- QString defaultCode = parameters.value(KDefaultCode).toString();
- RDEBUGQT("defaultCode", defaultCode);
- codeTop->setText(defaultCode);
- }
- RDEBUG("2", 2);
-
- if (parameters.contains(KDialogTitle)) {
- QString titleText = parameters.value(KDialogTitle).toString();
- QString titleAttempts = "";
- if(titleText.indexOf('|')>0)
- { // if separator, take only first part
- titleText = titleText.left(titleText.indexOf('|'));
- }
- if(titleText.indexOf('$')>0)
- { // if separator, take only first part
- // 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('$')); // 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))
- {
- queryDual=1;
- QString titleText = parameters.value(KDialogTitle).toString();
- 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);
- }
-
- codeBottom = new HbLineEdit(""); // no default value
- if(lMaxLength>2)
- codeBottom->setMaxLength(lMaxLength);
- codeBottom->setInputMethodHints(Qt::ImhDigitsOnly); // default
- if (queryType & ESecUiAlphaSupported)
- {
- RDEBUG("setInputMethodHints", 0);
- codeBottom->setInputMethodHints(Qt::ImhNone);
- }
- 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);
- }
-
- QGraphicsLinearLayout *mainLayoutButtons = new QGraphicsLinearLayout(Qt::Horizontal);
- HbPushButton *but1 = new HbPushButton("1234");
- HbPushButton *but2 = new HbPushButton("+1");
- HbPushButton *but3 = new HbPushButton("+5");
- connect(but1, SIGNAL(clicked()), this, SIGNAL(but1Changed()));
- connect(but2, SIGNAL(clicked()), this, SIGNAL(but2Changed()));
- connect(but3, SIGNAL(clicked()), this, SIGNAL(but3Changed()));
- #if defined(_DEBUG)
- mainLayoutButtons->addItem(but1);
- mainLayoutButtons->addItem(but2);
- mainLayoutButtons->addItem(but3);
- #endif
-
- mainLayout->addItem(mainLayoutButtons);
-
- // remove setFocus from PIN query because Orbit can't handle it
- // codeTop->setFocus(); // this should open the VKB
-
- }
-
- if (parameters.contains(KChecboxType)) {
- RDEBUG("KChecboxType", 0);
- if (parameters.contains(KDialogTitle)) {
- //TODO position of the label is not centered
- QString tmpText=parameters.value(KDialogTitle).toString();
- if (tmpText.endsWith("\n")) tmpText=tmpText.left(tmpText.length()-1);
- DialogText= new HbLabel(tmpText);
- DialogText->setTextWrapping(Hb::TextWordWrap);
- DialogText->setAlignment(Qt::AlignVCenter);
- mainLayout->addItem(DialogText);
- }
-
- checkbox = new HbCheckBox("Caption");
- if (parameters.contains(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))
- {
- RDEBUG("KMultiChecboxType", 0);
- QStringList list1 = parameters.value(KDefaultCode).toString().split("1\t");
- if (!list1.isEmpty()) {
- listWidget = new HbListWidget();
- for (int i = 0; (i < list1.count()); i++)
- 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);
- listWidget->setSelectionMode(HbAbstractItemView::MultiSelection);
- //listWidget->setClampingStyle(HbScrollArea::BounceBackClamping);
- listWidget->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded);
- listWidget->setMaximumHeight(150);
- mainLayout->addItem(listWidget);
- // delete listWidget;
- }
- }
-
- setLayout(mainLayout);
- }
-