diff -r ae8abd0db65c -r e32024264ebb telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp --- a/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp Fri Mar 19 09:40:14 2010 +0200 +++ b/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp Fri Apr 16 15:31:58 2010 +0300 @@ -29,9 +29,10 @@ #include "dialpadtestview.h" #include "dialpad.h" +#include "dialpadkeyhandler.h" DialpadTestView::DialpadTestView( HbMainWindow& mainWindow ) : - mMainWindow(mainWindow) + mMainWindow(mainWindow), mTapOutsideDismiss(0) { setTitle("DialpadTest"); @@ -52,6 +53,8 @@ SIGNAL(orientationChanged(Qt::Orientation)), SLOT(onOrientationChange(Qt::Orientation))); + menu()->addAction("Tap outside dismiss",this,SLOT(setTapOutsideDismiss())); + // create view widget (recent calls list mockup) createListWidget(); @@ -66,6 +69,9 @@ mLongPressTimer = new QTimer(this); mLongPressTimer->setSingleShot(true); connect(mLongPressTimer,SIGNAL(timeout()),this,SLOT(handleLongKeyPress())); + + mKeyhandler = new DialpadKeyHandler(mDialpad, mMainWindow, this); + mMainWindow.installEventFilter(this); } @@ -99,10 +105,16 @@ if (mMainWindow.orientation() == Qt::Horizontal) { // dialpad takes half of the screen - mDialpad->setPos(QPointF(screenRect.width()/2, - this->scenePos().y())); - mDialpad->setPreferredSize(screenRect.width()/2, - (screenRect.height()-scenePos().y())); + if (layoutDirection() == Qt::LeftToRight) { + mDialpad->setPos(QPointF(screenRect.width()/2, + this->scenePos().y())); + mDialpad->setPreferredSize(screenRect.width()/2, + (screenRect.height()-scenePos().y())); + } else { + mDialpad->setPos(QPointF(0,this->scenePos().y())); + mDialpad->setPreferredSize(screenRect.width()/2, + (screenRect.height()-scenePos().y())); + } } else { qreal screenHeight = screenRect.height(); mDialpad->setPos(0, screenHeight/2.25); @@ -143,7 +155,7 @@ phoneNum.append(index); listItem->setSecondaryText(phoneNum); HbIcon icon(":/qgn_prop_pb_comm_call_large.svg"); - listItem->setDecorationIcon(icon); + listItem->setIcon(icon); mListWidget->addItem(listItem); } setWidget(mListWidget); @@ -184,6 +196,15 @@ return false; } +bool DialpadTestView::event(QEvent * event) +{ + if (event->type() == QEvent::LayoutDirectionChange) { + setDialpadPosition(); + } + + return HbView::event(event); +} + void DialpadTestView::handleLongKeyPress() { HbMessageBox msgBox; @@ -213,3 +234,9 @@ msgBox.exec(); } + +void DialpadTestView::setTapOutsideDismiss() +{ + mTapOutsideDismiss = !mTapOutsideDismiss; + mDialpad->setTapOutsideDismiss(mTapOutsideDismiss); +}