src/hbwidgets/widgets/hbcombodropdown_p.cpp
author hgs
Mon, 18 Oct 2010 18:23:13 +0300
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/****************************************************************************
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
** All rights reserved.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
** Contact: Nokia Corporation (developer.feedback@nokia.com)
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
** This file is part of the HbWidgets module of the UI Extensions for Mobile.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
** GNU Lesser General Public License Usage
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
** This file may be used under the terms of the GNU Lesser General Public
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
** License version 2.1 as published by the Free Software Foundation and
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
** appearing in the file LICENSE.LGPL included in the packaging of this file.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
** Please review the following information to ensure the GNU Lesser General
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
** Public License version 2.1 requirements will be met:
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
** In addition, as a special exception, Nokia gives you certain additional
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
** rights.  These rights are described in the Nokia Qt LGPL Exception
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
** If you have questions regarding the use of this file, please contact
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
** Nokia at developer.feedback@nokia.com.
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
**
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
****************************************************************************/
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "hbcombodropdown_p.h"
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include "hbcombobox_p.h"
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    28
#include "hbwidget_p.h"
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include <hblistview.h>
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    30
#include <hbwidgetfeedback.h>
34
hgs
parents: 7
diff changeset
    31
#include <hbinputvirtualkeyboard.h>
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    32
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    33
#include <hbtapgesture.h>
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    34
#include <hbpangesture.h>
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    35
#include <QGestureEvent>
34
hgs
parents: 7
diff changeset
    36
#include <QGraphicsSceneMouseEvent>
hgs
parents: 7
diff changeset
    37
hgs
parents: 7
diff changeset
    38
#include <hbeffect.h>
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    39
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    40
class HbComboDropDownPrivate : public HbWidgetPrivate
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    41
{
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    42
};
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
HbComboDropDown::HbComboDropDown( HbComboBoxPrivate *comboBoxPrivate, QGraphicsItem *parent )
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    44
    :HbWidget( *new HbComboDropDownPrivate(), parent ),
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    45
     mList( 0 ),
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    46
     comboPrivate( comboBoxPrivate ),
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    47
     vkbOpened( false ),
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    48
     backgroundPressed( false )
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
{
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    50
    Q_D(HbComboDropDown);
34
hgs
parents: 7
diff changeset
    51
    d->setBackgroundItem(HbStylePrivate::P_ComboBoxPopup_background);
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
    #if QT_VERSION >= 0x040600
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    53
    //this is to keep the focus in the previous widget.
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    54
    setFlag( QGraphicsItem::ItemIsPanel, true );
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    55
    setActive( false );
34
hgs
parents: 7
diff changeset
    56
    setAcceptTouchEvents( true );
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
    #endif
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
HbComboDropDown::~HbComboDropDown( )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
void HbComboDropDown::createList( )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
   mList = new HbListView( this );
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    67
   HbComboListViewItem *protoType = new HbComboListViewItem( this );
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
   mList->setItemPrototype( protoType );
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    69
   HbStyle::setItemName( mList, "list" );
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
   mList->setUniformItemSizes( true );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
   mList->setSelectionMode( HbAbstractItemView::SingleSelection );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
void HbComboDropDown::keypadOpened( )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
    vkbOpened = true;
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    77
    comboPrivate->vkbOpened( );
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
void HbComboDropDown::keypadClosed( )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
    vkbOpened = false;
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    83
    comboPrivate->vkbClosed( );
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
}
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
34
hgs
parents: 7
diff changeset
    86
#ifdef HB_EFFECTS
hgs
parents: 7
diff changeset
    87
void HbComboDropDown::dismissEffectFinished( HbEffect::EffectStatus status )
hgs
parents: 7
diff changeset
    88
{
hgs
parents: 7
diff changeset
    89
    Q_UNUSED( status );
hgs
parents: 7
diff changeset
    90
hgs
parents: 7
diff changeset
    91
    setVisible( false );
hgs
parents: 7
diff changeset
    92
}
hgs
parents: 7
diff changeset
    93
