telutils/dialpad/src/dialpadkeyhandler.cpp
changeset 32 1f002146abb4
parent 27 7eb70891911c
child 48 78df25012fda
--- a/telutils/dialpad/src/dialpadkeyhandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadkeyhandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -26,6 +26,7 @@
 #include "dialpadbluetootheventfilter.h"
 #include "dialpadkeysequenceeventfilter.h"
 #include "dialpademergencycalleventfilter.h"
+#include "dialpadhasheventfilter.h"
 #include "qtphonesrvlog.h"
 
 DialpadKeyHandler::DialpadKeyHandler(
@@ -37,7 +38,8 @@
 	mVideoVmbxFilter(0),
 	mBtFilter(0),
 	mKeySequenceFilter(0),
-	mEmergencyCallFilter(0)
+	mEmergencyCallFilter(0),
+	mHashFilter(0)
 {
     PHONE_TRACE;
 
@@ -53,6 +55,7 @@
     }
     mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
     mKeySequenceFilter.reset(new DialpadKeySequenceEventFilter(dialPad));
+    mHashFilter.reset(new DialpadHashEventFilter(dialPad));
 
     // Stack different event filters
     mMainWindow.installEventFilter(mVmbxFilter.data());
@@ -61,6 +64,7 @@
     }
     mMainWindow.installEventFilter(mBtFilter.data());
     mMainWindow.installEventFilter(mKeySequenceFilter.data());
+    mMainWindow.installEventFilter(mHashFilter.data());
 }
 
 
@@ -75,7 +79,8 @@
     mVideoVmbxFilter(0),
     mBtFilter(0),
     mKeySequenceFilter(0),
-    mEmergencyCallFilter(0)
+    mEmergencyCallFilter(0),
+    mHashFilter(0)
 {
     PHONE_TRACE;
     
@@ -106,9 +111,20 @@
             new DialpadEmergencyCallEventFilter(dialPad));
         mMainWindow.installEventFilter(mEmergencyCallFilter.data());
     }
+    
+    if (filters.testFlag(Hash)) {
+        mHashFilter.reset(new DialpadHashEventFilter(dialPad));
+        mMainWindow.installEventFilter(mHashFilter.data());
+    }
 }
 
 
 DialpadKeyHandler::~DialpadKeyHandler()
 {
+    mMainWindow.removeEventFilter(mVmbxFilter.data());
+    mMainWindow.removeEventFilter(mVideoVmbxFilter.data());
+    mMainWindow.removeEventFilter(mBtFilter.data());
+    mMainWindow.removeEventFilter(mKeySequenceFilter.data());
+    mMainWindow.removeEventFilter(mEmergencyCallFilter.data());
+    mMainWindow.removeEventFilter(mHashFilter.data());
 }