summaryrefslogtreecommitdiffabout
path: root/libkdepim/externalapphandler.cpp
Unidiff
Diffstat (limited to 'libkdepim/externalapphandler.cpp') (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
@@ -1,137 +1,138 @@
1/* 1/*
2 This file is part of libkdepim. 2 This file is part of libkdepim.
3 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
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#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
54 55
55/********************************************************************************* 56/*********************************************************************************
56 * 57 *
57 ********************************************************************************/ 58 ********************************************************************************/
58 59
59 60
60QCopTransferItem::QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) 61QCopTransferItem::QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage)
61 : _usedSourceParameters(usedSourceParameters), _sourceMessage(sourceMessage), _targetChannel(targetChannel), _targetMessage(targetMessage) 62 : _usedSourceParameters(usedSourceParameters), _sourceMessage(sourceMessage), _targetChannel(targetChannel), _targetMessage(targetMessage)
62{ 63{
63 //sourceMessage passes later three parameters: sourceChannel, uid, param1 64 //sourceMessage passes later three parameters: sourceChannel, uid, param1
64 if (_usedSourceParameters == 0) 65 if (_usedSourceParameters == 0)
65 _sourceMessageParameters = "QString,QString)"; 66 _sourceMessageParameters = "QString,QString)";
66 else if (_usedSourceParameters == 1) 67 else if (_usedSourceParameters == 1)
67 _sourceMessageParameters = "(QString,QString,QString)"; 68 _sourceMessageParameters = "(QString,QString,QString)";
68 else if (_usedSourceParameters == 2) 69 else if (_usedSourceParameters == 2)
69 _sourceMessageParameters = "(QString,QString,QString,QString)"; 70 _sourceMessageParameters = "(QString,QString,QString,QString)";
70 else if (_usedSourceParameters == 3) 71 else if (_usedSourceParameters == 3)
71 _sourceMessageParameters = "(QString,QString,QString,QString,QString)"; 72 _sourceMessageParameters = "(QString,QString,QString,QString,QString)";
72} 73}
73 74
74/*********************************************************************************/ 75/*********************************************************************************/
75 76
76QCopTransferItem::QCopTransferItem() 77QCopTransferItem::QCopTransferItem()
77{ 78{
78} 79}
79 80
80/*********************************************************************************/ 81/*********************************************************************************/
81bool QCopTransferItem::sendMessageToTarget(const QString& uid, const QString& param1, const QString& param2, const QString& param3) 82bool QCopTransferItem::sendMessageToTarget(const QString& uid, const QString& param1, const QString& param2, const QString& param3)
82{ 83{
83 84
84#ifndef DESKTOP_VERSION 85#ifndef DESKTOP_VERSION
85 //sourceMessage passes two parameters: sourceChannel, uid 86 //sourceMessage passes two parameters: sourceChannel, uid
86 QString sourceMessage = _sourceMessage + _sourceMessageParameters; 87 QString sourceMessage = _sourceMessage + _sourceMessageParameters;
87#ifdef DEBUG_EXT_APP_HANDLER 88#ifdef DEBUG_EXT_APP_HANDLER
88 qDebug("1Using QCopEnvelope e(\"%s\",\"%s\")", _targetChannel.latin1(), sourceMessage.latin1()); 89 qDebug("1Using QCopEnvelope e(\"%s\",\"%s\")", _targetChannel.latin1(), sourceMessage.latin1());
89 qDebug("passing sourcechannel(%s), uid(%s), param1(%s), param2(%s), param3(%s) as parameter to QCopEnvelope", _sourceChannel.latin1(), uid.latin1(), param1.latin1(), param2.latin1(), param3.latin1()); 90 qDebug("passing sourcechannel(%s), uid(%s), param1(%s), param2(%s), param3(%s) as parameter to QCopEnvelope", _sourceChannel.latin1(), uid.latin1(), param1.latin1(), param2.latin1(), param3.latin1());
90#endif 91#endif
91 92
92 QCopEnvelope e(_targetChannel.latin1(), sourceMessage.latin1()); 93 QCopEnvelope e(_targetChannel.latin1(), sourceMessage.latin1());
93 94
94 e << _sourceChannel << uid; 95 e << _sourceChannel << uid;
95 96
96 if (_usedSourceParameters == 1) 97 if (_usedSourceParameters == 1)
97 e << param1; 98 e << param1;
98 else if (_usedSourceParameters == 2) 99 else if (_usedSourceParameters == 2)
99 e << param1 << param2; 100 e << param1 << param2;
100 else if (_usedSourceParameters == 3) 101 else if (_usedSourceParameters == 3)
101 e << param1 << param2 << param3; 102 e << param1 << param2 << param3;
102 103
103 qApp->processEvents(); 104 qApp->processEvents();
104 105
105 return true; 106 return true;
106 107
107#else 108#else
108 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); 109 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) );
109 return false; 110 return false;
110#endif 111#endif
111 112
112} 113}
113 114
114 115
115/*********************************************************************************/ 116/*********************************************************************************/
116void QCopTransferItem::setSourceChannel(const QString& sourceChannel) 117void QCopTransferItem::setSourceChannel(const QString& sourceChannel)
117{ 118{
118 119
119 if ( !sourceChannel.isEmpty()) 120 if ( !sourceChannel.isEmpty())
120 _sourceChannel = sourceChannel; 121 _sourceChannel = sourceChannel;
121} 122}
122 123
123 124
124/*********************************************************************************/ 125/*********************************************************************************/
125bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) 126bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data )
126{ 127{
127 128
128 // copied from old mail2 129 // copied from old mail2
129/* 130/*
130 static int ii = 0; 131 static int ii = 0;
131 132
132 // block second call 133 // block second call
133 if ( ii < 2 ) { 134 if ( ii < 2 ) {
134 ++ii; 135 ++ii;
135 if ( ii > 1 ) { 136 if ( ii > 1 ) {
136 qDebug("qcop call blocked "); 137 qDebug("qcop call blocked ");
137 return true; 138 return true;
@@ -341,507 +342,589 @@ bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& d
341 return true; 342 return true;
342 } 343 }
343 } 344 }
344 345
345 return false; 346 return false;
346} 347}
347 348
348 349
349 350
350/********************************************************************************* 351/*********************************************************************************
351 * 352 *
352 ********************************************************************************/ 353 ********************************************************************************/
353 354
354 355
355ExternalAppHandler *ExternalAppHandler::sInstance = 0; 356ExternalAppHandler *ExternalAppHandler::sInstance = 0;
356static KStaticDeleter<ExternalAppHandler> staticDeleter; 357static KStaticDeleter<ExternalAppHandler> staticDeleter;
357 358
358ExternalAppHandler::ExternalAppHandler() 359ExternalAppHandler::ExternalAppHandler()
359{ 360{
360 mDefaultItems.setAutoDelete(true); 361 mDefaultItems.setAutoDelete(true);
361 362
362 mNameEmailUidListFromKAPITransfer = new QCopListTransferItem(0, "requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList"); 363 mNameEmailUidListFromKAPITransfer = new QCopListTransferItem(0, "requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList");
363 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForNameEmailUidList(const QString&, const QString&))); 364 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForNameEmailUidList(const QString&, const QString&)));
364 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&))); 365 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&)));
365 366
366//US mFindByEmailFromKAPITransfer = new QCopListTransferItem(1, "requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList"); 367//US mFindByEmailFromKAPITransfer = new QCopListTransferItem(1, "requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList");
367//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForFindByEmail(const QString&, const QString&, const QString&))); 368//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForFindByEmail(const QString&, const QString&, const QString&)));
368//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedFindByEmailEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); 369//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedFindByEmailEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)));
369 370
370 mDisplayDetails = new QCopListTransferItem(3, "requestDisplayDetailsFromKAPI", "QPE/Application/kapi", ""); 371 mDisplayDetails = new QCopListTransferItem(3, "requestDisplayDetailsFromKAPI", "QPE/Application/kapi", "");
371 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&))); 372 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&)));
372 373
373 374
374 375
375 mBirthdayListFromKAPITransfer = new QCopListTransferItem(0, "requestBirthdayListFromKAPI", "QPE/Application/kapi", "receiveBirthdayList"); 376 mBirthdayListFromKAPITransfer = new QCopListTransferItem(0, "requestBirthdayListFromKAPI", "QPE/Application/kapi", "receiveBirthdayList");
376 connect(mBirthdayListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForBirthdayList(const QString&, const QString&))); 377 connect(mBirthdayListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForBirthdayList(const QString&, const QString&)));
377 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&))); 378 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&)));
378 379
379 380
380} 381}
381 382
382ExternalAppHandler::~ExternalAppHandler() 383ExternalAppHandler::~ExternalAppHandler()
383{ 384{
384 delete mNameEmailUidListFromKAPITransfer; 385 delete mNameEmailUidListFromKAPITransfer;
385 //delete mFindByEmailFromKAPITransfer; 386 //delete mFindByEmailFromKAPITransfer;
386 delete mDisplayDetails; 387 delete mDisplayDetails;
387 delete mBirthdayListFromKAPITransfer; 388 delete mBirthdayListFromKAPITransfer;
388} 389}
389 390
390void ExternalAppHandler::receivedNameEmailUidList_Slot(const QString& uid, 391void ExternalAppHandler::receivedNameEmailUidList_Slot(const QString& uid,
391 const QStringList& nameList, 392 const QStringList& nameList,
392 const QStringList& emailList, 393 const QStringList& emailList,
393 const QStringList& uidList, 394 const QStringList& uidList,
394 const QStringList&, 395 const QStringList&,
395 const QStringList&, 396 const QStringList&,
396 const QStringList& ) 397 const QStringList& )
397{ 398{
398 // this method is a conevnient way to reduce the number of parameters I have to pass 399 // this method is a conevnient way to reduce the number of parameters I have to pass
399 emit receivedNameEmailUidListEvent(uid, nameList, emailList, uidList); 400 emit receivedNameEmailUidListEvent(uid, nameList, emailList, uidList);
400} 401}
401 402
402 403
403void ExternalAppHandler::loadConfig() 404void ExternalAppHandler::loadConfig()
404{ 405{
405 406
406 mDefaultItems.clear(); 407 mDefaultItems.clear();
407 mEmailAppAvailable = UNDEFINED; 408 mEmailAppAvailable = UNDEFINED;
408 mPhoneAppAvailable = UNDEFINED; 409 mPhoneAppAvailable = UNDEFINED;
409 mFaxAppAvailable = UNDEFINED; 410 mFaxAppAvailable = UNDEFINED;
410 mSMSAppAvailable = UNDEFINED; 411 mSMSAppAvailable = UNDEFINED;
411 mPagerAppAvailable = UNDEFINED; 412 mPagerAppAvailable = UNDEFINED;
412 mSIPAppAvailable = UNDEFINED; 413 mSIPAppAvailable = UNDEFINED;
413 414
414 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") ); 415 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") );
415 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") ); 416 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") );
416 QString qtpath = QString::fromLatin1( getenv("QTDIR") ); 417 QString qtpath = QString::fromLatin1( getenv("QTDIR") );
417 418
418 //if qtopiapath is not set, fallback to qt 419 //if qtopiapath is not set, fallback to qt
419 if (qtopiapath.isEmpty()) 420 if (qtopiapath.isEmpty())
420 qtopiapath = qtpath; 421 qtopiapath = qtpath;
421 422
422 //if opiepath is not set, fallback to qtopia 423 //if opiepath is not set, fallback to qtopia
423 if (opiepath.isEmpty()) 424 if (opiepath.isEmpty())
424 opiepath = qtopiapath; 425 opiepath = qtopiapath;
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);
464 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined); 484 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined);
465 485
466 //smsclients 486 //smsclients
467 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined); 487 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined);
468 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined); 488 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined);
469 489
470 //pagerclients 490 //pagerclients
471 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined); 491 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined);
472 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined); 492 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined);
473 493
474 //sipclients 494 //sipclients
475 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::NONE_SIC, "No SIP client installed", undefined, undefined, undefined, undefined, undefined); 495 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::NONE_SIC, "No SIP client installed", undefined, undefined, undefined, undefined, undefined);
476 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::OTHER_SIC, "Other SIP client", undefined, undefined, undefined, undefined, undefined); 496 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::OTHER_SIC, "Other SIP client", undefined, undefined, undefined, undefined, undefined);
477 if (( QFile::exists( qtopiapath + "/bin/kppi" )) || 497 if (( QFile::exists( qtopiapath + "/bin/kppi" )) ||
478 ( QFile::exists( opiepath + "/bin/kppi" ))) 498 ( QFile::exists( opiepath + "/bin/kppi" )))
479 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::KPPI_SIC, "KP/Pi SIP client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined); 499 addDefaultAppItem(ExternalAppHandler::SIP, KPimGlobalPrefs::KPPI_SIC, "KP/Pi SIP client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined);
480 500
481} 501}
482 502
483ExternalAppHandler *ExternalAppHandler::instance() 503ExternalAppHandler *ExternalAppHandler::instance()
484{ 504{
485 if ( !sInstance ) { 505 if ( !sInstance ) {
486 sInstance = staticDeleter.setObject( new ExternalAppHandler() ); 506 sInstance = staticDeleter.setObject( new ExternalAppHandler() );
487 sInstance->loadConfig(); 507 sInstance->loadConfig();
488 } 508 }
489 509
490 return sInstance; 510 return sInstance;
491} 511}
492 512
493void ExternalAppHandler::addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameter, const QString& message2, const QString& parameter2) 513void ExternalAppHandler::addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameter, const QString& message2, const QString& parameter2)
494{ 514{
495 DefaultAppItem* dai = new DefaultAppItem(type, id, label, channel, message, parameter, message2, parameter2); 515 DefaultAppItem* dai = new DefaultAppItem(type, id, label, channel, message, parameter, message2, parameter2);
496 // qDebug("%d %d %s %s ", type, id, label.latin1(), channel.latin1() ); 516 // qDebug("%d %d %s %s ", type, id, label.latin1(), channel.latin1() );
497 mDefaultItems.append(dai); 517 mDefaultItems.append(dai);
498} 518}
499 519
500 520
501QList<DefaultAppItem> ExternalAppHandler::getAvailableDefaultItems(Types type) 521QList<DefaultAppItem> ExternalAppHandler::getAvailableDefaultItems(Types type)
502{ 522{
503 QList<DefaultAppItem> list; 523 QList<DefaultAppItem> list;
504 524
505 DefaultAppItem* dai; 525 DefaultAppItem* dai;
506 526
507 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() ) 527 for ( dai=mDefaultItems.first(); dai != 0; dai=mDefaultItems.next() )
508 { 528 {
509 if (dai->_type == type) 529 if (dai->_type == type)
510 list.append(dai); 530 list.append(dai);
511 } 531 }
512 532
513 return list; 533 return list;
514} 534}
515 535
516DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid) 536DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid)
517{ 537{
518 DefaultAppItem* dai; 538 DefaultAppItem* dai;
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;
557 } 574 }
558 575
559 return (mSMSAppAvailable == AVAILABLE); 576 return (mSMSAppAvailable == AVAILABLE);
560#else //DESKTOP_VERSION 577#else //DESKTOP_VERSION
561 return false; 578 return false;
562#endif //DESKTOP_VERSION 579#endif //DESKTOP_VERSION
563} 580}
564 581
565bool ExternalAppHandler::isPhoneAppAvailable() 582bool ExternalAppHandler::isPhoneAppAvailable()
566{ 583{
567#ifndef DESKTOP_VERSION 584#ifndef DESKTOP_VERSION
568 if (mPhoneAppAvailable == UNDEFINED) 585 if (mPhoneAppAvailable == UNDEFINED)
569 { 586 {
570 int client = KPimGlobalPrefs::instance()->mPhoneClient; 587 int client = KPimGlobalPrefs::instance()->mPhoneClient;
571 if (client == KPimGlobalPrefs::NONE_PHC) 588 if (client == KPimGlobalPrefs::NONE_PHC)
572 mPhoneAppAvailable = UNAVAILABLE; 589 mPhoneAppAvailable = UNAVAILABLE;
573 else 590 else
574 mPhoneAppAvailable = AVAILABLE; 591 mPhoneAppAvailable = AVAILABLE;
575 } 592 }
576 593
577 return (mPhoneAppAvailable == AVAILABLE); 594 return (mPhoneAppAvailable == AVAILABLE);
578#else //DESKTOP_VERSION 595#else //DESKTOP_VERSION
579 return false; 596 return false;
580#endif //DESKTOP_VERSION 597#endif //DESKTOP_VERSION
581} 598}
582 599
583bool ExternalAppHandler::isFaxAppAvailable() 600bool ExternalAppHandler::isFaxAppAvailable()
584{ 601{
585#ifndef DESKTOP_VERSION 602#ifndef DESKTOP_VERSION
586 if (mFaxAppAvailable == UNDEFINED) 603 if (mFaxAppAvailable == UNDEFINED)
587 { 604 {
588 int client = KPimGlobalPrefs::instance()->mFaxClient; 605 int client = KPimGlobalPrefs::instance()->mFaxClient;
589 if (client == KPimGlobalPrefs::NONE_FAC) 606 if (client == KPimGlobalPrefs::NONE_FAC)
590 mFaxAppAvailable = UNAVAILABLE; 607 mFaxAppAvailable = UNAVAILABLE;
591 else 608 else
592 mFaxAppAvailable = AVAILABLE; 609 mFaxAppAvailable = AVAILABLE;
593 } 610 }
594 611
595 return (mFaxAppAvailable == AVAILABLE); 612 return (mFaxAppAvailable == AVAILABLE);
596#else //DESKTOP_VERSION 613#else //DESKTOP_VERSION
597 return false; 614 return false;
598#endif //DESKTOP_VERSION 615#endif //DESKTOP_VERSION
599} 616}
600 617
601bool ExternalAppHandler::isPagerAppAvailable() 618bool ExternalAppHandler::isPagerAppAvailable()
602{ 619{
603#ifndef DESKTOP_VERSION 620#ifndef DESKTOP_VERSION
604 if (mPagerAppAvailable == UNDEFINED) 621 if (mPagerAppAvailable == UNDEFINED)
605 { 622 {
606 int client = KPimGlobalPrefs::instance()->mPagerClient; 623 int client = KPimGlobalPrefs::instance()->mPagerClient;
607 if (client == KPimGlobalPrefs::NONE_PAC) 624 if (client == KPimGlobalPrefs::NONE_PAC)
608 mPagerAppAvailable = UNAVAILABLE; 625 mPagerAppAvailable = UNAVAILABLE;
609 else 626 else
610 mPagerAppAvailable = AVAILABLE; 627 mPagerAppAvailable = AVAILABLE;
611 } 628 }
612 629
613 return (mPagerAppAvailable == AVAILABLE); 630 return (mPagerAppAvailable == AVAILABLE);
614#else //DESKTOP_VERSION 631#else //DESKTOP_VERSION
615 return false; 632 return false;
616#endif //DESKTOP_VERSION 633#endif //DESKTOP_VERSION
617} 634}
618 635
619 636
620bool ExternalAppHandler::isSIPAppAvailable() 637bool ExternalAppHandler::isSIPAppAvailable()
621{ 638{
622#ifndef DESKTOP_VERSION 639#ifndef DESKTOP_VERSION
623 if (mSIPAppAvailable == UNDEFINED) 640 if (mSIPAppAvailable == UNDEFINED)
624 { 641 {
625 int client = KPimGlobalPrefs::instance()->mSipClient; 642 int client = KPimGlobalPrefs::instance()->mSipClient;
626 if (client == KPimGlobalPrefs::NONE_SIC) 643 if (client == KPimGlobalPrefs::NONE_SIC)
627 mSIPAppAvailable = UNAVAILABLE; 644 mSIPAppAvailable = UNAVAILABLE;
628 else 645 else
629 mSIPAppAvailable = AVAILABLE; 646 mSIPAppAvailable = AVAILABLE;
630 } 647 }
631 648
632 return (mSIPAppAvailable == AVAILABLE); 649 return (mSIPAppAvailable == AVAILABLE);
633#else //DESKTOP_VERSION 650#else //DESKTOP_VERSION
634 return false; 651 return false;
635#endif //DESKTOP_VERSION 652#endif //DESKTOP_VERSION
636} 653}
637 654
638/************************************************************************** 655/**************************************************************************
639 * 656 *
640 **************************************************************************/ 657 **************************************************************************/
641 658
642 659
643//calls the emailapplication with a number of attachments that need to be send (Seperated by Comma) 660//calls the emailapplication with a number of attachments that need to be send (Seperated by Comma)
644bool ExternalAppHandler::mailToMultipleContacts( const QString& emails, const QString& urls ) 661bool ExternalAppHandler::mailToMultipleContacts( const QString& emails, const QString& urls )
645{ 662{
646 663
647#ifndef DESKTOP_VERSION 664#ifndef DESKTOP_VERSION
648 QString channel; 665 QString channel;
649 QString message2; 666 QString message2;
650 QString parameters2; 667 QString parameters2;
651 668
652 669
653 int client = KPimGlobalPrefs::instance()->mEmailClient; 670 int client = KPimGlobalPrefs::instance()->mEmailClient;
654 if (client == KPimGlobalPrefs::OTHER_EMC) 671 if (client == KPimGlobalPrefs::OTHER_EMC)
655 { 672 {
656 channel = KPimGlobalPrefs::instance()->mEmailOtherChannel; 673 channel = KPimGlobalPrefs::instance()->mEmailOtherChannel;
657 message2 = KPimGlobalPrefs::instance()->mEmailOtherMessage; 674 message2 = KPimGlobalPrefs::instance()->mEmailOtherMessage;
658 parameters2 = KPimGlobalPrefs::instance()->mEmailOtherMessageParameters; 675 parameters2 = KPimGlobalPrefs::instance()->mEmailOtherMessageParameters;
659 } 676 }
660 else 677 else
661 { 678 {
662 DefaultAppItem* dai = getDefaultItem(EMAIL, client); 679 DefaultAppItem* dai = getDefaultItem(EMAIL, client);
663 if (!dai) 680 if (!dai)
664 { 681 {
665 qDebug("could not find configured email application."); 682 qDebug("could not find configured email application.");
666 return false; 683 return false;
667 } 684 }
668 channel = dai->_channel; 685 channel = dai->_channel;
669 message2 = dai->_message2; 686 message2 = dai->_message2;
670 parameters2 = dai->_parameters2; 687 parameters2 = dai->_parameters2;
671 } 688 }
672 689
673 //first check if one of the mailers need the emails right in the message. 690 //first check if one of the mailers need the emails right in the message.
674 message2 = translateMessage(message2, emails, urls); 691 message2 = translateMessage(message2, emails, urls);
675 692
676 693
677#ifdef DEBUG_EXT_APP_HANDLER 694#ifdef DEBUG_EXT_APP_HANDLER
678 qDebug("4Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message2.latin1()); 695 qDebug("4Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message2.latin1());
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 }
718 else 789 else
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{
764 QString line = adressline; 847 QString line = adressline;
765 848
766 int first = line.find( "<"); 849 int first = line.find( "<");
767 int last = line.find( ">"); 850 int last = line.find( ">");
768 QString name = line.left(first); 851 QString name = line.left(first);
769 QString emailadress = line.mid(first+1, last-first-1); 852 QString emailadress = line.mid(first+1, last-first-1);
770 853
771 //Subject can not be handled right now. 854 //Subject can not be handled right now.
772 return mailToOneContact( name, emailadress ); 855 return mailToOneContact( name, emailadress );
773 856
774} 857}
775 858
776 859
777/************************************************************************** 860/**************************************************************************
778 * 861 *
779 **************************************************************************/ 862 **************************************************************************/
780 863
781//calls the phoneapplication with the number 864//calls the phoneapplication with the number
782bool ExternalAppHandler::callByPhone( const QString& phonenumber ) 865bool ExternalAppHandler::callByPhone( const QString& phonenumber )
783{ 866{
784#ifndef DESKTOP_VERSION 867#ifndef DESKTOP_VERSION
785 QString channel; 868 QString channel;
786 QString message; 869 QString message;
787 QString parameters; 870 QString parameters;
788 871
789 872
790 int client = KPimGlobalPrefs::instance()->mPhoneClient; 873 int client = KPimGlobalPrefs::instance()->mPhoneClient;
791 if (client == KPimGlobalPrefs::OTHER_PHC) 874 if (client == KPimGlobalPrefs::OTHER_PHC)
792 { 875 {
793 channel = KPimGlobalPrefs::instance()->mPhoneOtherChannel; 876 channel = KPimGlobalPrefs::instance()->mPhoneOtherChannel;
794 message = KPimGlobalPrefs::instance()->mPhoneOtherMessage; 877 message = KPimGlobalPrefs::instance()->mPhoneOtherMessage;
795 parameters = KPimGlobalPrefs::instance()->mPhoneOtherMessageParameters; 878 parameters = KPimGlobalPrefs::instance()->mPhoneOtherMessageParameters;
796 } 879 }
797 else 880 else
798 { 881 {
799 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(PHONE, client); 882 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(PHONE, client);
800 if (!dai) 883 if (!dai)
801 { 884 {
802 qDebug("could not find configured phone application."); 885 qDebug("could not find configured phone application.");
803 return false; 886 return false;
804 } 887 }
805 channel = dai->_channel; 888 channel = dai->_channel;
806 message = dai->_message; 889 message = dai->_message;
807 parameters = dai->_parameters; 890 parameters = dai->_parameters;
808 } 891 }
809 892
810 893
811 //first check if one of the mailers need the emails right in the message. 894 //first check if one of the mailers need the emails right in the message.
812 message = translateMessage(message, phonenumber, ""); 895 message = translateMessage(message, phonenumber, "");
813 896
814 897
815#ifdef DEBUG_EXT_APP_HANDLER 898#ifdef DEBUG_EXT_APP_HANDLER
816 qDebug("6Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 899 qDebug("6Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
817 qDebug("passing phonenumber(%s) as parameter in the form %s to QCopEnvelope", phonenumber.latin1(), parameters.latin1()); 900 qDebug("passing phonenumber(%s) as parameter in the form %s to QCopEnvelope", phonenumber.latin1(), parameters.latin1());
818#endif 901#endif
819 902
820 QCopEnvelope e(channel.latin1(), message.latin1()); 903 QCopEnvelope e(channel.latin1(), message.latin1());
821 //US we need no names in the To field. The emailadresses are enough 904 //US we need no names in the To field. The emailadresses are enough
822 905
823 passParameters(&e, parameters, phonenumber, ""); 906 passParameters(&e, parameters, phonenumber, "");
824 907
825 908
826#else 909#else
827 KMessageBox::sorry( 0, i18n( "This version does not support phonecalls." ) ); 910 KMessageBox::sorry( 0, i18n( "This version does not support phonecalls." ) );
828#endif 911#endif
829 912
830 913
831 return true; 914 return true;
832} 915}
833 916
834/************************************************************************** 917/**************************************************************************
835 * 918 *
836 **************************************************************************/ 919 **************************************************************************/
837 920
838//calls the smsapplication with the number 921//calls the smsapplication with the number
839bool ExternalAppHandler::callBySMS( const QString& phonenumber ) 922bool ExternalAppHandler::callBySMS( const QString& phonenumber )
840{ 923{
841#ifndef DESKTOP_VERSION 924#ifndef DESKTOP_VERSION
842 QString channel; 925 QString channel;
843 QString message; 926 QString message;
844 QString parameters; 927 QString parameters;
845 928
846 929
847 int client = KPimGlobalPrefs::instance()->mSMSClient; 930 int client = KPimGlobalPrefs::instance()->mSMSClient;