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