Diffstat (limited to 'libkdepim/externalapphandler.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libkdepim/externalapphandler.h | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/libkdepim/externalapphandler.h b/libkdepim/externalapphandler.h index cfe577b..4c6f1ea 100644 --- a/libkdepim/externalapphandler.h +++ b/libkdepim/externalapphandler.h | |||
@@ -1,267 +1,291 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of libkdepim. | 2 | This file is part of libkdepim. |
3 | Copyright (c) 2004 Ulf Schenk | 3 | Copyright (c) 2004 Ulf Schenk |
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 | /* |
25 | Enhanced Version of the file for platform independent KDE tools. | 25 | Enhanced Version of the file for platform independent KDE tools. |
26 | Copyright (c) 2004 Ulf Schenk | 26 | Copyright (c) 2004 Ulf Schenk |
27 | 27 | ||
28 | $Id$ | 28 | $Id$ |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #ifndef EXTERNALAPPHANDLER_H | 31 | #ifndef EXTERNALAPPHANDLER_H |
32 | #define EXTERNALAPPHANDLER_H | 32 | #define EXTERNALAPPHANDLER_H |
33 | 33 | ||
34 | #include <qobject.h> | 34 | #include <qobject.h> |
35 | #include <qlist.h> | 35 | #include <qlist.h> |
36 | #include <qmap.h> | 36 | #include <qmap.h> |
37 | 37 | ||
38 | class QCopEnvelope; | 38 | class QCopEnvelope; |
39 | 39 | ||
40 | 40 | ||
41 | class ExternalAppHandler; | 41 | class ExternalAppHandler; |
42 | class QCopTransferItem : public QObject | 42 | class QCopTransferItem : public QObject |
43 | { | 43 | { |
44 | Q_OBJECT | 44 | Q_OBJECT |
45 | public: | 45 | public: |
46 | QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); | 46 | QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); |
47 | QCopTransferItem(); | 47 | QCopTransferItem(); |
48 | 48 | ||
49 | bool sendMessageToTarget(const QString& uid, const QString& param1 = QString::null, const QString& param2 = QString::null, const QString& param3 = QString::null); | 49 | bool sendMessageToTarget(const QString& uid, const QString& param1 = QString::null, const QString& param2 = QString::null, const QString& param3 = QString::null); |
50 | 50 | ||
51 | void setSourceChannel(const QString& sourceChannel); | 51 | void setSourceChannel(const QString& sourceChannel); |
52 | 52 | ||
53 | virtual bool appMessage( const QCString& msg, const QByteArray& data ); | 53 | virtual bool appMessage( const QCString& msg, const QByteArray& data ); |
54 | 54 | ||
55 | 55 | ||
56 | signals: | 56 | signals: |
57 | void receivedMessageFromSource(const QString& sourceChannel, const QString& uid); | 57 | void receivedMessageFromSource(const QString& sourceChannel, const QString& uid); |
58 | void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1); | 58 | void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1); |
59 | void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1, const QString& param2); | 59 | void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1, const QString& param2); |
60 | void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1, const QString& param2, const QString& param3); | 60 | void receivedMessageFromSource(const QString& sourceChannel, const QString& uid, const QString& param1, const QString& param2, const QString& param3); |
61 | 61 | ||
62 | |||
63 | public: | 62 | public: |
64 | int _usedSourceParameters; | 63 | int _usedSourceParameters; |
65 | QString _sourceChannel; | 64 | QString _sourceChannel; |
66 | QString _sourceMessage; | 65 | QString _sourceMessage; |
67 | QString _sourceMessageParameters; | 66 | QString _sourceMessageParameters; |
68 | QString _targetChannel; | 67 | QString _targetChannel; |
69 | QString _targetMessage; | 68 | QString _targetMessage; |
70 | QString _targetMessageParameters; | 69 | QString _targetMessageParameters; |
71 | 70 | ||
72 | }; | 71 | }; |
73 | 72 | ||
74 | /********************************************************************************* | 73 | /********************************************************************************* |
75 | * | 74 | * |
76 | ********************************************************************************/ | 75 | ********************************************************************************/ |
77 | 76 | ||
78 | class QCopMapTransferItem : public QCopTransferItem | 77 | class QCopMapTransferItem : public QCopTransferItem |
79 | { | 78 | { |
80 | Q_OBJECT | 79 | Q_OBJECT |
81 | public: | 80 | public: |
82 | QCopMapTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); | 81 | QCopMapTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); |
83 | 82 | ||
84 | bool sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap); | 83 | bool sendMessageToSource(const QString& uid, const QMap<QString,QString>& nameEmailMap); |
85 | 84 | ||
86 | 85 | ||
87 | virtual bool appMessage( const QCString& msg, const QByteArray& data ); | 86 | virtual bool appMessage( const QCString& msg, const QByteArray& data ); |
88 | 87 | ||
89 | 88 | ||
90 | signals: | 89 | signals: |
91 | void receivedMessageFromTarget(const QString& uid, const QMap<QString,QString>& nameEmailMap); | 90 | void receivedMessageFromTarget(const QString& uid, const QMap<QString,QString>& nameEmailMap); |
92 | 91 | ||
93 | }; | 92 | }; |
94 | 93 | ||
95 | /********************************************************************************* | 94 | /********************************************************************************* |
96 | * | 95 | * |
97 | ********************************************************************************/ | 96 | ********************************************************************************/ |
98 | 97 | ||
99 | class QCopListTransferItem : public QCopTransferItem | 98 | class QCopListTransferItem : public QCopTransferItem |
100 | { | 99 | { |
101 | Q_OBJECT | 100 | Q_OBJECT |
102 | public: | 101 | public: |
103 | QCopListTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); | 102 | QCopListTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage); |
104 | 103 | ||
105 | bool sendMessageToSource(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3); | 104 | bool sendMessageToSource(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4, const QStringList& list5, const QStringList& list6); |
106 | 105 | ||
107 | 106 | ||
108 | virtual bool appMessage( const QCString& msg, const QByteArray& data ); | 107 | virtual bool appMessage( const QCString& msg, const QByteArray& data ); |
109 | 108 | ||
110 | 109 | ||
111 | signals: | 110 | signals: |
112 | void receivedMessageFromTarget(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3); | 111 | void receivedMessageFromTarget(const QString& uid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4 , const QStringList& list5, const QStringList& list6); |
113 | 112 | ||
114 | }; | 113 | }; |
115 | 114 | ||
116 | /********************************************************************************* | 115 | /********************************************************************************* |
117 | * | 116 | * |
118 | ********************************************************************************/ | 117 | ********************************************************************************/ |
119 | 118 | ||
120 | 119 | ||
121 | class DefaultAppItem | 120 | class DefaultAppItem |
122 | { | 121 | { |
123 | public: | 122 | public: |
124 | DefaultAppItem(int type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2) | 123 | DefaultAppItem(int type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2) |
125 | : _type(type), _id(id), _label(label), _channel(channel), _message(message), _parameters(parameters), _message2(message2), _parameters2(parameters2) | 124 | : _type(type), _id(id), _label(label), _channel(channel), _message(message), _parameters(parameters), _message2(message2), _parameters2(parameters2) |
126 | {} | 125 | {} |
127 | 126 | ||
128 | DefaultAppItem() | 127 | DefaultAppItem() |
129 | { } | 128 | { } |
130 | 129 | ||
131 | public: | 130 | public: |
132 | int _type; | 131 | int _type; |
133 | int _id; | 132 | int _id; |
134 | QString _label; | 133 | QString _label; |
135 | QString _channel; | 134 | QString _channel; |
136 | QString _message; | 135 | QString _message; |
137 | QString _parameters;// a list of parameters in stringrepresentation. Delimiter is ; | 136 | QString _parameters;// a list of parameters in stringrepresentation. Delimiter is ; |
138 | QString _message2; | 137 | QString _message2; |
139 | QString _parameters2; // a list of parameters in stringrepresentation. Delimiter is ; | 138 | QString _parameters2; // a list of parameters in stringrepresentation. Delimiter is ; |
140 | 139 | ||
141 | }; | 140 | }; |
142 | 141 | ||
143 | /********************************************************************************* | 142 | /********************************************************************************* |
144 | * | 143 | * |
145 | ********************************************************************************/ | 144 | ********************************************************************************/ |
146 | 145 | ||
147 | class ExternalAppHandler : public QObject | 146 | class ExternalAppHandler : public QObject |
148 | { | 147 | { |
149 | Q_OBJECT | 148 | Q_OBJECT |
150 | public: | 149 | public: |
151 | virtual ~ExternalAppHandler(); | 150 | virtual ~ExternalAppHandler(); |
152 | 151 | ||
153 | static ExternalAppHandler *instance(); | 152 | static ExternalAppHandler *instance(); |
154 | 153 | ||
155 | enum Types { | 154 | enum Types { |
156 | EMAIL = 0, | 155 | EMAIL = 0, |
157 | PHONE = 1, | 156 | PHONE = 1, |
158 | SMS = 2, | 157 | SMS = 2, |
159 | FAX = 3, | 158 | FAX = 3, |
160 | PAGER = 4, | 159 | PAGER = 4, |
161 | SIP = 5 | 160 | SIP = 5 |
162 | }; | 161 | }; |
163 | 162 | ||
164 | enum Availability { | 163 | enum Availability { |
165 | UNDEFINED = -1, | 164 | UNDEFINED = -1, |
166 | UNAVAILABLE = 0, | 165 | UNAVAILABLE = 0, |
167 | AVAILABLE = 1 | 166 | AVAILABLE = 1 |
168 | }; | 167 | }; |
169 | 168 | ||
170 | //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. |
171 | //either parameter can be left empty. | 170 | //either parameter can be left empty. |
172 | bool mailToMultipleContacts( const QString& recipients, const QString& attachmenturls ); | 171 | bool mailToMultipleContacts( const QString& recipients, const QString& attachmenturls ); |
173 | 172 | ||
174 | //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 |
175 | bool mailToOneContact( const QString& name, const QString& emailadress ); | 174 | bool mailToOneContact( const QString& name, const QString& emailadress ); |
176 | 175 | ||
177 | //calls the emailapplication and creates a mail with parameter as recipients | 176 | //calls the emailapplication and creates a mail with parameter as recipients |
178 | // parameters format is | 177 | // parameters format is |
179 | // NAME <EMAIL>:SUBJECT | 178 | // NAME <EMAIL>:SUBJECT |
180 | bool mailToOneContact( const QString& adressline ); | 179 | bool mailToOneContact( const QString& adressline ); |
181 | 180 | ||
182 | //calls the phoneapplication with the number | 181 | //calls the phoneapplication with the number |
183 | bool callByPhone( const QString& phonenumber ); | 182 | bool callByPhone( const QString& phonenumber ); |
184 | 183 | ||
185 | //calls the smsapplication with the number | 184 | //calls the smsapplication with the number |
186 | bool callBySMS( const QString& phonenumber ); | 185 | bool callBySMS( const QString& phonenumber ); |
187 | 186 | ||
188 | //calls the pagerapplication with the number | 187 | //calls the pagerapplication with the number |
189 | bool callByPager( const QString& pagernumber ); | 188 | bool callByPager( const QString& pagernumber ); |
190 | 189 | ||
191 | //calls the faxapplication with the number | 190 | //calls the faxapplication with the number |
192 | bool callByFax( const QString& faxnumber ); | 191 | bool callByFax( const QString& faxnumber ); |
193 | 192 | ||
194 | //calls the sipapplication with the number | 193 | //calls the sipapplication with the number |
195 | bool callBySIP( const QString& sipnumber ); | 194 | bool callBySIP( const QString& sipnumber ); |
196 | 195 | ||
197 | bool isEmailAppAvailable(); | 196 | bool isEmailAppAvailable(); |
198 | bool isSMSAppAvailable(); | 197 | bool isSMSAppAvailable(); |
199 | bool isPhoneAppAvailable(); | 198 | bool isPhoneAppAvailable(); |
200 | bool isFaxAppAvailable(); | 199 | bool isFaxAppAvailable(); |
201 | bool isPagerAppAvailable(); | 200 | bool isPagerAppAvailable(); |
202 | bool isSIPAppAvailable(); | 201 | bool isSIPAppAvailable(); |
203 | 202 | ||
204 | 203 | ||
205 | //Call this method on the source when you want to select names from the addressbook by using QCop | 204 | //Call this method on the source when you want to select names from the addressbook by using QCop |
206 | bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid); | 205 | bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid); |
207 | //Call this method on the target when you want to return the name/email map to the source (client). | 206 | //Call this method on the target when you want to return the name/email map to the source (client). |
208 | bool returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid); | 207 | bool returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid); |
209 | 208 | ||
209 | |||
210 | |||
210 | bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email); | 211 | bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email); |
211 | bool returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid); | 212 | bool returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid); |
212 | 213 | ||
213 | bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid); | 214 | bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid); |
214 | 215 | ||
215 | 216 | ||
217 | |||
218 | bool requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid); | ||
219 | bool returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, | ||
220 | const QStringList& birthdayList, const QStringList& anniversaryList, | ||
221 | const QStringList& realNameList, const QStringList& emailList, | ||
222 | const QStringList& assembledNameList, const QStringList& uidList); | ||
223 | |||
224 | |||
216 | //loadConfig clears the cache and checks again if the applications are available or not | 225 | //loadConfig clears the cache and checks again if the applications are available or not |
217 | void loadConfig(); | 226 | void loadConfig(); |
218 | 227 | ||
219 | QList<DefaultAppItem> getAvailableDefaultItems(Types); | 228 | QList<DefaultAppItem> getAvailableDefaultItems(Types); |
220 | DefaultAppItem* getDefaultItem(Types, int); | 229 | DefaultAppItem* getDefaultItem(Types, int); |
221 | 230 | ||
222 | public slots: | 231 | public slots: |
223 | void appMessage( const QCString& msg, const QByteArray& data ); | 232 | void appMessage( const QCString& msg, const QByteArray& data ); |
224 | 233 | ||
225 | 234 | ||
226 | signals: | 235 | signals: |
227 | // Emmitted when the target app receives a request from the source app | 236 | // Emmitted when the target app receives a request from the source app |
228 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid); | 237 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid); |
229 | 238 | ||
230 | // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi | 239 | // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi |
231 | // The first parameter is a uniqueid. It can be used to identify the event | 240 | // The first parameter is a uniqueid. It can be used to identify the event |
232 | void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); | 241 | void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); |
233 | 242 | ||
234 | void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email); | 243 | void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email); |
235 | void receivedFindBbyEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); | 244 | void receivedFindByEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); |
236 | 245 | ||
237 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); | 246 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); |
238 | 247 | ||
239 | 248 | ||
249 | // Emmitted when the target app receives a request from the source app | ||
250 | void requestForBirthdayList(const QString& sourceChannel, const QString& uid); | ||
251 | |||
252 | // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi | ||
253 | // The first parameter is a uniqueid. It can be used to identify the event | ||
254 | void receivedBirthdayListEvent(const QString& uid, const QStringList& birthdayList, | ||
255 | const QStringList& anniversaryList, const QStringList& realNameList, | ||
256 | const QStringList& emailList, const QStringList& assembledNameList, | ||
257 | const QStringList& uidList); | ||
258 | |||
259 | |||
240 | private: | 260 | private: |
241 | ExternalAppHandler(); | 261 | ExternalAppHandler(); |
242 | QList<DefaultAppItem> mDefaultItems; | 262 | QList<DefaultAppItem> mDefaultItems; |
243 | 263 | ||
244 | Availability mEmailAppAvailable; | 264 | Availability mEmailAppAvailable; |
245 | Availability mPhoneAppAvailable; | 265 | Availability mPhoneAppAvailable; |
246 | Availability mFaxAppAvailable; | 266 | Availability mFaxAppAvailable; |
247 | Availability mSMSAppAvailable; | 267 | Availability mSMSAppAvailable; |
248 | Availability mPagerAppAvailable; | 268 | Availability mPagerAppAvailable; |
249 | Availability mSIPAppAvailable; | 269 | Availability mSIPAppAvailable; |
250 | 270 | ||
251 | QCopListTransferItem* mNameEmailUidListFromKAPITransfer; | 271 | QCopListTransferItem* mNameEmailUidListFromKAPITransfer; |
252 | QCopListTransferItem* mFindByEmailFromKAPITransfer; | 272 | QCopListTransferItem* mFindByEmailFromKAPITransfer; |
253 | QCopTransferItem* mDisplayDetails; | 273 | QCopTransferItem* mDisplayDetails; |
274 | QCopListTransferItem* mBirthdayListFromKAPITransfer; | ||
254 | 275 | ||
255 | 276 | ||
256 | void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2); | 277 | void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2); |
257 | 278 | ||
258 | QString& translateMessage(QString& message, const QString& param1, const QString& param2) const; | 279 | QString& translateMessage(QString& message, const QString& param1, const QString& param2) const; |
259 | void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const; | 280 | void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const; |
260 | 281 | ||
261 | 282 | ||
262 | static ExternalAppHandler *sInstance; | 283 | static ExternalAppHandler *sInstance; |
263 | 284 | ||
285 | private slots: | ||
286 | void receivedNameEmailUidList_Slot(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList, const QStringList&, const QStringList&, const QStringList& ); | ||
287 | |||
264 | }; | 288 | }; |
265 | 289 | ||
266 | 290 | ||
267 | #endif | 291 | #endif |