#endif
hgs
parents: 7
diff changeset
    94
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
bool HbComboDropDown::eventFilter( QObject *obj, QEvent *event )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
{
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
    Q_UNUSED( obj );
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    bool accepted = false;
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    99
34
hgs
parents: 7
diff changeset
   100
    if ( isVisible( ) ) {
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
        switch( event->type( ) )
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
        {
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   103
        case QEvent::Gesture:
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   104
            {
34
hgs
parents: 7
diff changeset
   105
                if( QGestureEvent *gestureEvent = static_cast<QGestureEvent *>( event ) ) {                        
hgs
parents: 7
diff changeset
   106
                    HbTapGesture *tapGesture = qobject_cast<HbTapGesture *>(gestureEvent->gesture(Qt::TapGesture));
hgs
parents: 7
diff changeset
   107
                    if( tapGesture && tapGesture->state() == Qt::GestureStarted ) {
hgs
parents: 7
diff changeset
   108
                        QRectF dropDownSceneRect = mapToScene(boundingRect( )).boundingRect();
hgs
parents: 7
diff changeset
   109
                        if(!dropDownSceneRect.contains(tapGesture->sceneStartPos())) {
hgs
parents: 7
diff changeset
   110
                            if( !vkbOpened ) {                                      
hgs
parents: 7
diff changeset
   111
                                HbWidgetFeedback::triggered( this, Hb::InstantPopupClosed );
hgs
parents: 7
diff changeset
   112
                                comboPrivate->showDismissEffect( );
hgs
parents: 7
diff changeset
   113
                                comboPrivate->q_ptr->setProperty("state","normal");
hgs
parents: 7
diff changeset
   114
                                backgroundPressed = true;
hgs
parents: 7
diff changeset
   115
                                accepted = true;
hgs
parents: 7
diff changeset
   116
                            } else {
hgs
parents: 7
diff changeset
   117
                                //if vkb is opened then dismiss drop down only if click happened outside drop down and
hgs
parents: 7
diff changeset
   118
                                //vkb area
hgs
parents: 7
diff changeset
   119
                                if( comboPrivate->mEditable ) {
hgs
parents: 7
diff changeset
   120
                                    HbEditorInterface editorInterface( comboPrivate->q_ptr );
hgs
parents: 7
diff changeset
   121
                                    HbVkbHost *host = editorInterface.vkbHost( );
hgs
parents: 7
diff changeset
   122
                                    if( host ) {
hgs
parents: 7
diff changeset
   123
                                        //get the scene rect of vkb
hgs
parents: 7
diff changeset
   124
                                        QGraphicsWidget *vkbWidget = host->activeKeypad( )->asGraphicsWidget( );
hgs
parents: 7
diff changeset
   125
                                        QRectF tmp = host->applicationArea( );
hgs
parents: 7
diff changeset
   126
                                        QRectF vkbArea = vkbWidget->mapToScene( tmp ).boundingRect( );
hgs
parents: 7
diff changeset
   127
                                        if( !vkbArea.contains( tapGesture->sceneStartPos() ) ) {
hgs
parents: 7
diff changeset
   128
                                            comboPrivate->showDismissEffect( );
hgs
parents: 7
diff changeset
   129
                                            HbWidgetFeedback::triggered( this, Hb::InstantPopupClosed );
hgs
parents: 7
diff changeset
   130
                                            comboPrivate->q_ptr->setProperty( "state", "normal" );
hgs
parents: 7
diff changeset
   131
                                            backgroundPressed = true;
hgs
parents: 7
diff changeset
   132
                                            accepted = true;
hgs
parents: 7
diff changeset
   133
                                        }
hgs
parents: 7
diff changeset
   134
                                    }
hgs
parents: 7
diff changeset
   135
                                }
hgs
parents: 7
diff changeset
   136
                            }
hgs
parents: 7
diff changeset
   137
                        }
hgs
parents: 7
diff changeset
   138
                    } else {
hgs
parents: 7
diff changeset
   139
                        //if its a pan gesture then don't accept the event so that list can be scrolled
hgs
parents: 7
diff changeset
   140
                        //even if mouse is outside drop down area. Also tap might finish outside the
hgs
parents: 7
diff changeset
   141
                        //dropdown area
3
11d3954df52a Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   142
                        if( !qobject_cast<HbPanGesture *>( 
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   143
                                gestureEvent->gesture( Qt::PanGesture ) ) &&
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   144
                            !(tapGesture && tapGesture->state() != Qt::GestureStarted)) {
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   145
                            accepted = true;
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   146
                        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   147
                    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   148
                }
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   149
            }
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   150
            break;
34
hgs
parents: 7
diff changeset
   151
        case QEvent::GraphicsSceneMousePress:
hgs
parents: 7
diff changeset
   152
            //dont accept the mouse press event if vkb is pressed, so that vkb can take events
hgs
parents: 7
diff changeset
   153
            if( vkbOpened ) {
hgs
parents: 7
diff changeset
   154
                if( comboPrivate->mEditable ) {
hgs
parents: 7
diff changeset
   155
                    HbEditorInterface editorInterface( comboPrivate->q_ptr );
hgs
parents: 7
diff changeset
   156
                    HbVkbHost *host = editorInterface.vkbHost( );
hgs
parents: 7
diff changeset
   157
                    if( host ) {
hgs
parents: 7
diff changeset
   158
                        //get the scene rect of vkb
hgs
parents: 7
diff changeset
   159
                        QGraphicsWidget *vkbWidget = host->activeKeypad( )->asGraphicsWidget( );
hgs
parents: 7
diff changeset
   160
                        QRectF tmp = host->applicationArea( );
hgs
parents: 7
diff changeset
   161
                        QRectF vkbArea = vkbWidget->mapToScene( tmp ).boundingRect( );
hgs
parents: 7
diff changeset
   162
hgs
parents: 7
diff changeset
   163
                        QGraphicsSceneMouseEvent *mouseEvent =  
hgs
parents: 7
diff changeset
   164
                            static_cast< QGraphicsSceneMouseEvent * >( event ); 
hgs
parents: 7
diff changeset
   165
                        if( vkbArea.contains( mouseEvent->scenePos( ) ) ) {
hgs
parents: 7
diff changeset
   166
                            break;
hgs
parents: 7
diff changeset
   167
                        }
hgs
parents: 7
diff changeset
   168
                    }
hgs
parents: 7
diff changeset
   169
                }
hgs
parents: 7
diff changeset
   170
            }
hgs
parents: 7
diff changeset
   171
        case QEvent::TouchBegin:
hgs
parents: 7
diff changeset
   172
            accepted = true;
hgs
parents: 7
diff changeset
   173
            break;
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
        default:
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
            break;
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
        }
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   178
    return accepted;
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
}
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
   180
34
hgs
parents: 7
diff changeset
   181
QVariant HbComboDropDown::itemChange( GraphicsItemChange change, const QVariant & value )
hgs
parents: 7
diff changeset
   182
{
hgs
parents: 7
diff changeset
   183
    switch( change ) {
hgs
parents: 7
diff changeset
   184
        case QGraphicsItem::ItemVisibleHasChanged:
hgs
parents: 7
diff changeset
   185
            if( !value.toBool( ) ) {
hgs
parents: 7
diff changeset
   186
                comboPrivate->resetGeometryChangeFlag( );
hgs
parents: 7
diff changeset
   187
            }
hgs
parents: 7
diff changeset
   188
            break;
hgs
parents: 7
diff changeset
   189
        default:
hgs
parents: 7
diff changeset
   190
            break;
hgs
parents: 7
diff changeset
   191
    }
hgs
parents: 7
diff changeset
   192
    return HbWidget::itemChange( change, value );
hgs
parents: 7
diff changeset
   193
}
hgs
parents: 7
diff changeset
   194
0
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
#include "moc_hbcombodropdown_p.cpp"
16d8024aca5e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196