55 bool DialpadKeySequenceEventFilter::eventFilter(QObject *watched, QEvent *event) |
55 bool DialpadKeySequenceEventFilter::eventFilter(QObject *watched, QEvent *event) |
56 { |
56 { |
57 Q_UNUSED(watched) |
57 Q_UNUSED(watched) |
58 |
58 |
59 const bool eventFiltered = false; |
59 const bool eventFiltered = false; |
60 #ifdef Q_OS_SYMBIAN |
60 #ifdef Q_OS_SYMBIAN |
61 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event); |
|
62 const int keyCode = keyEvent->key(); |
|
63 const int eventType = event->type(); |
|
64 |
|
65 // Code is executed after '#' is pressed as specified in Dialer UI |
61 // Code is executed after '#' is pressed as specified in Dialer UI |
66 // specification. |
62 // specification. |
67 QString keySequenceCandidate = HbStringUtil::convertDigitsTo( |
63 if (QEvent::KeyRelease == event->type()){ |
68 mDialpad->editor().text(), WesternDigit); |
64 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event); |
69 if (QEvent::KeyRelease == eventType && Qt::Key_NumberSign == keyCode) { |
65 if (Qt::Key_NumberSign == keyEvent->key()) { |
70 XQAiwInterfaceDescriptor keySequenceHandler = |
66 QString keySequenceCandidate = HbStringUtil::convertDigitsTo( |
71 findKeySequenceHandler(keySequenceCandidate); |
67 mDialpad->editor().text(), WesternDigit); |
72 if (keySequenceHandler.isValid()) { |
68 XQAiwInterfaceDescriptor keySequenceHandler = |
73 QScopedPointer<XQAiwRequest> request(mAiwMgr.create( |
69 findKeySequenceHandler(keySequenceCandidate); |
74 keySequenceHandler, |
70 if (keySequenceHandler.isValid()) { |
75 "executeKeySequence(QString)", |
71 QScopedPointer<XQAiwRequest> request(mAiwMgr.create( |
76 false)); |
72 keySequenceHandler, |
77 request->setSynchronous(true); |
73 "executeKeySequence(QString)", |
78 request->setBackground(true); |
74 false)); |
79 QList<QVariant> arguments; |
75 request->setSynchronous(true); |
80 arguments << keySequenceCandidate; |
76 request->setBackground(true); |
81 request->setArguments(arguments); |
77 QList<QVariant> arguments; |
82 |
78 arguments << keySequenceCandidate; |
83 QVariant keySequenceProcessed; |
79 request->setArguments(arguments); |
84 bool requestOk = request->send(keySequenceProcessed); |
80 |
85 if (requestOk && keySequenceProcessed.toBool()) { |
81 QVariant keySequenceProcessed; |
86 mDialpad->editor().setText(QString("")); |
82 bool requestOk = request->send(keySequenceProcessed); |
|
83 if (requestOk && keySequenceProcessed.toBool()) { |
|
84 mDialpad->editor().setText(QString("")); |
|
85 } |
87 } |
86 } |
88 } |
87 } |
89 } |
88 } |
90 #else |
89 #else |
91 Q_UNUSED(event) |
90 Q_UNUSED(event) |