diff -r 61f927bc9441 -r 2313cb430f28 telutils/dialpad/src/dialpadinputfield.cpp --- a/telutils/dialpad/src/dialpadinputfield.cpp Thu Sep 02 21:00:29 2010 +0300 +++ b/telutils/dialpad/src/dialpadinputfield.cpp Fri Sep 17 08:33:29 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include #include "dialpadinputfield.h" #include "dialpadbutton.h" @@ -29,15 +30,21 @@ static const int DialpadAutoRepeatInterval = 150; // ms static const int DialpadAutoRepeatDelay = 1000; // ms static const qreal DialpadComponentMargin = 0.75; // units -static const qreal DialpadBackspaceWidth = 9.4; // units -static const qreal DialpadInputFieldHeight = 6.3; // units +static const qreal DialpadBackspaceWidthV = 9.8; // units +static const qreal DialpadBackspaceWidthH = 8.6; // units +static const qreal DialpadInputFieldHeightV = 7.2; // units +static const qreal DialpadInputFieldHeightH = 6.6; // units static const int DialpadMaxEditStringLenght = 100; -DialpadInputField::DialpadInputField(QGraphicsItem* parent) - : HbWidget(parent) +DialpadInputField::DialpadInputField( + const HbMainWindow& mainWindow, + QGraphicsItem* parent) + : HbWidget(parent), + mMainWindow(mainWindow) { // create editor mNumberEditor = new HbLineEdit(this); + mNumberEditor->setObjectName(QLatin1String("numberEdit")); HbEditorInterface editorInterface(mNumberEditor); editorInterface.setFilter(HbPhoneNumberFilter::instance()); editorInterface.setInputConstraints(HbEditorConstraintIgnoreFocus); @@ -45,37 +52,32 @@ mNumberEditor->setMinRows(1); mNumberEditor->setMaxRows(1); mNumberEditor->setAdjustFontSizeToFitHeight(true); + mNumberEditor->setFontSpec(HbFontSpec(HbFontSpec::Primary)); // create backspace button mBackspace = new DialpadButton(this); + mBackspace->setObjectName(QLatin1String("backspaceButton")); mBackspace->setButtonType(DialpadButton::FunctionButton); // for css mBackspace->setFocusPolicy(Qt::NoFocus); mBackspace->setFlag(QGraphicsItem::ItemIsFocusable,false); mBackspace->setIcon(HbIcon(HbBackspaceIcon)); mBackspace->setEnabled(false); - QString buttonName; - buttonName.setNum(Qt::Key_Backspace); - mBackspace->setObjectName(buttonName); mBackspace->setAutoRepeat(true); mBackspace->setAutoRepeatInterval(DialpadAutoRepeatInterval); mBackspace->setAutoRepeatDelay(DialpadAutoRepeatDelay); + mBackspace->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); connect(mNumberEditor,SIGNAL(contentsChanged()), SLOT(onEditorContentChanged())); // set input field layout - qreal unit = HbDeviceProfile::current().unitValue(); - mHeight = (int) DialpadInputFieldHeight * unit; QGraphicsLinearLayout* layout = new QGraphicsLinearLayout; layout->addItem(mNumberEditor); layout->setAlignment(mNumberEditor,Qt::AlignVCenter); layout->addItem(mBackspace); layout->setContentsMargins(0,0,0,0); - layout->setSpacing(DialpadComponentMargin* unit); - // layout parameters - mBackspace->setPreferredWidth(DialpadBackspaceWidth * unit); - mBackspace->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); setLayout(layout); + updateLayout(mMainWindow.orientation()); } DialpadInputField::~DialpadInputField() @@ -92,6 +94,26 @@ return *mBackspace; } +void DialpadInputField::updateLayout(Qt::Orientation orientation) +{ + Q_ASSERT(layout()); + + qreal unit = HbDeviceProfile::profile(&mMainWindow).unitValue(); + + QGraphicsLinearLayout* mainLayout = + static_cast(layout()); + + mainLayout->setSpacing(DialpadComponentMargin* unit); + + if (orientation==Qt::Vertical) { + mHeight = DialpadInputFieldHeightV * unit; + mBackspace->setPreferredWidth(DialpadBackspaceWidthV * unit); + } else { + mHeight = DialpadInputFieldHeightH * unit; + mBackspace->setPreferredWidth(DialpadBackspaceWidthH * unit); + } +} + void DialpadInputField::onEditorContentChanged() { mBackspace->setEnabled(mNumberEditor->text().length());