summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/externalapphandler.cpp68
-rw-r--r--libkdepim/externalapphandler.h32
2 files changed, 86 insertions, 14 deletions
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index 99aee86..07bdff2 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -211,187 +211,217 @@ bool QCopMapTransferItem::sendMessageToSource(const QString& uid, const QMap<QSt
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,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, const QStringList& list4, const QStringList& list5, const QStringList& list6)
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("3Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); 269 qDebug("3Using 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, list4, list5, list6 as parameter to QCopEnvelope", uid.latin1());
271
272
273 for ( int i = 0; i < list3.count(); i++)
274 qDebug("listentry list3: %s",list3[i].latin1());
271 275
272 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); 276 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1());
273 //US we need no names in the To field. The emailadresses are enough 277 //US we need no names in the To field. The emailadresses are enough
274 278
275 e << uid << list1 << list2 << list3; 279 e << uid << list1 << list2 << list3 << list4 << list5 << list6;
276 280
277 qApp->processEvents(); 281 qApp->processEvents();
278 282
279 return true; 283 return true;
280 284
281#else 285#else
282 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); 286 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) );
283 return false; 287 return false;
284#endif 288#endif
285 289
286} 290}
287 291
288 292
289/*********************************************************************************/ 293/*********************************************************************************/
290bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) 294bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& data )
291{ 295{
292 bool res = QCopTransferItem::appMessage( cmsg, data ); 296 bool res = QCopTransferItem::appMessage( cmsg, data );
293 qDebug("1QCopListTransferItem- QCOP message received: %s ", cmsg.data() ); 297 qDebug("1QCopListTransferItem- QCOP message received: %s ", cmsg.data() );
294 298
295 if (res == false) 299 if (res == false)
296 { 300 {
297 QDataStream stream( data, IO_ReadOnly ); 301 QDataStream stream( data, IO_ReadOnly );
298 302
299 qDebug("2QCopListTransferItem- QCOP message received: %s ", cmsg.data() ); 303 qDebug("2QCopListTransferItem- QCOP message received: %s ", cmsg.data() );
300 304
301 //we are in the source and get an answer from the target 305 //we are in the source and get an answer from the target
302 if ((_targetMessage + _targetMessageParameters) == cmsg.data()) 306 if ((_targetMessage + _targetMessageParameters) == cmsg.data())
303 { 307 {
304 QStringList list1; 308 QStringList list1;
305 QStringList list2; 309 QStringList list2;
306 QStringList list3; 310 QStringList list3;
311 QStringList list4;
312 QStringList list5;
313 QStringList list6;
307 QString uid; 314 QString uid;
308 315
309 stream >> uid >> list1 >> list2 >> list3; 316 qDebug("3QCopListTransferItem- QCOP message received: %s ", cmsg.data() );
310 emit receivedMessageFromTarget(uid, list1, list2, list3); 317
318 stream >> uid >> list1 >> list2 >> list3 >> list4 >> list5 >> list6;
319 emit receivedMessageFromTarget(uid, list1, list2, list3, list4, list5, list6);
311 320
312 321
313 return true; 322 return true;
314 } 323 }
315 } 324 }
316 325
317 return false; 326 return false;
318} 327}
319 328
320 329
321 330
322/********************************************************************************* 331/*********************************************************************************
323 * 332 *
324 ********************************************************************************/ 333 ********************************************************************************/
325 334
326 335
327ExternalAppHandler *ExternalAppHandler::sInstance = 0; 336ExternalAppHandler *ExternalAppHandler::sInstance = 0;
328static KStaticDeleter<ExternalAppHandler> staticDeleter; 337static KStaticDeleter<ExternalAppHandler> staticDeleter;
329 338
330ExternalAppHandler::ExternalAppHandler() 339ExternalAppHandler::ExternalAppHandler()
331{ 340{
332 mDefaultItems.setAutoDelete(true); 341 mDefaultItems.setAutoDelete(true);
333 342
334 mNameEmailUidListFromKAPITransfer = new QCopListTransferItem(0, "requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList"); 343 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&))); 344 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&))); 345 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)), this, SLOT (receivedNameEmailUidList_Slot(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)));
337 346
338//US mFindByEmailFromKAPITransfer = new QCopListTransferItem(1, "requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList"); 347//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&))); 348//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&))); 349//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 350
342 mDisplayDetails = new QCopListTransferItem(3, "requestDisplayDetailsFromKAPI", "QPE/Application/kapi", ""); 351 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&))); 352 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&)));
353
354
355
356 mBirthdayListFromKAPITransfer = new QCopListTransferItem(0, "requestBirthdayListFromKAPI", "QPE/Application/kapi", "receiveBirthdayList");
357 connect(mBirthdayListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForBirthdayList(const QString&, const QString&)));
358 connect(mBirthdayListFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)));
359
360
344} 361}
345 362
346ExternalAppHandler::~ExternalAppHandler() 363ExternalAppHandler::~ExternalAppHandler()
347{ 364{
348} 365}
349 366
367void ExternalAppHandler::receivedNameEmailUidList_Slot(const QString& uid,
368 const QStringList& nameList,
369 const QStringList& emailList,
370 const QStringList& uidList,
371 const QStringList&,
372 const QStringList&,
373 const QStringList& )
374{
375 // this method is a conevnient way to reduce the number of parameters I have to pass
376 emit receivedNameEmailUidListEvent(uid, nameList, emailList, uidList);
377}
378
379
350void ExternalAppHandler::loadConfig() 380void ExternalAppHandler::loadConfig()
351{ 381{
352 382
353 mDefaultItems.clear(); 383 mDefaultItems.clear();
354 mEmailAppAvailable = UNDEFINED; 384 mEmailAppAvailable = UNDEFINED;
355 mPhoneAppAvailable = UNDEFINED; 385 mPhoneAppAvailable = UNDEFINED;
356 mFaxAppAvailable = UNDEFINED; 386 mFaxAppAvailable = UNDEFINED;
357 mSMSAppAvailable = UNDEFINED; 387 mSMSAppAvailable = UNDEFINED;
358 mPagerAppAvailable = UNDEFINED; 388 mPagerAppAvailable = UNDEFINED;
359 mSIPAppAvailable = UNDEFINED; 389 mSIPAppAvailable = UNDEFINED;
360 390
361 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") ); 391 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") );
362 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") ); 392 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") );
363 393
364 if (opiepath.isEmpty()) 394 if (opiepath.isEmpty())
365 opiepath = qtopiapath; 395 opiepath = qtopiapath;
366 396
367 //mailclients 397 //mailclients
368 QString mailmsg1 = "writeMail(QString,QString)"; 398 QString mailmsg1 = "writeMail(QString,QString)";
369 QString mailmsg2 = "writeMail(QMap(QString,QString))"; 399 QString mailmsg2 = "writeMail(QMap(QString,QString))";
370 400
371 QString undefined = ""; 401 QString undefined = "";
372 402
373 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined); 403 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined);
374 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined); 404 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined);
375 405
376 if (( QFile::exists( qtopiapath + "/bin/ompi" )) || 406 if (( QFile::exists( qtopiapath + "/bin/ompi" )) ||
377 ( QFile::exists( opiepath + "/bin/ompi" ))) 407 ( QFile::exists( opiepath + "/bin/ompi" )))
378 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 408 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
379 409
380 if ( QFile::exists( qtopiapath + "/bin/qtmail" )) 410 if ( QFile::exists( qtopiapath + "/bin/qtmail" ))
381 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 411 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
382 412
383 if ( QFile::exists( opiepath + "/bin/opiemail" )) 413 if ( QFile::exists( opiepath + "/bin/opiemail" ))
384 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 414 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
385 415
386 416
387 417
388 //phoneclients 418 //phoneclients
389 419
390 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined); 420 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined);
391 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined); 421 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined);
392 if (( QFile::exists( qtopiapath + "/bin/kppi" )) || 422 if (( QFile::exists( qtopiapath + "/bin/kppi" )) ||
393 ( QFile::exists( opiepath + "/bin/kppi" ))) 423 ( QFile::exists( opiepath + "/bin/kppi" )))
394 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined); 424 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined);
395 425
396 //faxclients 426 //faxclients
397 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined); 427 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined);
@@ -1004,91 +1034,109 @@ void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& paramete
1004 //Now check how many parts we have. 1034 //Now check how many parts we have.
1005 //=0 :no params to pass 1035 //=0 :no params to pass
1006 //>0 :parameters to pass 1036 //>0 :parameters to pass
1007 for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) 1037 for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it )
1008 { 1038 {
1009 QString param = (*it); 1039 QString param = (*it);
1010 QStringList keyvallist = QStringList::split("=", param); 1040 QStringList keyvallist = QStringList::split("=", param);
1011 1041
1012 //if we have keyvalue pairs, we assume that we pass a map to the envelope 1042 //if we have keyvalue pairs, we assume that we pass a map to the envelope
1013 QStringList::Iterator it2 = keyvallist.begin(); 1043 QStringList::Iterator it2 = keyvallist.begin();
1014 QString key = (*it2); 1044 QString key = (*it2);
1015 key = key.replace( QRegExp("%1"), param1 ); 1045 key = key.replace( QRegExp("%1"), param1 );
1016 key = key.replace( QRegExp("%2"), param2 ); 1046 key = key.replace( QRegExp("%2"), param2 );
1017 ++it2; 1047 ++it2;
1018 1048
1019 if(it2 != keyvallist.end()) 1049 if(it2 != keyvallist.end())
1020 { 1050 {
1021 QString value = (*it2); 1051 QString value = (*it2);
1022 value = value.replace( QRegExp("%1"), param1 ); 1052 value = value.replace( QRegExp("%1"), param1 );
1023 value = value.replace( QRegExp("%2"), param2 ); 1053 value = value.replace( QRegExp("%2"), param2 );
1024 1054
1025 valmap.insert(key, value); 1055 valmap.insert(key, value);
1026 useValMap = true; 1056 useValMap = true;
1027 } 1057 }
1028 else 1058 else
1029 { 1059 {
1030 // qDebug("pass parameter << %s", key.latin1()); 1060 // qDebug("pass parameter << %s", key.latin1());
1031 (*e) << key; 1061 (*e) << key;
1032 } 1062 }
1033 } 1063 }
1034 1064
1035 if (useValMap == true) 1065 if (useValMap == true)
1036 (*e) << valmap; 1066 (*e) << valmap;
1037 1067
1038#endif 1068#endif
1039 1069
1040} 1070}
1041 1071
1042 1072
1043 1073
1044/************************************************************************** 1074/**************************************************************************
1045 * 1075 *
1046 **************************************************************************/ 1076 **************************************************************************/
1047 1077
1048void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) 1078void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data )
1049{ 1079{
1050 bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); 1080 bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
1051 if (!res) 1081 if (!res)
1082 res = mBirthdayListFromKAPITransfer->appMessage( cmsg, data );
1083
1084 if (!res)
1052 res = mDisplayDetails->appMessage( cmsg, data ); 1085 res = mDisplayDetails->appMessage( cmsg, data );
1053 1086
1054// if (!res) 1087// if (!res)
1055// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); 1088// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
1056} 1089}
1057 1090
1058 1091
1059 1092
1060bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) 1093bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid)
1061{ 1094{
1062 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); 1095 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
1063 return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid); 1096 return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid);
1064} 1097}
1065 1098
1066bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 1099bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
1067{ 1100{
1068 1101 QStringList list4, list5, list6;
1102
1069 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); 1103 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
1070 return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3); 1104 return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
1071} 1105}
1072 1106
1073bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) 1107bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email)
1074{ 1108{
1075 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); 1109 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
1076 return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); 1110 return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email);
1077} 1111}
1078 1112
1079bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 1113bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
1080{ 1114{
1115 QStringList list4, list5, list6;
1116
1081 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); 1117 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
1082 return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3); 1118 return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
1083} 1119}
1084 1120
1085bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid) 1121bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid)
1086{ 1122{
1087 mDisplayDetails->setSourceChannel(""); 1123 mDisplayDetails->setSourceChannel("");
1088 return mDisplayDetails->sendMessageToTarget("", name, email, uid); 1124 return mDisplayDetails->sendMessageToTarget("", name, email, uid);
1089} 1125}
1090 1126
1127bool ExternalAppHandler::requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid)
1128{
1129 mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel);
1130 return mBirthdayListFromKAPITransfer->sendMessageToTarget(sessionuid);
1131}
1132
1133bool ExternalAppHandler::returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4, const QStringList& list5, const QStringList& list6)
1134{
1135 mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel);
1136 return mBirthdayListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
1137}
1138
1091 1139
1092 1140
1093 1141
1094 1142
diff --git a/libkdepim/externalapphandler.h b/libkdepim/externalapphandler.h
index cfe577b..4c6f1ea 100644
--- a/libkdepim/externalapphandler.h
+++ b/libkdepim/externalapphandler.h
@@ -14,147 +14,146 @@
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/*
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#ifndef EXTERNALAPPHANDLER_H 31#ifndef EXTERNALAPPHANDLER_H
32#define EXTERNALAPPHANDLER_H 32#define EXTERNALAPPHANDLER_H
33 33
34#include <qobject.h> 34#include <qobject.h>
35#include <qlist.h> 35#include <qlist.h>
36#include <qmap.h> 36#include <qmap.h>
37 37
38class QCopEnvelope; 38class QCopEnvelope;
39 39
40 40
41class ExternalAppHandler; 41class ExternalAppHandler;
42class QCopTransferItem : public QObject 42class QCopTransferItem : public QObject
43{ 43{
44 Q_OBJECT 44 Q_OBJECT
45 public: 45 public:
46 QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); 46 QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage);
47 QCopTransferItem(); 47 QCopTransferItem();
48 48
49 bool sendMessageToTarget(const QString& uid, const QString& param1 = QString::null, const QString& param2 = QString::null, const QString& param3 = QString::null); 49 bool sendMessageToTarget(const QString& uid, const QString& param1 = QString::null, const QString& param2 = QString::null, const QString& param3 = QString::null);
50 50
51 void setSourceChannel(const QString& sourceChannel); 51 void setSourceChannel(const QString& sourceChannel);
52 52
53 virtual bool appMessage( const QCString& msg, const QByteArray& data ); 53 virtual bool appMessage( const QCString& msg, const QByteArray& data );
54 54
55 55
56 signals: 56 signals:
57 void receivedMessageFromSource(const QString& sourceChannel, const QString& uid); 57 void receivedMessageFromSource(const QString& sourceChannel, const QString& uid);
58 void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1); 58 void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1);
59 void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1, const QString& param2); 59 void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1, const QString& param2);
60 void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1, const QString& param2, const QString& param3); 60 void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1, const QString& param2, const QString& param3);
61 61
62
63 public: 62 public:
64 int _usedSourceParameters; 63 int _usedSourceParameters;
65 QString _sourceChannel; 64 QString _sourceChannel;
66 QString _sourceMessage; 65 QString _sourceMessage;
67 QString _sourceMessageParameters; 66 QString _sourceMessageParameters;
68 QString _targetChannel; 67 QString _targetChannel;
69 QString _targetMessage; 68 QString _targetMessage;
70 QString _targetMessageParameters; 69 QString _targetMessageParameters;
71 70
72}; 71};
73 72
74/********************************************************************************* 73/*********************************************************************************
75 * 74 *
76 ********************************************************************************/ 75 ********************************************************************************/
77 76
78class QCopMapTransferItem : public QCopTransferItem 77class QCopMapTransferItem : public QCopTransferItem
79{ 78{
80 Q_OBJECT 79 Q_OBJECT
81 public: 80 public:
82 QCopMapTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); 81 QCopMapTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage);
83 82
84 bool sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap); 83 bool sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap);
85 84
86 85
87 virtual bool appMessage( const QCString& msg, const QByteArray& data ); 86 virtual bool appMessage( const QCString& msg, const QByteArray& data );
88 87
89 88
90 signals: 89 signals:
91 void receivedMessageFromTarget(const QString& uid, const QMap<QString,QString>& nameEmailMap); 90 void receivedMessageFromTarget(const QString& uid, const QMap<QString,QString>& nameEmailMap);
92 91
93}; 92};
94 93
95/********************************************************************************* 94/*********************************************************************************
96 * 95 *
97 ********************************************************************************/ 96 ********************************************************************************/
98 97
99class QCopListTransferItem : public QCopTransferItem 98class QCopListTransferItem : public QCopTransferItem
100{ 99{
101 Q_OBJECT 100 Q_OBJECT
102 public: 101 public:
103 QCopListTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); 102 QCopListTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage);
104 103
105 bool sendMessageToSource(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3); 104 bool sendMessageToSource(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4, const QStringList& list5, const QStringList& list6);
106 105
107 106
108 virtual bool appMessage( const QCString& msg, const QByteArray& data ); 107 virtual bool appMessage( const QCString& msg, const QByteArray& data );
109 108
110 109
111 signals: 110 signals:
112 void receivedMessageFromTarget(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3); 111 void receivedMessageFromTarget(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4 , const QStringList& list5, const QStringList& list6);
113 112
114}; 113};
115 114
116/********************************************************************************* 115/*********************************************************************************
117 * 116 *
118 ********************************************************************************/ 117 ********************************************************************************/
119 118
120 119
121class DefaultAppItem 120class DefaultAppItem
122{ 121{
123 public: 122 public:
124 DefaultAppItem(int type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2) 123 DefaultAppItem(int type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2)
125 : _type(type), _id(id), _label(label), _channel(channel), _message(message), _parameters(parameters), _message2(message2), _parameters2(parameters2) 124 : _type(type), _id(id), _label(label), _channel(channel), _message(message), _parameters(parameters), _message2(message2), _parameters2(parameters2)
126 {} 125 {}
127 126
128 DefaultAppItem() 127 DefaultAppItem()
129 { } 128 { }
130 129
131 public: 130 public:
132 int _type; 131 int _type;
133 int _id; 132 int _id;
134 QString _label; 133 QString _label;
135 QString _channel; 134 QString _channel;
136 QString _message; 135 QString _message;
137 QString _parameters;// a list of parameters in stringrepresentation. Delimiter is ; 136 QString _parameters;// a list of parameters in stringrepresentation. Delimiter is ;
138 QString _message2; 137 QString _message2;
139 QString _parameters2; // a list of parameters in stringrepresentation. Delimiter is ; 138 QString _parameters2; // a list of parameters in stringrepresentation. Delimiter is ;
140 139
141}; 140};
142 141
143/********************************************************************************* 142/*********************************************************************************
144 * 143 *
145 ********************************************************************************/ 144 ********************************************************************************/
146 145
147class ExternalAppHandler : public QObject 146class ExternalAppHandler : public QObject
148{ 147{
149 Q_OBJECT 148 Q_OBJECT
150 public: 149 public:
151 virtual ~ExternalAppHandler(); 150 virtual ~ExternalAppHandler();
152 151
153 static ExternalAppHandler *instance(); 152 static ExternalAppHandler *instance();
154 153
155 enum Types { 154 enum Types {
156 EMAIL = 0, 155 EMAIL = 0,
157 PHONE = 1, 156 PHONE = 1,
158 SMS = 2, 157 SMS = 2,
159 FAX = 3, 158 FAX = 3,
160 PAGER = 4, 159 PAGER = 4,
@@ -162,106 +161,131 @@ class ExternalAppHandler : public QObject
162 }; 161 };
163 162
164 enum Availability { 163 enum Availability {
165 UNDEFINED = -1, 164 UNDEFINED = -1,
166 UNAVAILABLE = 0, 165 UNAVAILABLE = 0,
167 AVAILABLE = 1 166 AVAILABLE = 1
168 }; 167 };
169 168
170 //calls the emailapplication with a number of attachments that need to be send. 169 //calls the emailapplication with a number of attachments that need to be send.
171 //either parameter can be left empty. 170 //either parameter can be left empty.
172 bool mailToMultipleContacts( const QString& recipients, const QString& attachmenturls ); 171 bool mailToMultipleContacts( const QString& recipients, const QString& attachmenturls );
173 172
174 //calls the emailapplication and creates a mail with parameter emailadress as recipients 173 //calls the emailapplication and creates a mail with parameter emailadress as recipients
175 bool mailToOneContact( const QString& name, const QString& emailadress ); 174 bool mailToOneContact( const QString& name, const QString& emailadress );
176 175
177 //calls the emailapplication and creates a mail with parameter as recipients 176 //calls the emailapplication and creates a mail with parameter as recipients
178 // parameters format is 177 // parameters format is
179 // NAME <EMAIL>:SUBJECT 178 // NAME <EMAIL>:SUBJECT
180 bool mailToOneContact( const QString& adressline ); 179 bool mailToOneContact( const QString& adressline );
181 180
182 //calls the phoneapplication with the number 181 //calls the phoneapplication with the number
183 bool callByPhone( const QString& phonenumber ); 182 bool callByPhone( const QString& phonenumber );
184 183
185 //calls the smsapplication with the number 184 //calls the smsapplication with the number
186 bool callBySMS( const QString& phonenumber ); 185 bool callBySMS( const QString& phonenumber );
187 186
188 //calls the pagerapplication with the number 187 //calls the pagerapplication with the number
189 bool callByPager( const QString& pagernumber ); 188 bool callByPager( const QString& pagernumber );
190 189
191 //calls the faxapplication with the number 190 //calls the faxapplication with the number
192 bool callByFax( const QString& faxnumber ); 191 bool callByFax( const QString& faxnumber );
193 192
194 //calls the sipapplication with the number 193 //calls the sipapplication with the number
195 bool callBySIP( const QString& sipnumber ); 194 bool callBySIP( const QString& sipnumber );
196 195
197 bool isEmailAppAvailable(); 196 bool isEmailAppAvailable();
198 bool isSMSAppAvailable(); 197 bool isSMSAppAvailable();
199 bool isPhoneAppAvailable(); 198 bool isPhoneAppAvailable();
200 bool isFaxAppAvailable(); 199 bool isFaxAppAvailable();
201 bool isPagerAppAvailable(); 200 bool isPagerAppAvailable();
202 bool isSIPAppAvailable(); 201 bool isSIPAppAvailable();
203 202
204 203
205 //Call this method on the source when you want to select names from the addressbook by using QCop 204 //Call this method on the source when you want to select names from the addressbook by using QCop
206 bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid); 205 bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid);
207 //Call this method on the target when you want to return the name/email map to the source (client). 206 //Call this method on the target when you want to return the name/email map to the source (client).
208 bool returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid); 207 bool returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid);
209 208
209
210
210 bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email); 211 bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email);
211 bool returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid); 212 bool returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid);
212 213
213 bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid); 214 bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid);
214 215
215 216
217
218 bool requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid);
219 bool returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid,
220 const QStringList& birthdayList, const QStringList& anniversaryList,
221 const QStringList& realNameList, const QStringList& emailList,
222 const QStringList& assembledNameList, const QStringList& uidList);
223
224
216 //loadConfig clears the cache and checks again if the applications are available or not 225 //loadConfig clears the cache and checks again if the applications are available or not
217 void loadConfig(); 226 void loadConfig();
218 227
219 QList<DefaultAppItem> getAvailableDefaultItems(Types); 228 QList<DefaultAppItem> getAvailableDefaultItems(Types);
220 DefaultAppItem* getDefaultItem(Types, int); 229 DefaultAppItem* getDefaultItem(Types, int);
221 230
222 public slots: 231 public slots:
223 void appMessage( const QCString& msg, const QByteArray& data ); 232 void appMessage( const QCString& msg, const QByteArray& data );
224 233
225 234
226 signals: 235 signals:
227 // Emmitted when the target app receives a request from the source app 236 // Emmitted when the target app receives a request from the source app
228 void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid); 237 void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid);
229 238
230 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi 239 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi
231 // The first parameter is a uniqueid. It can be used to identify the event 240 // The first parameter is a uniqueid. It can be used to identify the event
232 void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); 241 void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList);
233 242
234 void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email); 243 void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email);
235 void receivedFindBbyEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); 244 void receivedFindByEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList);
236 245
237 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 246 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
238 247
239 248
249 // Emmitted when the target app receives a request from the source app
250 void requestForBirthdayList(const QString& sourceChannel, const QString& uid);
251
252 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi
253 // The first parameter is a uniqueid. It can be used to identify the event
254 void receivedBirthdayListEvent(const QString& uid, const QStringList& birthdayList,
255 const QStringList& anniversaryList, const QStringList& realNameList,
256 const QStringList& emailList, const QStringList& assembledNameList,
257 const QStringList& uidList);
258
259
240 private: 260 private:
241 ExternalAppHandler(); 261 ExternalAppHandler();
242 QList<DefaultAppItem> mDefaultItems; 262 QList<DefaultAppItem> mDefaultItems;
243 263
244 Availability mEmailAppAvailable; 264 Availability mEmailAppAvailable;
245 Availability mPhoneAppAvailable; 265 Availability mPhoneAppAvailable;
246 Availability mFaxAppAvailable; 266 Availability mFaxAppAvailable;
247 Availability mSMSAppAvailable; 267 Availability mSMSAppAvailable;
248 Availability mPagerAppAvailable; 268 Availability mPagerAppAvailable;
249 Availability mSIPAppAvailable; 269 Availability mSIPAppAvailable;
250 270
251 QCopListTransferItem* mNameEmailUidListFromKAPITransfer; 271 QCopListTransferItem* mNameEmailUidListFromKAPITransfer;
252 QCopListTransferItem* mFindByEmailFromKAPITransfer; 272 QCopListTransferItem* mFindByEmailFromKAPITransfer;
253 QCopTransferItem* mDisplayDetails; 273 QCopTransferItem* mDisplayDetails;
274 QCopListTransferItem* mBirthdayListFromKAPITransfer;
254 275
255 276
256 void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2); 277 void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2);
257 278
258 QString& translateMessage(QString& message, const QString& param1, const QString& param2) const; 279 QString& translateMessage(QString& message, const QString& param1, const QString& param2) const;
259 void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const; 280 void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const;
260 281
261 282
262 static ExternalAppHandler *sInstance; 283 static ExternalAppHandler *sInstance;
263 284
285 private slots:
286 void receivedNameEmailUidList_Slot(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList, const QStringList&, const QStringList&, const QStringList& );
287
264}; 288};
265 289
266 290
267#endif 291#endif