summaryrefslogtreecommitdiffabout
path: root/libkdepim
Unidiff
Diffstat (limited to 'libkdepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/externalapphandler.cpp52
-rw-r--r--libkdepim/externalapphandler.h10
2 files changed, 40 insertions, 22 deletions
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index b57506b..bd83626 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -1,389 +1,407 @@
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 <qmap.h> 33#include <qmap.h>
34#include <qregexp.h> 34#include <qregexp.h>
35 35
36#ifndef DESKTOP_VERSION 36#ifndef DESKTOP_VERSION
37#include <qpe/qpeapplication.h>
37#include <qtopia/qcopenvelope_qws.h> 38#include <qtopia/qcopenvelope_qws.h>
39#else
40#include <qapplication.h>
38#endif 41#endif
39 42
40#include <kstaticdeleter.h> 43#include <kstaticdeleter.h>
41#include <kmessagebox.h> 44#include <kmessagebox.h>
42 45
43 46
44#include "externalapphandler.h" 47#include "externalapphandler.h"
45 48
46#include "kpimglobalprefs.h" 49#include "kpimglobalprefs.h"
47 50
48/********************************************************************************* 51/*********************************************************************************
49 * 52 *
50 ********************************************************************************/ 53 ********************************************************************************/
51 54
52 55
53QCopTransferItem::QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) 56QCopTransferItem::QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage)
54 : _usedSourceParameters(usedSourceParameters), _sourceMessage(sourceMessage), _targetChannel(targetChannel), _targetMessage(targetMessage) 57 : _usedSourceParameters(usedSourceParameters), _sourceMessage(sourceMessage), _targetChannel(targetChannel), _targetMessage(targetMessage)
55{ 58{
56 //sourceMessage passes later three parameters: sourceChannel, uid, param1 59 //sourceMessage passes later three parameters: sourceChannel, uid, param1
57 _sourceMessageParameters = "(QString,QString,QString)"; 60 if (_usedSourceParameters == 0)
61 _sourceMessageParameters = "(QString,QString)";
62 else if (_usedSourceParameters == 1)
63 _sourceMessageParameters = "(QString,QString,QString)";
64 else if (_usedSourceParameters == 2)
65 _sourceMessageParameters = "(QString,QString,QString,QString)";
66 else if (_usedSourceParameters == 3)
67 _sourceMessageParameters = "(QString,QString,QString,QString,QString)";
58} 68}
59 69
60/*********************************************************************************/ 70/*********************************************************************************/
61 71
62QCopTransferItem::QCopTransferItem() 72QCopTransferItem::QCopTransferItem()
63{ 73{
64} 74}
65 75
66/*********************************************************************************/ 76/*********************************************************************************/
67bool QCopTransferItem::sendMessageToTarget(const QString& uid, const QString& param1, const QString& param2, const QString& param3) 77bool QCopTransferItem::sendMessageToTarget(const QString& uid, const QString& param1, const QString& param2, const QString& param3)
68{ 78{
69 79
70#ifndef DESKTOP_VERSION 80#ifndef DESKTOP_VERSION
71 //sourceMessage passes two parameters: sourceChannel, uid 81 //sourceMessage passes two parameters: sourceChannel, uid
72 QString sourceMessage = _sourceMessage + _sourceMessageParameters; 82 QString sourceMessage = _sourceMessage + _sourceMessageParameters;
73 83
74 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _targetChannel.latin1(), sourceMessage.latin1()); 84 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _targetChannel.latin1(), sourceMessage.latin1());
75 qDebug("passing sourcechannel(%s), uid(%s), param1(%s), param3(%s), param3(%s) as parameter to QCopEnvelope", _sourceChannel.latin1(), uid.latin1(), param1.latin1(), param2.latin1(), param3.latin1()); 85 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());
76 86
77 QCopEnvelope e(_targetChannel.latin1(), sourceMessage.latin1()); 87 QCopEnvelope e(_targetChannel.latin1(), sourceMessage.latin1());
78 88
79 e << _sourceChannel << uid; 89 e << _sourceChannel << uid;
80 90
81 if (_usedSourceParameters == 1) 91 if (_usedSourceParameters == 1)
82 e << param1; 92 e << param1;
83 else if (_usedSourceParameters == 2) 93 else if (_usedSourceParameters == 2)
84 e << param1 << param2; 94 e << param1 << param2;
85 else if (_usedSourceParameters == 3) 95 else if (_usedSourceParameters == 3)
86 e << param1 << param2 << param3; 96 e << param1 << param2 << param3;
87 97
98 qApp->processEvents();
88 99
89 return true; 100 return true;
90 101
91#else 102#else
92 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); 103 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) );
93 return false; 104 return false;
94#endif 105#endif
95 106
96} 107}
97 108
98 109
99/*********************************************************************************/ 110/*********************************************************************************/
100void QCopTransferItem::setSourceChannel(const QString& sourceChannel) 111void QCopTransferItem::setSourceChannel(const QString& sourceChannel)
101{ 112{
102 113
103 if (_sourceChannel.isEmpty()) 114 if (_sourceChannel.isEmpty())
104 _sourceChannel = sourceChannel; 115 _sourceChannel = sourceChannel;
105} 116}
106 117
107 118
108/*********************************************************************************/ 119/*********************************************************************************/
109bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) 120bool QCopTransferItem::appMessage( const QCString& cmsg, const QByteArray& data )
110{ 121{
111/*US 122
112 // copied from old mail2 123 // copied from old mail2
124/*
113 static int ii = 0; 125 static int ii = 0;
114 126
115 // block second call 127 // block second call
116 if ( ii < 2 ) { 128 if ( ii < 2 ) {
117 ++ii; 129 ++ii;
118 if ( ii > 1 ) { 130 if ( ii > 1 ) {
119 qDebug("qcop call blocked "); 131 qDebug("qcop call blocked ");
120 return true; 132 return true;
133 }
121 } 134 }
122 }
123*/ 135*/
124 qDebug("QCopTransferItem- QCOP message received: %s ", cmsg.data() ); 136
137// qDebug("QCopTransferItem- QCOP message received: %s ", cmsg.data() );
125 138
126 //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
127 if ( (_sourceMessage + _sourceMessageParameters) == cmsg.data()) 140 if ( (_sourceMessage + _sourceMessageParameters) == cmsg.data())
128 { 141 {
142
129 QDataStream stream( data, IO_ReadOnly ); 143 QDataStream stream( data, IO_ReadOnly );
130 144
131 145
132 QString sourceChannel; 146 QString sourceChannel;
133 QString uid; 147 QString uid;
134 QString param1; 148 QString param1;
135 QString param2; 149 QString param2;
136 QString param3; 150 QString param3;
137 151
138 stream >> sourceChannel >> uid; 152 stream >> sourceChannel >> uid;
139 153
140 if (_usedSourceParameters == 0) 154 if (_usedSourceParameters == 0)
141 { 155 {
142 emit receivedMessageFromSource(sourceChannel, uid); 156 emit receivedMessageFromSource(sourceChannel, uid);
143 } 157 }
144 else if (_usedSourceParameters == 1) 158 else if (_usedSourceParameters == 1)
145 { 159 {
146 stream >> param1; 160 stream >> param1;
147 emit receivedMessageFromSource(sourceChannel, uid, param1); 161 emit receivedMessageFromSource(sourceChannel, uid, param1);
148 } 162 }
149 else if (_usedSourceParameters == 2) 163 else if (_usedSourceParameters == 2)
150 { 164 {
151 stream >> param1 >> param2; 165 stream >> param1 >> param2;
152 emit receivedMessageFromSource(sourceChannel, uid, param1, param2); 166 emit receivedMessageFromSource(sourceChannel, uid, param1, param2);
153 } 167 }
154 else if (_usedSourceParameters == 3) 168 else if (_usedSourceParameters == 3)
155 { 169 {
156 stream >> param1 >> param2 >> param3; 170 stream >> param1 >> param2 >> param3;
157 emit receivedMessageFromSource(sourceChannel, uid, param1, param2, param3); 171 emit receivedMessageFromSource(sourceChannel, uid, param1, param2, param3);
158 } 172 }
159 173
160 return true; 174 return true;
161 } 175 }
162 176
163 return false; 177 return false;
164} 178}
165 179
166 180
167/********************************************************************************* 181/*********************************************************************************
168 * 182 *
169 ********************************************************************************/ 183 ********************************************************************************/
170 184
171 185
172QCopMapTransferItem::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)
173 : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage) 187 : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage)
174{ 188{
175 //targetMessage returns later two parameters: uid, and map<qstring,qstring> 189 //targetMessage returns later two parameters: uid, and map<qstring,qstring>
176 _targetMessageParameters = "(QString,QMAP<QString,QString>)"; 190 _targetMessageParameters = "(QString,QMAP<QString,QString>)";
177} 191}
178 192
179/*********************************************************************************/ 193/*********************************************************************************/
180bool QCopMapTransferItem::sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap) 194bool QCopMapTransferItem::sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap)
181{ 195{
182#ifndef DESKTOP_VERSION 196#ifndef DESKTOP_VERSION
183 //targetMessage passes two parameters: uid, map 197 //targetMessage passes two parameters: uid, map
184 QString targetMessage = _targetMessage + _targetMessageParameters; 198 QString targetMessage = _targetMessage + _targetMessageParameters;
185 199
186 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); 200 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1());
187 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());
188 202
189 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); 203 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1());
190 //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
191 205
192 e << uid << nameEmailMap; 206 e << uid << nameEmailMap;
193 207
208 qApp->processEvents();
209
194 return true; 210 return true;
195 211
196#else 212#else
197 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); 213 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) );
198 return false; 214 return false;
199#endif 215#endif
200 216
201} 217}
202 218
203 219
204/*********************************************************************************/ 220/*********************************************************************************/
205bool QCopMapTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) 221bool QCopMapTransferItem::appMessage( const QCString& cmsg, const QByteArray& data )
206{ 222{
207 bool res = QCopTransferItem::appMessage( cmsg, data ); 223 bool res = QCopTransferItem::appMessage( cmsg, data );
208 224
209 if (res == false) 225 if (res == false)
210 { 226 {
211 QDataStream stream( data, IO_ReadOnly ); 227 QDataStream stream( data, IO_ReadOnly );
212 228
213 qDebug("QCopMapTransferItem- QCOP message received: %s ", cmsg.data() ); 229// qDebug("QCopMapTransferItem- QCOP message received: %s ", cmsg.data() );
214 230
215 //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
216 if ((_targetMessage + _targetMessageParameters) == cmsg.data()) 232 if ((_targetMessage + _targetMessageParameters) == cmsg.data())
217 { 233 {
218 QMap<QString,QString> adrMap; 234 QMap<QString,QString> adrMap;
219 QString uid; 235 QString uid;
220 236
221 stream >> uid >> adrMap; 237 stream >> uid >> adrMap;
222 238
223 emit receivedMessageFromTarget(uid, adrMap); 239 emit receivedMessageFromTarget(uid, adrMap);
224 240
225 241
226 return true; 242 return true;
227 } 243 }
228 } 244 }
229 245
230 return false; 246 return false;
231} 247}
232 248
233 249
234/********************************************************************************* 250/*********************************************************************************
235 * 251 *
236 ********************************************************************************/ 252 ********************************************************************************/
237 253
238 254
239QCopListTransferItem::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)
240 : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage) 256 : QCopTransferItem(usedSourceParameters, sourceMessage, targetChannel,targetMessage)
241{ 257{
242 //targetMessage returns later two parameters: uid, and three lists 258 //targetMessage returns later two parameters: uid, and three lists
243 _targetMessageParameters = "(QString,QStringList,QStringList,QStringList)"; 259 _targetMessageParameters = "(QString,QStringList,QStringList,QStringList)";
244} 260}
245 261
246/*********************************************************************************/ 262/*********************************************************************************/
247bool 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)
248{ 264{
249#ifndef DESKTOP_VERSION 265#ifndef DESKTOP_VERSION
250 //targetMessage passes two parameters: uid, map 266 //targetMessage passes two parameters: uid, map
251 QString targetMessage = _targetMessage + _targetMessageParameters; 267 QString targetMessage = _targetMessage + _targetMessageParameters;
252 268
253 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1()); 269 qDebug("Using QCopEnvelope e(\"%s\",\"%s\")", _sourceChannel.latin1(), targetMessage.latin1());
254 qDebug("passing uid(%s) and list1, list2, list3 as parameter to QCopEnvelope", uid.latin1()); 270 qDebug("passing uid(%s) and list1, list2, list3 as parameter to QCopEnvelope", uid.latin1());
255 271
256 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1()); 272 QCopEnvelope e(_sourceChannel.latin1(), targetMessage.latin1());
257 //US we need no names in the To field. The emailadresses are enough 273 //US we need no names in the To field. The emailadresses are enough
258 274
259 e << uid << list1 << list2 << list3; 275 e << uid << list1 << list2 << list3;
260 276
277 qApp->processEvents();
278
261 return true; 279 return true;
262 280
263#else 281#else
264 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) ); 282 KMessageBox::sorry( 0, i18n( "This version does not support QCop." ) );
265 return false; 283 return false;
266#endif 284#endif
267 285
268} 286}
269 287
270 288
271/*********************************************************************************/ 289/*********************************************************************************/
272bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& data ) 290bool QCopListTransferItem::appMessage( const QCString& cmsg, const QByteArray& data )
273{ 291{
274 bool res = QCopTransferItem::appMessage( cmsg, data ); 292 bool res = QCopTransferItem::appMessage( cmsg, data );
275 293
276 if (res == false) 294 if (res == false)
277 { 295 {
278 QDataStream stream( data, IO_ReadOnly ); 296 QDataStream stream( data, IO_ReadOnly );
279 297
280 qDebug("QCopListTransferItem- QCOP message received: %s ", cmsg.data() ); 298// qDebug("QCopListTransferItem- QCOP message received: %s ", cmsg.data() );
281 299
282 //we are in the source and get an answer from the target 300 //we are in the source and get an answer from the target
283 if ((_targetMessage + _targetMessageParameters) == cmsg.data()) 301 if ((_targetMessage + _targetMessageParameters) == cmsg.data())
284 { 302 {
285 QStringList list1; 303 QStringList list1;
286 QStringList list2; 304 QStringList list2;
287 QStringList list3; 305 QStringList list3;
288 QString uid; 306 QString uid;
289 307
290 stream >> uid >> list1 >> list2 >> list3; 308 stream >> uid >> list1 >> list2 >> list3;
291 309
292 emit receivedMessageFromTarget(uid, list1, list2, list3); 310 emit receivedMessageFromTarget(uid, list1, list2, list3);
293 311
294 312
295 return true; 313 return true;
296 } 314 }
297 } 315 }
298 316
299 return false; 317 return false;
300} 318}
301 319
302 320
303 321
304/********************************************************************************* 322/*********************************************************************************
305 * 323 *
306 ********************************************************************************/ 324 ********************************************************************************/
307 325
308 326
309ExternalAppHandler *ExternalAppHandler::sInstance = 0; 327ExternalAppHandler *ExternalAppHandler::sInstance = 0;
310static KStaticDeleter<ExternalAppHandler> staticDeleter; 328static KStaticDeleter<ExternalAppHandler> staticDeleter;
311 329
312ExternalAppHandler::ExternalAppHandler() 330ExternalAppHandler::ExternalAppHandler()
313{ 331{
314 mDefaultItems.setAutoDelete(true); 332 mDefaultItems.setAutoDelete(true);
315 333
316 mNameEmailUidListFromKAPITransfer = new QCopListTransferItem(0, "requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList"); 334 mNameEmailUidListFromKAPITransfer = new QCopListTransferItem(0, "requestNameEmailUIDListFromKAPI", "QPE/Application/kapi", "receiveNameEmailUIDList");
317 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForNameEmailUidList(const QString&, const QString&))); 335 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&)), this, SIGNAL (requestForNameEmailUidList(const QString&, const QString&)));
318 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); 336 connect(mNameEmailUidListFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)));
319 337
320//US mFindByEmailFromKAPITransfer = new QCopListTransferItem(1, "requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList"); 338//US mFindByEmailFromKAPITransfer = new QCopListTransferItem(1, "requestFindByEmailFromKAPI", "QPE/Application/kapi", "receiveFindByEmailNameEmailUIDList");
321//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForFindByEmail(const QString&, const QString&, const QString&))); 339//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&)), this, SIGNAL (requestForFindByEmail(const QString&, const QString&, const QString&)));
322//US connect(mFindByEmailFromKAPITransfer, SIGNAL (receivedMessageFromTarget(const QString&, const QStringList&, const QStringList&, const QStringList&)), this, SIGNAL (receivedFindByEmailEvent(const QString&, const QStringList&, const QStringList&, const QStringList&))); 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&)));
323 341
324 mDisplayDetails = new QCopListTransferItem(3, "requestDisplayDetailsFromKAPI", "QPE/Application/kapi", ""); 342 mDisplayDetails = new QCopListTransferItem(3, "requestDisplayDetailsFromKAPI", "QPE/Application/kapi", "");
325 connect(mDisplayDetails, SIGNAL (receivedMessageFromSource(const QString&, const QString&, const QString&, const QString&)), this, SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); 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&)));
326} 344}
327 345
328ExternalAppHandler::~ExternalAppHandler() 346ExternalAppHandler::~ExternalAppHandler()
329{ 347{
330} 348}
331 349
332void ExternalAppHandler::loadConfig() 350void ExternalAppHandler::loadConfig()
333{ 351{
334 352
335 mDefaultItems.clear(); 353 mDefaultItems.clear();
336 354
337 mEmailAppAvailable = UNDEFINED; 355 mEmailAppAvailable = UNDEFINED;
338 mPhoneAppAvailable = UNDEFINED; 356 mPhoneAppAvailable = UNDEFINED;
339 mFaxAppAvailable = UNDEFINED; 357 mFaxAppAvailable = UNDEFINED;
340 mSMSAppAvailable = UNDEFINED; 358 mSMSAppAvailable = UNDEFINED;
341 mPagerAppAvailable = UNDEFINED; 359 mPagerAppAvailable = UNDEFINED;
342 360
343 361
344 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") ); 362 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") );
345 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") ); 363 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") );
346 364
347 if (opiepath.isEmpty()) 365 if (opiepath.isEmpty())
348 opiepath = qtopiapath; 366 opiepath = qtopiapath;
349 367
350 //mailclients 368 //mailclients
351 QString mailmsg1 = "writeMail(QString,QString)"; 369 QString mailmsg1 = "writeMail(QString,QString)";
352 QString mailmsg2 = "writeMail(QMap(QString,QString))"; 370 QString mailmsg2 = "writeMail(QMap(QString,QString))";
353 371
354 QString undefined = ""; 372 QString undefined = "";
355 373
356 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined); 374 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined);
357 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined); 375 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined);
358 376
359 if (( QFile::exists( qtopiapath + "/bin/ompi" )) || 377 if (( QFile::exists( qtopiapath + "/bin/ompi" )) ||
360 ( QFile::exists( opiepath + "/bin/ompi" ))) 378 ( QFile::exists( opiepath + "/bin/ompi" )))
361 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 379 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OMPI_EMC, "OM/Pi email client", "QPE/Application/ompi", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
362 380
363 if ( QFile::exists( qtopiapath + "/bin/qtmail" )) 381 if ( QFile::exists( qtopiapath + "/bin/qtmail" ))
364 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 382 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::QTOPIA_EMC, "Qtopia email client", "QPE/Application/qtmail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
365 383
366 if ( QFile::exists( opiepath + "/bin/opiemail" )) 384 if ( QFile::exists( opiepath + "/bin/opiemail" ))
367 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2"); 385 addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OPIE_EMC, "Opie email client", "QPE/Application/opiemail", mailmsg1, "%1;%2", mailmsg2, "TO=%1;ATTACHMENT=%2");
368 386
369 387
370 388
371 //phoneclients 389 //phoneclients
372 390
373 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined); 391 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC, "No phone client installed", undefined, undefined, undefined, undefined, undefined);
374 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined); 392 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::OTHER_PHC, "Other phone client", undefined, undefined, undefined, undefined, undefined);
375 if (( QFile::exists( qtopiapath + "/bin/kppi" )) || 393 if (( QFile::exists( qtopiapath + "/bin/kppi" )) ||
376 ( QFile::exists( opiepath + "/bin/kppi" ))) 394 ( QFile::exists( opiepath + "/bin/kppi" )))
377 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined); 395 addDefaultAppItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::KPPI_PHC, "KP/Pi phone client", "QPE/Application/kppi", "-ring:%1", "", undefined, undefined);
378 396
379 //faxclients 397 //faxclients
380 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined); 398 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC, "No fax client installed", undefined, undefined, undefined, undefined, undefined);
381 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined); 399 addDefaultAppItem(ExternalAppHandler::FAX, KPimGlobalPrefs::OTHER_FAC, "Other fax client", undefined, undefined, undefined, undefined, undefined);
382 400
383 //smsclients 401 //smsclients
384 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined); 402 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC, "No sms client installed", undefined, undefined, undefined, undefined, undefined);
385 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined); 403 addDefaultAppItem(ExternalAppHandler::SMS, KPimGlobalPrefs::OTHER_SMC, "Other sms client", undefined, undefined, undefined, undefined, undefined);
386 404
387 //pagerclients 405 //pagerclients
388 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined); 406 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC, "No pager client installed", undefined, undefined, undefined, undefined, undefined);
389 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined); 407 addDefaultAppItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::OTHER_PAC, "Other pager client", undefined, undefined, undefined, undefined, undefined);
@@ -925,74 +943,74 @@ void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& paramete
925 QString value = (*it2); 943 QString value = (*it2);
926 value = value.replace( QRegExp("%1"), param1 ); 944 value = value.replace( QRegExp("%1"), param1 );
927 value = value.replace( QRegExp("%2"), param2 ); 945 value = value.replace( QRegExp("%2"), param2 );
928 946
929 valmap.insert(key, value); 947 valmap.insert(key, value);
930 useValMap = true; 948 useValMap = true;
931 } 949 }
932 else 950 else
933 { 951 {
934 // qDebug("pass parameter << %s", key.latin1()); 952 // qDebug("pass parameter << %s", key.latin1());
935 (*e) << key; 953 (*e) << key;
936 } 954 }
937 } 955 }
938 956
939 if (useValMap == true) 957 if (useValMap == true)
940 (*e) << valmap; 958 (*e) << valmap;
941 959
942#endif 960#endif
943 961
944} 962}
945 963
946 964
947 965
948/************************************************************************** 966/**************************************************************************
949 * 967 *
950 **************************************************************************/ 968 **************************************************************************/
951 969
952void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) 970void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data )
953{ 971{
954 bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); 972 bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
955 973
956 if (!res) 974 if (!res)
957 res = mDisplayDetails->appMessage( cmsg, data ); 975 res = mDisplayDetails->appMessage( cmsg, data );
958 976
959// if (!res) 977// if (!res)
960// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); 978// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
961} 979}
962 980
963 981
964 982
965bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) 983bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid)
966{ 984{
967 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); 985 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
968 return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid); 986 return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid);
969} 987}
970 988
971bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 989bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
972{ 990{
973 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); 991 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
974 return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3); 992 return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3);
975} 993}
976 994
977bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) 995bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email)
978{ 996{
979 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); 997 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
980 return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); 998 return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email);
981} 999}
982 1000
983bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 1001bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
984{ 1002{
985 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); 1003 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
986 return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3); 1004 return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3);
987} 1005}
988 1006
989bool ExternalAppHandler::requestDetailsFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) 1007bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid)
990{ 1008{
991 mDisplayDetails->setSourceChannel(sourceChannel); 1009 mDisplayDetails->setSourceChannel("");
992 return mDisplayDetails->sendMessageToTarget(sessionuid, name, email, uid); 1010 return mDisplayDetails->sendMessageToTarget("", name, email, uid);
993} 1011}
994 1012
995 1013
996 1014
997 1015
998 1016
diff --git a/libkdepim/externalapphandler.h b/libkdepim/externalapphandler.h
index a74080f..1b04b2b 100644
--- a/libkdepim/externalapphandler.h
+++ b/libkdepim/externalapphandler.h
@@ -137,125 +137,125 @@ class DefaultAppItem
137 QString _parameters;// a list of parameters in stringrepresentation. Delimiter is ; 137 QString _parameters;// a list of parameters in stringrepresentation. Delimiter is ;
138 QString _message2; 138 QString _message2;
139 QString _parameters2; // a list of parameters in stringrepresentation. Delimiter is ; 139 QString _parameters2; // a list of parameters in stringrepresentation. Delimiter is ;
140 140
141}; 141};
142 142
143/********************************************************************************* 143/*********************************************************************************
144 * 144 *
145 ********************************************************************************/ 145 ********************************************************************************/
146 146
147class ExternalAppHandler : public QObject 147class ExternalAppHandler : public QObject
148{ 148{
149 Q_OBJECT 149 Q_OBJECT
150 public: 150 public:
151 virtual ~ExternalAppHandler(); 151 virtual ~ExternalAppHandler();
152 152
153 static ExternalAppHandler *instance(); 153 static ExternalAppHandler *instance();
154 154
155 enum Types { 155 enum Types {
156 EMAIL = 0, 156 EMAIL = 0,
157 PHONE = 1, 157 PHONE = 1,
158 SMS = 2, 158 SMS = 2,
159 FAX = 3, 159 FAX = 3,
160 PAGER = 4 160 PAGER = 4
161 }; 161 };
162 162
163 enum Availability { 163 enum Availability {
164 UNDEFINED = -1, 164 UNDEFINED = -1,
165 UNAVAILABLE = 0, 165 UNAVAILABLE = 0,
166 AVAILABLE = 1 166 AVAILABLE = 1
167 }; 167 };
168 168
169 //calls the emailapplication with a number of attachments that need to be send. 169 //calls the emailapplication with a number of attachments that need to be send.
170 //either parameter can be left empty. 170 //either parameter can be left empty.
171 bool mailToMultipleContacts( const QString& recipients, const QString& attachmenturls ); 171 bool mailToMultipleContacts( const QString& recipients, const QString& attachmenturls );
172 172
173 //calls the emailapplication and creates a mail with parameter emailadress as recipients 173 //calls the emailapplication and creates a mail with parameter emailadress as recipients
174 bool mailToOneContact( const QString& name, const QString& emailadress ); 174 bool mailToOneContact( const QString& name, const QString& emailadress );
175 175
176 //calls the emailapplication and creates a mail with parameter as recipients 176 //calls the emailapplication and creates a mail with parameter as recipients
177 // parameters format is 177 // parameters format is
178 // NAME <EMAIL>:SUBJECT 178 // NAME <EMAIL>:SUBJECT
179 bool mailToOneContact( const QString& adressline ); 179 bool mailToOneContact( const QString& adressline );
180 180
181 //calls the phoneapplication with the number 181 //calls the phoneapplication with the number
182 bool callByPhone( const QString& phonenumber ); 182 bool callByPhone( const QString& phonenumber );
183 183
184 //calls the smsapplication with the number 184 //calls the smsapplication with the number
185 bool callBySMS( const QString& phonenumber ); 185 bool callBySMS( const QString& phonenumber );
186 186
187 //calls the pagerapplication with the number 187 //calls the pagerapplication with the number
188 bool callByPager( const QString& pagernumber ); 188 bool callByPager( const QString& pagernumber );
189 189
190 //calls the faxapplication with the number 190 //calls the faxapplication with the number
191 bool callByFax( const QString& faxnumber ); 191 bool callByFax( const QString& faxnumber );
192 192
193 bool isEmailAppAvailable(); 193 bool isEmailAppAvailable();
194 bool isSMSAppAvailable(); 194 bool isSMSAppAvailable();
195 bool isPhoneAppAvailable(); 195 bool isPhoneAppAvailable();
196 bool isFaxAppAvailable(); 196 bool isFaxAppAvailable();
197 bool isPagerAppAvailable(); 197 bool isPagerAppAvailable();
198 198
199 199
200 //Call this method on the source when you want to select names from the addressbook by using QCop 200 //Call this method on the source when you want to select names from the addressbook by using QCop
201 bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& uid); 201 bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid);
202 //Call this method on the target when you want to return the name/email map to the source (client). 202 //Call this method on the target when you want to return the name/email map to the source (client).
203 bool returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& uid, const QStringList& name, const QStringList& email, const QStringList& uid); 203 bool returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid);
204 204
205 bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& uid, const QString& email); 205 bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email);
206 bool returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& uid, const QStringList& name, const QStringList& email, const QStringList& uid); 206 bool returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid);
207 207
208 bool requestDetailsFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 208 bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid);
209 209
210 210
211 //loadConfig clears the cache and checks again if the applications are available or not 211 //loadConfig clears the cache and checks again if the applications are available or not
212 void loadConfig(); 212 void loadConfig();
213 213
214 QList<DefaultAppItem> getAvailableDefaultItems(Types); 214 QList<DefaultAppItem> getAvailableDefaultItems(Types);
215 DefaultAppItem* getDefaultItem(Types, int); 215 DefaultAppItem* getDefaultItem(Types, int);
216 216
217 public slots: 217 public slots:
218 void appMessage( const QCString& msg, const QByteArray& data ); 218 void appMessage( const QCString& msg, const QByteArray& data );
219 219
220 220
221 signals: 221 signals:
222 // Emmitted when the target app receives a request from the source app 222 // Emmitted when the target app receives a request from the source app
223 void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid); 223 void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid);
224 224
225 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi 225 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi
226 // The first parameter is a uniqueid. It can be used to identify the event 226 // The first parameter is a uniqueid. It can be used to identify the event
227 void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); 227 void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList);
228 228
229 void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email); 229 void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email);
230 void receivedFindBbyEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); 230 void receivedFindBbyEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList);
231 231
232 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 232 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
233 233
234 234
235 private: 235 private:
236 ExternalAppHandler(); 236 ExternalAppHandler();
237 QList<DefaultAppItem> mDefaultItems; 237 QList<DefaultAppItem> mDefaultItems;
238 238
239 Availability mEmailAppAvailable; 239 Availability mEmailAppAvailable;
240 Availability mPhoneAppAvailable; 240 Availability mPhoneAppAvailable;
241 Availability mFaxAppAvailable; 241 Availability mFaxAppAvailable;
242 Availability mSMSAppAvailable; 242 Availability mSMSAppAvailable;
243 Availability mPagerAppAvailable; 243 Availability mPagerAppAvailable;
244 244
245 QCopListTransferItem* mNameEmailUidListFromKAPITransfer; 245 QCopListTransferItem* mNameEmailUidListFromKAPITransfer;
246 QCopListTransferItem* mFindByEmailFromKAPITransfer; 246 QCopListTransferItem* mFindByEmailFromKAPITransfer;
247 QCopTransferItem* mDisplayDetails; 247 QCopTransferItem* mDisplayDetails;
248 248
249 249
250 void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2); 250 void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2);
251 251
252 QString& translateMessage(QString& message, const QString& param1, const QString& param2) const; 252 QString& translateMessage(QString& message, const QString& param1, const QString& param2) const;
253 void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const; 253 void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const;
254 254
255 255
256 static ExternalAppHandler *sInstance; 256 static ExternalAppHandler *sInstance;
257 257
258}; 258};
259 259
260 260
261#endif 261#endif