19 |
19 |
20 #include <hblineedit.h> |
20 #include <hblineedit.h> |
21 #include <hbinputeditorinterface.h> |
21 #include <hbinputeditorinterface.h> |
22 #include <hbinputstandardfilters.h> |
22 #include <hbinputstandardfilters.h> |
23 #include <hbdeviceprofile.h> |
23 #include <hbdeviceprofile.h> |
|
24 #include <hbmainwindow.h> |
24 |
25 |
25 #include "dialpadinputfield.h" |
26 #include "dialpadinputfield.h" |
26 #include "dialpadbutton.h" |
27 #include "dialpadbutton.h" |
27 |
28 |
28 static const QLatin1String HbBackspaceIcon("qtg_mono_backspace2"); |
29 static const QLatin1String HbBackspaceIcon("qtg_mono_backspace2"); |
29 static const int DialpadAutoRepeatInterval = 150; // ms |
30 static const int DialpadAutoRepeatInterval = 150; // ms |
30 static const int DialpadAutoRepeatDelay = 1000; // ms |
31 static const int DialpadAutoRepeatDelay = 1000; // ms |
31 static const qreal DialpadComponentMargin = 0.75; // units |
32 static const qreal DialpadComponentMargin = 0.75; // units |
32 static const qreal DialpadBackspaceWidth = 9.4; // units |
33 static const qreal DialpadBackspaceWidthV = 9.8; // units |
33 static const qreal DialpadInputFieldHeight = 6.3; // units |
34 static const qreal DialpadBackspaceWidthH = 8.6; // units |
|
35 static const qreal DialpadInputFieldHeightV = 7.2; // units |
|
36 static const qreal DialpadInputFieldHeightH = 6.6; // units |
34 static const int DialpadMaxEditStringLenght = 100; |
37 static const int DialpadMaxEditStringLenght = 100; |
35 |
38 |
36 DialpadInputField::DialpadInputField(QGraphicsItem* parent) |
39 DialpadInputField::DialpadInputField( |
37 : HbWidget(parent) |
40 const HbMainWindow& mainWindow, |
|
41 QGraphicsItem* parent) |
|
42 : HbWidget(parent), |
|
43 mMainWindow(mainWindow) |
38 { |
44 { |
39 // create editor |
45 // create editor |
40 mNumberEditor = new HbLineEdit(this); |
46 mNumberEditor = new HbLineEdit(this); |
|
47 mNumberEditor->setObjectName(QLatin1String("numberEdit")); |
41 HbEditorInterface editorInterface(mNumberEditor); |
48 HbEditorInterface editorInterface(mNumberEditor); |
42 editorInterface.setFilter(HbPhoneNumberFilter::instance()); |
49 editorInterface.setFilter(HbPhoneNumberFilter::instance()); |
43 editorInterface.setInputConstraints(HbEditorConstraintIgnoreFocus); |
50 editorInterface.setInputConstraints(HbEditorConstraintIgnoreFocus); |
44 mNumberEditor->setMaxLength(DialpadMaxEditStringLenght); |
51 mNumberEditor->setMaxLength(DialpadMaxEditStringLenght); |
45 mNumberEditor->setMinRows(1); |
52 mNumberEditor->setMinRows(1); |
46 mNumberEditor->setMaxRows(1); |
53 mNumberEditor->setMaxRows(1); |
47 mNumberEditor->setAdjustFontSizeToFitHeight(true); |
54 mNumberEditor->setAdjustFontSizeToFitHeight(true); |
|
55 mNumberEditor->setFontSpec(HbFontSpec(HbFontSpec::Primary)); |
48 |
56 |
49 // create backspace button |
57 // create backspace button |
50 mBackspace = new DialpadButton(this); |
58 mBackspace = new DialpadButton(this); |
|
59 mBackspace->setObjectName(QLatin1String("backspaceButton")); |
51 mBackspace->setButtonType(DialpadButton::FunctionButton); // for css |
60 mBackspace->setButtonType(DialpadButton::FunctionButton); // for css |
52 mBackspace->setFocusPolicy(Qt::NoFocus); |
61 mBackspace->setFocusPolicy(Qt::NoFocus); |
53 mBackspace->setFlag(QGraphicsItem::ItemIsFocusable,false); |
62 mBackspace->setFlag(QGraphicsItem::ItemIsFocusable,false); |
54 mBackspace->setIcon(HbIcon(HbBackspaceIcon)); |
63 mBackspace->setIcon(HbIcon(HbBackspaceIcon)); |
55 mBackspace->setEnabled(false); |
64 mBackspace->setEnabled(false); |
56 QString buttonName; |
|
57 buttonName.setNum(Qt::Key_Backspace); |
|
58 mBackspace->setObjectName(buttonName); |
|
59 mBackspace->setAutoRepeat(true); |
65 mBackspace->setAutoRepeat(true); |
60 mBackspace->setAutoRepeatInterval(DialpadAutoRepeatInterval); |
66 mBackspace->setAutoRepeatInterval(DialpadAutoRepeatInterval); |
61 mBackspace->setAutoRepeatDelay(DialpadAutoRepeatDelay); |
67 mBackspace->setAutoRepeatDelay(DialpadAutoRepeatDelay); |
|
68 mBackspace->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); |
62 |
69 |
63 connect(mNumberEditor,SIGNAL(contentsChanged()), |
70 connect(mNumberEditor,SIGNAL(contentsChanged()), |
64 SLOT(onEditorContentChanged())); |
71 SLOT(onEditorContentChanged())); |
65 |
72 |
66 // set input field layout |
73 // set input field layout |
67 qreal unit = HbDeviceProfile::current().unitValue(); |
|
68 mHeight = (int) DialpadInputFieldHeight * unit; |
|
69 QGraphicsLinearLayout* layout = new QGraphicsLinearLayout; |
74 QGraphicsLinearLayout* layout = new QGraphicsLinearLayout; |
70 layout->addItem(mNumberEditor); |
75 layout->addItem(mNumberEditor); |
71 layout->setAlignment(mNumberEditor,Qt::AlignVCenter); |
76 layout->setAlignment(mNumberEditor,Qt::AlignVCenter); |
72 layout->addItem(mBackspace); |
77 layout->addItem(mBackspace); |
73 layout->setContentsMargins(0,0,0,0); |
78 layout->setContentsMargins(0,0,0,0); |
74 layout->setSpacing(DialpadComponentMargin* unit); |
|
75 // layout parameters |
|
76 mBackspace->setPreferredWidth(DialpadBackspaceWidth * unit); |
|
77 mBackspace->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); |
|
78 setLayout(layout); |
79 setLayout(layout); |
|
80 updateLayout(mMainWindow.orientation()); |
79 } |
81 } |
80 |
82 |
81 DialpadInputField::~DialpadInputField() |
83 DialpadInputField::~DialpadInputField() |
82 { |
84 { |
83 } |
85 } |