summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt4
-rw-r--r--bin/kdepim/kaddressbook/germantranslation.txt29
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt40
-rw-r--r--kaddressbook/kabcore.cpp3
-rw-r--r--korganizer/calendarview.cpp3
-rw-r--r--libkdepim/ksyncmanager.cpp13
-rw-r--r--microkde/kdecore/klocale.cpp2
7 files changed, 84 insertions, 10 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 6ccf763..81b0d59 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,69 +1,71 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 2.0.6 ************ 3********** VERSION 2.0.6 ************
4 4
5Two bugfixes in the pi-sync mode. 5Some bugfixes in the pi-sync mode.
6Added German translation for pi-sync mode.
7
6KO/Pi: 8KO/Pi:
7Made the todolist using alternate background. 9Made the todolist using alternate background.
8 10
9Other minor fixes in KO/Pi. 11Other minor fixes in KO/Pi.
10 12
11 13
12********** VERSION 2.0.5 ************ 14********** VERSION 2.0.5 ************
13 15
14Bugfixes in KO/Pi. 16Bugfixes in KO/Pi.
15 17
16********** VERSION 2.0.4 ************ 18********** VERSION 2.0.4 ************
17 19
18KO/Pi: 20KO/Pi:
19Fixed problem loading translations for summary/location edit boxes in event/todo editor. 21Fixed problem loading translations for summary/location edit boxes in event/todo editor.
20 22
21Added a general "select week number" to the toolbar. 23Added a general "select week number" to the toolbar.
22 24
23Fixed some small problem of the new features introduced in version 2.0.3. 25Fixed some small problem of the new features introduced in version 2.0.3.
24 26
25Made it possible to specify one specific category as category color, 27Made it possible to specify one specific category as category color,
26if more than one categories are selected. 28if more than one categories are selected.
27 29
28Fixed a bug in saving colors for categories with non-ascii characters. 30Fixed a bug in saving colors for categories with non-ascii characters.
29(Like, e.g. German Umlauts). 31(Like, e.g. German Umlauts).
30Propably you have to set your colors again for those categories. 32Propably you have to set your colors again for those categories.
31 33
32 34
33********** VERSION 2.0.3 ************ 35********** VERSION 2.0.3 ************
34 36
35KO/Pi: 37KO/Pi:
36Added feature for changing alarm settings for many items at once: 38Added feature for changing alarm settings for many items at once:
37Open list view (or search dialog), select the desired items and choose in 39Open list view (or search dialog), select the desired items and choose in
38the popup menu: Set alarm for selected... 40the popup menu: Set alarm for selected...
39 41
40Added to the event/todo viewer the option to send an email to 42Added to the event/todo viewer the option to send an email to
41all attendees or all selected (with RSVP) attendees. 43all attendees or all selected (with RSVP) attendees.
42 44
43Made the week-month mode changing in month view faster. 45Made the week-month mode changing in month view faster.
44 46
45Made month view better useable with keyboard. 47Made month view better useable with keyboard.
46Now TAB key jumps to next cell with an event/todo. 48Now TAB key jumps to next cell with an event/todo.
47Scroll in cell with coursor keys, scroll in time (next week) with 49Scroll in cell with coursor keys, scroll in time (next week) with
48Shift/Control + coursorkeys. 50Shift/Control + coursorkeys.
49 51
50Fixed bug that the todo view flat mode was reset after first view update. 52Fixed bug that the todo view flat mode was reset after first view update.
51 53
52If a todo is displayed closed in the todo view, 54If a todo is displayed closed in the todo view,
53it is now displayed in overdue/due today color depending on the subtodos overdue/due today properties. 55it is now displayed in overdue/due today color depending on the subtodos overdue/due today properties.
54 56
55Added info about the numbers of years to the caption (title) information about a birthday event. 57Added info about the numbers of years to the caption (title) information about a birthday event.
56 58
57Made completion date in todo editor editable. 59Made completion date in todo editor editable.
58 60
59Added possibility to save/load templates for journals. 61Added possibility to save/load templates for journals.
60(Which is just a simple "save text to file" or "insert text from file". 62(Which is just a simple "save text to file" or "insert text from file".
61 63
62********** VERSION 2.0.2 ************ 64********** VERSION 2.0.2 ************
63 65
64KO/Pi: 66KO/Pi:
65Fixed the layout problem of the day label buttons 67Fixed the layout problem of the day label buttons
66of the agenda view introduced in version 2.0.1. 68of the agenda view introduced in version 2.0.1.
67 69
68Added WhatsThis support for the todo view and the list view. 70Added WhatsThis support for the todo view and the list view.
69 71
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt
index 57b2fda..5335f47 100644
--- a/bin/kdepim/kaddressbook/germantranslation.txt
+++ b/bin/kdepim/kaddressbook/germantranslation.txt
@@ -657,72 +657,101 @@
657{ "Include contacts, that are:","Schließe folgende Kontakte ein:" }, 657{ "Include contacts, that are:","Schließe folgende Kontakte ein:" },
658{ "public","Öffentlich" }, 658{ "public","Öffentlich" },
659{ "private","Privat" }, 659{ "private","Privat" },
660{ "confidential","Vertraulich" }, 660{ "confidential","Vertraulich" },
661{ "Configure Resources","Konfiguriere Resourcen" }, 661{ "Configure Resources","Konfiguriere Resourcen" },
662{ "Resource Configuration","Resource Konfiguration" }, 662{ "Resource Configuration","Resource Konfiguration" },
663{ "Resources","Resourcen" }, 663{ "Resources","Resourcen" },
664{ "Standard","Standard" }, 664{ "Standard","Standard" },
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" },
722{ "Februar","Februar" },
723{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " },
724{ "Password for remote access:","Passwort für fernen Zugriff:" },
725{ "Remote IP address:","Ferne IP Adresse:" },
726{ "Remote port number:","Ferne Port Nummer:" },
727{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." },
728{ "Remote from: ","Fern 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" },
731{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
732{ "Write back","Schreibe zurück" },
733{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
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." },
736{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
737{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
738{ "Sending file...","Sende Datei..." },
739{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
740{ "Receiving synced file...","Gesyncte Daten erhalten..." },
741{ "Received %1 bytes","%1 Bytes erhalten" },
742{ "Writing file to disk...","Speichere Datei..." },
743{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
744{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
745{ "Synchronize!","Synchronisiere!" },
746{ "High clock skew!","Großer Uhrzeitunterschied!" },
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!" },
749{ "","" },
721{ "","" }, 750{ "","" },
722{ "","" }, 751{ "","" },
723{ "","" }, 752{ "","" },
724{ "","" }, 753{ "","" },
725{ "","" }, 754{ "","" },
726{ "","" }, 755{ "","" },
727{ "","" }, 756{ "","" },
728{ "","" }, \ No newline at end of file 757{ "","" }, \ No newline at end of file
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 6587eaa..c85ca35 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1174,71 +1174,111 @@
1174{ "Include","Inclusive" }, 1174{ "Include","Inclusive" },
1175{ "Exclude","Exclusive" }, 1175{ "Exclude","Exclusive" },
1176{ "Edit Selection...","Editiere Auswahl" }, 1176{ "Edit Selection...","Editiere Auswahl" },
1177{ "recurring events","wiederholende Termine" }, 1177{ "recurring events","wiederholende Termine" },
1178{ "recurr. events","wiederh.Termine" }, 1178{ "recurr. events","wiederh.Termine" },
1179{ "completed to-dos","erledigte Todos" }, 1179{ "completed to-dos","erledigte Todos" },
1180{ "events","Termine" }, 1180{ "events","Termine" },
1181{ "todos","Todos" }, 1181{ "todos","Todos" },
1182{ "journals","Journale" }, 1182{ "journals","Journale" },
1183{ "public","öffentl." }, 1183{ "public","öffentl." },
1184{ "private","privat" }, 1184{ "private","privat" },
1185{ "confidential","vertraul." }, 1185{ "confidential","vertraul." },
1186{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Unter-Todos.\nAlle erledigten Unter-Todos\nwerden auch gelöscht!" }, 1186{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Unter-Todos.\nAlle erledigten Unter-Todos\nwerden auch gelöscht!" },
1187{ "Yesterday","Gestern" }, 1187{ "Yesterday","Gestern" },
1188{ "Day after tomorrow","Übermorgen" }, 1188{ "Day after tomorrow","Übermorgen" },
1189{ "Tomorrow","Morgen" }, 1189{ "Tomorrow","Morgen" },
1190{ "Day before yesterday","Vorgestern" }, 1190{ "Day before yesterday","Vorgestern" },
1191{ "Size %1","Größe %1" }, 1191{ "Size %1","Größe %1" },
1192{ "New Agendasize: %1","Neue Agendagröße: %1" }, 1192{ "New Agendasize: %1","Neue Agendagröße: %1" },
1193{ " (%1 y.)"," (%1 J.)" }, 1193{ " (%1 y.)"," (%1 J.)" },
1194{ "Allday:","Ganztägig:" }, 1194{ "Allday:","Ganztägig:" },
1195{ "compl.todos","erled.Todos" }, 1195{ "compl.todos","erled.Todos" },
1196{ "Day view","Tagesansicht" }, 1196{ "Day view","Tagesansicht" },
1197{ "Next days","Nächste Tage" }, 1197{ "Next days","Nächste Tage" },
1198{ "Next week","Nächste Woche" }, 1198{ "Next week","Nächste Woche" },
1199{ "Next two weeks","Nächste zwei Wochen" }, 1199{ "Next two weeks","Nächste zwei Wochen" },
1200{ "Next month","Nächster Monat" }, 1200{ "Next month","Nächster Monat" },
1201{ "Journal view","Journal" }, 1201{ "Journal view","Journal" },
1202{ "Display all opened","Zeige alle geöffnet" }, 1202{ "Display all opened","Zeige alle geöffnet" },
1203{ "Display all closed","Zeige alle geschlossen" }, 1203{ "Display all closed","Zeige alle geschlossen" },
1204{ "Display all flat","Zeige alle flach" }, 1204{ "Display all flat","Zeige alle flach" },
1205{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, 1205{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" },
1206{ "Default todo done color:","Standard Todo erledigt Farbe" }, 1206{ "Default todo done color:","Standard Todo erledigt Farbe" },
1207{ "Select week %1-%2","Wähle Woche %1-%2" }, 1207{ "Select week %1-%2","Wähle Woche %1-%2" },
1208{ "Select Week","Wähle Woche" }, 1208{ "Select Week","Wähle Woche" },
1209{ "Set alarm for selected...","Setze Alarm für Selekt..." }, 1209{ "Set alarm for selected...","Setze Alarm für Selekt..." },
1210{ "Set Alarm!","Setze Alarm!" }, 1210{ "Set Alarm!","Setze Alarm!" },
1211{ "Canged alarm for %1 items","Alarm für %1 Items geändert" }, 1211{ "Canged alarm for %1 items","Alarm für %1 Items geändert" },
1212{ " and "," und " }, 1212{ " and "," und " },
1213{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, 1213{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" },
1214{ "Mail to selected","Mail an Ausgewählte" }, 1214{ "Mail to selected","Mail an Ausgewählte" },
1215{ "Mail to all","Mail an Alle" }, 1215{ "Mail to all","Mail an Alle" },
1216{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, 1216{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" },
1217{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, 1217{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" },
1218{ " on"," am" }, 1218{ " on"," am" },
1219{ " completed on "," erledigt am " }, 1219{ " completed on "," erledigt am " },
1220{ "Save as Event template","Speichere als Vorlage" }, 1220{ "Save as Event template","Speichere als Vorlage" },
1221{ "Load Event template","Lade Termin Vorlage" }, 1221{ "Load Event template","Lade Termin Vorlage" },
1222{ "Save as Journal template","Speichere als Journal Vorlage" }, 1222{ "Save as Journal template","Speichere als Journal Vorlage" },
1223{ "Insert Journal template","Füge Journal Vorlage ein" }, 1223{ "Insert Journal template","Füge Journal Vorlage ein" },
1224{ "Sub todos:<br>","Unter Todos:<br>" }, 1224{ "Sub todos:<br>","Unter Todos:<br>" },
1225{ "Parent todo:<br>","Über Todo:<br>" }, 1225{ "Parent todo:<br>","Über Todo:<br>" },
1226{ "Set current as color category","Setze Gewählte als Farbkategorie" }, 1226{ "Set current as color category","Setze Gewählte als Farbkategorie" },
1227{ " completed"," erledigt" }, 1227{ " completed"," erledigt" },
1228{ "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.net --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.net --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" }, 1228{ "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.net --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.net --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" },
1229{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, 1229{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." },
1230{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, 1230{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." },
1231{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, 1231{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." },
1232{ "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?" }, 1232{ "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?" },
1233{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, 1233{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." },
1234{ "Error","Fehler" }, 1234{ "Error","Fehler" },
1235{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, 1235{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." },
1236{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, 1236{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." },
1237{ "Warning","Warnung" }, 1237{ "Warning","Warnung" },
1238{ "Select week number","Wähle Wochen Nummer" },
1239{ "Februar","Februar" },
1240{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" },
1241{ "W","W" },
1242{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" },
1243{ "T: %1","T: %1" },
1244{ "Start: ","Start: " },
1245{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " },
1246{ "Password for remote access:","Passwort für fernen Zugriff:" },
1247{ "Remote IP address:","Ferne IP Adresse:" },
1248{ "Remote port number:","Ferne Port Nummer:" },
1249{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." },
1250{ "Remote from: ","Fern von: " },
1251{ "Local from: ","Lokal von: " },
1252{ "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" },
1253{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
1254{ "Write back","Schreibe zurück" },
1255{ "KO/Pi Synchronization","KO/Pi Synchronisation" },
1256{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
1257{ "Received sync request","Sync Anfrage erhalten" },
1258{ "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." },
1259{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
1260{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
1261{ "Sending file...","Sende Datei..." },
1262{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
1263{ "Receiving synced file...","Gesyncte Daten erhalten..." },
1264{ "Received %1 bytes","%1 Bytes erhalten" },
1265{ "Writing file to disk...","Speichere Datei..." },
1266{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
1267{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
1268{ "Synchronize!","Synchronisiere!" },
1269{ "High clock skew!","Großer Uhrzeitunterschied!" },
1270{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
1271{ "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!" },
1272{ "","" },
1273{ "","" },
1274{ "","" },
1275{ "","" },
1276{ "","" },
1277{ "","" },
1238{ "","" }, 1278{ "","" },
1239{ "","" }, 1279{ "","" },
1240{ "","" }, 1280{ "","" },
1241{ "","" }, 1281{ "","" },
1242{ "","" }, 1282{ "","" },
1243{ "","" }, 1283{ "","" },
1244{ "","" }, \ No newline at end of file 1284{ "","" }, \ No newline at end of file
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index a8e4de5..1b17665 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -3073,129 +3073,130 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
3073 inL.removeID(mCurrentSyncDevice ); 3073 inL.removeID(mCurrentSyncDevice );
3074 ++addedAddresseeR; 3074 ++addedAddresseeR;
3075 inL.setRevision( modifiedCalendar ); 3075 inL.setRevision( modifiedCalendar );
3076 local->insertAddressee( inL, false ); 3076 local->insertAddressee( inL, false );
3077 inR = inL; 3077 inR = inL;
3078 inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); 3078 inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL );
3079 inR.setResource( 0 ); 3079 inR.setResource( 0 );
3080 remote->insertAddressee( inR, false ); 3080 remote->insertAddressee( inR, false );
3081 } 3081 }
3082 } 3082 }
3083 } else { 3083 } else {
3084 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { 3084 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) {
3085 //qDebug("data %s ", inL.revision().toString().latin1()); 3085 //qDebug("data %s ", inL.revision().toString().latin1());
3086 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 3086 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
3087 local->removeAddressee( inL ); 3087 local->removeAddressee( inL );
3088 ++deletedAddresseeL; 3088 ++deletedAddresseeL;
3089 } else { 3089 } else {
3090 if ( ! syncManager->mWriteBackExistingOnly ) { 3090 if ( ! syncManager->mWriteBackExistingOnly ) {
3091 ++addedAddresseeR; 3091 ++addedAddresseeR;
3092 inL.setRevision( modifiedCalendar ); 3092 inL.setRevision( modifiedCalendar );
3093 local->insertAddressee( inL, false ); 3093 local->insertAddressee( inL, false );
3094 inR = inL; 3094 inR = inL;
3095 inR.setIDStr( ":" ); 3095 inR.setIDStr( ":" );
3096 inR.setResource( 0 ); 3096 inR.setResource( 0 );
3097 remote->insertAddressee( inR, false ); 3097 remote->insertAddressee( inR, false );
3098 } 3098 }
3099 } 3099 }
3100 } 3100 }
3101 } else { 3101 } else {
3102 ++filteredOUT; 3102 ++filteredOUT;
3103 } 3103 }
3104 } 3104 }
3105 } 3105 }
3106 } 3106 }
3107 ++incCounter; 3107 ++incCounter;
3108 } 3108 }
3109 el.clear(); 3109 el.clear();
3110 syncManager->hideProgressBar(); 3110 syncManager->hideProgressBar();
3111 mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 ); 3111 mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 );
3112 // get rid of micro seconds 3112 // get rid of micro seconds
3113 QTime t = mLastAddressbookSync.time(); 3113 QTime t = mLastAddressbookSync.time();
3114 mLastAddressbookSync.setTime( QTime (t.hour (), t.minute (), t.second () ) ); 3114 mLastAddressbookSync.setTime( QTime (t.hour (), t.minute (), t.second () ) );
3115 addresseeLSync.setRevision( mLastAddressbookSync ); 3115 addresseeLSync.setRevision( mLastAddressbookSync );
3116 addresseeRSync.setRevision( mLastAddressbookSync ); 3116 addresseeRSync.setRevision( mLastAddressbookSync );
3117 addresseeRSync.setRole( i18n("!Remote from: ")+mCurrentSyncName ) ; 3117 addresseeRSync.setRole( i18n("!Remote from: ")+mCurrentSyncName ) ;
3118 addresseeLSync.setRole(i18n("!Local from: ") + mCurrentSyncName ); 3118 addresseeLSync.setRole(i18n("!Local from: ") + mCurrentSyncName );
3119 addresseeRSync.setGivenName( i18n("!DO NOT EDIT!") ) ; 3119 addresseeRSync.setGivenName( i18n("!DO NOT EDIT!") ) ;
3120 addresseeLSync.setGivenName(i18n("!DO NOT EDIT!") ); 3120 addresseeLSync.setGivenName(i18n("!DO NOT EDIT!") );
3121 addresseeRSync.setOrganization( "!"+mLastAddressbookSync.toString() ) ; 3121 addresseeRSync.setOrganization( "!"+mLastAddressbookSync.toString() ) ;
3122 addresseeLSync.setOrganization("!"+ mLastAddressbookSync.toString() ); 3122 addresseeLSync.setOrganization("!"+ mLastAddressbookSync.toString() );
3123 addresseeRSync.setNote( "" ) ; 3123 addresseeRSync.setNote( "" ) ;
3124 addresseeLSync.setNote( "" ); 3124 addresseeLSync.setNote( "" );
3125 3125
3126 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 3126 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
3127 remote->insertAddressee( addresseeRSync, false ); 3127 remote->insertAddressee( addresseeRSync, false );
3128 local->insertAddressee( addresseeLSync, false ); 3128 local->insertAddressee( addresseeLSync, false );
3129 QString mes; 3129 QString mes;
3130 mes .sprintf( i18n("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"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR, filteredIN, filteredOUT ); 3130 mes .sprintf( i18n("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"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR, filteredIN, filteredOUT );
3131 qDebug( mes ); 3131 qDebug( mes );
3132 mes = i18n("Local addressbook changed!\n") +mes; 3132 mes = i18n("Local addressbook changed!\n") +mes;
3133 if ( syncManager->mShowSyncSummary ) { 3133 if ( syncManager->mShowSyncSummary ) {
3134 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes, 3134 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes,
3135 i18n("KA/Pi Synchronization"),i18n("Write back"))) { 3135 i18n("KA/Pi Synchronization"),i18n("Write back"))) {
3136 qDebug("KA: WB cancelled "); 3136 qDebug("KA: WB cancelled ");
3137 return false; 3137 syncManager->mWriteBackFile = false;
3138 return syncOK;
3138 } 3139 }
3139 } 3140 }
3140 return syncOK; 3141 return syncOK;
3141} 3142}
3142 3143
3143 3144
3144//this is a overwritten callbackmethods from the syncinterface 3145//this is a overwritten callbackmethods from the syncinterface
3145bool KABCore::sync(KSyncManager* manager, QString filename, int mode) 3146bool KABCore::sync(KSyncManager* manager, QString filename, int mode)
3146{ 3147{
3147 3148
3148 //pending prepare addresseeview for output 3149 //pending prepare addresseeview for output
3149 //pending detect, if remote file has REV field. if not switch to external sync 3150 //pending detect, if remote file has REV field. if not switch to external sync
3150 mGlobalSyncMode = SYNC_MODE_NORMAL; 3151 mGlobalSyncMode = SYNC_MODE_NORMAL;
3151 if ( manager != syncManager ) 3152 if ( manager != syncManager )
3152 qDebug("KABCore::sync:: ERROR! :: manager != syncManager "); 3153 qDebug("KABCore::sync:: ERROR! :: manager != syncManager ");
3153 QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); 3154 QString mCurrentSyncDevice = manager->getCurrentSyncDevice();
3154 3155
3155 AddressBook abLocal(filename,"syncContact"); 3156 AddressBook abLocal(filename,"syncContact");
3156 bool syncOK = false; 3157 bool syncOK = false;
3157 if ( abLocal.load() ) { 3158 if ( abLocal.load() ) {
3158 qDebug("KA: Sync::AB loaded %s,sync mode %d",filename.latin1(), mode ); 3159 qDebug("KA: Sync::AB loaded %s,sync mode %d",filename.latin1(), mode );
3159 bool external = false; 3160 bool external = false;
3160 bool isXML = false; 3161 bool isXML = false;
3161 if ( filename.right(4) == ".xml") { 3162 if ( filename.right(4) == ".xml") {
3162 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 3163 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
3163 isXML = true; 3164 isXML = true;
3164 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); 3165 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true );
3165 } else { 3166 } else {
3166 external = !manager->mIsKapiFile; 3167 external = !manager->mIsKapiFile;
3167 if ( external ) { 3168 if ( external ) {
3168 qDebug("KA: Sync::Setting vcf mode to external "); 3169 qDebug("KA: Sync::Setting vcf mode to external ");
3169 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 3170 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
3170 AddressBook::Iterator it; 3171 AddressBook::Iterator it;
3171 for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { 3172 for ( it = abLocal.begin(); it != abLocal.end(); ++it ) {
3172 (*it).setID( mCurrentSyncDevice, (*it).uid() ); 3173 (*it).setID( mCurrentSyncDevice, (*it).uid() );
3173 (*it).computeCsum( mCurrentSyncDevice ); 3174 (*it).computeCsum( mCurrentSyncDevice );
3174 } 3175 }
3175 } 3176 }
3176 } 3177 }
3177 //AddressBook::Iterator it; 3178 //AddressBook::Iterator it;
3178 //QStringList vcards; 3179 //QStringList vcards;
3179 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { 3180 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) {
3180 // qDebug("Name %s ", (*it).familyName().latin1()); 3181 // qDebug("Name %s ", (*it).familyName().latin1());
3181 //} 3182 //}
3182 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); 3183 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode );
3183 if ( syncOK ) { 3184 if ( syncOK ) {
3184 if ( syncManager->mWriteBackFile ) 3185 if ( syncManager->mWriteBackFile )
3185 { 3186 {
3186 if ( external ) 3187 if ( external )
3187 abLocal.removeSyncAddressees( !isXML); 3188 abLocal.removeSyncAddressees( !isXML);
3188 qDebug("KA: Sync::Saving remote AB "); 3189 qDebug("KA: Sync::Saving remote AB ");
3189 if ( ! abLocal.saveAB()) 3190 if ( ! abLocal.saveAB())
3190 qDebug("KA: sync::Error writing back AB to file "); 3191 qDebug("KA: sync::Error writing back AB to file ");
3191 if ( external ) { 3192 if ( external ) {
3192 // afterwrite processing 3193 // afterwrite processing
3193 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ,isXML); 3194 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ,isXML);
3194 } 3195 }
3195 } 3196 }
3196 } 3197 }
3197 setModified(); 3198 setModified();
3198 3199
3199 } 3200 }
3200 abLocal.removeResources(); 3201 abLocal.removeResources();
3201 if ( syncOK ) 3202 if ( syncOK )
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index a9de65a..7c8316f 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1166,129 +1166,130 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1166 inL = el.next(); 1166 inL = el.next();
1167 } 1167 }
1168 int delFut = 0; 1168 int delFut = 0;
1169 int remRem = 0; 1169 int remRem = 0;
1170 if ( mSyncManager->mWriteBackInFuture ) { 1170 if ( mSyncManager->mWriteBackInFuture ) {
1171 er = remote->rawIncidences(); 1171 er = remote->rawIncidences();
1172 remRem = er.count(); 1172 remRem = er.count();
1173 inR = er.first(); 1173 inR = er.first();
1174 QDateTime dt; 1174 QDateTime dt;
1175 QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) ); 1175 QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) );
1176 QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 ); 1176 QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 );
1177 while ( inR ) { 1177 while ( inR ) {
1178 if ( inR->type() == "Todo" ) { 1178 if ( inR->type() == "Todo" ) {
1179 Todo * t = (Todo*)inR; 1179 Todo * t = (Todo*)inR;
1180 if ( t->hasDueDate() ) 1180 if ( t->hasDueDate() )
1181 dt = t->dtDue(); 1181 dt = t->dtDue();
1182 else 1182 else
1183 dt = cur.addSecs( 62 ); 1183 dt = cur.addSecs( 62 );
1184 } 1184 }
1185 else if (inR->type() == "Event" ) { 1185 else if (inR->type() == "Event" ) {
1186 bool ok; 1186 bool ok;
1187 dt = inR->getNextOccurence( cur, &ok ); 1187 dt = inR->getNextOccurence( cur, &ok );
1188 if ( !ok ) 1188 if ( !ok )
1189 dt = cur.addSecs( -62 ); 1189 dt = cur.addSecs( -62 );
1190 } 1190 }
1191 else 1191 else
1192 dt = inR->dtStart(); 1192 dt = inR->dtStart();
1193 if ( dt < cur || dt > end ) { 1193 if ( dt < cur || dt > end ) {
1194 remote->deleteIncidence( inR ); 1194 remote->deleteIncidence( inR );
1195 ++delFut; 1195 ++delFut;
1196 } 1196 }
1197 inR = er.next(); 1197 inR = er.next();
1198 } 1198 }
1199 } 1199 }
1200 bar.hide(); 1200 bar.hide();
1201 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1201 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1202 eventLSync->setReadOnly( false ); 1202 eventLSync->setReadOnly( false );
1203 eventLSync->setDtStart( mLastCalendarSync ); 1203 eventLSync->setDtStart( mLastCalendarSync );
1204 eventRSync->setDtStart( mLastCalendarSync ); 1204 eventRSync->setDtStart( mLastCalendarSync );
1205 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1205 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1206 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1206 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1207 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1207 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1208 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1208 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1209 eventLSync->setReadOnly( true ); 1209 eventLSync->setReadOnly( true );
1210 qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL ); 1210 qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL );
1211 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal... 1211 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal...
1212 remote->addEvent( eventRSync ); 1212 remote->addEvent( eventRSync );
1213 else 1213 else
1214 delete eventRSync; 1214 delete eventRSync;
1215 qDebug("KO: Sync with desktop %d ",mSyncManager->syncWithDesktop() ); 1215 qDebug("KO: Sync with desktop %d ",mSyncManager->syncWithDesktop() );
1216 QString mes; 1216 QString mes;
1217 mes .sprintf( i18n("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"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR, filteredIN, filteredOUT ); 1217 mes .sprintf( i18n("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"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR, filteredIN, filteredOUT );
1218 QString delmess; 1218 QString delmess;
1219 if ( delFut ) { 1219 if ( delFut ) {
1220 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are more\nthan %d weeks in the past or\nmore than %d weeks in the future.\nAfter skipping, remote has\n%d calendar/todo items."), delFut,mSyncManager->mWriteBackInPast,mSyncManager->mWriteBackInFuture, remRem-delFut); 1220 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are more\nthan %d weeks in the past or\nmore than %d weeks in the future.\nAfter skipping, remote has\n%d calendar/todo items."), delFut,mSyncManager->mWriteBackInPast,mSyncManager->mWriteBackInFuture, remRem-delFut);
1221 mes += delmess; 1221 mes += delmess;
1222 } 1222 }
1223 mes = i18n("Local calendar changed!\n") +mes; 1223 mes = i18n("Local calendar changed!\n") +mes;
1224 mCalendar->checkAlarmForIncidence( 0, true ); 1224 mCalendar->checkAlarmForIncidence( 0, true );
1225 qDebug( mes ); 1225 qDebug( mes );
1226 if ( mSyncManager->mShowSyncSummary ) { 1226 if ( mSyncManager->mShowSyncSummary ) {
1227 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes, 1227 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes,
1228 i18n("KO/Pi Synchronization"),i18n("Write back"))) { 1228 i18n("KO/Pi Synchronization"),i18n("Write back"))) {
1229 qDebug("KO: WB cancelled "); 1229 qDebug("KO: WB cancelled ");
1230 return false; 1230 mSyncManager->mWriteBackFile = false;
1231 return syncOK;
1231 } 1232 }
1232 } 1233 }
1233 return syncOK; 1234 return syncOK;
1234} 1235}
1235 1236
1236void CalendarView::setSyncDevice( QString s ) 1237void CalendarView::setSyncDevice( QString s )
1237{ 1238{
1238 mCurrentSyncDevice= s; 1239 mCurrentSyncDevice= s;
1239} 1240}
1240void CalendarView::setSyncName( QString s ) 1241void CalendarView::setSyncName( QString s )
1241{ 1242{
1242 mCurrentSyncName= s; 1243 mCurrentSyncName= s;
1243} 1244}
1244bool CalendarView::syncCalendar(QString filename, int mode) 1245bool CalendarView::syncCalendar(QString filename, int mode)
1245{ 1246{
1246 //qDebug("syncCalendar %s ", filename.latin1()); 1247 //qDebug("syncCalendar %s ", filename.latin1());
1247 mGlobalSyncMode = SYNC_MODE_NORMAL; 1248 mGlobalSyncMode = SYNC_MODE_NORMAL;
1248 CalendarLocal* calendar = new CalendarLocal(); 1249 CalendarLocal* calendar = new CalendarLocal();
1249 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1250 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1250 FileStorage* storage = new FileStorage( calendar ); 1251 FileStorage* storage = new FileStorage( calendar );
1251 bool syncOK = false; 1252 bool syncOK = false;
1252 storage->setFileName( filename ); 1253 storage->setFileName( filename );
1253 // qDebug("loading ... "); 1254 // qDebug("loading ... ");
1254 if ( storage->load() ) { 1255 if ( storage->load() ) {
1255 getEventViewerDialog()->setSyncMode( true ); 1256 getEventViewerDialog()->setSyncMode( true );
1256 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1257 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1257 getEventViewerDialog()->setSyncMode( false ); 1258 getEventViewerDialog()->setSyncMode( false );
1258 if ( syncOK ) { 1259 if ( syncOK ) {
1259 if ( mSyncManager->mWriteBackFile ) 1260 if ( mSyncManager->mWriteBackFile )
1260 { 1261 {
1261 storage->setSaveFormat( new ICalFormat() ); 1262 storage->setSaveFormat( new ICalFormat() );
1262 storage->save(); 1263 storage->save();
1263 } 1264 }
1264 } 1265 }
1265 setModified( true ); 1266 setModified( true );
1266 } 1267 }
1267 delete storage; 1268 delete storage;
1268 delete calendar; 1269 delete calendar;
1269 if ( syncOK ) 1270 if ( syncOK )
1270 updateView(); 1271 updateView();
1271 return syncOK; 1272 return syncOK;
1272} 1273}
1273 1274
1274void CalendarView::syncExternal( int mode ) 1275void CalendarView::syncExternal( int mode )
1275{ 1276{
1276 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1277 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1277 1278
1278 qApp->processEvents(); 1279 qApp->processEvents();
1279 CalendarLocal* calendar = new CalendarLocal(); 1280 CalendarLocal* calendar = new CalendarLocal();
1280 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1281 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1281 bool syncOK = false; 1282 bool syncOK = false;
1282 bool loadSuccess = false; 1283 bool loadSuccess = false;
1283 PhoneFormat* phoneFormat = 0; 1284 PhoneFormat* phoneFormat = 0;
1284 emit tempDisableBR(true); 1285 emit tempDisableBR(true);
1285#ifndef DESKTOP_VERSION 1286#ifndef DESKTOP_VERSION
1286 SharpFormat* sharpFormat = 0; 1287 SharpFormat* sharpFormat = 0;
1287 if ( mode == 0 ) { // sharp 1288 if ( mode == 0 ) { // sharp
1288 sharpFormat = new SharpFormat () ; 1289 sharpFormat = new SharpFormat () ;
1289 loadSuccess = sharpFormat->load( calendar, mCalendar ); 1290 loadSuccess = sharpFormat->load( calendar, mCalendar );
1290 1291
1291 } else 1292 } else
1292#endif 1293#endif
1293 if ( mode == 1 ) { // phone 1294 if ( mode == 1 ) { // phone
1294 phoneFormat = new PhoneFormat (mCurrentSyncDevice, 1295 phoneFormat = new PhoneFormat (mCurrentSyncDevice,
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index c8d0e0d..02e5587 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -1026,266 +1026,267 @@ QString KSyncManager::syncFileName()
1026 switch(mTargetApp) 1026 switch(mTargetApp)
1027 { 1027 {
1028 case (KAPI): 1028 case (KAPI):
1029 fn = "tempsyncab.vcf"; 1029 fn = "tempsyncab.vcf";
1030 break; 1030 break;
1031 case (KOPI): 1031 case (KOPI):
1032 fn = "tempsynccal.ics"; 1032 fn = "tempsynccal.ics";
1033 break; 1033 break;
1034 case (PWMPI): 1034 case (PWMPI):
1035 fn = "tempsyncpw.pwm"; 1035 fn = "tempsyncpw.pwm";
1036 break; 1036 break;
1037 default: 1037 default:
1038 break; 1038 break;
1039 } 1039 }
1040#ifdef _WIN32_ 1040#ifdef _WIN32_
1041 return locateLocal( "tmp", fn ); 1041 return locateLocal( "tmp", fn );
1042#else 1042#else
1043 return (QString( "/tmp/" )+ fn ); 1043 return (QString( "/tmp/" )+ fn );
1044#endif 1044#endif
1045} 1045}
1046 1046
1047void KSyncManager::syncPi() 1047void KSyncManager::syncPi()
1048{ 1048{
1049 mIsKapiFile = true; 1049 mIsKapiFile = true;
1050 mPisyncFinished = false; 1050 mPisyncFinished = false;
1051 qApp->processEvents(); 1051 qApp->processEvents();
1052 if ( mAskForPreferences ) 1052 if ( mAskForPreferences )
1053 if ( !edit_pisync_options()) { 1053 if ( !edit_pisync_options()) {
1054 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 1054 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
1055 return; 1055 return;
1056 } 1056 }
1057 bool ok; 1057 bool ok;
1058 Q_UINT16 port = mActiveSyncPort.toUInt(&ok); 1058 Q_UINT16 port = mActiveSyncPort.toUInt(&ok);
1059 if ( ! ok ) { 1059 if ( ! ok ) {
1060 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 1060 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
1061 return; 1061 return;
1062 } 1062 }
1063 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1063 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1064 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1064 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1065 commandSocket->readFile( syncFileName() ); 1065 commandSocket->readFile( syncFileName() );
1066} 1066}
1067 1067
1068void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) 1068void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
1069{ 1069{
1070 //enum { success, errorW, errorR, quiet }; 1070 //enum { success, errorW, errorR, quiet };
1071 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) { 1071 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) {
1072 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); 1072 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") );
1073 delete s; 1073 delete s;
1074 if ( state == KCommandSocket::errorR ) { 1074 if ( state == KCommandSocket::errorR ) {
1075 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget()); 1075 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget());
1076 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1076 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1077 commandSocket->sendStop(); 1077 commandSocket->sendStop();
1078 } 1078 }
1079 mPisyncFinished = true; 1079 mPisyncFinished = true;
1080 return; 1080 return;
1081 1081
1082 } else if ( state == KCommandSocket::errorW ) { 1082 } else if ( state == KCommandSocket::errorW ) {
1083 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); 1083 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") );
1084 mPisyncFinished = true; 1084 mPisyncFinished = true;
1085 1085
1086 } else if ( state == KCommandSocket::successR ) { 1086 } else if ( state == KCommandSocket::successR ) {
1087 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); 1087 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
1088 1088
1089 } else if ( state == KCommandSocket::successW ) { 1089 } else if ( state == KCommandSocket::successW ) {
1090 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1090 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") );
1091 mPisyncFinished = true; 1091 mPisyncFinished = true;
1092 } 1092 }
1093 1093
1094 delete s; 1094 delete s;
1095} 1095}
1096 1096
1097void KSyncManager::readFileFromSocket() 1097void KSyncManager::readFileFromSocket()
1098{ 1098{
1099 QString fileName = syncFileName(); 1099 QString fileName = syncFileName();
1100 bool syncOK = true;
1100 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") ); 1101 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") );
1101 if ( ! syncWithFile( fileName , true ) ) { 1102 if ( ! syncWithFile( fileName , true ) ) {
1102 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); 1103 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") );
1103 mPisyncFinished = true; 1104 syncOK = false;
1104 return;
1105 } 1105 }
1106 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() ); 1106 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() );
1107 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1107 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1108 if ( mWriteBackFile ) 1108 if ( mWriteBackFile && syncOK )
1109 commandSocket->writeFile( fileName ); 1109 commandSocket->writeFile( fileName );
1110 else { 1110 else {
1111 commandSocket->sendStop(); 1111 commandSocket->sendStop();
1112 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1112 if ( syncOK )
1113 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") );
1113 mPisyncFinished = true; 1114 mPisyncFinished = true;
1114 } 1115 }
1115} 1116}
1116 1117
1117KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 1118KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
1118{ 1119{
1119 mPassWord = pw; 1120 mPassWord = pw;
1120 mSocket = 0; 1121 mSocket = 0;
1121 mSyncActionDialog = 0; 1122 mSyncActionDialog = 0;
1122 blockRC = false; 1123 blockRC = false;
1123} 1124}
1124 1125
1125void KServerSocket::newConnection ( int socket ) 1126void KServerSocket::newConnection ( int socket )
1126{ 1127{
1127 // qDebug("KServerSocket:New connection %d ", socket); 1128 // qDebug("KServerSocket:New connection %d ", socket);
1128 if ( mSocket ) { 1129 if ( mSocket ) {
1129 qDebug("KSS::newConnection Socket deleted! "); 1130 qDebug("KSS::newConnection Socket deleted! ");
1130 delete mSocket; 1131 delete mSocket;
1131 mSocket = 0; 1132 mSocket = 0;
1132 } 1133 }
1133 mSocket = new QSocket( this ); 1134 mSocket = new QSocket( this );
1134 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1135 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1135 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1136 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1136 mSocket->setSocket( socket ); 1137 mSocket->setSocket( socket );
1137} 1138}
1138 1139
1139void KServerSocket::discardClient() 1140void KServerSocket::discardClient()
1140{ 1141{
1141 //qDebug(" KServerSocket::discardClient()"); 1142 //qDebug(" KServerSocket::discardClient()");
1142 if ( mSocket ) { 1143 if ( mSocket ) {
1143 delete mSocket; 1144 delete mSocket;
1144 mSocket = 0; 1145 mSocket = 0;
1145 } 1146 }
1146 //emit endConnect(); 1147 //emit endConnect();
1147} 1148}
1148void KServerSocket::readClient() 1149void KServerSocket::readClient()
1149{ 1150{
1150 if ( blockRC ) 1151 if ( blockRC )
1151 return; 1152 return;
1152 if ( mSocket == 0 ) { 1153 if ( mSocket == 0 ) {
1153 qDebug("ERROR::KSS::readClient(): mSocket == 0 "); 1154 qDebug("ERROR::KSS::readClient(): mSocket == 0 ");
1154 return; 1155 return;
1155 } 1156 }
1156 //qDebug("KServerSocket::readClient()"); 1157 //qDebug("KServerSocket::readClient()");
1157 if ( mSocket->canReadLine() ) { 1158 if ( mSocket->canReadLine() ) {
1158 QString line = mSocket->readLine(); 1159 QString line = mSocket->readLine();
1159 //qDebug("KServerSocket readline: %s ", line.latin1()); 1160 //qDebug("KServerSocket readline: %s ", line.latin1());
1160 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line ); 1161 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line );
1161 if ( tokens[0] == "GET" ) { 1162 if ( tokens[0] == "GET" ) {
1162 if ( tokens[1] == mPassWord ) { 1163 if ( tokens[1] == mPassWord ) {
1163 //emit sendFile( mSocket ); 1164 //emit sendFile( mSocket );
1164 bool ok = false; 1165 bool ok = false;
1165 QDateTime dt = KGlobal::locale()->readDateTime( tokens[2], KLocale::ISODate, &ok); 1166 QDateTime dt = KGlobal::locale()->readDateTime( tokens[2], KLocale::ISODate, &ok);
1166 if ( ok ) { 1167 if ( ok ) {
1167 KSyncManager::mRequestedSyncEvent = dt; 1168 KSyncManager::mRequestedSyncEvent = dt;
1168 } 1169 }
1169 else 1170 else
1170 KSyncManager::mRequestedSyncEvent = QDateTime(); 1171 KSyncManager::mRequestedSyncEvent = QDateTime();
1171 send_file(); 1172 send_file();
1172 } 1173 }
1173 else { 1174 else {
1174 KMessageBox::error( 0, i18n("Got send file request\nwith invalid password")); 1175 KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"));
1175 //qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); 1176 //qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() );
1176 } 1177 }
1177 } 1178 }
1178 if ( tokens[0] == "PUT" ) { 1179 if ( tokens[0] == "PUT" ) {
1179 if ( tokens[1] == mPassWord ) { 1180 if ( tokens[1] == mPassWord ) {
1180 //emit getFile( mSocket ); 1181 //emit getFile( mSocket );
1181 blockRC = true; 1182 blockRC = true;
1182 get_file(); 1183 get_file();
1183 } 1184 }
1184 else { 1185 else {
1185 KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password")); 1186 KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"));
1186 //qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); 1187 //qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() );
1187 } 1188 }
1188 } 1189 }
1189 if ( tokens[0] == "STOP" ) { 1190 if ( tokens[0] == "STOP" ) {
1190 //emit endConnect(); 1191 //emit endConnect();
1191 end_connect(); 1192 end_connect();
1192 } 1193 }
1193 } 1194 }
1194} 1195}
1195void KServerSocket::end_connect() 1196void KServerSocket::end_connect()
1196{ 1197{
1197 delete mSyncActionDialog; 1198 delete mSyncActionDialog;
1198 mSyncActionDialog = 0; 1199 mSyncActionDialog = 0;
1199} 1200}
1200void KServerSocket::send_file() 1201void KServerSocket::send_file()
1201{ 1202{
1202 //qDebug("MainWindow::sendFile(QSocket* s) "); 1203 //qDebug("MainWindow::sendFile(QSocket* s) ");
1203 if ( mSyncActionDialog ) 1204 if ( mSyncActionDialog )
1204 delete mSyncActionDialog; 1205 delete mSyncActionDialog;
1205 mSyncActionDialog = new QDialog ( 0, "input-dialog", true ); 1206 mSyncActionDialog = new QDialog ( 0, "input-dialog", true );
1206 mSyncActionDialog->setCaption(i18n("Received sync request")); 1207 mSyncActionDialog->setCaption(i18n("Received sync request"));
1207 QLabel* label = new QLabel( i18n("Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog."), mSyncActionDialog ); 1208 QLabel* label = new QLabel( i18n("Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog."), mSyncActionDialog );
1208 label->setAlignment ( Qt::AlignHCenter ); 1209 label->setAlignment ( Qt::AlignHCenter );
1209 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog ); 1210 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog );
1210 lay->addWidget( label); 1211 lay->addWidget( label);
1211 lay->setMargin(7); 1212 lay->setMargin(7);
1212 lay->setSpacing(7); 1213 lay->setSpacing(7);
1213 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 1214 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
1214 int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent ); 1215 int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent );
1215 if ( secs < 0 ) 1216 if ( secs < 0 )
1216 secs = secs * (-1); 1217 secs = secs * (-1);
1217 if ( secs > 30 ) 1218 if ( secs > 30 )
1218 //if ( true ) 1219 //if ( true )
1219 { 1220 {
1220 QString warning = i18n("Clock skew of\nsyncing devices\nis %1 seconds!").arg( secs ); 1221 QString warning = i18n("Clock skew of\nsyncing devices\nis %1 seconds!").arg( secs );
1221 QLabel* label = new QLabel( warning, mSyncActionDialog ); 1222 QLabel* label = new QLabel( warning, mSyncActionDialog );
1222 label->setAlignment ( Qt::AlignHCenter ); 1223 label->setAlignment ( Qt::AlignHCenter );
1223 lay->addWidget( label); 1224 lay->addWidget( label);
1224 if ( secs > 180 ) 1225 if ( secs > 180 )
1225 { 1226 {
1226 if ( secs > 300 ) { 1227 if ( secs > 300 ) {
1227 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(0, i18n("The clocks of the syncing\ndevices have a difference\n of more than 5 minutes.\nPlease adjust your clocks.\n<b>You may get wrong syncing results!<\b>\nPlease confirm synchronization!"), i18n("High clock skew!"),i18n("Synchronize!"))) { 1228 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(0, i18n("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!"), i18n("High clock skew!"),i18n("Synchronize!"))) {
1228 qDebug("KSS::Sync cancelled ,cs"); 1229 qDebug("KSS::Sync cancelled ,cs");
1229 return ; 1230 return ;
1230 } 1231 }
1231 } 1232 }
1232 QFont f = label->font(); 1233 QFont f = label->font();
1233 f.setPointSize ( f.pointSize() *2 ); 1234 f.setPointSize ( f.pointSize() *2 );
1234 f. setBold (true ); 1235 f. setBold (true );
1235 QLabel* label = new QLabel( warning, mSyncActionDialog ); 1236 QLabel* label = new QLabel( warning, mSyncActionDialog );
1236 label->setFont( f ); 1237 label->setFont( f );
1237 warning = i18n("ADJUST\nYOUR\nCLOCKS!"); 1238 warning = i18n("ADJUST\nYOUR\nCLOCKS!");
1238 label->setText( warning ); 1239 label->setText( warning );
1239 label->setAlignment ( Qt::AlignHCenter ); 1240 label->setAlignment ( Qt::AlignHCenter );
1240 lay->addWidget( label); 1241 lay->addWidget( label);
1241 mSyncActionDialog->setFixedSize( 230, 300); 1242 mSyncActionDialog->setFixedSize( 230, 300);
1242 } else { 1243 } else {
1243 mSyncActionDialog->setFixedSize( 230, 200); 1244 mSyncActionDialog->setFixedSize( 230, 200);
1244 } 1245 }
1245 } else { 1246 } else {
1246 mSyncActionDialog->setFixedSize( 230, 120); 1247 mSyncActionDialog->setFixedSize( 230, 120);
1247 } 1248 }
1248 } else 1249 } else
1249 mSyncActionDialog->setFixedSize( 230, 120); 1250 mSyncActionDialog->setFixedSize( 230, 120);
1250 mSyncActionDialog->show(); 1251 mSyncActionDialog->show();
1251 mSyncActionDialog->raise(); 1252 mSyncActionDialog->raise();
1252 emit request_file(); 1253 emit request_file();
1253 qApp->processEvents(); 1254 qApp->processEvents();
1254 QString fileName = mFileName; 1255 QString fileName = mFileName;
1255 QFile file( fileName ); 1256 QFile file( fileName );
1256 if (!file.open( IO_ReadOnly ) ) { 1257 if (!file.open( IO_ReadOnly ) ) {
1257 delete mSyncActionDialog; 1258 delete mSyncActionDialog;
1258 mSyncActionDialog = 0; 1259 mSyncActionDialog = 0;
1259 qDebug("KSS::error open sync file: %s ", fileName.latin1()); 1260 qDebug("KSS::error open sync file: %s ", fileName.latin1());
1260 mSocket->close(); 1261 mSocket->close();
1261 if ( mSocket->state() == QSocket::Idle ) 1262 if ( mSocket->state() == QSocket::Idle )
1262 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1263 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1263 return ; 1264 return ;
1264 1265
1265 } 1266 }
1266 mSyncActionDialog->setCaption( i18n("Sending file...") ); 1267 mSyncActionDialog->setCaption( i18n("Sending file...") );
1267 QTextStream ts( &file ); 1268 QTextStream ts( &file );
1268 ts.setEncoding( QTextStream::Latin1 ); 1269 ts.setEncoding( QTextStream::Latin1 );
1269 1270
1270 QTextStream os( mSocket ); 1271 QTextStream os( mSocket );
1271 os.setEncoding( QTextStream::Latin1 ); 1272 os.setEncoding( QTextStream::Latin1 );
1272 while ( ! ts.atEnd() ) { 1273 while ( ! ts.atEnd() ) {
1273 os << ts.readLine() << "\r\n\r\n"; 1274 os << ts.readLine() << "\r\n\r\n";
1274 } 1275 }
1275 //os << ts.read(); 1276 //os << ts.read();
1276 file.close(); 1277 file.close();
1277 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") ); 1278 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") );
1278 mSocket->close(); 1279 mSocket->close();
1279 if ( mSocket->state() == QSocket::Idle ) 1280 if ( mSocket->state() == QSocket::Idle )
1280 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1281 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1281} 1282}
1282void KServerSocket::get_file() 1283void KServerSocket::get_file()
1283{ 1284{
1284 mSyncActionDialog->setCaption( i18n("Receiving synced file...") ); 1285 mSyncActionDialog->setCaption( i18n("Receiving synced file...") );
1285 1286
1286 piTime.start(); 1287 piTime.start();
1287 piFileString = ""; 1288 piFileString = "";
1288 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) )); 1289 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) ));
1289} 1290}
1290 1291
1291 1292
diff --git a/microkde/kdecore/klocale.cpp b/microkde/kdecore/klocale.cpp
index 7f31ab1..aec74fa 100644
--- a/microkde/kdecore/klocale.cpp
+++ b/microkde/kdecore/klocale.cpp
@@ -1,75 +1,75 @@
1#include <qregexp.h> 1#include <qregexp.h>
2#include <qapplication.h> 2#include <qapplication.h>
3 3
4#include "kdebug.h" 4#include "kdebug.h"
5#include "kcalendarsystemgregorian.h" 5#include "kcalendarsystemgregorian.h"
6 6
7#include "klocale.h" 7#include "klocale.h"
8 8
9#include <qstringlist.h> 9#include <qstringlist.h>
10 10
11//#define COLLECT_TRANSLATION 11#define COLLECT_TRANSLATION
12 12
13 13
14QDict<QString> *mLocaleDict = 0; 14QDict<QString> *mLocaleDict = 0;
15void setLocaleDict( QDict<QString> * dict ) 15void setLocaleDict( QDict<QString> * dict )
16{ 16{
17 mLocaleDict = dict; 17 mLocaleDict = dict;
18 18
19} 19}
20 20
21#ifdef COLLECT_TRANSLATION 21#ifdef COLLECT_TRANSLATION
22 22
23QStringList missingTrans; 23QStringList missingTrans;
24QStringList existingTrans1; 24QStringList existingTrans1;
25QStringList existingTrans2; 25QStringList existingTrans2;
26 26
27void addMissing(const char *text) 27void addMissing(const char *text)
28{ 28{
29 29
30 QString mis ( text ); 30 QString mis ( text );
31 if ( !missingTrans.contains( mis ) ) 31 if ( !missingTrans.contains( mis ) )
32 missingTrans.append(mis); 32 missingTrans.append(mis);
33 33
34} 34}
35void addExist(const char *text,QString trans ) 35void addExist(const char *text,QString trans )
36{ 36{
37 //return; 37 //return;
38 QString mis ( text ); 38 QString mis ( text );
39 if ( !existingTrans1.contains( mis ) ) { 39 if ( !existingTrans1.contains( mis ) ) {
40 existingTrans1.append(mis); 40 existingTrans1.append(mis);
41 existingTrans2.append(trans); 41 existingTrans2.append(trans);
42 42
43 } 43 }
44 44
45} 45}
46 46
47#include <qfile.h> 47#include <qfile.h>
48#include <qtextstream.h> 48#include <qtextstream.h>
49#include <qtextcodec.h> 49#include <qtextcodec.h>
50#endif 50#endif
51void dumpMissing() 51void dumpMissing()
52{ 52{
53#ifdef COLLECT_TRANSLATION 53#ifdef COLLECT_TRANSLATION
54 QString fileName = "/tmp/usernewtrans.txt"; 54 QString fileName = "/tmp/usernewtrans.txt";
55 QFile file( fileName ); 55 QFile file( fileName );
56 if (!file.open( IO_WriteOnly ) ) { 56 if (!file.open( IO_WriteOnly ) ) {
57 return ; 57 return ;
58 } 58 }
59 QTextStream ts( &file ); 59 QTextStream ts( &file );
60 ts.setCodec( QTextCodec::codecForName("utf8") ); 60 ts.setCodec( QTextCodec::codecForName("utf8") );
61 61
62 int i; 62 int i;
63 for ( i = 0; i< missingTrans.count(); ++i ) { 63 for ( i = 0; i< missingTrans.count(); ++i ) {
64 64
65 QString text = missingTrans[i].replace( QRegExp("\n"),"\\n" ); 65 QString text = missingTrans[i].replace( QRegExp("\n"),"\\n" );
66 ts << "{ \""<<text<< "\",\""<< text <<"\" },\n"; 66 ts << "{ \""<<text<< "\",\""<< text <<"\" },\n";
67 67
68 } 68 }
69 file.close(); 69 file.close();
70 { 70 {
71 QString fileName = "/tmp/usertrans.txt"; 71 QString fileName = "/tmp/usertrans.txt";
72 QFile file( fileName ); 72 QFile file( fileName );
73 if (!file.open( IO_WriteOnly ) ) { 73 if (!file.open( IO_WriteOnly ) ) {
74 return ; 74 return ;
75 } 75 }