telutils/dialpad/src/dialpadkeyhandler.cpp
changeset 27 7eb70891911c
parent 23 427125ac6cb8
child 32 1f002146abb4
equal deleted inserted replaced
23:427125ac6cb8 27:7eb70891911c
    17 
    17 
    18 #include <hbmainwindow.h>
    18 #include <hbmainwindow.h>
    19 #ifdef Q_OS_SYMBIAN
    19 #ifdef Q_OS_SYMBIAN
    20 #include <featmgr.h>
    20 #include <featmgr.h>
    21 #endif // Q_OS_SYMBIAN
    21 #endif // Q_OS_SYMBIAN
       
    22 #include "dialpad.h"
    22 #include "dialpadkeyhandler.h"
    23 #include "dialpadkeyhandler.h"
    23 #include "dialpadvoicemailboxeventfilter.h"
    24 #include "dialpadvoicemailboxeventfilter.h"
    24 #include "dialpadvideomailboxeventfilter.h"
    25 #include "dialpadvideomailboxeventfilter.h"
    25 #include "dialpadbluetootheventfilter.h"
    26 #include "dialpadbluetootheventfilter.h"
    26 #include "dialpadkeysequenceeventfilter.h"
    27 #include "dialpadkeysequenceeventfilter.h"
       
    28 #include "dialpademergencycalleventfilter.h"
    27 #include "qtphonesrvlog.h"
    29 #include "qtphonesrvlog.h"
    28 
    30 
    29 DialpadKeyHandler::DialpadKeyHandler(
    31 DialpadKeyHandler::DialpadKeyHandler(
    30     Dialpad *dialPad, HbMainWindow& mainWindow, QObject *parent) 
    32     Dialpad *dialPad, HbMainWindow& mainWindow, QObject *parent) 
    31     : 
    33     : 
    33 	mMainWindow(mainWindow),
    35 	mMainWindow(mainWindow),
    34 	mVmbxFilter(0),
    36 	mVmbxFilter(0),
    35 	mVideoVmbxFilter(0),
    37 	mVideoVmbxFilter(0),
    36 	mBtFilter(0),
    38 	mBtFilter(0),
    37 	mKeySequenceFilter(0),
    39 	mKeySequenceFilter(0),
    38 	mIsVideoMailboxSupported(false)
    40 	mEmergencyCallFilter(0)
    39 {
    41 {
    40     PHONE_TRACE;
    42     PHONE_TRACE;
    41 
    43 
    42     // Variations
    44     // Variations
       
    45     bool isVideoMailboxSupported = false;
    43 #ifdef Q_OS_SYMBIAN
    46 #ifdef Q_OS_SYMBIAN
    44     mIsVideoMailboxSupported = FeatureManager::FeatureSupported(KFeatureIdCsVideoTelephony);
    47     isVideoMailboxSupported = FeatureManager::FeatureSupported(KFeatureIdCsVideoTelephony);
    45 #endif // Q_OS_SYMBIAN
    48 #endif // Q_OS_SYMBIAN
    46     
    49     
    47     mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad));
    50     mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad));
    48     if(mIsVideoMailboxSupported) {
    51     if (isVideoMailboxSupported) {
    49         mVideoVmbxFilter.reset(new DialpadVideoMailboxEventFilter(dialPad));
    52         mVideoVmbxFilter.reset(new DialpadVideoMailboxEventFilter(dialPad));
    50     }
    53     }
    51     mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
    54     mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
    52     mKeySequenceFilter.reset(new DialpadKeySequenceEventFilter(dialPad));
    55     mKeySequenceFilter.reset(new DialpadKeySequenceEventFilter(dialPad));
    53 
    56 
    54     // Stack different event filters
    57     // Stack different event filters
    55     mMainWindow.installEventFilter(mVmbxFilter.data());
    58     mMainWindow.installEventFilter(mVmbxFilter.data());
    56     if(mIsVideoMailboxSupported) {
    59     if (isVideoMailboxSupported) {
    57         mMainWindow.installEventFilter(mVideoVmbxFilter.data());    
    60         mMainWindow.installEventFilter(mVideoVmbxFilter.data());    
    58     }
    61     }
    59     mMainWindow.installEventFilter(mBtFilter.data());
    62     mMainWindow.installEventFilter(mBtFilter.data());
    60     mMainWindow.installEventFilter(mKeySequenceFilter.data());
    63     mMainWindow.installEventFilter(mKeySequenceFilter.data());
    61 }
    64 }
    62 
    65 
       
    66 
       
    67 DialpadKeyHandler::DialpadKeyHandler(
       
    68     Dialpad *dialPad, 
       
    69     DialpadKeyHandler::DialpadKeyEventFilters filters, 
       
    70     QObject *parent) 
       
    71     : 
       
    72     QObject(parent),
       
    73     mMainWindow(*(dialPad->mainWindow())),
       
    74     mVmbxFilter(0),
       
    75     mVideoVmbxFilter(0),
       
    76     mBtFilter(0),
       
    77     mKeySequenceFilter(0),
       
    78     mEmergencyCallFilter(0)
       
    79 {
       
    80     PHONE_TRACE;
       
    81     
       
    82     if (filters.testFlag(VoiceMailbox)) {
       
    83         mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad));
       
    84         mMainWindow.installEventFilter(mVmbxFilter.data());
       
    85     }
       
    86     
       
    87     if (filters.testFlag(VideoMailBox)) {
       
    88         mVideoVmbxFilter.reset(
       
    89             new DialpadVideoMailboxEventFilter(dialPad));
       
    90         mMainWindow.installEventFilter(mVideoVmbxFilter.data());
       
    91     }
       
    92     
       
    93     if (filters.testFlag(Bluetooth)) {
       
    94         mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
       
    95         mMainWindow.installEventFilter(mBtFilter.data());
       
    96     }
       
    97     
       
    98     if (filters.testFlag(KeySequence)) {
       
    99         mKeySequenceFilter.reset(
       
   100             new DialpadKeySequenceEventFilter(dialPad));
       
   101         mMainWindow.installEventFilter(mKeySequenceFilter.data());
       
   102     }
       
   103     
       
   104     if (filters.testFlag(EmergencyCall)) {
       
   105         mEmergencyCallFilter.reset(
       
   106             new DialpadEmergencyCallEventFilter(dialPad));
       
   107         mMainWindow.installEventFilter(mEmergencyCallFilter.data());
       
   108     }
       
   109 }
       
   110 
       
   111 
    63 DialpadKeyHandler::~DialpadKeyHandler()
   112 DialpadKeyHandler::~DialpadKeyHandler()
    64 {
   113 {
    65 }
   114 }