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 |
24 |
25 #include "dialpadinputfield.h" |
25 #include "dialpadinputfield.h" |
26 #include "dialpadbuttonstyle.h" |
|
27 #include "dialpadbutton.h" |
26 #include "dialpadbutton.h" |
28 |
27 |
29 static const QString HbBackspaceIcon("qtg_mono_backspace2"); |
28 static const QString HbBackspaceIcon("qtg_mono_backspace2"); |
30 static const int DialpadAutoRepeatInterval = 150; // ms |
29 static const int DialpadAutoRepeatInterval = 150; // ms |
31 static const int DialpadAutoRepeatDelay = 1000; // ms |
30 static const int DialpadAutoRepeatDelay = 1000; // ms |
32 static const qreal DialpadComponentMargin = 0.75; // units |
31 static const qreal DialpadComponentMargin = 0.75; // units |
33 static const qreal DialpadBackspaceHeight = 9.4; // units |
32 static const qreal DialpadBackspaceWidth = 9.4; // units |
34 static const qreal DialpadInputFieldHeight = 6.3; // units |
33 static const qreal DialpadInputFieldHeight = 6.3; // units |
35 static const int DialpadMaxEditStringLenght = 100; |
34 static const int DialpadMaxEditStringLenght = 100; |
36 |
35 |
37 DialpadInputField::DialpadInputField(QGraphicsItem* parent) |
36 DialpadInputField::DialpadInputField(QGraphicsItem* parent) |
38 : HbWidget(parent) |
37 : HbWidget(parent) |
39 { |
38 { |
40 // create editor |
39 // create editor |
41 mNumberEditor = new HbLineEdit(this); |
40 mNumberEditor = new HbLineEdit(this); |
42 HbEditorInterface editorInterface(mNumberEditor); |
41 HbEditorInterface editorInterface(mNumberEditor); |
43 editorInterface.setFilter(HbPhoneNumberFilter::instance()); |
42 editorInterface.setFilter(HbPhoneNumberFilter::instance()); |
44 editorInterface.setUpAsPhoneNumberEditor(); |
43 editorInterface.setInputConstraints(HbEditorConstraintIgnoreFocus); |
45 editorInterface.setConstraints(HbEditorConstraintIgnoreFocus); |
|
46 mNumberEditor->setMaxLength(DialpadMaxEditStringLenght); |
44 mNumberEditor->setMaxLength(DialpadMaxEditStringLenght); |
|
45 mNumberEditor->setMinRows(1); |
|
46 mNumberEditor->setMaxRows(2); |
|
47 mNumberEditor->setAdjustFontSizeToFitHeight(true); |
47 |
48 |
48 // create backspace button |
49 // create backspace button |
49 mBackspace = new DialpadButton(this); |
50 mBackspace = new DialpadButton(this); |
50 mFunctionButtonStyle = new DialpadButtonStyle(); |
|
51 mFunctionButtonStyle->setButtonStyle( |
|
52 DialpadButtonStyle::FunctionButtonStyle); |
|
53 mBackspace->setStyle(mFunctionButtonStyle); |
|
54 mBackspace->setButtonType(DialpadButton::FunctionButton); // for css |
51 mBackspace->setButtonType(DialpadButton::FunctionButton); // for css |
55 mBackspace->setFocusPolicy(Qt::NoFocus); |
52 mBackspace->setFocusPolicy(Qt::NoFocus); |
56 mBackspace->setFlag(QGraphicsItem::ItemIsFocusable,false); |
53 mBackspace->setFlag(QGraphicsItem::ItemIsFocusable,false); |
57 mBackspace->setIcon(HbIcon(HbBackspaceIcon)); |
54 mBackspace->setIcon(HbIcon(HbBackspaceIcon)); |
58 mBackspace->setEnabled(false); |
55 mBackspace->setEnabled(false); |
74 layout->setAlignment(mNumberEditor,Qt::AlignVCenter); |
71 layout->setAlignment(mNumberEditor,Qt::AlignVCenter); |
75 layout->addItem(mBackspace); |
72 layout->addItem(mBackspace); |
76 layout->setContentsMargins(0,0,0,0); |
73 layout->setContentsMargins(0,0,0,0); |
77 layout->setSpacing(DialpadComponentMargin* unit); |
74 layout->setSpacing(DialpadComponentMargin* unit); |
78 // layout parameters |
75 // layout parameters |
79 mBackspace->setPreferredWidth(DialpadBackspaceHeight * unit); |
76 mBackspace->setPreferredWidth(DialpadBackspaceWidth * unit); |
80 mBackspace->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); |
77 mBackspace->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); |
81 setLayout(layout); |
78 setLayout(layout); |
82 |
|
83 HbFontSpec editFont(HbFontSpec::Primary); |
|
84 // 85% of input field height |
|
85 editFont.setTextHeight(mHeight*0.85); |
|
86 mNumberEditor->setFontSpec(editFont); |
|
87 } |
79 } |
88 |
80 |
89 DialpadInputField::~DialpadInputField() |
81 DialpadInputField::~DialpadInputField() |
90 { |
82 { |
91 delete mFunctionButtonStyle; |
|
92 } |
83 } |
93 |
84 |
94 HbLineEdit& DialpadInputField::editor() const |
85 HbLineEdit& DialpadInputField::editor() const |
95 { |
86 { |
96 return *mNumberEditor; |
87 return *mNumberEditor; |