locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/posverificationcustomdialog.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 10:11:45 +0300
changeset 40 16118e24b93b
parent 32 b12ea03c50a3
child 43 24e118dfbea1
permissions -rw-r--r--
Revision: 201031 Kit: 201033

/*
 * 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: This implements the custom dialog for positioning verification dialogs
 *
 */

#include "posverificationcustomdialog.h"
#include "customdocumentloader.h"

#include <QtDebug>
#include <qgraphicsgridlayout.h>
#include <qsizepolicy.h>

//---------------------------------------------------------------
//PosVerificationCustomDialog::PosVerificationCustomDialog
//---------------------------------------------------------------
PosVerificationCustomDialog::PosVerificationCustomDialog() :
    mHeadingLabel(NULL), mPrimaryAction(NULL), mQueryText(NULL), mQueryText2(
            NULL), mRequestorList(NULL), mRequestorListItems(NULL),
            mSecondryAction(NULL)
    {
    qDebug() << "PosVerificationCustomDialog::PosVerificationCustomDialog()";
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::~PosVerificationCustomDialog
//---------------------------------------------------------------
PosVerificationCustomDialog::~PosVerificationCustomDialog()
    {
    qDebug()
            << "+PosVerificationCustomDialog::~PosVerificationCustomDialog()";
    delete mQueryText2;
    mQueryText2 = NULL;

    qDebug()
            << "-PosVerificationCustomDialog::~PosVerificationCustomDialog()";
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::setProperties
// Set properties
//---------------------------------------------------------------

bool PosVerificationCustomDialog::setProperties(const QVariantMap& parameters)
    {
    qDebug() << "+PosVerificationCustomDialog::setProperties()";
    QVariantMap::const_iterator i = parameters.constBegin();
    while (i != parameters.constEnd())
        {
        QByteArray key = i.key().toAscii();
        qDebug() << "-PosVerificationCustomDialog::setProperties(): Key is "
                << key;
        qDebug() << "-PosVerificationCustomDialog::setProperties(): data is "
                << key.constData();
        //check for the validity of the data
        if (property(key.constData()).isValid())
            {
            //sets the property values
            setProperty(key.constData(), i.value());
            }
        else
            {
            qDebug()
                    << "-PosVerificationCustomDialog::setProperties(): value - false";
            return false;
            }
        ++i;
        }
    qDebug() << "-PosVerificationCustomDialog::setProperties()";
    return true;
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::setDeviceDialogParameters
//---------------------------------------------------------------
bool PosVerificationCustomDialog::setDeviceDialogParameters(
        const QVariantMap &parameters)
    {
    qDebug() << "+PosVerificationCustomDialog::setDeviceDialogParameters()";
    setModal(true);
    setTimeout(HbPopup::NoTimeout);
    qDebug() << "-PosVerificationCustomDialog::setDeviceDialogParameters()";
    return setProperties(parameters);
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::deviceDialogError
//---------------------------------------------------------------
int PosVerificationCustomDialog::deviceDialogError() const
    {
    qDebug() << "PosVerificationCustomDialog::deviceDialogError()";
    return 0;
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::closeDeviceDialog
//---------------------------------------------------------------
void PosVerificationCustomDialog::closeDeviceDialog(bool byClient)
    {
    qDebug() << "+PosVerificationCustomDialog::closeDeviceDialog()";
    Q_UNUSED(byClient);
    close();
    emit
    deviceDialogClosed();
    qDebug() << "-PosVerificationCustomDialog::closeDeviceDialog()";
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::deviceDialogWidget
//---------------------------------------------------------------
HbPopup* PosVerificationCustomDialog::deviceDialogWidget() const
    {
    qDebug() << "PosVerificationCustomDialog::deviceDialogWidget()";
    return const_cast<PosVerificationCustomDialog*> (this);
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::setHeading
//---------------------------------------------------------------
void PosVerificationCustomDialog::setHeading(QString& heading)
    {
    qDebug() << "+PosVerificationCustomDialog::setHeading()" << heading;
    mHeadingLabel->setPlainText(heading);
    qDebug() << "-PosVerificationCustomDialog::setHeading()";
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::getHeading
//---------------------------------------------------------------
QString PosVerificationCustomDialog::getHeading()
    {
    qDebug() << "PosVerificationCustomDialog::getHeading()";
    return mHeadingLabel->plainText();
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::setQueryText
//---------------------------------------------------------------
void PosVerificationCustomDialog::setQueryText(QString& textQuery)
    {
    qDebug() << "+PosVerificationCustomDialog::setQueryText()" << textQuery;
    mQueryText->setPlainText(textQuery);
    qDebug() << "-PosVerificationCustomDialog::setQueryText()";
    }
//---------------------------------------------------------------
//PosVerificationCustomDialog::getQueryText
//---------------------------------------------------------------
QString PosVerificationCustomDialog::getQueryText()
    {
    qDebug() << "PosVerificationCustomDialog::getQueryText()";
    return mQueryText->plainText();
    }
//---------------------------------------------------------------
//PosVerificationCustomDialog::setQueryText2
//---------------------------------------------------------------
void PosVerificationCustomDialog::setQueryText2(QString& textQuery)
    {
    qDebug() << "+PosVerificationCustomDialog::setQueryText2()" << textQuery;
    mQueryText2 = new HbLabel();
    if (mQueryText2)
        {
        mQueryText2->clear();
        mQueryText2->setPlainText(textQuery);
        mQueryText2->setFontSpec(HbFontSpec(HbFontSpec::Primary));
        }
    qDebug() << "-PosVerificationCustomDialog::setQueryText2()";
    }
//---------------------------------------------------------------
//PosVerificationCustomDialog::getQueryText2
//---------------------------------------------------------------
QString PosVerificationCustomDialog::getQueryText2()
    {
    qDebug() << "PosVerificationCustomDialog::getQueryText2()";
    if (mQueryText2)
        {
        return mQueryText2->plainText();
        }
    return "";
    }
//---------------------------------------------------------------
//PosVerificationCustomDialog::getWidgets
//---------------------------------------------------------------
void PosVerificationCustomDialog::getWidgets(
        const CustomDocumentLoader &loader)
    {
    qDebug() << "+PosVerificationCustomDialog::getWidgets()";

    mHeadingLabel = qobject_cast<HbLabel*> (loader.findWidget("heading"));
    Q_ASSERT_X((mHeadingLabel != 0), "PosVerificationCustomDialog", "invalid DocML file");

    mQueryText = qobject_cast<HbLabel*> (loader.findWidget("queryText_1"));
    Q_ASSERT_X((mQueryText != 0), "PosVerificationCustomDialog", "invalid DocML file");

    mRequestorList
            = qobject_cast<HbWidget*> (loader.findWidget("requestors"));
    Q_ASSERT_X((mRequestorList != 0), "PosVerificationCustomDialog", "invalid DocML file");

    mPrimaryAction = qobject_cast<HbAction*> (loader.findObject(
            "qtl_dialog_softkey_2_left"));
    Q_ASSERT_X((mPrimaryAction != 0), "PosVerificationCustomDialog", "invalid DocML file");
    QObject::connect(mPrimaryAction, SIGNAL(triggered()), this,
            SLOT(posVerificationdlgAccepted()));

    mSecondryAction = qobject_cast<HbAction*> (loader.findObject(
            "qtl_dialog_softkey_2_right"));
    Q_ASSERT_X((mSecondryAction != 0), "PosVerificationCustomDialog", "invalid DocML file");

    QObject::connect(mSecondryAction, SIGNAL(triggered()), this,
            SLOT(posVerificationdlgRejected()));
    qDebug() << "-PosVerificationCustomDialog::getWidgets()";
    }
//---------------------------------------------------------------
//PosVerificationCustomDialog::setRequestor
//---------------------------------------------------------------
void PosVerificationCustomDialog::setRequestor(QStringList& requestorList)
    {
    qDebug() << "+PosVerificationCustomDialog::setRequestor()";
    int rowadd = 1;
    mRequestorListItems = requestorList;
    QGraphicsGridLayout *layout = new QGraphicsGridLayout;
    if (!layout)
        {
        qDebug() << "setRequestor(): Creating layout failed";
        return;
        }

    qreal margin = 0;
    qreal leftmargin = 0;
    style()->parameter("hb-param-margin-gene-middle-vertical", margin);
    style()->parameter("hb-param-margin-gene-popup", leftmargin);
    QSizePolicy policy;
    policy.setHorizontalPolicy(QSizePolicy::Preferred);
    policy.setVerticalPolicy(QSizePolicy::Ignored);
    if (mQueryText2)
        {
        mQueryText2->setSizePolicy(policy);
        mQueryText2->setAlignment(Qt::AlignTop);
        layout->addItem(mQueryText2, 1, 0);
        layout->setRowSpacing(1, margin);
        layout->setContentsMargins(leftmargin, 0, 0, 0);
        rowadd = 2;
        }

    QStringList::const_iterator iterator;
    for (iterator = requestorList.begin(); iterator != requestorList.end(); ++iterator)
        {
        int i = iterator - requestorList.begin();
        HbLabel * requestorName = new HbLabel();
        if (requestorName)
            {
            qDebug() << "setRequestor()" << *iterator;
            requestorName->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
            requestorName->setPlainText(*iterator);
            requestorName->setSizePolicy(policy);
            requestorName->setAlignment(Qt::AlignTop);

            layout->addItem(requestorName, i + rowadd, 0);
            layout->setRowSpacing(i + rowadd, margin);
            layout->setContentsMargins(leftmargin, 0, 0, 0);
            }
        }
    mRequestorList->setSizePolicy(policy);
    mRequestorList->setLayout(layout);
    qDebug() << "-PosVerificationCustomDialog::setRequestor()";
    }

//---------------------------------------------------------------
//PosVerificationCustomDialog::getRequestor
//---------------------------------------------------------------
QStringList PosVerificationCustomDialog::getRequestor()
    {
    qDebug() << "PosVerificationCustomDialog::getRequestor()";
    return mRequestorListItems;
    }
//---------------------------------------------------------------
//PosVerificationCustomDialog::posVerificationdlgAccepted
//---------------------------------------------------------------
void PosVerificationCustomDialog::posVerificationdlgAccepted()
    {
    qDebug() << "+PosVerificationCustomDialog::posVerificationdlgAccepted()";
    emit
    deviceDialogClosed();
    qDebug() << "-PosVerificationCustomDialog::posVerificationdlgAccepted()";
    }
//---------------------------------------------------------------
//PosVerificationCustomDialog::posVerificationdlgRejected
//---------------------------------------------------------------
void PosVerificationCustomDialog::posVerificationdlgRejected()
    {
    qDebug() << "+PosVerificationCustomDialog::posVerificationdlgRejected()";
    QVariantMap *data = new QVariantMap();
    QVariant value(-21);
    if (data)
        {
        data->insert("errorCode", value);
        emit
        deviceDialogData(*data);
        }
    //data is currently not being used in the client side
    emit
    deviceDialogClosed();
    delete data;
    qDebug() << "-PosVerificationCustomDialog::posVerificationdlgRejected()";
    }

// End of File