summaryrefslogtreecommitdiffabout
path: root/libkdepim/externalapphandler.cpp
authorzautrix <zautrix>2004-09-07 20:33:23 (UTC)
committer zautrix <zautrix>2004-09-07 20:33:23 (UTC)
commit64a8ef1629f523df3006de5cb2b9882a50d96a05 (patch) (unidiff)
treeb931dc5397b4eec926603080b20eddda131999ff /libkdepim/externalapphandler.cpp
parent9d5c8750ae671e73ec8ebc0a71f30fd30680f2c0 (diff)
downloadkdepimpi-64a8ef1629f523df3006de5cb2b9882a50d96a05.zip
kdepimpi-64a8ef1629f523df3006de5cb2b9882a50d96a05.tar.gz
kdepimpi-64a8ef1629f523df3006de5cb2b9882a50d96a05.tar.bz2
Fixed Kopi-Kapi external app communication
Diffstat (limited to 'libkdepim/externalapphandler.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/externalapphandler.cpp2
1 files changed, 0 insertions, 2 deletions
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index bd83626..6100097 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -117,385 +117,384 @@ void QCopTransferItem::setSourceChannel(const QString& sourceChannel)
117 117
118 118
119/*********************************************************************************/ 119/*********************************************************************************/
120bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) 120bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data )
121{ 121{
122 122
123 // copied from old mail2 123 // copied from old mail2
124/* 124/*
125 static int ii = 0; 125 static int ii = 0;
126 126
127 // block second call 127 // block second call
128 if ( ii < 2 ) { 128 if ( ii < 2 ) {
129 ++ii; 129 ++ii;
130 if ( ii > 1 ) { 130 if ( ii > 1 ) {
131 qDebug("qcop call blocked "); 131 qDebug("qcop call blocked ");
132 return true; 132 return true;
133 } 133 }
134 } 134 }
135*/ 135*/
136 136
137// qDebug("QCopTransferItem- QCOP message received: %s ", cmsg.data() ); 137// qDebug("QCopTransferItem- QCOP message received: %s ", cmsg.data() );
138 138
139 //we are in the target and get a request from the source 139 //we are in the target and get a request from the source
140 if ( (_sourceMessage + _sourceMessageParameters) == cmsg.data()) 140 if ( (_sourceMessage + _sourceMessageParameters) == cmsg.data())
141 { 141 {
142 142
143 QDataStream stream( data, IO_ReadOnly ); 143 QDataStream stream( data, IO_ReadOnly );
144 144
145 145
146 QString sourceChannel; 146 QString sourceChannel;
147 QString uid; 147 QString uid;
148 QString param1; 148 QString param1;
149 QString param2; 149 QString param2;
150 QString param3; 150 QString param3;
151 151
152 stream >> sourceChannel >> uid; 152 stream >> sourceChannel >> uid;
153 153
154 if (_usedSourceParameters == 0) 154 if (_usedSourceParameters == 0)
155 { 155 {
156 emit receivedMessageFromSource(sourceChannel, uid); 156 emit receivedMessageFromSource(sourceChannel, uid);
157 } 157 }
158 else if (_usedSourceParameters == 1) 158 else if (_usedSourceParameters == 1)
159 { 159 {
160 stream >> param1; 160 stream >> param1;
161 emit receivedMessageFromSource(sourceChannel, uid, param1); 161 emit receivedMessageFromSource(sourceChannel, uid, param1);
162 } 162 }
163 else if (_usedSourceParameters == 2) 163 else if (_usedSourceParameters == 2)
164 { 164 {
165 stream >> param1 >> param2; 165 stream >> param1 >> param2;
166 emit receivedMessageFromSource(sourceChannel, uid, param1, param2); 166 emit receivedMessageFromSource(sourceChannel, uid, param1, param2);
167 } 167 }
168 else if (_usedSourceParameters == 3) 168 else if (_usedSourceParameters == 3)
169 { 169 {
170 stream >> param1 >> param2 >> param3; 170 stream >> param1 >> param2 >> param3;
171 emit receivedMessageFromSource(sourceChannel, uid, param1, param2, param3); 171 emit receivedMessageFromSource(sourceChannel, uid, param1, param2, param3);
172 } 172 }
173 173
174 return true; 174 return true;
175 } 175 }
176 176
177 return false; 177 return false;
178} 178}
179 179
180 180
181/********************************************************************************* 181/*********************************************************************************
182 * 182 *
183 ********************************************************************************/ 183 ********************************************************************************/
184 184
185 185
186QCopMapTransferItem::QCopMapTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) 186QCopMapTransferItem::QCopMapTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage)
187 : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage) 187 : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage)
188{ 188{
189 //targetMessage returns later two parameters: uid, and map<qstring,qstring> 189 //targetMessage returns later two parameters: uid, and map<qstring,qstring>
190 _targetMessageParameters = "(QString,QMAP<QString,QString>)"; 190 _targetMessageParameters = "(QString,QMAP<QString,QString>)";
191} 191}
192 192
193/*********************************************************************************/ 193/*********************************************************************************/
194bool QCopMapTransferItem::sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap) 194bool QCopMapTransferItem::sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap)
195{ 195{
196#ifndef DESKTOP_VERSION 196#ifndef DESKTOP_VERSION
197 //targetMessage passes two parameters: uid, map 197 //targetMessage passes two parameters: uid, map
198 QString targetMessage = _targetMessage + _targetMessageParameters; 198 QString targetMessage = _targetMessage + _targetMessageParameters;
199 199
200 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); 200 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1());
201 qDebug("passing uid(%s) and map as parameter to QCopEnvelope", uid.latin1()); 201 qDebug("passing uid(%s) and map as parameter to QCopEnvelope", uid.latin1());
202 202
203 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); 203 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1());
204 //US we need no names in the To field. The emailadresses are enough 204 //US we need no names in the To field. The emailadresses are enough
205 205
206 e << uid << nameEmailMap; 206 e << uid << nameEmailMap;
207 207
208 qApp->processEvents(); 208 qApp->processEvents();
209 209
210 return true; 210 return true;
211 211
212#else 212#else
213 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); 213 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) );
214 return false; 214 return false;
215#endif 215#endif
216 216
217} 217}
218 218
219 219
220/*********************************************************************************/ 220/*********************************************************************************/
221bool QCopMapTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) 221bool QCopMapTransferItem::appMessage( const QCString& cmsg, const QByteArray& data )
222{ 222{
223 bool res = QCopTransferItem::appMessage( cmsg, data ); 223 bool res = QCopTransferItem::appMessage( cmsg, data );
224 224
225 if (res == false) 225 if (res == false)
226 { 226 {
227 QDataStream stream( data, IO_ReadOnly ); 227 QDataStream stream( data, IO_ReadOnly );
228 228
229// qDebug("QCopMapTransferItem- QCOP message received: %s ", cmsg.data() ); 229// qDebug("QCopMapTransferItem- QCOP message received: %s ", cmsg.data() );
230 230
231 //we are in the source and get an answer from the target 231 //we are in the source and get an answer from the target
232 if ((_targetMessage + _targetMessageParameters) == cmsg.data()) 232 if ((_targetMessage + _targetMessageParameters) == cmsg.data())
233 { 233 {
234 QMap<QString,QString> adrMap; 234 QMap<QString,QString> adrMap;
235 QString uid; 235 QString uid;
236 236
237 stream >> uid >> adrMap; 237 stream >> uid >> adrMap;
238 238
239 emit receivedMessageFromTarget(uid, adrMap); 239 emit receivedMessageFromTarget(uid, adrMap);
240 240
241 241
242 return true; 242 return true;
243 } 243 }
244 } 244 }
245 245
246 return false; 246 return false;
247} 247}
248 248
249 249
250/********************************************************************************* 250/*********************************************************************************
251 * 251 *
252 ********************************************************************************/ 252 ********************************************************************************/
253 253
254 254
255QCopListTransferItem::QCopListTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) 255QCopListTransferItem::QCopListTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage)
256 : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage) 256 : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage)
257{ 257{
258 //targetMessage returns later two parameters: uid, and three lists 258 //targetMessage returns later two parameters: uid, and three lists
259 _targetMessageParameters = "(QString,QStringList,QStringList,QStringList)"; 259 _targetMessageParameters = "(QString,QStringList,QStringList,QStringList)";
260} 260}
261 261
262/*********************************************************************************/ 262/*********************************************************************************/
263bool QCopListTransferItem::sendMessageToSource(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 263bool QCopListTransferItem::sendMessageToSource(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
264{ 264{
265#ifndef DESKTOP_VERSION 265#ifndef DESKTOP_VERSION
266 //targetMessage passes two parameters: uid, map 266 //targetMessage passes two parameters: uid, map
267 QString targetMessage = _targetMessage + _targetMessageParameters; 267 QString targetMessage = _targetMessage + _targetMessageParameters;
268 268
269 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); 269 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1());
270 qDebug("passing uid(%s) and list1, list2, list3 as parameter to QCopEnvelope", uid.latin1()); 270 qDebug("passing uid(%s) and list1, list2, list3 as parameter to QCopEnvelope", uid.latin1());
271 271
272 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); 272 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1());
273 //US we need no names in the To field. The emailadresses are enough 273 //US we need no names in the To field. The emailadresses are enough
274 274
275 e << uid << list1 << list2 << list3; 275 e << uid << list1 << list2 << list3;
276 276
277 qApp->processEvents(); 277 qApp->processEvents();
278 278
279 return true; 279 return true;
280 280
281#else 281#else
282 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); 282 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) );
283 return false; 283 return false;
284#endif 284#endif
285 285
286} 286}
287 287
288 288
289/*********************************************************************************/ 289/*********************************************************************************/
290bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) 290bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& data )
291{ 291{
292 bool res = QCopTransferItem::appMessage( cmsg, data ); 292 bool res = QCopTransferItem::appMessage( cmsg, data );
293 293
294 if (res == false) 294 if (res == false)
295 { 295 {
296 QDataStream stream( data, IO_ReadOnly ); 296 QDataStream stream( data, IO_ReadOnly );
297 297
298// qDebug("QCopListTransferItem- QCOP message received: %s ", cmsg.data() ); 298// qDebug("QCopListTransferItem- QCOP message received: %s ", cmsg.data() );
299 299
300 //we are in the source and get an answer from the target 300 //we are in the source and get an answer from the target
301 if ((_targetMessage + _targetMessageParameters) == cmsg.data()) 301 if ((_targetMessage + _targetMessageParameters) == cmsg.data())
302 { 302 {
303 QStringList list1; 303 QStringList list1;
304 QStringList list2; 304 QStringList list2;
305 QStringList list3; 305 QStringList list3;
306 QString uid; 306 QString uid;
307 307
308 stream >> uid >> list1 >> list2 >> list3; 308 stream >> uid >> list1 >> list2 >> list3;
309
310 emit receivedMessageFromTarget(uid, list1, list2, list3); 309 emit receivedMessageFromTarget(uid, list1, list2, list3);
311 310
312 311
313 return true; 312 return true;
314 } 313 }
315 } 314 }
316 315
317 return false; 316 return false;
318} 317}
319 318
320 319
321 320
322/********************************************************************************* 321/*********************************************************************************
323 * 322 *
324 ********************************************************************************/ 323 ********************************************************************************/
325 324
326 325
327ExternalAppHandler *ExternalAppHandler::sInstance = 0; 326ExternalAppHandler *ExternalAppHandler::sInstance = 0;
328static KStaticDeleter<ExternalAppHandler> staticDeleter; 327static KStaticDeleter<ExternalAppHandler> staticDeleter;
329 328
330ExternalAppHandler::ExternalAppHandler() 329ExternalAppHandler::ExternalAppHandler()
331{ 330{
332 mDefaultItems.setAutoDelete(true); 331 mDefaultItems.setAutoDelete(true);
333 332
334 mNameEmailUidListFromKAPITransfer = new QCopListTransferItem(0, "requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList"); 333 mNameEmailUidListFromKAPITransfer = new QCopListTransferItem(0, "requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList");
335 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForNameEmailUidList(const QString&, const QString&))); 334 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForNameEmailUidList(const QString&, const QString&)));
336 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); 335 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)));
337 336
338//US mFindByEmailFromKAPITransfer = new QCopListTransferItem(1, "requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList"); 337//US mFindByEmailFromKAPITransfer = new QCopListTransferItem(1, "requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList");
339//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForFindByEmail(const QString&, const QString&, const QString&))); 338//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForFindByEmail(const QString&, const QString&, const QString&)));
340//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedFindByEmailEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); 339//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedFindByEmailEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)));
341 340
342 mDisplayDetails = new QCopListTransferItem(3, "requestDisplayDetailsFromKAPI", "QPE/Application/kapi", ""); 341 mDisplayDetails = new QCopListTransferItem(3, "requestDisplayDetailsFromKAPI", "QPE/Application/kapi", "");
343 connect(mDisplayDetails, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&, const QString&, const QString&)), this, SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); 342 connect(mDisplayDetails, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&, const QString&, const QString&)), this, SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)));
344} 343}
345 344
346ExternalAppHandler::~ExternalAppHandler() 345ExternalAppHandler::~ExternalAppHandler()
347{ 346{
348} 347}
349 348
350void ExternalAppHandler::loadConfig() 349void ExternalAppHandler::loadConfig()
351{ 350{
352 351
353 mDefaultItems.clear(); 352 mDefaultItems.clear();
354 353
355 mEmailAppAvailable = UNDEFINED; 354 mEmailAppAvailable = UNDEFINED;
356 mPhoneAppAvailable = UNDEFINED; 355 mPhoneAppAvailable = UNDEFINED;
357 mFaxAppAvailable = UNDEFINED; 356 mFaxAppAvailable = UNDEFINED;
358 mSMSAppAvailable = UNDEFINED; 357 mSMSAppAvailable = UNDEFINED;
359 mPagerAppAvailable = UNDEFINED; 358 mPagerAppAvailable = UNDEFINED;
360 359
361 360
362 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") ); 361 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") );
363 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") ); 362 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") );
364 363
365 if (opiepath.isEmpty()) 364 if (opiepath.isEmpty())
366 opiepath = qtopiapath; 365 opiepath = qtopiapath;
367 366
368 //mailclients 367 //mailclients
369 QString mailmsg1 = "writeMail(QString,QString)"; 368 QString mailmsg1 = "writeMail(QString,QString)";
370 QString mailmsg2 = "writeMail(QMap(QString,QString))"; 369 QString mailmsg2 = "writeMail(QMap(QString,QString))";
371 370
372 QString undefined = ""; 371 QString undefined = "";
373 372
374 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined); 373 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined);
375 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined); 374 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined);
376 375
377 if (( QFile::exists( qtopiapath + "/bin/ompi" )) || 376 if (( QFile::exists( qtopiapath + "/bin/ompi" )) ||
378 ( QFile::exists( opiepath + "/bin/ompi" ))) 377 ( QFile::exists( opiepath + "/bin/ompi" )))
379 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 378 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
380 379
381 if ( QFile::exists( qtopiapath + "/bin/qtmail" )) 380 if ( QFile::exists( qtopiapath + "/bin/qtmail" ))
382 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 381 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
383 382
384 if ( QFile::exists( opiepath + "/bin/opiemail" )) 383 if ( QFile::exists( opiepath + "/bin/opiemail" ))
385 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 384 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
386 385
387 386
388 387
389 //phoneclients 388 //phoneclients
390 389
391 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined); 390 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined);
392 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined); 391 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined);
393 if (( QFile::exists( qtopiapath + "/bin/kppi" )) || 392 if (( QFile::exists( qtopiapath + "/bin/kppi" )) ||
394 ( QFile::exists( opiepath + "/bin/kppi" ))) 393 ( QFile::exists( opiepath + "/bin/kppi" )))
395 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined); 394 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined);
396 395
397 //faxclients 396 //faxclients
398 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined); 397 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined);
399 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined); 398 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined);
400 399
401 //smsclients 400 //smsclients
402 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined); 401 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined);
403 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined); 402 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined);
404 403
405 //pagerclients 404 //pagerclients
406 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined); 405 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined);
407 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined); 406 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined);
408 407
409} 408}
410 409
411ExternalAppHandler *ExternalAppHandler::instance() 410ExternalAppHandler *ExternalAppHandler::instance()
412{ 411{
413 if ( !sInstance ) { 412 if ( !sInstance ) {
414 sInstance = staticDeleter.setObject( new ExternalAppHandler() ); 413 sInstance = staticDeleter.setObject( new ExternalAppHandler() );
415 sInstance->loadConfig(); 414 sInstance->loadConfig();
416 } 415 }
417 416
418 return sInstance; 417 return sInstance;
419} 418}
420 419
421void ExternalAppHandler::addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameter, const QString& message2, const QString& parameter2) 420void ExternalAppHandler::addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameter, const QString& message2, const QString& parameter2)
422{ 421{
423 DefaultAppItem* dai = new DefaultAppItem(type, id, label, channel, message, parameter, message2, parameter2); 422 DefaultAppItem* dai = new DefaultAppItem(type, id, label, channel, message, parameter, message2, parameter2);
424 423
425 mDefaultItems.append(dai); 424 mDefaultItems.append(dai);
426} 425}
427 426
428 427
429QList<DefaultAppItem> ExternalAppHandler::getAvailableDefaultItems(Types type) 428QList<DefaultAppItem> ExternalAppHandler::getAvailableDefaultItems(Types type)
430{ 429{
431 QList<DefaultAppItem> list; 430 QList<DefaultAppItem> list;
432 431
433 DefaultAppItem* dai; 432 DefaultAppItem* dai;
434 433
435 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() ) 434 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() )
436 { 435 {
437 if (dai->_type == type) 436 if (dai->_type == type)
438 list.append(dai); 437 list.append(dai);
439 } 438 }
440 439
441 return list; 440 return list;
442} 441}
443 442
444DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid) 443DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid)
445{ 444{
446 DefaultAppItem* dai; 445 DefaultAppItem* dai;
447 446
448 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() ) 447 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() )
449 { 448 {
450 if (dai->_type == type && dai->_id == clientid) 449 if (dai->_type == type && dai->_id == clientid)
451 return dai; 450 return dai;
452 } 451 }
453 452
454 return 0; 453 return 0;
455} 454}
456 455
457bool ExternalAppHandler::isEmailAppAvailable() 456bool ExternalAppHandler::isEmailAppAvailable()
458{ 457{
459#ifndef DESKTOP_VERSION 458#ifndef DESKTOP_VERSION
460 if (mEmailAppAvailable == UNDEFINED) 459 if (mEmailAppAvailable == UNDEFINED)
461 { 460 {
462 int client = KPimGlobalPrefs::instance()->mEmailClient; 461 int client = KPimGlobalPrefs::instance()->mEmailClient;
463 if (client == KPimGlobalPrefs::NONE_EMC) 462 if (client == KPimGlobalPrefs::NONE_EMC)
464 mEmailAppAvailable = UNAVAILABLE; 463 mEmailAppAvailable = UNAVAILABLE;
465 else 464 else
466 mEmailAppAvailable = AVAILABLE; 465 mEmailAppAvailable = AVAILABLE;
467 } 466 }
468 return (mEmailAppAvailable == AVAILABLE); 467 return (mEmailAppAvailable == AVAILABLE);
469 468
470#else //DESKTOP_VERSION 469#else //DESKTOP_VERSION
471 return false; 470 return false;
472#endif //DESKTOP_VERSION 471#endif //DESKTOP_VERSION
473} 472}
474 473
475bool ExternalAppHandler::isSMSAppAvailable() 474bool ExternalAppHandler::isSMSAppAvailable()
476{ 475{
477#ifndef DESKTOP_VERSION 476#ifndef DESKTOP_VERSION
478 if (mSMSAppAvailable == UNDEFINED) 477 if (mSMSAppAvailable == UNDEFINED)
479 { 478 {
480 int client = KPimGlobalPrefs::instance()->mSMSClient; 479 int client = KPimGlobalPrefs::instance()->mSMSClient;
481 if (client == KPimGlobalPrefs::NONE_SMC) 480 if (client == KPimGlobalPrefs::NONE_SMC)
482 mSMSAppAvailable = UNAVAILABLE; 481 mSMSAppAvailable = UNAVAILABLE;
483 else 482 else
484 mSMSAppAvailable = AVAILABLE; 483 mSMSAppAvailable = AVAILABLE;
485 } 484 }
486 485
487 return (mSMSAppAvailable == AVAILABLE); 486 return (mSMSAppAvailable == AVAILABLE);
488#else //DESKTOP_VERSION 487#else //DESKTOP_VERSION
489 return false; 488 return false;
490#endif //DESKTOP_VERSION 489#endif //DESKTOP_VERSION
491} 490}
492 491
493bool ExternalAppHandler::isPhoneAppAvailable() 492bool ExternalAppHandler::isPhoneAppAvailable()
494{ 493{
495#ifndef DESKTOP_VERSION 494#ifndef DESKTOP_VERSION
496 if (mPhoneAppAvailable == UNDEFINED) 495 if (mPhoneAppAvailable == UNDEFINED)
497 { 496 {
498 int client = KPimGlobalPrefs::instance()->mPhoneClient; 497 int client = KPimGlobalPrefs::instance()->mPhoneClient;
499 if (client == KPimGlobalPrefs::NONE_PHC) 498 if (client == KPimGlobalPrefs::NONE_PHC)
500 mPhoneAppAvailable = UNAVAILABLE; 499 mPhoneAppAvailable = UNAVAILABLE;
501 else 500 else
@@ -781,236 +780,235 @@ bool ExternalAppHandler::callBySMS( const QString& phonenumber )
781 passParameters(&e, parameters, phonenumber, ""); 780 passParameters(&e, parameters, phonenumber, "");
782 781
783 782
784#else 783#else
785 KMessageBox::sorry( 0, i18n( "This version does not support the sending of sms." ) ); 784 KMessageBox::sorry( 0, i18n( "This version does not support the sending of sms." ) );
786#endif 785#endif
787 786
788 787
789 return true; 788 return true;
790} 789}
791 790
792/************************************************************************** 791/**************************************************************************
793 * 792 *
794 **************************************************************************/ 793 **************************************************************************/
795 794
796//calls the pagerapplication with the number 795//calls the pagerapplication with the number
797bool ExternalAppHandler::callByPager( const QString& pagernumber ) 796bool ExternalAppHandler::callByPager( const QString& pagernumber )
798{ 797{
799#ifndef DESKTOP_VERSION 798#ifndef DESKTOP_VERSION
800 QString channel; 799 QString channel;
801 QString message; 800 QString message;
802 QString parameters; 801 QString parameters;
803 802
804 803
805 int client = KPimGlobalPrefs::instance()->mPagerClient; 804 int client = KPimGlobalPrefs::instance()->mPagerClient;
806 if (client == KPimGlobalPrefs::OTHER_PAC) 805 if (client == KPimGlobalPrefs::OTHER_PAC)
807 { 806 {
808 channel = KPimGlobalPrefs::instance()->mPagerOtherChannel; 807 channel = KPimGlobalPrefs::instance()->mPagerOtherChannel;
809 message = KPimGlobalPrefs::instance()->mPagerOtherMessage; 808 message = KPimGlobalPrefs::instance()->mPagerOtherMessage;
810 parameters = KPimGlobalPrefs::instance()->mPagerOtherMessageParameters; 809 parameters = KPimGlobalPrefs::instance()->mPagerOtherMessageParameters;
811 } 810 }
812 else 811 else
813 { 812 {
814 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(PAGER, client); 813 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(PAGER, client);
815 if (!dai) 814 if (!dai)
816 { 815 {
817 qDebug("could not find configured pager application."); 816 qDebug("could not find configured pager application.");
818 return false; 817 return false;
819 } 818 }
820 channel = dai->_channel; 819 channel = dai->_channel;
821 message = dai->_message; 820 message = dai->_message;
822 parameters = dai->_parameters; 821 parameters = dai->_parameters;
823 } 822 }
824 823
825 824
826 //first check if one of the mailers need the emails right in the message. 825 //first check if one of the mailers need the emails right in the message.
827 message = translateMessage(message, pagernumber, ""); 826 message = translateMessage(message, pagernumber, "");
828 827
829 828
830 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 829 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
831 qDebug("passing pagernumber(%s) as parameter in the form %s to QCopEnvelope", pagernumber.latin1(), parameters.latin1()); 830 qDebug("passing pagernumber(%s) as parameter in the form %s to QCopEnvelope", pagernumber.latin1(), parameters.latin1());
832 831
833 QCopEnvelope e(channel.latin1(), message.latin1()); 832 QCopEnvelope e(channel.latin1(), message.latin1());
834 //US we need no names in the To field. The emailadresses are enough 833 //US we need no names in the To field. The emailadresses are enough
835 834
836 passParameters(&e, parameters, pagernumber, ""); 835 passParameters(&e, parameters, pagernumber, "");
837 836
838 837
839#else 838#else
840 KMessageBox::sorry( 0, i18n( "This version does not support paging." ) ); 839 KMessageBox::sorry( 0, i18n( "This version does not support paging." ) );
841#endif 840#endif
842 841
843 842
844 return true; 843 return true;
845} 844}
846 845
847/************************************************************************** 846/**************************************************************************
848 * 847 *
849 **************************************************************************/ 848 **************************************************************************/
850 849
851//calls the faxapplication with the number 850//calls the faxapplication with the number
852bool ExternalAppHandler::callByFax( const QString& faxnumber ) 851bool ExternalAppHandler::callByFax( const QString& faxnumber )
853{ 852{
854#ifndef DESKTOP_VERSION 853#ifndef DESKTOP_VERSION
855 QString channel; 854 QString channel;
856 QString message; 855 QString message;
857 QString parameters; 856 QString parameters;
858 857
859 858
860 int client = KPimGlobalPrefs::instance()->mFaxClient; 859 int client = KPimGlobalPrefs::instance()->mFaxClient;
861 if (client == KPimGlobalPrefs::OTHER_FAC) 860 if (client == KPimGlobalPrefs::OTHER_FAC)
862 { 861 {
863 channel = KPimGlobalPrefs::instance()->mFaxOtherChannel; 862 channel = KPimGlobalPrefs::instance()->mFaxOtherChannel;
864 message = KPimGlobalPrefs::instance()->mFaxOtherMessage; 863 message = KPimGlobalPrefs::instance()->mFaxOtherMessage;
865 parameters = KPimGlobalPrefs::instance()->mFaxOtherMessageParameters; 864 parameters = KPimGlobalPrefs::instance()->mFaxOtherMessageParameters;
866 } 865 }
867 else 866 else
868 { 867 {
869 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(FAX, client); 868 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(FAX, client);
870 if (!dai) 869 if (!dai)
871 { 870 {
872 qDebug("could not find configured fax application."); 871 qDebug("could not find configured fax application.");
873 return false; 872 return false;
874 } 873 }
875 channel = dai->_channel; 874 channel = dai->_channel;
876 message = dai->_message; 875 message = dai->_message;
877 parameters = dai->_parameters; 876 parameters = dai->_parameters;
878 } 877 }
879 878
880 879
881 //first check if one of the mailers need the emails right in the message. 880 //first check if one of the mailers need the emails right in the message.
882 message = translateMessage(message, faxnumber, ""); 881 message = translateMessage(message, faxnumber, "");
883 882
884 883
885 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 884 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
886 qDebug("passing faxnumber(%s) as parameter in the form %s to QCopEnvelope", faxnumber.latin1(), parameters.latin1()); 885 qDebug("passing faxnumber(%s) as parameter in the form %s to QCopEnvelope", faxnumber.latin1(), parameters.latin1());
887 886
888 QCopEnvelope e(channel.latin1(), message.latin1()); 887 QCopEnvelope e(channel.latin1(), message.latin1());
889 //US we need no names in the To field. The emailadresses are enough 888 //US we need no names in the To field. The emailadresses are enough
890 889
891 passParameters(&e, parameters, faxnumber, ""); 890 passParameters(&e, parameters, faxnumber, "");
892 891
893 892
894#else 893#else
895 KMessageBox::sorry( 0, i18n( "This version does not support the sending of faxes." ) ); 894 KMessageBox::sorry( 0, i18n( "This version does not support the sending of faxes." ) );
896#endif 895#endif
897 896
898 897
899 return true; 898 return true;
900} 899}
901 900
902/************************************************************************** 901/**************************************************************************
903 * 902 *
904 **************************************************************************/ 903 **************************************************************************/
905 904
906 905
907QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const 906QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const
908{ 907{
909 message = message.replace( QRegExp("%1"), param1 ); 908 message = message.replace( QRegExp("%1"), param1 );
910 return message.replace( QRegExp("%2"), param2 ); 909 return message.replace( QRegExp("%2"), param2 );
911} 910}
912 911
913/************************************************************************** 912/**************************************************************************
914 * 913 *
915 **************************************************************************/ 914 **************************************************************************/
916 915
917void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const 916void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const
918{ 917{
919#ifndef DESKTOP_VERSION 918#ifndef DESKTOP_VERSION
920 QMap<QString, QString> valmap; 919 QMap<QString, QString> valmap;
921 bool useValMap = false; 920 bool useValMap = false;
922 921
923 // first extract all parts of the parameters. 922 // first extract all parts of the parameters.
924 QStringList paramlist = QStringList::split(";", parameters); 923 QStringList paramlist = QStringList::split(";", parameters);
925 924
926 //Now check how many parts we have. 925 //Now check how many parts we have.
927 //=0 :no params to pass 926 //=0 :no params to pass
928 //>0 :parameters to pass 927 //>0 :parameters to pass
929 for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) 928 for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it )
930 { 929 {
931 QString param = (*it); 930 QString param = (*it);
932 QStringList keyvallist = QStringList::split("=", param); 931 QStringList keyvallist = QStringList::split("=", param);
933 932
934 //if we have keyvalue pairs, we assume that we pass a map to the envelope 933 //if we have keyvalue pairs, we assume that we pass a map to the envelope
935 QStringList::Iterator it2 = keyvallist.begin(); 934 QStringList::Iterator it2 = keyvallist.begin();
936 QString key = (*it2); 935 QString key = (*it2);
937 key = key.replace( QRegExp("%1"), param1 ); 936 key = key.replace( QRegExp("%1"), param1 );
938 key = key.replace( QRegExp("%2"), param2 ); 937 key = key.replace( QRegExp("%2"), param2 );
939 ++it2; 938 ++it2;
940 939
941 if(it2 != keyvallist.end()) 940 if(it2 != keyvallist.end())
942 { 941 {
943 QString value = (*it2); 942 QString value = (*it2);
944 value = value.replace( QRegExp("%1"), param1 ); 943 value = value.replace( QRegExp("%1"), param1 );
945 value = value.replace( QRegExp("%2"), param2 ); 944 value = value.replace( QRegExp("%2"), param2 );
946 945
947 valmap.insert(key, value); 946 valmap.insert(key, value);
948 useValMap = true; 947 useValMap = true;
949 } 948 }
950 else 949 else
951 { 950 {
952 // qDebug("pass parameter << %s", key.latin1()); 951 // qDebug("pass parameter << %s", key.latin1());
953 (*e) << key; 952 (*e) << key;
954 } 953 }
955 } 954 }
956 955
957 if (useValMap == true) 956 if (useValMap == true)
958 (*e) << valmap; 957 (*e) << valmap;
959 958
960#endif 959#endif
961 960
962} 961}
963 962
964 963
965 964
966/************************************************************************** 965/**************************************************************************
967 * 966 *
968 **************************************************************************/ 967 **************************************************************************/
969 968
970void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) 969void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data )
971{ 970{
972 bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); 971 bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
973
974 if (!res) 972 if (!res)
975 res = mDisplayDetails->appMessage( cmsg, data ); 973 res = mDisplayDetails->appMessage( cmsg, data );
976 974
977// if (!res) 975// if (!res)
978// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); 976// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
979} 977}
980 978
981 979
982 980
983bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) 981bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid)
984{ 982{
985 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); 983 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
986 return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid); 984 return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid);
987} 985}
988 986
989bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 987bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
990{ 988{
991 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); 989 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
992 return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3); 990 return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3);
993} 991}
994 992
995bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) 993bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email)
996{ 994{
997 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); 995 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
998 return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); 996 return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email);
999} 997}
1000 998
1001bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 999bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
1002{ 1000{
1003 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); 1001 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
1004 return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3); 1002 return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3);
1005} 1003}
1006 1004
1007bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid) 1005bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid)
1008{ 1006{
1009 mDisplayDetails->setSourceChannel(""); 1007 mDisplayDetails->setSourceChannel("");
1010 return mDisplayDetails->sendMessageToTarget("", name, email, uid); 1008 return mDisplayDetails->sendMessageToTarget("", name, email, uid);
1011} 1009}
1012 1010
1013 1011
1014 1012
1015 1013
1016 1014