telutils/dialpad/src/dialpadkeysequenceeventfilter.cpp
changeset 33 8d5d7fcf9b59
parent 31 a2467631ae02
equal deleted inserted replaced
32:1f002146abb4 33:8d5d7fcf9b59
    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)