telutils/dialpad/src/dialpadinputfield.cpp
changeset 19 e44a8c097b15
parent 15 d7fc66ccd6fb
child 27 7eb70891911c
equal deleted inserted replaced
15:d7fc66ccd6fb 19:e44a8c097b15
    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;