--- a/telutils/dialpad/src/dialpadinputfield.cpp Mon Aug 23 15:50:31 2010 +0300
+++ b/telutils/dialpad/src/dialpadinputfield.cpp Fri Sep 03 13:59:20 2010 +0300
@@ -21,6 +21,7 @@
#include <hbinputeditorinterface.h>
#include <hbinputstandardfilters.h>
#include <hbdeviceprofile.h>
+#include <hbmainwindow.h>
#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<QGraphicsLinearLayout*>(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());