summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/kaddressbook/germantranslation.txt5
-rw-r--r--bin/kdepim/pwmanager/germantranslation.txt5
-rw-r--r--korganizer/mainwindow.cpp5
-rw-r--r--microkde/kapplication.cpp13
4 files changed, 18 insertions, 10 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt
index 85aed43..50056c4 100644
--- a/bin/kdepim/kaddressbook/germantranslation.txt
+++ b/bin/kdepim/kaddressbook/germantranslation.txt
@@ -665,100 +665,105 @@
665{ "&Use as Standard","Setze als Standard" }, 665{ "&Use as Standard","Setze als Standard" },
666{ "Select type of the new resource:","Selektiere Typ der neuen Resource:" }, 666{ "Select type of the new resource:","Selektiere Typ der neuen Resource:" },
667{ "General Settings","Allgemeine Einstellungen" }, 667{ "General Settings","Allgemeine Einstellungen" },
668{ "Read-only","Nur-Lesen" }, 668{ "Read-only","Nur-Lesen" },
669{ "Include in sync","Schließe in Sync mit ein" }, 669{ "Include in sync","Schließe in Sync mit ein" },
670{ "%1 Resource Settings","%1 Resource Einstellungen" }, 670{ "%1 Resource Settings","%1 Resource Einstellungen" },
671{ "Format:","Format:" }, 671{ "Format:","Format:" },
672{ "Location:","Ort:" }, 672{ "Location:","Ort:" },
673{ "Full Menu bar (restart)","Volle Menu Leiste (Neustart!)" }, 673{ "Full Menu bar (restart)","Volle Menu Leiste (Neustart!)" },
674{ "Language","Sprache" }, 674{ "Language","Sprache" },
675{ "Time Format","Zeit Format" }, 675{ "Time Format","Zeit Format" },
676{ "Time Zone","Zeit Zone" }, 676{ "Time Zone","Zeit Zone" },
677{ "Data storage path","Daten Speicherpfad" }, 677{ "Data storage path","Daten Speicherpfad" },
678{ "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" }, 678{ "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" },
679{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" }, 679{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" },
680{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" }, 680{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" },
681{ "Save settings","Speichere Einstellungen" }, 681{ "Save settings","Speichere Einstellungen" },
682{ "Save standard","Speichere Standard" }, 682{ "Save standard","Speichere Standard" },
683{ "Save","Speichern" }, 683{ "Save","Speichern" },
684{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" }, 684{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" },
685{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" }, 685{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" },
686{ "Multiple Sync options","Multi Sync Optionen" }, 686{ "Multiple Sync options","Multi Sync Optionen" },
687{ "Sync algo options","Sync Ablauf Optionen" }, 687{ "Sync algo options","Sync Ablauf Optionen" },
688{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" }, 688{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" },
689{ "Incoming calendar filter:","Eingehender Kalender Filter:" }, 689{ "Incoming calendar filter:","Eingehender Kalender Filter:" },
690{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" }, 690{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" },
691{ "Write back options","Optionen zum Zurückschreiben" }, 691{ "Write back options","Optionen zum Zurückschreiben" },
692{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" }, 692{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" },
693{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" }, 693{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" },
694{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" }, 694{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" },
695{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" }, 695{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" },
696{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" }, 696{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" },
697{ "Time period","Zeitspanne" }, 697{ "Time period","Zeitspanne" },
698{ "From ","Von " }, 698{ "From ","Von " },
699{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " }, 699{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " },
700{ " weeks in the future "," Wochen in der Zukunft " }, 700{ " weeks in the future "," Wochen in der Zukunft " },
701{ "Profile kind specific settings","Profil Art abhängige Einstellungen" }, 701{ "Profile kind specific settings","Profil Art abhängige Einstellungen" },
702{ "Local temp file:","Lokale temp Datei:" }, 702{ "Local temp file:","Lokale temp Datei:" },
703{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" }, 703{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" },
704{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" }, 704{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" },
705{ "You cannot remove your standard resource!\n Please select a new standard resource first.","Standard Resource kann\nnicht entfernt werden!\nBitte eine andere Resource\nals Standard setzen." }, 705{ "You cannot remove your standard resource!\n Please select a new standard resource first.","Standard Resource kann\nnicht entfernt werden!\nBitte eine andere Resource\nals Standard setzen." },
706{ "Sorry","Tut mir leid" }, 706{ "Sorry","Tut mir leid" },
707{ "You cannot use a read-only<br> resource as standard!","Man kann nicht eine read-only<br> Resource als Standard setzen!" }, 707{ "You cannot use a read-only<br> resource as standard!","Man kann nicht eine read-only<br> Resource als Standard setzen!" },
708{ "Please restart to get the \nchanged resources (re)loaded!\n","Bitte starten Sie jetzt\ndas Programm neu, um die geänderten\nResourcen neu zu laden!\n" }, 708{ "Please restart to get the \nchanged resources (re)loaded!\n","Bitte starten Sie jetzt\ndas Programm neu, um die geänderten\nResourcen neu zu laden!\n" },
709{ "The selected file does not\ninclude a valid vCard.\nPlease check the file and try again.\n","Die gewählte Datei enthält\nkeine gültige vCard.\nBitte prüfen Sie die Datei\nund versuchen es erneut.\n" }, 709{ "The selected file does not\ninclude a valid vCard.\nPlease check the file and try again.\n","Die gewählte Datei enthält\nkeine gültige vCard.\nBitte prüfen Sie die Datei\nund versuchen es erneut.\n" },
710{ "Unable to load resource '%1'","Resource kann nicht geladen werden: '%1'" }, 710{ "Unable to load resource '%1'","Resource kann nicht geladen werden: '%1'" },
711{ "Some changes are only\neffective after a restart!\n","Einige Änderungen werden erst\nnach einem Neustart übernommen!\n" }, 711{ "Some changes are only\neffective after a restart!\n","Einige Änderungen werden erst\nnach einem Neustart übernommen!\n" },
712{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, 712{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." },
713{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, 713{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." },
714{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, 714{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." },
715{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" }, 715{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" },
716{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, 716{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." },
717{ "Error","Fehler" }, 717{ "Error","Fehler" },
718{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, 718{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." },
719{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, 719{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." },
720{ "Warning","Warnung" }, 720{ "Warning","Warnung" },
721{ "Select week number","Wähle Wochen Nummer" }, 721{ "Select week number","Wähle Wochen Nummer" },
722{ "Februar","Februar" }, 722{ "Februar","Februar" },
723{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " }, 723{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " },
724{ "Password for remote access:","Passwort für fernen Zugriff:" }, 724{ "Password for remote access:","Passwort für fernen Zugriff:" },
725{ "Remote IP address:","Ferne IP Adresse:" }, 725{ "Remote IP address:","Ferne IP Adresse:" },
726{ "Remote port number:","Ferne Port Nummer:" }, 726{ "Remote port number:","Ferne Port Nummer:" },
727{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." }, 727{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." },
728{ "Remote from: ","Fern von: " }, 728{ "Remote from: ","Fern von: " },
729{ "Local from: ","Lokal von: " }, 729{ "Local from: ","Lokal von: " },
730{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" }, 730{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" },
731{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, 731{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
732{ "Write back","Schreibe zurück" }, 732{ "Write back","Schreibe zurück" },
733{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, 733{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
734{ "Received sync request","Sync Anfrage erhalten" }, 734{ "Received sync request","Sync Anfrage erhalten" },
735{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." }, 735{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." },
736{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, 736{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
737{ "Data saved to temp file!","Daten in temp Datei gespeichert!" }, 737{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
738{ "Sending file...","Sende Datei..." }, 738{ "Sending file...","Sende Datei..." },
739{ "Waiting for synced file...","Warte auf gesyncte Daten..." }, 739{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
740{ "Receiving synced file...","Gesyncte Daten erhalten..." }, 740{ "Receiving synced file...","Gesyncte Daten erhalten..." },
741{ "Received %1 bytes","%1 Bytes erhalten" }, 741{ "Received %1 bytes","%1 Bytes erhalten" },
742{ "Writing file to disk...","Speichere Datei..." }, 742{ "Writing file to disk...","Speichere Datei..." },
743{ "Pi-Sync successful!","Pi-Sync erfolgreich!" }, 743{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
744{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, 744{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
745{ "Synchronize!","Synchronisiere!" }, 745{ "Synchronize!","Synchronisiere!" },
746{ "High clock skew!","Großer Uhrzeitunterschied!" }, 746{ "High clock skew!","Großer Uhrzeitunterschied!" },
747{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, 747{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
748{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, 748{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" },
749{ "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" }, 749{ "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" },
750{ "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" }, 750{ "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" },
751{ "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" }, 751{ "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" },
752{ "Edit new contact","Bearbeite neuen Kontakt" }, 752{ "Edit new contact","Bearbeite neuen Kontakt" },
753{ "Edit ","Bearbeite " }, 753{ "Edit ","Bearbeite " },
754{ "No contact changed!","Kein Kontakt verändert" }, 754{ "No contact changed!","Kein Kontakt verändert" },
755{ "%1 contacts changed!","%1 Kontakte geändert!" }, 755{ "%1 contacts changed!","%1 Kontakte geändert!" },
756{ "Mobile (home)","Handy (Arbeit)" }, 756{ "Mobile (home)","Handy (Arbeit)" },
757{ "Mobile (work)","Handy (Privat)" }, 757{ "Mobile (work)","Handy (Privat)" },
758{ "Def.Formatted Name","Def. Format. Name" }, 758{ "Def.Formatted Name","Def. Format. Name" },
759{ "Colors","Farben" }, 759{ "Colors","Farben" },
760{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, 760{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" },
761{ "Backup enabled","Backup angeschaltet" },
762{ "Use standard backup dir","Standard Backupverzeichnis" },
763{ "Number of Backups:","Anzahl der Backups" },
764{ "Make backup every ","Mache ein Backup alle " },
765{ " days"," Tage" },
761{ "","" }, 766{ "","" },
762{ "","" }, 767{ "","" },
763{ "","" }, 768{ "","" },
764{ "","" }, \ No newline at end of file 769{ "","" }, \ No newline at end of file
diff --git a/bin/kdepim/pwmanager/germantranslation.txt b/bin/kdepim/pwmanager/germantranslation.txt
index a50dd04..38896fb 100644
--- a/bin/kdepim/pwmanager/germantranslation.txt
+++ b/bin/kdepim/pwmanager/germantranslation.txt
@@ -260,103 +260,108 @@
260{ "Category on top","Kategorien oben" }, 260{ "Category on top","Kategorien oben" },
261{ "Category-list left/top","Kategorien links oben" }, 261{ "Category-list left/top","Kategorien links oben" },
262{ "Font for Password entries:","Schrift für Passwort Einträge:" }, 262{ "Font for Password entries:","Schrift für Passwort Einträge:" },
263{ "Font for Password summary:","Schrift für Passwort Übersicht:" }, 263{ "Font for Password summary:","Schrift für Passwort Übersicht:" },
264{ "Font:","Schriftart:" }, 264{ "Font:","Schriftart:" },
265{ "Summary","Übersicht" }, 265{ "Summary","Übersicht" },
266{ "Compression:","Kompression:" }, 266{ "Compression:","Kompression:" },
267{ "gzip","gzip" }, 267{ "gzip","gzip" },
268{ "Encryption:","Verschlüsselung:" }, 268{ "Encryption:","Verschlüsselung:" },
269{ "Blowfish (128 bit)","Blowfish (128 bit)" }, 269{ "Blowfish (128 bit)","Blowfish (128 bit)" },
270{ "AES-128, Rijndael (128 bit)","AES-128, Rijndael (128 bit)" }, 270{ "AES-128, Rijndael (128 bit)","AES-128, Rijndael (128 bit)" },
271{ "AES-192, Rijndael (192 bit)","AES-192, Rijndael (192 bit)" }, 271{ "AES-192, Rijndael (192 bit)","AES-192, Rijndael (192 bit)" },
272{ "AES-256, Rijndael (256 bit)","AES-256, Rijndael (256 bit)" }, 272{ "AES-256, Rijndael (256 bit)","AES-256, Rijndael (256 bit)" },
273{ "Triple-DES (168 bit)","Triple-DES (168 bit)" }, 273{ "Triple-DES (168 bit)","Triple-DES (168 bit)" },
274{ "Twofish (256 bit)","Twofish (256 bit)" }, 274{ "Twofish (256 bit)","Twofish (256 bit)" },
275{ "Twofish-128 (128 bit)","Twofish-128 (128 bit)" }, 275{ "Twofish-128 (128 bit)","Twofish-128 (128 bit)" },
276{ "Hashing:","Hashing:" }, 276{ "Hashing:","Hashing:" },
277{ "SHA-160, SHA1 (160 bit)","SHA-160, SHA1 (160 bit)" }, 277{ "SHA-160, SHA1 (160 bit)","SHA-160, SHA1 (160 bit)" },
278{ "SHA-256 (256 bit)","SHA-256 (256 bit)" }, 278{ "SHA-256 (256 bit)","SHA-256 (256 bit)" },
279{ "SHA-384 (384 bit)","SHA-384 (384 bit)" }, 279{ "SHA-384 (384 bit)","SHA-384 (384 bit)" },
280{ "SHA-512 (512 bit)","SHA-512 (512 bit)" }, 280{ "SHA-512 (512 bit)","SHA-512 (512 bit)" },
281{ "MD5 (128 bit)","MD5 (128 bit)" }, 281{ "MD5 (128 bit)","MD5 (128 bit)" },
282{ "RIPE-MD-160 (160 bit)","RIPE-MD-160 (160 bit)" }, 282{ "RIPE-MD-160 (160 bit)","RIPE-MD-160 (160 bit)" },
283{ "Tiger (192 bit)","Tiger (192 bit)" }, 283{ "Tiger (192 bit)","Tiger (192 bit)" },
284{ "Permissions:","Zugriffsrechte:" }, 284{ "Permissions:","Zugriffsrechte:" },
285{ "Make backup before saving","Mache Backup vor dem Speichern" }, 285{ "Make backup before saving","Mache Backup vor dem Speichern" },
286{ "Password timeout\n(timeout to hold password in\nmemory,so you don't have to\nre-enter it,if you\nalready have entered it)\n[set to 0 to disable]:","Passwort Timeout\n(Timeout um das Passwort\nim Speicher zu halten,\nso dass es nicht noch mal\neingegeben werden muß.)\n[Setze auf 0 zum deaktivieren]:" }, 286{ "Password timeout\n(timeout to hold password in\nmemory,so you don't have to\nre-enter it,if you\nalready have entered it)\n[set to 0 to disable]:","Passwort Timeout\n(Timeout um das Passwort\nim Speicher zu halten,\nso dass es nicht noch mal\neingegeben werden muß.)\n[Setze auf 0 zum deaktivieren]:" },
287{ "Auto-lock timeout\n(auto lock document after this\namount of seconds)\n[set to 0 to disable]:","(Total-)Sperr-Timeout\n(Sperre Dokument total nach\ndieser Anzahl Sekunden)\n[Setze auf 0 zum deaktivieren]:" }, 287{ "Auto-lock timeout\n(auto lock document after this\namount of seconds)\n[set to 0 to disable]:","(Total-)Sperr-Timeout\n(Sperre Dokument total nach\ndieser Anzahl Sekunden)\n[Setze auf 0 zum deaktivieren]:" },
288{ "deep-lock on autolock","Sperre total beim Sperr-Timeout" }, 288{ "deep-lock on autolock","Sperre total beim Sperr-Timeout" },
289{ "open deeplocked","Öffne total gesperrt" }, 289{ "open deeplocked","Öffne total gesperrt" },
290{ "Favourite browser:","Bevorzugter Browser:" }, 290{ "Favourite browser:","Bevorzugter Browser:" },
291{ "Favourite x-terminal:","Bevorzugtes x-terminal:" }, 291{ "Favourite x-terminal:","Bevorzugtes x-terminal:" },
292{ "Open document with passwords unlocked","Öffne Dokument mit Passwort ungesperrt" }, 292{ "Open document with passwords unlocked","Öffne Dokument mit Passwort ungesperrt" },
293{ "Look && feel","Aussehen" }, 293{ "Look && feel","Aussehen" },
294{ "File","Datei" }, 294{ "File","Datei" },
295{ "Timeout","Timeout" }, 295{ "Timeout","Timeout" },
296{ "Autostart","Autostart" }, 296{ "Autostart","Autostart" },
297{ "External apps","Externe Applik." }, 297{ "External apps","Externe Applik." },
298{ "Miscellaneous","Verschiedenes" }, 298{ "Miscellaneous","Verschiedenes" },
299{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" }, 299{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" },
300{ "edit category descriptions","Ändere Label für Kategorie" }, 300{ "edit category descriptions","Ändere Label für Kategorie" },
301{ "Close","Schließen" }, 301{ "Close","Schließen" },
302{ "Category:","Category:" }, 302{ "Category:","Category:" },
303{ "Text1 (Description):","Text1 (Beschreibung):" }, 303{ "Text1 (Description):","Text1 (Beschreibung):" },
304{ "Text2 (Username):","Text2 (Benutzername):" }, 304{ "Text2 (Username):","Text2 (Benutzername):" },
305{ "Text3 (Password):","Text3 (Passwort):" }, 305{ "Text3 (Password):","Text3 (Passwort):" },
306{ "edit/add a password entry","Ändere/hinzufüge Passwort Eintrag" }, 306{ "edit/add a password entry","Ändere/hinzufüge Passwort Eintrag" },
307{ "Description:","Beschreibung:" }, 307{ "Description:","Beschreibung:" },
308{ "Username:","Benutzername:" }, 308{ "Username:","Benutzername:" },
309{ "Password:","Passwort:" }, 309{ "Password:","Passwort:" },
310{ "&Reveal","&Offen zeigen" }, 310{ "&Reveal","&Offen zeigen" },
311{ "&Generate","&Generiere" }, 311{ "&Generate","&Generiere" },
312{ "&Password","&Passwort" }, 312{ "&Password","&Passwort" },
313{ "&Comments","Kommentar" }, 313{ "&Comments","Kommentar" },
314{ "Launcher:","Launcher:" }, 314{ "Launcher:","Launcher:" },
315{ "$d = Description","$d = Beschreibung" }, 315{ "$d = Description","$d = Beschreibung" },
316{ "$n = Username","$n = Benutzername" }, 316{ "$n = Username","$n = Benutzername" },
317{ "$c = Comment","$c = Kommentar" }, 317{ "$c = Comment","$c = Kommentar" },
318{ "$u = URL","$u = URL" }, 318{ "$u = URL","$u = URL" },
319{ "$p = Password","$p = Passwort" }, 319{ "$p = Password","$p = Passwort" },
320{ "&Launcher","&Launcher" }, 320{ "&Launcher","&Launcher" },
321{ "Password generator","Passwort Generator" }, 321{ "Password generator","Passwort Generator" },
322{ "Character set:","Buchstaben Set:" }, 322{ "Character set:","Buchstaben Set:" },
323{ "Lowercase (abc)","Klein (abc)" }, 323{ "Lowercase (abc)","Klein (abc)" },
324{ "Uppercase (ABC)","Groß (ABC)" }, 324{ "Uppercase (ABC)","Groß (ABC)" },
325{ "Numbers (123)","Nummmern (123)" }, 325{ "Numbers (123)","Nummmern (123)" },
326{ "Special characters:","Spezielle Buchstaben:" }, 326{ "Special characters:","Spezielle Buchstaben:" },
327{ "Spaces (blank characters)","Leerzeichen" }, 327{ "Spaces (blank characters)","Leerzeichen" },
328{ "User defined:","Benutzer definiert:" }, 328{ "User defined:","Benutzer definiert:" },
329{ "Password Length:","Passwort Länge:" }, 329{ "Password Length:","Passwort Länge:" },
330{ "Enable Filtering to get better passwords","Enable Filtering to get better passwords" }, 330{ "Enable Filtering to get better passwords","Enable Filtering to get better passwords" },
331{ "no password","Kein Passwort" }, 331{ "no password","Kein Passwort" },
332{ "Sorry, you haven't set a password.","Sorry, Sie haben kein Passwort angegeben." }, 332{ "Sorry, you haven't set a password.","Sorry, Sie haben kein Passwort angegeben." },
333{ "not saved, yet","not saved, yet" }, 333{ "not saved, yet","not saved, yet" },
334{ "Can't deep-lock, because the document\nhasn't been saved, yet. Please save\nto a file and try again.","Kann nicht tiefsperren, weil das\nDokument noch nicht gespeichert wurde.\nBitte speichern und noch einmal versuchen." }, 334{ "Can't deep-lock, because the document\nhasn't been saved, yet. Please save\nto a file and try again.","Kann nicht tiefsperren, weil das\nDokument noch nicht gespeichert wurde.\nBitte speichern und noch einmal versuchen." },
335{ "Find","Finde" }, 335{ "Find","Finde" },
336{ "&Exact match","Genaue Übereinstimmung" }, 336{ "&Exact match","Genaue Übereinstimmung" },
337{ "&Case sensitive","Großschrift abhängig" }, 337{ "&Case sensitive","Großschrift abhängig" },
338{ "Search in Column","Suche in Spalten" }, 338{ "Search in Column","Suche in Spalten" },
339{ "&Description","Beschreibung" }, 339{ "&Description","Beschreibung" },
340{ "C&omment","Kommentar" }, 340{ "C&omment","Kommentar" },
341{ "&Username","Benutzername" }, 341{ "&Username","Benutzername" },
342{ "U&RL","URL" }, 342{ "U&RL","URL" },
343{ "delete?","Löschen?" }, 343{ "delete?","Löschen?" },
344{ "Do you really want to delete\nthe selected entry","Wollen Sie wirklich\nden Eintrag löschen:" }, 344{ "Do you really want to delete\nthe selected entry","Wollen Sie wirklich\nden Eintrag löschen:" },
345{ "Save?","Speichern?" }, 345{ "Save?","Speichern?" },
346{ ""\nhas been modified.\nDo you want to save it?",""\nwurde geändert.\nMöchten Sie speichern?" }, 346{ ""\nhas been modified.\nDo you want to save it?",""\nwurde geändert.\nMöchten Sie speichern?" },
347{ "The list\n "","Die Liste\n "" }, 347{ "The list\n "","Die Liste\n "" },
348{ "nothing to do","Nichts zu tun" }, 348{ "nothing to do","Nichts zu tun" },
349{ "Sorry, there's nothing to save.\nPlease first add some passwords.","Sorry, es gibt nichts zu speichern.\nBitte erst Passwörter hinzufügen." }, 349{ "Sorry, there's nothing to save.\nPlease first add some passwords.","Sorry, es gibt nichts zu speichern.\nBitte erst Passwörter hinzufügen." },
350{ "Add new password","Passwort hinzufügen" }, 350{ "Add new password","Passwort hinzufügen" },
351{ "Successfully saved data.","Datei gespeichert." }, 351{ "Successfully saved data.","Datei gespeichert." },
352{ "Category:","Kategorie:" }, 352{ "Category:","Kategorie:" },
353{ "LOCKED","GESPERRT" }, 353{ "LOCKED","GESPERRT" },
354{ "Colors","Farben" }, 354{ "Colors","Farben" },
355{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, 355{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" },
356{ "Backup enabled","Backup angeschaltet" },
357{ "Use standard backup dir","Standard Backupverzeichnis" },
358{ "Number of Backups:","Anzahl der Backups" },
359{ "Make backup every ","Mache ein Backup alle " },
360{ " days"," Tage" },
356{ "","" }, 361{ "","" },
357{ "","" }, 362{ "","" },
358{ "","" }, 363{ "","" },
359{ "","" }, 364{ "","" },
360{ "","" }, 365{ "","" },
361{ "","" }, 366{ "","" },
362 367
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 9ad0694..eed023c 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1674,238 +1674,237 @@ void MainWindow::importBday()
1674 i18n("Import!"), i18n("Cancel"), 0, 1674 i18n("Import!"), i18n("Cancel"), 0,
1675 0, 1 ); 1675 0, 1 );
1676 if ( result == 0 ) { 1676 if ( result == 0 ) {
1677 mView->importBday(); 1677 mView->importBday();
1678 1678
1679 } 1679 }
1680 1680
1681 1681
1682} 1682}
1683void MainWindow::importQtopia() 1683void MainWindow::importQtopia()
1684{ 1684{
1685 //#ifndef DESKTOP_VERSION 1685 //#ifndef DESKTOP_VERSION
1686 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); 1686 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing");
1687#ifdef DESKTOP_VERSION 1687#ifdef DESKTOP_VERSION
1688 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); 1688 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml");
1689#endif 1689#endif
1690 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, 1690 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess,
1691 i18n("Import!"), i18n("Cancel"), 0, 1691 i18n("Import!"), i18n("Cancel"), 0,
1692 0, 1 ); 1692 0, 1 );
1693 if ( result == 0 ) { 1693 if ( result == 0 ) {
1694#ifndef DESKTOP_VERSION 1694#ifndef DESKTOP_VERSION
1695 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1695 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1696 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1696 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1697 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1697 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1698#else 1698#else
1699 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; 1699 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml";
1700 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; 1700 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml";
1701 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; 1701 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml";
1702#endif 1702#endif
1703 mView->importQtopia( categories, datebook, todolist ); 1703 mView->importQtopia( categories, datebook, todolist );
1704 } 1704 }
1705#if 0 1705#if 0
1706 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1706 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1707 i18n("Not supported \non desktop!\n"), 1707 i18n("Not supported \non desktop!\n"),
1708 i18n("Ok"), i18n("Cancel"), 0, 1708 i18n("Ok"), i18n("Cancel"), 0,
1709 0, 1 ); 1709 0, 1 );
1710 1710
1711#endif 1711#endif
1712} 1712}
1713 1713
1714void MainWindow::saveOnClose() 1714void MainWindow::saveOnClose()
1715{ 1715{
1716 KOPrefs *p = KOPrefs::instance(); 1716 KOPrefs *p = KOPrefs::instance();
1717 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1717 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1718 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); 1718 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal );
1719 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); 1719 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal );
1720 if ( filterToolBar ) { 1720 if ( filterToolBar ) {
1721 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); 1721 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal );
1722 } 1722 }
1723#ifdef DESKTOP_VERSION 1723#ifdef DESKTOP_VERSION
1724 1724
1725 QPoint myP; 1725 QPoint myP;
1726 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) ); 1726 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) );
1727 if ( p->mToolBarHor ) 1727 if ( p->mToolBarHor )
1728 p->mToolBarUp = myP.y() > height()/2; 1728 p->mToolBarUp = myP.y() > height()/2;
1729 else 1729 else
1730 p->mToolBarUp = myP.x() > width()/2; 1730 p->mToolBarUp = myP.x() > width()/2;
1731 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) ); 1731 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) );
1732 if ( p->mToolBarHorV ) 1732 if ( p->mToolBarHorV )
1733 p->mToolBarUpV = myP.y() > height()/2; 1733 p->mToolBarUpV = myP.y() > height()/2;
1734 else 1734 else
1735 p->mToolBarUpV = myP.x() > width()/2 ; 1735 p->mToolBarUpV = myP.x() > width()/2 ;
1736 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) ); 1736 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) );
1737 if ( p->mToolBarHorN ) 1737 if ( p->mToolBarHorN )
1738 p->mToolBarUpN = myP.y() > height()/2; 1738 p->mToolBarUpN = myP.y() > height()/2;
1739 else 1739 else
1740 p->mToolBarUpN = myP.x() > width()/2 ; 1740 p->mToolBarUpN = myP.x() > width()/2 ;
1741 if ( filterToolBar ) { 1741 if ( filterToolBar ) {
1742 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) ); 1742 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) );
1743 if ( p->mToolBarHorF ) 1743 if ( p->mToolBarHorF )
1744 p->mToolBarUpF = myP.y() > height()/2; 1744 p->mToolBarUpF = myP.y() > height()/2;
1745 else 1745 else
1746 p->mToolBarUpF = myP.x() > width()/2 ; 1746 p->mToolBarUpF = myP.x() > width()/2 ;
1747 } 1747 }
1748#else 1748#else
1749 if ( p->mToolBarHor ) 1749 if ( p->mToolBarHor )
1750 p->mToolBarUp = iconToolBar->y() > height()/2; 1750 p->mToolBarUp = iconToolBar->y() > height()/2;
1751 else 1751 else
1752 p->mToolBarUp = iconToolBar->x() > width()/2; 1752 p->mToolBarUp = iconToolBar->x() > width()/2;
1753 if ( p->mToolBarHorV ) 1753 if ( p->mToolBarHorV )
1754 p->mToolBarUpV = viewToolBar->y() > height()/2; 1754 p->mToolBarUpV = viewToolBar->y() > height()/2;
1755 else 1755 else
1756 p->mToolBarUpV = viewToolBar->x() > width()/2 ; 1756 p->mToolBarUpV = viewToolBar->x() > width()/2 ;
1757 1757
1758 if ( p->mToolBarHorN ) 1758 if ( p->mToolBarHorN )
1759 p->mToolBarUpN = navigatorToolBar->y() > height()/2; 1759 p->mToolBarUpN = navigatorToolBar->y() > height()/2;
1760 else 1760 else
1761 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; 1761 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ;
1762 if ( filterToolBar ) { 1762 if ( filterToolBar ) {
1763 if ( p->mToolBarHorF ) 1763 if ( p->mToolBarHorF )
1764 p->mToolBarUpF = filterToolBar->y() > height()/2; 1764 p->mToolBarUpF = filterToolBar->y() > height()/2;
1765 else 1765 else
1766 p->mToolBarUpF = filterToolBar->x() > width()/2 ; 1766 p->mToolBarUpF = filterToolBar->x() > width()/2 ;
1767 } 1767 }
1768#endif 1768#endif
1769 1769
1770
1771 mView->writeSettings();
1772 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1770 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1773 save(); 1771 save();
1772 mView->writeSettings();
1774} 1773}
1775void MainWindow::slotModifiedChanged( bool changed ) 1774void MainWindow::slotModifiedChanged( bool changed )
1776{ 1775{
1777 if ( mBlockAtStartup ) 1776 if ( mBlockAtStartup )
1778 return; 1777 return;
1779 1778
1780 int msec; 1779 int msec;
1781 // we store the changes after 1 minute, 1780 // we store the changes after 1 minute,
1782 // and for safety reasons after 10 minutes again 1781 // and for safety reasons after 10 minutes again
1783 if ( !mSyncManager->blockSave() ) 1782 if ( !mSyncManager->blockSave() )
1784 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1783 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1785 else 1784 else
1786 msec = 1000 * 600; 1785 msec = 1000 * 600;
1787 mSaveTimer.start( msec, true ); // 1 minute 1786 mSaveTimer.start( msec, true ); // 1 minute
1788 qDebug("KO: Saving File in %d secs!", msec/1000); 1787 qDebug("KO: Saving File in %d secs!", msec/1000);
1789 mCalendarModifiedFlag = true; 1788 mCalendarModifiedFlag = true;
1790} 1789}
1791void MainWindow::saveStopTimer() 1790void MainWindow::saveStopTimer()
1792{ 1791{
1793 mSaveTimer.stop(); 1792 mSaveTimer.stop();
1794} 1793}
1795void MainWindow::save() 1794void MainWindow::save()
1796{ 1795{
1797 if ( !mCalendarModifiedFlag ) { 1796 if ( !mCalendarModifiedFlag ) {
1798 qDebug("KO: Calendar not modified. Nothing saved."); 1797 qDebug("KO: Calendar not modified. Nothing saved.");
1799 return; 1798 return;
1800 } 1799 }
1801 if ( mSyncManager->blockSave() ) 1800 if ( mSyncManager->blockSave() )
1802 return; 1801 return;
1803 mSyncManager->setBlockSave(true); 1802 mSyncManager->setBlockSave(true);
1804 if ( mView->checkFileVersion( defaultFileName()) ) { 1803 if ( mView->checkFileVersion( defaultFileName()) ) {
1805 if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ 1804 if ( KPimGlobalPrefs::instance()->mBackupEnabled ){
1806 QDate reference ( 2000,1,1); 1805 QDate reference ( 2000,1,1);
1807 int daysTo = reference.daysTo ( QDate::currentDate() ); 1806 int daysTo = reference.daysTo ( QDate::currentDate() );
1808 if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { 1807 if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) {
1809 setCaption(i18n("KO/Pi:Creating backup ... please wait ..." )); 1808 setCaption(i18n("KO/Pi:Creating backup ... please wait ..." ));
1810 qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); 1809 qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate);
1811 // we need the file path, the backup dir and the number of bups as param 1810 // we need the file path, the backup dir and the number of bups as param
1812 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; 1811 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir;
1813 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) 1812 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir)
1814 bupDir = KGlobalSettings::backupDataDir(); 1813 bupDir = KGlobalSettings::backupDataDir();
1815 int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers );//55;//call backup 1814 int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers );
1816 if ( retval == 0 ) { 1815 if ( retval == 0 ) {
1817 qDebug("KO: Backup cancelled. Will try again tomorrow "); 1816 qDebug("KO: Backup cancelled. Will try again tomorrow ");
1818 // retval == 0 : backup skipped for today, try again tomorrow 1817 // retval == 0 : backup skipped for today, try again tomorrow
1819 KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; 1818 KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1;
1820 } else if ( retval == 1 ){ 1819 } else if ( retval == 1 ){
1821 qDebug("KO: Backup created."); 1820 qDebug("KO: Backup created.");
1822 // backup ok 1821 // backup ok
1823 KOPrefs::instance()->mLastBackupDate = daysTo; 1822 KOPrefs::instance()->mLastBackupDate = daysTo;
1824 1823
1825 } else if ( retval == 2 ){ 1824 } else if ( retval == 2 ){
1826 qDebug("KO: Backup globally cancelled."); 1825 qDebug("KO: Backup globally cancelled.");
1827 // backup globally cancelled 1826 // backup globally cancelled
1828 KPimGlobalPrefs::instance()->mBackupEnabled = false; 1827 KPimGlobalPrefs::instance()->mBackupEnabled = false;
1829 } 1828 }
1830 // retval == 3: do nothing, try again later 1829 // retval == 3: do nothing, try again later
1831 } 1830 }
1832 ; // KPimGlobalPrefs::instance()->mLastBackupDate 1831 ; // KPimGlobalPrefs::instance()->mLastBackupDate
1833 } 1832 }
1834 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1833 QTime neededSaveTime = QDateTime::currentDateTime().time();
1835 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1834 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1836 qDebug("KO: Start saving data to file!"); 1835 qDebug("KO: Start saving data to file!");
1837 mView->saveCalendar( defaultFileName() ); 1836 mView->saveCalendar( defaultFileName() );
1838 mCalendarModifiedFlag = false; 1837 mCalendarModifiedFlag = false;
1839 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1838 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1840 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1839 qDebug("KO: Needed %d ms for saving.",msNeeded );
1841 QString savemes; 1840 QString savemes;
1842 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1841 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1843 setCaption(savemes); 1842 setCaption(savemes);
1844 } else 1843 } else
1845 setCaption(i18n("Saving cancelled!")); 1844 setCaption(i18n("Saving cancelled!"));
1846 mSyncManager->setBlockSave( false ); 1845 mSyncManager->setBlockSave( false );
1847} 1846}
1848 1847
1849void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1848void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1850{ 1849{
1851 if ( !e->isAutoRepeat() ) { 1850 if ( !e->isAutoRepeat() ) {
1852 mFlagKeyPressed = false; 1851 mFlagKeyPressed = false;
1853 } 1852 }
1854} 1853}
1855void MainWindow::keyPressEvent ( QKeyEvent * e ) 1854void MainWindow::keyPressEvent ( QKeyEvent * e )
1856{ 1855{
1857 qApp->processEvents(); 1856 qApp->processEvents();
1858 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1857 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1859 e->ignore(); 1858 e->ignore();
1860 // qDebug(" ignore %d",e->isAutoRepeat() ); 1859 // qDebug(" ignore %d",e->isAutoRepeat() );
1861 return; 1860 return;
1862 } 1861 }
1863 if (! e->isAutoRepeat() ) 1862 if (! e->isAutoRepeat() )
1864 mFlagKeyPressed = true; 1863 mFlagKeyPressed = true;
1865 KOPrefs *p = KOPrefs::instance(); 1864 KOPrefs *p = KOPrefs::instance();
1866 bool showSelectedDates = false; 1865 bool showSelectedDates = false;
1867 int size; 1866 int size;
1868 int pro = 0; 1867 int pro = 0;
1869 //qDebug("MainWindow::keyPressEvent "); 1868 //qDebug("MainWindow::keyPressEvent ");
1870 switch ( e->key() ) { 1869 switch ( e->key() ) {
1871 case Qt::Key_Right: 1870 case Qt::Key_Right:
1872 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1871 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1873 mView->goNextMonth(); 1872 mView->goNextMonth();
1874 else 1873 else
1875 mView->goNext(); 1874 mView->goNext();
1876 showSelectedDates = true; 1875 showSelectedDates = true;
1877 break; 1876 break;
1878 case Qt::Key_Left: 1877 case Qt::Key_Left:
1879 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1878 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1880 mView->goPreviousMonth(); 1879 mView->goPreviousMonth();
1881 else 1880 else
1882 mView->goPrevious(); 1881 mView->goPrevious();
1883 showSelectedDates = true; 1882 showSelectedDates = true;
1884 break; 1883 break;
1885 case Qt::Key_Down: 1884 case Qt::Key_Down:
1886 mView->viewManager()->agendaView()->scrollOneHourDown(); 1885 mView->viewManager()->agendaView()->scrollOneHourDown();
1887 break; 1886 break;
1888 case Qt::Key_Up: 1887 case Qt::Key_Up:
1889 mView->viewManager()->agendaView()->scrollOneHourUp(); 1888 mView->viewManager()->agendaView()->scrollOneHourUp();
1890 break; 1889 break;
1891 case Qt::Key_K: 1890 case Qt::Key_K:
1892 mView->viewManager()->showMonthViewWeek(); 1891 mView->viewManager()->showMonthViewWeek();
1893 break; 1892 break;
1894 case Qt::Key_I: 1893 case Qt::Key_I:
1895 mView->showIncidence(); 1894 mView->showIncidence();
1896 break; 1895 break;
1897 case Qt::Key_Delete: 1896 case Qt::Key_Delete:
1898 case Qt::Key_Backspace: 1897 case Qt::Key_Backspace:
1899 mView->deleteIncidence(); 1898 mView->deleteIncidence();
1900 break; 1899 break;
1901 case Qt::Key_D: 1900 case Qt::Key_D:
1902 mView->viewManager()->showDayView(); 1901 mView->viewManager()->showDayView();
1903 showSelectedDates = true; 1902 showSelectedDates = true;
1904 break; 1903 break;
1905 case Qt::Key_O: 1904 case Qt::Key_O:
1906 mView->toggleFilerEnabled( ); 1905 mView->toggleFilerEnabled( );
1907 break; 1906 break;
1908 case Qt::Key_0: 1907 case Qt::Key_0:
1909 case Qt::Key_1: 1908 case Qt::Key_1:
1910 case Qt::Key_2: 1909 case Qt::Key_2:
1911 case Qt::Key_3: 1910 case Qt::Key_3:
diff --git a/microkde/kapplication.cpp b/microkde/kapplication.cpp
index 566bb41..2c9e3b6 100644
--- a/microkde/kapplication.cpp
+++ b/microkde/kapplication.cpp
@@ -77,171 +77,170 @@ void KApplication::showFile(QString caption, QString fn)
77 return ; 77 return ;
78 } 78 }
79 QTextStream ts( &file ); 79 QTextStream ts( &file );
80 text = ts.read(); 80 text = ts.read();
81 file.close(); 81 file.close();
82 KApplication::showText( caption, text ); 82 KApplication::showText( caption, text );
83 83
84} 84}
85 85
86bool KApplication::convert2latin1(QString fileName) 86bool KApplication::convert2latin1(QString fileName)
87{ 87{
88 QString text; 88 QString text;
89 QFile file( fileName ); 89 QFile file( fileName );
90 if (!file.open( IO_ReadOnly ) ) { 90 if (!file.open( IO_ReadOnly ) ) {
91 return false; 91 return false;
92 92
93 } 93 }
94 QTextStream ts( &file ); 94 QTextStream ts( &file );
95 ts.setEncoding( QTextStream::UnicodeUTF8 ); 95 ts.setEncoding( QTextStream::UnicodeUTF8 );
96 text = ts.read(); 96 text = ts.read();
97 file.close(); 97 file.close();
98 if (!file.open( IO_WriteOnly ) ) { 98 if (!file.open( IO_WriteOnly ) ) {
99 return false; 99 return false;
100 } 100 }
101 QTextStream tsIn( &file ); 101 QTextStream tsIn( &file );
102 tsIn.setEncoding( QTextStream::Latin1 ); 102 tsIn.setEncoding( QTextStream::Latin1 );
103 tsIn << text.latin1(); 103 tsIn << text.latin1();
104 file.close(); 104 file.close();
105 return true; 105 return true;
106 106
107 107
108} 108}
109void KApplication::showText(QString caption, QString text) 109void KApplication::showText(QString caption, QString text)
110{ 110{
111 QDialog dia( 0, "name", true ); ; 111 QDialog dia( 0, "name", true ); ;
112 dia.setCaption( caption ); 112 dia.setCaption( caption );
113 QVBoxLayout* lay = new QVBoxLayout( &dia ); 113 QVBoxLayout* lay = new QVBoxLayout( &dia );
114 lay->setSpacing( 3 ); 114 lay->setSpacing( 3 );
115 lay->setMargin( 3 ); 115 lay->setMargin( 3 );
116 KTextEdit tb ( &dia ); 116 KTextEdit tb ( &dia );
117 tb.setWordWrap( QMultiLineEdit::WidgetWidth ); 117 tb.setWordWrap( QMultiLineEdit::WidgetWidth );
118 lay->addWidget( &tb ); 118 lay->addWidget( &tb );
119 tb.setText( text ); 119 tb.setText( text );
120#ifdef DESKTOP_VERSION 120#ifdef DESKTOP_VERSION
121 dia.resize( 640, 480); 121 dia.resize( 640, 480);
122#else 122#else
123 dia.showMaximized(); 123 dia.showMaximized();
124#endif 124#endif
125 dia.exec(); 125 dia.exec();
126 126
127} 127}
128 128
129#include <qlabel.h> 129#include <qlabel.h>
130#include <qpushbutton.h> 130#include <qpushbutton.h>
131#include <qlayout.h> 131#include <qlayout.h>
132#include <qdir.h> 132#include <qdir.h>
133#include <qradiobutton.h> 133#include <qradiobutton.h>
134#include <qbuttongroup.h> 134#include <qbuttongroup.h>
135#include "kglobal.h" 135#include "kglobal.h"
136#include "klocale.h" 136#include "klocale.h"
137 137
138class KBackupPrefs : public QDialog 138class KBackupPrefs : public QDialog
139{ 139{
140 public: 140 public:
141 KBackupPrefs( QString message , QWidget *parent=0, const char *name=0 ) : 141 KBackupPrefs( QString message , QWidget *parent=0, const char *name=0 ) :
142 QDialog( parent, name, true ) 142 QDialog( parent, name, true )
143 { 143 {
144 setCaption( i18n("Backup Failed!") ); 144 setCaption( i18n("Backup Failed!") );
145 QVBoxLayout* lay = new QVBoxLayout( this ); 145 QVBoxLayout* lay = new QVBoxLayout( this );
146 lay->setSpacing( 3 ); 146 lay->setSpacing( 3 );
147 lay->setMargin( 3 ); 147 lay->setMargin( 3 );
148 QLabel * lab = new QLabel( message, this ); 148 QLabel * lab = new QLabel( message, this );
149 lay->addWidget( lab ); 149 lay->addWidget( lab );
150 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Choose action"), this ); 150 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Choose action"), this );
151 lay->addWidget( format ); 151 lay->addWidget( format );
152 format->setExclusive ( true ) ; 152 format->setExclusive ( true ) ;
153 vcal = new QRadioButton(i18n("Try again now"), format ); 153 vcal = new QRadioButton(i18n("Try again now"), format );
154 tcal = new QRadioButton(i18n("Try again later"), format ); 154 tcal = new QRadioButton(i18n("Try again later"), format );
155 ical = new QRadioButton(i18n("Try again tomorrow"), format ); 155 ical = new QRadioButton(i18n("Try again tomorrow"), format );
156 ocal = new QRadioButton(i18n("Disable backup"), format ); 156 ocal = new QRadioButton(i18n("Disable backup"), format );
157 vcal->setChecked( true ); 157 vcal->setChecked( true );
158 QPushButton * ok = new QPushButton( i18n("OK"), this ); 158 QPushButton * ok = new QPushButton( i18n("OK"), this );
159 lay->addWidget(ok ); 159 lay->addWidget(ok );
160 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 160 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
161 } 161 }
162 162
163 bool again() { return vcal->isChecked(); } 163 bool again() { return vcal->isChecked(); }
164 bool later() { return tcal->isChecked(); } 164 bool later() { return tcal->isChecked(); }
165 bool againTomorrow() { return ical->isChecked(); } 165 bool againTomorrow() { return ical->isChecked(); }
166private: 166private:
167 QRadioButton* vcal, *ical, *ocal, *tcal; 167 QRadioButton* vcal, *ical, *ocal, *tcal;
168}; 168};
169int KApplication::createBackup( QString fn, QString dp, int numBup ) 169int KApplication::createBackup( QString fn, QString dp, int numBup )
170{ 170{
171 if ( numBup < 1) return 3; 171 if ( numBup < 1) return 3;
172 int ret = 3; 172 int ret = 3;
173 qDebug("KApplication::createBackup %s --- %s --- %d", fn.latin1(), dp.latin1(), numBup); 173 //qDebug("KApplication::createBackup %s --- %s --- %d", fn.latin1(), dp.latin1(), numBup);
174 QDir bupDir ( dp ); 174 QDir bupDir ( dp );
175 bool tryAgain = true; 175 bool tryAgain = true;
176 while ( tryAgain ) { 176 while ( tryAgain ) {
177 if ( !bupDir.exists() ) { 177 if ( !bupDir.exists() ) {
178 KBackupPrefs noDir( i18n("<b>Backup directory does not exist: </b>") + dp.right(30)); 178 KBackupPrefs noDir( i18n("<b>Backup directory does not exist: </b>") + dp.right(30));
179 if ( !noDir.exec() ) return 3; 179 if ( !noDir.exec() ) return 3;
180 if ( noDir.againTomorrow() ) { 180 if ( noDir.againTomorrow() ) {
181 return 0; 181 return 0;
182 } else if ( noDir.later() ) { 182 } else if ( noDir.later() ) {
183 return 3; 183 return 3;
184 } else if ( !noDir.again() ) { 184 } else if ( !noDir.again() ) {
185 return 2; 185 return 2;
186 } 186 }
187 } else { 187 } else {
188 tryAgain = false; 188 tryAgain = false;
189 } 189 }
190 } 190 }
191 // we have a valid dir! 191 // we have a valid dir!
192 QStringList allFileList = bupDir.entryList(QDir::Files); 192 QStringList allFileList = bupDir.entryList(QDir::Files);
193 QFileInfo fileInfo ( fn ); 193 QFileInfo fileInfo ( fn );
194 QString fName = fileInfo.fileName (); 194 QString fName = fileInfo.fileName ();
195 QStringList fileList; 195 QStringList fileList;
196 196
197 int i; 197 int i;
198 for ( i = 0; i < allFileList.count(); ++i ) { 198 for ( i = 0; i < allFileList.count(); ++i ) {
199 QString fi = allFileList[i]; 199 QString fi = allFileList[i];
200 if ( fi. find( fName ) > -1 ) 200 if ( fi. find( fName ) > -1 )
201 fileList.append( fi ); 201 fileList.append( fi );
202 } 202 }
203 qDebug("%d backup files exist ", fileList.count()); 203 qDebug("KApp: %d backup files exist ", fileList.count());
204 int count = fileList.count(); 204 int count = fileList.count();
205 fileList.sort(); 205 fileList.sort();
206 int remCount = 0; 206 int remCount = 0;
207 while ( count >= numBup ) { 207 while ( count >= numBup ) {
208 QString fnr = dp + "/"+fileList[remCount]; 208 QString fnr = dp + "/"+fileList[remCount];
209 QFile::remove( fnr ); 209 QFile::remove( fnr );
210 --count; 210 --count;
211 ++remCount; 211 ++remCount;
212 } 212 }
213 QDateTime mRunStart = QDateTime::currentDateTime(); 213 QDateTime mRunStart = QDateTime::currentDateTime();
214 QString file = "%1%2%3-%4%5%6-"; 214 QString file = "%1%2%3-%4%5%6-";
215 file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 ); 215 file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 );
216 file.replace ( QRegExp (" "), "0" ); 216 file.replace ( QRegExp (" "), "0" );
217 file += fName ; 217 file += fName ;
218 file = dp + "/"+file; 218 file = dp + file;
219 QString command; 219 QString command;
220 int res = 0; 220 int res = 0;
221#ifdef _WIN32_ 221#ifdef _WIN32_
222 command = "xcopy "+ fn+ " "+file; 222 command = "copy \""+ QDir::convertSeparators( fn)+ "\" \""+QDir::convertSeparators(file)+ "\" ";
223 command = QDir::convertSeparators( command );
224#else 223#else
225 command = "cp "+ fn+ " "+file; 224 command = "cp "+ fn+ " "+file;
226#endif 225#endif
227 qDebug("command %s ",command.latin1() ); 226 //qDebug("command %s ",command.latin1() );
228 tryAgain = true; 227 tryAgain = true;
229 while ( tryAgain ) { 228 while ( tryAgain ) {
230 res = system ( command.latin1() ); 229 res = system ( command.latin1() );
231 qDebug("copy result %d ", res); 230 qDebug("KApp: Copy result %d ", res);
232 if ( res != 0 ) { 231 if ( res != 0 ) {
233 KBackupPrefs noDir( i18n("<b>The backup copy command failed!</b>")); 232 KBackupPrefs noDir( i18n("<b>The backup copy command failed!</b>"));
234 if ( !noDir.exec() ) return 3; 233 if ( !noDir.exec() ) return 3;
235 if ( noDir.againTomorrow() ) { 234 if ( noDir.againTomorrow() ) {
236 return 0; 235 return 0;
237 } else if ( noDir.later() ) { 236 } else if ( noDir.later() ) {
238 return 3; 237 return 3;
239 } else if ( !noDir.again() ) { 238 } else if ( !noDir.again() ) {
240 return 2; 239 return 2;
241 } 240 }
242 } else { 241 } else {
243 tryAgain = false; 242 tryAgain = false;
244 } 243 }
245 } 244 }
246 return 1; 245 return 1;
247} 246}