-rw-r--r-- | bin/kdepim/WhatsNew.txt | 5 | ||||
-rw-r--r-- | bin/kdepim/kaddressbook/germantranslation.txt | 4 | ||||
-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 2 | ||||
-rw-r--r-- | kaddressbook/addresseeeditorwidget.cpp | 6 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 5 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 1 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 23 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 1 | ||||
-rw-r--r-- | libkdepim/externalapphandler.cpp | 12 | ||||
-rw-r--r-- | libkdepim/externalapphandler.h | 1 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.cpp | 18 |
11 files changed, 55 insertions, 23 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 54376a0..10778ac 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt | |||
@@ -1,59 +1,64 @@ | |||
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 2.1.11 ************ | 3 | ********** VERSION 2.1.11 ************ |
4 | 4 | ||
5 | KO/Pi: | 5 | KO/Pi: |
6 | Because we can have many calendars now in KO/Pi we can have more than one journal entry per day. | 6 | Because we can have many calendars now in KO/Pi we can have more than one journal entry per day. |
7 | Added features to handle (and add ) more than one journal entry per day. | 7 | Added features to handle (and add ) more than one journal entry per day. |
8 | Added option for a journal title. | 8 | Added option for a journal title. |
9 | 9 | ||
10 | Added info about the calendar, the item belongs to, to the event/todo/journal viewer. | 10 | Added info about the calendar, the item belongs to, to the event/todo/journal viewer. |
11 | 11 | ||
12 | |||
13 | Fixed some problems when calling KO/Pi or KA/Pi from the alarm applet. | ||
14 | |||
15 | Added KA/Pi multi sync to the multi sync called from the alarm applet. | ||
16 | |||
12 | ********** VERSION 2.1.10 ************ | 17 | ********** VERSION 2.1.10 ************ |
13 | 18 | ||
14 | KO/Pi: | 19 | KO/Pi: |
15 | Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file. | 20 | Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file. |
16 | When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted. | 21 | When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted. |
17 | Fixed a bug in searching for a small timerange, i.e. one day. | 22 | Fixed a bug in searching for a small timerange, i.e. one day. |
18 | 23 | ||
19 | KA/Pi: | 24 | KA/Pi: |
20 | Fixed two problems in csv export. | 25 | Fixed two problems in csv export. |
21 | Fixed problems when calling the contact selection dialog from KO/Pi or OM/Pi. | 26 | Fixed problems when calling the contact selection dialog from KO/Pi or OM/Pi. |
22 | 27 | ||
23 | ********** VERSION 2.1.9 ************ | 28 | ********** VERSION 2.1.9 ************ |
24 | 29 | ||
25 | KO/Pi: | 30 | KO/Pi: |
26 | Fixed some problems of the new search options in the search dialog. | 31 | Fixed some problems of the new search options in the search dialog. |
27 | Fixed some problems in the new resource config options. | 32 | Fixed some problems in the new resource config options. |
28 | Changed the recurrence edit of events and todos such that the recurrence edit page now is notified about a change of the start date on the first page. | 33 | Changed the recurrence edit of events and todos such that the recurrence edit page now is notified about a change of the start date on the first page. |
29 | Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown: | 34 | Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown: |
30 | Now you can click on the bottom/top of an allday agenda item or on the left/right side of an agenda item to get the "new todo/new event" popup. | 35 | Now you can click on the bottom/top of an allday agenda item or on the left/right side of an agenda item to get the "new todo/new event" popup. |
31 | 36 | ||
32 | Fixed a problem in recurrence range in syncing with DTM. | 37 | Fixed a problem in recurrence range in syncing with DTM. |
33 | 38 | ||
34 | KA/Pi: | 39 | KA/Pi: |
35 | Made it posiible to show in the contact overview the details of all data available for that contact( e.g. office, spouse, children, nickname ...) | 40 | Made it posiible to show in the contact overview the details of all data available for that contact( e.g. office, spouse, children, nickname ...) |
36 | 41 | ||
37 | PwM/Pi: | 42 | PwM/Pi: |
38 | Added "sec" to the timeout config settings to make it clear the timeout values are seconds. | 43 | Added "sec" to the timeout config settings to make it clear the timeout values are seconds. |
39 | 44 | ||
40 | ********** VERSION 2.1.8 ************ | 45 | ********** VERSION 2.1.8 ************ |
41 | 46 | ||
42 | KO/Pi: | 47 | KO/Pi: |
43 | Added info about the completion state of a todo in the ListView/Searchdialog. | 48 | Added info about the completion state of a todo in the ListView/Searchdialog. |
44 | If in TodoView is selected "do not show compledted todos" then completed todos are not shown in the ListView as well. | 49 | If in TodoView is selected "do not show compledted todos" then completed todos are not shown in the ListView as well. |
45 | Fixed some updating problems when changing the filter. | 50 | Fixed some updating problems when changing the filter. |
46 | 51 | ||
47 | KA/Pi: | 52 | KA/Pi: |
48 | In the addressee selection dialog now the formatted name is shown, if not empty. | 53 | In the addressee selection dialog now the formatted name is shown, if not empty. |
49 | Added a column "category" to the addressee selection dialog to make it possible to sort addressees after category. | 54 | Added a column "category" to the addressee selection dialog to make it possible to sort addressees after category. |
50 | Now in the addressee selection dialog a selected contact is remove with a single click from the selected list. | 55 | Now in the addressee selection dialog a selected contact is remove with a single click from the selected list. |
51 | 56 | ||
52 | Fixed in the file selector on the Zaurus the problem that symbolic links to files/dirs were ignored. | 57 | Fixed in the file selector on the Zaurus the problem that symbolic links to files/dirs were ignored. |
53 | Fixed the sorting for size in the file selector on the Z. | 58 | Fixed the sorting for size in the file selector on the Z. |
54 | 59 | ||
55 | Changed the color selection dialog on the Zaurus to a more user friendly version. | 60 | Changed the color selection dialog on the Zaurus to a more user friendly version. |
56 | 61 | ||
57 | ********** VERSION 2.1.7 ************ | 62 | ********** VERSION 2.1.7 ************ |
58 | 63 | ||
59 | KO/Pi: | 64 | KO/Pi: |
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt index 515161f..c18a241 100644 --- a/bin/kdepim/kaddressbook/germantranslation.txt +++ b/bin/kdepim/kaddressbook/germantranslation.txt | |||
@@ -212,102 +212,102 @@ | |||
212 | { "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, | 212 | { "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, |
213 | { "Enter password","Passwort eingeben" }, | 213 | { "Enter password","Passwort eingeben" }, |
214 | { "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, | 214 | { "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, |
215 | { "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, | 215 | { "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, |
216 | { "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, | 216 | { "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, |
217 | { "Writing back file result: ","Resultat des Dateizurückschreibens: " }, | 217 | { "Writing back file result: ","Resultat des Dateizurückschreibens: " }, |
218 | { "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, | 218 | { "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, |
219 | { "Used %1 Client","Benutzter %1 Client" }, | 219 | { "Used %1 Client","Benutzter %1 Client" }, |
220 | { "No email client installed","Kein Email Klient installiert" }, | 220 | { "No email client installed","Kein Email Klient installiert" }, |
221 | { "Userdefined email client","Benutzerdef. Email Klient" }, | 221 | { "Userdefined email client","Benutzerdef. Email Klient" }, |
222 | { "OM/Pi email client","OM/Pi Email Klient" }, | 222 | { "OM/Pi email client","OM/Pi Email Klient" }, |
223 | { "Include in multiple ","Beziehe in mehrfach " }, | 223 | { "Include in multiple ","Beziehe in mehrfach " }, |
224 | { "calendar ","Kalender " }, | 224 | { "calendar ","Kalender " }, |
225 | { "addressbook ","Adressbuch " }, | 225 | { "addressbook ","Adressbuch " }, |
226 | { "pwmanager","PWmanager" }, | 226 | { "pwmanager","PWmanager" }, |
227 | { " sync"," Sync ein" }, | 227 | { " sync"," Sync ein" }, |
228 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, | 228 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, |
229 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, | 229 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, |
230 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, | 230 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, |
231 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, | 231 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, |
232 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, | 232 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, |
233 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, | 233 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, |
234 | { "Help...","Hilfe..." }, | 234 | { "Help...","Hilfe..." }, |
235 | { "Local file Cal:","Lokale Datei Kal:" }, | 235 | { "Local file Cal:","Lokale Datei Kal:" }, |
236 | { "Local file ABook:","Lokale Datei ABuch:" }, | 236 | { "Local file ABook:","Lokale Datei ABuch:" }, |
237 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, | 237 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, |
238 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, | 238 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, |
239 | { "Calendar:","Kalender:" }, | 239 | { "Calendar:","Kalender:" }, |
240 | { "AddressBook:","AdressBuch:" }, | 240 | { "AddressBook:","AdressBuch:" }, |
241 | { "PWManager:","PWManager:" }, | 241 | { "PWManager:","PWManager:" }, |
242 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, | 242 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, |
243 | { "ssh/scp","ssh/scp" }, | 243 | { "ssh/scp","ssh/scp" }, |
244 | { "ftp","ftp" }, | 244 | { "ftp","ftp" }, |
245 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, | 245 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, |
246 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, | 246 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, |
247 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, | 247 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, |
248 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, | 248 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, |
249 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, | 249 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, |
250 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, | 250 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, |
251 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, | 251 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, |
252 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, | 252 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, |
253 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, | 253 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, |
254 | { "Port number (Default: %1)","Port Nummer (Default: %1)" }, | 254 | { "Port number (Default: %1)","Port Nummer (Default: %1)" }, |
255 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, | 255 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, |
256 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, | 256 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, |
257 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, | 257 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, |
258 | { "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, | 258 | { "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, |
259 | { "Disable Pi-Sync","Schalte Pi-Sync aus" }, | 259 | { "Disable Pi-Sync","Schalte Pi-Sync aus" }, |
260 | { "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, | 260 | { "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen "Multi-Syncen"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, |
261 | { "KDE-Pim Sync","KDE-Pim Sync" }, | 261 | { "KDE-Pim Sync","KDE-Pim Sync" }, |
262 | { "Multiple profiles","Multi-Sync Profile" }, | 262 | { "Multiple profiles","Multi-Sync Profile" }, |
263 | { "Device: ","Gerät: " }, | 263 | { "Device: ","Gerät: " }, |
264 | { "Multiple sync started.","Multi-Sync gestartet." }, | 264 | { "Multiple sync started.","Multi-Sync gestartet." }, |
265 | { "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, | 265 | { "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile selektiert für Multi-Sync" }, |
266 | { "KDE-Pim sync config","KDE-Pim Sync Konfig" }, | 266 | { "KDE-Pim sync config","KDE-Pim Sync Konfig" }, |
267 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein, z.B.:\n" }, | 267 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein, z.B.:\n" }, |
268 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Modell\nautomatisch\erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, | 268 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Modell\nautomatisch\erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, |
269 | { "KO/Pi config error","KO/Pi Konfig. Fehler" }, | 269 | { "KO/Pi config error","KO/Pi Konfig. Fehler" }, |
270 | { "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, | 270 | { "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, |
271 | { "Edit Address Book Filters","Editiere Addressbuch Filter" }, | 271 | { "Edit Address Book Filters","Editiere Addressbuch Filter" }, |
272 | { "&Add...","Hinzufügen..." }, | 272 | { "&Add...","Hinzufügen..." }, |
273 | { "&Edit...","B&earbeiten..." }, | 273 | { "&Edit...","B&earbeiten..." }, |
274 | { "&Remove","Entfe&rne" }, | 274 | { "&Remove","Entfe&rne" }, |
275 | { "Modify View: ","Ansicht ändern: " }, | 275 | { "Modify View: ","Ansicht ändern: " }, |
276 | { "Fields","Felder" }, | 276 | { "Fields","Felder" }, |
277 | { "Select Fields to Display","Wähle anzuzeigende Felder" }, | 277 | { "Select Fields to Display","Wähle anzuzeigende Felder" }, |
278 | { "All","Alles" }, | 278 | { "All","Alles" }, |
279 | { "Frequent","Frequent" }, | 279 | { "Frequent","Frequent" }, |
280 | { "Address","Adresse" }, | 280 | { "Address","Adresse" }, |
281 | { "Email","E-Mail" }, | 281 | { "Email","E-Mail" }, |
282 | { "Personal","Persönl." }, | 282 | { "Personal","Persönl." }, |
283 | { "Organization","Organisation" }, | 283 | { "Organization","Organisation" }, |
284 | { "Custom","Benutzerdefiniert" }, | 284 | { "Custom","Benutzerdefiniert" }, |
285 | { "&Selected\nfields:","&Selektierte\nFelder:" }, | 285 | { "&Selected\nfields:","&Selektierte\nFelder:" }, |
286 | { "Formatted Name","Format. Name" }, | 286 | { "Formatted Name","Format. Name" }, |
287 | { "Additional Names","Mittelname" }, | 287 | { "Additional Names","Mittelname" }, |
288 | { "Honorific Prefixes","Namensprefix" }, | 288 | { "Honorific Prefixes","Namensprefix" }, |
289 | { "Honorific Suffixes","Namenssuffix" }, | 289 | { "Honorific Suffixes","Namenssuffix" }, |
290 | { "Nick Name","Spitzname" }, | 290 | { "Nick Name","Spitzname" }, |
291 | { "Birthday","Geburtstag" }, | 291 | { "Birthday","Geburtstag" }, |
292 | { "Home Address Street","Privat Adresse Strasse" }, | 292 | { "Home Address Street","Privat Adresse Strasse" }, |
293 | { "Home Address Locality","Privat Adresse Stadt" }, | 293 | { "Home Address Locality","Privat Adresse Stadt" }, |
294 | { "Home Address Region","Privat Adresse Bundesland" }, | 294 | { "Home Address Region","Privat Adresse Bundesland" }, |
295 | { "Home Address Postal Code","Privat Adresse PLZ" }, | 295 | { "Home Address Postal Code","Privat Adresse PLZ" }, |
296 | { "Home Address Country","Privat Adresse Land" }, | 296 | { "Home Address Country","Privat Adresse Land" }, |
297 | { "Home Address Label","Privat Adresse Label" }, | 297 | { "Home Address Label","Privat Adresse Label" }, |
298 | { "Business Address Street","Büro Adresse Strasse" }, | 298 | { "Business Address Street","Büro Adresse Strasse" }, |
299 | { "Business Address Locality","Büro Adresse Stadt" }, | 299 | { "Business Address Locality","Büro Adresse Stadt" }, |
300 | { "Business Address Region","Büro Adresse Bundesland" }, | 300 | { "Business Address Region","Büro Adresse Bundesland" }, |
301 | { "Business Address Postal Code","Büro Adresse PLZ" }, | 301 | { "Business Address Postal Code","Büro Adresse PLZ" }, |
302 | { "Business Address Country","Büro Adresse Land" }, | 302 | { "Business Address Country","Büro Adresse Land" }, |
303 | { "Business Address Label","Büro Adresse Label" }, | 303 | { "Business Address Label","Büro Adresse Label" }, |
304 | { "Home Phone","Privat Telefon" }, | 304 | { "Home Phone","Privat Telefon" }, |
305 | { "Business Phone","Büro Telefon" }, | 305 | { "Business Phone","Büro Telefon" }, |
306 | { "Mobile Phone","Handy" }, | 306 | { "Mobile Phone","Handy" }, |
307 | { "Home Fax","Privat Fax" }, | 307 | { "Home Fax","Privat Fax" }, |
308 | { "Business Fax","Büro Fax" }, | 308 | { "Business Fax","Büro Fax" }, |
309 | { "Car Phone","Autotelefon" }, | 309 | { "Car Phone","Autotelefon" }, |
310 | { "ISDN","ISDN" }, | 310 | { "ISDN","ISDN" }, |
311 | { "Pager","Pager" }, | 311 | { "Pager","Pager" }, |
312 | { "Mail Client","Mail Klient" }, | 312 | { "Mail Client","Mail Klient" }, |
313 | { "Title","Titel" }, | 313 | { "Title","Titel" }, |
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index 510f4bf..792cb91 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -923,97 +923,97 @@ | |||
923 | { "Configure KO","Konfiguriere KO" }, | 923 | { "Configure KO","Konfiguriere KO" }, |
924 | { "Event text","Termin Text" }, | 924 | { "Event text","Termin Text" }, |
925 | { "ToDo","Todo" }, | 925 | { "ToDo","Todo" }, |
926 | { "Today","Heute" }, | 926 | { "Today","Heute" }, |
927 | { "What's Next View","What's Next Ansicht" }, | 927 | { "What's Next View","What's Next Ansicht" }, |
928 | { "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, | 928 | { "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, |
929 | { "Alarm","Alarm" }, | 929 | { "Alarm","Alarm" }, |
930 | { "Used %1 Client","Benutzter %1 Client" }, | 930 | { "Used %1 Client","Benutzter %1 Client" }, |
931 | { "No email client installed","Kein Email Klient installiert" }, | 931 | { "No email client installed","Kein Email Klient installiert" }, |
932 | { "Userdefined email client","Benutzerdef. Email Klient" }, | 932 | { "Userdefined email client","Benutzerdef. Email Klient" }, |
933 | { "OM/Pi email client","OM/Pi Email Klient" }, | 933 | { "OM/Pi email client","OM/Pi Email Klient" }, |
934 | { "Include in multiple ","Beziehe in multiple " }, | 934 | { "Include in multiple ","Beziehe in multiple " }, |
935 | { "calendar ","Kalender " }, | 935 | { "calendar ","Kalender " }, |
936 | { "addressbook ","Adressbuch " }, | 936 | { "addressbook ","Adressbuch " }, |
937 | { "pwmanager","PWmanager" }, | 937 | { "pwmanager","PWmanager" }, |
938 | { " sync"," Sync ein" }, | 938 | { " sync"," Sync ein" }, |
939 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, | 939 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, |
940 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, | 940 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, |
941 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, | 941 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, |
942 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, | 942 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, |
943 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, | 943 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, |
944 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, | 944 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, |
945 | { "Help...","Hilfe..." }, | 945 | { "Help...","Hilfe..." }, |
946 | { "Local file Cal:","Lokale Datei Kal:" }, | 946 | { "Local file Cal:","Lokale Datei Kal:" }, |
947 | { "Local file ABook:","Lokale Datei ABuch:" }, | 947 | { "Local file ABook:","Lokale Datei ABuch:" }, |
948 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, | 948 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, |
949 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, | 949 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, |
950 | { "Calendar:","Kalender:" }, | 950 | { "Calendar:","Kalender:" }, |
951 | { "AddressBook:","AdressBuch:" }, | 951 | { "AddressBook:","AdressBuch:" }, |
952 | { "PWManager:","PWManager:" }, | 952 | { "PWManager:","PWManager:" }, |
953 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, | 953 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, |
954 | { "ssh/scp","ssh/scp" }, | 954 | { "ssh/scp","ssh/scp" }, |
955 | { "ftp","ftp" }, | 955 | { "ftp","ftp" }, |
956 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, | 956 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, |
957 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, | 957 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, |
958 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, | 958 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, |
959 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, | 959 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, |
960 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, | 960 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, |
961 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, | 961 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, |
962 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, | 962 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, |
963 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, | 963 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, |
964 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, | 964 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, |
965 | { "Port number (Default: %1)","Port Nummer (Default: %1)" }, | 965 | { "Port number (Default: %1)","Port Nummer (Default: %1)" }, |
966 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, | 966 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, |
967 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, | 967 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, |
968 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, | 968 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, |
969 | { "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, | 969 | { "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, |
970 | { "Disable Pi-Sync","Schalte Pi-Sync aus" }, | 970 | { "Disable Pi-Sync","Schalte Pi-Sync aus" }, |
971 | { "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, | 971 | { "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen "Multi-Syncen"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, |
972 | { "KDE-Pim Sync","KDE-Pim Sync" }, | 972 | { "KDE-Pim Sync","KDE-Pim Sync" }, |
973 | { "Multiple profiles","Multi-Sync Profile" }, | 973 | { "Multiple profiles","Multi-Sync Profile" }, |
974 | { "Device: ","Gerät: " }, | 974 | { "Device: ","Gerät: " }, |
975 | { "Multiple sync started.","Multi-Sync gestartet." }, | 975 | { "Multiple sync started.","Multi-Sync gestartet." }, |
976 | { "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, | 976 | { "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, |
977 | { "Turn filter on","Schalte Filter an" }, | 977 | { "Turn filter on","Schalte Filter an" }, |
978 | { "Turn filter off","Schalte Filter aus" }, | 978 | { "Turn filter off","Schalte Filter aus" }, |
979 | { "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, | 979 | { "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, |
980 | { "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, | 980 | { "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, |
981 | { "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, | 981 | { "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, |
982 | { "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" }, | 982 | { "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" }, |
983 | { "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" }, | 983 | { "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" }, |
984 | { "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" }, | 984 | { "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" }, |
985 | { "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" }, | 985 | { "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" }, |
986 | { "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" }, | 986 | { "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" }, |
987 | { "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" }, | 987 | { "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" }, |
988 | { "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, | 988 | { "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, |
989 | { "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, | 989 | { "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, |
990 | { "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" }, | 990 | { "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" }, |
991 | { "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, | 991 | { "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, |
992 | { "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, | 992 | { "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, |
993 | { "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" }, | 993 | { "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" }, |
994 | { "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" }, | 994 | { "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" }, |
995 | { "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, | 995 | { "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, |
996 | { "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" }, | 996 | { "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" }, |
997 | { "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, | 997 | { "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, |
998 | { "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" }, | 998 | { "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" }, |
999 | { "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" }, | 999 | { "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" }, |
1000 | { "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" }, | 1000 | { "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" }, |
1001 | { "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" }, | 1001 | { "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" }, |
1002 | { "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, | 1002 | { "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, |
1003 | { "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" }, | 1003 | { "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" }, |
1004 | { "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, | 1004 | { "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, |
1005 | { "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, | 1005 | { "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, |
1006 | { "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, | 1006 | { "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, |
1007 | { "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, | 1007 | { "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, |
1008 | { "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, | 1008 | { "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, |
1009 | { "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, | 1009 | { "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, |
1010 | { "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, | 1010 | { "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, |
1011 | { "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, | 1011 | { "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, |
1012 | { "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, | 1012 | { "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, |
1013 | { "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, | 1013 | { "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, |
1014 | { "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, | 1014 | { "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, |
1015 | { "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, | 1015 | { "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, |
1016 | { "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" }, | 1016 | { "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" }, |
1017 | { "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, | 1017 | { "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, |
1018 | { "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, | 1018 | { "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, |
1019 | { "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" }, | 1019 | { "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" }, |
diff --git a/kaddressbook/addresseeeditorwidget.cpp b/kaddressbook/addresseeeditorwidget.cpp index bd32859..5334a0e 100644 --- a/kaddressbook/addresseeeditorwidget.cpp +++ b/kaddressbook/addresseeeditorwidget.cpp | |||
@@ -614,119 +614,119 @@ void AddresseeEditorWidget::setupTab2() | |||
614 | if ( QApplication::desktop()->width() == 640 ) { | 614 | if ( QApplication::desktop()->width() == 640 ) { |
615 | QHBox * nbox = new QHBox ( tab2 ); | 615 | QHBox * nbox = new QHBox ( tab2 ); |
616 | label = new QLabel( i18n( "Nick name:" )+" ", nbox ); | 616 | label = new QLabel( i18n( "Nick name:" )+" ", nbox ); |
617 | mNicknameEdit = new KLineEdit( nbox ); | 617 | mNicknameEdit = new KLineEdit( nbox ); |
618 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), | 618 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), |
619 | SLOT( textChanged( const QString& ) ) ); | 619 | SLOT( textChanged( const QString& ) ) ); |
620 | label->setBuddy( mNicknameEdit ); | 620 | label->setBuddy( mNicknameEdit ); |
621 | 621 | ||
622 | label = new QLabel( " "+i18n( "Spouse's name:" )+" ", nbox ); | 622 | label = new QLabel( " "+i18n( "Spouse's name:" )+" ", nbox ); |
623 | mSpouseEdit = new KLineEdit( nbox ); | 623 | mSpouseEdit = new KLineEdit( nbox ); |
624 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), | 624 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), |
625 | SLOT( textChanged( const QString& ) ) ); | 625 | SLOT( textChanged( const QString& ) ) ); |
626 | label->setBuddy( mSpouseEdit ); | 626 | label->setBuddy( mSpouseEdit ); |
627 | layout->addMultiCellWidget( nbox, iii, iii, 1, 2 ); | 627 | layout->addMultiCellWidget( nbox, iii, iii, 1, 2 ); |
628 | ++iii; | 628 | ++iii; |
629 | 629 | ||
630 | } else { | 630 | } else { |
631 | label = new QLabel( i18n( "Nick name:" ), tab2 ); | 631 | label = new QLabel( i18n( "Nick name:" ), tab2 ); |
632 | layout->addWidget( label, iii, 1 ); | 632 | layout->addWidget( label, iii, 1 ); |
633 | mNicknameEdit = new KLineEdit( tab2 ); | 633 | mNicknameEdit = new KLineEdit( tab2 ); |
634 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), | 634 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), |
635 | SLOT( textChanged( const QString& ) ) ); | 635 | SLOT( textChanged( const QString& ) ) ); |
636 | label->setBuddy( mNicknameEdit ); | 636 | label->setBuddy( mNicknameEdit ); |
637 | layout->addWidget( mNicknameEdit, iii, 2 ); | 637 | layout->addWidget( mNicknameEdit, iii, 2 ); |
638 | ++iii; | 638 | ++iii; |
639 | 639 | ||
640 | label = new QLabel( i18n( "Spouse's name:" ), tab2 ); | 640 | label = new QLabel( i18n( "Spouse's name:" ), tab2 ); |
641 | layout->addWidget( label, iii, 1 ); | 641 | layout->addWidget( label, iii, 1 ); |
642 | mSpouseEdit = new KLineEdit( tab2 ); | 642 | mSpouseEdit = new KLineEdit( tab2 ); |
643 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), | 643 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), |
644 | SLOT( textChanged( const QString& ) ) ); | 644 | SLOT( textChanged( const QString& ) ) ); |
645 | label->setBuddy( mSpouseEdit ); | 645 | label->setBuddy( mSpouseEdit ); |
646 | layout->addWidget( mSpouseEdit, iii, 2 ); | 646 | layout->addWidget( mSpouseEdit, iii, 2 ); |
647 | ++iii; | 647 | ++iii; |
648 | } | 648 | } |
649 | 649 | ||
650 | label = new QLabel( i18n( "Children's names:" ), tab2 ); | 650 | label = new QLabel( i18n( "Children's names:" ), tab2 ); |
651 | layout->addWidget( label, iii, 1 ); | 651 | layout->addWidget( label, iii, 1 ); |
652 | mChildEdit = new KLineEdit( tab2 ); | 652 | mChildEdit = new KLineEdit( tab2 ); |
653 | connect( mChildEdit, SIGNAL( textChanged( const QString& ) ), | 653 | connect( mChildEdit, SIGNAL( textChanged( const QString& ) ), |
654 | SLOT( textChanged( const QString& ) ) ); | 654 | SLOT( textChanged( const QString& ) ) ); |
655 | label->setBuddy( mChildEdit ); | 655 | label->setBuddy( mChildEdit ); |
656 | layout->addWidget( mChildEdit, iii, 2 ); | 656 | layout->addWidget( mChildEdit, iii, 2 ); |
657 | ++iii; | 657 | ++iii; |
658 | if ( QApplication::desktop()->width() == 640 ) { | 658 | if ( QApplication::desktop()->width() == 640 ) { |
659 | QHBox * nbox = new QHBox ( tab2 ); | 659 | QHBox * nbox = new QHBox ( tab2 ); |
660 | label = new QLabel( i18n( "Birthday:" )+" ", nbox ); | 660 | label = new QLabel( i18n( "Birthday:" )+" ", nbox ); |
661 | mBirthdayPicker = new KDateEdit( nbox ); | 661 | mBirthdayPicker = new KDateEdit( nbox ); |
662 | mBirthdayPicker->toggleDateFormat(); | 662 | //mBirthdayPicker->toggleDateFormat(); |
663 | mBirthdayPicker->setHandleInvalid( true ); | 663 | mBirthdayPicker->setHandleInvalid( true ); |
664 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), | 664 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), |
665 | SLOT( dateChanged( QDate ) ) ); | 665 | SLOT( dateChanged( QDate ) ) ); |
666 | 666 | ||
667 | label->setBuddy( mBirthdayPicker ); | 667 | label->setBuddy( mBirthdayPicker ); |
668 | 668 | ||
669 | label = new QLabel( " "+i18n( "Anniversary:" )+" ", nbox ); | 669 | label = new QLabel( " "+i18n( "Anniversary:" )+" ", nbox ); |
670 | mAnniversaryPicker = new KDateEdit( nbox ); | 670 | mAnniversaryPicker = new KDateEdit( nbox ); |
671 | mAnniversaryPicker->setHandleInvalid( true ); | 671 | mAnniversaryPicker->setHandleInvalid( true ); |
672 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), | 672 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), |
673 | SLOT( dateChanged( QDate ) ) ); | 673 | SLOT( dateChanged( QDate ) ) ); |
674 | 674 | ||
675 | label->setBuddy( mAnniversaryPicker ); | 675 | label->setBuddy( mAnniversaryPicker ); |
676 | layout->addMultiCellWidget( nbox, iii, iii, 1, 2 ); | 676 | layout->addMultiCellWidget( nbox, iii, iii, 1, 2 ); |
677 | ++iii; | 677 | ++iii; |
678 | 678 | ||
679 | } else { | 679 | } else { |
680 | 680 | ||
681 | label = new QLabel( i18n( "Birthday:" ), tab2 ); | 681 | label = new QLabel( i18n( "Birthday:" ), tab2 ); |
682 | layout->addWidget( label, iii, 1 ); | 682 | layout->addWidget( label, iii, 1 ); |
683 | mBirthdayPicker = new KDateEdit( tab2 ); | 683 | mBirthdayPicker = new KDateEdit( tab2 ); |
684 | mBirthdayPicker->toggleDateFormat(); | 684 | //mBirthdayPicker->toggleDateFormat(); |
685 | mBirthdayPicker->setHandleInvalid( true ); | 685 | mBirthdayPicker->setHandleInvalid( true ); |
686 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), | 686 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), |
687 | SLOT( dateChanged( QDate ) ) ); | 687 | SLOT( dateChanged( QDate ) ) ); |
688 | 688 | ||
689 | label->setBuddy( mBirthdayPicker ); | 689 | label->setBuddy( mBirthdayPicker ); |
690 | layout->addWidget( mBirthdayPicker, iii, 2 ); | 690 | layout->addWidget( mBirthdayPicker, iii, 2 ); |
691 | ++iii; | 691 | ++iii; |
692 | 692 | ||
693 | label = new QLabel( i18n( "Anniversary:" ), tab2 ); | 693 | label = new QLabel( i18n( "Anniversary:" ), tab2 ); |
694 | layout->addWidget( label, iii, 1 ); | 694 | layout->addWidget( label, iii, 1 ); |
695 | mAnniversaryPicker = new KDateEdit( tab2 ); | 695 | mAnniversaryPicker = new KDateEdit( tab2 ); |
696 | mAnniversaryPicker->setHandleInvalid( true ); | 696 | mAnniversaryPicker->setHandleInvalid( true ); |
697 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), | 697 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), |
698 | SLOT( dateChanged( QDate ) ) ); | 698 | SLOT( dateChanged( QDate ) ) ); |
699 | 699 | ||
700 | label->setBuddy( mAnniversaryPicker ); | 700 | label->setBuddy( mAnniversaryPicker ); |
701 | layout->addWidget( mAnniversaryPicker, iii, 2 ); | 701 | layout->addWidget( mAnniversaryPicker, iii, 2 ); |
702 | ++iii; | 702 | ++iii; |
703 | 703 | ||
704 | } | 704 | } |
705 | 705 | ||
706 | label = new QLabel( i18n( "Gender:" ), tab2 ); | 706 | label = new QLabel( i18n( "Gender:" ), tab2 ); |
707 | layout->addWidget( label, iii, 1 ); | 707 | layout->addWidget( label, iii, 1 ); |
708 | mGenderBox = new QComboBox ( tab2 ); | 708 | mGenderBox = new QComboBox ( tab2 ); |
709 | mGenderBox->insertItem ( i18n( "ALIEN (gender undefined)" )); | 709 | mGenderBox->insertItem ( i18n( "ALIEN (gender undefined)" )); |
710 | mGenderBox->insertItem ( i18n( "female" )); | 710 | mGenderBox->insertItem ( i18n( "female" )); |
711 | mGenderBox->insertItem ( i18n( "male" )); | 711 | mGenderBox->insertItem ( i18n( "male" )); |
712 | connect( mGenderBox, SIGNAL( activated ( const QString & ) ), | 712 | connect( mGenderBox, SIGNAL( activated ( const QString & ) ), |
713 | SLOT( textChanged( const QString& ) ) ); | 713 | SLOT( textChanged( const QString& ) ) ); |
714 | label->setBuddy( mGenderBox ); | 714 | label->setBuddy( mGenderBox ); |
715 | layout->addWidget( mGenderBox, iii, 2 ); | 715 | layout->addWidget( mGenderBox, iii, 2 ); |
716 | ++iii; | 716 | ++iii; |
717 | // Build the layout and add to the tab widget | 717 | // Build the layout and add to the tab widget |
718 | layout->activate(); // required | 718 | layout->activate(); // required |
719 | 719 | ||
720 | mTabWidget->addTab( tab2, i18n( "&Details" ) ); | 720 | mTabWidget->addTab( tab2, i18n( "&Details" ) ); |
721 | } | 721 | } |
722 | 722 | ||
723 | void AddresseeEditorWidget::setupTab2_1() | 723 | void AddresseeEditorWidget::setupTab2_1() |
724 | { | 724 | { |
725 | // This is the Details tab | 725 | // This is the Details tab |
726 | QWidget *tab2_2 = new QWidget( mTabWidget ); | 726 | QWidget *tab2_2 = new QWidget( mTabWidget ); |
727 | 727 | ||
728 | QGridLayout *layout = new QGridLayout( tab2_2, 1, 2 ); | 728 | QGridLayout *layout = new QGridLayout( tab2_2, 1, 2 ); |
729 | layout->setMargin( KDialogBase::marginHintSmall() ); | 729 | layout->setMargin( KDialogBase::marginHintSmall() ); |
730 | layout->setSpacing( KDialogBase::spacingHintSmall() ); | 730 | layout->setSpacing( KDialogBase::spacingHintSmall() ); |
731 | 731 | ||
732 | QLabel *label; | 732 | QLabel *label; |
@@ -1034,98 +1034,96 @@ void AddresseeEditorWidget::load() | |||
1034 | 1034 | ||
1035 | mGeoWidget->setGeo( mAddressee.geo() ); | 1035 | mGeoWidget->setGeo( mAddressee.geo() ); |
1036 | mImageWidget->setPhoto( mAddressee.photo() ); | 1036 | mImageWidget->setPhoto( mAddressee.photo() ); |
1037 | mImageWidget->setLogo( mAddressee.logo() ); | 1037 | mImageWidget->setLogo( mAddressee.logo() ); |
1038 | mKeyWidget->setKeys( mAddressee.keys() ); | 1038 | mKeyWidget->setKeys( mAddressee.keys() ); |
1039 | mSecrecyWidget->setSecrecy( mAddressee.secrecy() ); | 1039 | mSecrecyWidget->setSecrecy( mAddressee.secrecy() ); |
1040 | #ifndef KAB_EMBEDDED | 1040 | #ifndef KAB_EMBEDDED |
1041 | mSoundWidget->setSound( mAddressee.sound() ); | 1041 | mSoundWidget->setSound( mAddressee.sound() ); |
1042 | #else //KAB_EMBEDDED | 1042 | #else //KAB_EMBEDDED |
1043 | //US qDebug("AddresseeEditorWidget::load has to be changed 2"); | 1043 | //US qDebug("AddresseeEditorWidget::load has to be changed 2"); |
1044 | #endif //KAB_EMBEDDED | 1044 | #endif //KAB_EMBEDDED |
1045 | 1045 | ||
1046 | // Load customs | 1046 | // Load customs |
1047 | mIMAddressEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-IMAddress" ) ); | 1047 | mIMAddressEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-IMAddress" ) ); |
1048 | mSpouseEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ) ); | 1048 | mSpouseEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ) ); |
1049 | mChildEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Children" ) ); | 1049 | mChildEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Children" ) ); |
1050 | mManagerEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" ) ); | 1050 | mManagerEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" ) ); |
1051 | mAssistantEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" ) ); | 1051 | mAssistantEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" ) ); |
1052 | mDepartmentEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Department" ) ); | 1052 | mDepartmentEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Department" ) ); |
1053 | mOfficeEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Office" ) ); | 1053 | mOfficeEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Office" ) ); |
1054 | mProfessionEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Profession" ) ); | 1054 | mProfessionEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Profession" ) ); |
1055 | QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); | 1055 | QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); |
1056 | if ( gen == "female" ) | 1056 | if ( gen == "female" ) |
1057 | mGenderBox->setCurrentItem ( 1 ); | 1057 | mGenderBox->setCurrentItem ( 1 ); |
1058 | else if ( gen == "male" ) | 1058 | else if ( gen == "male" ) |
1059 | mGenderBox->setCurrentItem ( 2 ); | 1059 | mGenderBox->setCurrentItem ( 2 ); |
1060 | else | 1060 | else |
1061 | mGenderBox->setCurrentItem ( 0 ); | 1061 | mGenderBox->setCurrentItem ( 0 ); |
1062 | blockSignals( block ); | 1062 | blockSignals( block ); |
1063 | mBlockSignals = false; | 1063 | mBlockSignals = false; |
1064 | 1064 | ||
1065 | mDirty = false; | 1065 | mDirty = false; |
1066 | } | 1066 | } |
1067 | 1067 | ||
1068 | void AddresseeEditorWidget::save() | 1068 | void AddresseeEditorWidget::save() |
1069 | { | 1069 | { |
1070 | if ( !dirty() ) { | 1070 | if ( !dirty() ) { |
1071 | return; | 1071 | return; |
1072 | } | 1072 | } |
1073 | 1073 | ||
1074 | mAddressee.setRevision( QDateTime::currentDateTime() ); | 1074 | mAddressee.setRevision( QDateTime::currentDateTime() ); |
1075 | 1075 | ||
1076 | mAddressee.setRole( mRoleEdit->text() ); | 1076 | mAddressee.setRole( mRoleEdit->text() ); |
1077 | mAddressee.setOrganization( mOrgEdit->text() ); | 1077 | mAddressee.setOrganization( mOrgEdit->text() ); |
1078 | mAddressee.setUrl( KURL( mURLEdit->text() ) ); | 1078 | mAddressee.setUrl( KURL( mURLEdit->text() ) ); |
1079 | mAddressee.setNote( mNoteEdit->text() ); | 1079 | mAddressee.setNote( mNoteEdit->text() ); |
1080 | if ( mBirthdayPicker->inputIsValid() ) { | 1080 | if ( mBirthdayPicker->inputIsValid() ) { |
1081 | QDate da = mBirthdayPicker->date(); | 1081 | QDate da = mBirthdayPicker->date(); |
1082 | if ( da > QDate::currentDate() ) | ||
1083 | da.setYMD(da.year()-100, da.month(), da.day() ); | ||
1084 | mAddressee.setBirthday( QDateTime( da ) ); | 1082 | mAddressee.setBirthday( QDateTime( da ) ); |
1085 | //qDebug("bday %s ",da.toString().latin1()); | 1083 | //qDebug("bday %s ",da.toString().latin1()); |
1086 | } | 1084 | } |
1087 | else { | 1085 | else { |
1088 | mAddressee.setBirthday( QDateTime() ); | 1086 | mAddressee.setBirthday( QDateTime() ); |
1089 | mBirthdayPicker->clear(); | 1087 | mBirthdayPicker->clear(); |
1090 | } | 1088 | } |
1091 | mAddressee.setNickName( mNicknameEdit->text() ); | 1089 | mAddressee.setNickName( mNicknameEdit->text() ); |
1092 | mAddressee.setCategories( QStringList::split( ",", mCategoryEdit->text() ) ); | 1090 | mAddressee.setCategories( QStringList::split( ",", mCategoryEdit->text() ) ); |
1093 | 1091 | ||
1094 | mAddressee.setGeo( mGeoWidget->geo() ); | 1092 | mAddressee.setGeo( mGeoWidget->geo() ); |
1095 | mAddressee.setPhoto( mImageWidget->photo() ); | 1093 | mAddressee.setPhoto( mImageWidget->photo() ); |
1096 | mAddressee.setLogo( mImageWidget->logo() ); | 1094 | mAddressee.setLogo( mImageWidget->logo() ); |
1097 | mAddressee.setKeys( mKeyWidget->keys() ); | 1095 | mAddressee.setKeys( mKeyWidget->keys() ); |
1098 | #ifndef KAB_EMBEDDED | 1096 | #ifndef KAB_EMBEDDED |
1099 | mAddressee.setSound( mSoundWidget->sound() ); | 1097 | mAddressee.setSound( mSoundWidget->sound() ); |
1100 | #else //KAB_EMBEDDED | 1098 | #else //KAB_EMBEDDED |
1101 | //US qDebug("AddresseeEditorWidget::save sound not supported"); | 1099 | //US qDebug("AddresseeEditorWidget::save sound not supported"); |
1102 | #endif //KAB_EMBEDDED | 1100 | #endif //KAB_EMBEDDED |
1103 | mAddressee.setSecrecy( mSecrecyWidget->secrecy() ); | 1101 | mAddressee.setSecrecy( mSecrecyWidget->secrecy() ); |
1104 | 1102 | ||
1105 | // save custom fields | 1103 | // save custom fields |
1106 | mAddressee.insertCustom( "KADDRESSBOOK", "X-IMAddress", mIMAddressEdit->text() ); | 1104 | mAddressee.insertCustom( "KADDRESSBOOK", "X-IMAddress", mIMAddressEdit->text() ); |
1107 | mAddressee.insertCustom( "KADDRESSBOOK", "X-SpousesName", mSpouseEdit->text() ); | 1105 | mAddressee.insertCustom( "KADDRESSBOOK", "X-SpousesName", mSpouseEdit->text() ); |
1108 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Children", mChildEdit->text() ); | 1106 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Children", mChildEdit->text() ); |
1109 | mAddressee.insertCustom( "KADDRESSBOOK", "X-ManagersName", mManagerEdit->text() ); | 1107 | mAddressee.insertCustom( "KADDRESSBOOK", "X-ManagersName", mManagerEdit->text() ); |
1110 | mAddressee.insertCustom( "KADDRESSBOOK", "X-AssistantsName", mAssistantEdit->text() ); | 1108 | mAddressee.insertCustom( "KADDRESSBOOK", "X-AssistantsName", mAssistantEdit->text() ); |
1111 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Department", mDepartmentEdit->text() ); | 1109 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Department", mDepartmentEdit->text() ); |
1112 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Office", mOfficeEdit->text() ); | 1110 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Office", mOfficeEdit->text() ); |
1113 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Profession", mProfessionEdit->text() ); | 1111 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Profession", mProfessionEdit->text() ); |
1114 | if ( mAnniversaryPicker->inputIsValid() ) { | 1112 | if ( mAnniversaryPicker->inputIsValid() ) { |
1115 | QString dt = KGlobal::locale()->formatDate(mAnniversaryPicker->date(), true, KLocale::ISODate); | 1113 | QString dt = KGlobal::locale()->formatDate(mAnniversaryPicker->date(), true, KLocale::ISODate); |
1116 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); | 1114 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); |
1117 | } | 1115 | } |
1118 | else { | 1116 | else { |
1119 | mAddressee.removeCustom( "KADDRESSBOOK", "X-Anniversary" ); | 1117 | mAddressee.removeCustom( "KADDRESSBOOK", "X-Anniversary" ); |
1120 | mAnniversaryPicker->clear(); | 1118 | mAnniversaryPicker->clear(); |
1121 | } | 1119 | } |
1122 | int gen = mGenderBox->currentItem (); | 1120 | int gen = mGenderBox->currentItem (); |
1123 | if ( gen == 1 ) | 1121 | if ( gen == 1 ) |
1124 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); | 1122 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); |
1125 | else if ( gen == 2 ) | 1123 | else if ( gen == 2 ) |
1126 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); | 1124 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); |
1127 | else | 1125 | else |
1128 | mAddressee.removeCustom( "KADDRESSBOOK", "X-Gender" ); | 1126 | mAddressee.removeCustom( "KADDRESSBOOK", "X-Gender" ); |
1129 | 1127 | ||
1130 | // Save the email addresses | 1128 | // Save the email addresses |
1131 | QStringList emails = mAddressee.emails(); | 1129 | QStringList emails = mAddressee.emails(); |
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 3715786..046cb63 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -330,96 +330,97 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const | |||
330 | mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, | 330 | mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, |
331 | "X-IMAddress", "KADDRESSBOOK" ); | 331 | "X-IMAddress", "KADDRESSBOOK" ); |
332 | mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, | 332 | mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, |
333 | "X-Anniversary", "KADDRESSBOOK" ); | 333 | "X-Anniversary", "KADDRESSBOOK" ); |
334 | 334 | ||
335 | //US added this field to become compatible with Opie/qtopia addressbook | 335 | //US added this field to become compatible with Opie/qtopia addressbook |
336 | // values can be "female" or "male" or "". An empty field represents undefined. | 336 | // values can be "female" or "male" or "". An empty field represents undefined. |
337 | mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, | 337 | mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, |
338 | "X-Gender", "KADDRESSBOOK" ); | 338 | "X-Gender", "KADDRESSBOOK" ); |
339 | mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, | 339 | mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, |
340 | "X-Children", "KADDRESSBOOK" ); | 340 | "X-Children", "KADDRESSBOOK" ); |
341 | mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, | 341 | mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, |
342 | "X-FreeBusyUrl", "KADDRESSBOOK" ); | 342 | "X-FreeBusyUrl", "KADDRESSBOOK" ); |
343 | #endif | 343 | #endif |
344 | initGUI(); | 344 | initGUI(); |
345 | 345 | ||
346 | mIncSearchWidget->setFocus(); | 346 | mIncSearchWidget->setFocus(); |
347 | 347 | ||
348 | 348 | ||
349 | connect( mViewManager, SIGNAL( selected( const QString& ) ), | 349 | connect( mViewManager, SIGNAL( selected( const QString& ) ), |
350 | SLOT( setContactSelected( const QString& ) ) ); | 350 | SLOT( setContactSelected( const QString& ) ) ); |
351 | connect( mViewManager, SIGNAL( executed( const QString& ) ), | 351 | connect( mViewManager, SIGNAL( executed( const QString& ) ), |
352 | SLOT( executeContact( const QString& ) ) ); | 352 | SLOT( executeContact( const QString& ) ) ); |
353 | 353 | ||
354 | connect( mViewManager, SIGNAL( deleteRequest( ) ), | 354 | connect( mViewManager, SIGNAL( deleteRequest( ) ), |
355 | SLOT( deleteContacts( ) ) ); | 355 | SLOT( deleteContacts( ) ) ); |
356 | connect( mViewManager, SIGNAL( modified() ), | 356 | connect( mViewManager, SIGNAL( modified() ), |
357 | SLOT( setModified() ) ); | 357 | SLOT( setModified() ) ); |
358 | 358 | ||
359 | connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); | 359 | connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); |
360 | connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); | 360 | connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); |
361 | 361 | ||
362 | connect( mXXPortManager, SIGNAL( modified() ), | 362 | connect( mXXPortManager, SIGNAL( modified() ), |
363 | SLOT( setModified() ) ); | 363 | SLOT( setModified() ) ); |
364 | 364 | ||
365 | connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), | 365 | connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), |
366 | SLOT( incrementalSearchJump( const QString& ) ) ); | 366 | SLOT( incrementalSearchJump( const QString& ) ) ); |
367 | connect( mIncSearchWidget, SIGNAL( fieldChanged() ), | 367 | connect( mIncSearchWidget, SIGNAL( fieldChanged() ), |
368 | mJumpButtonBar, SLOT( recreateButtons() ) ); | 368 | mJumpButtonBar, SLOT( recreateButtons() ) ); |
369 | 369 | ||
370 | connect( mDetails, SIGNAL( sendEmail( const QString& ) ), | 370 | connect( mDetails, SIGNAL( sendEmail( const QString& ) ), |
371 | SLOT( sendMail( const QString& ) ) ); | 371 | SLOT( sendMail( const QString& ) ) ); |
372 | 372 | ||
373 | 373 | ||
374 | connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); | 374 | connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); |
375 | 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&))); | 375 | 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&))); |
376 | connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); | 376 | connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); |
377 | connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle())); | 377 | connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle())); |
378 | connect( ExternalAppHandler::instance(), SIGNAL (doRingSync()),this, SLOT( doRingSync())); | ||
378 | connect( ExternalAppHandler::instance(), SIGNAL (callContactdialog()),this, SLOT(callContactdialog())); | 379 | connect( ExternalAppHandler::instance(), SIGNAL (callContactdialog()),this, SLOT(callContactdialog())); |
379 | 380 | ||
380 | 381 | ||
381 | #ifndef KAB_EMBEDDED | 382 | #ifndef KAB_EMBEDDED |
382 | connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), | 383 | connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), |
383 | mXXPortManager, SLOT( importVCard( const KURL& ) ) ); | 384 | mXXPortManager, SLOT( importVCard( const KURL& ) ) ); |
384 | 385 | ||
385 | connect( mDetails, SIGNAL( browse( const QString& ) ), | 386 | connect( mDetails, SIGNAL( browse( const QString& ) ), |
386 | SLOT( browse( const QString& ) ) ); | 387 | SLOT( browse( const QString& ) ) ); |
387 | 388 | ||
388 | 389 | ||
389 | mAddressBookService = new KAddressBookService( this ); | 390 | mAddressBookService = new KAddressBookService( this ); |
390 | 391 | ||
391 | #endif //KAB_EMBEDDED | 392 | #endif //KAB_EMBEDDED |
392 | 393 | ||
393 | mMessageTimer = new QTimer( this ); | 394 | mMessageTimer = new QTimer( this ); |
394 | connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); | 395 | connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); |
395 | mEditorDialog = 0; | 396 | mEditorDialog = 0; |
396 | createAddresseeEditorDialog( this ); | 397 | createAddresseeEditorDialog( this ); |
397 | setModified( false ); | 398 | setModified( false ); |
398 | mBRdisabled = false; | 399 | mBRdisabled = false; |
399 | #ifndef DESKTOP_VERSION | 400 | #ifndef DESKTOP_VERSION |
400 | infrared = 0; | 401 | infrared = 0; |
401 | #endif | 402 | #endif |
402 | //toggleBeamReceive( ); | 403 | //toggleBeamReceive( ); |
403 | mMainWindow->toolBar()->show(); | 404 | mMainWindow->toolBar()->show(); |
404 | // we have a toolbar repainting error on the Zaurus when starting KA/Pi | 405 | // we have a toolbar repainting error on the Zaurus when starting KA/Pi |
405 | QTimer::singleShot( 10, this , SLOT ( updateToolBar())); | 406 | QTimer::singleShot( 10, this , SLOT ( updateToolBar())); |
406 | } | 407 | } |
407 | 408 | ||
408 | void KABCore::updateToolBar() | 409 | void KABCore::updateToolBar() |
409 | { | 410 | { |
410 | static int iii = 0; | 411 | static int iii = 0; |
411 | ++iii; | 412 | ++iii; |
412 | mMainWindow->toolBar()->repaintMe(); | 413 | mMainWindow->toolBar()->repaintMe(); |
413 | if ( iii < 4 ) | 414 | if ( iii < 4 ) |
414 | QTimer::singleShot( 100*iii, this , SLOT ( updateToolBar())); | 415 | QTimer::singleShot( 100*iii, this , SLOT ( updateToolBar())); |
415 | } | 416 | } |
416 | KABCore::~KABCore() | 417 | KABCore::~KABCore() |
417 | { | 418 | { |
418 | // save(); | 419 | // save(); |
419 | //saveSettings(); | 420 | //saveSettings(); |
420 | //KABPrefs::instance()->writeConfig(); | 421 | //KABPrefs::instance()->writeConfig(); |
421 | delete AddresseeConfig::instance(); | 422 | delete AddresseeConfig::instance(); |
422 | mAddressBook = 0; | 423 | mAddressBook = 0; |
423 | KABC::StdAddressBook::close(); | 424 | KABC::StdAddressBook::close(); |
424 | 425 | ||
425 | delete syncManager; | 426 | delete syncManager; |
@@ -2535,96 +2536,100 @@ void KABCore::configureResources() | |||
2535 | if ( !dlg.exec() ) | 2536 | if ( !dlg.exec() ) |
2536 | return; | 2537 | return; |
2537 | KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); | 2538 | KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); |
2538 | } | 2539 | } |
2539 | #endif //KAB_EMBEDDED | 2540 | #endif //KAB_EMBEDDED |
2540 | 2541 | ||
2541 | 2542 | ||
2542 | /* this method will be called through the QCop interface from Ko/Pi to select addresses | 2543 | /* this method will be called through the QCop interface from Ko/Pi to select addresses |
2543 | * for the attendees list of an event. | 2544 | * for the attendees list of an event. |
2544 | */ | 2545 | */ |
2545 | void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) | 2546 | void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) |
2546 | { | 2547 | { |
2547 | qDebug("KABCore::requestForNameEmailUidList "); | 2548 | qDebug("KABCore::requestForNameEmailUidList "); |
2548 | bool ok = false; | 2549 | bool ok = false; |
2549 | mEmailSourceChannel = sourceChannel; | 2550 | mEmailSourceChannel = sourceChannel; |
2550 | mEmailSourceUID = uid; | 2551 | mEmailSourceUID = uid; |
2551 | QTimer::singleShot( 10,this, SLOT ( callContactdialog() ) ); | 2552 | QTimer::singleShot( 10,this, SLOT ( callContactdialog() ) ); |
2552 | //callContactdialog(); | 2553 | //callContactdialog(); |
2553 | #if 0 | 2554 | #if 0 |
2554 | int wid = uid.toInt( &ok ); | 2555 | int wid = uid.toInt( &ok ); |
2555 | qDebug("UID %s ", uid.latin1()); | 2556 | qDebug("UID %s ", uid.latin1()); |
2556 | if ( ok ) { | 2557 | if ( ok ) { |
2557 | if ( wid != QApplication::desktop()->width() ) { | 2558 | if ( wid != QApplication::desktop()->width() ) { |
2558 | qDebug("KA/Pi: Request from different desktop geometry. Resizing ..."); | 2559 | qDebug("KA/Pi: Request from different desktop geometry. Resizing ..."); |
2559 | message( i18n("Resizing, please wait...") ); | 2560 | message( i18n("Resizing, please wait...") ); |
2560 | mMainWindow->showMinimized(); | 2561 | mMainWindow->showMinimized(); |
2561 | /* | 2562 | /* |
2562 | { | 2563 | { |
2563 | QCopEnvelope e("QPE/Application/kapi", "callContactdialog()"); | 2564 | QCopEnvelope e("QPE/Application/kapi", "callContactdialog()"); |
2564 | } | 2565 | } |
2565 | */ | 2566 | */ |
2566 | QTimer::singleShot( 1,this, SLOT ( resizeAndCallContactdialog() ) ); | 2567 | QTimer::singleShot( 1,this, SLOT ( resizeAndCallContactdialog() ) ); |
2567 | return; | 2568 | return; |
2568 | } | 2569 | } |
2569 | 2570 | ||
2570 | } else { | 2571 | } else { |
2571 | qDebug("KABCore::requestForNameEmailUidList:: Got invalid uid "); | 2572 | qDebug("KABCore::requestForNameEmailUidList:: Got invalid uid "); |
2572 | } | 2573 | } |
2573 | callContactdialog(); | 2574 | callContactdialog(); |
2574 | //QCopEnvelope e("QPE/Application/kapi", "callContactdialog()"); | 2575 | //QCopEnvelope e("QPE/Application/kapi", "callContactdialog()"); |
2575 | #endif | 2576 | #endif |
2576 | } | 2577 | } |
2577 | void KABCore::resizeAndCallContactdialog() | 2578 | void KABCore::resizeAndCallContactdialog() |
2578 | { | 2579 | { |
2579 | updateMainWindow(); | 2580 | updateMainWindow(); |
2580 | QTimer::singleShot( 10,this, SLOT ( callContactdialog() ) ); | 2581 | QTimer::singleShot( 10,this, SLOT ( callContactdialog() ) ); |
2581 | } | 2582 | } |
2582 | 2583 | ||
2584 | void KABCore::doRingSync() | ||
2585 | { | ||
2586 | syncManager->multiSync( false ); | ||
2587 | } | ||
2583 | void KABCore::callContactdialog() | 2588 | void KABCore::callContactdialog() |
2584 | { | 2589 | { |
2585 | static bool running = false; | 2590 | static bool running = false; |
2586 | if (running) return; | 2591 | if (running) return; |
2587 | running = true; | 2592 | running = true; |
2588 | QStringList nameList; | 2593 | QStringList nameList; |
2589 | QStringList emailList; | 2594 | QStringList emailList; |
2590 | QStringList uidList; | 2595 | QStringList uidList; |
2591 | qDebug(" KABCore::callContactdialog:DESKTOP WIDTH %d ", QApplication::desktop()->width() ); | 2596 | qDebug(" KABCore::callContactdialog:DESKTOP WIDTH %d ", QApplication::desktop()->width() ); |
2592 | KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); | 2597 | KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); |
2593 | uint i=0; | 2598 | uint i=0; |
2594 | for (i=0; i < list.count(); i++) | 2599 | for (i=0; i < list.count(); i++) |
2595 | { | 2600 | { |
2596 | nameList.append(list[i].realName()); | 2601 | nameList.append(list[i].realName()); |
2597 | emailList.append(list[i].preferredEmail()); | 2602 | emailList.append(list[i].preferredEmail()); |
2598 | uidList.append(list[i].uid()); | 2603 | uidList.append(list[i].uid()); |
2599 | } | 2604 | } |
2600 | QString uid = mEmailSourceUID; | 2605 | QString uid = mEmailSourceUID; |
2601 | //qDebug("%s %s ", sourceChannel.latin1(), uid.latin1()); | 2606 | //qDebug("%s %s ", sourceChannel.latin1(), uid.latin1()); |
2602 | bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(mEmailSourceChannel, uid, nameList, emailList, uidList); | 2607 | bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(mEmailSourceChannel, uid, nameList, emailList, uidList); |
2603 | running = false; | 2608 | running = false; |
2604 | } | 2609 | } |
2605 | /* this method will be called through the QCop interface from Ko/Pi to select birthdays | 2610 | /* this method will be called through the QCop interface from Ko/Pi to select birthdays |
2606 | * to put them into the calendar. | 2611 | * to put them into the calendar. |
2607 | */ | 2612 | */ |
2608 | void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) | 2613 | void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) |
2609 | { | 2614 | { |
2610 | // qDebug("KABCore::requestForBirthdayList"); | 2615 | // qDebug("KABCore::requestForBirthdayList"); |
2611 | QStringList birthdayList; | 2616 | QStringList birthdayList; |
2612 | QStringList anniversaryList; | 2617 | QStringList anniversaryList; |
2613 | QStringList realNameList; | 2618 | QStringList realNameList; |
2614 | QStringList preferredEmailList; | 2619 | QStringList preferredEmailList; |
2615 | QStringList assembledNameList; | 2620 | QStringList assembledNameList; |
2616 | QStringList uidList; | 2621 | QStringList uidList; |
2617 | 2622 | ||
2618 | KABC::AddressBook::Iterator it; | 2623 | KABC::AddressBook::Iterator it; |
2619 | 2624 | ||
2620 | int count = 0; | 2625 | int count = 0; |
2621 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { | 2626 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { |
2622 | ++count; | 2627 | ++count; |
2623 | } | 2628 | } |
2624 | QProgressBar bar(count,0 ); | 2629 | QProgressBar bar(count,0 ); |
2625 | int w = 300; | 2630 | int w = 300; |
2626 | if ( QApplication::desktop()->width() < 320 ) | 2631 | if ( QApplication::desktop()->width() < 320 ) |
2627 | w = 220; | 2632 | w = 220; |
2628 | int h = bar.sizeHint().height() ; | 2633 | int h = bar.sizeHint().height() ; |
2629 | int dw = QApplication::desktop()->width(); | 2634 | int dw = QApplication::desktop()->width(); |
2630 | int dh = QApplication::desktop()->height(); | 2635 | int dh = QApplication::desktop()->height(); |
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index 6479a58..ceeeda7 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h | |||
@@ -328,96 +328,97 @@ class KABCore : public QWidget, public KSyncInterface | |||
328 | */ | 328 | */ |
329 | void openConfigDialog(); | 329 | void openConfigDialog(); |
330 | void openConfigGlobalDialog(); | 330 | void openConfigGlobalDialog(); |
331 | 331 | ||
332 | /** | 332 | /** |
333 | Launches the ldap search dialog. | 333 | Launches the ldap search dialog. |
334 | */ | 334 | */ |
335 | void openLDAPDialog(); | 335 | void openLDAPDialog(); |
336 | 336 | ||
337 | /** | 337 | /** |
338 | Creates a KAddressBookPrinter, which will display the print | 338 | Creates a KAddressBookPrinter, which will display the print |
339 | dialog and do the printing. | 339 | dialog and do the printing. |
340 | */ | 340 | */ |
341 | void print(); | 341 | void print(); |
342 | 342 | ||
343 | /** | 343 | /** |
344 | Registers a new GUI client, so plugins can register its actions. | 344 | Registers a new GUI client, so plugins can register its actions. |
345 | */ | 345 | */ |
346 | void addGUIClient( KXMLGUIClient *client ); | 346 | void addGUIClient( KXMLGUIClient *client ); |
347 | 347 | ||
348 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); | 348 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); |
349 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); | 349 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); |
350 | void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); | 350 | void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); |
351 | 351 | ||
352 | 352 | ||
353 | signals: | 353 | signals: |
354 | void contactSelected( const QString &name ); | 354 | void contactSelected( const QString &name ); |
355 | void contactSelected( const QPixmap &pixmap ); | 355 | void contactSelected( const QPixmap &pixmap ); |
356 | public slots: | 356 | public slots: |
357 | void recieve(QString cmsg ); | 357 | void recieve(QString cmsg ); |
358 | void getFile( bool success ); | 358 | void getFile( bool success ); |
359 | void syncFileRequest(); | 359 | void syncFileRequest(); |
360 | void setDetailsVisible( bool visible ); | 360 | void setDetailsVisible( bool visible ); |
361 | void setDetailsToState(); | 361 | void setDetailsToState(); |
362 | 362 | ||
363 | void saveSettings(); | 363 | void saveSettings(); |
364 | 364 | ||
365 | private slots: | 365 | private slots: |
366 | void updateToolBar(); | 366 | void updateToolBar(); |
367 | void updateMainWindow(); | 367 | void updateMainWindow(); |
368 | void receive( const QCString& cmsg, const QByteArray& data ); | 368 | void receive( const QCString& cmsg, const QByteArray& data ); |
369 | void toggleBeamReceive( ); | 369 | void toggleBeamReceive( ); |
370 | void disableBR(bool); | 370 | void disableBR(bool); |
371 | void setJumpButtonBarVisible( bool visible ); | 371 | void setJumpButtonBarVisible( bool visible ); |
372 | void setJumpButtonBar( bool visible ); | 372 | void setJumpButtonBar( bool visible ); |
373 | void setCaptionBack(); | 373 | void setCaptionBack(); |
374 | void resizeAndCallContactdialog(); | 374 | void resizeAndCallContactdialog(); |
375 | void callContactdialog(); | 375 | void callContactdialog(); |
376 | void doRingSync(); | ||
376 | 377 | ||
377 | void importFromOL(); | 378 | void importFromOL(); |
378 | void extensionModified( const KABC::Addressee::List &list ); | 379 | void extensionModified( const KABC::Addressee::List &list ); |
379 | void extensionChanged( int id ); | 380 | void extensionChanged( int id ); |
380 | void clipboardDataChanged(); | 381 | void clipboardDataChanged(); |
381 | void updateActionMenu(); | 382 | void updateActionMenu(); |
382 | void configureKeyBindings(); | 383 | void configureKeyBindings(); |
383 | void removeVoice(); | 384 | void removeVoice(); |
384 | void setFormattedName(); | 385 | void setFormattedName(); |
385 | #ifdef KAB_EMBEDDED | 386 | #ifdef KAB_EMBEDDED |
386 | void configureResources(); | 387 | void configureResources(); |
387 | #endif //KAB_EMBEDDED | 388 | #endif //KAB_EMBEDDED |
388 | 389 | ||
389 | void slotEditorDestroyed( const QString &uid ); | 390 | void slotEditorDestroyed( const QString &uid ); |
390 | void configurationChanged(); | 391 | void configurationChanged(); |
391 | void addressBookChanged(); | 392 | void addressBookChanged(); |
392 | 393 | ||
393 | private: | 394 | private: |
394 | QString mEmailSourceChannel; | 395 | QString mEmailSourceChannel; |
395 | QString mEmailSourceUID; | 396 | QString mEmailSourceUID; |
396 | void resizeEvent(QResizeEvent* e ); | 397 | void resizeEvent(QResizeEvent* e ); |
397 | bool mBRdisabled; | 398 | bool mBRdisabled; |
398 | #ifndef DESKTOP_VERSION | 399 | #ifndef DESKTOP_VERSION |
399 | QCopChannel* infrared; | 400 | QCopChannel* infrared; |
400 | #endif | 401 | #endif |
401 | QTimer *mMessageTimer; | 402 | QTimer *mMessageTimer; |
402 | void initGUI(); | 403 | void initGUI(); |
403 | void initActions(); | 404 | void initActions(); |
404 | QString getPhoneFile(); | 405 | QString getPhoneFile(); |
405 | 406 | ||
406 | AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, | 407 | AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, |
407 | const char *name = 0 ); | 408 | const char *name = 0 ); |
408 | 409 | ||
409 | KXMLGUIClient *mGUIClient; | 410 | KXMLGUIClient *mGUIClient; |
410 | 411 | ||
411 | KABC::AddressBook *mAddressBook; | 412 | KABC::AddressBook *mAddressBook; |
412 | 413 | ||
413 | ViewManager *mViewManager; | 414 | ViewManager *mViewManager; |
414 | // QSplitter *mDetailsSplitter; | 415 | // QSplitter *mDetailsSplitter; |
415 | KDGanttMinimizeSplitter *mExtensionBarSplitter; | 416 | KDGanttMinimizeSplitter *mExtensionBarSplitter; |
416 | ViewContainer *mDetails; | 417 | ViewContainer *mDetails; |
417 | KDGanttMinimizeSplitter* mMiniSplitter; | 418 | KDGanttMinimizeSplitter* mMiniSplitter; |
418 | XXPortManager *mXXPortManager; | 419 | XXPortManager *mXXPortManager; |
419 | JumpButtonBar *mJumpButtonBar; | 420 | JumpButtonBar *mJumpButtonBar; |
420 | IncSearchWidget *mIncSearchWidget; | 421 | IncSearchWidget *mIncSearchWidget; |
421 | ExtensionManager *mExtensionManager; | 422 | ExtensionManager *mExtensionManager; |
422 | 423 | ||
423 | KCMultiDialog *mConfigureDialog; | 424 | KCMultiDialog *mConfigureDialog; |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 68233e8..d8373a6 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -520,151 +520,164 @@ void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) | |||
520 | 520 | ||
521 | if ( cmsg == "setDocument(QString)" ) { | 521 | if ( cmsg == "setDocument(QString)" ) { |
522 | QDataStream stream( data, IO_ReadOnly ); | 522 | QDataStream stream( data, IO_ReadOnly ); |
523 | QString fileName; | 523 | QString fileName; |
524 | stream >> fileName; | 524 | stream >> fileName; |
525 | //qDebug("filename %s ", fileName.latin1()); | 525 | //qDebug("filename %s ", fileName.latin1()); |
526 | showMaximized(); | 526 | showMaximized(); |
527 | raise(); | 527 | raise(); |
528 | KOPrefs::instance()->mLastSyncedLocalFile = fileName ; | 528 | KOPrefs::instance()->mLastSyncedLocalFile = fileName ; |
529 | mSyncManager->slotSyncMenu( 1002 ); | 529 | mSyncManager->slotSyncMenu( 1002 ); |
530 | return; | 530 | return; |
531 | } | 531 | } |
532 | 532 | ||
533 | if ( cmsg == "-writeFile" ) { | 533 | if ( cmsg == "-writeFile" ) { |
534 | // I made from the "-writeFile" an "-writeAlarm" | 534 | // I made from the "-writeFile" an "-writeAlarm" |
535 | mView->viewManager()->showWhatsNextView(); | 535 | mView->viewManager()->showWhatsNextView(); |
536 | mCalendar->checkAlarmForIncidence( 0, true); | 536 | mCalendar->checkAlarmForIncidence( 0, true); |
537 | showMaximized(); | 537 | showMaximized(); |
538 | raise(); | 538 | raise(); |
539 | return; | 539 | return; |
540 | 540 | ||
541 | } | 541 | } |
542 | if ( cmsg == "-writeFileSilent" ) { | 542 | if ( cmsg == "-writeFileSilent" ) { |
543 | // I made from the "-writeFile" an "-writeAlarm" | 543 | // I made from the "-writeFile" an "-writeAlarm" |
544 | // mView->viewManager()->showWhatsNextView(); | 544 | // mView->viewManager()->showWhatsNextView(); |
545 | mCalendar->checkAlarmForIncidence( 0, true); | 545 | mCalendar->checkAlarmForIncidence( 0, true); |
546 | //showMaximized(); | 546 | //showMaximized(); |
547 | //raise(); | 547 | //raise(); |
548 | hide(); | 548 | hide(); |
549 | return; | 549 | return; |
550 | } | 550 | } |
551 | if ( cmsg == "-newCountdown" ) { | 551 | if ( cmsg == "-newCountdown" ) { |
552 | qDebug("newCountdown "); | 552 | qDebug("newCountdown "); |
553 | 553 | ||
554 | } | 554 | } |
555 | QString msg ; | 555 | QString msg ; |
556 | QString allmsg = cmsg; | 556 | QString allmsg = cmsg; |
557 | while ( allmsg.length() > 0 ) { | 557 | while ( allmsg.length() > 0 ) { |
558 | int nextC = allmsg.find( "-", 1 ); | 558 | int nextC = allmsg.find( "-", 1 ); |
559 | if ( nextC == -1 ) { | 559 | if ( nextC == -1 ) { |
560 | msg = allmsg; | 560 | msg = allmsg; |
561 | allmsg = ""; | 561 | allmsg = ""; |
562 | } else{ | 562 | } else{ |
563 | msg = allmsg.left( nextC ); | 563 | msg = allmsg.left( nextC ); |
564 | allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); | 564 | allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); |
565 | } | 565 | } |
566 | //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); | 566 | //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); |
567 | if ( msg == "-newEvent" ) { | 567 | if ( msg == "-newEvent" ) { |
568 | mView->newEvent(); | 568 | QTimer::singleShot( 0, mView, SLOT ( newEvent())); |
569 | } | 569 | } |
570 | if ( msg == "-newTodo" ) { | 570 | if ( msg == "-newTodo" ) { |
571 | mView->newTodo(); | 571 | QTimer::singleShot( 0, mView, SLOT ( newTodo())); |
572 | |||
573 | } | 572 | } |
574 | if ( msg == "-showWN" ) { | 573 | if ( msg == "-showWN" ) { |
575 | mView->viewManager()->showWhatsNextView(); | 574 | mView->viewManager()->showWhatsNextView(); |
576 | } | 575 | } |
577 | if ( msg == "-showTodo" ) { | 576 | if ( msg == "-showTodo" ) { |
578 | mView->viewManager()->showTodoView(); | 577 | mView->viewManager()->showTodoView(); |
579 | } | 578 | } |
580 | if ( msg == "-showList" ) { | 579 | if ( msg == "-showList" ) { |
581 | mView->viewManager()->showListView(); | 580 | mView->viewManager()->showListView(); |
582 | } | 581 | } |
583 | else if ( msg == "-showDay" ) { | 582 | else if ( msg == "-showDay" ) { |
584 | mView->viewManager()->showDayView(); | 583 | mView->viewManager()->showDayView(); |
585 | } | 584 | } |
586 | else if ( msg == "-showWWeek" ) { | 585 | else if ( msg == "-showWWeek" ) { |
587 | mView->viewManager()->showWorkWeekView(); | 586 | mView->viewManager()->showWorkWeekView(); |
588 | } | 587 | } |
589 | else if ( msg == "-ringSync" ) { | 588 | else if ( msg == "-ringSync" ) { |
590 | mSyncManager->multiSync( false ); | 589 | QTimer::singleShot( 0, this, SLOT (startMultiSync())); |
591 | } | 590 | } |
592 | else if ( msg == "-showWeek" ) { | 591 | else if ( msg == "-showWeek" ) { |
593 | mView->viewManager()->showWeekView(); | 592 | mView->viewManager()->showWeekView(); |
594 | } | 593 | } |
595 | else if ( msg == "-showTodo" ) { | 594 | else if ( msg == "-showTodo" ) { |
596 | mView->viewManager()->showTodoView(); | 595 | mView->viewManager()->showTodoView(); |
597 | } | 596 | } |
598 | else if ( msg == "-showJournal" ) { | 597 | else if ( msg == "-showJournal" ) { |
599 | mView->dateNavigator()->selectDates( 1 ); | 598 | mView->dateNavigator()->selectDates( 1 ); |
600 | mView->dateNavigator()->selectToday(); | 599 | mView->dateNavigator()->selectToday(); |
601 | mView->viewManager()->showJournalView(); | 600 | mView->viewManager()->showJournalView(); |
602 | } | 601 | } |
603 | else if ( msg == "-showKO" ) { | 602 | else if ( msg == "-showKO" ) { |
604 | mView->viewManager()->showNextXView(); | 603 | mView->viewManager()->showNextXView(); |
605 | } | 604 | } |
606 | else if ( msg == "-showWNext" ) { | 605 | else if ( msg == "-showWNext" ) { |
607 | mView->viewManager()->showWhatsNextView(); | 606 | mView->viewManager()->showWhatsNextView(); |
608 | } | 607 | } |
609 | else if ( msg == "nextView()" ) { | 608 | else if ( msg == "nextView()" ) { |
610 | mView->viewManager()->showNextView(); | 609 | mView->viewManager()->showNextView(); |
611 | } | 610 | } |
612 | else if ( msg == "-showNextXView" ) { | 611 | else if ( msg == "-showNextXView" ) { |
613 | mView->viewManager()->showNextXView(); | 612 | mView->viewManager()->showNextXView(); |
614 | } | 613 | } |
615 | 614 | ||
616 | 615 | ||
617 | } | 616 | } |
618 | 617 | ||
619 | showMaximized(); | 618 | showMaximized(); |
620 | raise(); | 619 | raise(); |
621 | } | 620 | } |
622 | 621 | void MainWindow::startMultiSync() | |
622 | { | ||
623 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); | ||
624 | if ( QMessageBox::information( this, i18n("KDE-Pim Sync"), | ||
625 | question, | ||
626 | i18n("Yes"), i18n("No"), | ||
627 | 0, 0 ) != 0 ) { | ||
628 | setCaption(i18n("Aborted! Nothing synced!")); | ||
629 | return; | ||
630 | } | ||
631 | mSyncManager->multiSync( false ); | ||
632 | #ifndef DESKTOP_VERSION | ||
633 | QCopEnvelope e("QPE/Application/kapi", "doRingSync"); | ||
634 | #endif | ||
635 | } | ||
623 | QPixmap MainWindow::loadPixmap( QString name ) | 636 | QPixmap MainWindow::loadPixmap( QString name ) |
624 | { | 637 | { |
625 | return SmallIcon( name ); | 638 | return SmallIcon( name ); |
626 | 639 | ||
627 | } | 640 | } |
628 | void MainWindow::setUsesBigPixmaps ( bool b ) | 641 | void MainWindow::setUsesBigPixmaps ( bool b ) |
629 | { | 642 | { |
630 | qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b); | 643 | qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b); |
631 | if ( b ) | 644 | if ( b ) |
632 | qDebug("KO: BigPixmaps are not supported "); | 645 | qDebug("KO: BigPixmaps are not supported "); |
633 | } | 646 | } |
634 | void MainWindow::initActions() | 647 | void MainWindow::initActions() |
635 | { | 648 | { |
636 | //KOPrefs::instance()->mShowFullMenu | 649 | //KOPrefs::instance()->mShowFullMenu |
637 | iconToolBar->clear(); | 650 | iconToolBar->clear(); |
638 | KOPrefs *p = KOPrefs::instance(); | 651 | KOPrefs *p = KOPrefs::instance(); |
639 | //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); | 652 | //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); |
640 | 653 | ||
641 | QPopupMenu *viewMenu = new QPopupMenu( this ); | 654 | QPopupMenu *viewMenu = new QPopupMenu( this ); |
642 | QPopupMenu *actionMenu = new QPopupMenu( this ); | 655 | QPopupMenu *actionMenu = new QPopupMenu( this ); |
643 | QPopupMenu *importMenu = new QPopupMenu( this ); | 656 | QPopupMenu *importMenu = new QPopupMenu( this ); |
644 | QPopupMenu *importMenu_X = new QPopupMenu( this ); | 657 | QPopupMenu *importMenu_X = new QPopupMenu( this ); |
645 | QPopupMenu *exportMenu_X = new QPopupMenu( this ); | 658 | QPopupMenu *exportMenu_X = new QPopupMenu( this ); |
646 | QPopupMenu *beamMenu_X = new QPopupMenu( this ); | 659 | QPopupMenu *beamMenu_X = new QPopupMenu( this ); |
647 | selectFilterMenu = new QPopupMenu( this ); | 660 | selectFilterMenu = new QPopupMenu( this ); |
648 | selectFilterMenu->setCheckable( true ); | 661 | selectFilterMenu->setCheckable( true ); |
649 | syncMenu = new QPopupMenu( this ); | 662 | syncMenu = new QPopupMenu( this ); |
650 | configureAgendaMenu = new QPopupMenu( this ); | 663 | configureAgendaMenu = new QPopupMenu( this ); |
651 | configureToolBarMenu = new QPopupMenu( this ); | 664 | configureToolBarMenu = new QPopupMenu( this ); |
652 | QPopupMenu *helpMenu = new QPopupMenu( this ); | 665 | QPopupMenu *helpMenu = new QPopupMenu( this ); |
653 | QIconSet icon; | 666 | QIconSet icon; |
654 | int pixWid = 22, pixHei = 22; | 667 | int pixWid = 22, pixHei = 22; |
655 | QString pathString = ""; | 668 | QString pathString = ""; |
656 | if ( !p->mToolBarMiniIcons ) { | 669 | if ( !p->mToolBarMiniIcons ) { |
657 | if ( QApplication::desktop()->width() < 480 /*|| QApplication::desktop()->height() < 320*/) { | 670 | if ( QApplication::desktop()->width() < 480 /*|| QApplication::desktop()->height() < 320*/) { |
658 | pathString += "icons16/"; | 671 | pathString += "icons16/"; |
659 | pixWid = 18; pixHei = 16; | 672 | pixWid = 18; pixHei = 16; |
660 | } | 673 | } |
661 | } else { | 674 | } else { |
662 | pathString += "iconsmini/"; | 675 | pathString += "iconsmini/"; |
663 | pixWid = 18; pixHei = 16; | 676 | pixWid = 18; pixHei = 16; |
664 | } | 677 | } |
665 | if ( KOPrefs::instance()->mShowFullMenu ) { | 678 | if ( KOPrefs::instance()->mShowFullMenu ) { |
666 | QMenuBar *menuBar1; | 679 | QMenuBar *menuBar1; |
667 | menuBar1 = menuBar(); | 680 | menuBar1 = menuBar(); |
668 | menuBar1->insertItem( i18n("File"), importMenu ); | 681 | menuBar1->insertItem( i18n("File"), importMenu ); |
669 | menuBar1->insertItem( i18n("View"), viewMenu ); | 682 | menuBar1->insertItem( i18n("View"), viewMenu ); |
670 | menuBar1->insertItem( i18n("Actions"), actionMenu ); | 683 | menuBar1->insertItem( i18n("Actions"), actionMenu ); |
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index c9817c3..a4d0523 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h | |||
@@ -7,96 +7,97 @@ | |||
7 | #include <qfile.h> | 7 | #include <qfile.h> |
8 | #include <qmenubar.h> | 8 | #include <qmenubar.h> |
9 | #include <qtextstream.h> | 9 | #include <qtextstream.h> |
10 | #include <qregexp.h> | 10 | #include <qregexp.h> |
11 | 11 | ||
12 | #include <libkcal/incidence.h> | 12 | #include <libkcal/incidence.h> |
13 | #include <ksyncmanager.h> | 13 | #include <ksyncmanager.h> |
14 | #ifndef DESKTOP_VERSION | 14 | #ifndef DESKTOP_VERSION |
15 | #include <qcopchannel_qws.h> | 15 | #include <qcopchannel_qws.h> |
16 | #endif | 16 | #endif |
17 | class QAction; | 17 | class QAction; |
18 | class CalendarView; | 18 | class CalendarView; |
19 | class KSyncProfile; | 19 | class KSyncProfile; |
20 | #ifdef DESKTOP_VERSION | 20 | #ifdef DESKTOP_VERSION |
21 | 21 | ||
22 | #define QPEToolBar QToolBar | 22 | #define QPEToolBar QToolBar |
23 | #define QPEMenuBar QMenuBar | 23 | #define QPEMenuBar QMenuBar |
24 | #endif | 24 | #endif |
25 | class QPEToolBar; | 25 | class QPEToolBar; |
26 | class QPEMenuBar; | 26 | class QPEMenuBar; |
27 | 27 | ||
28 | 28 | ||
29 | namespace KCal { | 29 | namespace KCal { |
30 | class CalendarLocal; | 30 | class CalendarLocal; |
31 | } | 31 | } |
32 | 32 | ||
33 | using namespace KCal; | 33 | using namespace KCal; |
34 | 34 | ||
35 | class MainWindow : public QMainWindow | 35 | class MainWindow : public QMainWindow |
36 | { | 36 | { |
37 | Q_OBJECT | 37 | Q_OBJECT |
38 | public: | 38 | public: |
39 | MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); | 39 | MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); |
40 | ~MainWindow(); | 40 | ~MainWindow(); |
41 | bool beamReceiveEnabled(); | 41 | bool beamReceiveEnabled(); |
42 | static QString defaultFileName(); | 42 | static QString defaultFileName(); |
43 | static QString syncFileName(); | 43 | static QString syncFileName(); |
44 | static QString resourcePath(); | 44 | static QString resourcePath(); |
45 | public slots: | 45 | public slots: |
46 | void setUsesBigPixmaps ( bool ); | 46 | void setUsesBigPixmaps ( bool ); |
47 | void setCaption ( const QString & ); | 47 | void setCaption ( const QString & ); |
48 | void updateWeekNum(const KCal::DateList &); | 48 | void updateWeekNum(const KCal::DateList &); |
49 | void updateWeek(QDate); | 49 | void updateWeek(QDate); |
50 | void updateFilterToolbar(); | 50 | void updateFilterToolbar(); |
51 | virtual void showMaximized (); | 51 | virtual void showMaximized (); |
52 | void configureAgenda( int ); | 52 | void configureAgenda( int ); |
53 | void recieve( const QCString& msg, const QByteArray& data ); | 53 | void recieve( const QCString& msg, const QByteArray& data ); |
54 | protected slots: | 54 | protected slots: |
55 | void startMultiSync(); | ||
55 | void setCaptionToDates(); | 56 | void setCaptionToDates(); |
56 | void weekAction(); | 57 | void weekAction(); |
57 | void about(); | 58 | void about(); |
58 | void licence(); | 59 | void licence(); |
59 | void faq(); | 60 | void faq(); |
60 | void usertrans(); | 61 | void usertrans(); |
61 | void features(); | 62 | void features(); |
62 | void synchowto(); | 63 | void synchowto(); |
63 | void storagehowto(); | 64 | void storagehowto(); |
64 | void timetrackinghowto(); | 65 | void timetrackinghowto(); |
65 | void kdesynchowto(); | 66 | void kdesynchowto(); |
66 | void multisynchowto(); | 67 | void multisynchowto(); |
67 | void whatsNew(); | 68 | void whatsNew(); |
68 | void keyBindings(); | 69 | void keyBindings(); |
69 | void aboutAutoSaving();; | 70 | void aboutAutoSaving();; |
70 | void aboutKnownBugs(); | 71 | void aboutKnownBugs(); |
71 | 72 | ||
72 | void processIncidenceSelection( Incidence * ); | 73 | void processIncidenceSelection( Incidence * ); |
73 | 74 | ||
74 | void importQtopia(); | 75 | void importQtopia(); |
75 | void importBday(); | 76 | void importBday(); |
76 | void importOL(); | 77 | void importOL(); |
77 | void importIcal(); | 78 | void importIcal(); |
78 | void importFile( QString, bool ); | 79 | void importFile( QString, bool ); |
79 | void quickImportIcal(); | 80 | void quickImportIcal(); |
80 | 81 | ||
81 | void slotModifiedChanged( bool ); | 82 | void slotModifiedChanged( bool ); |
82 | 83 | ||
83 | void save(); | 84 | void save(); |
84 | void backupAllFiles(); | 85 | void backupAllFiles(); |
85 | void saveStopTimer(); | 86 | void saveStopTimer(); |
86 | void configureToolBar( int ); | 87 | void configureToolBar( int ); |
87 | void printSel(); | 88 | void printSel(); |
88 | void printCal(); | 89 | void printCal(); |
89 | void printListView(); | 90 | void printListView(); |
90 | void saveCalendar(); | 91 | void saveCalendar(); |
91 | void loadCalendar(); | 92 | void loadCalendar(); |
92 | void exportVCalendar(); | 93 | void exportVCalendar(); |
93 | void fillFilterMenu(); | 94 | void fillFilterMenu(); |
94 | void fillFilterMenuTB(); | 95 | void fillFilterMenuTB(); |
95 | void selectFilter( int ); | 96 | void selectFilter( int ); |
96 | void fillFilterMenuPopup(); | 97 | void fillFilterMenuPopup(); |
97 | void selectFilterPopup( int ); | 98 | void selectFilterPopup( int ); |
98 | void exportToPhone( int ); | 99 | void exportToPhone( int ); |
99 | void toggleBeamReceive(); | 100 | void toggleBeamReceive(); |
100 | void disableBR(bool); | 101 | void disableBR(bool); |
101 | signals: | 102 | signals: |
102 | void selectWeek ( int ); | 103 | void selectWeek ( int ); |
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp index 0e9c5e5..2ce6926 100644 --- a/libkdepim/externalapphandler.cpp +++ b/libkdepim/externalapphandler.cpp | |||
@@ -1,80 +1,81 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of libkdepim. | 2 | This file is part of libkdepim. |
3 | Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | /* | 24 | /* |
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 | #include <stdlib.h> | 30 | #include <stdlib.h> |
31 | 31 | ||
32 | #include <qfile.h> | 32 | #include <qfile.h> |
33 | #include <qtimer.h> | ||
33 | #include <qmap.h> | 34 | #include <qmap.h> |
34 | #include <qregexp.h> | 35 | #include <qregexp.h> |
35 | 36 | ||
36 | #ifndef DESKTOP_VERSION | 37 | #ifndef DESKTOP_VERSION |
37 | #include <qpe/qpeapplication.h> | 38 | #include <qpe/qpeapplication.h> |
38 | #include <qtopia/qcopenvelope_qws.h> | 39 | #include <qtopia/qcopenvelope_qws.h> |
39 | #else | 40 | #else |
40 | #include <qapplication.h> | 41 | #include <qapplication.h> |
41 | #endif | 42 | #endif |
42 | 43 | ||
43 | #include <kstaticdeleter.h> | 44 | #include <kstaticdeleter.h> |
44 | #include <kmessagebox.h> | 45 | #include <kmessagebox.h> |
45 | 46 | ||
46 | 47 | ||
47 | #include "externalapphandler.h" | 48 | #include "externalapphandler.h" |
48 | 49 | ||
49 | #include "kpimglobalprefs.h" | 50 | #include "kpimglobalprefs.h" |
50 | 51 | ||
51 | //uncomment line to get debug output | 52 | //uncomment line to get debug output |
52 | //#define DEBUG_EXT_APP_HANDLER | 53 | //#define DEBUG_EXT_APP_HANDLER |
53 | 54 | ||
54 | /********************************************************************************* | 55 | /********************************************************************************* |
55 | * | 56 | * |
56 | ********************************************************************************/ | 57 | ********************************************************************************/ |
57 | 58 | ||
58 | 59 | ||
59 | QCopTransferItem::QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) | 60 | QCopTransferItem::QCopTransferItem(int usedSourceParameters, const QString& sourceMessage, const QString& targetChannel, const QString& targetMessage) |
60 | : _usedSourceParameters(usedSourceParameters), _sourceMessage(sourceMessage), _targetChannel(targetChannel), _targetMessage(targetMessage) | 61 | : _usedSourceParameters(usedSourceParameters), _sourceMessage(sourceMessage), _targetChannel(targetChannel), _targetMessage(targetMessage) |
61 | { | 62 | { |
62 | //sourceMessage passes later three parameters: sourceChannel, uid, param1 | 63 | //sourceMessage passes later three parameters: sourceChannel, uid, param1 |
63 | if (_usedSourceParameters == 0) | 64 | if (_usedSourceParameters == 0) |
64 | _sourceMessageParameters = "QString,QString)"; | 65 | _sourceMessageParameters = "QString,QString)"; |
65 | else if (_usedSourceParameters == 1) | 66 | else if (_usedSourceParameters == 1) |
66 | _sourceMessageParameters = "(QString,QString,QString)"; | 67 | _sourceMessageParameters = "(QString,QString,QString)"; |
67 | else if (_usedSourceParameters == 2) | 68 | else if (_usedSourceParameters == 2) |
68 | _sourceMessageParameters = "(QString,QString,QString,QString)"; | 69 | _sourceMessageParameters = "(QString,QString,QString,QString)"; |
69 | else if (_usedSourceParameters == 3) | 70 | else if (_usedSourceParameters == 3) |
70 | _sourceMessageParameters = "(QString,QString,QString,QString,QString)"; | 71 | _sourceMessageParameters = "(QString,QString,QString,QString,QString)"; |
71 | } | 72 | } |
72 | 73 | ||
73 | /*********************************************************************************/ | 74 | /*********************************************************************************/ |
74 | 75 | ||
75 | QCopTransferItem::QCopTransferItem() | 76 | QCopTransferItem::QCopTransferItem() |
76 | { | 77 | { |
77 | } | 78 | } |
78 | 79 | ||
79 | /*********************************************************************************/ | 80 | /*********************************************************************************/ |
80 | bool QCopTransferItem::sendMessageToTarget(const QString& uid, const QString& param1, const QString& param2, const QString& param3) | 81 | bool QCopTransferItem::sendMessageToTarget(const QString& uid, const QString& param1, const QString& param2, const QString& param3) |
@@ -1084,105 +1085,110 @@ void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& paramete | |||
1084 | QStringList paramlist = QStringList::split(";", parameters); | 1085 | QStringList paramlist = QStringList::split(";", parameters); |
1085 | 1086 | ||
1086 | //Now check how many parts we have. | 1087 | //Now check how many parts we have. |
1087 | //=0 :no params to pass | 1088 | //=0 :no params to pass |
1088 | //>0 :parameters to pass | 1089 | //>0 :parameters to pass |
1089 | for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) | 1090 | for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) |
1090 | { | 1091 | { |
1091 | QString param = (*it); | 1092 | QString param = (*it); |
1092 | QStringList keyvallist = QStringList::split("=", param); | 1093 | QStringList keyvallist = QStringList::split("=", param); |
1093 | 1094 | ||
1094 | //if we have keyvalue pairs, we assume that we pass a map to the envelope | 1095 | //if we have keyvalue pairs, we assume that we pass a map to the envelope |
1095 | QStringList::Iterator it2 = keyvallist.begin(); | 1096 | QStringList::Iterator it2 = keyvallist.begin(); |
1096 | QString key = (*it2); | 1097 | QString key = (*it2); |
1097 | key = key.replace( QRegExp("%1"), param1 ); | 1098 | key = key.replace( QRegExp("%1"), param1 ); |
1098 | key = key.replace( QRegExp("%2"), param2 ); | 1099 | key = key.replace( QRegExp("%2"), param2 ); |
1099 | ++it2; | 1100 | ++it2; |
1100 | 1101 | ||
1101 | if(it2 != keyvallist.end()) | 1102 | if(it2 != keyvallist.end()) |
1102 | { | 1103 | { |
1103 | QString value = (*it2); | 1104 | QString value = (*it2); |
1104 | value = value.replace( QRegExp("%1"), param1 ); | 1105 | value = value.replace( QRegExp("%1"), param1 ); |
1105 | value = value.replace( QRegExp("%2"), param2 ); | 1106 | value = value.replace( QRegExp("%2"), param2 ); |
1106 | 1107 | ||
1107 | valmap.insert(key, value); | 1108 | valmap.insert(key, value); |
1108 | useValMap = true; | 1109 | useValMap = true; |
1109 | } | 1110 | } |
1110 | else | 1111 | else |
1111 | { | 1112 | { |
1112 | // qDebug("pass parameter << %s", key.latin1()); | 1113 | // qDebug("pass parameter << %s", key.latin1()); |
1113 | (*e) << key; | 1114 | (*e) << key; |
1114 | } | 1115 | } |
1115 | } | 1116 | } |
1116 | 1117 | ||
1117 | if (useValMap == true) | 1118 | if (useValMap == true) |
1118 | (*e) << valmap; | 1119 | (*e) << valmap; |
1119 | 1120 | ||
1120 | #endif | 1121 | #endif |
1121 | 1122 | ||
1122 | } | 1123 | } |
1123 | 1124 | ||
1124 | 1125 | ||
1125 | 1126 | ||
1126 | /************************************************************************** | 1127 | /************************************************************************** |
1127 | * | 1128 | * |
1128 | **************************************************************************/ | 1129 | **************************************************************************/ |
1129 | 1130 | ||
1130 | void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) | 1131 | void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) |
1131 | { | 1132 | { |
1132 | 1133 | qDebug("ExternalAppHandler::appMessage %s %x", cmsg.data(), this); | |
1133 | if ( cmsg == "nextView()" ) { | 1134 | if ( cmsg == "nextView()" ) { |
1134 | qDebug("nextView()"); | 1135 | qDebug("nextView()"); |
1135 | emit nextView(); | 1136 | QTimer::singleShot( 0, this, SIGNAL ( nextView() )); |
1136 | return; | 1137 | return; |
1137 | } | 1138 | } |
1138 | if ( cmsg == "callContactdialog()" ) { | 1139 | if ( cmsg == "callContactdialog()" ) { |
1139 | qDebug("callContactdialog()"); | 1140 | qDebug("callContactdialog()"); |
1140 | emit callContactdialog(); | 1141 | QTimer::singleShot( 0, this, SIGNAL ( callContactdialog() )); |
1142 | return; | ||
1143 | } | ||
1144 | if ( cmsg == "doRingSync" ) { | ||
1145 | qDebug("doRingSync"); | ||
1146 | QTimer::singleShot( 0, this, SIGNAL ( doRingSync() )); | ||
1141 | return; | 1147 | return; |
1142 | } | 1148 | } |
1143 | 1149 | ||
1144 | bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); | 1150 | bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); |
1145 | if (!res) | 1151 | if (!res) |
1146 | res = mBirthdayListFromKAPITransfer->appMessage( cmsg, data ); | 1152 | res = mBirthdayListFromKAPITransfer->appMessage( cmsg, data ); |
1147 | 1153 | ||
1148 | if (!res) | 1154 | if (!res) |
1149 | res = mDisplayDetails->appMessage( cmsg, data ); | 1155 | res = mDisplayDetails->appMessage( cmsg, data ); |
1150 | 1156 | ||
1151 | // if (!res) | 1157 | // if (!res) |
1152 | // res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); | 1158 | // res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); |
1153 | } | 1159 | } |
1154 | 1160 | ||
1155 | 1161 | ||
1156 | 1162 | ||
1157 | bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) | 1163 | bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) |
1158 | { | 1164 | { |
1159 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); | 1165 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); |
1160 | // maybe we are sending to KA/Pi fom a different worldd... | 1166 | // maybe we are sending to KA/Pi fom a different worldd... |
1161 | // it may be that the QAplication::desktop()->width() values in KA/Pi are not the same as in our application | 1167 | // it may be that the QAplication::desktop()->width() values in KA/Pi are not the same as in our application |
1162 | // for that reason we send the current QApplication::desktop()->width() to KA/Pi | 1168 | // for that reason we send the current QApplication::desktop()->width() to KA/Pi |
1163 | //qDebug("UID %s ", sessionuid.latin1()); | 1169 | //qDebug("UID %s ", sessionuid.latin1()); |
1164 | //return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(QString::number ( QApplication::desktop()->width() )); | 1170 | //return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(QString::number ( QApplication::desktop()->width() )); |
1165 | return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid); | 1171 | return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid); |
1166 | } | 1172 | } |
1167 | 1173 | ||
1168 | bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) | 1174 | bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) |
1169 | { | 1175 | { |
1170 | QStringList list4, list5, list6; | 1176 | QStringList list4, list5, list6; |
1171 | 1177 | ||
1172 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); | 1178 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); |
1173 | return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); | 1179 | return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); |
1174 | } | 1180 | } |
1175 | 1181 | ||
1176 | bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) | 1182 | bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) |
1177 | { | 1183 | { |
1178 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); | 1184 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); |
1179 | return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); | 1185 | return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); |
1180 | } | 1186 | } |
1181 | 1187 | ||
1182 | bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) | 1188 | bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) |
1183 | { | 1189 | { |
1184 | QStringList list4, list5, list6; | 1190 | QStringList list4, list5, list6; |
1185 | 1191 | ||
1186 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); | 1192 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); |
1187 | return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); | 1193 | return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); |
1188 | } | 1194 | } |
diff --git a/libkdepim/externalapphandler.h b/libkdepim/externalapphandler.h index 097f306..b899ad7 100644 --- a/libkdepim/externalapphandler.h +++ b/libkdepim/externalapphandler.h | |||
@@ -190,96 +190,97 @@ class ExternalAppHandler : public QObject | |||
190 | //calls the faxapplication with the number | 190 | //calls the faxapplication with the number |
191 | bool callByFax( const QString& faxnumber ); | 191 | bool callByFax( const QString& faxnumber ); |
192 | 192 | ||
193 | //calls the sipapplication with the number | 193 | //calls the sipapplication with the number |
194 | bool callBySIP( const QString& sipnumber ); | 194 | bool callBySIP( const QString& sipnumber ); |
195 | 195 | ||
196 | bool isEmailAppAvailable(); | 196 | bool isEmailAppAvailable(); |
197 | bool isSMSAppAvailable(); | 197 | bool isSMSAppAvailable(); |
198 | bool isPhoneAppAvailable(); | 198 | bool isPhoneAppAvailable(); |
199 | bool isFaxAppAvailable(); | 199 | bool isFaxAppAvailable(); |
200 | bool isPagerAppAvailable(); | 200 | bool isPagerAppAvailable(); |
201 | bool isSIPAppAvailable(); | 201 | bool isSIPAppAvailable(); |
202 | 202 | ||
203 | 203 | ||
204 | //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 |
205 | bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid); | 205 | bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid); |
206 | //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). |
207 | 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); |
208 | 208 | ||
209 | 209 | ||
210 | 210 | ||
211 | bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email); | 211 | bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email); |
212 | 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); |
213 | 213 | ||
214 | bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid); | 214 | bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid); |
215 | 215 | ||
216 | 216 | ||
217 | 217 | ||
218 | bool requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid); | 218 | bool requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid); |
219 | bool returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, | 219 | bool returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, |
220 | const QStringList& birthdayList, const QStringList& anniversaryList, | 220 | const QStringList& birthdayList, const QStringList& anniversaryList, |
221 | const QStringList& realNameList, const QStringList& emailList, | 221 | const QStringList& realNameList, const QStringList& emailList, |
222 | const QStringList& assembledNameList, const QStringList& uidList); | 222 | const QStringList& assembledNameList, const QStringList& uidList); |
223 | 223 | ||
224 | 224 | ||
225 | //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 |
226 | void loadConfig(); | 226 | void loadConfig(); |
227 | 227 | ||
228 | QList<DefaultAppItem> getAvailableDefaultItems(Types); | 228 | QList<DefaultAppItem> getAvailableDefaultItems(Types); |
229 | DefaultAppItem* getDefaultItem(Types, int); | 229 | DefaultAppItem* getDefaultItem(Types, int); |
230 | 230 | ||
231 | public slots: | 231 | public slots: |
232 | void appMessage( const QCString& msg, const QByteArray& data ); | 232 | void appMessage( const QCString& msg, const QByteArray& data ); |
233 | 233 | ||
234 | 234 | ||
235 | signals: | 235 | signals: |
236 | void callContactdialog(); | 236 | void callContactdialog(); |
237 | void nextView(); | 237 | void nextView(); |
238 | void doRingSync(); | ||
238 | // Emmitted when the target app receives a request from the source app | 239 | // Emmitted when the target app receives a request from the source app |
239 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid); | 240 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid); |
240 | 241 | ||
241 | // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi | 242 | // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi |
242 | // The first parameter is a uniqueid. It can be used to identify the event | 243 | // The first parameter is a uniqueid. It can be used to identify the event |
243 | void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); | 244 | void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); |
244 | 245 | ||
245 | void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email); | 246 | void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email); |
246 | void receivedFindByEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); | 247 | void receivedFindByEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); |
247 | 248 | ||
248 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); | 249 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); |
249 | 250 | ||
250 | 251 | ||
251 | // Emmitted when the target app receives a request from the source app | 252 | // Emmitted when the target app receives a request from the source app |
252 | void requestForBirthdayList(const QString& sourceChannel, const QString& uid); | 253 | void requestForBirthdayList(const QString& sourceChannel, const QString& uid); |
253 | 254 | ||
254 | // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi | 255 | // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi |
255 | // The first parameter is a uniqueid. It can be used to identify the event | 256 | // The first parameter is a uniqueid. It can be used to identify the event |
256 | void receivedBirthdayListEvent(const QString& uid, const QStringList& birthdayList, | 257 | void receivedBirthdayListEvent(const QString& uid, const QStringList& birthdayList, |
257 | const QStringList& anniversaryList, const QStringList& realNameList, | 258 | const QStringList& anniversaryList, const QStringList& realNameList, |
258 | const QStringList& emailList, const QStringList& assembledNameList, | 259 | const QStringList& emailList, const QStringList& assembledNameList, |
259 | const QStringList& uidList); | 260 | const QStringList& uidList); |
260 | 261 | ||
261 | 262 | ||
262 | private: | 263 | private: |
263 | ExternalAppHandler(); | 264 | ExternalAppHandler(); |
264 | QList<DefaultAppItem> mDefaultItems; | 265 | QList<DefaultAppItem> mDefaultItems; |
265 | 266 | ||
266 | Availability mEmailAppAvailable; | 267 | Availability mEmailAppAvailable; |
267 | Availability mPhoneAppAvailable; | 268 | Availability mPhoneAppAvailable; |
268 | Availability mFaxAppAvailable; | 269 | Availability mFaxAppAvailable; |
269 | Availability mSMSAppAvailable; | 270 | Availability mSMSAppAvailable; |
270 | Availability mPagerAppAvailable; | 271 | Availability mPagerAppAvailable; |
271 | Availability mSIPAppAvailable; | 272 | Availability mSIPAppAvailable; |
272 | 273 | ||
273 | QCopListTransferItem* mNameEmailUidListFromKAPITransfer; | 274 | QCopListTransferItem* mNameEmailUidListFromKAPITransfer; |
274 | QCopListTransferItem* mFindByEmailFromKAPITransfer; | 275 | QCopListTransferItem* mFindByEmailFromKAPITransfer; |
275 | QCopTransferItem* mDisplayDetails; | 276 | QCopTransferItem* mDisplayDetails; |
276 | QCopListTransferItem* mBirthdayListFromKAPITransfer; | 277 | QCopListTransferItem* mBirthdayListFromKAPITransfer; |
277 | 278 | ||
278 | 279 | ||
279 | void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2); | 280 | void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2); |
280 | 281 | ||
281 | QString& translateMessage(QString& message, const QString& param1, const QString& param2) const; | 282 | QString& translateMessage(QString& message, const QString& param1, const QString& param2) const; |
282 | void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const; | 283 | void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const; |
283 | 284 | ||
284 | 285 | ||
285 | static ExternalAppHandler *sInstance; | 286 | static ExternalAppHandler *sInstance; |
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index db815d6..038e032 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp | |||
@@ -476,104 +476,106 @@ bool KSyncManager::syncWithFile( QString fn , bool quick ) | |||
476 | QString mess; | 476 | QString mess; |
477 | if ( !info. exists() ) { | 477 | if ( !info. exists() ) { |
478 | mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); | 478 | mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); |
479 | QMessageBox::warning( mParent, i18n("Warning!"), | 479 | QMessageBox::warning( mParent, i18n("Warning!"), |
480 | mess ); | 480 | mess ); |
481 | return ret; | 481 | return ret; |
482 | } | 482 | } |
483 | int result = 0; | 483 | int result = 0; |
484 | if ( !quick ) { | 484 | if ( !quick ) { |
485 | mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); | 485 | mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); |
486 | result = QMessageBox::warning( mParent, i18n("Warning!"), | 486 | result = QMessageBox::warning( mParent, i18n("Warning!"), |
487 | mess, | 487 | mess, |
488 | i18n("Sync"), i18n("Cancel"), 0, | 488 | i18n("Sync"), i18n("Cancel"), 0, |
489 | 0, 1 ); | 489 | 0, 1 ); |
490 | if ( result ) | 490 | if ( result ) |
491 | return false; | 491 | return false; |
492 | } | 492 | } |
493 | if ( mAskForPreferences ) | 493 | if ( mAskForPreferences ) |
494 | if ( !edit_sync_options()) { | 494 | if ( !edit_sync_options()) { |
495 | mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); | 495 | mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); |
496 | return false; | 496 | return false; |
497 | } | 497 | } |
498 | if ( result == 0 ) { | 498 | if ( result == 0 ) { |
499 | //qDebug("Now sycing ... "); | 499 | //qDebug("Now sycing ... "); |
500 | if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) ) | 500 | if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) ) |
501 | mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") ); | 501 | mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") ); |
502 | else | 502 | else |
503 | mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") ); | 503 | mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") ); |
504 | if ( ! quick ) | 504 | if ( ! quick ) |
505 | mPrefs->mLastSyncedLocalFile = fn; | 505 | mPrefs->mLastSyncedLocalFile = fn; |
506 | } | 506 | } |
507 | return ret; | 507 | return ret; |
508 | } | 508 | } |
509 | 509 | ||
510 | void KSyncManager::quickSyncLocalFile() | 510 | void KSyncManager::quickSyncLocalFile() |
511 | { | 511 | { |
512 | 512 | ||
513 | if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) { | 513 | if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) { |
514 | qDebug("KSM::quick syncLocalFile() successful "); | 514 | qDebug("KSM::quick syncLocalFile() successful "); |
515 | 515 | ||
516 | } | 516 | } |
517 | } | 517 | } |
518 | 518 | ||
519 | void KSyncManager::multiSync( bool askforPrefs ) | 519 | void KSyncManager::multiSync( bool askforPrefs ) |
520 | { | 520 | { |
521 | if (blockSave()) | 521 | if (blockSave()) |
522 | return; | 522 | return; |
523 | setBlockSave(true); | 523 | setBlockSave(true); |
524 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); | 524 | if ( askforPrefs ) { |
525 | if ( QMessageBox::information( mParent, i18n("KDE-Pim Sync"), | 525 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); |
526 | question, | 526 | if ( QMessageBox::information( mParent, i18n("KDE-Pim Sync"), |
527 | i18n("Yes"), i18n("No"), | 527 | question, |
528 | 0, 0 ) != 0 ) { | 528 | i18n("Yes"), i18n("No"), |
529 | setBlockSave(false); | 529 | 0, 0 ) != 0 ) { |
530 | mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!")); | 530 | setBlockSave(false); |
531 | return; | 531 | mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!")); |
532 | return; | ||
533 | } | ||
532 | } | 534 | } |
533 | mCurrentSyncDevice = i18n("Multiple profiles") ; | 535 | mCurrentSyncDevice = i18n("Multiple profiles") ; |
534 | mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; | 536 | mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; |
535 | if ( askforPrefs ) { | 537 | if ( askforPrefs ) { |
536 | if ( !edit_sync_options()) { | 538 | if ( !edit_sync_options()) { |
537 | mParent->topLevelWidget()->setCaption( i18n("Syncing aborted.") ); | 539 | mParent->topLevelWidget()->setCaption( i18n("Syncing aborted.") ); |
538 | return; | 540 | return; |
539 | } | 541 | } |
540 | mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs; | 542 | mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs; |
541 | } | 543 | } |
542 | mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") ); | 544 | mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") ); |
543 | qApp->processEvents(); | 545 | qApp->processEvents(); |
544 | int num = ringSync() ; | 546 | int num = ringSync() ; |
545 | if ( num > 1 ) | 547 | if ( num > 1 ) |
546 | ringSync(); | 548 | ringSync(); |
547 | setBlockSave(false); | 549 | setBlockSave(false); |
548 | if ( num ) | 550 | if ( num ) |
549 | emit save(); | 551 | emit save(); |
550 | if ( num ) | 552 | if ( num ) |
551 | mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) ); | 553 | mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) ); |
552 | else | 554 | else |
553 | mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!")); | 555 | mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!")); |
554 | return; | 556 | return; |
555 | } | 557 | } |
556 | 558 | ||
557 | int KSyncManager::ringSync() | 559 | int KSyncManager::ringSync() |
558 | { | 560 | { |
559 | 561 | ||
560 | int syncedProfiles = 0; | 562 | int syncedProfiles = 0; |
561 | unsigned int i; | 563 | unsigned int i; |
562 | QTime timer; | 564 | QTime timer; |
563 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 565 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
564 | QStringList syncProfileNames = mSyncProfileNames; | 566 | QStringList syncProfileNames = mSyncProfileNames; |
565 | KSyncProfile* temp = new KSyncProfile (); | 567 | KSyncProfile* temp = new KSyncProfile (); |
566 | mAskForPreferences = false; | 568 | mAskForPreferences = false; |
567 | for ( i = 0; i < syncProfileNames.count(); ++i ) { | 569 | for ( i = 0; i < syncProfileNames.count(); ++i ) { |
568 | mCurrentSyncProfile = i; | 570 | mCurrentSyncProfile = i; |
569 | temp->setName(syncProfileNames[mCurrentSyncProfile]); | 571 | temp->setName(syncProfileNames[mCurrentSyncProfile]); |
570 | temp->readConfig(&config); | 572 | temp->readConfig(&config); |
571 | 573 | ||
572 | bool includeInRingSync = false; | 574 | bool includeInRingSync = false; |
573 | switch(mTargetApp) | 575 | switch(mTargetApp) |
574 | { | 576 | { |
575 | case (KAPI): | 577 | case (KAPI): |
576 | includeInRingSync = temp->getIncludeInRingSyncAB(); | 578 | includeInRingSync = temp->getIncludeInRingSyncAB(); |
577 | break; | 579 | break; |
578 | case (KOPI): | 580 | case (KOPI): |
579 | includeInRingSync = temp->getIncludeInRingSync(); | 581 | includeInRingSync = temp->getIncludeInRingSync(); |