-rw-r--r-- | bin/kdepim/WhatsNew.txt | 4 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 7 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 1 |
3 files changed, 10 insertions, 2 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 5037443..29688de 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt | |||
@@ -1,268 +1,268 @@ | |||
1 | Info about the changes in new versions of KDE-Pim/Pi | 1 | Info about the changes in new versions of KDE-Pim/Pi |
2 | 2 | ||
3 | ********** VERSION 1.9.12 ************ | 3 | ********** VERSION 1.9.12 ************ |
4 | 4 | ||
5 | Fix for the bug in KO/Pi What's Next view of version 1.9.11. | 5 | Fix for the bug in KO/Pi What's Next view of version 1.9.11. |
6 | 6 | ||
7 | Bugfix: Licence file is now shown again. | 7 | Bugfix: Licence file is now shown again. |
8 | 8 | ||
9 | OM/Pi now supports Unicode (utf8 charset). | 9 | OM/Pi now supports Unicode (utf8 charset). |
10 | Fixed some bugs in OM/Pi. | ||
10 | 11 | ||
11 | Why a new release? | 12 | KA/Pi has more German translation. |
12 | Because of the two bugs. | ||
13 | 13 | ||
14 | 14 | ||
15 | ********** VERSION 1.9.11 ************ | 15 | ********** VERSION 1.9.11 ************ |
16 | 16 | ||
17 | Fixed several problems in PWM/Pi, like | 17 | Fixed several problems in PWM/Pi, like |
18 | asking the user, if unsaved changed are pending | 18 | asking the user, if unsaved changed are pending |
19 | when closing the app. | 19 | when closing the app. |
20 | And PwM/Pi handles now different texts for the | 20 | And PwM/Pi handles now different texts for the |
21 | fields Description, Username, Password, configurable per category. | 21 | fields Description, Username, Password, configurable per category. |
22 | 22 | ||
23 | Fixed a crash in KO/Pi , when importing/loading vcs files | 23 | Fixed a crash in KO/Pi , when importing/loading vcs files |
24 | which have an entry with an attendee with state: | 24 | which have an entry with an attendee with state: |
25 | NEEDS ACTION | 25 | NEEDS ACTION |
26 | 26 | ||
27 | Fixed some problems in the German translation of OM/Pi, | 27 | Fixed some problems in the German translation of OM/Pi, |
28 | which makes some dialogs not fitting on the screen | 28 | which makes some dialogs not fitting on the screen |
29 | of the Z 5500. | 29 | of the Z 5500. |
30 | 30 | ||
31 | Fixed Qtopia crash, when disabling/deinstalling | 31 | Fixed Qtopia crash, when disabling/deinstalling |
32 | KO/Pi alarm applet. | 32 | KO/Pi alarm applet. |
33 | 33 | ||
34 | Implemented direct KDE<->KA/Pi sync for KA/Pi running | 34 | Implemented direct KDE<->KA/Pi sync for KA/Pi running |
35 | on Linux desktop. | 35 | on Linux desktop. |
36 | 36 | ||
37 | Added feature "remove sync info" to sync menu. | 37 | Added feature "remove sync info" to sync menu. |
38 | 38 | ||
39 | Tweaked the KO/Pi What's next view a bit, added | 39 | Tweaked the KO/Pi What's next view a bit, added |
40 | setting to hide events that are done. | 40 | setting to hide events that are done. |
41 | 41 | ||
42 | Disabled "beam receive enabled" on startup to | 42 | Disabled "beam receive enabled" on startup to |
43 | avoid problems if Fastload is enabled. | 43 | avoid problems if Fastload is enabled. |
44 | Please set "beam receive enabled", | 44 | Please set "beam receive enabled", |
45 | if you want to receive data via IR. | 45 | if you want to receive data via IR. |
46 | 46 | ||
47 | Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running | 47 | Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running |
48 | on Linux desktop. | 48 | on Linux desktop. |
49 | 49 | ||
50 | Made in KA/Pi scrolling possible, if details view is selected. | 50 | Made in KA/Pi scrolling possible, if details view is selected. |
51 | (The keyboard focus is set automatically to the search line) | 51 | (The keyboard focus is set automatically to the search line) |
52 | 52 | ||
53 | Fixed a bug in DMT sync, that a new entry in DTM was added | 53 | Fixed a bug in DMT sync, that a new entry in DTM was added |
54 | on every sync to Kx/Pi. | 54 | on every sync to Kx/Pi. |
55 | 55 | ||
56 | Fixed missing writing of KA/Pi categories to DMT entries when syncing. | 56 | Fixed missing writing of KA/Pi categories to DMT entries when syncing. |
57 | 57 | ||
58 | Fixed a bug in DMT sync with todos created in KO/Pi containing | 58 | Fixed a bug in DMT sync with todos created in KO/Pi containing |
59 | non-latin1 characters. | 59 | non-latin1 characters. |
60 | 60 | ||
61 | Rearranged package contents of Sharp-ipks and made all | 61 | Rearranged package contents of Sharp-ipks and made all |
62 | packages installable on SD again. | 62 | packages installable on SD again. |
63 | 63 | ||
64 | Fixed the writing of addressbook data in DTM sync. | 64 | Fixed the writing of addressbook data in DTM sync. |
65 | Empty fields in KA/Pi were not removed. | 65 | Empty fields in KA/Pi were not removed. |
66 | 66 | ||
67 | Added better category handling in KA/Pi: | 67 | Added better category handling in KA/Pi: |
68 | Added item | 68 | Added item |
69 | Edit Categories and | 69 | Edit Categories and |
70 | Manage new categories | 70 | Manage new categories |
71 | to the settings menu. | 71 | to the settings menu. |
72 | Possible to configure a view to display categories. | 72 | Possible to configure a view to display categories. |
73 | 73 | ||
74 | Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu. | 74 | Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu. |
75 | 75 | ||
76 | Fixed displaying of "free" days and time in KO Monthview and Agendaview. | 76 | Fixed displaying of "free" days and time in KO Monthview and Agendaview. |
77 | 77 | ||
78 | ... and many other bugfixes. | 78 | ... and many other bugfixes. |
79 | 79 | ||
80 | ********** VERSION 1.9.10 ************ | 80 | ********** VERSION 1.9.10 ************ |
81 | 81 | ||
82 | Many internal small bugfixes. | 82 | Many internal small bugfixes. |
83 | And fix of the "big" bug in KO/Pi, | 83 | And fix of the "big" bug in KO/Pi, |
84 | that after Syncing the appointments had an offset by several hours. | 84 | that after Syncing the appointments had an offset by several hours. |
85 | That was a problem with the internal timezone setting, | 85 | That was a problem with the internal timezone setting, |
86 | introduced by the changed timezone configuration settings. | 86 | introduced by the changed timezone configuration settings. |
87 | 87 | ||
88 | German translation for OM/Pi is now available. | 88 | German translation for OM/Pi is now available. |
89 | 89 | ||
90 | 90 | ||
91 | ********** VERSION 1.9.9 ************ | 91 | ********** VERSION 1.9.9 ************ |
92 | 92 | ||
93 | KDE-Pim/Pi has a new Member! | 93 | KDE-Pim/Pi has a new Member! |
94 | It is called PWM/Pi (Passwordmanager/platform-independent) | 94 | It is called PWM/Pi (Passwordmanager/platform-independent) |
95 | and it is available for the Zaurus. | 95 | and it is available for the Zaurus. |
96 | It is planned, that it will be available later for Windows. | 96 | It is planned, that it will be available later for Windows. |
97 | (And for Linux, of course). | 97 | (And for Linux, of course). |
98 | It is a port of the Passwordmanager of KDE. | 98 | It is a port of the Passwordmanager of KDE. |
99 | It will need the MicroKDElibs to run. | 99 | It will need the MicroKDElibs to run. |
100 | 100 | ||
101 | Made loading of addressbooks in KA/Pi up to 7 times faster! | 101 | Made loading of addressbooks in KA/Pi up to 7 times faster! |
102 | The bigger your addressbook file, the more starting speed | 102 | The bigger your addressbook file, the more starting speed |
103 | will you gain. (relatively) | 103 | will you gain. (relatively) |
104 | 104 | ||
105 | The Qtopia addressbook connector is now platform independend | 105 | The Qtopia addressbook connector is now platform independend |
106 | as well and should work on any platform for importing/exporting | 106 | as well and should work on any platform for importing/exporting |
107 | Qtopia and Opie XML files. | 107 | Qtopia and Opie XML files. |
108 | 108 | ||
109 | Added a +30min feature to the timezone settings to make | 109 | Added a +30min feature to the timezone settings to make |
110 | KDE-Pim/Pi useable in Australia and other parts on the | 110 | KDE-Pim/Pi useable in Australia and other parts on the |
111 | world with strange timezones ;-) | 111 | world with strange timezones ;-) |
112 | 112 | ||
113 | German "Umlaute" should now be sorted correctly on the Z in KA/Pi. | 113 | German "Umlaute" should now be sorted correctly on the Z in KA/Pi. |
114 | 114 | ||
115 | It is now possible to disable the | 115 | It is now possible to disable the |
116 | "receive data via infrared" feature, such that syncing with | 116 | "receive data via infrared" feature, such that syncing with |
117 | Outlook is now possible again with Kx/Pi runing. | 117 | Outlook is now possible again with Kx/Pi runing. |
118 | Please disable it, before syncing Sharp DTM with Outlook. | 118 | Please disable it, before syncing Sharp DTM with Outlook. |
119 | For your convenience, the "receive data via infrared" feature | 119 | For your convenience, the "receive data via infrared" feature |
120 | is disabled automatically, if you sync Kx/Pi with DTM. | 120 | is disabled automatically, if you sync Kx/Pi with DTM. |
121 | You have to enable it again manually after syncing. | 121 | You have to enable it again manually after syncing. |
122 | Enabling this feature makes it impossible to start the | 122 | Enabling this feature makes it impossible to start the |
123 | Sharp DTM apps. If this feature is enabled, you will only get the | 123 | Sharp DTM apps. If this feature is enabled, you will only get the |
124 | alarm notification from KO/Pi and not from the Sharp calendar. | 124 | alarm notification from KO/Pi and not from the Sharp calendar. |
125 | This is very useful if you sync KO/Pi with Sharp DTM, | 125 | This is very useful if you sync KO/Pi with Sharp DTM, |
126 | because after syncing you usually would get notified about | 126 | because after syncing you usually would get notified about |
127 | an alarm by KO/Pi and the Sharp Calendar. | 127 | an alarm by KO/Pi and the Sharp Calendar. |
128 | 128 | ||
129 | Together with the Linux desktop version of KO/Pi | 129 | Together with the Linux desktop version of KO/Pi |
130 | it is now possible to sync KO/Pi on the Zaurus | 130 | it is now possible to sync KO/Pi on the Zaurus |
131 | with the complete KDE-desktop (3.3 or later) | 131 | with the complete KDE-desktop (3.3 or later) |
132 | calendar data easily. | 132 | calendar data easily. |
133 | That makes it possible to sync the Z with one | 133 | That makes it possible to sync the Z with one |
134 | click of a mouse with the KDE-Desktop. | 134 | click of a mouse with the KDE-Desktop. |
135 | This feature it available for all Zaurus platforms KO/Pi | 135 | This feature it available for all Zaurus platforms KO/Pi |
136 | is running on. | 136 | is running on. |
137 | The only thing needed is a running KO/Pi on Linux and | 137 | The only thing needed is a running KO/Pi on Linux and |
138 | a compiled version of the small | 138 | a compiled version of the small |
139 | KDE-Pim/Pi<->KDE-Desktop access command line program, | 139 | KDE-Pim/Pi<->KDE-Desktop access command line program, |
140 | which is in the KDE-Pim/Pi sources available. | 140 | which is in the KDE-Pim/Pi sources available. |
141 | 141 | ||
142 | The "KDE-desktop" syncing feature for KA/Pi will follow | 142 | The "KDE-desktop" syncing feature for KA/Pi will follow |
143 | in the next releases. | 143 | in the next releases. |
144 | 144 | ||
145 | Fixed the vcard export bug, which had the version 1.9.8. | 145 | Fixed the vcard export bug, which had the version 1.9.8. |
146 | 146 | ||
147 | Added missing GERMAN translation to KO/Pi. | 147 | Added missing GERMAN translation to KO/Pi. |
148 | Hi PsionX, could you add the missing french translation?Thx! | 148 | Hi PsionX, could you add the missing french translation?Thx! |
149 | 149 | ||
150 | Translation files for KA/Pi are available as well. | 150 | Translation files for KA/Pi are available as well. |
151 | GERMAN translation will be available in the next release. | 151 | GERMAN translation will be available in the next release. |
152 | PsionX ( yres, you again ;-) ), could you start translating | 152 | PsionX ( yres, you again ;-) ), could you start translating |
153 | KA/Pi? Thx! | 153 | KA/Pi? Thx! |
154 | 154 | ||
155 | You can download the version 1.9.9 at | 155 | You can download the version 1.9.9 at |
156 | 156 | ||
157 | http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=112604 | 157 | http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=112604 |
158 | 158 | ||
159 | Note: | 159 | Note: |
160 | To run the mail program OM/Pi you need libopenssl. | 160 | To run the mail program OM/Pi you need libopenssl. |
161 | A link to a download loaction is available at | 161 | A link to a download loaction is available at |
162 | ZSI at www.killefiz.de | 162 | ZSI at www.killefiz.de |
163 | 163 | ||
164 | 164 | ||
165 | ********** VERSION 1.9.8 ************ | 165 | ********** VERSION 1.9.8 ************ |
166 | 166 | ||
167 | Fixed character decoding in OM/Pi. | 167 | Fixed character decoding in OM/Pi. |
168 | (e.g. German "Umlaute" were not displayed properly.) | 168 | (e.g. German "Umlaute" were not displayed properly.) |
169 | 169 | ||
170 | Made is possible to reparent todos in KO/Pi. | 170 | Made is possible to reparent todos in KO/Pi. |
171 | Use contextmenu or keys (look at Help-Keys + Colors) for that. | 171 | Use contextmenu or keys (look at Help-Keys + Colors) for that. |
172 | 172 | ||
173 | Added the missing Sync-Howto and WhatsNew to the packages. | 173 | Added the missing Sync-Howto and WhatsNew to the packages. |
174 | 174 | ||
175 | KO/Pi on Linux desktop can now sync with KDE desktop. | 175 | KO/Pi on Linux desktop can now sync with KDE desktop. |
176 | That means: When using KO/Pi on Linux desktop for syncing with | 176 | That means: When using KO/Pi on Linux desktop for syncing with |
177 | KDE desktop and the Zaurus, the Zaurus can be synced now | 177 | KDE desktop and the Zaurus, the Zaurus can be synced now |
178 | with all KDE-Calendar resources, not only with one local file. | 178 | with all KDE-Calendar resources, not only with one local file. |
179 | (That makes it possible to sync the Zaurus with the | 179 | (That makes it possible to sync the Zaurus with the |
180 | calendar data on a Kolab server) | 180 | calendar data on a Kolab server) |
181 | 181 | ||
182 | KA/Pi syncing with KDE desktop will be available in the next version. | 182 | KA/Pi syncing with KDE desktop will be available in the next version. |
183 | 183 | ||
184 | 184 | ||
185 | ********** VERSION 1.9.7 ************ | 185 | ********** VERSION 1.9.7 ************ |
186 | 186 | ||
187 | KO/Pi - KA/Pi on Windows: | 187 | KO/Pi - KA/Pi on Windows: |
188 | Now a directory can be defined by the user, where the | 188 | Now a directory can be defined by the user, where the |
189 | application/config data should be saved. | 189 | application/config data should be saved. |
190 | Define your desired path in the evironment variable | 190 | Define your desired path in the evironment variable |
191 | MICROKDEHOME | 191 | MICROKDEHOME |
192 | before starting KO/Pi or KA/Pi. | 192 | before starting KO/Pi or KA/Pi. |
193 | 193 | ||
194 | An easy Kx/Pi to Kx/Pi syncing is now possible | 194 | An easy Kx/Pi to Kx/Pi syncing is now possible |
195 | (it is called Pi-Sync) via network. | 195 | (it is called Pi-Sync) via network. |
196 | Please look at the Sync Howto. | 196 | Please look at the Sync Howto. |
197 | 197 | ||
198 | Exporting of calendar data and contacts to mobile phones is now possible. | 198 | Exporting of calendar data and contacts to mobile phones is now possible. |
199 | The SyncHowto is updated with information howto | 199 | The SyncHowto is updated with information howto |
200 | access/sync mobile phones. | 200 | access/sync mobile phones. |
201 | Please look at the Sync Howto. | 201 | Please look at the Sync Howto. |
202 | 202 | ||
203 | Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly. | 203 | Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly. |
204 | Please disable Fastload for the original contact/calendar applications | 204 | Please disable Fastload for the original contact/calendar applications |
205 | and close them. | 205 | and close them. |
206 | KO/Pi and KA/Pi must be running in order to receive the data. | 206 | KO/Pi and KA/Pi must be running in order to receive the data. |
207 | (KO/Pi and KA/Pi are always running if Fastload for them is enabled!) | 207 | (KO/Pi and KA/Pi are always running if Fastload for them is enabled!) |
208 | 208 | ||
209 | In the KA/Pi details view are now the preferred tel. numbers displayed on top | 209 | In the KA/Pi details view are now the preferred tel. numbers displayed on top |
210 | of the other data ( emails/tel.numbers/addresses) | 210 | of the other data ( emails/tel.numbers/addresses) |
211 | 211 | ||
212 | Fixed some syncing problems in KA/Pi. | 212 | Fixed some syncing problems in KA/Pi. |
213 | 213 | ||
214 | Added font settings for the KA/Pi details view. | 214 | Added font settings for the KA/Pi details view. |
215 | Added fields "children's name" and "gender" to KA/Pi. | 215 | Added fields "children's name" and "gender" to KA/Pi. |
216 | 216 | ||
217 | Made searching in KA/Pi better: | 217 | Made searching in KA/Pi better: |
218 | Now the first item in a view is selected after a search automatically and | 218 | Now the first item in a view is selected after a search automatically and |
219 | the views can be scrolled up/down when the search input field has the keyboard focus. | 219 | the views can be scrolled up/down when the search input field has the keyboard focus. |
220 | 220 | ||
221 | And, of course, fixed a bunch of reported bugs in KO/Pi and KA/Pi. | 221 | And, of course, fixed a bunch of reported bugs in KO/Pi and KA/Pi. |
222 | 222 | ||
223 | 223 | ||
224 | ********** VERSION 1.9.6 ************ | 224 | ********** VERSION 1.9.6 ************ |
225 | 225 | ||
226 | Changes in the external application communication on the Zaurus | 226 | Changes in the external application communication on the Zaurus |
227 | in order to use less RAM when the apps are running. | 227 | in order to use less RAM when the apps are running. |
228 | First syncing of addressbooks (KA/Pi) is possible. | 228 | First syncing of addressbooks (KA/Pi) is possible. |
229 | 229 | ||
230 | 230 | ||
231 | ********** VERSION 1.9.5a ************ | 231 | ********** VERSION 1.9.5a ************ |
232 | 232 | ||
233 | Fixed a bug in KO/Pi in the SharpDTM sync of version 1.9.5. | 233 | Fixed a bug in KO/Pi in the SharpDTM sync of version 1.9.5. |
234 | Fixed some small bugs. | 234 | Fixed some small bugs. |
235 | KA/Pi shows now the birthday in summary view. | 235 | KA/Pi shows now the birthday in summary view. |
236 | Now OM/Pi and KA/Pi are using the date format defined in KO/Pi | 236 | Now OM/Pi and KA/Pi are using the date format defined in KO/Pi |
237 | for displaying dates. | 237 | for displaying dates. |
238 | 238 | ||
239 | 239 | ||
240 | ********** VERSION 1.9.5 ************ | 240 | ********** VERSION 1.9.5 ************ |
241 | 241 | ||
242 | There is still no Addressbook syncing! | 242 | There is still no Addressbook syncing! |
243 | 243 | ||
244 | New in 1.9.5: | 244 | New in 1.9.5: |
245 | 245 | ||
246 | Many bugfixes. | 246 | Many bugfixes. |
247 | Better searching in KA/Pi. | 247 | Better searching in KA/Pi. |
248 | You can configure in KA/Pi if you want to search only after | 248 | You can configure in KA/Pi if you want to search only after |
249 | <return> key pressed. | 249 | <return> key pressed. |
250 | 250 | ||
251 | Better mail downloading in OM/Pi. | 251 | Better mail downloading in OM/Pi. |
252 | 252 | ||
253 | First experimental alpha version of sync of KO/Pi with mobile phones. | 253 | First experimental alpha version of sync of KO/Pi with mobile phones. |
254 | See gammu documentation for supported phones. | 254 | See gammu documentation for supported phones. |
255 | You need to install the package kammu_1.9.5_arm.ipk for sync of KO/Pi with mobile phones. kammu_1.9.5_arm.ipk needs libbluetooth and libsdp. | 255 | You need to install the package kammu_1.9.5_arm.ipk for sync of KO/Pi with mobile phones. kammu_1.9.5_arm.ipk needs libbluetooth and libsdp. |
256 | Quick hint how to use: | 256 | Quick hint how to use: |
257 | NOTE: MOBILE PHONE SYNC IS EXPERIMENTAL! | 257 | NOTE: MOBILE PHONE SYNC IS EXPERIMENTAL! |
258 | Install kammu_1.9.5_arm.ipk , libbluetooth and libsdp. | 258 | Install kammu_1.9.5_arm.ipk , libbluetooth and libsdp. |
259 | Create syncprofile - mobile device | 259 | Create syncprofile - mobile device |
260 | Remove entry for model. (Leave empty ). | 260 | Remove entry for model. (Leave empty ). |
261 | Enable infrared on Zaurus and your Phone. | 261 | Enable infrared on Zaurus and your Phone. |
262 | Sync. | 262 | Sync. |
263 | To get a more detailed log, start kopi from konsole. | 263 | To get a more detailed log, start kopi from konsole. |
264 | 264 | ||
265 | ********** VERSION 1.9.4 ************ | 265 | ********** VERSION 1.9.4 ************ |
266 | 266 | ||
267 | This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus. | 267 | This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus. |
268 | 268 | ||
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 4445310..d651224 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -104,514 +104,521 @@ $Id$ | |||
104 | #ifndef DESKTOP_VERSION | 104 | #ifndef DESKTOP_VERSION |
105 | #include <qpe/ir.h> | 105 | #include <qpe/ir.h> |
106 | #include <qpe/qpemenubar.h> | 106 | #include <qpe/qpemenubar.h> |
107 | #include <qtopia/qcopenvelope_qws.h> | 107 | #include <qtopia/qcopenvelope_qws.h> |
108 | #else | 108 | #else |
109 | 109 | ||
110 | #include <qmenubar.h> | 110 | #include <qmenubar.h> |
111 | #endif | 111 | #endif |
112 | 112 | ||
113 | #endif // KAB_EMBEDDED | 113 | #endif // KAB_EMBEDDED |
114 | #include "kcmconfigs/kcmkabconfig.h" | 114 | #include "kcmconfigs/kcmkabconfig.h" |
115 | #include "kcmconfigs/kcmkdepimconfig.h" | 115 | #include "kcmconfigs/kcmkdepimconfig.h" |
116 | #include "kpimglobalprefs.h" | 116 | #include "kpimglobalprefs.h" |
117 | #include "externalapphandler.h" | 117 | #include "externalapphandler.h" |
118 | 118 | ||
119 | 119 | ||
120 | #include <kresources/selectdialog.h> | 120 | #include <kresources/selectdialog.h> |
121 | #include <kmessagebox.h> | 121 | #include <kmessagebox.h> |
122 | 122 | ||
123 | #include <picture.h> | 123 | #include <picture.h> |
124 | #include <resource.h> | 124 | #include <resource.h> |
125 | 125 | ||
126 | //US#include <qsplitter.h> | 126 | //US#include <qsplitter.h> |
127 | #include <qmap.h> | 127 | #include <qmap.h> |
128 | #include <qdir.h> | 128 | #include <qdir.h> |
129 | #include <qfile.h> | 129 | #include <qfile.h> |
130 | #include <qvbox.h> | 130 | #include <qvbox.h> |
131 | #include <qlayout.h> | 131 | #include <qlayout.h> |
132 | #include <qclipboard.h> | 132 | #include <qclipboard.h> |
133 | #include <qtextstream.h> | 133 | #include <qtextstream.h> |
134 | #include <qradiobutton.h> | 134 | #include <qradiobutton.h> |
135 | #include <qbuttongroup.h> | 135 | #include <qbuttongroup.h> |
136 | 136 | ||
137 | #include <libkdepim/categoryselectdialog.h> | 137 | #include <libkdepim/categoryselectdialog.h> |
138 | #include <libkdepim/categoryeditdialog.h> | 138 | #include <libkdepim/categoryeditdialog.h> |
139 | #include <kabc/vcardconverter.h> | 139 | #include <kabc/vcardconverter.h> |
140 | 140 | ||
141 | 141 | ||
142 | #include "addresseeutil.h" | 142 | #include "addresseeutil.h" |
143 | #include "undocmds.h" | 143 | #include "undocmds.h" |
144 | #include "addresseeeditordialog.h" | 144 | #include "addresseeeditordialog.h" |
145 | #include "viewmanager.h" | 145 | #include "viewmanager.h" |
146 | #include "details/detailsviewcontainer.h" | 146 | #include "details/detailsviewcontainer.h" |
147 | #include "kabprefs.h" | 147 | #include "kabprefs.h" |
148 | #include "xxportmanager.h" | 148 | #include "xxportmanager.h" |
149 | #include "incsearchwidget.h" | 149 | #include "incsearchwidget.h" |
150 | #include "jumpbuttonbar.h" | 150 | #include "jumpbuttonbar.h" |
151 | #include "extensionmanager.h" | 151 | #include "extensionmanager.h" |
152 | #include "addresseeconfig.h" | 152 | #include "addresseeconfig.h" |
153 | #include <kcmultidialog.h> | 153 | #include <kcmultidialog.h> |
154 | 154 | ||
155 | #ifdef _WIN32_ | 155 | #ifdef _WIN32_ |
156 | 156 | ||
157 | #include "kaimportoldialog.h" | 157 | #include "kaimportoldialog.h" |
158 | #else | 158 | #else |
159 | #include <unistd.h> | 159 | #include <unistd.h> |
160 | #endif | 160 | #endif |
161 | // sync includes | 161 | // sync includes |
162 | #include <libkdepim/ksyncprofile.h> | 162 | #include <libkdepim/ksyncprofile.h> |
163 | #include <libkdepim/ksyncprefsdialog.h> | 163 | #include <libkdepim/ksyncprefsdialog.h> |
164 | 164 | ||
165 | 165 | ||
166 | class KABCatPrefs : public QDialog | 166 | class KABCatPrefs : public QDialog |
167 | { | 167 | { |
168 | public: | 168 | public: |
169 | KABCatPrefs( QWidget *parent=0, const char *name=0 ) : | 169 | KABCatPrefs( QWidget *parent=0, const char *name=0 ) : |
170 | QDialog( parent, name, true ) | 170 | QDialog( parent, name, true ) |
171 | { | 171 | { |
172 | setCaption( i18n("Manage new Categories") ); | 172 | setCaption( i18n("Manage new Categories") ); |
173 | QVBoxLayout* lay = new QVBoxLayout( this ); | 173 | QVBoxLayout* lay = new QVBoxLayout( this ); |
174 | lay->setSpacing( 3 ); | 174 | lay->setSpacing( 3 ); |
175 | lay->setMargin( 3 ); | 175 | lay->setMargin( 3 ); |
176 | QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n "), this ); | 176 | QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n "), this ); |
177 | lay->addWidget( lab ); | 177 | lay->addWidget( lab ); |
178 | QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this ); | 178 | QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this ); |
179 | lay->addWidget( format ); | 179 | lay->addWidget( format ); |
180 | format->setExclusive ( true ) ; | 180 | format->setExclusive ( true ) ; |
181 | addCatBut = new QRadioButton(i18n("Add to category list"), format ); | 181 | addCatBut = new QRadioButton(i18n("Add to category list"), format ); |
182 | new QRadioButton(i18n("Remove from addressees"), format ); | 182 | new QRadioButton(i18n("Remove from addressees"), format ); |
183 | addCatBut->setChecked( true ); | 183 | addCatBut->setChecked( true ); |
184 | QPushButton * ok = new QPushButton( i18n("OK"), this ); | 184 | QPushButton * ok = new QPushButton( i18n("OK"), this ); |
185 | lay->addWidget( ok ); | 185 | lay->addWidget( ok ); |
186 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 186 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
187 | lay->addWidget( cancel ); | 187 | lay->addWidget( cancel ); |
188 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 188 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
189 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 189 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
190 | resize( 200, 200 ); | 190 | resize( 200, 200 ); |
191 | } | 191 | } |
192 | 192 | ||
193 | bool addCat() { return addCatBut->isChecked(); } | 193 | bool addCat() { return addCatBut->isChecked(); } |
194 | private: | 194 | private: |
195 | QRadioButton* addCatBut; | 195 | QRadioButton* addCatBut; |
196 | }; | 196 | }; |
197 | 197 | ||
198 | 198 | ||
199 | 199 | ||
200 | class KAex2phonePrefs : public QDialog | 200 | class KAex2phonePrefs : public QDialog |
201 | { | 201 | { |
202 | public: | 202 | public: |
203 | KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : | 203 | KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : |
204 | QDialog( parent, name, true ) | 204 | QDialog( parent, name, true ) |
205 | { | 205 | { |
206 | setCaption( i18n("Export to phone options") ); | 206 | setCaption( i18n("Export to phone options") ); |
207 | QVBoxLayout* lay = new QVBoxLayout( this ); | 207 | QVBoxLayout* lay = new QVBoxLayout( this ); |
208 | lay->setSpacing( 3 ); | 208 | lay->setSpacing( 3 ); |
209 | lay->setMargin( 3 ); | 209 | lay->setMargin( 3 ); |
210 | QLabel *lab; | 210 | QLabel *lab; |
211 | lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); | 211 | lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); |
212 | lab->setAlignment (AlignHCenter ); | 212 | lab->setAlignment (AlignHCenter ); |
213 | QHBox* temphb; | 213 | QHBox* temphb; |
214 | temphb = new QHBox( this ); | 214 | temphb = new QHBox( this ); |
215 | new QLabel( i18n("I/O device: "), temphb ); | 215 | new QLabel( i18n("I/O device: "), temphb ); |
216 | mPhoneDevice = new QLineEdit( temphb); | 216 | mPhoneDevice = new QLineEdit( temphb); |
217 | lay->addWidget( temphb ); | 217 | lay->addWidget( temphb ); |
218 | temphb = new QHBox( this ); | 218 | temphb = new QHBox( this ); |
219 | new QLabel( i18n("Connection: "), temphb ); | 219 | new QLabel( i18n("Connection: "), temphb ); |
220 | mPhoneConnection = new QLineEdit( temphb); | 220 | mPhoneConnection = new QLineEdit( temphb); |
221 | lay->addWidget( temphb ); | 221 | lay->addWidget( temphb ); |
222 | temphb = new QHBox( this ); | 222 | temphb = new QHBox( this ); |
223 | new QLabel( i18n("Model(opt.): "), temphb ); | 223 | new QLabel( i18n("Model(opt.): "), temphb ); |
224 | mPhoneModel = new QLineEdit( temphb); | 224 | mPhoneModel = new QLineEdit( temphb); |
225 | lay->addWidget( temphb ); | 225 | lay->addWidget( temphb ); |
226 | // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this ); | 226 | // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this ); |
227 | // lay->addWidget( mWriteToSim ); | 227 | // lay->addWidget( mWriteToSim ); |
228 | lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) ); | 228 | lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) ); |
229 | lab->setAlignment (AlignHCenter ); | 229 | lab->setAlignment (AlignHCenter ); |
230 | QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); | 230 | QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); |
231 | lay->addWidget( ok ); | 231 | lay->addWidget( ok ); |
232 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 232 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
233 | lay->addWidget( cancel ); | 233 | lay->addWidget( cancel ); |
234 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 234 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
235 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 235 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
236 | resize( 220, 240 ); | 236 | resize( 220, 240 ); |
237 | 237 | ||
238 | } | 238 | } |
239 | 239 | ||
240 | public: | 240 | public: |
241 | QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; | 241 | QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; |
242 | QCheckBox* mWriteToSim; | 242 | QCheckBox* mWriteToSim; |
243 | }; | 243 | }; |
244 | 244 | ||
245 | 245 | ||
246 | bool pasteWithNewUid = true; | 246 | bool pasteWithNewUid = true; |
247 | 247 | ||
248 | #ifdef KAB_EMBEDDED | 248 | #ifdef KAB_EMBEDDED |
249 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) | 249 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) |
250 | : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), | 250 | : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), |
251 | mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ | 251 | mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ |
252 | mReadWrite( readWrite ), mModified( false ), mMainWindow(client) | 252 | mReadWrite( readWrite ), mModified( false ), mMainWindow(client) |
253 | #else //KAB_EMBEDDED | 253 | #else //KAB_EMBEDDED |
254 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) | 254 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) |
255 | : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), | 255 | : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), |
256 | mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), | 256 | mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), |
257 | mReadWrite( readWrite ), mModified( false ) | 257 | mReadWrite( readWrite ), mModified( false ) |
258 | #endif //KAB_EMBEDDED | 258 | #endif //KAB_EMBEDDED |
259 | { | 259 | { |
260 | // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); | 260 | // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); |
261 | // syncManager->setBlockSave(false); | 261 | // syncManager->setBlockSave(false); |
262 | mExtensionBarSplitter = 0; | 262 | mExtensionBarSplitter = 0; |
263 | mIsPart = !parent->inherits( "KAddressBookMain" ); | 263 | mIsPart = !parent->inherits( "KAddressBookMain" ); |
264 | mAddressBook = KABC::StdAddressBook::self(); | 264 | mAddressBook = KABC::StdAddressBook::self(); |
265 | KABC::StdAddressBook::setAutomaticSave( false ); | 265 | KABC::StdAddressBook::setAutomaticSave( false ); |
266 | 266 | ||
267 | #ifndef KAB_EMBEDDED | 267 | #ifndef KAB_EMBEDDED |
268 | mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); | 268 | mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); |
269 | #endif //KAB_EMBEDDED | 269 | #endif //KAB_EMBEDDED |
270 | 270 | ||
271 | connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), | 271 | connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), |
272 | SLOT( addressBookChanged() ) ); | 272 | SLOT( addressBookChanged() ) ); |
273 | 273 | ||
274 | #if 0 | 274 | #if 0 |
275 | // LP moved to addressbook init method | 275 | // LP moved to addressbook init method |
276 | mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, | 276 | mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, |
277 | "X-Department", "KADDRESSBOOK" ); | 277 | "X-Department", "KADDRESSBOOK" ); |
278 | mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, | 278 | mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, |
279 | "X-Profession", "KADDRESSBOOK" ); | 279 | "X-Profession", "KADDRESSBOOK" ); |
280 | mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, | 280 | mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, |
281 | "X-AssistantsName", "KADDRESSBOOK" ); | 281 | "X-AssistantsName", "KADDRESSBOOK" ); |
282 | mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, | 282 | mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, |
283 | "X-ManagersName", "KADDRESSBOOK" ); | 283 | "X-ManagersName", "KADDRESSBOOK" ); |
284 | mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, | 284 | mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, |
285 | "X-SpousesName", "KADDRESSBOOK" ); | 285 | "X-SpousesName", "KADDRESSBOOK" ); |
286 | mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, | 286 | mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, |
287 | "X-Office", "KADDRESSBOOK" ); | 287 | "X-Office", "KADDRESSBOOK" ); |
288 | mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, | 288 | mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, |
289 | "X-IMAddress", "KADDRESSBOOK" ); | 289 | "X-IMAddress", "KADDRESSBOOK" ); |
290 | mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, | 290 | mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, |
291 | "X-Anniversary", "KADDRESSBOOK" ); | 291 | "X-Anniversary", "KADDRESSBOOK" ); |
292 | 292 | ||
293 | //US added this field to become compatible with Opie/qtopia addressbook | 293 | //US added this field to become compatible with Opie/qtopia addressbook |
294 | // values can be "female" or "male" or "". An empty field represents undefined. | 294 | // values can be "female" or "male" or "". An empty field represents undefined. |
295 | mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, | 295 | mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, |
296 | "X-Gender", "KADDRESSBOOK" ); | 296 | "X-Gender", "KADDRESSBOOK" ); |
297 | mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, | 297 | mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, |
298 | "X-Children", "KADDRESSBOOK" ); | 298 | "X-Children", "KADDRESSBOOK" ); |
299 | mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, | 299 | mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, |
300 | "X-FreeBusyUrl", "KADDRESSBOOK" ); | 300 | "X-FreeBusyUrl", "KADDRESSBOOK" ); |
301 | #endif | 301 | #endif |
302 | initGUI(); | 302 | initGUI(); |
303 | 303 | ||
304 | mIncSearchWidget->setFocus(); | 304 | mIncSearchWidget->setFocus(); |
305 | 305 | ||
306 | 306 | ||
307 | connect( mViewManager, SIGNAL( selected( const QString& ) ), | 307 | connect( mViewManager, SIGNAL( selected( const QString& ) ), |
308 | SLOT( setContactSelected( const QString& ) ) ); | 308 | SLOT( setContactSelected( const QString& ) ) ); |
309 | connect( mViewManager, SIGNAL( executed( const QString& ) ), | 309 | connect( mViewManager, SIGNAL( executed( const QString& ) ), |
310 | SLOT( executeContact( const QString& ) ) ); | 310 | SLOT( executeContact( const QString& ) ) ); |
311 | 311 | ||
312 | connect( mViewManager, SIGNAL( deleteRequest( ) ), | 312 | connect( mViewManager, SIGNAL( deleteRequest( ) ), |
313 | SLOT( deleteContacts( ) ) ); | 313 | SLOT( deleteContacts( ) ) ); |
314 | connect( mViewManager, SIGNAL( modified() ), | 314 | connect( mViewManager, SIGNAL( modified() ), |
315 | SLOT( setModified() ) ); | 315 | SLOT( setModified() ) ); |
316 | 316 | ||
317 | connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); | 317 | connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); |
318 | connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); | 318 | connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); |
319 | 319 | ||
320 | connect( mXXPortManager, SIGNAL( modified() ), | 320 | connect( mXXPortManager, SIGNAL( modified() ), |
321 | SLOT( setModified() ) ); | 321 | SLOT( setModified() ) ); |
322 | 322 | ||
323 | connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), | 323 | connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), |
324 | SLOT( incrementalSearch( const QString& ) ) ); | 324 | SLOT( incrementalSearch( const QString& ) ) ); |
325 | connect( mIncSearchWidget, SIGNAL( fieldChanged() ), | 325 | connect( mIncSearchWidget, SIGNAL( fieldChanged() ), |
326 | mJumpButtonBar, SLOT( recreateButtons() ) ); | 326 | mJumpButtonBar, SLOT( recreateButtons() ) ); |
327 | 327 | ||
328 | connect( mDetails, SIGNAL( sendEmail( const QString& ) ), | 328 | connect( mDetails, SIGNAL( sendEmail( const QString& ) ), |
329 | SLOT( sendMail( const QString& ) ) ); | 329 | SLOT( sendMail( const QString& ) ) ); |
330 | 330 | ||
331 | 331 | ||
332 | connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); | 332 | connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); |
333 | connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); | 333 | connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); |
334 | connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); | 334 | connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); |
335 | connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle())); | 335 | connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle())); |
336 | 336 | ||
337 | 337 | ||
338 | #ifndef KAB_EMBEDDED | 338 | #ifndef KAB_EMBEDDED |
339 | connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), | 339 | connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), |
340 | mXXPortManager, SLOT( importVCard( const KURL& ) ) ); | 340 | mXXPortManager, SLOT( importVCard( const KURL& ) ) ); |
341 | 341 | ||
342 | connect( mDetails, SIGNAL( browse( const QString& ) ), | 342 | connect( mDetails, SIGNAL( browse( const QString& ) ), |
343 | SLOT( browse( const QString& ) ) ); | 343 | SLOT( browse( const QString& ) ) ); |
344 | 344 | ||
345 | 345 | ||
346 | mAddressBookService = new KAddressBookService( this ); | 346 | mAddressBookService = new KAddressBookService( this ); |
347 | 347 | ||
348 | #endif //KAB_EMBEDDED | 348 | #endif //KAB_EMBEDDED |
349 | 349 | ||
350 | mMessageTimer = new QTimer( this ); | 350 | mMessageTimer = new QTimer( this ); |
351 | connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); | 351 | connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); |
352 | mEditorDialog = 0; | 352 | mEditorDialog = 0; |
353 | createAddresseeEditorDialog( this ); | 353 | createAddresseeEditorDialog( this ); |
354 | setModified( false ); | 354 | setModified( false ); |
355 | mBRdisabled = false; | 355 | mBRdisabled = false; |
356 | #ifndef DESKTOP_VERSION | 356 | #ifndef DESKTOP_VERSION |
357 | infrared = 0; | 357 | infrared = 0; |
358 | #endif | 358 | #endif |
359 | //toggleBeamReceive( ); | 359 | //toggleBeamReceive( ); |
360 | |||
361 | // we have a toolbar repainting error on the Zaurus when starting KA/Pi | ||
362 | QTimer::singleShot( 1, this , SLOT ( updateToolBar())); | ||
360 | } | 363 | } |
361 | 364 | ||
365 | void KABCore::updateToolBar() | ||
366 | { | ||
367 | mMainWindow->toolBar()->repaint(); | ||
368 | } | ||
362 | KABCore::~KABCore() | 369 | KABCore::~KABCore() |
363 | { | 370 | { |
364 | // save(); | 371 | // save(); |
365 | //saveSettings(); | 372 | //saveSettings(); |
366 | //KABPrefs::instance()->writeConfig(); | 373 | //KABPrefs::instance()->writeConfig(); |
367 | delete AddresseeConfig::instance(); | 374 | delete AddresseeConfig::instance(); |
368 | mAddressBook = 0; | 375 | mAddressBook = 0; |
369 | KABC::StdAddressBook::close(); | 376 | KABC::StdAddressBook::close(); |
370 | 377 | ||
371 | delete syncManager; | 378 | delete syncManager; |
372 | #ifndef DESKTOP_VERSION | 379 | #ifndef DESKTOP_VERSION |
373 | if ( infrared ) | 380 | if ( infrared ) |
374 | delete infrared; | 381 | delete infrared; |
375 | #endif | 382 | #endif |
376 | } | 383 | } |
377 | void KABCore::receive( const QCString& cmsg, const QByteArray& data ) | 384 | void KABCore::receive( const QCString& cmsg, const QByteArray& data ) |
378 | { | 385 | { |
379 | qDebug("KA: QCOP message received: %s ", cmsg.data() ); | 386 | qDebug("KA: QCOP message received: %s ", cmsg.data() ); |
380 | if ( cmsg == "setDocument(QString)" ) { | 387 | if ( cmsg == "setDocument(QString)" ) { |
381 | QDataStream stream( data, IO_ReadOnly ); | 388 | QDataStream stream( data, IO_ReadOnly ); |
382 | QString fileName; | 389 | QString fileName; |
383 | stream >> fileName; | 390 | stream >> fileName; |
384 | recieve( fileName ); | 391 | recieve( fileName ); |
385 | return; | 392 | return; |
386 | } | 393 | } |
387 | } | 394 | } |
388 | void KABCore::toggleBeamReceive( ) | 395 | void KABCore::toggleBeamReceive( ) |
389 | { | 396 | { |
390 | if ( mBRdisabled ) | 397 | if ( mBRdisabled ) |
391 | return; | 398 | return; |
392 | #ifndef DESKTOP_VERSION | 399 | #ifndef DESKTOP_VERSION |
393 | if ( infrared ) { | 400 | if ( infrared ) { |
394 | qDebug("AB disable BeamReceive "); | 401 | qDebug("AB disable BeamReceive "); |
395 | delete infrared; | 402 | delete infrared; |
396 | infrared = 0; | 403 | infrared = 0; |
397 | mActionBR->setChecked(false); | 404 | mActionBR->setChecked(false); |
398 | return; | 405 | return; |
399 | } | 406 | } |
400 | qDebug("AB enable BeamReceive "); | 407 | qDebug("AB enable BeamReceive "); |
401 | mActionBR->setChecked(true); | 408 | mActionBR->setChecked(true); |
402 | 409 | ||
403 | infrared = new QCopChannel("QPE/Application/addressbook",this, "channelAB" ) ; | 410 | infrared = new QCopChannel("QPE/Application/addressbook",this, "channelAB" ) ; |
404 | QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(receive( const QCString&, const QByteArray& ))); | 411 | QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(receive( const QCString&, const QByteArray& ))); |
405 | #endif | 412 | #endif |
406 | } | 413 | } |
407 | 414 | ||
408 | 415 | ||
409 | void KABCore::disableBR(bool b) | 416 | void KABCore::disableBR(bool b) |
410 | { | 417 | { |
411 | #ifndef DESKTOP_VERSION | 418 | #ifndef DESKTOP_VERSION |
412 | if ( b ) { | 419 | if ( b ) { |
413 | if ( infrared ) { | 420 | if ( infrared ) { |
414 | toggleBeamReceive( ); | 421 | toggleBeamReceive( ); |
415 | } | 422 | } |
416 | mBRdisabled = true; | 423 | mBRdisabled = true; |
417 | } else { | 424 | } else { |
418 | if ( mBRdisabled ) { | 425 | if ( mBRdisabled ) { |
419 | mBRdisabled = false; | 426 | mBRdisabled = false; |
420 | //toggleBeamReceive( ); | 427 | //toggleBeamReceive( ); |
421 | } | 428 | } |
422 | } | 429 | } |
423 | #endif | 430 | #endif |
424 | 431 | ||
425 | } | 432 | } |
426 | void KABCore::recieve( QString fn ) | 433 | void KABCore::recieve( QString fn ) |
427 | { | 434 | { |
428 | //qDebug("KABCore::recieve "); | 435 | //qDebug("KABCore::recieve "); |
429 | int count = mAddressBook->importFromFile( fn, true ); | 436 | int count = mAddressBook->importFromFile( fn, true ); |
430 | if ( count ) | 437 | if ( count ) |
431 | setModified( true ); | 438 | setModified( true ); |
432 | mViewManager->refreshView(); | 439 | mViewManager->refreshView(); |
433 | message(i18n("%1 contact(s) received!").arg( count )); | 440 | message(i18n("%1 contact(s) received!").arg( count )); |
434 | topLevelWidget()->showMaximized(); | 441 | topLevelWidget()->showMaximized(); |
435 | topLevelWidget()->raise(); | 442 | topLevelWidget()->raise(); |
436 | } | 443 | } |
437 | void KABCore::restoreSettings() | 444 | void KABCore::restoreSettings() |
438 | { | 445 | { |
439 | mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; | 446 | mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; |
440 | 447 | ||
441 | bool state; | 448 | bool state; |
442 | 449 | ||
443 | if (mMultipleViewsAtOnce) | 450 | if (mMultipleViewsAtOnce) |
444 | state = KABPrefs::instance()->mDetailsPageVisible; | 451 | state = KABPrefs::instance()->mDetailsPageVisible; |
445 | else | 452 | else |
446 | state = false; | 453 | state = false; |
447 | 454 | ||
448 | mActionDetails->setChecked( state ); | 455 | mActionDetails->setChecked( state ); |
449 | setDetailsVisible( state ); | 456 | setDetailsVisible( state ); |
450 | 457 | ||
451 | state = KABPrefs::instance()->mJumpButtonBarVisible; | 458 | state = KABPrefs::instance()->mJumpButtonBarVisible; |
452 | 459 | ||
453 | mActionJumpBar->setChecked( state ); | 460 | mActionJumpBar->setChecked( state ); |
454 | setJumpButtonBarVisible( state ); | 461 | setJumpButtonBarVisible( state ); |
455 | /*US | 462 | /*US |
456 | QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; | 463 | QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; |
457 | if ( splitterSize.count() == 0 ) { | 464 | if ( splitterSize.count() == 0 ) { |
458 | splitterSize.append( width() / 2 ); | 465 | splitterSize.append( width() / 2 ); |
459 | splitterSize.append( width() / 2 ); | 466 | splitterSize.append( width() / 2 ); |
460 | } | 467 | } |
461 | mMiniSplitter->setSizes( splitterSize ); | 468 | mMiniSplitter->setSizes( splitterSize ); |
462 | if ( mExtensionBarSplitter ) { | 469 | if ( mExtensionBarSplitter ) { |
463 | splitterSize = KABPrefs::instance()->mExtensionsSplitter; | 470 | splitterSize = KABPrefs::instance()->mExtensionsSplitter; |
464 | if ( splitterSize.count() == 0 ) { | 471 | if ( splitterSize.count() == 0 ) { |
465 | splitterSize.append( width() / 2 ); | 472 | splitterSize.append( width() / 2 ); |
466 | splitterSize.append( width() / 2 ); | 473 | splitterSize.append( width() / 2 ); |
467 | } | 474 | } |
468 | mExtensionBarSplitter->setSizes( splitterSize ); | 475 | mExtensionBarSplitter->setSizes( splitterSize ); |
469 | 476 | ||
470 | } | 477 | } |
471 | */ | 478 | */ |
472 | mViewManager->restoreSettings(); | 479 | mViewManager->restoreSettings(); |
473 | mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); | 480 | mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); |
474 | mExtensionManager->restoreSettings(); | 481 | mExtensionManager->restoreSettings(); |
475 | #ifdef DESKTOP_VERSION | 482 | #ifdef DESKTOP_VERSION |
476 | int wid = width(); | 483 | int wid = width(); |
477 | if ( wid < 10 ) | 484 | if ( wid < 10 ) |
478 | wid = 400; | 485 | wid = 400; |
479 | #else | 486 | #else |
480 | int wid = QApplication::desktop()->width(); | 487 | int wid = QApplication::desktop()->width(); |
481 | if ( wid < 640 ) | 488 | if ( wid < 640 ) |
482 | wid = QApplication::desktop()->height(); | 489 | wid = QApplication::desktop()->height(); |
483 | #endif | 490 | #endif |
484 | QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter; | 491 | QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter; |
485 | if ( true /*splitterSize.count() == 0*/ ) { | 492 | if ( true /*splitterSize.count() == 0*/ ) { |
486 | splitterSize.append( wid / 2 ); | 493 | splitterSize.append( wid / 2 ); |
487 | splitterSize.append( wid / 2 ); | 494 | splitterSize.append( wid / 2 ); |
488 | } | 495 | } |
489 | mMiniSplitter->setSizes( splitterSize ); | 496 | mMiniSplitter->setSizes( splitterSize ); |
490 | if ( mExtensionBarSplitter ) { | 497 | if ( mExtensionBarSplitter ) { |
491 | //splitterSize = KABPrefs::instance()->mExtensionsSplitter; | 498 | //splitterSize = KABPrefs::instance()->mExtensionsSplitter; |
492 | if ( true /*splitterSize.count() == 0*/ ) { | 499 | if ( true /*splitterSize.count() == 0*/ ) { |
493 | splitterSize.append( wid / 2 ); | 500 | splitterSize.append( wid / 2 ); |
494 | splitterSize.append( wid / 2 ); | 501 | splitterSize.append( wid / 2 ); |
495 | } | 502 | } |
496 | mExtensionBarSplitter->setSizes( splitterSize ); | 503 | mExtensionBarSplitter->setSizes( splitterSize ); |
497 | 504 | ||
498 | } | 505 | } |
499 | 506 | ||
500 | 507 | ||
501 | } | 508 | } |
502 | 509 | ||
503 | void KABCore::saveSettings() | 510 | void KABCore::saveSettings() |
504 | { | 511 | { |
505 | KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); | 512 | KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); |
506 | if ( mExtensionBarSplitter ) | 513 | if ( mExtensionBarSplitter ) |
507 | KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); | 514 | KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); |
508 | KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); | 515 | KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); |
509 | KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); | 516 | KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); |
510 | #ifndef KAB_EMBEDDED | 517 | #ifndef KAB_EMBEDDED |
511 | 518 | ||
512 | KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); | 519 | KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); |
513 | KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); | 520 | KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); |
514 | #endif //KAB_EMBEDDED | 521 | #endif //KAB_EMBEDDED |
515 | mExtensionManager->saveSettings(); | 522 | mExtensionManager->saveSettings(); |
516 | mViewManager->saveSettings(); | 523 | mViewManager->saveSettings(); |
517 | 524 | ||
518 | KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); | 525 | KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); |
519 | } | 526 | } |
520 | 527 | ||
521 | KABC::AddressBook *KABCore::addressBook() const | 528 | KABC::AddressBook *KABCore::addressBook() const |
522 | { | 529 | { |
523 | return mAddressBook; | 530 | return mAddressBook; |
524 | } | 531 | } |
525 | 532 | ||
526 | KConfig *KABCore::config() | 533 | KConfig *KABCore::config() |
527 | { | 534 | { |
528 | #ifndef KAB_EMBEDDED | 535 | #ifndef KAB_EMBEDDED |
529 | return KABPrefs::instance()->config(); | 536 | return KABPrefs::instance()->config(); |
530 | #else //KAB_EMBEDDED | 537 | #else //KAB_EMBEDDED |
531 | return KABPrefs::instance()->getConfig(); | 538 | return KABPrefs::instance()->getConfig(); |
532 | #endif //KAB_EMBEDDED | 539 | #endif //KAB_EMBEDDED |
533 | } | 540 | } |
534 | 541 | ||
535 | KActionCollection *KABCore::actionCollection() const | 542 | KActionCollection *KABCore::actionCollection() const |
536 | { | 543 | { |
537 | return mGUIClient->actionCollection(); | 544 | return mGUIClient->actionCollection(); |
538 | } | 545 | } |
539 | 546 | ||
540 | KABC::Field *KABCore::currentSearchField() const | 547 | KABC::Field *KABCore::currentSearchField() const |
541 | { | 548 | { |
542 | if (mIncSearchWidget) | 549 | if (mIncSearchWidget) |
543 | return mIncSearchWidget->currentField(); | 550 | return mIncSearchWidget->currentField(); |
544 | else | 551 | else |
545 | return 0; | 552 | return 0; |
546 | } | 553 | } |
547 | 554 | ||
548 | QStringList KABCore::selectedUIDs() const | 555 | QStringList KABCore::selectedUIDs() const |
549 | { | 556 | { |
550 | return mViewManager->selectedUids(); | 557 | return mViewManager->selectedUids(); |
551 | } | 558 | } |
552 | 559 | ||
553 | KABC::Resource *KABCore::requestResource( QWidget *parent ) | 560 | KABC::Resource *KABCore::requestResource( QWidget *parent ) |
554 | { | 561 | { |
555 | QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); | 562 | QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); |
556 | 563 | ||
557 | QPtrList<KRES::Resource> kresResources; | 564 | QPtrList<KRES::Resource> kresResources; |
558 | QPtrListIterator<KABC::Resource> resIt( kabcResources ); | 565 | QPtrListIterator<KABC::Resource> resIt( kabcResources ); |
559 | KABC::Resource *resource; | 566 | KABC::Resource *resource; |
560 | while ( ( resource = resIt.current() ) != 0 ) { | 567 | while ( ( resource = resIt.current() ) != 0 ) { |
561 | ++resIt; | 568 | ++resIt; |
562 | if ( !resource->readOnly() ) { | 569 | if ( !resource->readOnly() ) { |
563 | KRES::Resource *res = static_cast<KRES::Resource*>( resource ); | 570 | KRES::Resource *res = static_cast<KRES::Resource*>( resource ); |
564 | if ( res ) | 571 | if ( res ) |
565 | kresResources.append( res ); | 572 | kresResources.append( res ); |
566 | } | 573 | } |
567 | } | 574 | } |
568 | 575 | ||
569 | KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent ); | 576 | KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent ); |
570 | return static_cast<KABC::Resource*>( res ); | 577 | return static_cast<KABC::Resource*>( res ); |
571 | } | 578 | } |
572 | 579 | ||
573 | #ifndef KAB_EMBEDDED | 580 | #ifndef KAB_EMBEDDED |
574 | KAboutData *KABCore::createAboutData() | 581 | KAboutData *KABCore::createAboutData() |
575 | #else //KAB_EMBEDDED | 582 | #else //KAB_EMBEDDED |
576 | void KABCore::createAboutData() | 583 | void KABCore::createAboutData() |
577 | #endif //KAB_EMBEDDED | 584 | #endif //KAB_EMBEDDED |
578 | { | 585 | { |
579 | #ifndef KAB_EMBEDDED | 586 | #ifndef KAB_EMBEDDED |
580 | KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), | 587 | KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), |
581 | "3.1", I18N_NOOP( "The KDE Address Book" ), | 588 | "3.1", I18N_NOOP( "The KDE Address Book" ), |
582 | KAboutData::License_GPL_V2, | 589 | KAboutData::License_GPL_V2, |
583 | I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); | 590 | I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); |
584 | about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); | 591 | about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); |
585 | about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); | 592 | about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); |
586 | about->addAuthor( "Cornelius Schumacher", | 593 | about->addAuthor( "Cornelius Schumacher", |
587 | I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), | 594 | I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), |
588 | "schumacher@kde.org" ); | 595 | "schumacher@kde.org" ); |
589 | about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), | 596 | about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), |
590 | "mpilone@slac.com" ); | 597 | "mpilone@slac.com" ); |
591 | about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); | 598 | about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); |
592 | about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); | 599 | about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); |
593 | about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), | 600 | about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), |
594 | "michel@klaralvdalens-datakonsult.se" ); | 601 | "michel@klaralvdalens-datakonsult.se" ); |
595 | about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), | 602 | about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), |
596 | "hansen@kde.org" ); | 603 | "hansen@kde.org" ); |
597 | 604 | ||
598 | return about; | 605 | return about; |
599 | #endif //KAB_EMBEDDED | 606 | #endif //KAB_EMBEDDED |
600 | 607 | ||
601 | QString version; | 608 | QString version; |
602 | #include <../version> | 609 | #include <../version> |
603 | QMessageBox::about( this, "About KAddressbook/Pi", | 610 | QMessageBox::about( this, "About KAddressbook/Pi", |
604 | "KAddressbook/Platform-independent\n" | 611 | "KAddressbook/Platform-independent\n" |
605 | "(KA/Pi) " +version + " - " + | 612 | "(KA/Pi) " +version + " - " + |
606 | #ifdef DESKTOP_VERSION | 613 | #ifdef DESKTOP_VERSION |
607 | "Desktop Edition\n" | 614 | "Desktop Edition\n" |
608 | #else | 615 | #else |
609 | "PDA-Edition\n" | 616 | "PDA-Edition\n" |
610 | "for: Zaurus 5500 / 7x0 / 8x0\n" | 617 | "for: Zaurus 5500 / 7x0 / 8x0\n" |
611 | #endif | 618 | #endif |
612 | 619 | ||
613 | "(c) 2004 Ulf Schenk\n" | 620 | "(c) 2004 Ulf Schenk\n" |
614 | "(c) 2004 Lutz Rogowski\n" | 621 | "(c) 2004 Lutz Rogowski\n" |
615 | "(c) 1997-2003, The KDE PIM Team\n" | 622 | "(c) 1997-2003, The KDE PIM Team\n" |
616 | "Tobias Koenig Current maintainer\ntokoe@kde.org\n" | 623 | "Tobias Koenig Current maintainer\ntokoe@kde.org\n" |
617 | "Don Sanders Original author\n" | 624 | "Don Sanders Original author\n" |
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index d2ee45d..0a52838 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h | |||
@@ -107,406 +107,407 @@ class KABCore : public QWidget, public KSyncInterface | |||
107 | 107 | ||
108 | /** | 108 | /** |
109 | Returns a pointer to the KConfig object of the application. | 109 | Returns a pointer to the KConfig object of the application. |
110 | */ | 110 | */ |
111 | static KConfig *config(); | 111 | static KConfig *config(); |
112 | 112 | ||
113 | /** | 113 | /** |
114 | Returns a pointer to the global KActionCollection object. So | 114 | Returns a pointer to the global KActionCollection object. So |
115 | other classes can register their actions easily. | 115 | other classes can register their actions easily. |
116 | */ | 116 | */ |
117 | KActionCollection *actionCollection() const; | 117 | KActionCollection *actionCollection() const; |
118 | 118 | ||
119 | /** | 119 | /** |
120 | Returns the current search field of the Incremental Search Widget. | 120 | Returns the current search field of the Incremental Search Widget. |
121 | */ | 121 | */ |
122 | KABC::Field *currentSearchField() const; | 122 | KABC::Field *currentSearchField() const; |
123 | 123 | ||
124 | /** | 124 | /** |
125 | Returns the uid list of the currently selected contacts. | 125 | Returns the uid list of the currently selected contacts. |
126 | */ | 126 | */ |
127 | QStringList selectedUIDs() const; | 127 | QStringList selectedUIDs() const; |
128 | 128 | ||
129 | /** | 129 | /** |
130 | Displays the ResourceSelectDialog and returns the selected | 130 | Displays the ResourceSelectDialog and returns the selected |
131 | resource or a null pointer if no resource was selected by | 131 | resource or a null pointer if no resource was selected by |
132 | the user. | 132 | the user. |
133 | */ | 133 | */ |
134 | KABC::Resource *requestResource( QWidget *parent ); | 134 | KABC::Resource *requestResource( QWidget *parent ); |
135 | 135 | ||
136 | #ifndef KAB_EMBEDDED | 136 | #ifndef KAB_EMBEDDED |
137 | static KAboutData *createAboutData(); | 137 | static KAboutData *createAboutData(); |
138 | #endif //KAB_EMBEDDED | 138 | #endif //KAB_EMBEDDED |
139 | 139 | ||
140 | #ifdef KAB_EMBEDDED | 140 | #ifdef KAB_EMBEDDED |
141 | inline QPopupMenu* getImportMenu() { return ImportMenu;} | 141 | inline QPopupMenu* getImportMenu() { return ImportMenu;} |
142 | inline QPopupMenu* getExportMenu() { return ExportMenu;} | 142 | inline QPopupMenu* getExportMenu() { return ExportMenu;} |
143 | #endif //KAB_EMBEDDED | 143 | #endif //KAB_EMBEDDED |
144 | 144 | ||
145 | public slots: | 145 | public slots: |
146 | #ifdef KAB_EMBEDDED | 146 | #ifdef KAB_EMBEDDED |
147 | void createAboutData(); | 147 | void createAboutData(); |
148 | #endif //KAB_EMBEDDED | 148 | #endif //KAB_EMBEDDED |
149 | void setDetailsToggle(); | 149 | void setDetailsToggle(); |
150 | 150 | ||
151 | void showLicence(); | 151 | void showLicence(); |
152 | void faq(); | 152 | void faq(); |
153 | void whatsnew() ; | 153 | void whatsnew() ; |
154 | void synchowto() ; | 154 | void synchowto() ; |
155 | void multisynchowto() ; | 155 | void multisynchowto() ; |
156 | void kdesynchowto() ; | 156 | void kdesynchowto() ; |
157 | void writeToPhone(); | 157 | void writeToPhone(); |
158 | 158 | ||
159 | /** | 159 | /** |
160 | Is called whenever a contact is selected in the view. | 160 | Is called whenever a contact is selected in the view. |
161 | */ | 161 | */ |
162 | void setContactSelected( const QString &uid ); | 162 | void setContactSelected( const QString &uid ); |
163 | 163 | ||
164 | /** | 164 | /** |
165 | Opens the preferred mail composer with all selected contacts as | 165 | Opens the preferred mail composer with all selected contacts as |
166 | arguments. | 166 | arguments. |
167 | */ | 167 | */ |
168 | void sendMail(); | 168 | void sendMail(); |
169 | 169 | ||
170 | /** | 170 | /** |
171 | Opens the preferred mail composer with the given contacts as | 171 | Opens the preferred mail composer with the given contacts as |
172 | arguments. | 172 | arguments. |
173 | */ | 173 | */ |
174 | void sendMail( const QString& email ); | 174 | void sendMail( const QString& email ); |
175 | 175 | ||
176 | 176 | ||
177 | void mailVCard(); | 177 | void mailVCard(); |
178 | void mailVCard(const QStringList& uids); | 178 | void mailVCard(const QStringList& uids); |
179 | 179 | ||
180 | /** | 180 | /** |
181 | Beams the "WhoAmI contact. | 181 | Beams the "WhoAmI contact. |
182 | */ | 182 | */ |
183 | void beamMySelf(); | 183 | void beamMySelf(); |
184 | 184 | ||
185 | void beamVCard(); | 185 | void beamVCard(); |
186 | void export2phone(); | 186 | void export2phone(); |
187 | void beamVCard(const QStringList& uids); | 187 | void beamVCard(const QStringList& uids); |
188 | void beamDone( Ir *ir ); | 188 | void beamDone( Ir *ir ); |
189 | 189 | ||
190 | 190 | ||
191 | /** | 191 | /** |
192 | Starts the preferred web browser with the given URL as argument. | 192 | Starts the preferred web browser with the given URL as argument. |
193 | */ | 193 | */ |
194 | void browse( const QString& url ); | 194 | void browse( const QString& url ); |
195 | 195 | ||
196 | /** | 196 | /** |
197 | Select all contacts in the view. | 197 | Select all contacts in the view. |
198 | */ | 198 | */ |
199 | void selectAllContacts(); | 199 | void selectAllContacts(); |
200 | 200 | ||
201 | /** | 201 | /** |
202 | Deletes all selected contacts from the address book. | 202 | Deletes all selected contacts from the address book. |
203 | */ | 203 | */ |
204 | void deleteContacts(); | 204 | void deleteContacts(); |
205 | 205 | ||
206 | /** | 206 | /** |
207 | Deletes given contacts from the address book. | 207 | Deletes given contacts from the address book. |
208 | 208 | ||
209 | @param uids The uids of the contacts, which shall be deleted. | 209 | @param uids The uids of the contacts, which shall be deleted. |
210 | */ | 210 | */ |
211 | void deleteContacts( const QStringList &uids ); | 211 | void deleteContacts( const QStringList &uids ); |
212 | 212 | ||
213 | /** | 213 | /** |
214 | Copys the selected contacts into clipboard for later pasting. | 214 | Copys the selected contacts into clipboard for later pasting. |
215 | */ | 215 | */ |
216 | void copyContacts(); | 216 | void copyContacts(); |
217 | 217 | ||
218 | /** | 218 | /** |
219 | Cuts the selected contacts and stores them for later pasting. | 219 | Cuts the selected contacts and stores them for later pasting. |
220 | */ | 220 | */ |
221 | void cutContacts(); | 221 | void cutContacts(); |
222 | 222 | ||
223 | /** | 223 | /** |
224 | Paste contacts from clipboard into the address book. | 224 | Paste contacts from clipboard into the address book. |
225 | */ | 225 | */ |
226 | void pasteContacts(); | 226 | void pasteContacts(); |
227 | 227 | ||
228 | /** | 228 | /** |
229 | Paste given contacts into the address book. | 229 | Paste given contacts into the address book. |
230 | 230 | ||
231 | @param list The list of addressee, which shall be pasted. | 231 | @param list The list of addressee, which shall be pasted. |
232 | */ | 232 | */ |
233 | void pasteContacts( KABC::Addressee::List &list ); | 233 | void pasteContacts( KABC::Addressee::List &list ); |
234 | 234 | ||
235 | /** | 235 | /** |
236 | Sets the whoAmI contact, that is used by many other programs to | 236 | Sets the whoAmI contact, that is used by many other programs to |
237 | get personal information about the current user. | 237 | get personal information about the current user. |
238 | */ | 238 | */ |
239 | void setWhoAmI(); | 239 | void setWhoAmI(); |
240 | 240 | ||
241 | /** | 241 | /** |
242 | Displays the category dialog and applies the result to all | 242 | Displays the category dialog and applies the result to all |
243 | selected contacts. | 243 | selected contacts. |
244 | */ | 244 | */ |
245 | void setCategories(); | 245 | void setCategories(); |
246 | void manageCategories(); | 246 | void manageCategories(); |
247 | void editCategories(); | 247 | void editCategories(); |
248 | 248 | ||
249 | /** | 249 | /** |
250 | Sets the field list of the Incremental Search Widget. | 250 | Sets the field list of the Incremental Search Widget. |
251 | */ | 251 | */ |
252 | void setSearchFields( const KABC::Field::List &fields ); | 252 | void setSearchFields( const KABC::Field::List &fields ); |
253 | 253 | ||
254 | /** | 254 | /** |
255 | Search with the current search field for a contact, that matches | 255 | Search with the current search field for a contact, that matches |
256 | the given text, and selects it in the view. | 256 | the given text, and selects it in the view. |
257 | */ | 257 | */ |
258 | void incrementalSearch( const QString& text ); | 258 | void incrementalSearch( const QString& text ); |
259 | 259 | ||
260 | /** | 260 | /** |
261 | Marks the address book as modified. | 261 | Marks the address book as modified. |
262 | */ | 262 | */ |
263 | void setModified(); | 263 | void setModified(); |
264 | /** | 264 | /** |
265 | Marks the address book as modified without refreshing the view. | 265 | Marks the address book as modified without refreshing the view. |
266 | */ | 266 | */ |
267 | void setModifiedWOrefresh(); | 267 | void setModifiedWOrefresh(); |
268 | 268 | ||
269 | /** | 269 | /** |
270 | Marks the address book as modified concerning the argument. | 270 | Marks the address book as modified concerning the argument. |
271 | */ | 271 | */ |
272 | void setModified( bool modified ); | 272 | void setModified( bool modified ); |
273 | 273 | ||
274 | /** | 274 | /** |
275 | Returns whether the address book is modified. | 275 | Returns whether the address book is modified. |
276 | */ | 276 | */ |
277 | bool modified() const; | 277 | bool modified() const; |
278 | 278 | ||
279 | /** | 279 | /** |
280 | Called whenever an contact is modified in the contact editor | 280 | Called whenever an contact is modified in the contact editor |
281 | dialog or the quick edit. | 281 | dialog or the quick edit. |
282 | */ | 282 | */ |
283 | void contactModified( const KABC::Addressee &addr ); | 283 | void contactModified( const KABC::Addressee &addr ); |
284 | 284 | ||
285 | /** | 285 | /** |
286 | DCOP METHODS. | 286 | DCOP METHODS. |
287 | */ | 287 | */ |
288 | void addEmail( QString addr ); | 288 | void addEmail( QString addr ); |
289 | void importVCard( const KURL& url, bool showPreview ); | 289 | void importVCard( const KURL& url, bool showPreview ); |
290 | void importVCard( const QString& vCard, bool showPreview ); | 290 | void importVCard( const QString& vCard, bool showPreview ); |
291 | void newContact(); | 291 | void newContact(); |
292 | QString getNameByPhone( const QString& phone ); | 292 | QString getNameByPhone( const QString& phone ); |
293 | /** | 293 | /** |
294 | END DCOP METHODS | 294 | END DCOP METHODS |
295 | */ | 295 | */ |
296 | 296 | ||
297 | /** | 297 | /** |
298 | Saves the contents of the AddressBook back to disk. | 298 | Saves the contents of the AddressBook back to disk. |
299 | */ | 299 | */ |
300 | void save(); | 300 | void save(); |
301 | 301 | ||
302 | /** | 302 | /** |
303 | Undos the last command using the undo stack. | 303 | Undos the last command using the undo stack. |
304 | */ | 304 | */ |
305 | void undo(); | 305 | void undo(); |
306 | 306 | ||
307 | /** | 307 | /** |
308 | Redos the last command that was undone, using the redo stack. | 308 | Redos the last command that was undone, using the redo stack. |
309 | */ | 309 | */ |
310 | void redo(); | 310 | void redo(); |
311 | 311 | ||
312 | /** | 312 | /** |
313 | Shows the edit dialog for the given uid. If the uid is QString::null, | 313 | Shows the edit dialog for the given uid. If the uid is QString::null, |
314 | the method will try to find a selected addressee in the view. | 314 | the method will try to find a selected addressee in the view. |
315 | */ | 315 | */ |
316 | void editContact( const QString &uid /*US = QString::null*/ ); | 316 | void editContact( const QString &uid /*US = QString::null*/ ); |
317 | //US added a second method without defaultparameter | 317 | //US added a second method without defaultparameter |
318 | void editContact2(); | 318 | void editContact2(); |
319 | 319 | ||
320 | /** | 320 | /** |
321 | Shows or edits the detail view for the given uid. If the uid is QString::null, | 321 | Shows or edits the detail view for the given uid. If the uid is QString::null, |
322 | the method will try to find a selected addressee in the view. | 322 | the method will try to find a selected addressee in the view. |
323 | */ | 323 | */ |
324 | void executeContact( const QString &uid /*US = QString::null*/ ); | 324 | void executeContact( const QString &uid /*US = QString::null*/ ); |
325 | 325 | ||
326 | /** | 326 | /** |
327 | Launches the configuration dialog. | 327 | Launches the configuration dialog. |
328 | */ | 328 | */ |
329 | void openConfigDialog(); | 329 | void openConfigDialog(); |
330 | 330 | ||
331 | /** | 331 | /** |
332 | Launches the ldap search dialog. | 332 | Launches the ldap search dialog. |
333 | */ | 333 | */ |
334 | void openLDAPDialog(); | 334 | void openLDAPDialog(); |
335 | 335 | ||
336 | /** | 336 | /** |
337 | Creates a KAddressBookPrinter, which will display the print | 337 | Creates a KAddressBookPrinter, which will display the print |
338 | dialog and do the printing. | 338 | dialog and do the printing. |
339 | */ | 339 | */ |
340 | void print(); | 340 | void print(); |
341 | 341 | ||
342 | /** | 342 | /** |
343 | Registers a new GUI client, so plugins can register its actions. | 343 | Registers a new GUI client, so plugins can register its actions. |
344 | */ | 344 | */ |
345 | void addGUIClient( KXMLGUIClient *client ); | 345 | void addGUIClient( KXMLGUIClient *client ); |
346 | 346 | ||
347 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); | 347 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); |
348 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); | 348 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); |
349 | void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); | 349 | void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); |
350 | 350 | ||
351 | 351 | ||
352 | signals: | 352 | signals: |
353 | void contactSelected( const QString &name ); | 353 | void contactSelected( const QString &name ); |
354 | void contactSelected( const QPixmap &pixmap ); | 354 | void contactSelected( const QPixmap &pixmap ); |
355 | public slots: | 355 | public slots: |
356 | void recieve(QString cmsg ); | 356 | void recieve(QString cmsg ); |
357 | void getFile( bool success ); | 357 | void getFile( bool success ); |
358 | void syncFileRequest(); | 358 | void syncFileRequest(); |
359 | void setDetailsVisible( bool visible ); | 359 | void setDetailsVisible( bool visible ); |
360 | void setDetailsToState(); | 360 | void setDetailsToState(); |
361 | // void slotSyncMenu( int ); | 361 | // void slotSyncMenu( int ); |
362 | private slots: | 362 | private slots: |
363 | void updateToolBar(); | ||
363 | void receive( const QCString& cmsg, const QByteArray& data ); | 364 | void receive( const QCString& cmsg, const QByteArray& data ); |
364 | void toggleBeamReceive( ); | 365 | void toggleBeamReceive( ); |
365 | void disableBR(bool); | 366 | void disableBR(bool); |
366 | void setJumpButtonBarVisible( bool visible ); | 367 | void setJumpButtonBarVisible( bool visible ); |
367 | void setCaptionBack(); | 368 | void setCaptionBack(); |
368 | void importFromOL(); | 369 | void importFromOL(); |
369 | void extensionModified( const KABC::Addressee::List &list ); | 370 | void extensionModified( const KABC::Addressee::List &list ); |
370 | void extensionChanged( int id ); | 371 | void extensionChanged( int id ); |
371 | void clipboardDataChanged(); | 372 | void clipboardDataChanged(); |
372 | void updateActionMenu(); | 373 | void updateActionMenu(); |
373 | void configureKeyBindings(); | 374 | void configureKeyBindings(); |
374 | void removeVoice(); | 375 | void removeVoice(); |
375 | #ifdef KAB_EMBEDDED | 376 | #ifdef KAB_EMBEDDED |
376 | void configureResources(); | 377 | void configureResources(); |
377 | #endif //KAB_EMBEDDED | 378 | #endif //KAB_EMBEDDED |
378 | 379 | ||
379 | void slotEditorDestroyed( const QString &uid ); | 380 | void slotEditorDestroyed( const QString &uid ); |
380 | void configurationChanged(); | 381 | void configurationChanged(); |
381 | void addressBookChanged(); | 382 | void addressBookChanged(); |
382 | 383 | ||
383 | private: | 384 | private: |
384 | bool mBRdisabled; | 385 | bool mBRdisabled; |
385 | #ifndef DESKTOP_VERSION | 386 | #ifndef DESKTOP_VERSION |
386 | QCopChannel* infrared; | 387 | QCopChannel* infrared; |
387 | #endif | 388 | #endif |
388 | QTimer *mMessageTimer; | 389 | QTimer *mMessageTimer; |
389 | void initGUI(); | 390 | void initGUI(); |
390 | void initActions(); | 391 | void initActions(); |
391 | QString getPhoneFile(); | 392 | QString getPhoneFile(); |
392 | 393 | ||
393 | AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, | 394 | AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, |
394 | const char *name = 0 ); | 395 | const char *name = 0 ); |
395 | 396 | ||
396 | KXMLGUIClient *mGUIClient; | 397 | KXMLGUIClient *mGUIClient; |
397 | 398 | ||
398 | KABC::AddressBook *mAddressBook; | 399 | KABC::AddressBook *mAddressBook; |
399 | 400 | ||
400 | ViewManager *mViewManager; | 401 | ViewManager *mViewManager; |
401 | // QSplitter *mDetailsSplitter; | 402 | // QSplitter *mDetailsSplitter; |
402 | KDGanttMinimizeSplitter *mExtensionBarSplitter; | 403 | KDGanttMinimizeSplitter *mExtensionBarSplitter; |
403 | ViewContainer *mDetails; | 404 | ViewContainer *mDetails; |
404 | KDGanttMinimizeSplitter* mMiniSplitter; | 405 | KDGanttMinimizeSplitter* mMiniSplitter; |
405 | XXPortManager *mXXPortManager; | 406 | XXPortManager *mXXPortManager; |
406 | JumpButtonBar *mJumpButtonBar; | 407 | JumpButtonBar *mJumpButtonBar; |
407 | IncSearchWidget *mIncSearchWidget; | 408 | IncSearchWidget *mIncSearchWidget; |
408 | ExtensionManager *mExtensionManager; | 409 | ExtensionManager *mExtensionManager; |
409 | 410 | ||
410 | KCMultiDialog *mConfigureDialog; | 411 | KCMultiDialog *mConfigureDialog; |
411 | 412 | ||
412 | #ifndef KAB_EMBEDDED | 413 | #ifndef KAB_EMBEDDED |
413 | LDAPSearchDialog *mLdapSearchDialog; | 414 | LDAPSearchDialog *mLdapSearchDialog; |
414 | #endif //KAB_EMBEDDED | 415 | #endif //KAB_EMBEDDED |
415 | // QDict<AddresseeEditorDialog> mEditorDict; | 416 | // QDict<AddresseeEditorDialog> mEditorDict; |
416 | AddresseeEditorDialog *mEditorDialog; | 417 | AddresseeEditorDialog *mEditorDialog; |
417 | bool mReadWrite; | 418 | bool mReadWrite; |
418 | bool mModified; | 419 | bool mModified; |
419 | bool mIsPart; | 420 | bool mIsPart; |
420 | bool mMultipleViewsAtOnce; | 421 | bool mMultipleViewsAtOnce; |
421 | 422 | ||
422 | 423 | ||
423 | //US file menu | 424 | //US file menu |
424 | KAction *mActionMail; | 425 | KAction *mActionMail; |
425 | KAction *mActionBeam; | 426 | KAction *mActionBeam; |
426 | KToggleAction *mActionBR; | 427 | KToggleAction *mActionBR; |
427 | KAction *mActionExport2phone; | 428 | KAction *mActionExport2phone; |
428 | KAction* mActionPrint; | 429 | KAction* mActionPrint; |
429 | KAction* mActionNewContact; | 430 | KAction* mActionNewContact; |
430 | KAction *mActionSave; | 431 | KAction *mActionSave; |
431 | KAction *mActionEditAddressee; | 432 | KAction *mActionEditAddressee; |
432 | KAction *mActionMailVCard; | 433 | KAction *mActionMailVCard; |
433 | KAction *mActionBeamVCard; | 434 | KAction *mActionBeamVCard; |
434 | 435 | ||
435 | KAction *mActionQuit; | 436 | KAction *mActionQuit; |
436 | 437 | ||
437 | //US edit menu | 438 | //US edit menu |
438 | KAction *mActionCopy; | 439 | KAction *mActionCopy; |
439 | KAction *mActionCut; | 440 | KAction *mActionCut; |
440 | KAction *mActionPaste; | 441 | KAction *mActionPaste; |
441 | KAction *mActionSelectAll; | 442 | KAction *mActionSelectAll; |
442 | KAction *mActionUndo; | 443 | KAction *mActionUndo; |
443 | KAction *mActionRedo; | 444 | KAction *mActionRedo; |
444 | KAction *mActionDelete; | 445 | KAction *mActionDelete; |
445 | 446 | ||
446 | //US settings menu | 447 | //US settings menu |
447 | KAction *mActionConfigResources; | 448 | KAction *mActionConfigResources; |
448 | KAction *mActionConfigKAddressbook; | 449 | KAction *mActionConfigKAddressbook; |
449 | KAction *mActionConfigShortcuts; | 450 | KAction *mActionConfigShortcuts; |
450 | KAction *mActionConfigureToolbars; | 451 | KAction *mActionConfigureToolbars; |
451 | KAction *mActionKeyBindings; | 452 | KAction *mActionKeyBindings; |
452 | KToggleAction *mActionJumpBar; | 453 | KToggleAction *mActionJumpBar; |
453 | KToggleAction *mActionDetails; | 454 | KToggleAction *mActionDetails; |
454 | KAction *mActionWhoAmI; | 455 | KAction *mActionWhoAmI; |
455 | KAction *mActionCategories; | 456 | KAction *mActionCategories; |
456 | KAction *mActionEditCategories; | 457 | KAction *mActionEditCategories; |
457 | KAction *mActionManageCategories; | 458 | KAction *mActionManageCategories; |
458 | KAction *mActionAboutKAddressbook; | 459 | KAction *mActionAboutKAddressbook; |
459 | KAction *mActionLicence; | 460 | KAction *mActionLicence; |
460 | KAction *mActionFaq; | 461 | KAction *mActionFaq; |
461 | KAction *mActionWN; | 462 | KAction *mActionWN; |
462 | KAction *mActionSyncHowto; | 463 | KAction *mActionSyncHowto; |
463 | KAction *mActionKdeSyncHowto; | 464 | KAction *mActionKdeSyncHowto; |
464 | KAction *mActionMultiSyncHowto; | 465 | KAction *mActionMultiSyncHowto; |
465 | 466 | ||
466 | KAction *mActionDeleteView; | 467 | KAction *mActionDeleteView; |
467 | 468 | ||
468 | QPopupMenu *viewMenu; | 469 | QPopupMenu *viewMenu; |
469 | QPopupMenu *filterMenu; | 470 | QPopupMenu *filterMenu; |
470 | QPopupMenu *settingsMenu; | 471 | QPopupMenu *settingsMenu; |
471 | QPopupMenu *changeMenu; | 472 | QPopupMenu *changeMenu; |
472 | //US QAction *mActionSave; | 473 | //US QAction *mActionSave; |
473 | QPopupMenu *ImportMenu; | 474 | QPopupMenu *ImportMenu; |
474 | QPopupMenu *ExportMenu; | 475 | QPopupMenu *ExportMenu; |
475 | //LR additional methods | 476 | //LR additional methods |
476 | KAction *mActionRemoveVoice; | 477 | KAction *mActionRemoveVoice; |
477 | KAction * mActionImportOL; | 478 | KAction * mActionImportOL; |
478 | 479 | ||
479 | #ifndef KAB_EMBEDDED | 480 | #ifndef KAB_EMBEDDED |
480 | KAddressBookService *mAddressBookService; | 481 | KAddressBookService *mAddressBookService; |
481 | #endif //KAB_EMBEDDED | 482 | #endif //KAB_EMBEDDED |
482 | 483 | ||
483 | class KABCorePrivate; | 484 | class KABCorePrivate; |
484 | KABCorePrivate *d; | 485 | KABCorePrivate *d; |
485 | //US bool mBlockSaveFlag; | 486 | //US bool mBlockSaveFlag; |
486 | 487 | ||
487 | #ifdef KAB_EMBEDDED | 488 | #ifdef KAB_EMBEDDED |
488 | KAddressBookMain *mMainWindow; // should be the same like mGUIClient | 489 | KAddressBookMain *mMainWindow; // should be the same like mGUIClient |
489 | #endif //KAB_EMBEDDED | 490 | #endif //KAB_EMBEDDED |
490 | 491 | ||
491 | //this are the overwritten callbackmethods from the syncinterface | 492 | //this are the overwritten callbackmethods from the syncinterface |
492 | virtual bool sync(KSyncManager* manager, QString filename, int mode); | 493 | virtual bool sync(KSyncManager* manager, QString filename, int mode); |
493 | virtual bool syncExternal(KSyncManager* manager, QString resource); | 494 | virtual bool syncExternal(KSyncManager* manager, QString resource); |
494 | virtual void removeSyncInfo( QString syncProfile); | 495 | virtual void removeSyncInfo( QString syncProfile); |
495 | bool syncPhone(); | 496 | bool syncPhone(); |
496 | void message( QString m ); | 497 | void message( QString m ); |
497 | 498 | ||
498 | // LR ******************************* | 499 | // LR ******************************* |
499 | // sync stuff! | 500 | // sync stuff! |
500 | QString sentSyncFile(); | 501 | QString sentSyncFile(); |
501 | QPopupMenu *syncMenu; | 502 | QPopupMenu *syncMenu; |
502 | KSyncManager* syncManager; | 503 | KSyncManager* syncManager; |
503 | int mGlobalSyncMode; | 504 | int mGlobalSyncMode; |
504 | bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); | 505 | bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); |
505 | KABC::Addressee getLastSyncAddressee(); | 506 | KABC::Addressee getLastSyncAddressee(); |
506 | QDateTime mLastAddressbookSync; | 507 | QDateTime mLastAddressbookSync; |
507 | int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); | 508 | int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); |
508 | // ********************* | 509 | // ********************* |
509 | 510 | ||
510 | }; | 511 | }; |
511 | 512 | ||
512 | #endif | 513 | #endif |