ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp
author hgs
Fri, 06 Aug 2010 20:44:25 +0530
changeset 54 0f0f3f26f787
parent 40 112f0ac2d1f0
child 58 383b67fbdb11
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description: 
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <glxcommondialogs.h>
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <hbaction.h>
40
hgs
parents: 26
diff changeset
    21
#include <QEventLoop>
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
40
hgs
parents: 26
diff changeset
    23
GlxTextInputDialog::GlxTextInputDialog() 
hgs
parents: 26
diff changeset
    24
    : mDialog ( NULL ),
hgs
parents: 26
diff changeset
    25
      mEventLoop ( 0 ),
hgs
parents: 26
diff changeset
    26
      mResult ( false )
hgs
parents: 26
diff changeset
    27
{
hgs
parents: 26
diff changeset
    28
}
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
GlxTextInputDialog::~GlxTextInputDialog()
40
hgs
parents: 26
diff changeset
    31
{
hgs
parents: 26
diff changeset
    32
}
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
QString GlxTextInputDialog::getText(const QString &label,
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
        const QString &text, bool *ok)
40
hgs
parents: 26
diff changeset
    36
{
hgs
parents: 26
diff changeset
    37
    QEventLoop eventLoop;
hgs
parents: 26
diff changeset
    38
    mEventLoop = &eventLoop;
hgs
parents: 26
diff changeset
    39
    
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
    mDialog = new HbInputDialog();
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    mDialog->setPromptText(label);
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
    mDialog->setInputMode(HbInputDialog::TextInput);
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
    mDialog->setValue(text);
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
    connect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
            this, SLOT( textChanged (const QString &)));
40
hgs
parents: 26
diff changeset
    46
    
hgs
parents: 26
diff changeset
    47
    mDialog->open( this, SLOT( dialogClosed( HbAction* ) ) ); 
hgs
parents: 26
diff changeset
    48
    eventLoop.exec( );
hgs
parents: 26
diff changeset
    49
    mEventLoop = 0 ;
hgs
parents: 26
diff changeset
    50
    
hgs
parents: 26
diff changeset
    51
    if ( ok ) {
hgs
parents: 26
diff changeset
    52
        *ok = mResult ;
hgs
parents: 26
diff changeset
    53
    }
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
    QString retText = NULL;
40
hgs
parents: 26
diff changeset
    55
    if ( mResult ) {
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
        retText = mDialog->value().toString().trimmed();
40
hgs
parents: 26
diff changeset
    57
    }
hgs
parents: 26
diff changeset
    58
    
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
    disconnect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
40
hgs
parents: 26
diff changeset
    60
                this, SLOT( textChanged (const QString &)));
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
    delete mDialog;
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
    mDialog = NULL;
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
    return retText;
40
hgs
parents: 26
diff changeset
    64
}
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
void GlxTextInputDialog::textChanged(const QString &text)
40
hgs
parents: 26
diff changeset
    67
{
hgs
parents: 26
diff changeset
    68
    if (text.trimmed().isEmpty()) {
hgs
parents: 26
diff changeset
    69
        mDialog->actions().first()->setEnabled(false);
hgs
parents: 26
diff changeset
    70
    }
hgs
parents: 26
diff changeset
    71
    else {
hgs
parents: 26
diff changeset
    72
        mDialog->actions().first()->setEnabled(true);
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
    }
40
hgs
parents: 26
diff changeset
    74
}
hgs
parents: 26
diff changeset
    75
hgs
parents: 26
diff changeset
    76
void GlxTextInputDialog::dialogClosed(HbAction *action)
hgs
parents: 26
diff changeset
    77
{
hgs
parents: 26
diff changeset
    78
    HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
hgs
parents: 26
diff changeset
    79
    if( action == dlg->actions().first() ) {
hgs
parents: 26
diff changeset
    80
        mResult = true ;
hgs
parents: 26
diff changeset
    81
    }
hgs
parents: 26
diff changeset
    82
    else {
hgs
parents: 26
diff changeset
    83
        mResult = false ;
hgs
parents: 26
diff changeset
    84
    }
hgs
parents: 26
diff changeset
    85
    if ( mEventLoop && mEventLoop->isRunning( ) ) {
hgs
parents: 26
diff changeset
    86
        mEventLoop->exit( 0 );
hgs
parents: 26
diff changeset
    87
    }
hgs
parents: 26
diff changeset
    88
}