diff -r 427125ac6cb8 -r 7eb70891911c telutils/dialpad/src/dialpadkeyhandler.cpp --- a/telutils/dialpad/src/dialpadkeyhandler.cpp Thu May 27 13:23:05 2010 +0300 +++ b/telutils/dialpad/src/dialpadkeyhandler.cpp Fri Jun 11 14:07:16 2010 +0300 @@ -19,11 +19,13 @@ #ifdef Q_OS_SYMBIAN #include #endif // Q_OS_SYMBIAN +#include "dialpad.h" #include "dialpadkeyhandler.h" #include "dialpadvoicemailboxeventfilter.h" #include "dialpadvideomailboxeventfilter.h" #include "dialpadbluetootheventfilter.h" #include "dialpadkeysequenceeventfilter.h" +#include "dialpademergencycalleventfilter.h" #include "qtphonesrvlog.h" DialpadKeyHandler::DialpadKeyHandler( @@ -35,17 +37,18 @@ mVideoVmbxFilter(0), mBtFilter(0), mKeySequenceFilter(0), - mIsVideoMailboxSupported(false) + mEmergencyCallFilter(0) { PHONE_TRACE; // Variations + bool isVideoMailboxSupported = false; #ifdef Q_OS_SYMBIAN - mIsVideoMailboxSupported = FeatureManager::FeatureSupported(KFeatureIdCsVideoTelephony); + isVideoMailboxSupported = FeatureManager::FeatureSupported(KFeatureIdCsVideoTelephony); #endif // Q_OS_SYMBIAN mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad)); - if(mIsVideoMailboxSupported) { + if (isVideoMailboxSupported) { mVideoVmbxFilter.reset(new DialpadVideoMailboxEventFilter(dialPad)); } mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad)); @@ -53,13 +56,59 @@ // Stack different event filters mMainWindow.installEventFilter(mVmbxFilter.data()); - if(mIsVideoMailboxSupported) { + if (isVideoMailboxSupported) { mMainWindow.installEventFilter(mVideoVmbxFilter.data()); } mMainWindow.installEventFilter(mBtFilter.data()); mMainWindow.installEventFilter(mKeySequenceFilter.data()); } + +DialpadKeyHandler::DialpadKeyHandler( + Dialpad *dialPad, + DialpadKeyHandler::DialpadKeyEventFilters filters, + QObject *parent) + : + QObject(parent), + mMainWindow(*(dialPad->mainWindow())), + mVmbxFilter(0), + mVideoVmbxFilter(0), + mBtFilter(0), + mKeySequenceFilter(0), + mEmergencyCallFilter(0) +{ + PHONE_TRACE; + + if (filters.testFlag(VoiceMailbox)) { + mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad)); + mMainWindow.installEventFilter(mVmbxFilter.data()); + } + + if (filters.testFlag(VideoMailBox)) { + mVideoVmbxFilter.reset( + new DialpadVideoMailboxEventFilter(dialPad)); + mMainWindow.installEventFilter(mVideoVmbxFilter.data()); + } + + if (filters.testFlag(Bluetooth)) { + mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad)); + mMainWindow.installEventFilter(mBtFilter.data()); + } + + if (filters.testFlag(KeySequence)) { + mKeySequenceFilter.reset( + new DialpadKeySequenceEventFilter(dialPad)); + mMainWindow.installEventFilter(mKeySequenceFilter.data()); + } + + if (filters.testFlag(EmergencyCall)) { + mEmergencyCallFilter.reset( + new DialpadEmergencyCallEventFilter(dialPad)); + mMainWindow.installEventFilter(mEmergencyCallFilter.data()); + } +} + + DialpadKeyHandler::~DialpadKeyHandler() { }