locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/posverificationcustomdialog.cpp
branchRCL_3
changeset 44 2b4ea9893b66
equal deleted inserted replaced
42:02ba3f1733c6 44:2b4ea9893b66
       
     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: This implements the custom dialog for positioning verification dialogs
       
    15  *
       
    16  */
       
    17 
       
    18 #include "posverificationcustomdialog.h"
       
    19 #include "customdocumentloader.h"
       
    20 
       
    21 #include <QtDebug>
       
    22 #include <qgraphicsgridlayout.h>
       
    23 #include <qsizepolicy.h>
       
    24 
       
    25 //---------------------------------------------------------------
       
    26 //PosVerificationCustomDialog::PosVerificationCustomDialog
       
    27 //---------------------------------------------------------------
       
    28 PosVerificationCustomDialog::PosVerificationCustomDialog() :
       
    29     mHeadingLabel(NULL), mPrimaryAction(NULL), mQueryText(NULL), mQueryText2(
       
    30             NULL), mRequestorList(NULL), mRequestorListItems(NULL),
       
    31             mSecondryAction(NULL)
       
    32     {
       
    33     qDebug() << "PosVerificationCustomDialog::PosVerificationCustomDialog()";
       
    34     }
       
    35 
       
    36 //---------------------------------------------------------------
       
    37 //PosVerificationCustomDialog::~PosVerificationCustomDialog
       
    38 //---------------------------------------------------------------
       
    39 PosVerificationCustomDialog::~PosVerificationCustomDialog()
       
    40     {
       
    41     qDebug()
       
    42             << "+PosVerificationCustomDialog::~PosVerificationCustomDialog()";
       
    43     delete mQueryText2;
       
    44     mQueryText2 = NULL;
       
    45 
       
    46     qDebug()
       
    47             << "-PosVerificationCustomDialog::~PosVerificationCustomDialog()";
       
    48     }
       
    49 
       
    50 //---------------------------------------------------------------
       
    51 //PosVerificationCustomDialog::setProperties
       
    52 // Set properties
       
    53 //---------------------------------------------------------------
       
    54 
       
    55 bool PosVerificationCustomDialog::setProperties(const QVariantMap& parameters)
       
    56     {
       
    57     qDebug() << "+PosVerificationCustomDialog::setProperties()";
       
    58     QVariantMap::const_iterator i = parameters.constBegin();
       
    59     while (i != parameters.constEnd())
       
    60         {
       
    61         QByteArray key = i.key().toAscii();
       
    62         qDebug() << "-PosVerificationCustomDialog::setProperties(): Key is "
       
    63                 << key;
       
    64         qDebug() << "-PosVerificationCustomDialog::setProperties(): data is "
       
    65                 << key.constData();
       
    66         //check for the validity of the data
       
    67         if (property(key.constData()).isValid())
       
    68             {
       
    69             //sets the property values
       
    70             setProperty(key.constData(), i.value());
       
    71             }
       
    72         else
       
    73             {
       
    74             qDebug()
       
    75                     << "-PosVerificationCustomDialog::setProperties(): value - false";
       
    76             return false;
       
    77             }
       
    78         ++i;
       
    79         }
       
    80     qDebug() << "-PosVerificationCustomDialog::setProperties()";
       
    81     return true;
       
    82     }
       
    83 
       
    84 //---------------------------------------------------------------
       
    85 //PosVerificationCustomDialog::setDeviceDialogParameters
       
    86 //---------------------------------------------------------------
       
    87 bool PosVerificationCustomDialog::setDeviceDialogParameters(
       
    88         const QVariantMap &parameters)
       
    89     {
       
    90     qDebug() << "+PosVerificationCustomDialog::setDeviceDialogParameters()";
       
    91     setModal(true);
       
    92     setTimeout(HbPopup::NoTimeout);
       
    93     qDebug() << "-PosVerificationCustomDialog::setDeviceDialogParameters()";
       
    94     return setProperties(parameters);
       
    95     }
       
    96 
       
    97 //---------------------------------------------------------------
       
    98 //PosVerificationCustomDialog::deviceDialogError
       
    99 //---------------------------------------------------------------
       
   100 int PosVerificationCustomDialog::deviceDialogError() const
       
   101     {
       
   102     qDebug() << "PosVerificationCustomDialog::deviceDialogError()";
       
   103     return 0;
       
   104     }
       
   105 
       
   106 //---------------------------------------------------------------
       
   107 //PosVerificationCustomDialog::closeDeviceDialog
       
   108 //---------------------------------------------------------------
       
   109 void PosVerificationCustomDialog::closeDeviceDialog(bool byClient)
       
   110     {
       
   111     qDebug() << "+PosVerificationCustomDialog::closeDeviceDialog()";
       
   112     Q_UNUSED(byClient);
       
   113     close();
       
   114     emit
       
   115     deviceDialogClosed();
       
   116     qDebug() << "-PosVerificationCustomDialog::closeDeviceDialog()";
       
   117     }
       
   118 
       
   119 //---------------------------------------------------------------
       
   120 //PosVerificationCustomDialog::deviceDialogWidget
       
   121 //---------------------------------------------------------------
       
   122 HbPopup* PosVerificationCustomDialog::deviceDialogWidget() const
       
   123     {
       
   124     qDebug() << "PosVerificationCustomDialog::deviceDialogWidget()";
       
   125     return const_cast<PosVerificationCustomDialog*> (this);
       
   126     }
       
   127 
       
   128 //---------------------------------------------------------------
       
   129 //PosVerificationCustomDialog::setHeading
       
   130 //---------------------------------------------------------------
       
   131 void PosVerificationCustomDialog::setHeading(QString& heading)
       
   132     {
       
   133     qDebug() << "+PosVerificationCustomDialog::setHeading()" << heading;
       
   134     mHeadingLabel->setPlainText(heading);
       
   135     qDebug() << "-PosVerificationCustomDialog::setHeading()";
       
   136     }
       
   137 
       
   138 //---------------------------------------------------------------
       
   139 //PosVerificationCustomDialog::getHeading
       
   140 //---------------------------------------------------------------
       
   141 QString PosVerificationCustomDialog::getHeading()
       
   142     {
       
   143     qDebug() << "PosVerificationCustomDialog::getHeading()";
       
   144     return mHeadingLabel->plainText();
       
   145     }
       
   146 
       
   147 //---------------------------------------------------------------
       
   148 //PosVerificationCustomDialog::setQueryText
       
   149 //---------------------------------------------------------------
       
   150 void PosVerificationCustomDialog::setQueryText(QString& textQuery)
       
   151     {
       
   152     qDebug() << "+PosVerificationCustomDialog::setQueryText()" << textQuery;
       
   153     mQueryText->setPlainText(textQuery);
       
   154     qDebug() << "-PosVerificationCustomDialog::setQueryText()";
       
   155     }
       
   156 //---------------------------------------------------------------
       
   157 //PosVerificationCustomDialog::getQueryText
       
   158 //---------------------------------------------------------------
       
   159 QString PosVerificationCustomDialog::getQueryText()
       
   160     {
       
   161     qDebug() << "PosVerificationCustomDialog::getQueryText()";
       
   162     return mQueryText->plainText();
       
   163     }
       
   164 //---------------------------------------------------------------
       
   165 //PosVerificationCustomDialog::setQueryText2
       
   166 //---------------------------------------------------------------
       
   167 void PosVerificationCustomDialog::setQueryText2(QString& textQuery)
       
   168     {
       
   169     qDebug() << "+PosVerificationCustomDialog::setQueryText2()" << textQuery;
       
   170     mQueryText2 = new HbLabel();
       
   171     if (mQueryText2)
       
   172         {
       
   173         mQueryText2->clear();
       
   174         mQueryText2->setPlainText(textQuery);
       
   175         mQueryText2->setFontSpec(HbFontSpec(HbFontSpec::Primary));
       
   176         }
       
   177     qDebug() << "-PosVerificationCustomDialog::setQueryText2()";
       
   178     }
       
   179 //---------------------------------------------------------------
       
   180 //PosVerificationCustomDialog::getQueryText2
       
   181 //---------------------------------------------------------------
       
   182 QString PosVerificationCustomDialog::getQueryText2()
       
   183     {
       
   184     qDebug() << "PosVerificationCustomDialog::getQueryText2()";
       
   185     if (mQueryText2)
       
   186         {
       
   187         return mQueryText2->plainText();
       
   188         }
       
   189     return "";
       
   190     }
       
   191 //---------------------------------------------------------------
       
   192 //PosVerificationCustomDialog::getWidgets
       
   193 //---------------------------------------------------------------
       
   194 void PosVerificationCustomDialog::getWidgets(
       
   195         const CustomDocumentLoader &loader)
       
   196     {
       
   197     qDebug() << "+PosVerificationCustomDialog::getWidgets()";
       
   198 
       
   199     mHeadingLabel = qobject_cast<HbLabel*> (loader.findWidget("heading"));
       
   200     Q_ASSERT_X((mHeadingLabel != 0), "PosVerificationCustomDialog", "invalid DocML file");
       
   201 
       
   202     mQueryText = qobject_cast<HbLabel*> (loader.findWidget("queryText_1"));
       
   203     Q_ASSERT_X((mQueryText != 0), "PosVerificationCustomDialog", "invalid DocML file");
       
   204 
       
   205     mRequestorList
       
   206             = qobject_cast<HbWidget*> (loader.findWidget("requestors"));
       
   207     Q_ASSERT_X((mRequestorList != 0), "PosVerificationCustomDialog", "invalid DocML file");
       
   208 
       
   209     mPrimaryAction = qobject_cast<HbAction*> (loader.findObject(
       
   210             "qtl_dialog_softkey_2_left"));
       
   211     Q_ASSERT_X((mPrimaryAction != 0), "PosVerificationCustomDialog", "invalid DocML file");
       
   212     QObject::connect(mPrimaryAction, SIGNAL(triggered()), this,
       
   213             SLOT(posVerificationdlgAccepted()));
       
   214 
       
   215     mSecondryAction = qobject_cast<HbAction*> (loader.findObject(
       
   216             "qtl_dialog_softkey_2_right"));
       
   217     Q_ASSERT_X((mSecondryAction != 0), "PosVerificationCustomDialog", "invalid DocML file");
       
   218 
       
   219     QObject::connect(mSecondryAction, SIGNAL(triggered()), this,
       
   220             SLOT(posVerificationdlgRejected()));
       
   221     qDebug() << "-PosVerificationCustomDialog::getWidgets()";
       
   222     }
       
   223 //---------------------------------------------------------------
       
   224 //PosVerificationCustomDialog::setRequestor
       
   225 //---------------------------------------------------------------
       
   226 void PosVerificationCustomDialog::setRequestor(QStringList& requestorList)
       
   227     {
       
   228     qDebug() << "+PosVerificationCustomDialog::setRequestor()";
       
   229     int rowadd = 1;
       
   230     mRequestorListItems = requestorList;
       
   231     QGraphicsGridLayout *layout = new QGraphicsGridLayout;
       
   232     if (!layout)
       
   233         {
       
   234         qDebug() << "setRequestor(): Creating layout failed";
       
   235         return;
       
   236         }
       
   237 
       
   238     qreal margin = 0;
       
   239     qreal leftmargin = 0;
       
   240     style()->parameter("hb-param-margin-gene-middle-vertical", margin);
       
   241     style()->parameter("hb-param-margin-gene-popup", leftmargin);
       
   242     QSizePolicy policy;
       
   243     policy.setHorizontalPolicy(QSizePolicy::Preferred);
       
   244     policy.setVerticalPolicy(QSizePolicy::Ignored);
       
   245     QSizePolicy text2Policy;
       
   246     text2Policy.setHorizontalPolicy(QSizePolicy::Preferred);
       
   247     text2Policy.setVerticalPolicy(QSizePolicy::Preferred);
       
   248     text2Policy.setHorizontalStretch(0);
       
   249     
       
   250     if (mQueryText2)
       
   251         {
       
   252         mQueryText2->setSizePolicy(text2Policy);
       
   253         mQueryText2->setAlignment(Qt::AlignTop);
       
   254         mQueryText2->setTextWrapping(Hb::TextWordWrap);
       
   255         layout->addItem(mQueryText2, 1, 0);
       
   256         layout->setRowSpacing(1, margin);
       
   257         layout->setContentsMargins(leftmargin, 0, 0, 0);
       
   258         rowadd = 2;
       
   259         }
       
   260 
       
   261     QStringList::const_iterator iterator;
       
   262     for (iterator = requestorList.begin(); iterator != requestorList.end(); ++iterator)
       
   263         {
       
   264         int i = iterator - requestorList.begin();
       
   265         HbLabel * requestorName = new HbLabel();
       
   266         if (requestorName)
       
   267             {
       
   268             qDebug() << "setRequestor()" << *iterator;
       
   269             requestorName->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
       
   270             requestorName->setPlainText(*iterator);
       
   271             requestorName->setSizePolicy(policy);
       
   272             requestorName->setAlignment(Qt::AlignTop);
       
   273 
       
   274             layout->addItem(requestorName, i + rowadd, 0);
       
   275             layout->setRowSpacing(i + rowadd, margin);
       
   276             layout->setContentsMargins(leftmargin, 0, 0, 0);
       
   277             }
       
   278         }
       
   279     mRequestorList->setSizePolicy(policy);
       
   280     mRequestorList->setLayout(layout);
       
   281     qDebug() << "-PosVerificationCustomDialog::setRequestor()";
       
   282     }
       
   283 
       
   284 //---------------------------------------------------------------
       
   285 //PosVerificationCustomDialog::getRequestor
       
   286 //---------------------------------------------------------------
       
   287 QStringList PosVerificationCustomDialog::getRequestor()
       
   288     {
       
   289     qDebug() << "PosVerificationCustomDialog::getRequestor()";
       
   290     return mRequestorListItems;
       
   291     }
       
   292 //---------------------------------------------------------------
       
   293 //PosVerificationCustomDialog::posVerificationdlgAccepted
       
   294 //---------------------------------------------------------------
       
   295 void PosVerificationCustomDialog::posVerificationdlgAccepted()
       
   296     {
       
   297     qDebug() << "+PosVerificationCustomDialog::posVerificationdlgAccepted()";
       
   298     emit
       
   299     deviceDialogClosed();
       
   300     qDebug() << "-PosVerificationCustomDialog::posVerificationdlgAccepted()";
       
   301     }
       
   302 //---------------------------------------------------------------
       
   303 //PosVerificationCustomDialog::posVerificationdlgRejected
       
   304 //---------------------------------------------------------------
       
   305 void PosVerificationCustomDialog::posVerificationdlgRejected()
       
   306     {
       
   307     qDebug() << "+PosVerificationCustomDialog::posVerificationdlgRejected()";
       
   308     QVariantMap *data = new QVariantMap();
       
   309     QVariant value(-21);
       
   310     if (data)
       
   311         {
       
   312         data->insert("errorCode", value);
       
   313         emit
       
   314         deviceDialogData(*data);
       
   315         }
       
   316     //data is currently not being used in the client side
       
   317     emit
       
   318     deviceDialogClosed();
       
   319     delete data;
       
   320     qDebug() << "-PosVerificationCustomDialog::posVerificationdlgRejected()";
       
   321     }
       
   322 
       
   323 // End of File
       
   324