summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/externalapphandler.cpp84
1 files changed, 55 insertions, 29 deletions
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index 5a56d68..1093abf 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -93,13 +93,13 @@ void ExternalAppHandler::loadConfig()
93 93
94 if (( QFile::exists( qtopiapath + "/bin/ompi" )) || 94 if (( QFile::exists( qtopiapath + "/bin/ompi" )) ||
95 ( QFile::exists( opiepath + "/bin/ompi" ))) 95 ( QFile::exists( opiepath + "/bin/ompi" )))
96 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", "newMail(QString)", "%1", mailmsg2, "ATTACHMENT=%1"); 96 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
97 97
98 if ( QFile::exists( qtopiapath + "/bin/qtmail" )) 98 if ( QFile::exists( qtopiapath + "/bin/qtmail" ))
99 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, ";%1", mailmsg2, "ATTACHMENT=%1"); 99 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
100 100
101 if ( QFile::exists( opiepath + "/bin/opiemail" )) 101 if ( QFile::exists( opiepath + "/bin/opiemail" ))
102 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, ";%1", mailmsg2, "ATTACHMENT=%1"); 102 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
103 103
104 104
105 105
@@ -267,10 +267,10 @@ bool ExternalAppHandler::isPagerAppAvailable()
267 267
268 268
269//calls the emailapplication with a number of attachments that need to be send (Seperated by Comma) 269//calls the emailapplication with a number of attachments that need to be send (Seperated by Comma)
270bool ExternalAppHandler::mailAttachments( const QString& urls ) 270bool ExternalAppHandler::mailToMultipleContacts( const QString& emails, const QString& urls )
271{ 271{
272 272
273#ifndef DESKTOP_VERSION 273#ifndef DESKTOP_VERSION
274 QString channel; 274 QString channel;
275 QString message2; 275 QString message2;
276 QString parameters2; 276 QString parameters2;
@@ -296,15 +296,18 @@ bool ExternalAppHandler::mailAttachments( const QString& urls )
296 parameters2 = dai->_parameters2; 296 parameters2 = dai->_parameters2;
297 } 297 }
298 298
299 //first check if one of the mailers need the emails right in the message.
300 message2 = translateMessage(message2, emails, urls);
301
299 302
300 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message2.latin1()); 303 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message2.latin1());
301 qDebug("passing attachmenturls:(%s) as parameter in the form %s to QCopEnvelope", urls.latin1(), parameters2.latin1()); 304 qDebug("passing emailadresses:(%s), attachmenturls:(%s) as parameters in the form %s to QCopEnvelope", emails.latin1() , urls.latin1(), parameters2.latin1());
302 305
303 306
304 QCopEnvelope e(channel.latin1(), message2.latin1()); 307 QCopEnvelope e(channel.latin1(), message2.latin1());
305 //US we need no names in the To field. The emailadresses are enough 308 //US we need no names in the To field. The emailadresses are enough
306 309
307 passParameter(&e, parameters2, urls); 310 passParameters(&e, parameters2, emails, urls);
308 311
309 312
310 313
@@ -321,9 +324,9 @@ bool ExternalAppHandler::mailAttachments( const QString& urls )
321 324
322 325
323//calls the emailapplication and creates a mail with parameter emails as recipients 326//calls the emailapplication and creates a mail with parameter emails as recipients
324bool ExternalAppHandler::mailToContacts( const QString& emails ) 327bool ExternalAppHandler::mailToOneContact( const QString& name, const QString& emailadress )
325{ 328{
326#ifndef DESKTOP_VERSION 329#ifndef DESKTOP_VERSION
327 QString channel; 330 QString channel;
328 QString message; 331 QString message;
329 QString parameters; 332 QString parameters;
@@ -351,16 +354,16 @@ bool ExternalAppHandler::mailToContacts( const QString& emails )
351 354
352 355
353 //first check if one of the mailers need the emails right in the message. 356 //first check if one of the mailers need the emails right in the message.
354 message = translateMessage(message, emails); 357 message = translateMessage(message, name, emailadress);
355 358
356 359
357 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 360 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
358 qDebug("passing emailadresses:(%s) as parameter in the form %s to QCopEnvelope", emails.latin1(), parameters.latin1()); 361 qDebug("passing name:(%s), emailadresses:(%s) as parameters in the form %s to QCopEnvelope", name.latin1(), emailadress.latin1(), parameters.latin1());
359 362
360 QCopEnvelope e(channel.latin1(), message.latin1()); 363 QCopEnvelope e(channel.latin1(), message.latin1());
361 //US we need no names in the To field. The emailadresses are enough 364 //US we need no names in the To field. The emailadresses are enough
362 365
363 passParameter(&e, parameters, emails); 366 passParameters(&e, parameters, name, emailadress);
364 367
365 368
366#else 369#else
@@ -375,10 +378,31 @@ bool ExternalAppHandler::mailToContacts( const QString& emails )
375 * 378 *
376 **************************************************************************/ 379 **************************************************************************/
377 380
381//calls the emailapplication and creates a mail with parameter as recipients
382// parameters format is
383// NAME <EMAIL>:SUBJECT
384bool ExternalAppHandler::mailToOneContact( const QString& adressline )
385{
386 QString line = adressline;
387
388 int first = line.find( "<");
389 int last = line.find( ">");
390 QString name = line.left(first);
391 QString emailadress = line.mid(first+1, last-first-1);
392
393 //Subject can not be handled right now.
394 mailToOneContact( name, emailadress );
395}
396
397
398/**************************************************************************
399 *
400 **************************************************************************/
401
378//calls the phoneapplication with the number 402//calls the phoneapplication with the number
379bool ExternalAppHandler::callByPhone( const QString& phonenumber ) 403bool ExternalAppHandler::callByPhone( const QString& phonenumber )
380{ 404{
381#ifndef DESKTOP_VERSION 405#ifndef DESKTOP_VERSION
382 QString channel; 406 QString channel;
383 QString message; 407 QString message;
384 QString parameters; 408 QString parameters;
@@ -406,7 +430,7 @@ bool ExternalAppHandler::callByPhone( const QString& phonenumber )
406 430
407 431
408 //first check if one of the mailers need the emails right in the message. 432 //first check if one of the mailers need the emails right in the message.
409 message = translateMessage(message, phonenumber); 433 message = translateMessage(message, phonenumber, "");
410 434
411 435
412 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 436 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
@@ -415,7 +439,7 @@ bool ExternalAppHandler::callByPhone( const QString& phonenumber )
415 QCopEnvelope e(channel.latin1(), message.latin1()); 439 QCopEnvelope e(channel.latin1(), message.latin1());
416 //US we need no names in the To field. The emailadresses are enough 440 //US we need no names in the To field. The emailadresses are enough
417 441
418 passParameter(&e, parameters, phonenumber); 442 passParameters(&e, parameters, phonenumber, "");
419 443
420 444
421#else 445#else
@@ -433,7 +457,7 @@ bool ExternalAppHandler::callByPhone( const QString& phonenumber )
433//calls the smsapplication with the number 457//calls the smsapplication with the number
434bool ExternalAppHandler::callBySMS( const QString& phonenumber ) 458bool ExternalAppHandler::callBySMS( const QString& phonenumber )
435{ 459{
436#ifndef DESKTOP_VERSION 460#ifndef DESKTOP_VERSION
437 QString channel; 461 QString channel;
438 QString message; 462 QString message;
439 QString parameters; 463 QString parameters;
@@ -461,7 +485,7 @@ bool ExternalAppHandler::callBySMS( const QString& phonenumber )
461 485
462 486
463 //first check if one of the mailers need the emails right in the message. 487 //first check if one of the mailers need the emails right in the message.
464 message = translateMessage(message, phonenumber); 488 message = translateMessage(message, phonenumber, "");
465 489
466 490
467 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 491 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
@@ -470,7 +494,7 @@ bool ExternalAppHandler::callBySMS( const QString& phonenumber )
470 QCopEnvelope e(channel.latin1(), message.latin1()); 494 QCopEnvelope e(channel.latin1(), message.latin1());
471 //US we need no names in the To field. The emailadresses are enough 495 //US we need no names in the To field. The emailadresses are enough
472 496
473 passParameter(&e, parameters, phonenumber); 497 passParameters(&e, parameters, phonenumber, "");
474 498
475 499
476#else 500#else
@@ -488,7 +512,7 @@ bool ExternalAppHandler::callBySMS( const QString& phonenumber )
488//calls the pagerapplication with the number 512//calls the pagerapplication with the number
489bool ExternalAppHandler::callByPager( const QString& pagernumber ) 513bool ExternalAppHandler::callByPager( const QString& pagernumber )
490{ 514{
491#ifndef DESKTOP_VERSION 515#ifndef DESKTOP_VERSION
492 QString channel; 516 QString channel;
493 QString message; 517 QString message;
494 QString parameters; 518 QString parameters;
@@ -516,7 +540,7 @@ bool ExternalAppHandler::callByPager( const QString& pagernumber )
516 540
517 541
518 //first check if one of the mailers need the emails right in the message. 542 //first check if one of the mailers need the emails right in the message.
519 message = translateMessage(message, pagernumber); 543 message = translateMessage(message, pagernumber, "");
520 544
521 545
522 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 546 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
@@ -525,7 +549,7 @@ bool ExternalAppHandler::callByPager( const QString& pagernumber )
525 QCopEnvelope e(channel.latin1(), message.latin1()); 549 QCopEnvelope e(channel.latin1(), message.latin1());
526 //US we need no names in the To field. The emailadresses are enough 550 //US we need no names in the To field. The emailadresses are enough
527 551
528 passParameter(&e, parameters, pagernumber); 552 passParameters(&e, parameters, pagernumber, "");
529 553
530 554
531#else 555#else
@@ -543,7 +567,7 @@ bool ExternalAppHandler::callByPager( const QString& pagernumber )
543//calls the faxapplication with the number 567//calls the faxapplication with the number
544bool ExternalAppHandler::callByFax( const QString& faxnumber ) 568bool ExternalAppHandler::callByFax( const QString& faxnumber )
545{ 569{
546#ifndef DESKTOP_VERSION 570#ifndef DESKTOP_VERSION
547 QString channel; 571 QString channel;
548 QString message; 572 QString message;
549 QString parameters; 573 QString parameters;
@@ -571,7 +595,7 @@ bool ExternalAppHandler::callByFax( const QString& faxnumber )
571 595
572 596
573 //first check if one of the mailers need the emails right in the message. 597 //first check if one of the mailers need the emails right in the message.
574 message = translateMessage(message, faxnumber); 598 message = translateMessage(message, faxnumber, "");
575 599
576 600
577 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 601 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
@@ -580,7 +604,7 @@ bool ExternalAppHandler::callByFax( const QString& faxnumber )
580 QCopEnvelope e(channel.latin1(), message.latin1()); 604 QCopEnvelope e(channel.latin1(), message.latin1());
581 //US we need no names in the To field. The emailadresses are enough 605 //US we need no names in the To field. The emailadresses are enough
582 606
583 passParameter(&e, parameters, faxnumber); 607 passParameters(&e, parameters, faxnumber, "");
584 608
585 609
586#else 610#else
@@ -596,19 +620,19 @@ bool ExternalAppHandler::callByFax( const QString& faxnumber )
596 **************************************************************************/ 620 **************************************************************************/
597 621
598 622
599 623QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const
600QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1) const
601{ 624{
602 return message.replace( QRegExp("%1"), param1 ); 625 message = message.replace( QRegExp("%1"), param1 );
626 return message.replace( QRegExp("%2"), param2 );
603} 627}
604 628
605/************************************************************************** 629/**************************************************************************
606 * 630 *
607 **************************************************************************/ 631 **************************************************************************/
608 632
609void ExternalAppHandler::passParameter(QCopEnvelope* e, const QString& parameters, const QString& param1) const 633void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const
610{ 634{
611#ifndef DESKTOP_VERSION 635#ifndef DESKTOP_VERSION
612 QMap<QString, QString> valmap; 636 QMap<QString, QString> valmap;
613 bool useValMap = false; 637 bool useValMap = false;
614 638
@@ -627,12 +651,14 @@ void ExternalAppHandler::passParameter(QCopEnvelope* e, const QString& parameter
627 QStringList::Iterator it2 = keyvallist.begin(); 651 QStringList::Iterator it2 = keyvallist.begin();
628 QString key = (*it2); 652 QString key = (*it2);
629 key = key.replace( QRegExp("%1"), param1 ); 653 key = key.replace( QRegExp("%1"), param1 );
654 key = key.replace( QRegExp("%2"), param2 );
630 ++it2; 655 ++it2;
631 656
632 if(it2 != keyvallist.end()) 657 if(it2 != keyvallist.end())
633 { 658 {
634 QString value = (*it2); 659 QString value = (*it2);
635 value = value.replace( QRegExp("%1"), param1 ); 660 value = value.replace( QRegExp("%1"), param1 );
661 value = value.replace( QRegExp("%2"), param2 );
636 662
637 valmap.insert(key, value); 663 valmap.insert(key, value);
638 useValMap = true; 664 useValMap = true;