coreapplicationuis/hbdeviceinputdialogplugin/src/hbdeviceinputdialogwidget.cpp
author hgs
Wed, 22 Sep 2010 18:06:15 +0300
changeset 72 56a7be608841
parent 61 224b21efc2d4
permissions -rw-r--r--
201037_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
61
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     1
/****************************************************************************
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0""
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     8
 *
224b21efc2d4 201033_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    11
 *
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    12
 * Contributors:
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    13
 *
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    14
 * Description:  
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    15
 *   
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    16
***************************************************************************/
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    17
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    18
#include <hbaction.h>
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    19
#include <hbdialog.h>
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    20
#include <hbinputdialog.h>
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    21
#include<hblineedit.h>
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    22
#include <hbiconanimationmanager.h>
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    23
#include "hbdeviceinputdialogwidget_p.h"
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    24
#include "hbdeviceinputdialogpluginerrors_p.h"
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    25
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    26
//For Localization
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    27
QString LOCALE_PATH("/resource/qt/translations/"); 
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    28
QString TS_FILE("filemanager");
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    29
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    30
// Constructor
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    31
HbDeviceInputDialogWidget::HbDeviceInputDialogWidget(const QVariantMap &parameters):HbInputDialog()
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    32
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    33
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::Constructor:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    34
    mLastError = NoError;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    35
    mShowEventReceived = false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    36
    mPrimaryAction = 0;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    37
    mSecondaryAction = 0;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    38
    mDeviceDialogError =0;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    39
    mHack = 1;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    40
    //resetProperties();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    41
    if (preConstructDialog())
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    42
       {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    43
        //Translator loaded succesfully then olny construct widgets
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    44
        constructDialog(parameters);
72
56a7be608841 201037_01
hgs
parents: 61
diff changeset
    45
        this->actions()[0]->setEnabled(true);
56a7be608841 201037_01
hgs
parents: 61
diff changeset
    46
61
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    47
        if (!mPrimaryAction) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    48
            // If default button provided by HbInputDialog is used, connect into its triggered signal.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    49
            QAction *action = /*primaryAction()*/this->actions().first();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    50
            if (action) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    51
                connect(action, SIGNAL(triggered()), SLOT(primaryActionTriggered()));
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    52
                }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    53
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    54
        if (!mSecondaryAction) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    55
            // If default button provided by HbInputDialog is used, connect into its triggered signal.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    56
            QAction *action = /*secondaryAction()*/ this->actions().at(1);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    57
            if (action) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    58
                connect(action, SIGNAL(triggered()), SLOT(secondaryActionTriggered()));
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    59
            }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    60
        }  
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    61
        connect(this, SIGNAL(visibilityChanged()), SLOT(closeDialog()));
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    62
       }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    63
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::Constructor:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    64
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    65
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    66
// Destructor
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    67
HbDeviceInputDialogWidget::~HbDeviceInputDialogWidget()
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    68
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    69
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::Destrcuctor:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    70
    delete mPrimaryAction;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    71
    delete mSecondaryAction;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    72
    delete mHbTranslator;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    73
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::Destructor:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    74
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    75
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    76
// Set parameters
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    77
bool HbDeviceInputDialogWidget::setDeviceDialogParameters(const QVariantMap &parameters)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    78
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    79
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setDeviceDialogParameters:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    80
    mLastError = NoError;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    81
    bool ret(false);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    82
    if (checkProperties(parameters)) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    83
        setProperties(parameters);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    84
        ret = true;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    85
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    86
    else {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    87
        mLastError = ParameterError;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    88
        ret = false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    89
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    90
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setDeviceDialogParameters:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    91
    return ret;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    92
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    93
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    94
/**
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    95
 * Before creating widgets Translator must be loaded
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    96
 */
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    97
bool HbDeviceInputDialogWidget::preConstructDialog()
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    98
    {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
    99
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::preConstructDialog:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   100
    //Translator
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   101
    mHbTranslator = new HbTranslator(LOCALE_PATH,TS_FILE);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   102
    if(!mHbTranslator)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   103
        {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   104
        //Translator is failed to create
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   105
        mDeviceDialogError = UnknownDeviceDialogError;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   106
        TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::preConstructDialog:MemoryAllocation Failed") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   107
        return false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   108
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   109
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::preConstructDialog:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   110
    return true;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   111
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   112
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   113
// Get error
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   114
int HbDeviceInputDialogWidget::deviceDialogError() const
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   115
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   116
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::deviceDialogError:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   117
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::deviceDialogError:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   118
    return mLastError;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   119
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   120
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   121
// Close device dialog
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   122
void HbDeviceInputDialogWidget::closeDeviceDialog(bool byClient)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   123
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   124
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::closeDeviceDialog:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   125
    Q_UNUSED(byClient);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   126
    // Closed by client or internally by server -> no action to be transmitted.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   127
    mSendAction = false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   128
    close();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   129
    // If show event has been received, close is signalled from hide event. If not,
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   130
    // hide event does not come and close is signalled from here.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   131
    if (!mShowEventReceived) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   132
        emit deviceDialogClosed();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   133
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   134
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::closeDeviceDialog:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   135
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   136
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   137
// Return display widget
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   138
HbDialog *HbDeviceInputDialogWidget::deviceDialogWidget() const
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   139
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   140
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::deviceDialogWidget:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   141
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::deviceDialogWidget:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   142
    return const_cast<HbDeviceInputDialogWidget*>(this);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   143
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   144
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   145
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   146
// Construct dialog
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   147
bool HbDeviceInputDialogWidget::constructDialog(const QVariantMap &parameters)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   148
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   149
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::constructDialog:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   150
    bool ret(false);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   151
    // Check that parameters are valid
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   152
    
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   153
    if (!checkProperties(parameters)) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   154
        mLastError = ParameterError;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   155
        ret = false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   156
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   157
    else {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   158
        setProperties(parameters);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   159
        resetProperties();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   160
        ret = true;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   161
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   162
   
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   163
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::constructDialog:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   164
    return ret;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   165
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   166
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   167
// Check that device dialog parameters are valid
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   168
bool HbDeviceInputDialogWidget::checkProperties(const QVariantMap &parameters)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   169
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   170
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::checkProperties:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   171
    QVariantMap::const_iterator i = parameters.constBegin();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   172
    while (i != parameters.constEnd()) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   173
        QByteArray key = i.key().toAscii();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   174
        if (!property(key.constData()).isValid()) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   175
        TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::checkProperties:End :: returning false") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   176
            return false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   177
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   178
        ++i;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   179
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   180
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::checkProperties:End :: returning true") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   181
    return true;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   182
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   183
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   184
// Set properties
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   185
void HbDeviceInputDialogWidget::setProperties(const QVariantMap &parameters)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   186
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   187
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setProperties:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   188
    QVariantMap::const_iterator i = parameters.constBegin();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   189
    while (i != parameters.constEnd()) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   190
        QByteArray key = i.key().toAscii();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   191
        if (property(key.constData()).isValid()) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   192
            setProperty(key.constData(), i.value());
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   193
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   194
        ++i;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   195
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   196
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setProperties:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   197
    return;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   198
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   199
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   200
// Reset properties to default values
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   201
void HbDeviceInputDialogWidget::resetProperties()
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   202
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   203
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::resetProperties:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   204
//    mIconName.clear();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   205
    setModal(true);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   206
    setPromptText(hbTrId("txt_common_dialog_password"), 0); 
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   207
    setInputMode(TextInput,0);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   208
    setEchoMode(HbLineEdit::Password,0);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   209
    setTimeout(HbPopup::NoTimeout);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   210
    setDismissPolicy(HbPopup::NoDismiss);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   211
    
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   212
    mPrimaryActionNull = false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   213
    mSecondaryActionNull = false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   214
    mSendAction = true;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   215
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::resetProperties:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   216
    return;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   217
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   218
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   219
QString HbDeviceInputDialogWidget::primaryActionText() const
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   220
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   221
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::primaryActionText:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   222
    QAction *action = /*primaryAction()*/this->actions().first();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   223
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::primaryActionText:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   224
    return action ? action->text() : QString();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   225
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   226
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   227
void HbDeviceInputDialogWidget::setPrimaryActionText(QString &actionText)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   228
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   229
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setPrimaryActionText:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   230
    QAction *action = /*primaryAction()*/this->actions().first();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   231
    if (action) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   232
        action->setText(actionText);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   233
    } else {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   234
        if (!mPrimaryAction) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   235
            mPrimaryAction = new HbAction(actionText);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   236
            connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(primaryActionTriggered()));
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   237
        } else {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   238
            mPrimaryAction->setText(actionText);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   239
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   240
        setPrimaryAction(mPrimaryAction);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   241
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   242
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setPrimaryActionText:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   243
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   244
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   245
QString HbDeviceInputDialogWidget::secondaryActionText() const
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   246
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   247
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::secondaryActionText:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   248
    QAction *action = /*secondaryAction()*/ this->actions().at(1);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   249
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::secondaryActionText:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   250
    return action ? action->text() : QString();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   251
    
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   252
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   253
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   254
void HbDeviceInputDialogWidget::setSecondaryActionText(QString &actionText)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   255
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   256
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setSecondaryActionText:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   257
    QAction *action = /*secondaryAction()*/ this->actions().at(1);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   258
    if (action) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   259
        action->setText(actionText);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   260
    } else {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   261
        if (!mSecondaryAction) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   262
            mSecondaryAction = new HbAction(actionText);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   263
            connect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(secondaryActionTriggered()));
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   264
        } else {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   265
            mSecondaryAction->setText(actionText);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   266
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   267
        setSecondaryAction(mSecondaryAction);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   268
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   269
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setSecondaryActionText:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   270
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   271
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   272
bool HbDeviceInputDialogWidget::primaryActionNull() const
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   273
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   274
    return this->actions().first() == 0;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   275
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   276
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   277
void HbDeviceInputDialogWidget::setPrimaryActionNull(bool isNull)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   278
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   279
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setPrimaryActionNull:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   280
    if (isNull) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   281
        // If there is a message box's default action, disconnect from it.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   282
        QAction *action = /*primaryAction()*/this->actions().first();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   283
        if (action && mPrimaryAction == 0) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   284
            action->disconnect(SIGNAL(triggered()), this, SLOT(primaryActionTriggered()));
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   285
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   286
        setPrimaryAction(0);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   287
    } else {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   288
        QString text = mPrimaryAction ? mPrimaryAction->text() : QString();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   289
        setPrimaryActionText(text);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   290
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   291
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setPrimaryActionNull:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   292
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   293
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   294
bool HbDeviceInputDialogWidget::secondaryActionNull() const
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   295
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   296
    return this->actions().at(1) == 0;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   297
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   298
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   299
void HbDeviceInputDialogWidget::setSecondaryActionNull(bool isNull)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   300
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   301
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setSecondaryActionNull:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   302
    if (isNull) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   303
        // If there is a message box's default action, disconnect from it.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   304
        QAction *action = /*secondaryAction()*/ this->actions().at(1);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   305
        if (action && mSecondaryAction == 0) {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   306
            action->disconnect(SIGNAL(triggered()), this, SLOT(secondaryActionTriggered()));
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   307
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   308
        setSecondaryAction(0);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   309
    } else {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   310
        QString text = mSecondaryAction ? mSecondaryAction->text() : QString();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   311
        setSecondaryActionText(text);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   312
    }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   313
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::setSecondaryActionNull:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   314
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   315
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   316
// Widget is about to hide. Closing effect has ended.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   317
void HbDeviceInputDialogWidget::hideEvent(QHideEvent *event)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   318
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   319
    Q_UNUSED(event);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   320
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::hideEvent:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   321
    HbInputDialog::hideEvent(event);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   322
    emit deviceDialogClosed();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   323
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::hideEvent:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   324
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   325
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   326
// Widget is about to show
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   327
void HbDeviceInputDialogWidget::showEvent(QShowEvent *event)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   328
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   329
    Q_UNUSED(event);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   330
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::showEvent:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   331
    HbInputDialog::showEvent(event);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   332
    mShowEventReceived = true;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   333
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::showEvent:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   334
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   335
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   336
void HbDeviceInputDialogWidget::setAnimationDefinition(QString &animationDefinition)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   337
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   338
    mAnimationDefinition = animationDefinition;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   339
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   340
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   341
QString HbDeviceInputDialogWidget::animationDefinition() const
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   342
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   343
    return mAnimationDefinition;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   344
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   345
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   346
// Primary action triggered
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   347
void HbDeviceInputDialogWidget::primaryActionTriggered()
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   348
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   349
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::primaryActionTriggered:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   350
    //Get the string enter by user
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   351
    QString myString = this->value().toString();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   352
    data.insert("ok",myString);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   353
    emit deviceDialogData(data);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   354
    mSendAction = true;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   355
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::primaryActionTriggered:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   356
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   357
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   358
// Secondary action triggered
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   359
void HbDeviceInputDialogWidget::secondaryActionTriggered()
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   360
{
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   361
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::secondaryActionTriggered:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   362
    data.insert("cancel","cancel");
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   363
    emit deviceDialogData(data);
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   364
    mSendAction = false;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   365
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::secondaryActionTriggered:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   366
}
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   367
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   368
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   369
// Close Dialog when visibility changed
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   370
void HbDeviceInputDialogWidget::closeDialog()
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   371
    {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   372
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::closeDialog:Begin") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   373
    if(mHack == 1)
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   374
        {
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   375
        emit deviceDialogData(data); // first time plugin didnt called deviceDialogData and hence this hack added.
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   376
        }
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   377
    emit deviceDialogClosed();
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   378
    TRACES( RDebug::Print( _L("HbDeviceInputDialogWidget::closeDialog:End") ) );
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   379
    mHack = 0;
224b21efc2d4 201033_02
hgs
parents:
diff changeset
   380
    }