summaryrefslogtreecommitdiffabout
path: root/libkdepim
authorzautrix <zautrix>2005-10-29 16:39:40 (UTC)
committer zautrix <zautrix>2005-10-29 16:39:40 (UTC)
commit898dbabef6d747447999add46201315d04f85f63 (patch) (unidiff)
treefb247cbbd99ca6918400547e16484a58a8ba1523 /libkdepim
parent1360f8e3b5da58b561f868643d2d5f04b874cee7 (diff)
downloadkdepimpi-898dbabef6d747447999add46201315d04f85f63.zip
kdepimpi-898dbabef6d747447999add46201315d04f85f63.tar.gz
kdepimpi-898dbabef6d747447999add46201315d04f85f63.tar.bz2
commit
Diffstat (limited to 'libkdepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/externalapphandler.cpp111
1 files changed, 97 insertions, 14 deletions
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index 2ce6926..edefda4 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -30,24 +30,25 @@ $Id$
30#include <stdlib.h> 30#include <stdlib.h>
31 31
32#include <qfile.h> 32#include <qfile.h>
33#include <qtimer.h> 33#include <qtimer.h>
34#include <qmap.h> 34#include <qmap.h>
35#include <qregexp.h> 35#include <qregexp.h>
36 36
37#ifndef DESKTOP_VERSION 37#ifndef DESKTOP_VERSION
38#include <qpe/qpeapplication.h> 38#include <qpe/qpeapplication.h>
39#include <qtopia/qcopenvelope_qws.h> 39#include <qtopia/qcopenvelope_qws.h>
40#else 40#else
41#include <qapplication.h> 41#include <qapplication.h>
42#include <qprocess.h>
42#endif 43#endif
43 44
44#include <kstaticdeleter.h> 45#include <kstaticdeleter.h>
45#include <kmessagebox.h> 46#include <kmessagebox.h>
46 47
47 48
48#include "externalapphandler.h" 49#include "externalapphandler.h"
49 50
50#include "kpimglobalprefs.h" 51#include "kpimglobalprefs.h"
51 52
52//uncomment line to get debug output 53//uncomment line to get debug output
53//#define DEBUG_EXT_APP_HANDLER 54//#define DEBUG_EXT_APP_HANDLER
@@ -425,39 +426,58 @@ void ExternalAppHandler::loadConfig()
425 426
426 427
427 428
428 //mailclients 429 //mailclients
429 QString mailmsg1 = "writeMail(QString,QString)"; 430 QString mailmsg1 = "writeMail(QString,QString)";
430 QString mailmsg2 = "writeMail(QMap(QString,QString))"; 431 QString mailmsg2 = "writeMail(QMap(QString,QString))";
431 432
432 QString undefined = ""; 433 QString undefined = "";
433 434
434 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined); 435 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined);
435 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined); 436 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined);
436 437
438#ifdef DESKTOP_VERSION
439 QString appPath;
440#ifdef _WIN32_
441 appPath = "C:\\Programme\\Mozilla Thunderbird\\thunderbird.exe";
442#else
443 appPath = "/usr/bin/thunderbird";
444#endif
445 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "Mozilla Thunderbird", appPath, "-compose", "to=%1 <%2>", ",", "subject=%1");
446
447#ifdef _WIN32_
448 appPath = "C:\\Programme\\Mozilla\\mozilla.exe";
449#else
450 appPath = "/usr/bin/mozilla";
451#endif
452 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Mozilla Suite", appPath, "-mail -compose", "to=%1 <%2>", ",", "subject=%1");
453
454
455
456#else
437 if (( QFile::exists( qtopiapath + "/bin/ompi" )) || 457 if (( QFile::exists( qtopiapath + "/bin/ompi" )) ||
438 ( QFile::exists( opiepath + "/bin/ompi" )) || 458 ( QFile::exists( opiepath + "/bin/ompi" )) ||
439 ( QFile::exists( qtpath + "/bin/ompi" ))) 459 ( QFile::exists( qtpath + "/bin/ompi" )))
440 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 460 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
441 461
442 if (( QFile::exists( qtopiapath + "/bin/qtmail" )) || 462 if (( QFile::exists( qtopiapath + "/bin/qtmail" )) ||
443 ( QFile::exists( qtpath + "/bin/qtmail" ))) 463 ( QFile::exists( qtpath + "/bin/qtmail" )))
444 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 464 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
445 465
446 if ( QFile::exists( opiepath + "/bin/opiemail" )) 466 if ( QFile::exists( opiepath + "/bin/opiemail" ))
447 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 467 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
448 468
449 if ( QFile::exists( opiepath + "/bin/mailit" )) 469 if ( QFile::exists( opiepath + "/bin/mailit" ))
450 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_MAILIT_EMC, "Opie mailit email client", "QPE/Application/mailit", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 470 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_MAILIT_EMC, "Opie mailit email client", "QPE/Application/mailit", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
451 471#endif
452 472
453 473
454 //phoneclients 474 //phoneclients
455 475
456 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined); 476 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined);
457 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined); 477 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined);
458 if (( QFile::exists( qtopiapath + "/bin/kppi" )) || 478 if (( QFile::exists( qtopiapath + "/bin/kppi" )) ||
459 ( QFile::exists( opiepath + "/bin/kppi" ))) 479 ( QFile::exists( opiepath + "/bin/kppi" )))
460 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined); 480 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined);
461 481
462 //faxclients 482 //faxclients
463 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined); 483 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined);
@@ -519,38 +539,35 @@ DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid)
519 539
520 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() ) 540 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() )
521 { 541 {
522 if (dai->_type == type && dai->_id == clientid) 542 if (dai->_type == type && dai->_id == clientid)
523 return dai; 543 return dai;
524 } 544 }
525 545
526 return 0; 546 return 0;
527} 547}
528 548
529bool ExternalAppHandler::isEmailAppAvailable() 549bool ExternalAppHandler::isEmailAppAvailable()
530{ 550{
531#ifndef DESKTOP_VERSION 551
532 if (mEmailAppAvailable == UNDEFINED) 552 if (mEmailAppAvailable == UNDEFINED)
533 { 553 {
534 int client = KPimGlobalPrefs::instance()->mEmailClient; 554 int client = KPimGlobalPrefs::instance()->mEmailClient;
535 if (client == KPimGlobalPrefs::NONE_EMC) 555 if (client == KPimGlobalPrefs::NONE_EMC)
536 mEmailAppAvailable = UNAVAILABLE; 556 mEmailAppAvailable = UNAVAILABLE;
537 else 557 else
538 mEmailAppAvailable = AVAILABLE; 558 mEmailAppAvailable = AVAILABLE;
539 } 559 }
540 return (mEmailAppAvailable == AVAILABLE); 560 return (mEmailAppAvailable == AVAILABLE);
541 561
542#else //DESKTOP_VERSION
543 return false;
544#endif //DESKTOP_VERSION
545} 562}
546 563
547bool ExternalAppHandler::isSMSAppAvailable() 564bool ExternalAppHandler::isSMSAppAvailable()
548{ 565{
549#ifndef DESKTOP_VERSION 566#ifndef DESKTOP_VERSION
550 if (mSMSAppAvailable == UNDEFINED) 567 if (mSMSAppAvailable == UNDEFINED)
551 { 568 {
552 int client = KPimGlobalPrefs::instance()->mSMSClient; 569 int client = KPimGlobalPrefs::instance()->mSMSClient;
553 if (client == KPimGlobalPrefs::NONE_SMC) 570 if (client == KPimGlobalPrefs::NONE_SMC)
554 mSMSAppAvailable = UNAVAILABLE; 571 mSMSAppAvailable = UNAVAILABLE;
555 else 572 else
556 mSMSAppAvailable = AVAILABLE; 573 mSMSAppAvailable = AVAILABLE;
@@ -679,39 +696,93 @@ bool ExternalAppHandler::mailToMultipleContacts( const QString& emails, const QS
679 qDebug("passing emailadresses(%s), attachmenturls(%s) as parameters in the form %s to QCopEnvelope", emails.latin1() , urls.latin1(), parameters2.latin1()); 696 qDebug("passing emailadresses(%s), attachmenturls(%s) as parameters in the form %s to QCopEnvelope", emails.latin1() , urls.latin1(), parameters2.latin1());
680#endif 697#endif
681 698
682 699
683 QCopEnvelope e(channel.latin1(), message2.latin1()); 700 QCopEnvelope e(channel.latin1(), message2.latin1());
684 //US we need no names in the To field. The emailadresses are enough 701 //US we need no names in the To field. The emailadresses are enough
685 702
686 passParameters(&e, parameters2, emails, urls); 703 passParameters(&e, parameters2, emails, urls);
687 704
688 705
689 706
690#else 707#else
691 KMessageBox::sorry( 0, i18n( "This version does not support the sending of emails." ) ); 708 //qDebug("mtmc %s %s ", emails.latin1(), urls.latin1());
709
710 QString channel;
711 QString message2;
712 QString parameters2;
713 QString message;
714 QString parameters;
715
716
717 int client = KPimGlobalPrefs::instance()->mEmailClient;
718 if (client == KPimGlobalPrefs::OTHER_EMC)
719 {
720 channel = KPimGlobalPrefs::instance()->mEmailOtherChannel;
721 message2 = KPimGlobalPrefs::instance()->mEmailOtherMessage;
722 parameters2 = KPimGlobalPrefs::instance()->mEmailOtherMessageParameters;
723 }
724 else
725 {
726 DefaultAppItem* dai = getDefaultItem(EMAIL, client);
727 if (!dai)
728 {
729 qDebug("could not find configured email application.");
730 return false;
731 }
732 channel = dai->_channel;
733 message2 = dai->_message2;
734 parameters2 = dai->_parameters2;
735 message = dai->_message;
736 parameters = dai->_parameters;
737 }
738
739 //first check if one of the mailers need the emails right in the message.
740 message2 = translateMessage(message2, emails, urls);
741#ifdef DEBUG_EXT_APP_HANDLER
742 qDebug("4Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message2.latin1());
743 qDebug("passing emailadresses(%s), attachmenturls(%s) as parameters in the form %s to QCopEnvelope", emails.latin1() , urls.latin1(), parameters2.latin1());
744#endif
745 qDebug("%s --- %s %s --- %s %s", channel.latin1(), message.latin1(),message2.latin1(), parameters.latin1(), parameters2.latin1() );
746 //KMessageBox::sorry( 0, message2 );
747 QProcess * proc = new QProcess( this );
748 QStringList list = QStringList::split( " ", message );
749 int i = 0;
750 proc->addArgument( channel );
751 while ( i < list.count ( ) ) {
752 //qDebug("add%sdd ",list[i].stripWhiteSpace().latin1() );
753 proc->addArgument( list[i].stripWhiteSpace() );
754 ++i;
755 }
756 parameters2 = translateMessage(parameters2, urls, "" );
757 QString arg = "to='%1'";
758 arg = arg.arg( emails ) + ","+parameters2;;
759
760 //qDebug("2add%sdd ",arg.latin1() );
761 proc->addArgument( arg);
762 proc->launch("");
692#endif 763#endif
693 764
694 return true; 765 return true;
695} 766}
696 767
697/************************************************************************** 768/**************************************************************************
698 * 769 *
699 **************************************************************************/ 770 **************************************************************************/
700 771
701 772
702//calls the emailapplication and creates a mail with parameter emails as recipients 773//calls the emailapplication and creates a mail with parameter emails as recipients
703bool ExternalAppHandler::mailToOneContact( const QString& name, const QString& emailadress ) 774bool ExternalAppHandler::mailToOneContact( const QString& name, const QString& emailadress )
704{ 775{
705#ifndef DESKTOP_VERSION 776
706 QString channel; 777 QString channel;
707 QString message; 778 QString message;
708 QString parameters; 779 QString parameters;
709 780
710 781
711 int client = KPimGlobalPrefs::instance()->mEmailClient; 782 int client = KPimGlobalPrefs::instance()->mEmailClient;
712 if (client == KPimGlobalPrefs::OTHER_EMC) 783 if (client == KPimGlobalPrefs::OTHER_EMC)
713 { 784 {
714 channel = KPimGlobalPrefs::instance()->mEmailOtherChannel; 785 channel = KPimGlobalPrefs::instance()->mEmailOtherChannel;
715 message = KPimGlobalPrefs::instance()->mEmailOtherMessage; 786 message = KPimGlobalPrefs::instance()->mEmailOtherMessage;
716 parameters = KPimGlobalPrefs::instance()->mEmailOtherMessageParameters; 787 parameters = KPimGlobalPrefs::instance()->mEmailOtherMessageParameters;
717 } 788 }
@@ -719,45 +790,57 @@ bool ExternalAppHandler::mailToOneContact( const QString& name, const QString& e
719 { 790 {
720 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(EMAIL, client); 791 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(EMAIL, client);
721 if (!dai) 792 if (!dai)
722 { 793 {
723 qDebug("could not find configured email application."); 794 qDebug("could not find configured email application.");
724 return false; 795 return false;
725 } 796 }
726 channel = dai->_channel; 797 channel = dai->_channel;
727 message = dai->_message; 798 message = dai->_message;
728 parameters = dai->_parameters; 799 parameters = dai->_parameters;
729 } 800 }
730 801
731 802#ifdef DESKTOP_VERSION
803 //message = channel + " " +message + " \""+ parameters + "\"";
804#endif
732 //first check if one of the mailers need the emails right in the message. 805 //first check if one of the mailers need the emails right in the message.
733 message = translateMessage(message, name, emailadress); 806 message = translateMessage(message, name, emailadress);
734 807
735
736#ifdef DEBUG_EXT_APP_HANDLER 808#ifdef DEBUG_EXT_APP_HANDLER
737 qDebug("5Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 809 qDebug("5Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
738 qDebug("passing name(%s), emailadresses(%s) as parameters in the form %s to QCopEnvelope", name.latin1(), emailadress.latin1(), parameters.latin1()); 810 qDebug("passing name(%s), emailadresses(%s) as parameters in the form %s to QCopEnvelope", name.latin1(), emailadress.latin1(), parameters.latin1());
739#endif 811#endif
740 812
813#ifndef DESKTOP_VERSION
741 QCopEnvelope e(channel.latin1(), message.latin1()); 814 QCopEnvelope e(channel.latin1(), message.latin1());
742 //US we need no names in the To field. The emailadresses are enough 815 //US we need no names in the To field. The emailadresses are enough
743 816
744 passParameters(&e, parameters, name, emailadress); 817 passParameters(&e, parameters, name, emailadress);
745 818#else // DESKTOP_VERSION
746 819
747#else 820 //KMessageBox::sorry( 0, message );
748 KMessageBox::sorry( 0, i18n( "This version does not support the sending of emails." ) ); 821 QProcess * proc = new QProcess( this );
822 QStringList list = QStringList::split( " ", message );
823 int i = 0;
824 proc->addArgument( channel );
825 while ( i < list.count ( ) ) {
826 //qDebug("add%sdd ",list[i].latin1() );
827 proc->addArgument( list[i] );
828 ++i;
829 }
830 parameters = translateMessage(parameters, name, emailadress);
831 proc->addArgument( parameters );
832 proc->launch("");
749#endif 833#endif
750 834
751
752 return true; 835 return true;
753} 836}
754 837
755/************************************************************************** 838/**************************************************************************
756 * 839 *
757 **************************************************************************/ 840 **************************************************************************/
758 841
759//calls the emailapplication and creates a mail with parameter as recipients 842//calls the emailapplication and creates a mail with parameter as recipients
760// parameters format is 843// parameters format is
761// NAME <EMAIL>:SUBJECT 844// NAME <EMAIL>:SUBJECT
762bool ExternalAppHandler::mailToOneContact( const QString& adressline ) 845bool ExternalAppHandler::mailToOneContact( const QString& adressline )
763{ 846{