telutils/dialpad/src/dialpadkeyhandler.cpp
changeset 32 1f002146abb4
parent 27 7eb70891911c
child 48 78df25012fda
equal deleted inserted replaced
31:a2467631ae02 32:1f002146abb4
    24 #include "dialpadvoicemailboxeventfilter.h"
    24 #include "dialpadvoicemailboxeventfilter.h"
    25 #include "dialpadvideomailboxeventfilter.h"
    25 #include "dialpadvideomailboxeventfilter.h"
    26 #include "dialpadbluetootheventfilter.h"
    26 #include "dialpadbluetootheventfilter.h"
    27 #include "dialpadkeysequenceeventfilter.h"
    27 #include "dialpadkeysequenceeventfilter.h"
    28 #include "dialpademergencycalleventfilter.h"
    28 #include "dialpademergencycalleventfilter.h"
       
    29 #include "dialpadhasheventfilter.h"
    29 #include "qtphonesrvlog.h"
    30 #include "qtphonesrvlog.h"
    30 
    31 
    31 DialpadKeyHandler::DialpadKeyHandler(
    32 DialpadKeyHandler::DialpadKeyHandler(
    32     Dialpad *dialPad, HbMainWindow& mainWindow, QObject *parent) 
    33     Dialpad *dialPad, HbMainWindow& mainWindow, QObject *parent) 
    33     : 
    34     : 
    35 	mMainWindow(mainWindow),
    36 	mMainWindow(mainWindow),
    36 	mVmbxFilter(0),
    37 	mVmbxFilter(0),
    37 	mVideoVmbxFilter(0),
    38 	mVideoVmbxFilter(0),
    38 	mBtFilter(0),
    39 	mBtFilter(0),
    39 	mKeySequenceFilter(0),
    40 	mKeySequenceFilter(0),
    40 	mEmergencyCallFilter(0)
    41 	mEmergencyCallFilter(0),
       
    42 	mHashFilter(0)
    41 {
    43 {
    42     PHONE_TRACE;
    44     PHONE_TRACE;
    43 
    45 
    44     // Variations
    46     // Variations
    45     bool isVideoMailboxSupported = false;
    47     bool isVideoMailboxSupported = false;
    51     if (isVideoMailboxSupported) {
    53     if (isVideoMailboxSupported) {
    52         mVideoVmbxFilter.reset(new DialpadVideoMailboxEventFilter(dialPad));
    54         mVideoVmbxFilter.reset(new DialpadVideoMailboxEventFilter(dialPad));
    53     }
    55     }
    54     mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
    56     mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
    55     mKeySequenceFilter.reset(new DialpadKeySequenceEventFilter(dialPad));
    57     mKeySequenceFilter.reset(new DialpadKeySequenceEventFilter(dialPad));
       
    58     mHashFilter.reset(new DialpadHashEventFilter(dialPad));
    56 
    59 
    57     // Stack different event filters
    60     // Stack different event filters
    58     mMainWindow.installEventFilter(mVmbxFilter.data());
    61     mMainWindow.installEventFilter(mVmbxFilter.data());
    59     if (isVideoMailboxSupported) {
    62     if (isVideoMailboxSupported) {
    60         mMainWindow.installEventFilter(mVideoVmbxFilter.data());    
    63         mMainWindow.installEventFilter(mVideoVmbxFilter.data());    
    61     }
    64     }
    62     mMainWindow.installEventFilter(mBtFilter.data());
    65     mMainWindow.installEventFilter(mBtFilter.data());
    63     mMainWindow.installEventFilter(mKeySequenceFilter.data());
    66     mMainWindow.installEventFilter(mKeySequenceFilter.data());
       
    67     mMainWindow.installEventFilter(mHashFilter.data());
    64 }
    68 }
    65 
    69 
    66 
    70 
    67 DialpadKeyHandler::DialpadKeyHandler(
    71 DialpadKeyHandler::DialpadKeyHandler(
    68     Dialpad *dialPad, 
    72     Dialpad *dialPad, 
    73     mMainWindow(*(dialPad->mainWindow())),
    77     mMainWindow(*(dialPad->mainWindow())),
    74     mVmbxFilter(0),
    78     mVmbxFilter(0),
    75     mVideoVmbxFilter(0),
    79     mVideoVmbxFilter(0),
    76     mBtFilter(0),
    80     mBtFilter(0),
    77     mKeySequenceFilter(0),
    81     mKeySequenceFilter(0),
    78     mEmergencyCallFilter(0)
    82     mEmergencyCallFilter(0),
       
    83     mHashFilter(0)
    79 {
    84 {
    80     PHONE_TRACE;
    85     PHONE_TRACE;
    81     
    86     
    82     if (filters.testFlag(VoiceMailbox)) {
    87     if (filters.testFlag(VoiceMailbox)) {
    83         mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad));
    88         mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad));
   104     if (filters.testFlag(EmergencyCall)) {
   109     if (filters.testFlag(EmergencyCall)) {
   105         mEmergencyCallFilter.reset(
   110         mEmergencyCallFilter.reset(
   106             new DialpadEmergencyCallEventFilter(dialPad));
   111             new DialpadEmergencyCallEventFilter(dialPad));
   107         mMainWindow.installEventFilter(mEmergencyCallFilter.data());
   112         mMainWindow.installEventFilter(mEmergencyCallFilter.data());
   108     }
   113     }
       
   114     
       
   115     if (filters.testFlag(Hash)) {
       
   116         mHashFilter.reset(new DialpadHashEventFilter(dialPad));
       
   117         mMainWindow.installEventFilter(mHashFilter.data());
       
   118     }
   109 }
   119 }
   110 
   120 
   111 
   121 
   112 DialpadKeyHandler::~DialpadKeyHandler()
   122 DialpadKeyHandler::~DialpadKeyHandler()
   113 {
   123 {
       
   124     mMainWindow.removeEventFilter(mVmbxFilter.data());
       
   125     mMainWindow.removeEventFilter(mVideoVmbxFilter.data());
       
   126     mMainWindow.removeEventFilter(mBtFilter.data());
       
   127     mMainWindow.removeEventFilter(mKeySequenceFilter.data());
       
   128     mMainWindow.removeEventFilter(mEmergencyCallFilter.data());
       
   129     mMainWindow.removeEventFilter(mHashFilter.data());
   114 }
   130 }