summaryrefslogtreecommitdiffabout
path: root/libkdepim/externalapphandler.cpp
authorulf69 <ulf69>2004-10-07 01:04:18 (UTC)
committer ulf69 <ulf69>2004-10-07 01:04:18 (UTC)
commit0406c1ac252f2fa631f7a486e73b0a97d09874f9 (patch) (unidiff)
tree72de99490603b5913a39a101ef571ba74acd6798 /libkdepim/externalapphandler.cpp
parent0afcfa29ace7bc5e42a11fae44301e1e8230a376 (diff)
downloadkdepimpi-0406c1ac252f2fa631f7a486e73b0a97d09874f9.zip
kdepimpi-0406c1ac252f2fa631f7a486e73b0a97d09874f9.tar.gz
kdepimpi-0406c1ac252f2fa631f7a486e73b0a97d09874f9.tar.bz2
added functionality for Birthdaylookup from kopi via qCop
Diffstat (limited to 'libkdepim/externalapphandler.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/externalapphandler.cpp68
1 files changed, 58 insertions, 10 deletions
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index 99aee86..07bdff2 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -131,347 +131,377 @@ bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data
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("2Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); 200 qDebug("2Using 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,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);
398 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined); 428 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined);
399 429
400 //smsclients 430 //smsclients
401 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined); 431 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined);
402 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined); 432 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined);
403 433
404 //pagerclients 434 //pagerclients
405 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined); 435 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined);
406 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined); 436 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined);
407 437
408 //sipclients 438 //sipclients
409 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::NONE_SIC, "No sip client installed", undefined, undefined, undefined, undefined, undefined); 439 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::NONE_SIC, "No sip client installed", undefined, undefined, undefined, undefined, undefined);
410 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::OTHER_SIC, "Other sip client", undefined, undefined, undefined, undefined, undefined); 440 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::OTHER_SIC, "Other sip client", undefined, undefined, undefined, undefined, undefined);
411 441
412} 442}
413 443
414ExternalAppHandler *ExternalAppHandler::instance() 444ExternalAppHandler *ExternalAppHandler::instance()
415{ 445{
416 if ( !sInstance ) { 446 if ( !sInstance ) {
417 sInstance = staticDeleter.setObject( new ExternalAppHandler() ); 447 sInstance = staticDeleter.setObject( new ExternalAppHandler() );
418 sInstance->loadConfig(); 448 sInstance->loadConfig();
419 } 449 }
420 450
421 return sInstance; 451 return sInstance;
422} 452}
423 453
424void ExternalAppHandler::addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameter, const QString& message2, const QString& parameter2) 454void ExternalAppHandler::addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameter, const QString& message2, const QString& parameter2)
425{ 455{
426 DefaultAppItem* dai = new DefaultAppItem(type, id, label, channel, message, parameter, message2, parameter2); 456 DefaultAppItem* dai = new DefaultAppItem(type, id, label, channel, message, parameter, message2, parameter2);
427 // qDebug("%d %d %s %s ", type, id, label.latin1(), channel.latin1() ); 457 // qDebug("%d %d %s %s ", type, id, label.latin1(), channel.latin1() );
428 mDefaultItems.append(dai); 458 mDefaultItems.append(dai);
429} 459}
430 460
431 461
432QList<DefaultAppItem> ExternalAppHandler::getAvailableDefaultItems(Types type) 462QList<DefaultAppItem> ExternalAppHandler::getAvailableDefaultItems(Types type)
433{ 463{
434 QList<DefaultAppItem> list; 464 QList<DefaultAppItem> list;
435 465
436 DefaultAppItem* dai; 466 DefaultAppItem* dai;
437 467
438 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() ) 468 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() )
439 { 469 {
440 if (dai->_type == type) 470 if (dai->_type == type)
441 list.append(dai); 471 list.append(dai);
442 } 472 }
443 473
444 return list; 474 return list;
445} 475}
446 476
447DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid) 477DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid)
448{ 478{
449 DefaultAppItem* dai; 479 DefaultAppItem* dai;
450 480
451 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() ) 481 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() )
452 { 482 {
453 if (dai->_type == type && dai->_id == clientid) 483 if (dai->_type == type && dai->_id == clientid)
454 return dai; 484 return dai;
455 } 485 }
456 486
457 return 0; 487 return 0;
458} 488}
459 489
460bool ExternalAppHandler::isEmailAppAvailable() 490bool ExternalAppHandler::isEmailAppAvailable()
461{ 491{
462#ifndef DESKTOP_VERSION 492#ifndef DESKTOP_VERSION
463 if (mEmailAppAvailable == UNDEFINED) 493 if (mEmailAppAvailable == UNDEFINED)
464 { 494 {
465 int client = KPimGlobalPrefs::instance()->mEmailClient; 495 int client = KPimGlobalPrefs::instance()->mEmailClient;
466 if (client == KPimGlobalPrefs::NONE_EMC) 496 if (client == KPimGlobalPrefs::NONE_EMC)
467 mEmailAppAvailable = UNAVAILABLE; 497 mEmailAppAvailable = UNAVAILABLE;
468 else 498 else
469 mEmailAppAvailable = AVAILABLE; 499 mEmailAppAvailable = AVAILABLE;
470 } 500 }
471 return (mEmailAppAvailable == AVAILABLE); 501 return (mEmailAppAvailable == AVAILABLE);
472 502
473#else //DESKTOP_VERSION 503#else //DESKTOP_VERSION
474 return false; 504 return false;
475#endif //DESKTOP_VERSION 505#endif //DESKTOP_VERSION
476} 506}
477 507
@@ -924,171 +954,189 @@ bool ExternalAppHandler::callByFax( const QString& faxnumber )
924/************************************************************************** 954/**************************************************************************
925 * 955 *
926 **************************************************************************/ 956 **************************************************************************/
927 957
928//calls the sipapplication with the number 958//calls the sipapplication with the number
929bool ExternalAppHandler::callBySIP( const QString& sipnumber ) 959bool ExternalAppHandler::callBySIP( const QString& sipnumber )
930{ 960{
931#ifndef DESKTOP_VERSION 961#ifndef DESKTOP_VERSION
932 QString channel; 962 QString channel;
933 QString message; 963 QString message;
934 QString parameters; 964 QString parameters;
935 965
936 966
937 int client = KPimGlobalPrefs::instance()->mSipClient; 967 int client = KPimGlobalPrefs::instance()->mSipClient;
938 if (client == KPimGlobalPrefs::OTHER_SIC) 968 if (client == KPimGlobalPrefs::OTHER_SIC)
939 { 969 {
940 channel = KPimGlobalPrefs::instance()->mSipOtherChannel; 970 channel = KPimGlobalPrefs::instance()->mSipOtherChannel;
941 message = KPimGlobalPrefs::instance()->mSipOtherMessage; 971 message = KPimGlobalPrefs::instance()->mSipOtherMessage;
942 parameters = KPimGlobalPrefs::instance()->mSipOtherMessageParameters; 972 parameters = KPimGlobalPrefs::instance()->mSipOtherMessageParameters;
943 } 973 }
944 else 974 else
945 { 975 {
946 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(SIP, client); 976 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(SIP, client);
947 if (!dai) 977 if (!dai)
948 { 978 {
949 qDebug("could not find configured sip application."); 979 qDebug("could not find configured sip application.");
950 return false; 980 return false;
951 } 981 }
952 channel = dai->_channel; 982 channel = dai->_channel;
953 message = dai->_message; 983 message = dai->_message;
954 parameters = dai->_parameters; 984 parameters = dai->_parameters;
955 } 985 }
956 986
957 987
958 //first check if one of the sip apps need the emails right in the message. 988 //first check if one of the sip apps need the emails right in the message.
959 message = translateMessage(message, sipnumber, ""); 989 message = translateMessage(message, sipnumber, "");
960 990
961 991
962 qDebug("10Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 992 qDebug("10Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
963 qDebug("passing sipnumber(%s) as parameter in the form %s to QCopEnvelope", sipnumber.latin1(), parameters.latin1()); 993 qDebug("passing sipnumber(%s) as parameter in the form %s to QCopEnvelope", sipnumber.latin1(), parameters.latin1());
964 994
965 QCopEnvelope e(channel.latin1(), message.latin1()); 995 QCopEnvelope e(channel.latin1(), message.latin1());
966 //US we need no names in the To field. The emailadresses are enough 996 //US we need no names in the To field. The emailadresses are enough
967 997
968 passParameters(&e, parameters, sipnumber, ""); 998 passParameters(&e, parameters, sipnumber, "");
969 999
970 1000
971#else 1001#else
972 KMessageBox::sorry( 0, i18n( "This version does not support sip." ) ); 1002 KMessageBox::sorry( 0, i18n( "This version does not support sip." ) );
973#endif 1003#endif
974 1004
975 1005
976 return true; 1006 return true;
977} 1007}
978 1008
979 1009
980/************************************************************************** 1010/**************************************************************************
981 * 1011 *
982 **************************************************************************/ 1012 **************************************************************************/
983 1013
984 1014
985QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const 1015QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const
986{ 1016{
987 message = message.replace( QRegExp("%1"), param1 ); 1017 message = message.replace( QRegExp("%1"), param1 );
988 return message.replace( QRegExp("%2"), param2 ); 1018 return message.replace( QRegExp("%2"), param2 );
989} 1019}
990 1020
991/************************************************************************** 1021/**************************************************************************
992 * 1022 *
993 **************************************************************************/ 1023 **************************************************************************/
994 1024
995void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const 1025void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const
996{ 1026{
997#ifndef DESKTOP_VERSION 1027#ifndef DESKTOP_VERSION
998 QMap<QString, QString> valmap; 1028 QMap<QString, QString> valmap;
999 bool useValMap = false; 1029 bool useValMap = false;
1000 1030
1001 // first extract all parts of the parameters. 1031 // first extract all parts of the parameters.
1002 QStringList paramlist = QStringList::split(";", parameters); 1032 QStringList paramlist = QStringList::split(";", parameters);
1003 1033
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