49 TargetWrapper::~TargetWrapper() |
49 TargetWrapper::~TargetWrapper() |
50 { |
50 { |
51 delete selector; |
51 delete selector; |
52 } |
52 } |
53 |
53 |
|
54 void TargetWrapper::close(XQKeyCapture::CapturingFlags flags) |
|
55 { |
|
56 captureFlags &= ~flags; |
|
57 reset(); |
|
58 } |
|
59 |
54 void TargetWrapper::init(XQKeyCapture::CapturingFlags flags) |
60 void TargetWrapper::init(XQKeyCapture::CapturingFlags flags) |
55 { |
61 { |
56 captureFlags = flags; |
62 captureFlags |= flags; |
|
63 reset(); |
|
64 } |
|
65 |
|
66 void TargetWrapper::reset() |
|
67 { |
57 try { |
68 try { |
58 delete selector; |
69 delete selector; |
59 |
70 |
60 QT_TRAP_THROWING(selector = CRemConInterfaceSelector::NewL()); |
71 QT_TRAP_THROWING(selector = CRemConInterfaceSelector::NewL()); |
61 |
72 |
62 if (captureFlags & XQKeyCapture::CaptureBasic) { |
73 if (captureFlags & XQKeyCapture::CaptureBasic) { |
63 QT_TRAP_THROWING(target = CRemConCoreApiTarget::NewL(*selector, *this)); |
74 QT_TRAP_THROWING(target = CRemConCoreApiTarget::NewL(*selector, *this)); |
64 QT_TRAP_THROWING(handler = ResponseHandler::NewL(*target)); |
75 QT_TRAP_THROWING(handler = CResponseHandler::NewL(*target)); |
65 } |
76 } |
66 |
77 |
67 if (captureFlags & XQKeyCapture::CaptureCallHandlingExt) { |
78 if (captureFlags & XQKeyCapture::CaptureCallHandlingExt) { |
68 QT_TRAP_THROWING(targetEx = CRemConCallHandlingTarget::NewL(*selector, *this)); |
79 QT_TRAP_THROWING(targetEx = CRemConCallHandlingTarget::NewL(*selector, *this)); |
69 QT_TRAP_THROWING(handlerEx = ResponseHandlerEx::NewL(*targetEx)); |
80 QT_TRAP_THROWING(handlerEx = CResponseHandlerEx::NewL(*targetEx)); |
70 } |
81 } |
71 |
82 |
72 QT_TRAP_THROWING(selector->OpenTargetL()); |
83 QT_TRAP_THROWING(selector->OpenTargetL()); |
73 |
84 |
74 } catch (const std::exception &e) { |
85 } catch (const std::exception &e) { |