Diffstat (limited to 'libkdepim/externalapphandler.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libkdepim/externalapphandler.cpp | 87 |
1 files changed, 63 insertions, 24 deletions
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp index 64caa7d..b57506b 100644 --- a/libkdepim/externalapphandler.cpp +++ b/libkdepim/externalapphandler.cpp | |||
@@ -1,392 +1,421 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of libkdepim. | 2 | This file is part of libkdepim. |
3 | Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | /* | 24 | /* |
25 | Enhanced Version of the file for platform independent KDE tools. | 25 | Enhanced Version of the file for platform independent KDE tools. |
26 | Copyright (c) 2004 Ulf Schenk | 26 | Copyright (c) 2004 Ulf Schenk |
27 | 27 | ||
28 | $Id$ | 28 | $Id$ |
29 | */ | 29 | */ |
30 | #include <stdlib.h> | 30 | #include <stdlib.h> |
31 | 31 | ||
32 | #include <qfile.h> | 32 | #include <qfile.h> |
33 | #include <qmap.h> | 33 | #include <qmap.h> |
34 | #include <qregexp.h> | 34 | #include <qregexp.h> |
35 | 35 | ||
36 | #ifndef DESKTOP_VERSION | 36 | #ifndef DESKTOP_VERSION |
37 | #include <qtopia/qcopenvelope_qws.h> | 37 | #include <qtopia/qcopenvelope_qws.h> |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | #include <kstaticdeleter.h> | 40 | #include <kstaticdeleter.h> |
41 | #include <kmessagebox.h> | 41 | #include <kmessagebox.h> |
42 | 42 | ||
43 | 43 | ||
44 | #include "externalapphandler.h" | 44 | #include "externalapphandler.h" |
45 | 45 | ||
46 | #include "kpimglobalprefs.h" | 46 | #include "kpimglobalprefs.h" |
47 | 47 | ||
48 | /********************************************************************************* | 48 | /********************************************************************************* |
49 | * | 49 | * |
50 | ********************************************************************************/ | 50 | ********************************************************************************/ |
51 | 51 | ||
52 | 52 | ||
53 | QCopTransferItem::QCopTransferItem(const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) | 53 | QCopTransferItem::QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) |
54 | : _sourceMessage(sourceMessage), _targetChannel(targetChannel), _targetMessage(targetMessage) | 54 | : _usedSourceParameters(usedSourceParameters), _sourceMessage(sourceMessage), _targetChannel(targetChannel), _targetMessage(targetMessage) |
55 | { | 55 | { |
56 | //sourceMessage passes later three parameters: sourceChannel, uid, param1 | 56 | //sourceMessage passes later three parameters: sourceChannel, uid, param1 |
57 | _sourceMessageParameters = "(QString,QString,QString)"; | 57 | _sourceMessageParameters = "(QString,QString,QString)"; |
58 | } | 58 | } |
59 | 59 | ||
60 | /*********************************************************************************/ | 60 | /*********************************************************************************/ |
61 | 61 | ||
62 | QCopTransferItem::QCopTransferItem() | 62 | QCopTransferItem::QCopTransferItem() |
63 | { | 63 | { |
64 | } | 64 | } |
65 | 65 | ||
66 | /*********************************************************************************/ | 66 | /*********************************************************************************/ |
67 | bool QCopTransferItem::sendMessageToTarget(const QString& uid, const QString& param1) | 67 | bool QCopTransferItem::sendMessageToTarget(const QString& uid, const QString& param1, const QString& param2, const QString& param3) |
68 | { | 68 | { |
69 | 69 | ||
70 | #ifndef DESKTOP_VERSION | 70 | #ifndef DESKTOP_VERSION |
71 | //sourceMessage passes two parameters: sourceChannel, uid | 71 | //sourceMessage passes two parameters: sourceChannel, uid |
72 | QString sourceMessage = _sourceMessage + _sourceMessageParameters; | 72 | QString sourceMessage = _sourceMessage + _sourceMessageParameters; |
73 | 73 | ||
74 | qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _targetChannel.latin1(), sourceMessage.latin1()); | 74 | qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _targetChannel.latin1(), sourceMessage.latin1()); |
75 | qDebug("passing sourcechannel(%s), uid(%s), param1(%s) as parameter to QCopEnvelope", _sourceChannel.latin1(), uid.latin1(), param1.latin1()); | 75 | qDebug("passing sourcechannel(%s), uid(%s), param1(%s), param3(%s), param3(%s) as parameter to QCopEnvelope", _sourceChannel.latin1(), uid.latin1(), param1.latin1(), param2.latin1(), param3.latin1()); |
76 | 76 | ||
77 | QCopEnvelope e(_targetChannel.latin1(), sourceMessage.latin1()); | 77 | QCopEnvelope e(_targetChannel.latin1(), sourceMessage.latin1()); |
78 | 78 | ||
79 | e << _sourceChannel << uid << param1; | 79 | e << _sourceChannel << uid; |
80 | |||
81 | if (_usedSourceParameters == 1) | ||
82 | e << param1; | ||
83 | else if (_usedSourceParameters == 2) | ||
84 | e << param1 << param2; | ||
85 | else if (_usedSourceParameters == 3) | ||
86 | e << param1 << param2 << param3; | ||
87 | |||
80 | 88 | ||
81 | return true; | 89 | return true; |
82 | 90 | ||
83 | #else | 91 | #else |
84 | KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); | 92 | KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); |
85 | return false; | 93 | return false; |
86 | #endif | 94 | #endif |
87 | 95 | ||
88 | } | 96 | } |
89 | 97 | ||
90 | 98 | ||
91 | /*********************************************************************************/ | 99 | /*********************************************************************************/ |
92 | void QCopTransferItem::setSourceChannel(const QString& sourceChannel) | 100 | void QCopTransferItem::setSourceChannel(const QString& sourceChannel) |
93 | { | 101 | { |
94 | 102 | ||
95 | if (_sourceChannel.isEmpty()) | 103 | if (_sourceChannel.isEmpty()) |
96 | _sourceChannel = sourceChannel; | 104 | _sourceChannel = sourceChannel; |
97 | } | 105 | } |
98 | 106 | ||
99 | 107 | ||
100 | /*********************************************************************************/ | 108 | /*********************************************************************************/ |
101 | bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) | 109 | bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) |
102 | { | 110 | { |
103 | /*US | 111 | /*US |
104 | // copied from old mail2 | 112 | // copied from old mail2 |
105 | static int ii = 0; | 113 | static int ii = 0; |
106 | 114 | ||
107 | // block second call | 115 | // block second call |
108 | if ( ii < 2 ) { | 116 | if ( ii < 2 ) { |
109 | ++ii; | 117 | ++ii; |
110 | if ( ii > 1 ) { | 118 | if ( ii > 1 ) { |
111 | qDebug("qcop call blocked "); | 119 | qDebug("qcop call blocked "); |
112 | return true; | 120 | return true; |
113 | } | 121 | } |
114 | } | 122 | } |
115 | */ | 123 | */ |
116 | qDebug("QCopTransferItem- QCOP message received: %s ", cmsg.data() ); | 124 | qDebug("QCopTransferItem- QCOP message received: %s ", cmsg.data() ); |
117 | 125 | ||
118 | //we are in the target and get a request from the source | 126 | //we are in the target and get a request from the source |
119 | if ( (_sourceMessage + _sourceMessageParameters) == cmsg.data()) | 127 | if ( (_sourceMessage + _sourceMessageParameters) == cmsg.data()) |
120 | { | 128 | { |
121 | QDataStream stream( data, IO_ReadOnly ); | 129 | QDataStream stream( data, IO_ReadOnly ); |
122 | 130 | ||
123 | 131 | ||
124 | QString sourceChannel; | 132 | QString sourceChannel; |
125 | QString uid; | 133 | QString uid; |
126 | QString param1; | 134 | QString param1; |
135 | QString param2; | ||
136 | QString param3; | ||
127 | 137 | ||
128 | stream >> sourceChannel >> uid >> param1; | 138 | stream >> sourceChannel >> uid; |
129 | 139 | ||
130 | emit receivedMessageFromSource(sourceChannel, uid, param1); | 140 | if (_usedSourceParameters == 0) |
141 | { | ||
142 | emit receivedMessageFromSource(sourceChannel, uid); | ||
143 | } | ||
144 | else if (_usedSourceParameters == 1) | ||
145 | { | ||
146 | stream >> param1; | ||
147 | emit receivedMessageFromSource(sourceChannel, uid, param1); | ||
148 | } | ||
149 | else if (_usedSourceParameters == 2) | ||
150 | { | ||
151 | stream >> param1 >> param2; | ||
152 | emit receivedMessageFromSource(sourceChannel, uid, param1, param2); | ||
153 | } | ||
154 | else if (_usedSourceParameters == 3) | ||
155 | { | ||
156 | stream >> param1 >> param2 >> param3; | ||
157 | emit receivedMessageFromSource(sourceChannel, uid, param1, param2, param3); | ||
158 | } | ||
131 | 159 | ||
132 | return true; | 160 | return true; |
133 | } | 161 | } |
134 | 162 | ||
135 | return false; | 163 | return false; |
136 | } | 164 | } |
137 | 165 | ||
138 | 166 | ||
139 | /********************************************************************************* | 167 | /********************************************************************************* |
140 | * | 168 | * |
141 | ********************************************************************************/ | 169 | ********************************************************************************/ |
142 | 170 | ||
143 | 171 | ||
144 | QCopMapTransferItem::QCopMapTransferItem(const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) | 172 | QCopMapTransferItem::QCopMapTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) |
145 | : QCopTransferItem(sourceMessage, targetChannel,targetMessage) | 173 | : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage) |
146 | { | 174 | { |
147 | //targetMessage returns later two parameters: uid, and map<qstring,qstring> | 175 | //targetMessage returns later two parameters: uid, and map<qstring,qstring> |
148 | _targetMessageParameters = "(QString,QMAP<QString,QString>)"; | 176 | _targetMessageParameters = "(QString,QMAP<QString,QString>)"; |
149 | } | 177 | } |
150 | 178 | ||
151 | /*********************************************************************************/ | 179 | /*********************************************************************************/ |
152 | bool QCopMapTransferItem::sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap) | 180 | bool QCopMapTransferItem::sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap) |
153 | { | 181 | { |
154 | #ifndef DESKTOP_VERSION | 182 | #ifndef DESKTOP_VERSION |
155 | //targetMessage passes two parameters: uid, map | 183 | //targetMessage passes two parameters: uid, map |
156 | QString targetMessage = _targetMessage + _targetMessageParameters; | 184 | QString targetMessage = _targetMessage + _targetMessageParameters; |
157 | 185 | ||
158 | qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); | 186 | qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); |
159 | qDebug("passing uid(%s) and map as parameter to QCopEnvelope", uid.latin1()); | 187 | qDebug("passing uid(%s) and map as parameter to QCopEnvelope", uid.latin1()); |
160 | 188 | ||
161 | QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); | 189 | QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); |
162 | //US we need no names in the To field. The emailadresses are enough | 190 | //US we need no names in the To field. The emailadresses are enough |
163 | 191 | ||
164 | e << uid << nameEmailMap; | 192 | e << uid << nameEmailMap; |
165 | 193 | ||
166 | return true; | 194 | return true; |
167 | 195 | ||
168 | #else | 196 | #else |
169 | KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); | 197 | KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); |
170 | return false; | 198 | return false; |
171 | #endif | 199 | #endif |
172 | 200 | ||
173 | } | 201 | } |
174 | 202 | ||
175 | 203 | ||
176 | /*********************************************************************************/ | 204 | /*********************************************************************************/ |
177 | bool QCopMapTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) | 205 | bool QCopMapTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) |
178 | { | 206 | { |
179 | bool res = QCopTransferItem::appMessage( cmsg, data ); | 207 | bool res = QCopTransferItem::appMessage( cmsg, data ); |
180 | 208 | ||
181 | if (res == false) | 209 | if (res == false) |
182 | { | 210 | { |
183 | QDataStream stream( data, IO_ReadOnly ); | 211 | QDataStream stream( data, IO_ReadOnly ); |
184 | 212 | ||
185 | qDebug("QCopMapTransferItem- QCOP message received: %s ", cmsg.data() ); | 213 | qDebug("QCopMapTransferItem- QCOP message received: %s ", cmsg.data() ); |
186 | 214 | ||
187 | //we are in the source and get an answer from the target | 215 | //we are in the source and get an answer from the target |
188 | if ((_targetMessage + _targetMessageParameters) == cmsg.data()) | 216 | if ((_targetMessage + _targetMessageParameters) == cmsg.data()) |
189 | { | 217 | { |
190 | QMap<QString,QString> adrMap; | 218 | QMap<QString,QString> adrMap; |
191 | QString uid; | 219 | QString uid; |
192 | 220 | ||
193 | stream >> uid >> adrMap; | 221 | stream >> uid >> adrMap; |
194 | 222 | ||
195 | emit receivedMessageFromTarget(uid, adrMap); | 223 | emit receivedMessageFromTarget(uid, adrMap); |
196 | 224 | ||
197 | 225 | ||
198 | return true; | 226 | return true; |
199 | } | 227 | } |
200 | } | 228 | } |
201 | 229 | ||
202 | return false; | 230 | return false; |
203 | } | 231 | } |
204 | 232 | ||
205 | 233 | ||
206 | /********************************************************************************* | 234 | /********************************************************************************* |
207 | * | 235 | * |
208 | ********************************************************************************/ | 236 | ********************************************************************************/ |
209 | 237 | ||
210 | 238 | ||
211 | QCopListTransferItem::QCopListTransferItem(const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) | 239 | QCopListTransferItem::QCopListTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) |
212 | : QCopTransferItem(sourceMessage, targetChannel,targetMessage) | 240 | : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage) |
213 | { | 241 | { |
214 | //targetMessage returns later two parameters: uid, and map<qstring,qstring> | 242 | //targetMessage returns later two parameters: uid, and three lists |
215 | _targetMessageParameters = "(QString,QStringList,QStringList,QStringList)"; | 243 | _targetMessageParameters = "(QString,QStringList,QStringList,QStringList)"; |
216 | } | 244 | } |
217 | 245 | ||
218 | /*********************************************************************************/ | 246 | /*********************************************************************************/ |
219 | bool QCopListTransferItem::sendMessageToSource(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3) | 247 | bool QCopListTransferItem::sendMessageToSource(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3) |
220 | { | 248 | { |
221 | #ifndef DESKTOP_VERSION | 249 | #ifndef DESKTOP_VERSION |
222 | //targetMessage passes two parameters: uid, map | 250 | //targetMessage passes two parameters: uid, map |
223 | QString targetMessage = _targetMessage + _targetMessageParameters; | 251 | QString targetMessage = _targetMessage + _targetMessageParameters; |
224 | 252 | ||
225 | qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); | 253 | qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); |
226 | qDebug("passing uid(%s) and list1, list2, list3 as parameter to QCopEnvelope", uid.latin1()); | 254 | qDebug("passing uid(%s) and list1, list2, list3 as parameter to QCopEnvelope", uid.latin1()); |
227 | 255 | ||
228 | QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); | 256 | QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); |
229 | //US we need no names in the To field. The emailadresses are enough | 257 | //US we need no names in the To field. The emailadresses are enough |
230 | 258 | ||
231 | e << uid << list1 << list2 << list3; | 259 | e << uid << list1 << list2 << list3; |
232 | 260 | ||
233 | return true; | 261 | return true; |
234 | 262 | ||
235 | #else | 263 | #else |
236 | KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); | 264 | KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); |
237 | return false; | 265 | return false; |
238 | #endif | 266 | #endif |
239 | 267 | ||
240 | } | 268 | } |
241 | 269 | ||
242 | 270 | ||
243 | /*********************************************************************************/ | 271 | /*********************************************************************************/ |
244 | bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) | 272 | bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) |
245 | { | 273 | { |
246 | bool res = QCopTransferItem::appMessage( cmsg, data ); | 274 | bool res = QCopTransferItem::appMessage( cmsg, data ); |
247 | 275 | ||
248 | if (res == false) | 276 | if (res == false) |
249 | { | 277 | { |
250 | QDataStream stream( data, IO_ReadOnly ); | 278 | QDataStream stream( data, IO_ReadOnly ); |
251 | 279 | ||
252 | qDebug("QCopListTransferItem- QCOP message received: %s ", cmsg.data() ); | 280 | qDebug("QCopListTransferItem- QCOP message received: %s ", cmsg.data() ); |
253 | 281 | ||
254 | //we are in the source and get an answer from the target | 282 | //we are in the source and get an answer from the target |
255 | if ((_targetMessage + _targetMessageParameters) == cmsg.data()) | 283 | if ((_targetMessage + _targetMessageParameters) == cmsg.data()) |
256 | { | 284 | { |
257 | QStringList list1; | 285 | QStringList list1; |
258 | QStringList list2; | 286 | QStringList list2; |
259 | QStringList list3; | 287 | QStringList list3; |
260 | QString uid; | 288 | QString uid; |
261 | 289 | ||
262 | stream >> uid >> list1 >> list2 >> list3; | 290 | stream >> uid >> list1 >> list2 >> list3; |
263 | 291 | ||
264 | emit receivedMessageFromTarget(uid, list1, list2, list3); | 292 | emit receivedMessageFromTarget(uid, list1, list2, list3); |
265 | 293 | ||
266 | 294 | ||
267 | return true; | 295 | return true; |
268 | } | 296 | } |
269 | } | 297 | } |
270 | 298 | ||
271 | return false; | 299 | return false; |
272 | } | 300 | } |
273 | 301 | ||
274 | 302 | ||
275 | 303 | ||
276 | /********************************************************************************* | 304 | /********************************************************************************* |
277 | * | 305 | * |
278 | ********************************************************************************/ | 306 | ********************************************************************************/ |
279 | 307 | ||
280 | 308 | ||
281 | ExternalAppHandler *ExternalAppHandler::sInstance = 0; | 309 | ExternalAppHandler *ExternalAppHandler::sInstance = 0; |
282 | static KStaticDeleter<ExternalAppHandler> staticDeleter; | 310 | static KStaticDeleter<ExternalAppHandler> staticDeleter; |
283 | 311 | ||
284 | ExternalAppHandler::ExternalAppHandler() | 312 | ExternalAppHandler::ExternalAppHandler() |
285 | { | 313 | { |
286 | mDefaultItems.setAutoDelete(true); | 314 | mDefaultItems.setAutoDelete(true); |
287 | 315 | ||
288 | mNameEmailUidListFromKAPITransfer = new QCopListTransferItem("requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList"); | 316 | mNameEmailUidListFromKAPITransfer = new QCopListTransferItem(0, "requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList"); |
289 | connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForNameEmailUidList(const QString&, const QString&, const QString&))); | 317 | connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForNameEmailUidList(const QString&, const QString&))); |
290 | connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); | 318 | connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); |
291 | 319 | ||
292 | //US mFindByEmailFromKAPITransfer = new QCopListTransferItem("requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList"); | 320 | //US mFindByEmailFromKAPITransfer = new QCopListTransferItem(1, "requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList"); |
293 | //US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForFindByEmail(const QString&, const QString&, const QString&))); | 321 | //US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForFindByEmail(const QString&, const QString&, const QString&))); |
294 | //US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedFindByEmailEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); | 322 | //US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedFindByEmailEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); |
295 | 323 | ||
296 | 324 | mDisplayDetails = new QCopListTransferItem(3, "requestDisplayDetailsFromKAPI", "QPE/Application/kapi", ""); | |
325 | connect(mDisplayDetails, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&, const QString&)), this, SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); | ||
297 | } | 326 | } |
298 | 327 | ||
299 | ExternalAppHandler::~ExternalAppHandler() | 328 | ExternalAppHandler::~ExternalAppHandler() |
300 | { | 329 | { |
301 | } | 330 | } |
302 | 331 | ||
303 | void ExternalAppHandler::loadConfig() | 332 | void ExternalAppHandler::loadConfig() |
304 | { | 333 | { |
305 | 334 | ||
306 | mDefaultItems.clear(); | 335 | mDefaultItems.clear(); |
307 | 336 | ||
308 | mEmailAppAvailable = UNDEFINED; | 337 | mEmailAppAvailable = UNDEFINED; |
309 | mPhoneAppAvailable = UNDEFINED; | 338 | mPhoneAppAvailable = UNDEFINED; |
310 | mFaxAppAvailable = UNDEFINED; | 339 | mFaxAppAvailable = UNDEFINED; |
311 | mSMSAppAvailable = UNDEFINED; | 340 | mSMSAppAvailable = UNDEFINED; |
312 | mPagerAppAvailable = UNDEFINED; | 341 | mPagerAppAvailable = UNDEFINED; |
313 | 342 | ||
314 | 343 | ||
315 | QString opiepath = QString::fromLatin1( getenv("OPIEDIR") ); | 344 | QString opiepath = QString::fromLatin1( getenv("OPIEDIR") ); |
316 | QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") ); | 345 | QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") ); |
317 | 346 | ||
318 | if (opiepath.isEmpty()) | 347 | if (opiepath.isEmpty()) |
319 | opiepath = qtopiapath; | 348 | opiepath = qtopiapath; |
320 | 349 | ||
321 | //mailclients | 350 | //mailclients |
322 | QString mailmsg1 = "writeMail(QString,QString)"; | 351 | QString mailmsg1 = "writeMail(QString,QString)"; |
323 | QString mailmsg2 = "writeMail(QMap(QString,QString))"; | 352 | QString mailmsg2 = "writeMail(QMap(QString,QString))"; |
324 | 353 | ||
325 | QString undefined = ""; | 354 | QString undefined = ""; |
326 | 355 | ||
327 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined); | 356 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined); |
328 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined); | 357 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined); |
329 | 358 | ||
330 | if (( QFile::exists( qtopiapath + "/bin/ompi" )) || | 359 | if (( QFile::exists( qtopiapath + "/bin/ompi" )) || |
331 | ( QFile::exists( opiepath + "/bin/ompi" ))) | 360 | ( QFile::exists( opiepath + "/bin/ompi" ))) |
332 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); | 361 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); |
333 | 362 | ||
334 | if ( QFile::exists( qtopiapath + "/bin/qtmail" )) | 363 | if ( QFile::exists( qtopiapath + "/bin/qtmail" )) |
335 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); | 364 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); |
336 | 365 | ||
337 | if ( QFile::exists( opiepath + "/bin/opiemail" )) | 366 | if ( QFile::exists( opiepath + "/bin/opiemail" )) |
338 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); | 367 | addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); |
339 | 368 | ||
340 | 369 | ||
341 | 370 | ||
342 | //phoneclients | 371 | //phoneclients |
343 | 372 | ||
344 | addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined); | 373 | addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined); |
345 | addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined); | 374 | addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined); |
346 | if (( QFile::exists( qtopiapath + "/bin/kppi" )) || | 375 | if (( QFile::exists( qtopiapath + "/bin/kppi" )) || |
347 | ( QFile::exists( opiepath + "/bin/kppi" ))) | 376 | ( QFile::exists( opiepath + "/bin/kppi" ))) |
348 | addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined); | 377 | addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined); |
349 | 378 | ||
350 | //faxclients | 379 | //faxclients |
351 | addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined); | 380 | addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined); |
352 | addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined); | 381 | addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined); |
353 | 382 | ||
354 | //smsclients | 383 | //smsclients |
355 | addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined); | 384 | addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined); |
356 | addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined); | 385 | addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined); |
357 | 386 | ||
358 | //pagerclients | 387 | //pagerclients |
359 | addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined); | 388 | addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined); |
360 | addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined); | 389 | addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined); |
361 | 390 | ||
362 | } | 391 | } |
363 | 392 | ||
364 | ExternalAppHandler *ExternalAppHandler::instance() | 393 | ExternalAppHandler *ExternalAppHandler::instance() |
365 | { | 394 | { |
366 | if ( !sInstance ) { | 395 | if ( !sInstance ) { |
367 | sInstance = staticDeleter.setObject( new ExternalAppHandler() ); | 396 | sInstance = staticDeleter.setObject( new ExternalAppHandler() ); |
368 | sInstance->loadConfig(); | 397 | sInstance->loadConfig(); |
369 | } | 398 | } |
370 | 399 | ||
371 | return sInstance; | 400 | return sInstance; |
372 | } | 401 | } |
373 | 402 | ||
374 | void ExternalAppHandler::addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameter, const QString& message2, const QString& parameter2) | 403 | void ExternalAppHandler::addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameter, const QString& message2, const QString& parameter2) |
375 | { | 404 | { |
376 | DefaultAppItem* dai = new DefaultAppItem(type, id, label, channel, message, parameter, message2, parameter2); | 405 | DefaultAppItem* dai = new DefaultAppItem(type, id, label, channel, message, parameter, message2, parameter2); |
377 | 406 | ||
378 | mDefaultItems.append(dai); | 407 | mDefaultItems.append(dai); |
379 | } | 408 | } |
380 | 409 | ||
381 | 410 | ||
382 | QList<DefaultAppItem> ExternalAppHandler::getAvailableDefaultItems(Types type) | 411 | QList<DefaultAppItem> ExternalAppHandler::getAvailableDefaultItems(Types type) |
383 | { | 412 | { |
384 | QList<DefaultAppItem> list; | 413 | QList<DefaultAppItem> list; |
385 | 414 | ||
386 | DefaultAppItem* dai; | 415 | DefaultAppItem* dai; |
387 | 416 | ||
388 | for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() ) | 417 | for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() ) |
389 | { | 418 | { |
390 | if (dai->_type == type) | 419 | if (dai->_type == type) |
391 | list.append(dai); | 420 | list.append(dai); |
392 | } | 421 | } |
@@ -831,129 +860,139 @@ bool ExternalAppHandler::callByFax( const QString& faxnumber ) | |||
831 | } | 860 | } |
832 | 861 | ||
833 | 862 | ||
834 | //first check if one of the mailers need the emails right in the message. | 863 | //first check if one of the mailers need the emails right in the message. |
835 | message = translateMessage(message, faxnumber, ""); | 864 | message = translateMessage(message, faxnumber, ""); |
836 | 865 | ||
837 | 866 | ||
838 | qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); | 867 | qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); |
839 | qDebug("passing faxnumber(%s) as parameter in the form %s to QCopEnvelope", faxnumber.latin1(), parameters.latin1()); | 868 | qDebug("passing faxnumber(%s) as parameter in the form %s to QCopEnvelope", faxnumber.latin1(), parameters.latin1()); |
840 | 869 | ||
841 | QCopEnvelope e(channel.latin1(), message.latin1()); | 870 | QCopEnvelope e(channel.latin1(), message.latin1()); |
842 | //US we need no names in the To field. The emailadresses are enough | 871 | //US we need no names in the To field. The emailadresses are enough |
843 | 872 | ||
844 | passParameters(&e, parameters, faxnumber, ""); | 873 | passParameters(&e, parameters, faxnumber, ""); |
845 | 874 | ||
846 | 875 | ||
847 | #else | 876 | #else |
848 | KMessageBox::sorry( 0, i18n( "This version does not support the sending of faxes." ) ); | 877 | KMessageBox::sorry( 0, i18n( "This version does not support the sending of faxes." ) ); |
849 | #endif | 878 | #endif |
850 | 879 | ||
851 | 880 | ||
852 | return true; | 881 | return true; |
853 | } | 882 | } |
854 | 883 | ||
855 | /************************************************************************** | 884 | /************************************************************************** |
856 | * | 885 | * |
857 | **************************************************************************/ | 886 | **************************************************************************/ |
858 | 887 | ||
859 | 888 | ||
860 | QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const | 889 | QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const |
861 | { | 890 | { |
862 | message = message.replace( QRegExp("%1"), param1 ); | 891 | message = message.replace( QRegExp("%1"), param1 ); |
863 | return message.replace( QRegExp("%2"), param2 ); | 892 | return message.replace( QRegExp("%2"), param2 ); |
864 | } | 893 | } |
865 | 894 | ||
866 | /************************************************************************** | 895 | /************************************************************************** |
867 | * | 896 | * |
868 | **************************************************************************/ | 897 | **************************************************************************/ |
869 | 898 | ||
870 | void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const | 899 | void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const |
871 | { | 900 | { |
872 | #ifndef DESKTOP_VERSION | 901 | #ifndef DESKTOP_VERSION |
873 | QMap<QString, QString> valmap; | 902 | QMap<QString, QString> valmap; |
874 | bool useValMap = false; | 903 | bool useValMap = false; |
875 | 904 | ||
876 | // first extract all parts of the parameters. | 905 | // first extract all parts of the parameters. |
877 | QStringList paramlist = QStringList::split(";", parameters); | 906 | QStringList paramlist = QStringList::split(";", parameters); |
878 | 907 | ||
879 | //Now check how many parts we have. | 908 | //Now check how many parts we have. |
880 | //=0 :no params to pass | 909 | //=0 :no params to pass |
881 | //>0 :parameters to pass | 910 | //>0 :parameters to pass |
882 | for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) | 911 | for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) |
883 | { | 912 | { |
884 | QString param = (*it); | 913 | QString param = (*it); |
885 | QStringList keyvallist = QStringList::split("=", param); | 914 | QStringList keyvallist = QStringList::split("=", param); |
886 | 915 | ||
887 | //if we have keyvalue pairs, we assume that we pass a map to the envelope | 916 | //if we have keyvalue pairs, we assume that we pass a map to the envelope |
888 | QStringList::Iterator it2 = keyvallist.begin(); | 917 | QStringList::Iterator it2 = keyvallist.begin(); |
889 | QString key = (*it2); | 918 | QString key = (*it2); |
890 | key = key.replace( QRegExp("%1"), param1 ); | 919 | key = key.replace( QRegExp("%1"), param1 ); |
891 | key = key.replace( QRegExp("%2"), param2 ); | 920 | key = key.replace( QRegExp("%2"), param2 ); |
892 | ++it2; | 921 | ++it2; |
893 | 922 | ||
894 | if(it2 != keyvallist.end()) | 923 | if(it2 != keyvallist.end()) |
895 | { | 924 | { |
896 | QString value = (*it2); | 925 | QString value = (*it2); |
897 | value = value.replace( QRegExp("%1"), param1 ); | 926 | value = value.replace( QRegExp("%1"), param1 ); |
898 | value = value.replace( QRegExp("%2"), param2 ); | 927 | value = value.replace( QRegExp("%2"), param2 ); |
899 | 928 | ||
900 | valmap.insert(key, value); | 929 | valmap.insert(key, value); |
901 | useValMap = true; | 930 | useValMap = true; |
902 | } | 931 | } |
903 | else | 932 | else |
904 | { | 933 | { |
905 | // qDebug("pass parameter << %s", key.latin1()); | 934 | // qDebug("pass parameter << %s", key.latin1()); |
906 | (*e) << key; | 935 | (*e) << key; |
907 | } | 936 | } |
908 | } | 937 | } |
909 | 938 | ||
910 | if (useValMap == true) | 939 | if (useValMap == true) |
911 | (*e) << valmap; | 940 | (*e) << valmap; |
912 | 941 | ||
913 | #endif | 942 | #endif |
914 | 943 | ||
915 | } | 944 | } |
916 | 945 | ||
917 | 946 | ||
918 | 947 | ||
919 | /************************************************************************** | 948 | /************************************************************************** |
920 | * | 949 | * |
921 | **************************************************************************/ | 950 | **************************************************************************/ |
922 | 951 | ||
923 | void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) | 952 | void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) |
924 | { | 953 | { |
925 | bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); | 954 | bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); |
926 | 955 | ||
956 | if (!res) | ||
957 | res = mDisplayDetails->appMessage( cmsg, data ); | ||
958 | |||
927 | // if (!res) | 959 | // if (!res) |
928 | // res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); | 960 | // res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); |
929 | } | 961 | } |
930 | 962 | ||
931 | 963 | ||
932 | 964 | ||
933 | bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& uid) | 965 | bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) |
934 | { | 966 | { |
935 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); | 967 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); |
936 | return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(uid, QString::null); | 968 | return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid); |
937 | } | 969 | } |
938 | 970 | ||
939 | bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3) | 971 | bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) |
940 | { | 972 | { |
941 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); | 973 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); |
942 | return mNameEmailUidListFromKAPITransfer->sendMessageToSource(uid, list1, list2, list3); | 974 | return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3); |
943 | } | 975 | } |
944 | 976 | ||
945 | bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& uid, const QString& email) | 977 | bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) |
946 | { | 978 | { |
947 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); | 979 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); |
948 | return mFindByEmailFromKAPITransfer->sendMessageToTarget(uid, email); | 980 | return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); |
949 | } | 981 | } |
950 | 982 | ||
951 | bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3) | 983 | bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) |
952 | { | 984 | { |
953 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); | 985 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); |
954 | return mFindByEmailFromKAPITransfer->sendMessageToSource(uid, list1, list2, list3); | 986 | return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3); |
955 | } | 987 | } |
956 | 988 | ||
989 | bool ExternalAppHandler::requestDetailsFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) | ||
990 | { | ||
991 | mDisplayDetails->setSourceChannel(sourceChannel); | ||
992 | return mDisplayDetails->sendMessageToTarget(sessionuid, name, email, uid); | ||
993 | } | ||
994 | |||
995 | |||
957 | 996 | ||
958 | 997 | ||
959 | 998 | ||