summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/kaddressbook/germantranslation.txt2
-rw-r--r--bin/kdepim/kopiemail/germantranslation.txt2
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt2
-rw-r--r--bin/kdepim/pwmanager/germantranslation.txt2
-rw-r--r--korganizer/kodaymatrix.cpp14
-rw-r--r--korganizer/koprefsdialog.cpp4
-rw-r--r--libkcal/icalformatimpl.cpp7
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.cpp41
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.h4
-rw-r--r--libkdepim/kpimglobalprefs.cpp7
-rw-r--r--libkdepim/kpimglobalprefs.h6
-rw-r--r--libkdepim/kprefsdialog.cpp2
-rw-r--r--libkdepim/kprefsdialog.h7
-rw-r--r--microkde/kglobalsettings.cpp9
-rw-r--r--microkde/kglobalsettings.h1
15 files changed, 88 insertions, 22 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt
index 0884a83..85aed43 100644
--- a/bin/kdepim/kaddressbook/germantranslation.txt
+++ b/bin/kdepim/kaddressbook/germantranslation.txt
@@ -363,193 +363,193 @@
363{ "Size","Größe" }, 363{ "Size","Größe" },
364{ "Date","Datum" }, 364{ "Date","Datum" },
365{ "Mime Type","Mime Typ" }, 365{ "Mime Type","Mime Typ" },
366{ "Geo Data Input","Geo Dateneingabe" }, 366{ "Geo Data Input","Geo Dateneingabe" },
367{ "Sexagesimal","Sexagesimal" }, 367{ "Sexagesimal","Sexagesimal" },
368{ "North","Nord" }, 368{ "North","Nord" },
369{ "South","Süd" }, 369{ "South","Süd" },
370{ "East","Ost" }, 370{ "East","Ost" },
371{ "West","West" }, 371{ "West","West" },
372{ "Undefined","Unbestimmt" }, 372{ "Undefined","Unbestimmt" },
373{ "Edit Address","Bearbeite Adresse" }, 373{ "Edit Address","Bearbeite Adresse" },
374{ "Street:","Strasse:" }, 374{ "Street:","Strasse:" },
375{ "Post office box:","Postfach:" }, 375{ "Post office box:","Postfach:" },
376{ "Locality:","Stadt:" }, 376{ "Locality:","Stadt:" },
377{ "Region:","Region:" }, 377{ "Region:","Region:" },
378{ "Postal code:","PLZ:" }, 378{ "Postal code:","PLZ:" },
379{ "Country:","Staat:" }, 379{ "Country:","Staat:" },
380{ "This is the preferred address","Dies ist die bevorzugte Adresse" }, 380{ "This is the preferred address","Dies ist die bevorzugte Adresse" },
381{ "New...","Neu..." }, 381{ "New...","Neu..." },
382{ "Change Type","Ändere Art" }, 382{ "Change Type","Ändere Art" },
383{ "Edit Address Type","Ändere Address Art" }, 383{ "Edit Address Type","Ändere Address Art" },
384{ "Address Types","Address Art" }, 384{ "Address Types","Address Art" },
385{ "Domestic","Inland" }, 385{ "Domestic","Inland" },
386{ "International","International" }, 386{ "International","International" },
387{ "Parcel","Paket" }, 387{ "Parcel","Paket" },
388{ "Edit Contact Name","Ändere Kontakt Name" }, 388{ "Edit Contact Name","Ändere Kontakt Name" },
389{ "Honorific prefixes:","Namensprefixes:" }, 389{ "Honorific prefixes:","Namensprefixes:" },
390{ "Given name:","Vorname:" }, 390{ "Given name:","Vorname:" },
391{ "Additional names:","Mittelnamen:" }, 391{ "Additional names:","Mittelnamen:" },
392{ "Family names:","Nachname:" }, 392{ "Family names:","Nachname:" },
393{ "Honorific suffixes:","Namenssuffixe:" }, 393{ "Honorific suffixes:","Namenssuffixe:" },
394{ "Parse name automatically","Setze Namen automatisch" }, 394{ "Parse name automatically","Setze Namen automatisch" },
395{ "Edit Phone Numbers","Bearbeite Telefonnummern" }, 395{ "Edit Phone Numbers","Bearbeite Telefonnummern" },
396{ "Number","Nummer" }, 396{ "Number","Nummer" },
397{ "Type","Typ" }, 397{ "Type","Typ" },
398{ "Edit Phone Number","Bearbeite Telefonnummer" }, 398{ "Edit Phone Number","Bearbeite Telefonnummer" },
399{ "Number:","Nummer:" }, 399{ "Number:","Nummer:" },
400{ "This is the preferred phone number","Dies ist die bevorzugte Telefonnummer" }, 400{ "This is the preferred phone number","Dies ist die bevorzugte Telefonnummer" },
401{ "Types","Typen" }, 401{ "Types","Typen" },
402{ "Messenger","Messenger" }, 402{ "Messenger","Messenger" },
403{ "Other","Anderes" }, 403{ "Other","Anderes" },
404{ "Video","Video" }, 404{ "Video","Video" },
405{ "Mailbox","Mailbox" }, 405{ "Mailbox","Mailbox" },
406{ "Modem","Modem" }, 406{ "Modem","Modem" },
407{ "Car","Auto" }, 407{ "Car","Auto" },
408{ "PCS","PCS" }, 408{ "PCS","PCS" },
409{ "Category","Kategorie" }, 409{ "Category","Kategorie" },
410{ "Select Categories","Wähle Kategorien" }, 410{ "Select Categories","Wähle Kategorien" },
411{ " &Deselect All "," &Deselektiere alle " }, 411{ " &Deselect All "," &Deselektiere alle " },
412{ " &Edit Categories "," B&earbeite Kategorien " }, 412{ " &Edit Categories "," B&earbeite Kategorien " },
413{ "&OK","&OK" }, 413{ "&OK","&OK" },
414{ "&Cancel","Abbre&chen" }, 414{ "&Cancel","Abbre&chen" },
415{ "Configure","Konfiguriere" }, 415{ "Configure","Konfiguriere" },
416{ "Default","Voreinstellungen" }, 416{ "Default","Voreinstellungen" },
417{ "Addressbook","Adressbuch" }, 417{ "Addressbook","Adressbuch" },
418{ "Details view font","Schriftart Detailansicht" }, 418{ "Details view font","Schriftart Detailansicht" },
419{ "phone:123","phone:123" }, 419{ "phone:123","phone:123" },
420{ "Search only after <return> key pressed","Suche nur nach <return> Taste" }, 420{ "Search only after <return> key pressed","Suche nur nach <return> Taste" },
421{ "Honor KDE single click","Benutze KDE Einzelklick" }, 421{ "Honor KDE single click","Benutze KDE Einzelklick" },
422{ "Automatic name parsing for new addressees","Automa. Name Parsen für neue Einträge" }, 422{ "Automatic name parsing for new addressees","Automa. Name Parsen für neue Einträge" },
423{ "Display List and Details at once (restart)","Zeige Liste und Details zusammen(neustart)" }, 423{ "Display List and Details at once (restart)","Zeige Liste und Details zusammen(neustart)" },
424{ "Ask for quit when closing Ka/Pi","Vor Beenden von Ka/Pi nachfragen" }, 424{ "Ask for quit when closing Ka/Pi","Vor Beenden von Ka/Pi nachfragen" },
425{ "General","Allgemein" }, 425{ "General","Allgemein" },
426{ "Extensions (restart)","Extensions (restart)" }, 426{ "Extensions (restart)","Extensions (restart)" },
427{ "Description","Beschreibungen" }, 427{ "Description","Beschreibungen" },
428{ "Extensions","Extensions" }, 428{ "Extensions","Extensions" },
429{ "Prefixes","Prefixe" }, 429{ "Prefixes","Prefixe" },
430{ "Inclusions","Inclusions" }, 430{ "Inclusions","Inclusions" },
431{ "Suffixes","Suffixe" }, 431{ "Suffixes","Suffixe" },
432{ "Default formatted name:","Default format. Name:" }, 432{ "Default formatted name:","Default format. Name:" },
433{ "Empty","Leer" }, 433{ "Empty","Leer" },
434{ "Simple Name","Einfacher Name" }, 434{ "Simple Name","Einfacher Name" },
435{ "Full Name","Voller Name" }, 435{ "Full Name","Voller Name" },
436{ "Reverse Name","Namen umdrehen" }, 436{ "Reverse Name","Namen umdrehen" },
437{ "Contact","Kontakt" }, 437{ "Contact","Kontakt" },
438{ "Global","Allgemein" }, 438{ "Global","Allgemein" },
439{ "Phone","Telefon" }, 439{ "Phone","Telefon" },
440{ "SMS","SMS" }, 440{ "SMS","SMS" },
441{ "Language:(needs restart)","Sprache:(Neustart)" }, 441{ "Language:(needs restart)","Sprache:(Neustart)" },
442{ "English","English" }, 442{ "English","English" },
443{ "German","Deutsch" }, 443{ "German","Deutsch" },
444{ "French","Französisch" }, 444{ "French","Französisch" },
445{ "Italian","Italienisch" }, 445{ "Italian","Italienisch" },
446{ "User defined (usertranslation.txt)","Benutzerdef. (usertranslation.txt)" }, 446{ "User defined (usertranslation.txt)","Benutzerdef. (usertranslation.txt)" },
447{ "Time Format(nr):","Zeit Format(nr):" }, 447{ "Time Format(nr):","Zeit Format(nr):" },
448{ "24:00","24:00" }, 448{ "24:00","24:00" },
449{ "12:00am","12:00am" }, 449{ "12:00am","12:00am" },
450{ "Week starts on Sunday","Woche beginnt Sonntags" }, 450{ "Week starts on Sunday","Woche beginnt Sonntags" },
451{ "Locale","Locale" }, 451{ "Locale","Locale" },
452{ "Date Format:","Datums Format:" }, 452{ "Date Format:","Datums Format:" },
453{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 453{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
454{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 454{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
455{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 455{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
456{ "User defined","Benutzerdefiniert" }, 456{ "User defined","Benutzerdefiniert" },
457{ "User long date:","Format langes Datum:" }, 457{ "User long date:","Format langes Datum:" },
458{ "User short date:","Format kurzes Datum:" }, 458{ "User short date:","Format kurzes Datum:" },
459{ "Daylight start:","Sommerzeit Beginn:" }, 459{ "Daylight start:","Sommerzeit Start:" },
460{ "Daylight end:","Sommerzeit Ende:" }, 460{ "Daylight end:","Sommerzeit Ende:" },
461{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 461{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
462{ "Monday 19 April 2004: %A %d %B %Y","Monday 19 April 2004: %A %d %B %Y" }, 462{ "Monday 19 April 2004: %A %d %B %Y","Monday 19 April 2004: %A %d %B %Y" },
463{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 463{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
464{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 464{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
465{ "Date Format","Datums Format" }, 465{ "Date Format","Datums Format" },
466{ "Timezone:","Zeitzone:" }, 466{ "Timezone:","Zeitzone:" },
467{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 467{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
468{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 468{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
469{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 469{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
470{ "Used Mail Client","Benutzter Mail Client" }, 470{ "Used Mail Client","Benutzter Mail Client" },
471{ "Channel:","Channel:" }, 471{ "Channel:","Channel:" },
472{ "Message:","Message:" }, 472{ "Message:","Message:" },
473{ "Parameters:","Parameter:" }, 473{ "Parameters:","Parameter:" },
474{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 474{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
475{ "extra Message:","extra Message:" }, 475{ "extra Message:","extra Message:" },
476{ "extra Parameters:","extra Parameter:" }, 476{ "extra Parameters:","extra Parameter:" },
477{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 477{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
478{ "External Apps.","Externe Appl." }, 478{ "External Apps.","Externe Appl." },
479{ "Used %1 Client","Benutzer %1 Client" }, 479{ "Used %1 Client","Benutzer %1 Client" },
480{ "No email client installed","Keine Email Client installiert" }, 480{ "No email client installed","Keine Email Client installiert" },
481{ "Userdefined email client","Benutzerdef. Email Client" }, 481{ "Userdefined email client","Benutzerdef. Email Client" },
482{ "OM/Pi email client","OM/Pi Email Client" }, 482{ "OM/Pi email client","OM/Pi Email Client" },
483{ "Close KA/Pi?","Schließe KA/Pi?" }, 483{ "Close KA/Pi?","Schließe KA/Pi?" },
484{ "\nChanges will be saved!","\nÄnderungen werden gespeichert!" }, 484{ "\nChanges will be saved!","\nÄnderungen werden gespeichert!" },
485{ "Yes!","Ja!" }, 485{ "Yes!","Ja!" },
486{ "There was an error while attempting to save\n the address book. Please check that some \nother application is not using it. ","#There was an error while attempting to save\n the address book. Please check that some \nother application is not using it. " }, 486{ "There was an error while attempting to save\n the address book. Please check that some \nother application is not using it. ","#There was an error while attempting to save\n the address book. Please check that some \nother application is not using it. " },
487{ "Saving addressbook ... ","Speichere Adressbuch ... " }, 487{ "Saving addressbook ... ","Speichere Adressbuch ... " },
488{ "Addressbook saved!","Adressbuch gespeichert!" }, 488{ "Addressbook saved!","Adressbuch gespeichert!" },
489{ "Default Table View","Default Tabellenansicht" }, 489{ "Default Table View","Default Tabellenansicht" },
490{ "Merge and Remove","Zusammenfügen/entfernen" }, 490{ "Merge and Remove","Zusammenfügen/entfernen" },
491{ "Merge","Zusammenfügen" }, 491{ "Merge","Zusammenfügen" },
492{ "Merge Contacts Editor","Contact-Zusammenfüge-Editor" }, 492{ "Merge Contacts Editor","Contact-Zusammenfüge-Editor" },
493{ "New List...","Neue Liste..." }, 493{ "New List...","Neue Liste..." },
494{ "Rename List...","Ändere Namen..." }, 494{ "Rename List...","Ändere Namen..." },
495{ "Remove List","Lösche Liste" }, 495{ "Remove List","Lösche Liste" },
496{ "Add Contact","Kontakt hinzu" }, 496{ "Add Contact","Kontakt hinzu" },
497{ "Change Email...","Ändere Email..." }, 497{ "Change Email...","Ändere Email..." },
498{ "Remove Contact","Entferne Kontakt" }, 498{ "Remove Contact","Entferne Kontakt" },
499{ "Use Preferred","Nutze Preferred" }, 499{ "Use Preferred","Nutze Preferred" },
500{ "Distribution List Editor","Distribution List Editor" }, 500{ "Distribution List Editor","Distribution List Editor" },
501{ "Choose which contacts to export","Wähle Kontakte zum Exportieren" }, 501{ "Choose which contacts to export","Wähle Kontakte zum Exportieren" },
502{ "Which contacts do you want to export?","Welche Kontakte sollen exportiert werden?" }, 502{ "Which contacts do you want to export?","Welche Kontakte sollen exportiert werden?" },
503{ "Contact Selection","Kontaktauswahl" }, 503{ "Contact Selection","Kontaktauswahl" },
504{ "&All","&Alle" }, 504{ "&All","&Alle" },
505{ "Export the entire address book","Exportiere das komplette Addressbuch" }, 505{ "Export the entire address book","Exportiere das komplette Addressbuch" },
506{ "&Selected","Au&sgewählte" }, 506{ "&Selected","Au&sgewählte" },
507{ "Only export contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected.","###Only export contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected." }, 507{ "Only export contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected.","###Only export contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected." },
508{ "By matching &filter","Zutreffender &Filter" }, 508{ "By matching &filter","Zutreffender &Filter" },
509{ "Only export contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters","###Only export contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters" }, 509{ "Only export contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters","###Only export contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters" },
510{ "By Cate&gories","Kategorien" }, 510{ "By Cate&gories","Kategorien" },
511{ "Only export contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories.","###Only export contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories." }, 511{ "Only export contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories.","###Only export contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories." },
512{ "Select a filter to decide which contacts to export.","Wähle Filter zum Export aus." }, 512{ "Select a filter to decide which contacts to export.","Wähle Filter zum Export aus." },
513{ "Check the categories whose members you want to export.","Wähle die Kategorien zum Export aus." }, 513{ "Check the categories whose members you want to export.","Wähle die Kategorien zum Export aus." },
514{ "Sorting","Sortieren" }, 514{ "Sorting","Sortieren" },
515{ "Criterion:","Merkmal:" }, 515{ "Criterion:","Merkmal:" },
516{ "Order:","Reihenfolge:" }, 516{ "Order:","Reihenfolge:" },
517{ "Ascending","Aufsteigend" }, 517{ "Ascending","Aufsteigend" },
518{ "Descending","Absteigend" }, 518{ "Descending","Absteigend" },
519{ "Save file","Datei speichern" }, 519{ "Save file","Datei speichern" },
520{ "Error","Fehler" }, 520{ "Error","Fehler" },
521{ "Unable to export contacts.","Exportieren der Kontakte geht nicht." }, 521{ "Unable to export contacts.","Exportieren der Kontakte geht nicht." },
522{ "\nNo unsaved changes detected!\nNothing will be saved!","\nKeine ungespeicherten\nÄnderungen erkannt!\nNichts wird gespeichert!" }, 522{ "\nNo unsaved changes detected!\nNothing will be saved!","\nKeine ungespeicherten\nÄnderungen erkannt!\nNichts wird gespeichert!" },
523{ "Manage new categories...","Verwalte neue Kategorien..." }, 523{ "Manage new categories...","Verwalte neue Kategorien..." },
524{ "&File","Datei" }, 524{ "&File","Datei" },
525{ "&Edit","Bearbeite" }, 525{ "&Edit","Bearbeite" },
526{ "&View","Ansichten" }, 526{ "&View","Ansichten" },
527{ "&Settings","Konfiguration" }, 527{ "&Settings","Konfiguration" },
528{ "&Change selected","Ändere Selekt." }, 528{ "&Change selected","Ändere Selekt." },
529{ "&Help","Hilfe" }, 529{ "&Help","Hilfe" },
530{ "Remove sync info","Entferne Sync Info" }, 530{ "Remove sync info","Entferne Sync Info" },
531{ "For all profiles","Für alle Profile" }, 531{ "For all profiles","Für alle Profile" },
532{ "&Change","Ändere" }, 532{ "&Change","Ändere" },
533{ "Import xml (Qtopia)...","Importiere xml (Qtopia)..." }, 533{ "Import xml (Qtopia)...","Importiere xml (Qtopia)..." },
534{ "Export xml (Qtopia)...","Exportiere xml (Qtopia)..." }, 534{ "Export xml (Qtopia)...","Exportiere xml (Qtopia)..." },
535{ "Export to phone","Exportiere aufs Handy..." }, 535{ "Export to phone","Exportiere aufs Handy..." },
536{ "Which contacts do you want to select?","Welche Kontakte möchten Sie wählen?" }, 536{ "Which contacts do you want to select?","Welche Kontakte möchten Sie wählen?" },
537{ "&Modify","Ändere" }, 537{ "&Modify","Ändere" },
538{ "Choose which contacts to select","Bitte Kontakte auswählen!" }, 538{ "Choose which contacts to select","Bitte Kontakte auswählen!" },
539{ "After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nKontakten geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " }, 539{ "After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nKontakten geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " },
540{ "Manage new Categories","Verwalte neue Kategorien" }, 540{ "Manage new Categories","Verwalte neue Kategorien" },
541{ "Add to category list","Füge zur Kategorieliste hinzu" }, 541{ "Add to category list","Füge zur Kategorieliste hinzu" },
542{ "Remove from addressees","Entferne von den Kontakten" }, 542{ "Remove from addressees","Entferne von den Kontakten" },
543{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" }, 543{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" },
544{ "A&dd","Hinzufügen" }, 544{ "A&dd","Hinzufügen" },
545{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, 545{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." },
546{ "NOTE: This will remove all old\ncontact data on phone!","ACHTUNG: Das löscht alle alten\nKontakt Daten auf dem Handy!" }, 546{ "NOTE: This will remove all old\ncontact data on phone!","ACHTUNG: Das löscht alle alten\nKontakt Daten auf dem Handy!" },
547{ "Export to mobile phone!","Exportiere auf das Handy!" }, 547{ "Export to mobile phone!","Exportiere auf das Handy!" },
548{ "Export to phone options","Export ans Handy Optionen" }, 548{ "Export to phone options","Export ans Handy Optionen" },
549{ "Writing to phone...","Sende Daten ans Handy..." }, 549{ "Writing to phone...","Sende Daten ans Handy..." },
550{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, 550{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" },
551{ "Retry","Nochmal versuchen" }, 551{ "Retry","Nochmal versuchen" },
552{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, 552{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" },
553{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, 553{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" },
554{ "Error exporting to phone!","Fehler beim Export auf das Handy!" }, 554{ "Error exporting to phone!","Fehler beim Export auf das Handy!" },
555{ "&Print View","Drucke Ansicht" }, 555{ "&Print View","Drucke Ansicht" },
diff --git a/bin/kdepim/kopiemail/germantranslation.txt b/bin/kdepim/kopiemail/germantranslation.txt
index 903abdf..75fdd11 100644
--- a/bin/kdepim/kopiemail/germantranslation.txt
+++ b/bin/kdepim/kopiemail/germantranslation.txt
@@ -1,136 +1,136 @@
1{ " Local Time"," Locale Zeit" }, 1{ " Local Time"," Locale Zeit" },
2{ "Preferences","Vorlieben" }, 2{ "Preferences","Vorlieben" },
3{ "Ok","Ok" }, 3{ "Ok","Ok" },
4{ "Default","Standard" }, 4{ "Default","Standard" },
5{ "Cancel","Abbrechen" }, 5{ "Cancel","Abbrechen" },
6{ "Global","Global" }, 6{ "Global","Global" },
7{ "Email","Email" }, 7{ "Email","Email" },
8{ "Phone","Phone" }, 8{ "Phone","Phone" },
9{ "SMS","SMS" }, 9{ "SMS","SMS" },
10{ "Fax","Fax" }, 10{ "Fax","Fax" },
11{ "Pager","Pager" }, 11{ "Pager","Pager" },
12{ "SIP","SIP" }, 12{ "SIP","SIP" },
13{ "Language:(needs restart)","Sprache (Neustart!)" }, 13{ "Language:(needs restart)","Sprache (Neustart!)" },
14{ "English","Englisch" }, 14{ "English","Englisch" },
15{ "German","Deutsch" }, 15{ "German","Deutsch" },
16{ "French","Französich" }, 16{ "French","Französich" },
17{ "Italian","Italienisch" }, 17{ "Italian","Italienisch" },
18{ "User defined (usertranslation.txt)","Benutzerdef.(usertranslation.txt)" }, 18{ "User defined (usertranslation.txt)","Benutzerdef.(usertranslation.txt)" },
19{ "Time Format(nr):","Zeit Format(Neustart!)" }, 19{ "Time Format(nr):","Zeit Format(Neustart!)" },
20{ "24:00","24:00" }, 20{ "24:00","24:00" },
21{ "12:00am","12:00am" }, 21{ "12:00am","12:00am" },
22{ "Week starts on Sunday","Woche beginnt Sonntags" }, 22{ "Week starts on Sunday","Woche beginnt Sonntags" },
23{ "Locale","Localisation" }, 23{ "Locale","Localisation" },
24{ "Date Format:","Datums Format:" }, 24{ "Date Format:","Datums Format:" },
25{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 25{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
26{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 26{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
27{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 27{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
28{ "User defined","Benutzerdefiniert" }, 28{ "User defined","Benutzerdefiniert" },
29{ "User long date:","Format langes Datum:" }, 29{ "User long date:","Format langes Datum:" },
30{ "User short date:","Format kurzes Datum:" }, 30{ "User short date:","Format kurzes Datum:" },
31{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" }, 31{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" },
32{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 32{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
33{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 33{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
34{ "Date Format","Datums Format" }, 34{ "Date Format","Datums Format" },
35{ "Timezone:","Zeitzone:" }, 35{ "Timezone:","Zeitzone:" },
36{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 36{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
37{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 37{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
38{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 38{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
39{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 39{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
40{ "Daylight start:","Sommerzeit Beginn:" }, 40{ "Daylight start:","Sommerzeit Start:" },
41{ "Mon","Mo" }, 41{ "Mon","Mo" },
42{ "Tue","Di" }, 42{ "Tue","Di" },
43{ "Wed","Mi" }, 43{ "Wed","Mi" },
44{ "Thu","Do" }, 44{ "Thu","Do" },
45{ "Fri","Fr" }, 45{ "Fri","Fr" },
46{ "Sat","Sa" }, 46{ "Sat","Sa" },
47{ "Sun","So" }, 47{ "Sun","So" },
48{ "January","Januar" }, 48{ "January","Januar" },
49{ "February","Februar" }, 49{ "February","Februar" },
50{ "March","März" }, 50{ "March","März" },
51{ "April","April" }, 51{ "April","April" },
52{ "May","Mai" }, 52{ "May","Mai" },
53{ "June","Juni" }, 53{ "June","Juni" },
54{ "July","Juli" }, 54{ "July","Juli" },
55{ "August","August" }, 55{ "August","August" },
56{ "September","September" }, 56{ "September","September" },
57{ "October","Oktober" }, 57{ "October","Oktober" },
58{ "November","November" }, 58{ "November","November" },
59{ "December","Dezember" }, 59{ "December","Dezember" },
60{ "tomorrow","morgen" }, 60{ "tomorrow","morgen" },
61{ "today","heute" }, 61{ "today","heute" },
62{ "yesterday","gestern" }, 62{ "yesterday","gestern" },
63{ "Monday","Montag" }, 63{ "Monday","Montag" },
64{ "Tuesday","Dienstag" }, 64{ "Tuesday","Dienstag" },
65{ "Wednesday","Mittwoch" }, 65{ "Wednesday","Mittwoch" },
66{ "Thursday","Donnerstag" }, 66{ "Thursday","Donnerstag" },
67{ "Friday","Freitag" }, 67{ "Friday","Freitag" },
68{ "Saturday","Samstag" }, 68{ "Saturday","Samstag" },
69{ "Sunday","Sonntag" }, 69{ "Sunday","Sonntag" },
70{ "Daylight end:","Sommerzeit Ende:" }, 70{ "Daylight end:","Sommerzeit Ende:" },
71{ "Time Zone","Zeitzone" }, 71{ "Time Zone","Zeitzone" },
72{ "Used Mail Client","Benutzter Mail Client" }, 72{ "Used Mail Client","Benutzter Mail Client" },
73{ "Channel:","Channel:" }, 73{ "Channel:","Channel:" },
74{ "Message:","Message:" }, 74{ "Message:","Message:" },
75{ "Parameters:","Parameter:" }, 75{ "Parameters:","Parameter:" },
76{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 76{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
77{ "extra Message:","extra Message:" }, 77{ "extra Message:","extra Message:" },
78{ "extra Parameters:","extra Parameter:" }, 78{ "extra Parameters:","extra Parameter:" },
79{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 79{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
80{ "External Apps.","Externe Appl." }, 80{ "External Apps.","Externe Appl." },
81{ "General","Allgemein" }, 81{ "General","Allgemein" },
82{ "Full &name:","Vor- und &Nachname:" }, 82{ "Full &name:","Vor- und &Nachname:" },
83{ "E&mail address:","E&mail Adresse:" }, 83{ "E&mail address:","E&mail Adresse:" },
84{ "Fonts","Schriftart" }, 84{ "Fonts","Schriftart" },
85{ "Choose...","Wähle..." }, 85{ "Choose...","Wähle..." },
86{ "Used %1 Client","Benutzter %1 Client" }, 86{ "Used %1 Client","Benutzter %1 Client" },
87{ "No email client installed","Kein Email Klient installiert" }, 87{ "No email client installed","Kein Email Klient installiert" },
88{ "Userdefined email client","Benutzerdef. Email Klient" }, 88{ "Userdefined email client","Benutzerdef. Email Klient" },
89{ "OM/Pi email client","OM/Pi Email Klient" }, 89{ "OM/Pi email client","OM/Pi Email Klient" },
90{ "Delete","Löschen" }, 90{ "Delete","Löschen" },
91{ "New","Neu" }, 91{ "New","Neu" },
92{ "Edit","Bearbeite" }, 92{ "Edit","Bearbeite" },
93{ "Close","Schließen" }, 93{ "Close","Schließen" },
94{ "Size","Größe" }, 94{ "Size","Größe" },
95{ "Date","Datum" }, 95{ "Date","Datum" },
96{ "Please set at","Bitte einstellen in" }, 96{ "Please set at","Bitte einstellen in" },
97{ "Settings@General TAB","Einstellungen@Allgemein TAB" }, 97{ "Settings@General TAB","Einstellungen@Allgemein TAB" },
98{ "KOpieMail/Pi","KOpieMail/Pi" }, 98{ "KOpieMail/Pi","KOpieMail/Pi" },
99{ "Mail","Mail" }, 99{ "Mail","Mail" },
100{ "Settings","Konfig" }, 100{ "Settings","Konfig" },
101{ "Get all new mails","Hole alle neuen Mails" }, 101{ "Get all new mails","Hole alle neuen Mails" },
102{ "Get new messages","Hole neue mails" }, 102{ "Get new messages","Hole neue mails" },
103{ "Compose new mail","Schreibe neue Mail" }, 103{ "Compose new mail","Schreibe neue Mail" },
104{ "Send queued mails","Sende gespeicherte Mails" }, 104{ "Send queued mails","Sende gespeicherte Mails" },
105{ "Show/Hide folders","Zeige Verzeichnisse" }, 105{ "Show/Hide folders","Zeige Verzeichnisse" },
106{ "Delete Mail","Lösche Mail" }, 106{ "Delete Mail","Lösche Mail" },
107{ "Edit settings","Ändere Einstellungen" }, 107{ "Edit settings","Ändere Einstellungen" },
108{ "Configure accounts","Konfiguriere Zugänge" }, 108{ "Configure accounts","Konfiguriere Zugänge" },
109{ "Mailbox","Mailbox" }, 109{ "Mailbox","Mailbox" },
110{ "Subject","Betreff" }, 110{ "Subject","Betreff" },
111{ "Sender","Sender" }, 111{ "Sender","Sender" },
112{ "Size","Größe" }, 112{ "Size","Größe" },
113{ "Date","Datum" }, 113{ "Date","Datum" },
114{ "Close","Schliessen" }, 114{ "Close","Schliessen" },
115{ "Help","Hilfe" }, 115{ "Help","Hilfe" },
116{ "About","Über" }, 116{ "About","Über" },
117{ "Licence","Lizenz" }, 117{ "Licence","Lizenz" },
118{ "LibEtPan Licence","LibEtPan Lizenz" }, 118{ "LibEtPan Licence","LibEtPan Lizenz" },
119{ "Settings - some need a restart (nr)","Einstellungen - manche benötigen einen Neustart (nr)" }, 119{ "Settings - some need a restart (nr)","Einstellungen - manche benötigen einen Neustart (nr)" },
120{ "HINT: Separate multiple\neMail addresses by ";"","Hinweis:Trenne mehrere\nAddressen mit einem ";"" }, 120{ "HINT: Separate multiple\neMail addresses by ";"","Hinweis:Trenne mehrere\nAddressen mit einem ";"" },
121{ "Ignore above settings and\nuse KA/Pi "Who am I" instead!","Ignoriere obige Einstellungen und\nbenutze KA/Pi "Wer bin ich"\nstattdessen!" }, 121{ "Ignore above settings and\nuse KA/Pi "Who am I" instead!","Ignoriere obige Einstellungen und\nbenutze KA/Pi "Wer bin ich"\nstattdessen!" },
122{ "View mail as html","Zeige Mails als html" }, 122{ "View mail as html","Zeige Mails als html" },
123{ "Send mails later","Sende Mails später" }, 123{ "Send mails later","Sende Mails später" },
124{ "Application(nr)","Applikation(nr)" }, 124{ "Application(nr)","Applikation(nr)" },
125{ "OK","OK" }, 125{ "OK","OK" },
126{ "Compose mail:","Verfasse Mail:" }, 126{ "Compose mail:","Verfasse Mail:" },
127{ "Dear Mr.","Hallo Herr" }, 127{ "Dear Mr.","Hallo Herr" },
128{ "Read mail:","Lese Mail:" }, 128{ "Read mail:","Lese Mail:" },
129{ "Hello","Hallo" }, 129{ "Hello","Hallo" },
130{ "Configure Accounts","Konfigure Zugänge" }, 130{ "Configure Accounts","Konfigure Zugänge" },
131{ "Name of the Account","Name des Zugangs" }, 131{ "Name of the Account","Name des Zugangs" },
132{ "News","News" }, 132{ "News","News" },
133{ "Account","Zugang" }, 133{ "Account","Zugang" },
134{ "Type","Typ" }, 134{ "Type","Typ" },
135{ "<p>Please select an account.</p>","<p>Bitte wähle einen Zugang.</p>" }, 135{ "<p>Please select an account.</p>","<p>Bitte wähle einen Zugang.</p>" },
136{ "Error","Fehler" }, 136{ "Error","Fehler" },
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 5693112..fa18304 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -352,193 +352,193 @@
352{ "Shopping","Einkaufen" }, 352{ "Shopping","Einkaufen" },
353{ "Show Dates","Zeige Daten" }, 353{ "Show Dates","Zeige Daten" },
354{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." }, 354{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." },
355{ "Show Event...","Zeige Termin..." }, 355{ "Show Event...","Zeige Termin..." },
356{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." }, 356{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." },
357{ "Show Marcus Bains line","Zeige Marcus Bains Linie" }, 357{ "Show Marcus Bains line","Zeige Marcus Bains Linie" },
358{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." }, 358{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." },
359{ "Show time as:","Zeige Zeit als" }, 359{ "Show time as:","Zeige Zeit als" },
360{ "Show Todo...","Zeige To-Do" }, 360{ "Show Todo...","Zeige To-Do" },
361{ "Show vertical screen (Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" }, 361{ "Show vertical screen (Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" },
362{ "&Show","Zeige" }, 362{ "&Show","Zeige" },
363{ "Show...","Zeige..." }, 363{ "Show...","Zeige..." },
364{ "Show","Zeige" }, 364{ "Show","Zeige" },
365{ "Small","Klein" }, 365{ "Small","Klein" },
366{ "Sorry","Entschuldigung" }, 366{ "Sorry","Entschuldigung" },
367{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"}, 367{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"},
368{ "Start:","Start:" }, 368{ "Start:","Start:" },
369{ "Start Date","Start Datum" }, 369{ "Start Date","Start Datum" },
370{ "Start date: %1","Start Datum: %1" }, 370{ "Start date: %1","Start Datum: %1" },
371{ "Start Time","Start Zeit" }, 371{ "Start Time","Start Zeit" },
372{ "Status:","Status:" }, 372{ "Status:","Status:" },
373{ "Status","Status:" }, 373{ "Status","Status:" },
374{ "Summaries","Titel" }, 374{ "Summaries","Titel" },
375{ "Summary:","Titel:" }, 375{ "Summary:","Titel:" },
376{ "Summary","Titel" }, 376{ "Summary","Titel" },
377{ "Sunday","Sonntag" }, 377{ "Sunday","Sonntag" },
378{ "Sun","So" }, 378{ "Sun","So" },
379{ "Sync preferences:","Sync Einstellungen" }, 379{ "Sync preferences:","Sync Einstellungen" },
380{ "Sync Prefs","Sync Einstellungen" }, 380{ "Sync Prefs","Sync Einstellungen" },
381{ "Syncronize","Daten abgleich" }, 381{ "Syncronize","Daten abgleich" },
382{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, 382{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" },
383{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, 383{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" },
384{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, 384{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" },
385{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" }, 385{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" },
386{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" }, 386{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" },
387{ "Template...","Vorlage..." }, 387{ "Template...","Vorlage..." },
388{ "This day","Dieser Tag" }, 388{ "This day","Dieser Tag" },
389{ "This is an experimental feature. ","Dieses Feature ist experimentel" }, 389{ "This is an experimental feature. ","Dieses Feature ist experimentel" },
390{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." }, 390{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." },
391{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." }, 391{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." },
392{ "Thu","Do" }, 392{ "Thu","Do" },
393{ "Thursday","Donnerstag" }, 393{ "Thursday","Donnerstag" },
394{ "Time associated","Mit Zeit" }, 394{ "Time associated","Mit Zeit" },
395{ "Time bar:","Uhrzeit Zeile:" }, 395{ "Time bar:","Uhrzeit Zeile:" },
396{ "Time && Date","Zeit und Datum" }, 396{ "Time && Date","Zeit und Datum" },
397{ "Time Format","Zeit Format" }, 397{ "Time Format","Zeit Format" },
398{ "Time Format(nr):","Zeit Format(Neustart!)" }, 398{ "Time Format(nr):","Zeit Format(Neustart!)" },
399{ "Date Labels:","Datumsleiste:" }, 399{ "Date Labels:","Datumsleiste:" },
400{ "Time: ","Zeit: " }, 400{ "Time: ","Zeit: " },
401{ "Timezone:","Zeitzone:" }, 401{ "Timezone:","Zeitzone:" },
402{ "To: ","Bis: " }, 402{ "To: ","Bis: " },
403{ "To:","Bis:" }, 403{ "To:","Bis:" },
404{ "Today: ","Heute: " }, 404{ "Today: ","Heute: " },
405{ "Todo due today color:","Heute fällige To-Do's" }, 405{ "Todo due today color:","Heute fällige To-Do's" },
406{ "To-do items:","To-Do items:" }, 406{ "To-do items:","To-Do items:" },
407{ "Todo overdue color:","Überfällige To-Do's" }, 407{ "Todo overdue color:","Überfällige To-Do's" },
408{ "Todo","Todo" }, 408{ "Todo","Todo" },
409{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" }, 409{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" },
410{ "ToDoView:","Todo Ansicht:" }, 410{ "ToDoView:","Todo Ansicht:" },
411{ "Toggle Alarm","Wechsle Alarm" }, 411{ "Toggle Alarm","Wechsle Alarm" },
412{ "Toggle Allday","Umschalten Ganztag" }, 412{ "Toggle Allday","Umschalten Ganztag" },
413{ "Tomorrow: ","Morgen: " }, 413{ "Tomorrow: ","Morgen: " },
414{ "Tue","Di" }, 414{ "Tue","Di" },
415{ "Tuesday","Dienstag" }, 415{ "Tuesday","Dienstag" },
416{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" }, 416{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" },
417{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." }, 417{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." },
418{ "Unknown","Unbekannt" }, 418{ "Unknown","Unbekannt" },
419{ "Up","Hinauf" }, 419{ "Up","Hinauf" },
420{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" }, 420{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" },
421{ "User defined","Benutzerdefiniert" }, 421{ "User defined","Benutzerdefiniert" },
422{ "User long date:","Format langes Datum:" }, 422{ "User long date:","Format langes Datum:" },
423{ "User short date:","Forma kurzes Datum:" }, 423{ "User short date:","Forma kurzes Datum:" },
424{ "View","Ansicht" }, 424{ "View","Ansicht" },
425{ "View Fonts","Schriftarten Ansichten" }, 425{ "View Fonts","Schriftarten Ansichten" },
426{ "Views","Ansichten" }, 426{ "Views","Ansichten" },
427{ "Wed","Mi" }, 427{ "Wed","Mi" },
428{ "Wednesday","Mittwoch" }, 428{ "Wednesday","Mittwoch" },
429{ "Week %1","Woche %1" }, 429{ "Week %1","Woche %1" },
430{ "Weekly","Wöchentlich" }, 430{ "Weekly","Wöchentlich" },
431{ "Week starts on Sunday","Woche beginnt Sonntags" }, 431{ "Week starts on Sunday","Woche beginnt Sonntags" },
432{ "What's Next View:","What's Next Anz." }, 432{ "What's Next View:","What's Next Anz." },
433{ "What's next ?","Was kommt als nächstes?(What's Next)" }, 433{ "What's next ?","Was kommt als nächstes?(What's Next)" },
434{ "Working Hours","Tägliche Arbeitszeit" }, 434{ "Working Hours","Tägliche Arbeitszeit" },
435{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" }, 435{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" },
436{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" }, 436{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" },
437{ "Write back synced file","Syncronisierte Datei zurückschreiben" }, 437{ "Write back synced file","Syncronisierte Datei zurückschreiben" },
438{ "Yearly","Jährlich" }, 438{ "Yearly","Jährlich" },
439{ "year(s)","Jahr(e)" }, 439{ "year(s)","Jahr(e)" },
440{ "Yes","Ja" }, 440{ "Yes","Ja" },
441{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" }, 441{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" },
442{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." }, 442{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." },
443{ "week(s) on:","Woche(n) am: " }, 443{ "week(s) on:","Woche(n) am: " },
444{ "Full menu bar(nr)","Volle Menuleiste(bn)" }, 444{ "Full menu bar(nr)","Volle Menuleiste(bn)" },
445{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 445{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
446{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 446{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
447{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 447{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
448{ "Daylight start:","Sommerzeit Beginn:" }, 448{ "Daylight start:","Sommerzeit Start:" },
449{ "Daylight end:","Sommerzeit Ende:" }, 449{ "Daylight end:","Sommerzeit Ende:" },
450{ "Time Zone","Zeitzone" }, 450{ "Time Zone","Zeitzone" },
451{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" }, 451{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" },
452{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" }, 452{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" },
453{ "minutely","minütlich" }, 453{ "minutely","minütlich" },
454{ "hourly","stündlich" }, 454{ "hourly","stündlich" },
455{ "daily","täglich" }, 455{ "daily","täglich" },
456{ "weekly","wöchentlich" }, 456{ "weekly","wöchentlich" },
457{ "monthly","monatlich" }, 457{ "monthly","monatlich" },
458{ "day-monthly","tag-monatlich" }, 458{ "day-monthly","tag-monatlich" },
459{ "month-yearly","monat-jährlich" }, 459{ "month-yearly","monat-jährlich" },
460{ "day-yearly","tag-jährlich" }, 460{ "day-yearly","tag-jährlich" },
461{ "position-yearly","pos-jährlich" }, 461{ "position-yearly","pos-jährlich" },
462{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" }, 462{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" },
463{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" }, 463{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" },
464{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" }, 464{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" },
465{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" }, 465{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" },
466{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" }, 466{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" },
467{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." }, 467{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." },
468{ "Event list view uses full window","Listenansicht nutzt Vollbild" }, 468{ "Event list view uses full window","Listenansicht nutzt Vollbild" },
469{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" }, 469{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" },
470{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" }, 470{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" },
471{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" }, 471{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" },
472{ "ViewChange","Ansichtswechsel" }, 472{ "ViewChange","Ansichtswechsel" },
473{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" }, 473{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" },
474{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" }, 474{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" },
475{ "File","Datei" }, 475{ "File","Datei" },
476{ "Clone...","Dupliziere.." }, 476{ "Clone...","Dupliziere.." },
477{ "Move...","Bewege..." }, 477{ "Move...","Bewege..." },
478{ "Beam...","Sende via IR..." }, 478{ "Beam...","Sende via IR..." },
479{ "&Clone...","Dupliziere.." }, 479{ "&Clone...","Dupliziere.." },
480{ "&Move...","Bewege..." }, 480{ "&Move...","Bewege..." },
481{ "&Beam...","Sende via IR..." }, 481{ "&Beam...","Sende via IR..." },
482{ "Show Completed","Zeige erledigte Todos" }, 482{ "Show Completed","Zeige erledigte Todos" },
483{ "Show Quick Todo","Zeige Quick Todo" }, 483{ "Show Quick Todo","Zeige Quick Todo" },
484{ "Unparent Todo","Un-sub Todo" }, 484{ "Unparent Todo","Un-sub Todo" },
485{ "Save selected to file...","Speichere Selektierte..." }, 485{ "Save selected to file...","Speichere Selektierte..." },
486{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." }, 486{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." },
487{ "Set Categ. for selected...","Setze Kateg. für Selekt." }, 487{ "Set Categ. for selected...","Setze Kateg. für Selekt." },
488{ "Beam selected via IR","Sende Selekt. via IR..." }, 488{ "Beam selected via IR","Sende Selekt. via IR..." },
489{ "Search","Suchen" }, 489{ "Search","Suchen" },
490{ "Date Picker","Datum auswählen" }, 490{ "Date Picker","Datum auswählen" },
491{ "Day View","Tagesansicht" }, 491{ "Day View","Tagesansicht" },
492{ "Work Week","Arbeitswoche" }, 492{ "Work Week","Arbeitswoche" },
493{ "Week","Wochenansicht" }, 493{ "Week","Wochenansicht" },
494{ "Month","Monatsansicht" }, 494{ "Month","Monatsansicht" },
495{ "Todo View","Todo Liste" }, 495{ "Todo View","Todo Liste" },
496{ "Journal","Journal" }, 496{ "Journal","Journal" },
497{ "Next days","Nächste Tage" }, 497{ "Next days","Nächste Tage" },
498{ "Print agenda selection...","Drucke Agendaselektion..." }, 498{ "Print agenda selection...","Drucke Agendaselektion..." },
499{ "Toggle DateNavigator","Navigator umschalten" }, 499{ "Toggle DateNavigator","Navigator umschalten" },
500{ "Toggle FilterView","Filteransicht umschalten" }, 500{ "Toggle FilterView","Filteransicht umschalten" },
501{ "Prev. month","Vorheriger Monat" }, 501{ "Prev. month","Vorheriger Monat" },
502{ "Go backward","Gehe zurück" }, 502{ "Go backward","Gehe zurück" },
503{ "Go forward","Gehe weiter" }, 503{ "Go forward","Gehe weiter" },
504{ "Synchronize","Synchronisieren" }, 504{ "Synchronize","Synchronisieren" },
505{ "AgendaSize","Agendagröße" }, 505{ "AgendaSize","Agendagröße" },
506{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" }, 506{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" },
507{ "Import last file","Importiere letzte Datei" }, 507{ "Import last file","Importiere letzte Datei" },
508{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." }, 508{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." },
509{ "Load Calendar Backup","Lade Kalender Backup" }, 509{ "Load Calendar Backup","Lade Kalender Backup" },
510{ "Save Calendar Backup","Speichere Kalender Backup" }, 510{ "Save Calendar Backup","Speichere Kalender Backup" },
511{ "Export VCalendar","Exportiere VCalendar" }, 511{ "Export VCalendar","Exportiere VCalendar" },
512{ "Manage new categories...","Verwalte neue Kategorien..." }, 512{ "Manage new categories...","Verwalte neue Kategorien..." },
513{ "Beam complete calendar...","Sende kompletten Kalender via IR" }, 513{ "Beam complete calendar...","Sende kompletten Kalender via IR" },
514{ "Beam filtered calendar...","Sende gefilterten Kalender via IR" }, 514{ "Beam filtered calendar...","Sende gefilterten Kalender via IR" },
515{ "Remote via ssh","Über Netzwerk via ssh" }, 515{ "Remote via ssh","Über Netzwerk via ssh" },
516{ "With local file","Mit lokaler Datei" }, 516{ "With local file","Mit lokaler Datei" },
517{ "With last file","Mit letzter Datei" }, 517{ "With last file","Mit letzter Datei" },
518{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" }, 518{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" },
519{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" }, 519{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" },
520{ "Save filename","Speichern: Dateinamen wählen" }, 520{ "Save filename","Speichern: Dateinamen wählen" },
521{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" }, 521{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" },
522{ "KO/Pi: Warning!","KO/Pi: Warnung!" }, 522{ "KO/Pi: Warning!","KO/Pi: Warnung!" },
523{ "Overwrite!","Überschreibe!" }, 523{ "Overwrite!","Überschreibe!" },
524{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 524{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
525{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" }, 525{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" },
526{ "KO/Pi Confirmation","KO/Pi Bestätigung" }, 526{ "KO/Pi Confirmation","KO/Pi Bestätigung" },
527{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" }, 527{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" },
528{ "Deleting item %d ...","Lösche Eintrag %d ..." }, 528{ "Deleting item %d ...","Lösche Eintrag %d ..." },
529{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." }, 529{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." },
530{ "Size","Größe" }, 530{ "Size","Größe" },
531{ "Date","Datum" }, 531{ "Date","Datum" },
532{ "Mime Type","Datei Typ" }, 532{ "Mime Type","Datei Typ" },
533{ "All Files","Alle Dateien" }, 533{ "All Files","Alle Dateien" },
534{ "Files","Dateien" }, 534{ "Files","Dateien" },
535{ "Documents","DoKumente" }, 535{ "Documents","DoKumente" },
536{ "Select Categories","Selektiere Kategorien" }, 536{ "Select Categories","Selektiere Kategorien" },
537{ " &Deselect All "," Auswahl aufheben " }, 537{ " &Deselect All "," Auswahl aufheben " },
538{ "A&dd","Hinzu" }, 538{ "A&dd","Hinzu" },
539{ "&Modify","Ändern" }, 539{ "&Modify","Ändern" },
540{ "Edit Categories","Editiere Kategorien" }, 540{ "Edit Categories","Editiere Kategorien" },
541{ " &Edit Categories "," &Editiere Kategorien " }, 541{ " &Edit Categories "," &Editiere Kategorien " },
542{ "Beam Options","Beam Einstellungen" }, 542{ "Beam Options","Beam Einstellungen" },
543{ " With timezone "," Mit Zeitzone " }, 543{ " With timezone "," Mit Zeitzone " },
544{ " Local time ", " Lokale Zeit " }, 544{ " Local time ", " Lokale Zeit " },
diff --git a/bin/kdepim/pwmanager/germantranslation.txt b/bin/kdepim/pwmanager/germantranslation.txt
index beb066e..a50dd04 100644
--- a/bin/kdepim/pwmanager/germantranslation.txt
+++ b/bin/kdepim/pwmanager/germantranslation.txt
@@ -40,193 +40,193 @@
40{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" }, 40{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" },
41{ "Sync preferences","Synchronisations Einstellungen" }, 41{ "Sync preferences","Synchronisations Einstellungen" },
42{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, 42{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" },
43{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, 43{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" },
44{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, 44{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" },
45{ "Ask for every entry on conflict","Frage bei Konflikten nach" }, 45{ "Ask for every entry on conflict","Frage bei Konflikten nach" },
46{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" }, 46{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" },
47{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" }, 47{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" },
48{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" }, 48{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" },
49{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" }, 49{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" },
50{ "Incoming calendar filter:","Eingehender Kalender Filter:" }, 50{ "Incoming calendar filter:","Eingehender Kalender Filter:" },
51{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" }, 51{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" },
52{ "Write back synced data","Schreibe gesyncte Daten zurück" }, 52{ "Write back synced data","Schreibe gesyncte Daten zurück" },
53{ "Write back options","Optionen zum Zurückschreiben" }, 53{ "Write back options","Optionen zum Zurückschreiben" },
54{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" }, 54{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" },
55{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" }, 55{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" },
56{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" }, 56{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" },
57{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" }, 57{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" },
58{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" }, 58{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" },
59{ "Time period","Zeitspanne" }, 59{ "Time period","Zeitspanne" },
60{ "From ","Von " }, 60{ "From ","Von " },
61{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " }, 61{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " },
62{ " weeks in the future "," Wochen in der Zukunft " }, 62{ " weeks in the future "," Wochen in der Zukunft " },
63{ "Profile kind","Profil Art" }, 63{ "Profile kind","Profil Art" },
64{ "Local file","Lokale Datei" }, 64{ "Local file","Lokale Datei" },
65{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, 65{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" },
66{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" }, 66{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" },
67{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, 67{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" },
68{ "Profile kind specific settings","Profil Art abhängige Einstellungen" }, 68{ "Profile kind specific settings","Profil Art abhängige Einstellungen" },
69{ "I/O device: ","I/O device: " }, 69{ "I/O device: ","I/O device: " },
70{ "Help...","Hilfe..." }, 70{ "Help...","Hilfe..." },
71{ "Connection: ","Connection: " }, 71{ "Connection: ","Connection: " },
72{ "Model(opt.): ","Model(opt.): " }, 72{ "Model(opt.): ","Model(opt.): " },
73{ "Local file Cal:","Lokale Datei Kal:" }, 73{ "Local file Cal:","Lokale Datei Kal:" },
74{ "Local file ABook:","Lokale Datei ABuch:" }, 74{ "Local file ABook:","Lokale Datei ABuch:" },
75{ "Local file PWMgr:","Lokale Datei PWMgr:" }, 75{ "Local file PWMgr:","Lokale Datei PWMgr:" },
76{ "Choose...","Wähle..." }, 76{ "Choose...","Wähle..." },
77{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, 77{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" },
78{ "Calendar:","Kalender:" }, 78{ "Calendar:","Kalender:" },
79{ "AddressBook:","AdressBuch:" }, 79{ "AddressBook:","AdressBuch:" },
80{ "PWManager:","PWManager:" }, 80{ "PWManager:","PWManager:" },
81{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" }, 81{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" },
82{ "Local temp file:","Lokale temp Datei:" }, 82{ "Local temp file:","Lokale temp Datei:" },
83{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, 83{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" },
84{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, 84{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" },
85{ "Fill in default values for:","Setze Beispiel Werte ein für:" }, 85{ "Fill in default values for:","Setze Beispiel Werte ein für:" },
86{ "ssh/scp","ssh/scp" }, 86{ "ssh/scp","ssh/scp" },
87{ "ftp","ftp" }, 87{ "ftp","ftp" },
88{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, 88{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" },
89{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, 89{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" },
90{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, 90{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" },
91{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, 91{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" },
92{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, 92{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" },
93{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, 93{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" },
94{ "No Filter","Kein Filter" }, 94{ "No Filter","Kein Filter" },
95{ "KO/Pi config error","KO/Pi Konfig. Fehler" }, 95{ "KO/Pi config error","KO/Pi Konfig. Fehler" },
96{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, 96{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" },
97{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" }, 97{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" },
98{ "Configure","Konfiguriere" }, 98{ "Configure","Konfiguriere" },
99{ "Apply","Anwenden" }, 99{ "Apply","Anwenden" },
100{ "None","Kein" }, 100{ "None","Kein" },
101{ "Global","Allgemein" }, 101{ "Global","Allgemein" },
102{ "Email","E-Mail" }, 102{ "Email","E-Mail" },
103{ "Phone","Telefon" }, 103{ "Phone","Telefon" },
104{ "SMS","SMS" }, 104{ "SMS","SMS" },
105{ "Fax","Fax" }, 105{ "Fax","Fax" },
106{ "Pager","Pager" }, 106{ "Pager","Pager" },
107{ "SIP","SIP" }, 107{ "SIP","SIP" },
108{ "Language:(needs restart)","Sprache:(Neustart)" }, 108{ "Language:(needs restart)","Sprache:(Neustart)" },
109{ "English","English" }, 109{ "English","English" },
110{ "German","Deutsch" }, 110{ "German","Deutsch" },
111{ "French","Französisch" }, 111{ "French","Französisch" },
112{ "Italian","Italienisch" }, 112{ "Italian","Italienisch" },
113{ "User defined (usertranslation.txt)","Benutzerdef. (usertranslation.txt)" }, 113{ "User defined (usertranslation.txt)","Benutzerdef. (usertranslation.txt)" },
114{ "Language","Sprache" }, 114{ "Language","Sprache" },
115{ "Time Format(nr):","Zeit Format(nr):" }, 115{ "Time Format(nr):","Zeit Format(nr):" },
116{ "24:00","24:00" }, 116{ "24:00","24:00" },
117{ "12:00am","12:00am" }, 117{ "12:00am","12:00am" },
118{ "Week starts on Sunday","Woche beginnt Sonntags" }, 118{ "Week starts on Sunday","Woche beginnt Sonntags" },
119{ "Time Format","Zeit Format" }, 119{ "Time Format","Zeit Format" },
120{ "Date Format:","Datums Format:" }, 120{ "Date Format:","Datums Format:" },
121{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 121{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
122{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 122{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
123{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 123{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
124{ "User defined","Benutzerdefiniert" }, 124{ "User defined","Benutzerdefiniert" },
125{ "User long date:","Format langes Datum:" }, 125{ "User long date:","Format langes Datum:" },
126{ "User short date:","Format kurzes Datum:" }, 126{ "User short date:","Format kurzes Datum:" },
127{ "Monday 19 April 2004: %A %d %B %Y","Monday 19 April 2004: %A %d %B %Y" }, 127{ "Monday 19 April 2004: %A %d %B %Y","Monday 19 April 2004: %A %d %B %Y" },
128{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 128{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
129{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 129{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
130{ "Date Format","Datums Format" }, 130{ "Date Format","Datums Format" },
131{ "Timezone:","Zeitzone:" }, 131{ "Timezone:","Zeitzone:" },
132{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 132{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
133{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 133{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
134{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 134{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
135{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 135{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
136{ "Daylight start:","Sommerzeit Beginn:" }, 136{ "Daylight start:","Sommerzeit Start:" },
137{ "Mon","Mo" }, 137{ "Mon","Mo" },
138{ "Tue","Di" }, 138{ "Tue","Di" },
139{ "Wed","Mi" }, 139{ "Wed","Mi" },
140{ "Thu","Do" }, 140{ "Thu","Do" },
141{ "Fri","Fr" }, 141{ "Fri","Fr" },
142{ "Sat","Sa" }, 142{ "Sat","Sa" },
143{ "Sun","So" }, 143{ "Sun","So" },
144{ "January","Januar" }, 144{ "January","Januar" },
145{ "February","Februar" }, 145{ "February","Februar" },
146{ "March","März" }, 146{ "March","März" },
147{ "April","April" }, 147{ "April","April" },
148{ "May","Mai" }, 148{ "May","Mai" },
149{ "June","Juni" }, 149{ "June","Juni" },
150{ "July","July" }, 150{ "July","July" },
151{ "August","August" }, 151{ "August","August" },
152{ "September","September" }, 152{ "September","September" },
153{ "October","October" }, 153{ "October","October" },
154{ "November","November" }, 154{ "November","November" },
155{ "December","Dezember" }, 155{ "December","Dezember" },
156{ "tomorrow","Morgen" }, 156{ "tomorrow","Morgen" },
157{ "today","Heute" }, 157{ "today","Heute" },
158{ "yesterday","Gestern" }, 158{ "yesterday","Gestern" },
159{ "Monday","Montag" }, 159{ "Monday","Montag" },
160{ "Tuesday","Dienstag" }, 160{ "Tuesday","Dienstag" },
161{ "Wednesday","Mittwoch" }, 161{ "Wednesday","Mittwoch" },
162{ "Thursday","Donnerstag" }, 162{ "Thursday","Donnerstag" },
163{ "Friday","Freitag" }, 163{ "Friday","Freitag" },
164{ "Saturday","Samstag" }, 164{ "Saturday","Samstag" },
165{ "Sunday","Sonntag" }, 165{ "Sunday","Sonntag" },
166{ "Daylight end:","Sommerzeit Ende:" }, 166{ "Daylight end:","Sommerzeit Ende:" },
167{ "Time Zone","Zeit Zone" }, 167{ "Time Zone","Zeit Zone" },
168{ "Used Mail Client","Benutzter Mail Client" }, 168{ "Used Mail Client","Benutzter Mail Client" },
169{ "Channel:","Channel:" }, 169{ "Channel:","Channel:" },
170{ "Message:","Message:" }, 170{ "Message:","Message:" },
171{ "Parameters:","Parameter:" }, 171{ "Parameters:","Parameter:" },
172{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 172{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
173{ "extra Message:","extra Message:" }, 173{ "extra Message:","extra Message:" },
174{ "extra Parameters:","extra Parameter:" }, 174{ "extra Parameters:","extra Parameter:" },
175{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 175{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
176{ "External Apps.","Externe Appl." }, 176{ "External Apps.","Externe Appl." },
177{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Aktuelles Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverz.)/apps/kopiemail/localmail" }, 177{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Aktuelles Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverz.)/apps/kopiemail/localmail" },
178{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" }, 178{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" },
179{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" }, 179{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" },
180{ "Save settings","Speichere Einstellungen" }, 180{ "Save settings","Speichere Einstellungen" },
181{ "Save standard","Speichere Standard" }, 181{ "Save standard","Speichere Standard" },
182{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" }, 182{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" },
183{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" }, 183{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" },
184{ "Data storage path","Daten Speicherpfad" }, 184{ "Data storage path","Daten Speicherpfad" },
185{ "Used %1 Client","Benutzer %1 Client" }, 185{ "Used %1 Client","Benutzer %1 Client" },
186{ "No email client installed","Keine Email Client installiert" }, 186{ "No email client installed","Keine Email Client installiert" },
187{ "Userdefined email client","Benutzerdef. Email Client" }, 187{ "Userdefined email client","Benutzerdef. Email Client" },
188{ "OM/Pi email client","OM/Pi Email Client" }, 188{ "OM/Pi email client","OM/Pi Email Client" },
189{ "URL:","URL:" }, 189{ "URL:","URL:" },
190{ "No","Nein" }, 190{ "No","Nein" },
191{ "Yes","Ja" }, 191{ "Yes","Ja" },
192{ "Untitled","Unbenannt" }, 192{ "Untitled","Unbenannt" },
193{ "&New","&Neu" }, 193{ "&New","&Neu" },
194{ "&Open","&Öffne" }, 194{ "&Open","&Öffne" },
195{ "&Close","Schließen" }, 195{ "&Close","Schließen" },
196{ "Save &as...","Speichere &als..." }, 196{ "Save &as...","Speichere &als..." },
197{ "&Text-file...","&Text-Datei..." }, 197{ "&Text-file...","&Text-Datei..." },
198{ "&Gpasman / Kpasman ...","&Gpasman / Kpasman ..." }, 198{ "&Gpasman / Kpasman ...","&Gpasman / Kpasman ..." },
199{ "&CSV (Comma Separated Value) ...","&CSV (Komma getrennte Werte) ..." }, 199{ "&CSV (Comma Separated Value) ...","&CSV (Komma getrennte Werte) ..." },
200{ "E&xport","E&xport" }, 200{ "E&xport","E&xport" },
201{ "I&mport","I&mport" }, 201{ "I&mport","I&mport" },
202{ "&Quit","Beenden" }, 202{ "&Quit","Beenden" },
203{ "&Add password","&Passwort hinzufügen" }, 203{ "&Add password","&Passwort hinzufügen" },
204{ "&Delete","Lösche" }, 204{ "&Delete","Lösche" },
205{ "Change &Master Password","Ändere &Master Passwort" }, 205{ "Change &Master Password","Ändere &Master Passwort" },
206{ "&Manage","Verwalte" }, 206{ "&Manage","Verwalte" },
207{ "&Find","&Finde" }, 207{ "&Find","&Finde" },
208{ "&Lock all entries","Sperre alle Einträge" }, 208{ "&Lock all entries","Sperre alle Einträge" },
209{ "&Deep-lock all entries","Sperre total alle Einträge" }, 209{ "&Deep-lock all entries","Sperre total alle Einträge" },
210{ "&Unlock all entries","Entsperre alle Einträge" }, 210{ "&Unlock all entries","Entsperre alle Einträge" },
211{ "&Configure...","Konfiguriere..." }, 211{ "&Configure...","Konfiguriere..." },
212{ "&Options","Konfig" }, 212{ "&Options","Konfig" },
213{ "C&ategories...","K&ategorien..." }, 213{ "C&ategories...","K&ategorien..." },
214{ "&Sync","&Sync" }, 214{ "&Sync","&Sync" },
215{ "&License","&Lizenz" }, 215{ "&License","&Lizenz" },
216{ "&Faq","&Faq" }, 216{ "&Faq","&Faq" },
217{ "&About PwManager","Über PwManager" }, 217{ "&About PwManager","Über PwManager" },
218{ "&Sync HowTo","&Sync HowTo" }, 218{ "&Sync HowTo","&Sync HowTo" },
219{ "&What's New","Was ist neu?" }, 219{ "&What's New","Was ist neu?" },
220{ "New","Neu" }, 220{ "New","Neu" },
221{ "Open","Öffnen" }, 221{ "Open","Öffnen" },
222{ "Save","Speichern" }, 222{ "Save","Speichern" },
223{ "Save as","Speichern als" }, 223{ "Save as","Speichern als" },
224{ "Print...","Drucke..." }, 224{ "Print...","Drucke..." },
225{ "Add password","Passwort hinzufügen" }, 225{ "Add password","Passwort hinzufügen" },
226{ "Edit password","Passwort ändern" }, 226{ "Edit password","Passwort ändern" },
227{ "Delete password","Passwort löschen" }, 227{ "Delete password","Passwort löschen" },
228{ "Find entry","Finde Eintrag" }, 228{ "Find entry","Finde Eintrag" },
229{ "Lock all entries","Sperre alle Einträge" }, 229{ "Lock all entries","Sperre alle Einträge" },
230{ "Deep-Lock all entries","Sperre total alle Einträge" }, 230{ "Deep-Lock all entries","Sperre total alle Einträge" },
231{ "Unlock all entries","Entsperre alle Einträge" }, 231{ "Unlock all entries","Entsperre alle Einträge" },
232{ "Categories:","Kategorien:" }, 232{ "Categories:","Kategorien:" },
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index df606d0..c32a2a4 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -1,342 +1,346 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at> 3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at>
4 Parts of the source code have been copied from kdpdatebutton.cpp 4 Parts of the source code have been copied from kdpdatebutton.cpp
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 19
20 As a special exception, permission is given to link this program 20 As a special exception, permission is given to link this program
21 with any edition of Qt, and distribute the resulting executable, 21 with any edition of Qt, and distribute the resulting executable,
22 without including the source ode for Qt in the source distribution. 22 without including the source ode for Qt in the source distribution.
23*/ 23*/
24 24
25#include <qevent.h> 25#include <qevent.h>
26#include <qpainter.h> 26#include <qpainter.h>
27#include <qptrlist.h> 27#include <qptrlist.h>
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qwhatsthis.h> 29#include <qwhatsthis.h>
30 30
31#include <kglobal.h> 31#include <kglobal.h>
32#include <kdebug.h> 32#include <kdebug.h>
33#include <klocale.h> 33#include <klocale.h>
34 34
35#include <libkcal/vcaldrag.h> 35#include <libkcal/vcaldrag.h>
36#include <libkcal/icaldrag.h> 36#include <libkcal/icaldrag.h>
37#include <libkcal/dndfactory.h> 37#include <libkcal/dndfactory.h>
38#include <libkcal/calendarresources.h> 38#include <libkcal/calendarresources.h>
39#include <libkcal/resourcecalendar.h> 39#include <libkcal/resourcecalendar.h>
40#include <kresources/resourceselectdialog.h> 40#include <kresources/resourceselectdialog.h>
41 41
42#include <kcalendarsystem.h> 42#include <kcalendarsystem.h>
43 43
44#ifndef KORG_NOPLUGINS 44#ifndef KORG_NOPLUGINS
45#include "kocore.h" 45#include "kocore.h"
46#endif 46#endif
47#include "koprefs.h" 47#include "koprefs.h"
48#include "koglobals.h" 48#include "koglobals.h"
49 49
50#include "kodaymatrix.h" 50#include "kodaymatrix.h"
51 51
52// ============================================================================ 52// ============================================================================
53// D Y N A M I C T I P 53// D Y N A M I C T I P
54// ============================================================================ 54// ============================================================================
55 55
56DynamicTip::DynamicTip( QWidget * parent ) 56DynamicTip::DynamicTip( QWidget * parent )
57 : QToolTip( parent ) 57 : QToolTip( parent )
58{ 58{
59 matrix = (KODayMatrix*)parent; 59 matrix = (KODayMatrix*)parent;
60} 60}
61 61
62class KODaymatrixWhatsThis :public QWhatsThis 62class KODaymatrixWhatsThis :public QWhatsThis
63{ 63{
64public: 64public:
65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;}; 65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;};
66 ~KODaymatrixWhatsThis() { ; }; 66 ~KODaymatrixWhatsThis() { qDebug("DELETE KODaymatrixWhatsThis "); };
67 67
68protected: 68protected:
69 virtual QString text( const QPoint& p ) 69 virtual QString text( const QPoint& p )
70 { 70 {
71 return _view->getWhatsThisText( p ) ; 71 return _view->getWhatsThisText( p ) ;
72 } 72 }
73private: 73private:
74 KODayMatrix * _view; 74 KODayMatrix * _view;
75}; 75};
76 76
77void DynamicTip::maybeTip( const QPoint &pos ) 77void DynamicTip::maybeTip( const QPoint &pos )
78{ 78{
79 //calculate which cell of the matrix the mouse is in 79 //calculate which cell of the matrix the mouse is in
80 QRect sz = matrix->frameRect(); 80 QRect sz = matrix->frameRect();
81 int dheight = sz.height()*7 / 42; 81 int dheight = sz.height()*7 / 42;
82 int dwidth = sz.width() / 7; 82 int dwidth = sz.width() / 7;
83 int row = pos.y()/dheight; 83 int row = pos.y()/dheight;
84 int col = pos.x()/dwidth; 84 int col = pos.x()/dwidth;
85 85
86 QRect rct(col*dwidth, row*dheight, dwidth, dheight); 86 QRect rct(col*dwidth, row*dheight, dwidth, dheight);
87 87
88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" << 88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" <<
89// col << "][" << row << "] => " <<(col+row*7) << endl; 89// col << "][" << row << "] => " <<(col+row*7) << endl;
90 90
91 //show holiday names only 91 //show holiday names only
92 QString str = matrix->getHolidayLabel(col+row*7); 92 QString str = matrix->getHolidayLabel(col+row*7);
93 if (str.isEmpty()) return; 93 if (str.isEmpty()) return;
94 tip(rct, str); 94 tip(rct, str);
95} 95}
96 96
97 97
98// ============================================================================ 98// ============================================================================
99// K O D A Y M A T R I X 99// K O D A Y M A T R I X
100// ============================================================================ 100// ============================================================================
101 101
102const int KODayMatrix::NOSELECTION = -1000; 102const int KODayMatrix::NOSELECTION = -1000;
103const int KODayMatrix::NUMDAYS = 42; 103const int KODayMatrix::NUMDAYS = 42;
104 104
105KODayMatrix::KODayMatrix( QWidget *parent, const char *name ) 105KODayMatrix::KODayMatrix( QWidget *parent, const char *name )
106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 ) 106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 )
107 107
108#if 0 108
109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) :
110 QFrame(parent, name)
111#endif
112{ 109{
110 mLastView = -1;
113 oldW = 0; 111 oldW = 0;
114 oldH = 0; 112 oldH = 0;
115 myPix.resize( 150, 120 ); 113 myPix.resize( 150, 120 );
116 mRedrawNeeded = true; 114 mRedrawNeeded = true;
117 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this); 115 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this);
118 mPendingUpdateBeforeRepaint = false; 116 mPendingUpdateBeforeRepaint = false;
119 mouseDown = false; 117 mouseDown = false;
120 // initialize dynamic arrays 118 // initialize dynamic arrays
121 bDays.resize ( NUMDAYS ); 119 bDays.resize ( NUMDAYS );
122 pDays.resize ( NUMDAYS ); 120 pDays.resize ( NUMDAYS );
123 hDays.resize ( NUMDAYS ); 121 hDays.resize ( NUMDAYS );
124 eDays.resize ( NUMDAYS ); 122 eDays.resize ( NUMDAYS );
125 days = new QDate[NUMDAYS]; 123 days = new QDate[NUMDAYS];
126 daylbls = new QString[NUMDAYS]; 124 daylbls = new QString[NUMDAYS];
127 //events = new int[NUMDAYS]; 125 //events = new int[NUMDAYS];
128 mToolTip = new DynamicTip(this); 126 mToolTip = new DynamicTip(this);
129 127
130 // set default values used for drawing the matrix 128 // set default values used for drawing the matrix
131 mDefaultBackColor = palette().active().base(); 129 mDefaultBackColor = palette().active().base();
132 mDefaultTextColor = palette().active().foreground(); 130 mDefaultTextColor = palette().active().foreground();
133 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); 131 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor);
134 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor); 132 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor);
135 mSelectedDaysColor = QColor("white"); 133 mSelectedDaysColor = QColor("white");
136 mTodayMarginWidth = 2; 134 mTodayMarginWidth = 2;
137 mSelEnd = mSelStart = NOSELECTION; 135 mSelEnd = mSelStart = NOSELECTION;
138 136
139 setAcceptDrops(true); 137 setAcceptDrops(true);
140 //setFont( QFont("Arial", 10) ); 138 //setFont( QFont("Arial", 10) );
141 139
142 mUpdateTimer = new QTimer( this ); 140 mUpdateTimer = new QTimer( this );
143 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() )); 141 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() ));
144 mRepaintTimer = new QTimer( this ); 142 mRepaintTimer = new QTimer( this );
145 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() )); 143 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() ));
146 mDayChanged = false; 144 mDayChanged = false;
147 updateView(); 145 updateView();
148} 146}
149QString KODayMatrix::getWhatsThisText( QPoint p ) 147QString KODayMatrix::getWhatsThisText( QPoint p )
150{ 148{
151 149
152 int tmp = getDayIndexFrom(p.x(), p.y()); 150 int tmp = getDayIndexFrom(p.x(), p.y());
153 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar ) 151 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar )
154 return QString(); 152 return QString();
155 QDate mDate = days[tmp]; 153 QDate mDate = days[tmp];
156 QPtrList<Event> eventlist = mCalendar->events(mDate); 154 QPtrList<Event> eventlist = mCalendar->events(mDate);
157 Event *event; 155 Event *event;
158 QStringList mToolTip; 156 QStringList mToolTip;
159 for(event=eventlist.first();event != 0;event=eventlist.next()) { 157 for(event=eventlist.first();event != 0;event=eventlist.next()) {
160 QString mToolTipText; 158 QString mToolTipText;
161 QString text; 159 QString text;
162 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day 160 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
163 if (event->isMultiDay()) { 161 if (event->isMultiDay()) {
164 QString prefix = "<->";multiday = 2; 162 QString prefix = "<->";multiday = 2;
165 QString time; 163 QString time;
166 if ( event->doesRecur() ) { 164 if ( event->doesRecur() ) {
167 if ( event->recursOn( mDate) ) { 165 if ( event->recursOn( mDate) ) {
168 prefix ="->" ;multiday = 1; 166 prefix ="->" ;multiday = 1;
169 } 167 }
170 else { 168 else {
171 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 169 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
172 if ( event->recursOn( mDate.addDays( -days)) ) { 170 if ( event->recursOn( mDate.addDays( -days)) ) {
173 prefix ="<-" ;multiday = 3; 171 prefix ="<-" ;multiday = 3;
174 } 172 }
175 } 173 }
176 } else { 174 } else {
177 if (mDate == event->dtStart().date()) { 175 if (mDate == event->dtStart().date()) {
178 prefix ="->" ;multiday = 1; 176 prefix ="->" ;multiday = 1;
179 } else if (mDate == event->dtEnd().date()) { 177 } else if (mDate == event->dtEnd().date()) {
180 prefix ="<-" ;multiday = 3; 178 prefix ="<-" ;multiday = 3;
181 } 179 }
182 } 180 }
183 if ( !event->doesFloat() ) { 181 if ( !event->doesFloat() ) {
184 if ( mDate == event->dtStart().date () ) 182 if ( mDate == event->dtStart().date () )
185 time = KGlobal::locale()->formatTime(event->dtStart().time())+" "; 183 time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
186 else if ( mDate == event->dtEnd().date () ) 184 else if ( mDate == event->dtEnd().date () )
187 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 185 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
188 186
189 } 187 }
190 text = time + event->summary(); 188 text = time + event->summary();
191 mToolTipText += prefix + text; 189 mToolTipText += prefix + text;
192 } else { 190 } else {
193 if (event->doesFloat()) { 191 if (event->doesFloat()) {
194 text = event->summary(); 192 text = event->summary();
195 mToolTipText += text; 193 mToolTipText += text;
196 } 194 }
197 else { 195 else {
198 text = KGlobal::locale()->formatTime(event->dtStart().time()); 196 text = KGlobal::locale()->formatTime(event->dtStart().time());
199 text += " " + event->summary(); 197 text += " " + event->summary();
200 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 198 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
201 } 199 }
202 } 200 }
203 if ( !event->location().isEmpty() ) 201 if ( !event->location().isEmpty() )
204 mToolTipText += " (" + event->location() + ")"; 202 mToolTipText += " (" + event->location() + ")";
205#if QT_VERSION >= 0x030000 203#if QT_VERSION >= 0x030000
206 mToolTipText.replace( '<' , "&lt;" ); 204 mToolTipText.replace( '<' , "&lt;" );
207 mToolTipText.replace( '>' , "&gt;" ); 205 mToolTipText.replace( '>' , "&gt;" );
208#else 206#else
209 if ( mToolTipText.find ('<') >= 0 ) { 207 if ( mToolTipText.find ('<') >= 0 ) {
210 mToolTipText.replace( QRegExp("<") , "&lt;" ); 208 mToolTipText.replace( QRegExp("<") , "&lt;" );
211 } 209 }
212 if ( mToolTipText.find ('>') >= 0 ) { 210 if ( mToolTipText.find ('>') >= 0 ) {
213 mToolTipText.replace( QRegExp(">") , "&gt;" ); 211 mToolTipText.replace( QRegExp(">") , "&gt;" );
214 } 212 }
215#endif 213#endif
216 //qDebug("TTT: %s ", mToolTipText.latin1()); 214 //qDebug("TTT: %s ", mToolTipText.latin1());
217 mToolTip.append( mToolTipText ); 215 mToolTip.append( mToolTipText );
218 } 216 }
219 mToolTip.sort(); 217 mToolTip.sort();
220 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>"); 218 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>");
221} 219}
222void KODayMatrix::setCalendar( Calendar *cal ) 220void KODayMatrix::setCalendar( Calendar *cal )
223{ 221{
224 mCalendar = cal; 222 mCalendar = cal;
225 223
226 setAcceptDrops( mCalendar ); 224 setAcceptDrops( mCalendar );
227 225
228 updateEvents(); 226 updateEvents();
229} 227}
230 228
231QColor KODayMatrix::getShadedColor(QColor color) 229QColor KODayMatrix::getShadedColor(QColor color)
232{ 230{
233 QColor shaded; 231 QColor shaded;
234 int h=0; 232 int h=0;
235 int s=0; 233 int s=0;
236 int v=0; 234 int v=0;
237 color.hsv(&h,&s,&v); 235 color.hsv(&h,&s,&v);
238 s = s/4; 236 s = s/4;
239 v = 192+v/4; 237 v = 192+v/4;
240 shaded.setHsv(h,s,v); 238 shaded.setHsv(h,s,v);
241 239
242 return shaded; 240 return shaded;
243} 241}
244 242
245KODayMatrix::~KODayMatrix() 243KODayMatrix::~KODayMatrix()
246{ 244{
245#if QT_VERSION >= 0x030000
246
247#else
248 delete mKODaymatrixWhatsThis;
249#endif
250
247 // delete mKODaymatrixWhatsThis; 251 // delete mKODaymatrixWhatsThis;
248 delete [] days; 252 delete [] days;
249 delete [] daylbls; 253 delete [] daylbls;
250 //delete [] events; 254 //delete [] events;
251 delete mToolTip; 255 delete mToolTip;
252} 256}
253 257
254/* 258/*
255void KODayMatrix::setStartDate(QDate start) 259void KODayMatrix::setStartDate(QDate start)
256{ 260{
257 updateView(start); 261 updateView(start);
258} 262}
259*/ 263*/
260 264
261void KODayMatrix::addSelectedDaysTo(DateList& selDays) 265void KODayMatrix::addSelectedDaysTo(DateList& selDays)
262{ 266{
263 267
264 if (mSelStart == NOSELECTION) { 268 if (mSelStart == NOSELECTION) {
265 return; 269 return;
266 } 270 }
267 271
268 //cope with selection being out of matrix limits at top (< 0) 272 //cope with selection being out of matrix limits at top (< 0)
269 int i0 = mSelStart; 273 int i0 = mSelStart;
270 if (i0 < 0) { 274 if (i0 < 0) {
271 for (int i = i0; i < 0; i++) { 275 for (int i = i0; i < 0; i++) {
272 selDays.append(days[0].addDays(i)); 276 selDays.append(days[0].addDays(i));
273 } 277 }
274 i0 = 0; 278 i0 = 0;
275 } 279 }
276 280
277 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1) 281 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1)
278 if (mSelEnd > NUMDAYS-1) { 282 if (mSelEnd > NUMDAYS-1) {
279 for (int i = i0; i <= NUMDAYS-1; i++) { 283 for (int i = i0; i <= NUMDAYS-1; i++) {
280 selDays.append(days[i]); 284 selDays.append(days[i]);
281 } 285 }
282 for (int i = NUMDAYS; i < mSelEnd; i++) { 286 for (int i = NUMDAYS; i < mSelEnd; i++) {
283 selDays.append(days[0].addDays(i)); 287 selDays.append(days[0].addDays(i));
284 } 288 }
285 289
286 // apply normal routine to selection being entirely within matrix limits 290 // apply normal routine to selection being entirely within matrix limits
287 } else { 291 } else {
288 for (int i = i0; i <= mSelEnd; i++) { 292 for (int i = i0; i <= mSelEnd; i++) {
289 selDays.append(days[i]); 293 selDays.append(days[i]);
290 } 294 }
291 } 295 }
292} 296}
293 297
294bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) 298bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end)
295{ 299{
296 mRedrawNeeded = true; 300 mRedrawNeeded = true;
297 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION ); 301 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION );
298 mSelStart = startdate.daysTo(start); 302 mSelStart = startdate.daysTo(start);
299 if ( mSelStart < 0 ) 303 if ( mSelStart < 0 )
300 mSelStart = 0; 304 mSelStart = 0;
301 mSelEnd = startdate.daysTo(end); 305 mSelEnd = startdate.daysTo(end);
302 if ( mSelEnd > NUMDAYS-1 ) 306 if ( mSelEnd > NUMDAYS-1 )
303 mSelEnd = NUMDAYS-1; 307 mSelEnd = NUMDAYS-1;
304 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) { 308 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) {
305 clearSelection(); 309 clearSelection();
306 if ( noSel ) 310 if ( noSel )
307 return false; 311 return false;
308 } 312 }
309 313
310 return true; 314 return true;
311} 315}
312void KODayMatrix::clearSelection() 316void KODayMatrix::clearSelection()
313{ 317{
314 mSelEnd = mSelStart = NOSELECTION; 318 mSelEnd = mSelStart = NOSELECTION;
315} 319}
316 320
317 321
318void KODayMatrix::recalculateToday() 322void KODayMatrix::recalculateToday()
319{ 323{
320 today = -1; 324 today = -1;
321 for (int i=0; i<NUMDAYS; i++) { 325 for (int i=0; i<NUMDAYS; i++) {
322 //events[i] = 0; 326 //events[i] = 0;
323 days[i] = startdate.addDays(i); 327 days[i] = startdate.addDays(i);
324 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); 328 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] ));
325 329
326 // if today is in the currently displayed month, hilight today 330 // if today is in the currently displayed month, hilight today
327 if (days[i].year() == QDate::currentDate().year() && 331 if (days[i].year() == QDate::currentDate().year() &&
328 days[i].month() == QDate::currentDate().month() && 332 days[i].month() == QDate::currentDate().month() &&
329 days[i].day() == QDate::currentDate().day()) { 333 days[i].day() == QDate::currentDate().day()) {
330 today = i; 334 today = i;
331 } 335 }
332 } 336 }
333 // qDebug(QString("Today is visible at %1.").arg(today)); 337 // qDebug(QString("Today is visible at %1.").arg(today));
334} 338}
335 339
336void KODayMatrix::updateView() 340void KODayMatrix::updateView()
337{ 341{
338 updateView(startdate); 342 updateView(startdate);
339} 343}
340void KODayMatrix::repaintViewTimed() 344void KODayMatrix::repaintViewTimed()
341{ 345{
342 mRedrawNeeded = true; 346 mRedrawNeeded = true;
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index d9d7924..e4bee63 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -935,196 +935,192 @@ dummy =
935 935
936 dummy = 936 dummy =
937 addWidBool(i18n("Colors are applied to text"), 937 addWidBool(i18n("Colors are applied to text"),
938 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame); 938 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame);
939 topLayout->addWidget(dummy->checkBox(),ii++,0); 939 topLayout->addWidget(dummy->checkBox(),ii++,0);
940 940
941 dummy = 941 dummy =
942 addWidBool(i18n("Allday Agenda view shows todos"), 942 addWidBool(i18n("Allday Agenda view shows todos"),
943 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame); 943 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame);
944 topLayout->addWidget(dummy->checkBox(),ii++,0); 944 topLayout->addWidget(dummy->checkBox(),ii++,0);
945 945
946 946
947 topFrame = addPage(i18n("View Options"),0,0); 947 topFrame = addPage(i18n("View Options"),0,0);
948 948
949 topLayout = new QGridLayout(topFrame,4,1); 949 topLayout = new QGridLayout(topFrame,4,1);
950 topLayout->setSpacing(mSpacingHint); 950 topLayout->setSpacing(mSpacingHint);
951 topLayout->setMargin(mMarginHint); 951 topLayout->setMargin(mMarginHint);
952 ii = 0; 952 ii = 0;
953 953
954 dummy = 954 dummy =
955 addWidBool(i18n("Show Sync Events"), 955 addWidBool(i18n("Show Sync Events"),
956 &(KOPrefs::instance()->mShowSyncEvents),topFrame); 956 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
957 topLayout->addWidget(dummy->checkBox(), ii++,0); 957 topLayout->addWidget(dummy->checkBox(), ii++,0);
958 958
959 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame); 959 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame);
960 topLayout->addWidget(lab ,ii++,0); 960 topLayout->addWidget(lab ,ii++,0);
961 961
962 dummy = addWidBool(i18n("Details"), 962 dummy = addWidBool(i18n("Details"),
963 &(KOPrefs::instance()->mEVshowDetails),topFrame); 963 &(KOPrefs::instance()->mEVshowDetails),topFrame);
964 topLayout->addWidget(dummy->checkBox(),ii++,0); 964 topLayout->addWidget(dummy->checkBox(),ii++,0);
965 dummy = addWidBool(i18n("Created time"), 965 dummy = addWidBool(i18n("Created time"),
966 &(KOPrefs::instance()->mEVshowCreated),topFrame); 966 &(KOPrefs::instance()->mEVshowCreated),topFrame);
967 topLayout->addWidget(dummy->checkBox(),ii++,0); 967 topLayout->addWidget(dummy->checkBox(),ii++,0);
968 dummy = addWidBool(i18n("Last modified time"), 968 dummy = addWidBool(i18n("Last modified time"),
969 &(KOPrefs::instance()->mEVshowChanged),topFrame); 969 &(KOPrefs::instance()->mEVshowChanged),topFrame);
970 topLayout->addWidget(dummy->checkBox(),ii++,0); 970 topLayout->addWidget(dummy->checkBox(),ii++,0);
971 971
972 972
973 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame); 973 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame);
974 topLayout->addWidget(lab ,ii++,0); 974 topLayout->addWidget(lab ,ii++,0);
975 975
976 dummy = addWidBool(i18n("Details"), 976 dummy = addWidBool(i18n("Details"),
977 &(KOPrefs::instance()->mWTshowDetails),topFrame); 977 &(KOPrefs::instance()->mWTshowDetails),topFrame);
978 topLayout->addWidget(dummy->checkBox(),ii++,0); 978 topLayout->addWidget(dummy->checkBox(),ii++,0);
979 dummy = addWidBool(i18n("Created time"), 979 dummy = addWidBool(i18n("Created time"),
980 &(KOPrefs::instance()->mWTshowCreated),topFrame); 980 &(KOPrefs::instance()->mWTshowCreated),topFrame);
981 topLayout->addWidget(dummy->checkBox(),ii++,0); 981 topLayout->addWidget(dummy->checkBox(),ii++,0);
982 dummy = addWidBool(i18n("Last modified time"), 982 dummy = addWidBool(i18n("Last modified time"),
983 &(KOPrefs::instance()->mWTshowChanged),topFrame); 983 &(KOPrefs::instance()->mWTshowChanged),topFrame);
984 topLayout->addWidget(dummy->checkBox(),ii++,0); 984 topLayout->addWidget(dummy->checkBox(),ii++,0);
985 985
986 986
987 topFrame = addPage(i18n("Alarm"),0,0); 987 topFrame = addPage(i18n("Alarm"),0,0);
988 // DesktopIcon("viewmag",KIcon::SizeMedium)); 988 // DesktopIcon("viewmag",KIcon::SizeMedium));
989 989
990 topLayout = new QGridLayout(topFrame,2,1); 990 topLayout = new QGridLayout(topFrame,2,1);
991 topLayout->setSpacing(mSpacingHint); 991 topLayout->setSpacing(mSpacingHint);
992 topLayout->setMargin(mMarginHint); 992 topLayout->setMargin(mMarginHint);
993 int iii = 0; 993 int iii = 0;
994 994
995 dummy = 995 dummy =
996 addWidBool(i18n("Use internal alarm notification"), 996 addWidBool(i18n("Use internal alarm notification"),
997 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 997 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
998 topLayout->addWidget(dummy->checkBox(),iii++,0); 998 topLayout->addWidget(dummy->checkBox(),iii++,0);
999 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame); 999 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame);
1000 1000
1001 topLayout->addWidget(lab ,iii++,0); 1001 topLayout->addWidget(lab ,iii++,0);
1002#ifndef DESKTOP_VERSION 1002#ifndef DESKTOP_VERSION
1003 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1003 lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1004#else 1004#else
1005 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1005 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1006 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1006 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1007#endif 1007#endif
1008 1008
1009 QHBox* dummyBox = new QHBox(topFrame); 1009 QHBox* dummyBox = new QHBox(topFrame);
1010 new QLabel(i18n("Play beeps count:"),dummyBox); 1010 new QLabel(i18n("Play beeps count:"),dummyBox);
1011 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox); 1011 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox);
1012 topLayout->addWidget(dummyBox,iii++,0); 1012 topLayout->addWidget(dummyBox,iii++,0);
1013 1013
1014 dummyBox = new QHBox(topFrame); 1014 dummyBox = new QHBox(topFrame);
1015 new QLabel(i18n("Beeps interval in sec:"),dummyBox); 1015 new QLabel(i18n("Beeps interval in sec:"),dummyBox);
1016 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox); 1016 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox);
1017 topLayout->addWidget(dummyBox,iii++,0); 1017 topLayout->addWidget(dummyBox,iii++,0);
1018 1018
1019 dummyBox = new QHBox(topFrame); 1019 dummyBox = new QHBox(topFrame);
1020 new QLabel(i18n("Default suspend time in min:"),dummyBox); 1020 new QLabel(i18n("Default suspend time in min:"),dummyBox);
1021 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox); 1021 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox);
1022 topLayout->addWidget(dummyBox,iii++,0); 1022 topLayout->addWidget(dummyBox,iii++,0);
1023 1023
1024 dummyBox = new QHBox(topFrame); 1024 dummyBox = new QHBox(topFrame);
1025 new QLabel(i18n("Auto suspend count:"),dummyBox); 1025 new QLabel(i18n("Auto suspend count:"),dummyBox);
1026 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox); 1026 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox);
1027 topLayout->addWidget(dummyBox,iii++,0); 1027 topLayout->addWidget(dummyBox,iii++,0);
1028 1028
1029 1029
1030 1030
1031
1032
1033
1034
1035 QHBox* hbo = new QHBox ( topFrame ); 1031 QHBox* hbo = new QHBox ( topFrame );
1036 mDefaultAlarmFile = new QLineEdit(hbo); 1032 mDefaultAlarmFile = new QLineEdit(hbo);
1037 QPushButton * loadTemplate = new QPushButton(hbo); 1033 QPushButton * loadTemplate = new QPushButton(hbo);
1038 QPixmap icon; 1034 QPixmap icon;
1039 if ( QApplication::desktop()->width() < 321 ) 1035 if ( QApplication::desktop()->width() < 321 )
1040 icon = SmallIcon("fileimport16"); 1036 icon = SmallIcon("fileimport16");
1041 else 1037 else
1042 icon = SmallIcon("fileimport"); 1038 icon = SmallIcon("fileimport");
1043 loadTemplate->setIconSet (icon ) ; 1039 loadTemplate->setIconSet (icon ) ;
1044 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) ); 1040 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) );
1045 int size = loadTemplate->sizeHint().height(); 1041 int size = loadTemplate->sizeHint().height();
1046 loadTemplate->setFixedSize( size, size ); 1042 loadTemplate->setFixedSize( size, size );
1047 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame); 1043 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame);
1048 // topLayout->addWidget(lab ,iii++,0); 1044 // topLayout->addWidget(lab ,iii++,0);
1049 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame); 1045 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame);
1050 topLayout->addWidget(lab ,iii++,0); 1046 topLayout->addWidget(lab ,iii++,0);
1051 topLayout->addWidget(hbo,iii++,0); 1047 topLayout->addWidget(hbo,iii++,0);
1052 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame); 1048 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame);
1053 1049
1054// topLayout->addWidget(lab ,iii++,0); 1050// topLayout->addWidget(lab ,iii++,0);
1055// #ifndef DESKTOP_VERSION 1051// #ifndef DESKTOP_VERSION
1056// lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1052// lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1057// #else 1053// #else
1058// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1054// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1059// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1055// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1060// #endif 1056// #endif
1061 1057
1062 1058
1063} 1059}
1064 1060
1065void KOPrefsDialog::selectSoundFile() 1061void KOPrefsDialog::selectSoundFile()
1066{ 1062{
1067 QString fileName = mDefaultAlarmFile->text(); 1063 QString fileName = mDefaultAlarmFile->text();
1068 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this ); 1064 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this );
1069 if ( fileName.length() > 0 ) 1065 if ( fileName.length() > 0 )
1070 mDefaultAlarmFile->setText( fileName ); 1066 mDefaultAlarmFile->setText( fileName );
1071} 1067}
1072void KOPrefsDialog::setupFontsTab() 1068void KOPrefsDialog::setupFontsTab()
1073{ 1069{
1074 1070
1075 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 1071 QFrame *topFrame = addPage(i18n("Fonts"),0,0);
1076 // DesktopIcon("fonts",KIcon::SizeMedium)); 1072 // DesktopIcon("fonts",KIcon::SizeMedium));
1077 1073
1078 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 1074 QGridLayout *topLayout = new QGridLayout(topFrame,7,3);
1079 topLayout->setSpacing(1); 1075 topLayout->setSpacing(1);
1080 topLayout->setMargin(3); 1076 topLayout->setMargin(3);
1081 KPrefsDialogWidFont * tVFont; 1077 KPrefsDialogWidFont * tVFont;
1082 int i = 0; 1078 int i = 0;
1083 KPrefsDialogWidFont *timeLabelsFont = 1079 KPrefsDialogWidFont *timeLabelsFont =
1084 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"), 1080 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"),
1085 &(KOPrefs::instance()->mDateNavigatorFont),topFrame); 1081 &(KOPrefs::instance()->mDateNavigatorFont),topFrame);
1086 topLayout->addWidget(timeLabelsFont->label(),i,0); 1082 topLayout->addWidget(timeLabelsFont->label(),i,0);
1087 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1083 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1088 topLayout->addWidget(timeLabelsFont->button(),i,2); 1084 topLayout->addWidget(timeLabelsFont->button(),i,2);
1089 ++i; 1085 ++i;
1090 1086
1091 1087
1092 timeLabelsFont = 1088 timeLabelsFont =
1093 addWidFont(i18n("Mon 15"),i18n("Date Labels:"), 1089 addWidFont(i18n("Mon 15"),i18n("Date Labels:"),
1094 &(KOPrefs::instance()->mTimeLabelsFont),topFrame); 1090 &(KOPrefs::instance()->mTimeLabelsFont),topFrame);
1095 topLayout->addWidget(timeLabelsFont->label(),i,0); 1091 topLayout->addWidget(timeLabelsFont->label(),i,0);
1096 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1092 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1097 topLayout->addWidget(timeLabelsFont->button(),i,2); 1093 topLayout->addWidget(timeLabelsFont->button(),i,2);
1098 ++i; 1094 ++i;
1099 1095
1100 KPrefsDialogWidFont *timeBarFont = 1096 KPrefsDialogWidFont *timeBarFont =
1101 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"), 1097 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"),
1102 &(KOPrefs::instance()->mTimeBarFont),topFrame); 1098 &(KOPrefs::instance()->mTimeBarFont),topFrame);
1103 topLayout->addWidget(timeBarFont->label(),i,0); 1099 topLayout->addWidget(timeBarFont->label(),i,0);
1104 topLayout->addWidget(timeBarFont->preview(),i,1); 1100 topLayout->addWidget(timeBarFont->preview(),i,1);
1105 topLayout->addWidget(timeBarFont->button(),i,2); 1101 topLayout->addWidget(timeBarFont->button(),i,2);
1106 ++i; 1102 ++i;
1107 1103
1108 1104
1109 KPrefsDialogWidFont *marcusBainsFont = 1105 KPrefsDialogWidFont *marcusBainsFont =
1110 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"), 1106 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"),
1111 &(KOPrefs::instance()->mMarcusBainsFont),topFrame); 1107 &(KOPrefs::instance()->mMarcusBainsFont),topFrame);
1112 topLayout->addWidget(marcusBainsFont->label(),i,0); 1108 topLayout->addWidget(marcusBainsFont->label(),i,0);
1113 topLayout->addWidget(marcusBainsFont->preview(),i,1); 1109 topLayout->addWidget(marcusBainsFont->preview(),i,1);
1114 topLayout->addWidget(marcusBainsFont->button(),i,2); 1110 topLayout->addWidget(marcusBainsFont->button(),i,2);
1115 ++i; 1111 ++i;
1116 1112
1117 tVFont = 1113 tVFont =
1118 addWidFont(i18n("Summary"),i18n("Event Viewer:"), 1114 addWidFont(i18n("Summary"),i18n("Event Viewer:"),
1119 &(KOPrefs::instance()->mEventViewFont),topFrame); 1115 &(KOPrefs::instance()->mEventViewFont),topFrame);
1120 topLayout->addWidget(tVFont->label(),i,0); 1116 topLayout->addWidget(tVFont->label(),i,0);
1121 topLayout->addWidget(tVFont->preview(),i,1); 1117 topLayout->addWidget(tVFont->preview(),i,1);
1122 topLayout->addWidget(tVFont->button(),i,2); 1118 topLayout->addWidget(tVFont->button(),i,2);
1123 ++i; 1119 ++i;
1124 1120
1125 1121
1126 1122
1127 tVFont = 1123 tVFont =
1128 addWidFont(i18n("Details"),i18n("EditorBox:"), 1124 addWidFont(i18n("Details"),i18n("EditorBox:"),
1129 &(KOPrefs::instance()->mEditBoxFont),topFrame); 1125 &(KOPrefs::instance()->mEditBoxFont),topFrame);
1130 topLayout->addWidget(tVFont->label(),i,0); 1126 topLayout->addWidget(tVFont->label(),i,0);
diff --git a/libkcal/icalformatimpl.cpp b/libkcal/icalformatimpl.cpp
index fe7413f..2405682 100644
--- a/libkcal/icalformatimpl.cpp
+++ b/libkcal/icalformatimpl.cpp
@@ -602,217 +602,220 @@ icalproperty *ICalFormatImpl::writeRecurrenceRule(Recurrence *recur)
602 r.freq = ICAL_MONTHLY_RECURRENCE; 602 r.freq = ICAL_MONTHLY_RECURRENCE;
603 603
604 tmpDays = recur->monthDays(); 604 tmpDays = recur->monthDays();
605 for (tmpDay = tmpDays.first(); 605 for (tmpDay = tmpDays.first();
606 tmpDay; 606 tmpDay;
607 tmpDay = tmpDays.next()) { 607 tmpDay = tmpDays.next()) {
608 r.by_month_day[index++] = icalrecurrencetype_day_position(*tmpDay*8);//*tmpDay); 608 r.by_month_day[index++] = icalrecurrencetype_day_position(*tmpDay*8);//*tmpDay);
609 } 609 }
610// r.by_day[index] = ICAL_RECURRENCE_ARRAY_MAX; 610// r.by_day[index] = ICAL_RECURRENCE_ARRAY_MAX;
611 break; 611 break;
612 case Recurrence::rYearlyMonth: 612 case Recurrence::rYearlyMonth:
613 case Recurrence::rYearlyPos: 613 case Recurrence::rYearlyPos:
614 r.freq = ICAL_YEARLY_RECURRENCE; 614 r.freq = ICAL_YEARLY_RECURRENCE;
615 615
616 tmpDays = recur->yearNums(); 616 tmpDays = recur->yearNums();
617 for (tmpDay = tmpDays.first(); 617 for (tmpDay = tmpDays.first();
618 tmpDay; 618 tmpDay;
619 tmpDay = tmpDays.next()) { 619 tmpDay = tmpDays.next()) {
620 r.by_month[index++] = *tmpDay; 620 r.by_month[index++] = *tmpDay;
621 } 621 }
622// r.by_set_pos[index] = ICAL_RECURRENCE_ARRAY_MAX; 622// r.by_set_pos[index] = ICAL_RECURRENCE_ARRAY_MAX;
623 if (recur->doesRecur() == Recurrence::rYearlyPos) { 623 if (recur->doesRecur() == Recurrence::rYearlyPos) {
624 tmpPositions = recur->monthPositions(); 624 tmpPositions = recur->monthPositions();
625 for (tmpPos = tmpPositions.first(); 625 for (tmpPos = tmpPositions.first();
626 tmpPos; 626 tmpPos;
627 tmpPos = tmpPositions.next()) { 627 tmpPos = tmpPositions.next()) {
628 for (i = 0; i < 7; i++) { 628 for (i = 0; i < 7; i++) {
629 if (tmpPos->rDays.testBit(i)) { 629 if (tmpPos->rDays.testBit(i)) {
630 day = (i + 1)%7 + 1; // convert from Monday=0 to Sunday=1 630 day = (i + 1)%7 + 1; // convert from Monday=0 to Sunday=1
631 day += tmpPos->rPos*8; 631 day += tmpPos->rPos*8;
632 if (tmpPos->negative) day = -day; 632 if (tmpPos->negative) day = -day;
633 r.by_day[index2++] = day; 633 r.by_day[index2++] = day;
634 } 634 }
635 } 635 }
636 } 636 }
637// r.by_day[index2] = ICAL_RECURRENCE_ARRAY_MAX; 637// r.by_day[index2] = ICAL_RECURRENCE_ARRAY_MAX;
638 } 638 }
639 break; 639 break;
640 case Recurrence::rYearlyDay: 640 case Recurrence::rYearlyDay:
641 r.freq = ICAL_YEARLY_RECURRENCE; 641 r.freq = ICAL_YEARLY_RECURRENCE;
642 642
643 tmpDays = recur->yearNums(); 643 tmpDays = recur->yearNums();
644 for (tmpDay = tmpDays.first(); 644 for (tmpDay = tmpDays.first();
645 tmpDay; 645 tmpDay;
646 tmpDay = tmpDays.next()) { 646 tmpDay = tmpDays.next()) {
647 r.by_year_day[index++] = *tmpDay; 647 r.by_year_day[index++] = *tmpDay;
648 } 648 }
649// r.by_year_day[index] = ICAL_RECURRENCE_ARRAY_MAX; 649// r.by_year_day[index] = ICAL_RECURRENCE_ARRAY_MAX;
650 break; 650 break;
651 default: 651 default:
652 r.freq = ICAL_NO_RECURRENCE; 652 r.freq = ICAL_NO_RECURRENCE;
653 kdDebug(5800) << "ICalFormatImpl::writeRecurrence(): no recurrence" << endl; 653 kdDebug(5800) << "ICalFormatImpl::writeRecurrence(): no recurrence" << endl;
654 break; 654 break;
655 } 655 }
656 656
657 r.interval = recur->frequency(); 657 r.interval = recur->frequency();
658 658
659 if (recur->duration() > 0) { 659 if (recur->duration() > 0) {
660 r.count = recur->duration(); 660 r.count = recur->duration();
661 } else if (recur->duration() == -1) { 661 } else if (recur->duration() == -1) {
662 r.count = 0; 662 r.count = 0;
663 } else { 663 } else {
664 if (datetime) 664 if (datetime)
665 r.until = writeICalDateTime(recur->endDateTime()); 665 r.until = writeICalDateTime(recur->endDateTime());
666 else 666 else
667 r.until = writeICalDate(recur->endDate()); 667 r.until = writeICalDate(recur->endDate());
668 } 668 }
669 669
670// Debug output 670// Debug output
671#if 0 671#if 0
672 const char *str = icalrecurrencetype_as_string(&r); 672 const char *str = icalrecurrencetype_as_string(&r);
673 if (str) { 673 if (str) {
674 kdDebug(5800) << " String: " << str << endl; 674 kdDebug(5800) << " String: " << str << endl;
675 } else { 675 } else {
676 kdDebug(5800) << " No String" << endl; 676 kdDebug(5800) << " No String" << endl;
677 } 677 }
678#endif 678#endif
679 679
680 return icalproperty_new_rrule(r); 680 return icalproperty_new_rrule(r);
681} 681}
682 682
683icalcomponent *ICalFormatImpl::writeAlarm(Alarm *alarm) 683icalcomponent *ICalFormatImpl::writeAlarm(Alarm *alarm)
684{ 684{
685 icalcomponent *a = icalcomponent_new(ICAL_VALARM_COMPONENT); 685 icalcomponent *a = icalcomponent_new(ICAL_VALARM_COMPONENT);
686 686
687 icalproperty_action action; 687 icalproperty_action action;
688 icalattach *attach = 0; 688 icalattach *attach = 0;
689 689
690 switch (alarm->type()) { 690 switch (alarm->type()) {
691 case Alarm::Procedure: 691 case Alarm::Procedure:
692 action = ICAL_ACTION_PROCEDURE; 692 action = ICAL_ACTION_PROCEDURE;
693 attach = icalattach_new_from_url( QFile::encodeName(alarm->programFile()).data() ); 693 attach = icalattach_new_from_url( QFile::encodeName(alarm->programFile()).data() );
694 icalcomponent_add_property(a,icalproperty_new_attach(attach)); 694 icalcomponent_add_property(a,icalproperty_new_attach(attach));
695 if (!alarm->programArguments().isEmpty()) { 695 if (!alarm->programArguments().isEmpty()) {
696 icalcomponent_add_property(a,icalproperty_new_description(alarm->programArguments().utf8())); 696 icalcomponent_add_property(a,icalproperty_new_description(alarm->programArguments().utf8()));
697 } 697 }
698 icalattach_unref( attach );
698 break; 699 break;
699 case Alarm::Audio: 700 case Alarm::Audio:
700 action = ICAL_ACTION_AUDIO; 701 action = ICAL_ACTION_AUDIO;
701 if (!alarm->audioFile().isEmpty()) { 702 if (!alarm->audioFile().isEmpty()) {
702 attach = icalattach_new_from_url(QFile::encodeName( alarm->audioFile() ).data()); 703 attach = icalattach_new_from_url(QFile::encodeName( alarm->audioFile() ).data());
703 icalcomponent_add_property(a,icalproperty_new_attach(attach)); 704 icalcomponent_add_property(a,icalproperty_new_attach(attach));
705 icalattach_unref( attach );
704 } 706 }
705 break; 707 break;
706 case Alarm::Email: { 708 case Alarm::Email: {
707 action = ICAL_ACTION_EMAIL; 709 action = ICAL_ACTION_EMAIL;
708 QValueList<Person> addresses = alarm->mailAddresses(); 710 QValueList<Person> addresses = alarm->mailAddresses();
709 for (QValueList<Person>::Iterator ad = addresses.begin(); ad != addresses.end(); ++ad) { 711 for (QValueList<Person>::Iterator ad = addresses.begin(); ad != addresses.end(); ++ad) {
710 icalproperty *p = icalproperty_new_attendee("MAILTO:" + (*ad).email().utf8()); 712 icalproperty *p = icalproperty_new_attendee("MAILTO:" + (*ad).email().utf8());
711 if (!(*ad).name().isEmpty()) { 713 if (!(*ad).name().isEmpty()) {
712 icalproperty_add_parameter(p,icalparameter_new_cn((*ad).name().utf8())); 714 icalproperty_add_parameter(p,icalparameter_new_cn((*ad).name().utf8()));
713 } 715 }
714 icalcomponent_add_property(a,p); 716 icalcomponent_add_property(a,p);
715 } 717 }
716 icalcomponent_add_property(a,icalproperty_new_summary(alarm->mailSubject().utf8())); 718 icalcomponent_add_property(a,icalproperty_new_summary(alarm->mailSubject().utf8()));
717 icalcomponent_add_property(a,icalproperty_new_description(alarm->text().utf8())); 719 icalcomponent_add_property(a,icalproperty_new_description(alarm->text().utf8()));
718 QStringList attachments = alarm->mailAttachments(); 720 QStringList attachments = alarm->mailAttachments();
719 if (attachments.count() > 0) { 721 if (attachments.count() > 0) {
720 for (QStringList::Iterator at = attachments.begin(); at != attachments.end(); ++at) { 722 for (QStringList::Iterator at = attachments.begin(); at != attachments.end(); ++at) {
721 attach = icalattach_new_from_url(QFile::encodeName( *at ).data()); 723 attach = icalattach_new_from_url(QFile::encodeName( *at ).data());
722 icalcomponent_add_property(a,icalproperty_new_attach(attach)); 724 icalcomponent_add_property(a,icalproperty_new_attach(attach));
725 icalattach_unref( attach );
723 } 726 }
724 } 727 }
725 break; 728 break;
726 } 729 }
727 case Alarm::Display: 730 case Alarm::Display:
728 action = ICAL_ACTION_DISPLAY; 731 action = ICAL_ACTION_DISPLAY;
729 icalcomponent_add_property(a,icalproperty_new_description(alarm->text().utf8())); 732 icalcomponent_add_property(a,icalproperty_new_description(alarm->text().utf8()));
730 break; 733 break;
731 case Alarm::Invalid: 734 case Alarm::Invalid:
732 default: 735 default:
733 kdDebug(5800) << "Unknown type of alarm" << endl; 736 kdDebug(5800) << "Unknown type of alarm" << endl;
734 action = ICAL_ACTION_NONE; 737 action = ICAL_ACTION_NONE;
735 break; 738 break;
736 } 739 }
737 icalcomponent_add_property(a,icalproperty_new_action(action)); 740 icalcomponent_add_property(a,icalproperty_new_action(action));
738 741
739 // Trigger time 742 // Trigger time
740 icaltriggertype trigger; 743 icaltriggertype trigger;
741 if ( alarm->hasTime() ) { 744 if ( alarm->hasTime() ) {
742 trigger.time = writeICalDateTime(alarm->time()); 745 trigger.time = writeICalDateTime(alarm->time());
743 trigger.duration = icaldurationtype_null_duration(); 746 trigger.duration = icaldurationtype_null_duration();
744 } else { 747 } else {
745 trigger.time = icaltime_null_time(); 748 trigger.time = icaltime_null_time();
746 Duration offset; 749 Duration offset;
747 if ( alarm->hasStartOffset() ) 750 if ( alarm->hasStartOffset() )
748 offset = alarm->startOffset(); 751 offset = alarm->startOffset();
749 else 752 else
750 offset = alarm->endOffset(); 753 offset = alarm->endOffset();
751 trigger.duration = icaldurationtype_from_int( offset.asSeconds() ); 754 trigger.duration = icaldurationtype_from_int( offset.asSeconds() );
752 } 755 }
753 icalproperty *p = icalproperty_new_trigger(trigger); 756 icalproperty *p = icalproperty_new_trigger(trigger);
754 if ( alarm->hasEndOffset() ) 757 if ( alarm->hasEndOffset() )
755 icalproperty_add_parameter(p,icalparameter_new_related(ICAL_RELATED_END)); 758 icalproperty_add_parameter(p,icalparameter_new_related(ICAL_RELATED_END));
756 icalcomponent_add_property(a,p); 759 icalcomponent_add_property(a,p);
757 760
758 // Repeat count and duration 761 // Repeat count and duration
759 if (alarm->repeatCount()) { 762 if (alarm->repeatCount()) {
760 icalcomponent_add_property(a,icalproperty_new_repeat(alarm->repeatCount())); 763 icalcomponent_add_property(a,icalproperty_new_repeat(alarm->repeatCount()));
761 icalcomponent_add_property(a,icalproperty_new_duration( 764 icalcomponent_add_property(a,icalproperty_new_duration(
762 icaldurationtype_from_int(alarm->snoozeTime()*60))); 765 icaldurationtype_from_int(alarm->snoozeTime()*60)));
763 } 766 }
764 767
765 // Custom properties 768 // Custom properties
766 QMap<QCString, QString> custom = alarm->customProperties(); 769 QMap<QCString, QString> custom = alarm->customProperties();
767 for (QMap<QCString, QString>::Iterator c = custom.begin(); c != custom.end(); ++c) { 770 for (QMap<QCString, QString>::Iterator c = custom.begin(); c != custom.end(); ++c) {
768 icalproperty *p = icalproperty_new_x(c.data().utf8()); 771 icalproperty *p = icalproperty_new_x(c.data().utf8());
769 icalproperty_set_x_name(p,c.key()); 772 icalproperty_set_x_name(p,c.key());
770 icalcomponent_add_property(a,p); 773 icalcomponent_add_property(a,p);
771 } 774 }
772 775
773 return a; 776 return a;
774} 777}
775 778
776Todo *ICalFormatImpl::readTodo(icalcomponent *vtodo) 779Todo *ICalFormatImpl::readTodo(icalcomponent *vtodo)
777{ 780{
778 Todo *todo = new Todo; 781 Todo *todo = new Todo;
779 782
780 readIncidence(vtodo,todo); 783 readIncidence(vtodo,todo);
781 784
782 icalproperty *p = icalcomponent_get_first_property(vtodo,ICAL_ANY_PROPERTY); 785 icalproperty *p = icalcomponent_get_first_property(vtodo,ICAL_ANY_PROPERTY);
783 786
784// int intvalue; 787// int intvalue;
785 icaltimetype icaltime; 788 icaltimetype icaltime;
786 789
787 QStringList categories; 790 QStringList categories;
788 791
789 while (p) { 792 while (p) {
790 icalproperty_kind kind = icalproperty_isa(p); 793 icalproperty_kind kind = icalproperty_isa(p);
791 switch (kind) { 794 switch (kind) {
792 795
793 case ICAL_DUE_PROPERTY: // due date 796 case ICAL_DUE_PROPERTY: // due date
794 icaltime = icalproperty_get_due(p); 797 icaltime = icalproperty_get_due(p);
795 if (icaltime.is_date) { 798 if (icaltime.is_date) {
796 todo->setDtDue(QDateTime(readICalDate(icaltime),QTime(0,0,0))); 799 todo->setDtDue(QDateTime(readICalDate(icaltime),QTime(0,0,0)));
797 todo->setFloats(true); 800 todo->setFloats(true);
798 801
799 } else { 802 } else {
800 todo->setDtDue(readICalDateTime(icaltime)); 803 todo->setDtDue(readICalDateTime(icaltime));
801 todo->setFloats(false); 804 todo->setFloats(false);
802 } 805 }
803 todo->setHasDueDate(true); 806 todo->setHasDueDate(true);
804 break; 807 break;
805 808
806 case ICAL_COMPLETED_PROPERTY: // completion date 809 case ICAL_COMPLETED_PROPERTY: // completion date
807 icaltime = icalproperty_get_completed(p); 810 icaltime = icalproperty_get_completed(p);
808 todo->setCompleted(readICalDateTime(icaltime)); 811 todo->setCompleted(readICalDateTime(icaltime));
809 break; 812 break;
810 813
811 case ICAL_PERCENTCOMPLETE_PROPERTY: // Percent completed 814 case ICAL_PERCENTCOMPLETE_PROPERTY: // Percent completed
812 todo->setPercentComplete(icalproperty_get_percentcomplete(p)); 815 todo->setPercentComplete(icalproperty_get_percentcomplete(p));
813 break; 816 break;
814 817
815 case ICAL_RELATEDTO_PROPERTY: // related todo (parent) 818 case ICAL_RELATEDTO_PROPERTY: // related todo (parent)
816 todo->setRelatedToUid(QString::fromUtf8(icalproperty_get_relatedto(p))); 819 todo->setRelatedToUid(QString::fromUtf8(icalproperty_get_relatedto(p)));
817 mTodosRelate.append(todo); 820 mTodosRelate.append(todo);
818 break; 821 break;
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
index 753d90a..fbfbc45 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
@@ -1,213 +1,252 @@
1/* 1/*
2 This file is part of KdePim/Pi. 2 This file is part of KdePim/Pi.
3 Copyright (c) 2004 Ulf Schenk 3 Copyright (c) 2004 Ulf Schenk
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24/* 24/*
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#include <qlayout.h> 31#include <qlayout.h>
32#include <qtabwidget.h> 32#include <qtabwidget.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qgroupbox.h> 34#include <qgroupbox.h>
35#include <qlabel.h> 35#include <qlabel.h>
36#include <qlineedit.h> 36#include <qlineedit.h>
37#include <qbuttongroup.h> 37#include <qbuttongroup.h>
38#include <qcheckbox.h>
38#include <qfile.h> 39#include <qfile.h>
39#include <qvbox.h> 40#include <qvbox.h>
40#include <qdir.h> 41#include <qdir.h>
41#include <qregexp.h> 42#include <qregexp.h>
43#include <qspinbox.h>
42 44
43#include <kdialog.h> 45#include <kdialog.h>
44#include <kprefsdialog.h> 46#include <kprefsdialog.h>
45#include <klocale.h> 47#include <klocale.h>
48#include <kglobalsettings.h>
46#include <kdateedit.h> 49#include <kdateedit.h>
47#include <kglobal.h> 50#include <kglobal.h>
48#include <stdlib.h> 51#include <stdlib.h>
49 52
50/*US 53/*US
51#include <qcheckbox.h> 54#include <qcheckbox.h>
52#include <qframe.h> 55#include <qframe.h>
53#include <qpushbutton.h> 56#include <qpushbutton.h>
54#include <qcombobox.h> 57#include <qcombobox.h>
55#include <qlineedit.h> 58#include <qlineedit.h>
56#include <qlabel.h> 59#include <qlabel.h>
57#include <qfile.h> 60#include <qfile.h>
58 61
59#include <kconfig.h> 62#include <kconfig.h>
60#include <kdebug.h> 63#include <kdebug.h>
61#include <kdialog.h> 64#include <kdialog.h>
62#include <klistview.h> 65#include <klistview.h>
63#include <klocale.h> 66#include <klocale.h>
64#include <kglobal.h> 67#include <kglobal.h>
65#include <kmessagebox.h> 68#include <kmessagebox.h>
66#include <kstandarddirs.h> 69#include <kstandarddirs.h>
67 70
68#ifndef KAB_EMBEDDED 71#ifndef KAB_EMBEDDED
69#include <ktrader.h> 72#include <ktrader.h>
70#else // KAB_EMBEDDED 73#else // KAB_EMBEDDED
71#include <mergewidget.h> 74#include <mergewidget.h>
72#include <distributionlistwidget.h> 75#include <distributionlistwidget.h>
73#endif // KAB_EMBEDDED 76#endif // KAB_EMBEDDED
74 77
75#include "addresseewidget.h" 78#include "addresseewidget.h"
76#include "extensionconfigdialog.h" 79#include "extensionconfigdialog.h"
77#include "extensionwidget.h" 80#include "extensionwidget.h"
78*/ 81*/
79 82
80#include "qapplication.h" 83#include "qapplication.h"
81 84
82#include "kpimglobalprefs.h" 85#include "kpimglobalprefs.h"
83 86
84#include "kdepimconfigwidget.h" 87#include "kdepimconfigwidget.h"
85#include <kprefs.h> 88#include <kprefs.h>
86#include <kmessagebox.h> 89#include <kmessagebox.h>
87 90
88 91
89KDEPIMConfigWidget::KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name ) 92KDEPIMConfigWidget::KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name )
90 : KPrefsWidget(prefs, parent, name ) 93 : KPrefsWidget(prefs, parent, name )
91{ 94{
92 mExternalAppsMap.insert(ExternalAppHandler::EMAIL, i18n("Email")); 95 mExternalAppsMap.insert(ExternalAppHandler::EMAIL, i18n("Email"));
93 mExternalAppsMap.insert(ExternalAppHandler::PHONE, i18n("Phone")); 96 mExternalAppsMap.insert(ExternalAppHandler::PHONE, i18n("Phone"));
94 mExternalAppsMap.insert(ExternalAppHandler::SMS, i18n("SMS")); 97 mExternalAppsMap.insert(ExternalAppHandler::SMS, i18n("SMS"));
95 mExternalAppsMap.insert(ExternalAppHandler::FAX, i18n("Fax")); 98 mExternalAppsMap.insert(ExternalAppHandler::FAX, i18n("Fax"));
96 mExternalAppsMap.insert(ExternalAppHandler::PAGER, i18n("Pager")); 99 mExternalAppsMap.insert(ExternalAppHandler::PAGER, i18n("Pager"));
97 mExternalAppsMap.insert(ExternalAppHandler::SIP, i18n("SIP")); 100 mExternalAppsMap.insert(ExternalAppHandler::SIP, i18n("SIP"));
98 101
99 102
100 QVBoxLayout *topLayout = new QVBoxLayout( this, 0, 103 QVBoxLayout *topLayout = new QVBoxLayout( this, 0,
101 KDialog::spacingHint() ); 104 KDialog::spacingHint() );
102 105
103 tabWidget = new QTabWidget( this ); 106 tabWidget = new QTabWidget( this );
104 topLayout->addWidget( tabWidget ); 107 topLayout->addWidget( tabWidget );
105 108
106 109
107 setupLocaleTab(); 110 setupLocaleTab();
108 setupLocaleDateTab(); 111 setupLocaleDateTab();
109 setupTimeZoneTab(); 112 setupTimeZoneTab();
110 setupExternalAppTab(); 113 setupExternalAppTab();
111 setupStoreTab(); 114 setupStoreTab();
112 115 setupBackupTab();
113} 116}
114void KDEPIMConfigWidget::showTimeZoneTab() 117void KDEPIMConfigWidget::showTimeZoneTab()
115{ 118{
116 tabWidget->setCurrentPage ( 3 ) ; 119 tabWidget->setCurrentPage ( 3 ) ;
117} 120}
121void KDEPIMConfigWidget::setupBackupTab()
122{
123 QVBox *colorPage = new QVBox( this );
124 tabWidget->addTab( colorPage, i18n( "Backup" ) );
125 QWidget* topFrame = new QWidget( colorPage );
126 QVBoxLayout *topLayout = new QVBoxLayout(topFrame);
127 KPrefsWidBool *sb = addWidBool(i18n("Backup enabled"),
128 &(KPimGlobalPrefs::instance()->mBackupEnabled),topFrame);
129 topLayout->addWidget((QWidget*)sb->checkBox());
130 QWidget* bupFrame = new QWidget( topFrame );
131 topLayout->addWidget((bupFrame));
132 QObject::connect ( sb->checkBox(), SIGNAL (toggled ( bool ) ), bupFrame, SLOT ( setEnabled( bool ) ) );
133 QVBoxLayout *bupLayout = new QVBoxLayout(bupFrame);
134 sb = addWidBool(i18n("Use standard backup dir"),
135 &(KPimGlobalPrefs::instance()->mBackupEnabled),bupFrame);
136 bupLayout->addWidget((QWidget*)sb->checkBox());
137 mBackupUrl = new KURLRequester( bupFrame );
138 mBackupUrl->setURL( KGlobalSettings::backupDataDir() );
139 QObject::connect ( sb->checkBox(), SIGNAL (toggled ( bool ) ), mBackupUrl ,SLOT ( setDisabled( bool ) ) );
140 bupLayout->addWidget( mBackupUrl );
141
142
143 QHBox *dummy = new QHBox(bupFrame);
144 new QLabel(i18n("Number of Backups:"),dummy);
145 mBackupNumbersSpin = new QSpinBox(1,21,1,dummy);
146 new QLabel(i18n(" "),dummy);
147 bupLayout->addWidget( dummy );
148
149 dummy = new QHBox(bupFrame);
150 new QLabel(i18n("Make backup every "),dummy);
151 mBackupDayCountSpin = new QSpinBox(1,28,1,dummy);
152 new QLabel(i18n(" days"),dummy);
153 new QLabel(i18n(" "),dummy);
154 bupLayout->addWidget( dummy );
155
156}
118void KDEPIMConfigWidget::setupStoreTab() 157void KDEPIMConfigWidget::setupStoreTab()
119{ 158{
120 QVBox *colorPage = new QVBox( this ); 159 QVBox *colorPage = new QVBox( this );
121 tabWidget->addTab( colorPage, i18n( "Colors" ) ); 160 tabWidget->addTab( colorPage, i18n( "Colors" ) );
122 QWidget* cw = new QWidget( colorPage ); 161 QWidget* cw = new QWidget( colorPage );
123 KPrefsWidColor *holidayColor = 162 KPrefsWidColor *holidayColor =
124 addWidColor(i18n("Alternating background of list views"), 163 addWidColor(i18n("Alternating background of list views"),
125 &(KPimGlobalPrefs::instance()->mAlternateColor),cw); 164 &(KPimGlobalPrefs::instance()->mAlternateColor),cw);
126 QHBoxLayout *topLayout = new QHBoxLayout(cw); 165 QHBoxLayout *topLayout = new QHBoxLayout(cw);
127 topLayout->addWidget(holidayColor->label()); 166 topLayout->addWidget(holidayColor->label());
128 topLayout->addWidget( (QWidget* )holidayColor->button()); 167 topLayout->addWidget( (QWidget* )holidayColor->button());
129 168
130 169
131 QVBox *storePage = new QVBox( this ); 170 QVBox *storePage = new QVBox( this );
132 new QLabel( i18n("Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail").arg(KGlobal::dirs()->localkdedir()), storePage ); 171 new QLabel( i18n("Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail").arg(KGlobal::dirs()->localkdedir()), storePage );
133 new QLabel( i18n("<b>New data storage dir:</b>"), storePage ); 172 new QLabel( i18n("<b>New data storage dir:</b>"), storePage );
134 mStoreUrl = new KURLRequester( storePage ); 173 mStoreUrl = new KURLRequester( storePage );
135 mStoreUrl->setURL( KGlobal::dirs()->localkdedir() ); 174 mStoreUrl->setURL( KGlobal::dirs()->localkdedir() );
136#ifdef DESKTOP_VERSION 175#ifdef DESKTOP_VERSION
137 QString confFile = qApp->applicationDirPath ()+ "/.microkdehome" ; 176 QString confFile = qApp->applicationDirPath ()+ "/.microkdehome" ;
138 QFileInfo fi ( confFile ); 177 QFileInfo fi ( confFile );
139 if ( fi.exists() ) { 178 if ( fi.exists() ) {
140 KConfig cfg ( confFile ); 179 KConfig cfg ( confFile );
141 cfg.setGroup("Global"); 180 cfg.setGroup("Global");
142 QString localKdeDir = cfg.readEntry( "MICROKDEHOME", "x_x_x" ); 181 QString localKdeDir = cfg.readEntry( "MICROKDEHOME", "x_x_x" );
143 if ( localKdeDir != "x_x_x" ) { 182 if ( localKdeDir != "x_x_x" ) {
144 mStoreUrl->setURL( localKdeDir ); 183 mStoreUrl->setURL( localKdeDir );
145 qDebug("Reading config from %s ", confFile.latin1()); 184 qDebug("Reading config from %s ", confFile.latin1());
146 } 185 }
147 } 186 }
148 187
149#endif 188#endif
150 new QLabel( i18n("New dirs are created automatically"), storePage ); 189 new QLabel( i18n("New dirs are created automatically"), storePage );
151 QHBox *bb = new QHBox( storePage ); 190 QHBox *bb = new QHBox( storePage );
152 QPushButton * pb; 191 QPushButton * pb;
153 if ( QApplication::desktop()->width() < 640 ) 192 if ( QApplication::desktop()->width() < 640 )
154 pb = new QPushButton ( i18n("Save"), bb ); 193 pb = new QPushButton ( i18n("Save"), bb );
155 else 194 else
156 pb = new QPushButton ( i18n("Save settings"), bb ); 195 pb = new QPushButton ( i18n("Save settings"), bb );
157 connect(pb, SIGNAL( clicked() ), this, SLOT ( saveStoreSettings() ) ); 196 connect(pb, SIGNAL( clicked() ), this, SLOT ( saveStoreSettings() ) );
158 pb = new QPushButton ( i18n("Save standard"), bb ); 197 pb = new QPushButton ( i18n("Save standard"), bb );
159 connect(pb, SIGNAL( clicked() ), this, SLOT ( setStandardStore() ) ); 198 connect(pb, SIGNAL( clicked() ), this, SLOT ( setStandardStore() ) );
160#ifdef DESKTOP_VERSION 199#ifdef DESKTOP_VERSION
161 pb = new QPushButton ( i18n("Save using LOCAL storage"), bb ); 200 pb = new QPushButton ( i18n("Save using LOCAL storage"), bb );
162 connect(pb, SIGNAL( clicked() ), this, SLOT ( setLocalStore() ) ); 201 connect(pb, SIGNAL( clicked() ), this, SLOT ( setLocalStore() ) );
163#endif 202#endif
164 new QLabel( i18n("<b>New settings are used\nafter a restart</b>"), storePage ); 203 new QLabel( i18n("<b>New settings are used\nafter a restart</b>"), storePage );
165 new QLabel( i18n("Settings are stored in\n%1").arg(QDir::homeDirPath() + "/.microkdehome" ), storePage ); 204 new QLabel( i18n("Settings are stored in\n%1").arg(QDir::homeDirPath() + "/.microkdehome" ), storePage );
166 tabWidget->addTab( storePage, i18n( "Data storage path" ) ); 205 tabWidget->addTab( storePage, i18n( "Data storage path" ) );
167} 206}
168void KDEPIMConfigWidget::setLocalStore() 207void KDEPIMConfigWidget::setLocalStore()
169{ 208{
170 mStoreUrl->setURL( "LOCAL:kdepimpi" ); 209 mStoreUrl->setURL( "LOCAL:kdepimpi" );
171 saveStoreSettings(); 210 saveStoreSettings();
172 QString message = i18n("'LOCAL' mode makes is possible to run\nKA/Pi and KO/Pi from a USB memory stick.\nIn LOCAL mode the data is stored\nin a path relative to the executable.\nNote, that in LOCAL mode only addressbook\nresource files in\n <path of the executable>/<dirname after LOCAL:>/apps/kabc/*.vcf\n are supported.\nIf you use the standard addressbook settings\nyou do not have to reconfigure any path,\njust restart the application and import\nyour addressbook and calendar data."); 211 QString message = i18n("'LOCAL' mode makes is possible to run\nKA/Pi and KO/Pi from a USB memory stick.\nIn LOCAL mode the data is stored\nin a path relative to the executable.\nNote, that in LOCAL mode only addressbook\nresource files in\n <path of the executable>/<dirname after LOCAL:>/apps/kabc/*.vcf\n are supported.\nIf you use the standard addressbook settings\nyou do not have to reconfigure any path,\njust restart the application and import\nyour addressbook and calendar data.");
173 KMessageBox::information( this, message); 212 KMessageBox::information( this, message);
174} 213}
175void KDEPIMConfigWidget::setStandardStore() 214void KDEPIMConfigWidget::setStandardStore()
176{ 215{
177 mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" ); 216 mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" );
178 saveStoreSettings(); 217 saveStoreSettings();
179} 218}
180void KDEPIMConfigWidget::saveStoreSettings() 219void KDEPIMConfigWidget::saveStoreSettings()
181{ 220{
182 if ( !mStoreUrl->url().isEmpty() ) { 221 if ( !mStoreUrl->url().isEmpty() ) {
183 QString path = QDir::homeDirPath(); 222 QString path = QDir::homeDirPath();
184 QString url = mStoreUrl->url(); 223 QString url = mStoreUrl->url();
185#ifdef DESKTOP_VERSION 224#ifdef DESKTOP_VERSION
186 if ( url.startsWith( "LOCAL:" ) ) { 225 if ( url.startsWith( "LOCAL:" ) ) {
187 path = qApp->applicationDirPath () ; 226 path = qApp->applicationDirPath () ;
188 } 227 }
189#endif 228#endif
190 KConfig cfg ( path + "/.microkdehome" ); 229 KConfig cfg ( path + "/.microkdehome" );
191 cfg.setGroup("Global"); 230 cfg.setGroup("Global");
192 cfg.writeEntry( "MICROKDEHOME", url ); 231 cfg.writeEntry( "MICROKDEHOME", url );
193 qDebug("cfg.writeEntry( MICROKDEHOME, %s ", url.latin1()); 232 qDebug("cfg.writeEntry( MICROKDEHOME, %s ", url.latin1());
194 cfg.sync(); 233 cfg.sync();
195 } else { 234 } else {
196 mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" ); 235 mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" );
197 saveStoreSettings(); 236 saveStoreSettings();
198 } 237 }
199} 238}
200void KDEPIMConfigWidget::setupExternalAppTab() 239void KDEPIMConfigWidget::setupExternalAppTab()
201{ 240{
202 QWidget *externalAppsPage = new QWidget( this ); 241 QWidget *externalAppsPage = new QWidget( this );
203 QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(), 242 QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(),
204 KDialog::spacingHintSmall() ); 243 KDialog::spacingHintSmall() );
205 244
206 mExternalApps = new QComboBox( externalAppsPage ); 245 mExternalApps = new QComboBox( externalAppsPage );
207 246
208 QMap<ExternalAppHandler::Types, QString>::Iterator it; 247 QMap<ExternalAppHandler::Types, QString>::Iterator it;
209 for( it = mExternalAppsMap.begin(); it != mExternalAppsMap.end(); ++it ) 248 for( it = mExternalAppsMap.begin(); it != mExternalAppsMap.end(); ++it )
210 mExternalApps->insertItem( it.data(), it.key() ); 249 mExternalApps->insertItem( it.data(), it.key() );
211 250
212 layout->addWidget( mExternalApps ); 251 layout->addWidget( mExternalApps );
213 252
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.h b/libkdepim/kcmconfigs/kdepimconfigwidget.h
index 984e4e0..c0b92a9 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.h
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.h
@@ -1,161 +1,163 @@
1/* 1/*
2 This file is part of KDEPim/Pi. 2 This file is part of KDEPim/Pi.
3 Copyright (c) 2004 Ulf Schenk 3 Copyright (c) 2004 Ulf Schenk
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24/* 24/*
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#ifndef KDEPIMCONFIGWIDGET_H 31#ifndef KDEPIMCONFIGWIDGET_H
32#define KDEPIMCONFIGWIDGET_H 32#define KDEPIMCONFIGWIDGET_H
33 33
34#include <kprefswidget.h> 34#include <kprefswidget.h>
35#include <kio/kfile/kurlrequester.h> 35#include <kio/kfile/kurlrequester.h>
36#include <qmap.h> 36#include <qmap.h>
37 37
38#include "externalapphandler.h" 38#include "externalapphandler.h"
39 39
40 40
41class QComboBox; 41class QComboBox;
42class QLineEdit; 42class QLineEdit;
43class KPimGlobalPrefs; 43class KPimGlobalPrefs;
44class QGroupBox; 44class QGroupBox;
45class QTabWidget; 45class QTabWidget;
46class KDateEdit; 46class KDateEdit;
47 47
48class KDEPIMConfigWidget : public KPrefsWidget 48class KDEPIMConfigWidget : public KPrefsWidget
49{ 49{
50 Q_OBJECT 50 Q_OBJECT
51 51
52 public: 52 public:
53 KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name = 0 ); 53 KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name = 0 );
54 54
55 public slots: 55 public slots:
56 void textChanged( const QString& text ); 56 void textChanged( const QString& text );
57 void showTimeZoneTab(); 57 void showTimeZoneTab();
58 58
59 protected: 59 protected:
60 /** Implement this to read custom configuration widgets. */ 60 /** Implement this to read custom configuration widgets. */
61 virtual void usrReadConfig(); 61 virtual void usrReadConfig();
62 /** Implement this to write custom configuration widgets. */ 62 /** Implement this to write custom configuration widgets. */
63 virtual void usrWriteConfig(); 63 virtual void usrWriteConfig();
64 64
65 65
66 private slots: 66 private slots:
67// void configureExtension(); 67// void configureExtension();
68// void selectionChanged( QListViewItem* ); 68// void selectionChanged( QListViewItem* );
69// void itemClicked( QListViewItem* ); 69// void itemClicked( QListViewItem* );
70 void client_changed( int newClient ); 70 void client_changed( int newClient );
71 void externalapp_changed( int newApp ); 71 void externalapp_changed( int newApp );
72 void saveStoreSettings(); 72 void saveStoreSettings();
73 void setStandardStore(); 73 void setStandardStore();
74 void setLocalStore(); 74 void setLocalStore();
75 75
76 private: 76 private:
77 void setupExternalAppTab(); 77 void setupExternalAppTab();
78 void setupLocaleDateTab(); 78 void setupLocaleDateTab();
79 void setupLocaleTab(); 79 void setupLocaleTab();
80 void setupTimeZoneTab(); 80 void setupTimeZoneTab();
81 void setupStoreTab(); 81 void setupStoreTab();
82 void setupBackupTab();
82 KURLRequester* mStoreUrl; 83 KURLRequester* mStoreUrl;
83 84
84 void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0); 85 void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0);
85 86
86 87
87 void saveEditFieldSettings(); 88 void saveEditFieldSettings();
88 void updateClientWidgets(); 89 void updateClientWidgets();
89 90
90 QTabWidget *tabWidget; 91 QTabWidget *tabWidget;
91 92
92 93
93 QLineEdit* mUserDateFormatShort; 94 QLineEdit* mUserDateFormatShort;
94 QLineEdit* mUserDateFormatLong; 95 QLineEdit* mUserDateFormatLong;
95 QComboBox* mTimeZoneCombo; 96 QComboBox* mTimeZoneCombo;
96 KDateEdit* mStartDateSavingEdit; 97 KDateEdit* mStartDateSavingEdit;
97 KDateEdit* mEndDateSavingEdit; 98 KDateEdit* mEndDateSavingEdit;
98 99
99// void restoreExtensionSettings(); 100// void restoreExtensionSettings();
100// void saveExtensionSettings(); 101// void saveExtensionSettings();
101 102
102// KListView *mExtensionView; 103// KListView *mExtensionView;
103 104
104// QCheckBox *mNameParsing; 105// QCheckBox *mNameParsing;
105// QCheckBox *mViewsSingleClickBox; 106// QCheckBox *mViewsSingleClickBox;
106// QPushButton *mConfigureButton; 107// QPushButton *mConfigureButton;
107 QComboBox* mExternalApps; 108 QComboBox* mExternalApps;
108 QGroupBox* mExternalAppGroupBox; 109 QGroupBox* mExternalAppGroupBox;
109 110
110 111
111 QComboBox* mClient; 112 QComboBox* mClient;
112 QLineEdit* mChannel; 113 QLineEdit* mChannel;
113 QLineEdit* mMessage; 114 QLineEdit* mMessage;
114 QLineEdit* mParameters; 115 QLineEdit* mParameters;
115 QLineEdit* mMessage2; 116 QLineEdit* mMessage2;
116 QLineEdit* mParameters2; 117 QLineEdit* mParameters2;
117 118
118 ExternalAppHandler::Types mCurrentApp; 119 ExternalAppHandler::Types mCurrentApp;
119 int mCurrentClient; 120 int mCurrentClient;
120 121
121 122
122 int mEmailClient; 123 int mEmailClient;
123 QString mEmailOtherChannel; 124 QString mEmailOtherChannel;
124 QString mEmailOtherMessage; 125 QString mEmailOtherMessage;
125 QString mEmailOtherMessageParameters; 126 QString mEmailOtherMessageParameters;
126 QString mEmailOtherMessage2; 127 QString mEmailOtherMessage2;
127 QString mEmailOtherMessageParameters2; 128 QString mEmailOtherMessageParameters2;
128 129
129 int mPhoneClient; 130 int mPhoneClient;
130 QString mPhoneOtherChannel; 131 QString mPhoneOtherChannel;
131 QString mPhoneOtherMessage; 132 QString mPhoneOtherMessage;
132 QString mPhoneOtherMessageParameters; 133 QString mPhoneOtherMessageParameters;
133 134
134 int mFaxClient; 135 int mFaxClient;
135 QString mFaxOtherChannel; 136 QString mFaxOtherChannel;
136 QString mFaxOtherMessage; 137 QString mFaxOtherMessage;
137 QString mFaxOtherMessageParameters; 138 QString mFaxOtherMessageParameters;
138 139
139 int mSMSClient; 140 int mSMSClient;
140 QString mSMSOtherChannel; 141 QString mSMSOtherChannel;
141 QString mSMSOtherMessage; 142 QString mSMSOtherMessage;
142 QString mSMSOtherMessageParameters; 143 QString mSMSOtherMessageParameters;
143 144
144 int mPagerClient; 145 int mPagerClient;
145 QString mPagerOtherChannel; 146 QString mPagerOtherChannel;
146 QString mPagerOtherMessage; 147 QString mPagerOtherMessage;
147 QString mPagerOtherMessageParameters; 148 QString mPagerOtherMessageParameters;
148 149
149 int mSipClient; 150 int mSipClient;
150 QString mSipOtherChannel; 151 QString mSipOtherChannel;
151 QString mSipOtherMessage; 152 QString mSipOtherMessage;
152 QString mSipOtherMessageParameters; 153 QString mSipOtherMessageParameters;
153 154
154 155
155 156 KURLRequester* mBackupUrl;
157 QSpinBox* mBackupDayCountSpin, *mBackupNumbersSpin ;
156 QMap<ExternalAppHandler::Types, QString> mExternalAppsMap; 158 QMap<ExternalAppHandler::Types, QString> mExternalAppsMap;
157 159
158// AddresseeWidget *mAddresseeWidget; 160// AddresseeWidget *mAddresseeWidget;
159}; 161};
160 162
161#endif 163#endif
diff --git a/libkdepim/kpimglobalprefs.cpp b/libkdepim/kpimglobalprefs.cpp
index 873f0eb..90321b2 100644
--- a/libkdepim/kpimglobalprefs.cpp
+++ b/libkdepim/kpimglobalprefs.cpp
@@ -18,192 +18,199 @@
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24/* 24/*
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#include <kglobal.h> 31#include <kglobal.h>
32#include <kconfig.h> 32#include <kconfig.h>
33#include <klocale.h> 33#include <klocale.h>
34#include <kdebug.h> 34#include <kdebug.h>
35#include <kglobalsettings.h> 35#include <kglobalsettings.h>
36#include <kstaticdeleter.h> 36#include <kstaticdeleter.h>
37 37
38#include <qregexp.h> 38#include <qregexp.h>
39#include <qfile.h> 39#include <qfile.h>
40#include <stdlib.h> 40#include <stdlib.h>
41#include <qtextstream.h> 41#include <qtextstream.h>
42#include <qapplication.h> 42#include <qapplication.h>
43#include "kpimglobalprefs.h" 43#include "kpimglobalprefs.h"
44 44
45KPimGlobalPrefs *KPimGlobalPrefs::sInstance = 0; 45KPimGlobalPrefs *KPimGlobalPrefs::sInstance = 0;
46static KStaticDeleter<KPimGlobalPrefs> staticDeleterGP; 46static KStaticDeleter<KPimGlobalPrefs> staticDeleterGP;
47 47
48 48
49KPimGlobalPrefs::KPimGlobalPrefs( const QString &name ) 49KPimGlobalPrefs::KPimGlobalPrefs( const QString &name )
50 : KPrefs("microkdeglobalrc") 50 : KPrefs("microkdeglobalrc")
51{ 51{
52 mLocaleDict = 0; 52 mLocaleDict = 0;
53 KPrefs::setCurrentGroup("Fonts"); 53 KPrefs::setCurrentGroup("Fonts");
54 addItemFont("ApplicationFont",&mApplicationFont,KGlobalSettings::generalFont() ); 54 addItemFont("ApplicationFont",&mApplicationFont,KGlobalSettings::generalFont() );
55 KPrefs::setCurrentGroup("Locale"); 55 KPrefs::setCurrentGroup("Locale");
56 addItemInt("PreferredLanguage",&mPreferredLanguage,0); 56 addItemInt("PreferredLanguage",&mPreferredLanguage,0);
57 addItemInt("PreferredTime",&mPreferredTime,0); 57 addItemInt("PreferredTime",&mPreferredTime,0);
58 addItemInt("PreferredDate",&mPreferredDate,0); 58 addItemInt("PreferredDate",&mPreferredDate,0);
59 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false); 59 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false);
60 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%AK %d. %b %y"); 60 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%AK %d. %b %y");
61 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y"); 61 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y");
62 62
63 KPrefs::setCurrentGroup("Colors"); 63 KPrefs::setCurrentGroup("Colors");
64 addItemColor("AlternateBGcolor",&mAlternateColor,KGlobalSettings::alternateBackgroundColor()); 64 addItemColor("AlternateBGcolor",&mAlternateColor,KGlobalSettings::alternateBackgroundColor());
65 65
66 66
67 KPrefs::setCurrentGroup("Time & Date"); 67 KPrefs::setCurrentGroup("Time & Date");
68 68
69 addItemString("TimeZoneName",&mTimeZoneId, ("+01:00 Europe/Oslo(CET)") ); 69 addItemString("TimeZoneName",&mTimeZoneId, ("+01:00 Europe/Oslo(CET)") );
70 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true); 70 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true);
71 addItemBool("TimeZoneAdd30min",&mTimeZoneAdd30min,false); 71 addItemBool("TimeZoneAdd30min",&mTimeZoneAdd30min,false);
72 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90); 72 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90);
73 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304); 73 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304);
74 74
75 KPrefs::setCurrentGroup( "ExternalApplications" ); 75 KPrefs::setCurrentGroup( "ExternalApplications" );
76 76
77 addItemInt( "EmailChannelType", &mEmailClient, OMPI_EMC ); 77 addItemInt( "EmailChannelType", &mEmailClient, OMPI_EMC );
78 addItemString( "EmailChannel", &mEmailOtherChannel, "" ); 78 addItemString( "EmailChannel", &mEmailOtherChannel, "" );
79 addItemString( "EmailChannelMessage", &mEmailOtherMessage, "" ); 79 addItemString( "EmailChannelMessage", &mEmailOtherMessage, "" );
80 addItemString( "EmailChannelParameters", &mEmailOtherMessageParameters, "" ); 80 addItemString( "EmailChannelParameters", &mEmailOtherMessageParameters, "" );
81 addItemString( "EmailChannelMessage2", &mEmailOtherMessage2, "" ); 81 addItemString( "EmailChannelMessage2", &mEmailOtherMessage2, "" );
82 addItemString( "EmailChannelParameters2", &mEmailOtherMessageParameters2, "" ); 82 addItemString( "EmailChannelParameters2", &mEmailOtherMessageParameters2, "" );
83 83
84 addItemInt( "PhoneChannelType", &mPhoneClient, KPPI_PHC ); 84 addItemInt( "PhoneChannelType", &mPhoneClient, KPPI_PHC );
85 addItemString( "PhoneChannel", &mPhoneOtherChannel, "" ); 85 addItemString( "PhoneChannel", &mPhoneOtherChannel, "" );
86 addItemString( "PhoneChannelMessage", &mPhoneOtherMessage, "" ); 86 addItemString( "PhoneChannelMessage", &mPhoneOtherMessage, "" );
87 addItemString( "PhoneChannelParameters", &mPhoneOtherMessageParameters, "" ); 87 addItemString( "PhoneChannelParameters", &mPhoneOtherMessageParameters, "" );
88 88
89 addItemInt( "FaxChannelType", &mFaxClient, NONE_FAC ); 89 addItemInt( "FaxChannelType", &mFaxClient, NONE_FAC );
90 addItemString( "FaxChannel", &mFaxOtherChannel, "" ); 90 addItemString( "FaxChannel", &mFaxOtherChannel, "" );
91 addItemString( "FaxChannelMessage", &mFaxOtherMessage, "" ); 91 addItemString( "FaxChannelMessage", &mFaxOtherMessage, "" );
92 addItemString( "FaxChannelParameters", &mFaxOtherMessageParameters, "" ); 92 addItemString( "FaxChannelParameters", &mFaxOtherMessageParameters, "" );
93 93
94 addItemInt( "SMSChannelType", &mSMSClient, NONE_SMC ); 94 addItemInt( "SMSChannelType", &mSMSClient, NONE_SMC );
95 addItemString( "SMSChannel", &mSMSOtherChannel, "" ); 95 addItemString( "SMSChannel", &mSMSOtherChannel, "" );
96 addItemString( "SMSChannelMessage", &mSMSOtherMessage, "" ); 96 addItemString( "SMSChannelMessage", &mSMSOtherMessage, "" );
97 addItemString( "SMSChannelParameters", &mSMSOtherMessageParameters, "" ); 97 addItemString( "SMSChannelParameters", &mSMSOtherMessageParameters, "" );
98 98
99 addItemInt( "PagerChannelType", &mPagerClient, NONE_PAC ); 99 addItemInt( "PagerChannelType", &mPagerClient, NONE_PAC );
100 addItemString( "PagerChannel", &mPagerOtherChannel, "" ); 100 addItemString( "PagerChannel", &mPagerOtherChannel, "" );
101 addItemString( "PagerChannelMessage", &mPagerOtherMessage, "" ); 101 addItemString( "PagerChannelMessage", &mPagerOtherMessage, "" );
102 addItemString( "PagerChannelParameters", &mPagerOtherMessageParameters, "" ); 102 addItemString( "PagerChannelParameters", &mPagerOtherMessageParameters, "" );
103 103
104 addItemInt( "SIPChannelType", &mSipClient, KPPI_SIC ); 104 addItemInt( "SIPChannelType", &mSipClient, KPPI_SIC );
105 addItemString( "SIPChannel", &mSipOtherChannel, "" ); 105 addItemString( "SIPChannel", &mSipOtherChannel, "" );
106 addItemString( "SIPChannelMessage", &mSipOtherMessage, "" ); 106 addItemString( "SIPChannelMessage", &mSipOtherMessage, "" );
107 addItemString( "SIPChannelParameters", &mSipOtherMessageParameters, "" ); 107 addItemString( "SIPChannelParameters", &mSipOtherMessageParameters, "" );
108 108
109 KPrefs::setCurrentGroup( "PhoneAccess" ); 109 KPrefs::setCurrentGroup( "PhoneAccess" );
110 addItemString("Ex2PhoneDevice",&mEx2PhoneDevice,"/dev/ircomm"); 110 addItemString("Ex2PhoneDevice",&mEx2PhoneDevice,"/dev/ircomm");
111 addItemString("Ex2PhoneConnection",&mEx2PhoneConnection,"irda"); 111 addItemString("Ex2PhoneConnection",&mEx2PhoneConnection,"irda");
112 addItemString("Ex2PhoneModel",&mEx2PhoneModel,"6310i"); 112 addItemString("Ex2PhoneModel",&mEx2PhoneModel,"6310i");
113 113
114 KPrefs::setCurrentGroup( "BackupSettings" );
115 addItemString("BackupDatadir",&mBackupDatadir,KGlobalSettings::backupDataDir());
116 addItemInt( "BackupNumbers", &mBackupNumbers, 3 );
117 addItemInt( "BackupDayCount", &mBackupDayCount, 2 );
118 addItemBool( "BackupUseDefaultDir",&mBackupUseDefaultDir, true );
119 addItemBool( "BackupEnabled",&mBackupEnabled, false );
120
114} 121}
115 122
116void KPimGlobalPrefs::setGlobalConfig() 123void KPimGlobalPrefs::setGlobalConfig()
117{ 124{
118 if ( mLocaleDict == 0 ) { 125 if ( mLocaleDict == 0 ) {
119 QString fileName ; 126 QString fileName ;
120 QString name = KGlobal::getAppName() +"/"; 127 QString name = KGlobal::getAppName() +"/";
121#ifndef DESKTOP_VERSION 128#ifndef DESKTOP_VERSION
122 fileName= QString(getenv("QPEDIR"))+"/pics/kdepim/"+name; 129 fileName= QString(getenv("QPEDIR"))+"/pics/kdepim/"+name;
123#else 130#else
124 fileName = qApp->applicationDirPath () + "/kdepim/"+ name; 131 fileName = qApp->applicationDirPath () + "/kdepim/"+ name;
125#endif 132#endif
126 mLocaleDict = 0; 133 mLocaleDict = 0;
127 if ( mPreferredLanguage > 0 && mPreferredLanguage < 5 ) { 134 if ( mPreferredLanguage > 0 && mPreferredLanguage < 5 ) {
128 135
129 if ( mPreferredLanguage == 1 ) 136 if ( mPreferredLanguage == 1 )
130 fileName = fileName+"germantranslation.txt"; 137 fileName = fileName+"germantranslation.txt";
131 else if ( mPreferredLanguage == 4 ) 138 else if ( mPreferredLanguage == 4 )
132 fileName = fileName+"usertranslation.txt"; 139 fileName = fileName+"usertranslation.txt";
133 else if ( mPreferredLanguage == 2 ) 140 else if ( mPreferredLanguage == 2 )
134 fileName = fileName+"frenchtranslation.txt"; 141 fileName = fileName+"frenchtranslation.txt";
135 else if ( mPreferredLanguage == 3 ) 142 else if ( mPreferredLanguage == 3 )
136 fileName = fileName+"italiantranslation.txt"; 143 fileName = fileName+"italiantranslation.txt";
137 QFile file( fileName ); 144 QFile file( fileName );
138 if (file.open( IO_ReadOnly ) ) { 145 if (file.open( IO_ReadOnly ) ) {
139 QTextStream ts( &file ); 146 QTextStream ts( &file );
140 ts.setEncoding( QTextStream::Latin1 ); 147 ts.setEncoding( QTextStream::Latin1 );
141 //ts.setCodec( QTextCodec::latin1 ); 148 //ts.setCodec( QTextCodec::latin1 );
142 QString text = ts.read(); 149 QString text = ts.read();
143 file.close(); 150 file.close();
144 text.replace( QRegExp("\\\\n"), "\n" ); 151 text.replace( QRegExp("\\\\n"), "\n" );
145 QString line; 152 QString line;
146 QString we; 153 QString we;
147 QString wt; 154 QString wt;
148 int br = 0; 155 int br = 0;
149 int nbr; 156 int nbr;
150 nbr = text.find ( "},", br ); 157 nbr = text.find ( "},", br );
151 line = text.mid( br, nbr - br ); 158 line = text.mid( br, nbr - br );
152 br = nbr+1; 159 br = nbr+1;
153 int se, ee, st, et; 160 int se, ee, st, et;
154 mLocaleDict = new QDict<QString>; 161 mLocaleDict = new QDict<QString>;
155 mLocaleDict->setAutoDelete( true ); 162 mLocaleDict->setAutoDelete( true );
156 QString end = "{ \"\",\"\" }"; 163 QString end = "{ \"\",\"\" }";
157 while ( (line != end) && (br > 1) ) { 164 while ( (line != end) && (br > 1) ) {
158 //qDebug("%d *%s* ", br, line.latin1()); 165 //qDebug("%d *%s* ", br, line.latin1());
159 se = line.find("\"")+1; 166 se = line.find("\"")+1;
160 et = line.findRev("\"",-1); 167 et = line.findRev("\"",-1);
161 ee = line.find("\",\""); 168 ee = line.find("\",\"");
162 st = ee+3; 169 st = ee+3;
163 we = line.mid( se, ee-se ); 170 we = line.mid( se, ee-se );
164 if ( mPreferredLanguage == 4 ) 171 if ( mPreferredLanguage == 4 )
165 wt = QString::fromUtf8(line.mid( st, et-st ).latin1()); 172 wt = QString::fromUtf8(line.mid( st, et-st ).latin1());
166 else 173 else
167 wt = line.mid( st, et-st ); 174 wt = line.mid( st, et-st );
168 //qDebug("*%s* *%s* ", we.latin1(), wt.latin1()); 175 //qDebug("*%s* *%s* ", we.latin1(), wt.latin1());
169 mLocaleDict->insert( we, new QString (wt) ); 176 mLocaleDict->insert( we, new QString (wt) );
170 nbr = text.find ( "}", br ); 177 nbr = text.find ( "}", br );
171 line = text.mid( br, nbr - br ); 178 line = text.mid( br, nbr - br );
172 br = nbr+1; 179 br = nbr+1;
173 } 180 }
174 //qDebug("end *%s* ", end.latin1()); 181 //qDebug("end *%s* ", end.latin1());
175 182
176 setLocaleDict( mLocaleDict ); 183 setLocaleDict( mLocaleDict );
177 } else { 184 } else {
178 qDebug("KO: Cannot find translation file %s",fileName.latin1() ); 185 qDebug("KO: Cannot find translation file %s",fileName.latin1() );
179 } 186 }
180 } 187 }
181 } 188 }
182 189
183 KGlobal::locale()->setHore24Format( !mPreferredTime ); 190 KGlobal::locale()->setHore24Format( !mPreferredTime );
184 KGlobal::locale()->setWeekStartMonday( !mWeekStartsOnSunday ); 191 KGlobal::locale()->setWeekStartMonday( !mWeekStartsOnSunday );
185 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)mPreferredDate ); 192 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)mPreferredDate );
186 KGlobal::locale()->setLanguage( mPreferredLanguage ); 193 KGlobal::locale()->setLanguage( mPreferredLanguage );
187 QString dummy = mUserDateFormatLong; 194 QString dummy = mUserDateFormatLong;
188 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") )); 195 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") ));
189 dummy = mUserDateFormatShort; 196 dummy = mUserDateFormatShort;
190 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); 197 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") ));
191 KGlobal::locale()->setDaylightSaving( mUseDaylightsaving, 198 KGlobal::locale()->setDaylightSaving( mUseDaylightsaving,
192 mDaylightsavingStart, 199 mDaylightsavingStart,
193 mDaylightsavingEnd ); 200 mDaylightsavingEnd );
194 KGlobal::locale()->setTimezone( mTimeZoneId, mTimeZoneAdd30min ); 201 KGlobal::locale()->setTimezone( mTimeZoneId, mTimeZoneAdd30min );
195 KGlobalSettings::setAlternateBackgroundColor(mAlternateColor); 202 KGlobalSettings::setAlternateBackgroundColor(mAlternateColor);
196 203
197} 204}
198KPimGlobalPrefs::~KPimGlobalPrefs() 205KPimGlobalPrefs::~KPimGlobalPrefs()
199{ 206{
200 if (sInstance == this) 207 if (sInstance == this)
201 sInstance = staticDeleterGP.setObject(0); 208 sInstance = staticDeleterGP.setObject(0);
202 else 209 else
203 qDebug("Whats this? Error in KPimGlobalPrefs::~KPimGlobalPrefs() ?"); 210 qDebug("Whats this? Error in KPimGlobalPrefs::~KPimGlobalPrefs() ?");
204 if ( mLocaleDict ) 211 if ( mLocaleDict )
205 delete mLocaleDict; 212 delete mLocaleDict;
206} 213}
207 214
208KPimGlobalPrefs *KPimGlobalPrefs::instance() 215KPimGlobalPrefs *KPimGlobalPrefs::instance()
209{ 216{
diff --git a/libkdepim/kpimglobalprefs.h b/libkdepim/kpimglobalprefs.h
index 36cc25a..94ac8ae 100644
--- a/libkdepim/kpimglobalprefs.h
+++ b/libkdepim/kpimglobalprefs.h
@@ -47,99 +47,105 @@ class KPimGlobalPrefs : public KPrefs
47 47
48 enum EMailClients { 48 enum EMailClients {
49 NONE_EMC = 0, 49 NONE_EMC = 0,
50 OTHER_EMC = 1, 50 OTHER_EMC = 1,
51 OMPI_EMC = 2, 51 OMPI_EMC = 2,
52 QTOPIA_EMC = 3, 52 QTOPIA_EMC = 3,
53 OPIE_EMC = 4, 53 OPIE_EMC = 4,
54 OPIE_MAILIT_EMC = 5 54 OPIE_MAILIT_EMC = 5
55 }; 55 };
56 56
57 enum PhoneClients { 57 enum PhoneClients {
58 NONE_PHC = 0, 58 NONE_PHC = 0,
59 OTHER_PHC = 1, 59 OTHER_PHC = 1,
60 KPPI_PHC = 2 60 KPPI_PHC = 2
61 }; 61 };
62 62
63 enum FaxClients { 63 enum FaxClients {
64 NONE_FAC = 0, 64 NONE_FAC = 0,
65 OTHER_FAC = 1 65 OTHER_FAC = 1
66 }; 66 };
67 67
68 enum SMSClients { 68 enum SMSClients {
69 NONE_SMC = 0, 69 NONE_SMC = 0,
70 OTHER_SMC = 1 70 OTHER_SMC = 1
71 }; 71 };
72 72
73 enum PagerClients { 73 enum PagerClients {
74 NONE_PAC = 0, 74 NONE_PAC = 0,
75 OTHER_PAC = 1 75 OTHER_PAC = 1
76 }; 76 };
77 77
78 enum SIPClients { 78 enum SIPClients {
79 NONE_SIC = 0, 79 NONE_SIC = 0,
80 OTHER_SIC = 1, 80 OTHER_SIC = 1,
81 KPPI_SIC = 2 81 KPPI_SIC = 2
82 }; 82 };
83 83
84 private: 84 private:
85 KPimGlobalPrefs( const QString &name = QString::null ); 85 KPimGlobalPrefs( const QString &name = QString::null );
86 86
87 static KPimGlobalPrefs *sInstance; 87 static KPimGlobalPrefs *sInstance;
88 QDict<QString> *mLocaleDict; 88 QDict<QString> *mLocaleDict;
89 89
90 90
91 public: 91 public:
92 //US I copied the following "locale" settings from KOPrefs 92 //US I copied the following "locale" settings from KOPrefs
93 int mPreferredDate; 93 int mPreferredDate;
94 QString mUserDateFormatLong; 94 QString mUserDateFormatLong;
95 QString mUserDateFormatShort; 95 QString mUserDateFormatShort;
96 int mPreferredLanguage; 96 int mPreferredLanguage;
97 int mPreferredTime; 97 int mPreferredTime;
98 bool mWeekStartsOnSunday; 98 bool mWeekStartsOnSunday;
99 QString mTimeZoneId; 99 QString mTimeZoneId;
100 bool mUseDaylightsaving; 100 bool mUseDaylightsaving;
101 int mDaylightsavingStart; 101 int mDaylightsavingStart;
102 int mDaylightsavingEnd; 102 int mDaylightsavingEnd;
103 bool mTimeZoneAdd30min; 103 bool mTimeZoneAdd30min;
104 QFont mApplicationFont; 104 QFont mApplicationFont;
105 QColor mAlternateColor; 105 QColor mAlternateColor;
106 106
107 int mEmailClient; 107 int mEmailClient;
108 QString mEmailOtherChannel; 108 QString mEmailOtherChannel;
109 QString mEmailOtherMessage; 109 QString mEmailOtherMessage;
110 QString mEmailOtherMessageParameters; 110 QString mEmailOtherMessageParameters;
111 QString mEmailOtherMessage2; 111 QString mEmailOtherMessage2;
112 QString mEmailOtherMessageParameters2; 112 QString mEmailOtherMessageParameters2;
113 113
114 int mPhoneClient; 114 int mPhoneClient;
115 QString mPhoneOtherChannel; 115 QString mPhoneOtherChannel;
116 QString mPhoneOtherMessage; 116 QString mPhoneOtherMessage;
117 QString mPhoneOtherMessageParameters; 117 QString mPhoneOtherMessageParameters;
118 118
119 int mFaxClient; 119 int mFaxClient;
120 QString mFaxOtherChannel; 120 QString mFaxOtherChannel;
121 QString mFaxOtherMessage; 121 QString mFaxOtherMessage;
122 QString mFaxOtherMessageParameters; 122 QString mFaxOtherMessageParameters;
123 123
124 int mSMSClient; 124 int mSMSClient;
125 QString mSMSOtherChannel; 125 QString mSMSOtherChannel;
126 QString mSMSOtherMessage; 126 QString mSMSOtherMessage;
127 QString mSMSOtherMessageParameters; 127 QString mSMSOtherMessageParameters;
128 128
129 int mPagerClient; 129 int mPagerClient;
130 QString mPagerOtherChannel; 130 QString mPagerOtherChannel;
131 QString mPagerOtherMessage; 131 QString mPagerOtherMessage;
132 QString mPagerOtherMessageParameters; 132 QString mPagerOtherMessageParameters;
133 133
134 int mSipClient; 134 int mSipClient;
135 QString mSipOtherChannel; 135 QString mSipOtherChannel;
136 QString mSipOtherMessage; 136 QString mSipOtherMessage;
137 QString mSipOtherMessageParameters; 137 QString mSipOtherMessageParameters;
138 138
139 QString mEx2PhoneDevice; 139 QString mEx2PhoneDevice;
140 QString mEx2PhoneConnection; 140 QString mEx2PhoneConnection;
141 QString mEx2PhoneModel; 141 QString mEx2PhoneModel;
142 142
143
144 bool mBackupEnabled;
145 QString mBackupDatadir;
146 bool mBackupUseDefaultDir;
147 int mBackupNumbers;
148 int mBackupDayCount;
143}; 149};
144 150
145#endif 151#endif
diff --git a/libkdepim/kprefsdialog.cpp b/libkdepim/kprefsdialog.cpp
index dd9a602..b6ae775 100644
--- a/libkdepim/kprefsdialog.cpp
+++ b/libkdepim/kprefsdialog.cpp
@@ -187,193 +187,193 @@ KPrefsDialogWidTime::KPrefsDialogWidTime(const QString &text,int *reference,
187void KPrefsDialogWidTime::readConfig() 187void KPrefsDialogWidTime::readConfig()
188{ 188{
189 mSpin->setValue(*mReference); 189 mSpin->setValue(*mReference);
190} 190}
191 191
192void KPrefsDialogWidTime::writeConfig() 192void KPrefsDialogWidTime::writeConfig()
193{ 193{
194 *mReference = mSpin->value(); 194 *mReference = mSpin->value();
195} 195}
196 196
197QLabel *KPrefsDialogWidTime::label() 197QLabel *KPrefsDialogWidTime::label()
198{ 198{
199 return mLabel; 199 return mLabel;
200} 200}
201 201
202QSpinBox *KPrefsDialogWidTime::spinBox() 202QSpinBox *KPrefsDialogWidTime::spinBox()
203{ 203{
204 return mSpin; 204 return mSpin;
205} 205}
206 206
207 207
208KPrefsDialogWidRadios::KPrefsDialogWidRadios(const QString &text,int *reference, 208KPrefsDialogWidRadios::KPrefsDialogWidRadios(const QString &text,int *reference,
209 QWidget *parent) 209 QWidget *parent)
210{ 210{
211 mReference = reference; 211 mReference = reference;
212 212
213 mBox = new QButtonGroup(1,Qt::Horizontal,text,parent); 213 mBox = new QButtonGroup(1,Qt::Horizontal,text,parent);
214} 214}
215 215
216KPrefsDialogWidRadios::~KPrefsDialogWidRadios() 216KPrefsDialogWidRadios::~KPrefsDialogWidRadios()
217{ 217{
218} 218}
219 219
220void KPrefsDialogWidRadios::addRadio(const QString &text) 220void KPrefsDialogWidRadios::addRadio(const QString &text)
221{ 221{
222 new QRadioButton(text,mBox); 222 new QRadioButton(text,mBox);
223} 223}
224 224
225QButtonGroup *KPrefsDialogWidRadios::groupBox() 225QButtonGroup *KPrefsDialogWidRadios::groupBox()
226{ 226{
227 return mBox; 227 return mBox;
228} 228}
229 229
230void KPrefsDialogWidRadios::readConfig() 230void KPrefsDialogWidRadios::readConfig()
231{ 231{
232 mBox->setButton(*mReference); 232 mBox->setButton(*mReference);
233} 233}
234 234
235void KPrefsDialogWidRadios::writeConfig() 235void KPrefsDialogWidRadios::writeConfig()
236{ 236{
237 *mReference = mBox->id(mBox->selected()); 237 *mReference = mBox->id(mBox->selected());
238} 238}
239 239
240 240
241KPrefsDialogWidString::KPrefsDialogWidString(const QString &text,QString *reference, 241KPrefsDialogWidString::KPrefsDialogWidString(const QString &text,QString *reference,
242 QWidget *parent, QLineEdit::EchoMode echomode) 242 QWidget *parent, QLineEdit::EchoMode echomode)
243{ 243{
244 mReference = reference; 244 mReference = reference;
245 245
246 mLabel = new QLabel(text,parent); 246 mLabel = new QLabel(text,parent);
247 mEdit = new QLineEdit(parent); 247 mEdit = new QLineEdit(parent);
248 mEdit->setEchoMode( echomode ); 248 mEdit->setEchoMode( echomode );
249} 249}
250 250
251KPrefsDialogWidString::~KPrefsDialogWidString() 251KPrefsDialogWidString::~KPrefsDialogWidString()
252{ 252{
253} 253}
254 254
255void KPrefsDialogWidString::readConfig() 255void KPrefsDialogWidString::readConfig()
256{ 256{
257 mEdit->setText(*mReference); 257 mEdit->setText(*mReference);
258} 258}
259 259
260void KPrefsDialogWidString::writeConfig() 260void KPrefsDialogWidString::writeConfig()
261{ 261{
262 *mReference = mEdit->text(); 262 *mReference = mEdit->text();
263} 263}
264 264
265QLabel *KPrefsDialogWidString::label() 265QLabel *KPrefsDialogWidString::label()
266{ 266{
267 return mLabel; 267 return mLabel;
268} 268}
269 269
270QLineEdit *KPrefsDialogWidString::lineEdit() 270QLineEdit *KPrefsDialogWidString::lineEdit()
271{ 271{
272 return mEdit; 272 return mEdit;
273} 273}
274 274
275 275
276KPrefsDialog::KPrefsDialog(KPrefs *prefs,QWidget *parent,char *name,bool modal) : 276KPrefsDialog::KPrefsDialog(KPrefs *prefs,QWidget *parent,char *name,bool modal) :
277 KDialogBase(IconList,i18n("Preferences"),Ok|Cancel|Default,Ok,parent, 277 KDialogBase(IconList,i18n("Preferences"),Ok|Cancel|Default,Ok,parent,
278 name,modal,true) 278 name,modal,true)
279{ 279{
280 mPrefs = prefs; 280 mPrefs = prefs;
281 281
282// This seems to cause a crash on exit. Investigate later. 282// This seems to cause a crash on exit. Investigate later.
283// mPrefsWids.setAutoDelete(true); 283 mPrefsWids.setAutoDelete(true);
284 284
285 connect(this,SIGNAL(defaultClicked()),SLOT(slotDefault())); 285 connect(this,SIGNAL(defaultClicked()),SLOT(slotDefault()));
286 //connect(this,SIGNAL(cancelClicked()),SLOT(slotDefault())); 286 //connect(this,SIGNAL(cancelClicked()),SLOT(slotDefault()));
287 //connect(this,SIGNAL(cancelClicked()),SLOT(reject())); 287 //connect(this,SIGNAL(cancelClicked()),SLOT(reject()));
288} 288}
289 289
290KPrefsDialog::~KPrefsDialog() 290KPrefsDialog::~KPrefsDialog()
291{ 291{
292} 292}
293 293
294void KPrefsDialog::addWid(KPrefsDialogWid *wid) 294void KPrefsDialog::addWid(KPrefsDialogWid *wid)
295{ 295{
296 mPrefsWids.append(wid); 296 mPrefsWids.append(wid);
297} 297}
298 298
299KPrefsDialogWidBool *KPrefsDialog::addWidBool(const QString &text,bool *reference,QWidget *parent) 299KPrefsDialogWidBool *KPrefsDialog::addWidBool(const QString &text,bool *reference,QWidget *parent)
300{ 300{
301 KPrefsDialogWidBool *w = new KPrefsDialogWidBool(text,reference,parent); 301 KPrefsDialogWidBool *w = new KPrefsDialogWidBool(text,reference,parent);
302 addWid(w); 302 addWid(w);
303 return w; 303 return w;
304} 304}
305 305
306KPrefsDialogWidTime *KPrefsDialog::addWidTime(const QString &text,int *reference,QWidget *parent) 306KPrefsDialogWidTime *KPrefsDialog::addWidTime(const QString &text,int *reference,QWidget *parent)
307{ 307{
308 KPrefsDialogWidTime *w = new KPrefsDialogWidTime(text,reference,parent); 308 KPrefsDialogWidTime *w = new KPrefsDialogWidTime(text,reference,parent);
309 addWid(w); 309 addWid(w);
310 return w; 310 return w;
311} 311}
312 312
313KPrefsDialogWidColor *KPrefsDialog::addWidColor(const QString &text,QColor *reference,QWidget *parent) 313KPrefsDialogWidColor *KPrefsDialog::addWidColor(const QString &text,QColor *reference,QWidget *parent)
314{ 314{
315 KPrefsDialogWidColor *w = new KPrefsDialogWidColor(text,reference,parent); 315 KPrefsDialogWidColor *w = new KPrefsDialogWidColor(text,reference,parent);
316 addWid(w); 316 addWid(w);
317 return w; 317 return w;
318} 318}
319 319
320KPrefsDialogWidRadios *KPrefsDialog::addWidRadios(const QString &text,int *reference,QWidget *parent) 320KPrefsDialogWidRadios *KPrefsDialog::addWidRadios(const QString &text,int *reference,QWidget *parent)
321{ 321{
322 KPrefsDialogWidRadios *w = new KPrefsDialogWidRadios(text,reference,parent); 322 KPrefsDialogWidRadios *w = new KPrefsDialogWidRadios(text,reference,parent);
323 addWid(w); 323 addWid(w);
324 return w; 324 return w;
325} 325}
326 326
327KPrefsDialogWidString *KPrefsDialog::addWidString(const QString &text,QString *reference,QWidget *parent) 327KPrefsDialogWidString *KPrefsDialog::addWidString(const QString &text,QString *reference,QWidget *parent)
328{ 328{
329 KPrefsDialogWidString *w = new KPrefsDialogWidString(text,reference,parent); 329 KPrefsDialogWidString *w = new KPrefsDialogWidString(text,reference,parent);
330 addWid(w); 330 addWid(w);
331 return w; 331 return w;
332} 332}
333 333
334KPrefsDialogWidString *KPrefsDialog::addWidPassword(const QString &text,QString *reference,QWidget *parent) 334KPrefsDialogWidString *KPrefsDialog::addWidPassword(const QString &text,QString *reference,QWidget *parent)
335{ 335{
336 KPrefsDialogWidString *w = new KPrefsDialogWidString(text,reference,parent,QLineEdit::Password); 336 KPrefsDialogWidString *w = new KPrefsDialogWidString(text,reference,parent,QLineEdit::Password);
337 addWid(w); 337 addWid(w);
338 return w; 338 return w;
339} 339}
340 340
341KPrefsDialogWidFont *KPrefsDialog::addWidFont(const QString &sampleText,const QString &buttonText, 341KPrefsDialogWidFont *KPrefsDialog::addWidFont(const QString &sampleText,const QString &buttonText,
342 QFont *reference,QWidget *parent) 342 QFont *reference,QWidget *parent)
343{ 343{
344 KPrefsDialogWidFont *w = new KPrefsDialogWidFont(sampleText,buttonText,reference,parent); 344 KPrefsDialogWidFont *w = new KPrefsDialogWidFont(sampleText,buttonText,reference,parent);
345 addWid(w); 345 addWid(w);
346 return w; 346 return w;
347} 347}
348 348
349void KPrefsDialog::setDefaults() 349void KPrefsDialog::setDefaults()
350{ 350{
351 mPrefs->setDefaults(); 351 mPrefs->setDefaults();
352 352
353 readConfig(); 353 readConfig();
354} 354}
355 355
356void KPrefsDialog::readConfig() 356void KPrefsDialog::readConfig()
357{ 357{
358// kdDebug(5300) << "KPrefsDialog::readConfig()" << endl; 358// kdDebug(5300) << "KPrefsDialog::readConfig()" << endl;
359 359
360 KPrefsDialogWid *wid; 360 KPrefsDialogWid *wid;
361 for(wid = mPrefsWids.first();wid;wid=mPrefsWids.next()) { 361 for(wid = mPrefsWids.first();wid;wid=mPrefsWids.next()) {
362 wid->readConfig(); 362 wid->readConfig();
363 } 363 }
364 364
365 usrReadConfig(); 365 usrReadConfig();
366} 366}
367 367
368void KPrefsDialog::writeConfig() 368void KPrefsDialog::writeConfig()
369{ 369{
370// kdDebug(5300) << "KPrefsDialog::writeConfig()" << endl; 370// kdDebug(5300) << "KPrefsDialog::writeConfig()" << endl;
371 371
372 KPrefsDialogWid *wid; 372 KPrefsDialogWid *wid;
373 for(wid = mPrefsWids.first();wid;wid=mPrefsWids.next()) { 373 for(wid = mPrefsWids.first();wid;wid=mPrefsWids.next()) {
374 wid->writeConfig(); 374 wid->writeConfig();
375 } 375 }
376 376
377 usrWriteConfig(); 377 usrWriteConfig();
378 378
379// kdDebug(5300) << "KPrefsDialog::writeConfig() now writing..." << endl; 379// kdDebug(5300) << "KPrefsDialog::writeConfig() now writing..." << endl;
diff --git a/libkdepim/kprefsdialog.h b/libkdepim/kprefsdialog.h
index ad13b78..efcb86a 100644
--- a/libkdepim/kprefsdialog.h
+++ b/libkdepim/kprefsdialog.h
@@ -1,278 +1,277 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 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#ifndef _KPREFSDIALOG_H 23#ifndef _KPREFSDIALOG_H
24#define _KPREFSDIALOG_H 24#define _KPREFSDIALOG_H
25// $Id$ 25// $Id$
26 26
27#include <qptrlist.h> 27#include <qptrlist.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29 29
30#include <kdialogbase.h> 30#include <kdialogbase.h>
31 31
32class KPrefs; 32class KPrefs;
33class KPrefsDialog; 33class KPrefsDialog;
34 34
35class KColorButton; 35class KColorButton;
36class QCheckBox; 36class QCheckBox;
37class QLabel; 37class QLabel;
38class QSpinBox; 38class QSpinBox;
39class QButtonGroup; 39class QButtonGroup;
40 40
41/** 41/**
42 @short Base class for widgets used by @ref KPrefsDialog. 42 @short Base class for widgets used by @ref KPrefsDialog.
43 @author Cornelius Schumacher 43 @author Cornelius Schumacher
44 @see KPrefsDialog 44 @see KPrefsDialog
45 45
46 This class provides the interface for the preferences widgets used by 46 This class provides the interface for the preferences widgets used by
47 KPrefsDialog. 47 KPrefsDialog.
48*/ 48*/
49class KPrefsDialogWid 49class KPrefsDialogWid : public QObject
50{ 50{
51 public: 51 public:
52 /** 52 /**
53 This function is called to read value of the setting from the 53 This function is called to read value of the setting from the
54 stored configuration and display it in the widget. 54 stored configuration and display it in the widget.
55 */ 55 */
56 virtual void readConfig() = 0; 56 virtual void readConfig() = 0;
57 /** 57 /**
58 This function is called to write the current setting of the widget to the 58 This function is called to write the current setting of the widget to the
59 stored configuration. 59 stored configuration.
60 */ 60 */
61 virtual void writeConfig() = 0; 61 virtual void writeConfig() = 0;
62}; 62};
63 63
64/** 64/**
65 @short Widget for bool settings in @ref KPrefsDialog. 65 @short Widget for bool settings in @ref KPrefsDialog.
66 66
67 This class provides a widget for configuring bool values. It is meant to be 67 This class provides a widget for configuring bool values. It is meant to be
68 used by KPrefsDialog. The user is responsible for the layout management. 68 used by KPrefsDialog. The user is responsible for the layout management.
69*/ 69*/
70class KPrefsDialogWidBool : public KPrefsDialogWid 70class KPrefsDialogWidBool : public KPrefsDialogWid
71{ 71{
72 public: 72 public:
73 /** 73 /**
74 Create a bool widget consisting of a QCheckbox. 74 Create a bool widget consisting of a QCheckbox.
75 75
76 @param text Text of QCheckBox. 76 @param text Text of QCheckBox.
77 @param reference Pointer to variable read and written by this widget. 77 @param reference Pointer to variable read and written by this widget.
78 @param parent Parent widget. 78 @param parent Parent widget.
79 */ 79 */
80 KPrefsDialogWidBool(const QString &text,bool *reference,QWidget *parent); 80 KPrefsDialogWidBool(const QString &text,bool *reference,QWidget *parent);
81 81
82 /** 82 /**
83 Return the QCheckbox used by this widget. 83 Return the QCheckbox used by this widget.
84 */ 84 */
85 QCheckBox *checkBox(); 85 QCheckBox *checkBox();
86 86
87 void readConfig(); 87 void readConfig();
88 void writeConfig(); 88 void writeConfig();
89 89
90 private: 90 private:
91 bool *mReference; 91 bool *mReference;
92 92
93 QCheckBox *mCheck; 93 QCheckBox *mCheck;
94}; 94};
95 95
96/** 96/**
97 @short Widget for time settings in @ref KPrefsDialog. 97 @short Widget for time settings in @ref KPrefsDialog.
98 98
99 This class provides a widget for configuring time values. It is meant to be 99 This class provides a widget for configuring time values. It is meant to be
100 used by KPrefsDialog. The user is responsible for the layout management. 100 used by KPrefsDialog. The user is responsible for the layout management.
101*/ 101*/
102class KPrefsDialogWidTime : public KPrefsDialogWid 102class KPrefsDialogWidTime : public KPrefsDialogWid
103{ 103{
104 public: 104 public:
105 /** 105 /**
106 Create a time widget consisting of a label and a spinbox. 106 Create a time widget consisting of a label and a spinbox.
107 107
108 @param text Text of Label. 108 @param text Text of Label.
109 @param reference Pointer to variable read and written by this widget. 109 @param reference Pointer to variable read and written by this widget.
110 @param parent Parent widget. 110 @param parent Parent widget.
111 */ 111 */
112 KPrefsDialogWidTime(const QString &text,int *reference,QWidget *parent); 112 KPrefsDialogWidTime(const QString &text,int *reference,QWidget *parent);
113 113
114 /** 114 /**
115 Return QLabel used by this widget. 115 Return QLabel used by this widget.
116 */ 116 */
117 QLabel *label(); 117 QLabel *label();
118 /** 118 /**
119 Return QSpinBox used by this widget. 119 Return QSpinBox used by this widget.
120 */ 120 */
121 QSpinBox *spinBox(); 121 QSpinBox *spinBox();
122 122
123 void readConfig(); 123 void readConfig();
124 void writeConfig(); 124 void writeConfig();
125 125
126 private: 126 private:
127 int *mReference; 127 int *mReference;
128 128
129 QLabel *mLabel; 129 QLabel *mLabel;
130 QSpinBox *mSpin; 130 QSpinBox *mSpin;
131}; 131};
132 132
133/** 133/**
134 @short Widget for color settings in @ref KPrefsDialog. 134 @short Widget for color settings in @ref KPrefsDialog.
135 135
136 This class provides a widget for configuring color values. It is meant to be 136 This class provides a widget for configuring color values. It is meant to be
137 used by KPrefsDialog. The user is responsible for the layout management. 137 used by KPrefsDialog. The user is responsible for the layout management.
138*/ 138*/
139class KPrefsDialogWidColor : public QObject, public KPrefsDialogWid 139class KPrefsDialogWidColor : public KPrefsDialogWid
140{ 140{
141 Q_OBJECT
142 public: 141 public:
143 /** 142 /**
144 Create a color widget consisting of a test field and a button for opening 143 Create a color widget consisting of a test field and a button for opening
145 a color dialog. 144 a color dialog.
146 145
147 @param text Text of button. 146 @param text Text of button.
148 @param reference Pointer to variable read and written by this widget. 147 @param reference Pointer to variable read and written by this widget.
149 @param parent Parent widget. 148 @param parent Parent widget.
150 */ 149 */
151 KPrefsDialogWidColor(const QString &text,QColor *reference,QWidget *parent); 150 KPrefsDialogWidColor(const QString &text,QColor *reference,QWidget *parent);
152 /** 151 /**
153 Destruct color setting widget. 152 Destruct color setting widget.
154 */ 153 */
155 ~KPrefsDialogWidColor(); 154 ~KPrefsDialogWidColor();
156 155
157 /** 156 /**
158 Return QLabel for the button 157 Return QLabel for the button
159 */ 158 */
160 QLabel *label(); 159 QLabel *label();
161 /** 160 /**
162 Return button opening the color dialog. 161 Return button opening the color dialog.
163 */ 162 */
164 KColorButton *button(); 163 KColorButton *button();
165 164
166 void readConfig(); 165 void readConfig();
167 void writeConfig(); 166 void writeConfig();
168 167
169 private: 168 private:
170 QColor *mReference; 169 QColor *mReference;
171 170
172 QLabel *mLabel; 171 QLabel *mLabel;
173 KColorButton *mButton; 172 KColorButton *mButton;
174}; 173};
175 174
176/** 175/**
177 @short Widget for font settings in @ref KPrefsDialog. 176 @short Widget for font settings in @ref KPrefsDialog.
178 177
179 This class provides a widget for configuring font values. It is meant to be 178 This class provides a widget for configuring font values. It is meant to be
180 used by KPrefsDialog. The user is responsible for the layout management. 179 used by KPrefsDialog. The user is responsible for the layout management.
181*/ 180*/
182class KPrefsDialogWidFont : public QObject, public KPrefsDialogWid 181class KPrefsDialogWidFont : public KPrefsDialogWid
183{ 182{
184 Q_OBJECT 183 Q_OBJECT
185 public: 184 public:
186 /** 185 /**
187 Create a font widget consisting of a test field and a button for opening 186 Create a font widget consisting of a test field and a button for opening
188 a font dialog. 187 a font dialog.
189 188
190 @param label Text of label. 189 @param label Text of label.
191 @param reference Pointer to variable read and written by this widget. 190 @param reference Pointer to variable read and written by this widget.
192 @param parent Parent widget. 191 @param parent Parent widget.
193 */ 192 */
194 KPrefsDialogWidFont(const QString &sampleText,const QString &labelText, 193 KPrefsDialogWidFont(const QString &sampleText,const QString &labelText,
195 QFont *reference,QWidget *parent); 194 QFont *reference,QWidget *parent);
196 /** 195 /**
197 Destruct font setting widget. 196 Destruct font setting widget.
198 */ 197 */
199 ~KPrefsDialogWidFont(); 198 ~KPrefsDialogWidFont();
200 199
201 /** 200 /**
202 Return label. 201 Return label.
203 */ 202 */
204 QLabel *label(); 203 QLabel *label();
205 /** 204 /**
206 Return QFrame used as preview field. 205 Return QFrame used as preview field.
207 */ 206 */
208 QLabel *preview(); 207 QLabel *preview();
209 /** 208 /**
210 Return button opening the font dialog. 209 Return button opening the font dialog.
211 */ 210 */
212 QPushButton *button(); 211 QPushButton *button();
213 212
214 void readConfig(); 213 void readConfig();
215 void writeConfig(); 214 void writeConfig();
216 215
217 protected slots: 216 protected slots:
218 void selectFont(); 217 void selectFont();
219 218
220 private: 219 private:
221 QFont *mReference; 220 QFont *mReference;
222 221
223 QLabel *mLabel; 222 QLabel *mLabel;
224 QLabel *mPreview; 223 QLabel *mPreview;
225 QPushButton *mButton; 224 QPushButton *mButton;
226}; 225};
227 226
228/** 227/**
229 @short Widget for settings represented by a group of radio buttons in 228 @short Widget for settings represented by a group of radio buttons in
230 @ref KPrefsDialog. 229 @ref KPrefsDialog.
231 230
232 This class provides a widget for configuring selections. It is meant to be 231 This class provides a widget for configuring selections. It is meant to be
233 used by KPrefsDialog. The user is responsible for the layout management. The 232 used by KPrefsDialog. The user is responsible for the layout management. The
234 setting is interpreted as an int value, corresponding to the position of the 233 setting is interpreted as an int value, corresponding to the position of the
235 radio button. The position of the button is defined by the sequence of @ref 234 radio button. The position of the button is defined by the sequence of @ref
236 addRadio() calls, starting with 0. 235 addRadio() calls, starting with 0.
237*/ 236*/
238class KPrefsDialogWidRadios : public KPrefsDialogWid 237class KPrefsDialogWidRadios : public KPrefsDialogWid
239{ 238{
240 public: 239 public:
241 /** 240 /**
242 Create a widget for selection of an option. It consists of a box with 241 Create a widget for selection of an option. It consists of a box with
243 several radio buttons. 242 several radio buttons.
244 243
245 @param text Text of main box. 244 @param text Text of main box.
246 @param reference Pointer to variable read and written by this widget. 245 @param reference Pointer to variable read and written by this widget.
247 @param parent Parent widget. 246 @param parent Parent widget.
248 */ 247 */
249 KPrefsDialogWidRadios(const QString &text,int *reference,QWidget *parent); 248 KPrefsDialogWidRadios(const QString &text,int *reference,QWidget *parent);
250 virtual ~KPrefsDialogWidRadios(); 249 virtual ~KPrefsDialogWidRadios();
251 250
252 /** 251 /**
253 Add a radio button. 252 Add a radio button.
254 253
255 @param text Text of the button. 254 @param text Text of the button.
256 */ 255 */
257 void addRadio(const QString &text); 256 void addRadio(const QString &text);
258 257
259 /** 258 /**
260 Return the box widget used by this widget. 259 Return the box widget used by this widget.
261 */ 260 */
262 QButtonGroup *groupBox(); 261 QButtonGroup *groupBox();
263 262
264 void readConfig(); 263 void readConfig();
265 void writeConfig(); 264 void writeConfig();
266 265
267 private: 266 private:
268 int *mReference; 267 int *mReference;
269 268
270 QButtonGroup *mBox; 269 QButtonGroup *mBox;
271}; 270};
272 271
273 272
274/** 273/**
275 @short Widget for string settings in @ref KPrefsDialog. 274 @short Widget for string settings in @ref KPrefsDialog.
276 275
277 This class provides a widget for configuring string values. It is meant to be 276 This class provides a widget for configuring string values. It is meant to be
278 used by KPrefsDialog. The user is responsible for the layout management. 277 used by KPrefsDialog. The user is responsible for the layout management.
diff --git a/microkde/kglobalsettings.cpp b/microkde/kglobalsettings.cpp
index 5976aae..3f8a630 100644
--- a/microkde/kglobalsettings.cpp
+++ b/microkde/kglobalsettings.cpp
@@ -1,95 +1,104 @@
1#include "kglobalsettings.h" 1#include "kglobalsettings.h"
2#include "kconfig.h" 2#include "kconfig.h"
3#include "kglobal.h" 3#include "kglobal.h"
4#include "kconfigbase.h" 4#include "kconfigbase.h"
5 5
6#include <qapplication.h> 6#include <qapplication.h>
7 7
8#ifdef DESKTOP_VERSION 8#ifdef DESKTOP_VERSION
9 QColor KGlobalSettings::mAlternate = QColor( 235, 235, 235 ); 9 QColor KGlobalSettings::mAlternate = QColor( 235, 235, 235 );
10#else 10#else
11 QColor KGlobalSettings::mAlternate = QColor( 210, 210, 210 ); 11 QColor KGlobalSettings::mAlternate = QColor( 210, 210, 210 );
12#endif 12#endif
13 13
14 14
15QFont KGlobalSettings::generalFont() 15QFont KGlobalSettings::generalFont()
16{ 16{
17 int size = 12; 17 int size = 12;
18 if (QApplication::desktop()->width() < 480 ) { 18 if (QApplication::desktop()->width() < 480 ) {
19 size = 10; 19 size = 10;
20 } 20 }
21#ifndef DESKTOP_VERSION 21#ifndef DESKTOP_VERSION
22 else 22 else
23 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 ) 23 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
24 size = 18; 24 size = 18;
25#endif 25#endif
26 QFont f = QApplication::font(); 26 QFont f = QApplication::font();
27 //qDebug("pointsize %d %s", f.pointSize(),f.family().latin1()); 27 //qDebug("pointsize %d %s", f.pointSize(),f.family().latin1());
28 f.setPointSize( size ); 28 f.setPointSize( size );
29 return f; 29 return f;
30} 30}
31QFont KGlobalSettings::generalMaxFont() 31QFont KGlobalSettings::generalMaxFont()
32{ 32{
33 int size = 12; 33 int size = 12;
34 if (QApplication::desktop()->width() < 480 ) { 34 if (QApplication::desktop()->width() < 480 ) {
35 size = 10; 35 size = 10;
36 } 36 }
37#ifndef DESKTOP_VERSION 37#ifndef DESKTOP_VERSION
38 else 38 else
39 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 ) 39 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
40 size = 18; 40 size = 18;
41#endif 41#endif
42 QFont f = QApplication::font(); 42 QFont f = QApplication::font();
43 if ( f.pointSize() > size ) 43 if ( f.pointSize() > size )
44 f.setPointSize( size ); 44 f.setPointSize( size );
45 return f; 45 return f;
46} 46}
47 47
48QString KGlobalSettings::timeTrackerDir() 48QString KGlobalSettings::timeTrackerDir()
49{ 49{
50 static QString dir; 50 static QString dir;
51 if ( dir.isEmpty() ) { 51 if ( dir.isEmpty() ) {
52 dir = locateLocal( "data", "timetrackerdir/d.ttl" ); 52 dir = locateLocal( "data", "timetrackerdir/d.ttl" );
53 dir = dir.left ( dir.length() - 5); 53 dir = dir.left ( dir.length() - 5);
54 } 54 }
55 return dir; 55 return dir;
56} 56}
57QString KGlobalSettings::backupDataDir()
58{
59 static QString dir;
60 if ( dir.isEmpty() ) {
61 dir = locateLocal( "data", "backupdir/d.ttl" );
62 dir = dir.left ( dir.length() - 5);
63 }
64 return dir;
65}
57 66
58QFont KGlobalSettings::toolBarFont() 67QFont KGlobalSettings::toolBarFont()
59{ 68{
60 return QApplication::font(); 69 return QApplication::font();
61} 70}
62 71
63QColor KGlobalSettings::toolBarHighlightColor() 72QColor KGlobalSettings::toolBarHighlightColor()
64{ 73{
65 return QColor( "black" ); 74 return QColor( "black" );
66} 75}
67 76
68QColor KGlobalSettings::alternateBackgroundColor() 77QColor KGlobalSettings::alternateBackgroundColor()
69{ 78{
70 return mAlternate; 79 return mAlternate;
71 80
72} 81}
73void KGlobalSettings::setAlternateBackgroundColor(QColor c) 82void KGlobalSettings::setAlternateBackgroundColor(QColor c)
74{ 83{
75 mAlternate = c; 84 mAlternate = c;
76 85
77} 86}
78 87
79QRect KGlobalSettings::desktopGeometry( QWidget * ) 88QRect KGlobalSettings::desktopGeometry( QWidget * )
80{ 89{
81 return QApplication::desktop()->rect(); 90 return QApplication::desktop()->rect();
82} 91}
83 92
84 /** 93 /**
85 * Returns whether KDE runs in single (default) or double click 94 * Returns whether KDE runs in single (default) or double click
86 * mode. 95 * mode.
87 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html 96 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
88 * @return true if single click mode, or false if double click mode. 97 * @return true if single click mode, or false if double click mode.
89 **/ 98 **/
90bool KGlobalSettings::singleClick() 99bool KGlobalSettings::singleClick()
91{ 100{
92 KConfig *c = KGlobal::config(); 101 KConfig *c = KGlobal::config();
93 KConfigGroupSaver cgs( c, "KDE" ); 102 KConfigGroupSaver cgs( c, "KDE" );
94 return c->readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK); 103 return c->readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK);
95} 104}
diff --git a/microkde/kglobalsettings.h b/microkde/kglobalsettings.h
index 05ef279..4e4d87c 100644
--- a/microkde/kglobalsettings.h
+++ b/microkde/kglobalsettings.h
@@ -1,35 +1,36 @@
1#ifndef MICROKDE_KGLOBALSETTINGS_H 1#ifndef MICROKDE_KGLOBALSETTINGS_H
2#define MICROKDE_KGLOBALSETTINGS_H 2#define MICROKDE_KGLOBALSETTINGS_H
3 3
4#include <qfont.h> 4#include <qfont.h>
5#include <qrect.h> 5#include <qrect.h>
6 6
7 7
8#define KDE_DEFAULT_SINGLECLICK true 8#define KDE_DEFAULT_SINGLECLICK true
9 9
10 10
11class KGlobalSettings 11class KGlobalSettings
12{ 12{
13 public: 13 public:
14 static QFont generalFont(); 14 static QFont generalFont();
15 static QFont generalMaxFont(); 15 static QFont generalMaxFont();
16 static QFont toolBarFont(); 16 static QFont toolBarFont();
17 17
18 static QColor mAlternate; 18 static QColor mAlternate;
19 static QColor toolBarHighlightColor(); 19 static QColor toolBarHighlightColor();
20 static QColor alternateBackgroundColor(); 20 static QColor alternateBackgroundColor();
21 static void setAlternateBackgroundColor(QColor); 21 static void setAlternateBackgroundColor(QColor);
22 static QRect desktopGeometry( QWidget * ); 22 static QRect desktopGeometry( QWidget * );
23 static QString timeTrackerDir(); 23 static QString timeTrackerDir();
24 static QString backupDataDir();
24 25
25 /** 26 /**
26 * Returns whether KDE runs in single (default) or double click 27 * Returns whether KDE runs in single (default) or double click
27 * mode. 28 * mode.
28 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html 29 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
29 * @return true if single click mode, or false if double click mode. 30 * @return true if single click mode, or false if double click mode.
30 **/ 31 **/
31 static bool singleClick(); 32 static bool singleClick();
32 33
33}; 34};
34 35
35#endif 36#endif