summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt9
-rw-r--r--korganizer/kotodoeditor.cpp1
-rw-r--r--korganizer/kotodoview.cpp108
-rw-r--r--korganizer/kotodoview.h3
4 files changed, 94 insertions, 27 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index a5e2597..cb92677 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1,1505 +1,1506 @@
1{ "10 minutes","10 Minuten" }, 1{ "10 minutes","10 Minuten" },
2{ "10th","10." }, 2{ "10th","10." },
3{ "11th","11." }, 3{ "11th","11." },
4{ "12 pm Format","12 AM/PM Format" }, 4{ "12 pm Format","12 AM/PM Format" },
5{ "12th","12." }, 5{ "12th","12." },
6{ "13th","13." }, 6{ "13th","13." },
7{ "14th","14." }, 7{ "14th","14." },
8{ "15th","15." }, 8{ "15th","15." },
9{ "16th","16." }, 9{ "16th","16." },
10{ "17th","17." }, 10{ "17th","17." },
11{ "18th","18." }, 11{ "18th","18." },
12{ "19th","19." }, 12{ "19th","19." },
13{ "1 Day","1 Tag" }, 13{ "1 Day","1 Tag" },
14{ "1 h","1 Std" }, 14{ "1 h","1 Std" },
15{ "1 (high)","1 (hoch)" }, 15{ "1 (high)","1 (hoch)" },
16{ "5 (low)","5" }, 16{ "5 (low)","5" },
17{ "1st","1." }, 17{ "1st","1." },
18{ "20th","20." }, 18{ "20th","20." },
19{ "21st","21." }, 19{ "21st","21." },
20{ "22nd","22." }, 20{ "22nd","22." },
21{ "23rd","23." }, 21{ "23rd","23." },
22{ "24:00 Hour Format","24:00 Stunden Format" }, 22{ "24:00 Hour Format","24:00 Stunden Format" },
23{ "24th","24." }, 23{ "24th","24." },
24{ "25th","25." }, 24{ "25th","25." },
25{ "26th","26." }, 25{ "26th","26." },
26{ "27th","27." }, 26{ "27th","27." },
27{ "28th","28." }, 27{ "28th","28." },
28{ "29th","29." }, 28{ "29th","29." },
29{ "2nd","2." }, 29{ "2nd","2." },
30{ "30 minutes","30 Minuten" }, 30{ "30 minutes","30 Minuten" },
31{ "30th","30." }, 31{ "30th","30." },
32{ "31st","31." }, 32{ "31st","31." },
33{ "3rd","3." }, 33{ "3rd","3." },
34{ "4th","4." }, 34{ "4th","4." },
35{ "5 (lowest)","5 (Niedrigster)" }, 35{ "5 (lowest)","5 (Niedrigster)" },
36{ "5th","5." }, 36{ "5th","5." },
37{ "6th","6." }, 37{ "6th","6." },
38{ "7th","7." }, 38{ "7th","7." },
39{ "8th","8." }, 39{ "8th","8." },
40{ "9th","9." }, 40{ "9th","9." },
41{ "About...","Über..." }, 41{ "About...","Über..." },
42{ "&Accept","&Akzeptieren" }, 42{ "&Accept","&Akzeptieren" },
43{ "Accept","Akzeptieren" }, 43{ "Accept","Akzeptieren" },
44{ "Accept A&ll","A&lles Akzepieren" }, 44{ "Accept A&ll","A&lles Akzepieren" },
45{ "Access:","Zugriff:" }, 45{ "Access:","Zugriff:" },
46{ "A corresponding event is missing in your calendar!","Ein zugehöriger Termin fehlt in ihrem Kalender!" }, 46{ "A corresponding event is missing in your calendar!","Ein zugehöriger Termin fehlt in ihrem Kalender!" },
47{ "Action","Aktion" }, 47{ "Action","Aktion" },
48{ "Add Filter","Filter Hinzufügen" }, 48{ "Add Filter","Filter Hinzufügen" },
49{ "&Add","Hinzufügen" }, 49{ "&Add","Hinzufügen" },
50{ "Add","Hinzufügen" }, 50{ "Add","Hinzufügen" },
51{ "Additional email addresses:","Zusätzliche E-Mail Adressen:" }, 51{ "Additional email addresses:","Zusätzliche E-Mail Adressen:" },
52{ "Additional email address:","Zusätzliche E-Mail Adresse:" }, 52{ "Additional email address:","Zusätzliche E-Mail Adresse:" },
53{ "&Addressbook","&Adressbuch" }, 53{ "&Addressbook","&Adressbuch" },
54{ "Address &Book...","Adress&buch..." }, 54{ "Address &Book...","Adress&buch..." },
55{ "Agenda Size","Agende Größe" }, 55{ "Agenda Size","Agende Größe" },
56{ "Agenda Size:","Größe der Agenda:" }, 56{ "Agenda Size:","Größe der Agenda:" },
57{ "Agenda view:","Agenda Ansicht:" }, 57{ "Agenda view:","Agenda Ansicht:" },
58{ "Agenda view background color:","Hintergrund der Agenda Ansicht:" }, 58{ "Agenda view background color:","Hintergrund der Agenda Ansicht:" },
59{ "All attendees","Alle Teilnehmer" }, 59{ "All attendees","Alle Teilnehmer" },
60{ "AllDayAgenda Height:","Höhe Ganztages Agenda:" }, 60{ "AllDayAgenda Height:","Höhe Ganztages Agenda:" },
61{ "All day event","Ganztägig" }, 61{ "All day event","Ganztägig" },
62{ "Anonymous","Anonym" }, 62{ "Anonymous","Anonym" },
63{ "Apply","Anwenden" }, 63{ "Apply","Anwenden" },
64{ "Apr","Apr" }, 64{ "Apr","Apr" },
65{ "April","April" }, 65{ "April","April" },
66{"Ask for every entry on conflict","Frage bei Konflikten nach"}, 66{"Ask for every entry on conflict","Frage bei Konflikten nach"},
67{ "Ask for preferences before syncing","Vor dem Syncronisieren nachfragen" }, 67{ "Ask for preferences before syncing","Vor dem Syncronisieren nachfragen" },
68{ "Ask for quit when closing KO/Pi","Vor dem Beenden von KO/Pi nachfragen" }, 68{ "Ask for quit when closing KO/Pi","Vor dem Beenden von KO/Pi nachfragen" },
69{ "Attendees","Teilnehmer" }, 69{ "Attendees","Teilnehmer" },
70{ "Aug","Aug" }, 70{ "Aug","Aug" },
71{ "August","August" }, 71{ "August","August" },
72{ "Auto-Save","Automatisches Abspeichern" }, 72{ "Auto-Save","Automatisches Abspeichern" },
73{ "Auto save delay in minutes:","Verzög.autom.Speichern in Min" }, 73{ "Auto save delay in minutes:","Verzög.autom.Speichern in Min" },
74{ "Auto saving...","Automatische Sicherung..." }, 74{ "Auto saving...","Automatische Sicherung..." },
75{ "Begin on:","Starte mit:" }, 75{ "Begin on:","Starte mit:" },
76{ "Begins on: %1","Starte mit: %1" }, 76{ "Begins on: %1","Starte mit: %1" },
77{ "<b>From:</b> %1 <b>To:</b> %2","<b>Vom:</b> %1 <b>Zum:</b> %2" }, 77{ "<b>From:</b> %1 <b>To:</b> %2","<b>Vom:</b> %1 <b>Zum:</b> %2" },
78{ "<b>On:</b> %1","<b>Am:</b> %1" }, 78{ "<b>On:</b> %1","<b>Am:</b> %1" },
79{ "<b>On:</b> %1 <b>From:S</b> %2 <b>To:</b> %3","<b>Am:</b> %1 <b>Vom:S</b> %2 <b>Zum:</b> %3" }, 79{ "<b>On:</b> %1 <b>From:S</b> %2 <b>To:</b> %3","<b>Am:</b> %1 <b>Vom:S</b> %2 <b>Zum:</b> %3" },
80{ "<b>Original event:</b><p>","<b>Original Termin:</b><p>" }, 80{ "<b>Original event:</b><p>","<b>Original Termin:</b><p>" },
81{ " - both are modified after last sync"," - beide wurden nach der letzten Syncronisation verändert" }, 81{ " - both are modified after last sync"," - beide wurden nach der letzten Syncronisation verändert" },
82{ "Busy","Belegt" }, 82{ "Busy","Belegt" },
83{ "&Cancel","Abbre&chen" }, 83{ "&Cancel","Abbre&chen" },
84{ "Cancel","Abbrechen" }, 84{ "Cancel","Abbrechen" },
85{ "Cannot delete To-Do\nwhich has children.","Kann Todo nicht löschen,\n da noch Einträge vorhanden sind" }, 85{ "Cannot delete To-Do\nwhich has children.","Kann Todo nicht löschen,\n da noch Einträge vorhanden sind" },
86{ "Can't generate mail:\nNo event selected.","Kann e-Mail nicht erstellen:\nKein Termin ausgewählt." }, 86{ "Can't generate mail:\nNo event selected.","Kann e-Mail nicht erstellen:\nKein Termin ausgewählt." },
87{ "Categories...","Kategorien..." }, 87{ "Categories...","Kategorien..." },
88{ "Categories","Kategorien" }, 88{ "Categories","Kategorien" },
89{ "Category","Kategorie" }, 89{ "Category","Kategorie" },
90{ "Center View","Zentriere Ansicht" }, 90{ "Center View","Zentriere Ansicht" },
91{ "Change","Ändere" }, 91{ "Change","Ändere" },
92{ "Cinema","Kino" }, 92{ "Cinema","Kino" },
93{ "Click to add a new Todo","Hier klicken, um ein neues Todo anzulegen" }, 93{ "Click to add a new Todo","Hier klicken, um ein neues Todo anzulegen" },
94{ "Clone Item","Klone Eintrag" }, 94{ "Clone Item","Klone Eintrag" },
95{ "&Close","S&chließen" }, 95{ "&Close","S&chließen" },
96{ "Close","Schließen" }, 96{ "Close","Schließen" },
97{ "Close this dialog to abort deletion!","Zum Abbrechen des Löschvorganges Dialog schließen!" }, 97{ "Close this dialog to abort deletion!","Zum Abbrechen des Löschvorganges Dialog schließen!" },
98{ "Colors","Farben" }, 98{ "Colors","Farben" },
99{ "completed","erledigt" }, 99{ "completed","erledigt" },
100{ "completed on %1","erledigt am %1" }, 100{ "completed on %1","erledigt am %1" },
101{ "Complete","Erledigt" }, 101{ "Complete","Erledigt" },
102{ "Confidential","Vertraulich" }, 102{ "Confidential","Vertraulich" },
103{ "Configure...","Einstellungen..." }, 103{ "Configure...","Einstellungen..." },
104{ "Confirm &deletes","Löschvogang bestätigen" }, 104{ "Confirm &deletes","Löschvogang bestätigen" },
105{ "Couldn't load calendar\n '%1'.","Kann Kalender\n '%1' nicht laden." }, 105{ "Couldn't load calendar\n '%1'.","Kann Kalender\n '%1' nicht laden." },
106{ "Counter-event Viewer","Terminzähler Ansicht" }, 106{ "Counter-event Viewer","Terminzähler Ansicht" },
107{ "Daily ending hour:","Feierabend:" }, 107{ "Daily ending hour:","Feierabend:" },
108{ "Daily starting hour:","Anfangszeit:" }, 108{ "Daily starting hour:","Anfangszeit:" },
109{ "Daily","Täglich" }, 109{ "Daily","Täglich" },
110{ "Date Format","Datums Format" }, 110{ "Date Format","Datums Format" },
111{ "Date Format:","Datums Format:" }, 111{ "Date Format:","Datums Format:" },
112{ "DateNavigator:(nr)","Datums Navigator" }, 112{ "DateNavigator:(nr)","Datums Navigator" },
113{ "Dates: ","Datum: " }, 113{ "Dates: ","Datum: " },
114{ "Date && Time","Datum && Zeit" }, 114{ "Date && Time","Datum && Zeit" },
115{ "Day begins at:","Der Tag beginnt um:" }, 115{ "Day begins at:","Der Tag beginnt um:" },
116{ "Days in Next-X-Days:","Tage in Nächste-X-Tage:" }, 116{ "Days in Next-X-Days:","Tage in Nächste-X-Tage:" },
117{ "Days in What's Next:","Tage in What's Next:" }, 117{ "Days in What's Next:","Tage in What's Next:" },
118{ "day(s)","Tag(e)" }, 118{ "day(s)","Tag(e)" },
119{ "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" }, 119{ "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" },
120{ "day","Tag" }, 120{ "day","Tag" },
121{ "Dec","Dez" }, 121{ "Dec","Dez" },
122{ "December","Dezember" }, 122{ "December","Dezember" },
123{ "Default alarm time:","Standard Alarmzeit:" }, 123{ "Default alarm time:","Standard Alarmzeit:" },
124{ "Default appointment time:","Standard Termin Startzeit:" }, 124{ "Default appointment time:","Standard Termin Startzeit:" },
125{ "Default event color:","Standard Terminfarbe:" }, 125{ "Default event color:","Standard Terminfarbe:" },
126{ "Default","Standard" }, 126{ "Default","Standard" },
127{ "Def. duration of new app.:","Standard Termin Länge:" }, 127{ "Def. duration of new app.:","Standard Termin Länge:" },
128{ "Delete All","Lösche alles" }, 128{ "Delete All","Lösche alles" },
129{ "Delete all selected","Lösche alle Selektierten" }, 129{ "Delete all selected","Lösche alle Selektierten" },
130{ "Delete Current","Aktuellen löschen" }, 130{ "Delete Current","Aktuellen löschen" },
131{ "Delete Event...","Lösche Termin..." }, 131{ "Delete Event...","Lösche Termin..." },
132{ "Delete Event","Lösche Termin" }, 132{ "Delete Event","Lösche Termin" },
133{ "&Delete...","Lösche..." }, 133{ "&Delete...","Lösche..." },
134{ "Delete...","Lösche..." }, 134{ "Delete...","Lösche..." },
135{ "Delete","Lösche" }, 135{ "Delete","Lösche" },
136{ "Delete Todo...","Lösche Todo..." }, 136{ "Delete Todo...","Lösche Todo..." },
137{ "Delete To-Do","Lösche Todo" }, 137{ "Delete To-Do","Lösche Todo" },
138{ "Deleting item %d ...","Lösche Eintrag %d..." }, 138{ "Deleting item %d ...","Lösche Eintrag %d..." },
139{ "Descriptions","Beschreibungen" }, 139{ "Descriptions","Beschreibungen" },
140{ "Deselect all","Deselektiere Alle" }, 140{ "Deselect all","Deselektiere Alle" },
141{ "Details","Details" }, 141{ "Details","Details" },
142{ "Dinner","Abendessen" }, 142{ "Dinner","Abendessen" },
143{ "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, 143{ "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" },
144{ "Due Date","Fällig am" }, 144{ "Due Date","Fällig am" },
145{ "Due: ","Fällig: "}, 145{ "Due: ","Fällig: "},
146{ "Due Time","Fällig um" }, 146{ "Due Time","Fällig um" },
147{ "Due:","Fällig:"}, 147{ "Due:","Fällig:"},
148{ "Duration: ","Dauer: " }, 148{ "Duration: ","Dauer: " },
149{ "Edit...","Bearbeite..." }, 149{ "Edit...","Bearbeite..." },
150{ "Edit Event...","Bearbeite Termin..." }, 150{ "Edit Event...","Bearbeite Termin..." },
151{ "Edit Event","Bearbeite Termin" }, 151{ "Edit Event","Bearbeite Termin" },
152{ "Edit exceptions","Bearbeite Ausnahmen" }, 152{ "Edit exceptions","Bearbeite Ausnahmen" },
153{ "EditorBox:","Editor Fenster:" }, 153{ "EditorBox:","Editor Fenster:" },
154{ "Edit Recurrence Range","Bearbeite Wiederholung" }, 154{ "Edit Recurrence Range","Bearbeite Wiederholung" },
155{ "Edit Todo...","Berabeite Todo..." }, 155{ "Edit Todo...","Berabeite Todo..." },
156{ "Edit To-Do","Todo bearbeiten" }, 156{ "Edit To-Do","Todo bearbeiten" },
157{ "E&mail address:","E&mail Adresse:" }, 157{ "E&mail address:","E&mail Adresse:" },
158{ "(EmptyEmail)","(KeineEmail)" }, 158{ "(EmptyEmail)","(KeineEmail)" },
159{ "(EmptyName)","(KeinName)" }, 159{ "(EmptyName)","(KeinName)" },
160{ "Enable Recurrence","Wiederholung anschalten" }, 160{ "Enable Recurrence","Wiederholung anschalten" },
161{ "End after","Endet nach"}, 161{ "End after","Endet nach"},
162{ "End by:","Endet am"}, 162{ "End by:","Endet am"},
163{ "End Date","End Datum" }, 163{ "End Date","End Datum" },
164{ "End:","Ende:" }, 164{ "End:","Ende:" },
165{ "End Time","End Zeit" }, 165{ "End Time","End Zeit" },
166{ "English","Englisch" }, 166{ "English","Englisch" },
167{ "Event","Termin" }, 167{ "Event","Termin" },
168{ "Event list","Termin Liste" }, 168{ "Event list","Termin Liste" },
169{ "Events","Termine" }, 169{ "Events","Termine" },
170{ "Event Viewer:","Termin Übersicht:" }, 170{ "Event Viewer:","Termin Übersicht:" },
171{ "every","jede" }, 171{ "every","jede" },
172{ "Exceptions...","Ausnahmen..." }, 172{ "Exceptions...","Ausnahmen..." },
173{ "Exceptions","Ausnahmen" }, 173{ "Exceptions","Ausnahmen" },
174{ "Exclude holidays","Ohne freie Tage" }, 174{ "Exclude holidays","Ohne freie Tage" },
175{ "Exclude Saturdays","Ohne Samstage" }, 175{ "Exclude Saturdays","Ohne Samstage" },
176{ "Feb","Feb" }, 176{ "Feb","Feb" },
177{ "February","Februar" }, 177{ "February","Februar" },
178{ "&Find","Suche!" }, 178{ "&Find","Suche!" },
179{ "Fonts","Schriftart" }, 179{ "Fonts","Schriftart" },
180{ "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" }, 180{ "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" },
181{ "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"}, 181{ "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"},
182{ "Free","Frei" }, 182{ "Free","Frei" },
183{ "Friday","Freitag" }, 183{ "Friday","Freitag" },
184{ "Fri","Fr" }, 184{ "Fri","Fr" },
185{ "From:","Vom:" }, 185{ "From:","Vom:" },
186{ "Full &name:","Vor- und &Nachname:" }, 186{ "Full &name:","Vor- und &Nachname:" },
187{ "General","Allgemein" }, 187{ "General","Allgemein" },
188{ "German","Deutsch" }, 188{ "German","Deutsch" },
189{ "Gifts","Geschenke" }, 189{ "Gifts","Geschenke" },
190{ "Go to Today","Heute anzeigen" }, 190{ "Go to Today","Heute anzeigen" },
191{ "Help","Hilfe" }, 191{ "Help","Hilfe" },
192{ "Hide Dates","Daten ausblenden" }, 192{ "Hide Dates","Daten ausblenden" },
193{ "Highlight color:","Markierungen:" }, 193{ "Highlight color:","Markierungen:" },
194{ "Holiday color:","Freie Tage:" }, 194{ "Holiday color:","Freie Tage:" },
195{ "hour(s)","Stunde(n)" }, 195{ "hour(s)","Stunde(n)" },
196{ "In %1 days: ","In %1 Tagen: " }, 196{ "In %1 days: ","In %1 Tagen: " },
197{ "Incomplete Todo:","Unerledigte Aufgaben:" }, 197{ "Incomplete Todo:","Unerledigte Aufgaben:" },
198{ "Information","Information" }, 198{ "Information","Information" },
199{ "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" }, 199{ "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" },
200{ "Jan","Jan" }, 200{ "Jan","Jan" },
201{ "January","Januar" }, 201{ "January","Januar" },
202{ "JournalView:","Journal Ansicht:" }, 202{ "JournalView:","Journal Ansicht:" },
203{ "Journals","Journale" }, 203{ "Journals","Journale" },
204{ "Jul","Jul" }, 204{ "Jul","Jul" },
205{ "July","Juli" }, 205{ "July","Juli" },
206{ "Jump to date","Springe zum Datum" }, 206{ "Jump to date","Springe zum Datum" },
207{ "June","Juni" }, 207{ "June","Juni" },
208{ "Jun","Jun" }, 208{ "Jun","Jun" },
209{ "Key Bindings...","Tastenzuordnung..." }, 209{ "Key Bindings...","Tastenzuordnung..." },
210{ "Kids","Kinder" }, 210{ "Kids","Kinder" },
211{ "Known Problems...","Bekannte Probleme..." }, 211{ "Known Problems...","Bekannte Probleme..." },
212{ "KO/Pi Find ","KO/Pi Suchdialog " }, 212{ "KO/Pi Find ","KO/Pi Suchdialog " },
213{ "KO/Pi Find: ","KO/Pi Suchen: " }, 213{ "KO/Pi Find: ","KO/Pi Suchen: " },
214{ "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." }, 214{ "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." },
215{ "Language:(needs restart)","Sprache (Neustart!)" }, 215{ "Language:(needs restart)","Sprache (Neustart!)" },
216{ "Language:","Sprache" }, 216{ "Language:","Sprache" },
217{ "Large","Etwas mehr" }, 217{ "Large","Etwas mehr" },
218{ "List View:","Listenansicht:" }, 218{ "List View:","Listenansicht:" },
219{ "List View","Listenansicht" }, 219{ "List View","Listenansicht" },
220{ "Load/Save","Laden/Speichern" }, 220{ "Load/Save","Laden/Speichern" },
221{ "Load Template","Lade Vorlage" }, 221{ "Load Template","Lade Vorlage" },
222{ "Locale","Lokalisation" }, 222{ "Locale","Lokalisation" },
223{ "Local temp file:","Lokale temp. Datei:" }, 223{ "Local temp file:","Lokale temp. Datei:" },
224{ "Location: ","Ort: " }, 224{ "Location: ","Ort: " },
225{ "Location:","Ort:" }, 225{ "Location:","Ort:" },
226{ "Mail client","Mail Programm" }, 226{ "Mail client","Mail Programm" },
227{ "Mail Client","Mail Programm" }, 227{ "Mail Client","Mail Programm" },
228{ "March","März" }, 228{ "March","März" },
229{ "Mar","Mär" }, 229{ "Mar","Mär" },
230{ "May","Mai" }, 230{ "May","Mai" },
231{ "M. Bains line:","M. Bains Linie:" }, 231{ "M. Bains line:","M. Bains Linie:" },
232{ "Medium","Medium" }, 232{ "Medium","Medium" },
233{ "Method","Methode" }, 233{ "Method","Methode" },
234{ "minute(s)","Minute(n)" }, 234{ "minute(s)","Minute(n)" },
235{ "Monday","Montag" }, 235{ "Monday","Montag" },
236{ "Mon","Mo" }, 236{ "Mon","Mo" },
237{ "Monthly","Monatlich" }, 237{ "Monthly","Monatlich" },
238{ "Month not long enough","Monat ist nicht lang genug" }, 238{ "Month not long enough","Monat ist nicht lang genug" },
239{ "month(s)","Monat(e)" }, 239{ "month(s)","Monat(e)" },
240{ "Month view:","Monatsansicht:" }, 240{ "Month view:","Monatsansicht:" },
241{ "Month view uses category colors","Monatsansicht zeigt Kategorie Farben" }, 241{ "Month view uses category colors","Monatsansicht zeigt Kategorie Farben" },
242{ "Todo view uses category colors","Todo Ansicht zeigt Kategorie Farben" }, 242{ "Todo view uses category colors","Todo Ansicht zeigt Kategorie Farben" },
243{ "Move &Down","Nach unten verschieben" }, 243{ "Move &Down","Nach unten verschieben" },
244{ "Move &Up","Nach oben verschieben" }, 244{ "Move &Up","Nach oben verschieben" },
245{ "Name:","Name:" }, 245{ "Name:","Name:" },
246{ "Name","Name" }, 246{ "Name","Name" },
247{ "\nAre you sure you want\nto delete this event?","\nSind Sie sicher, dass Sie\nden Termin löschen möchten?" }, 247{ "\nAre you sure you want\nto delete this event?","\nSind Sie sicher, dass Sie\nden Termin löschen möchten?" },
248{ "%n Days","%n Tage" }, 248{ "%n Days","%n Tage" },
249{ "Never","Nie" }, 249{ "Never","Nie" },
250{ "New event...","Neuer Termin..." }, 250{ "New event...","Neuer Termin..." },
251{ "New event","Neuer Termin" }, 251{ "New event","Neuer Termin" },
252{ "New Event...","Neuer Termin..." }, 252{ "New Event...","Neuer Termin..." },
253{ "New Events/Todos should","Neue Termine/Todos sollten" }, 253{ "New Events/Todos should","Neue Termine/Todos sollten" },
254{ "&New","&Neu" }, 254{ "&New","&Neu" },
255{ "New","Neu", }, 255{ "New","Neu", },
256{ "New Sub-Todo...","Neues Sub-Todo..." }, 256{ "New Sub-Todo...","Neues Sub-Todo..." },
257{ "New Todo...","Neues Todo..." }, 257{ "New Todo...","Neues Todo..." },
258{ "Next Alarm: ","Nächster Alarm: ", }, 258{ "Next Alarm: ","Nächster Alarm: ", },
259{ "&Next Day","&Nächster Tag", }, 259{ "&Next Day","&Nächster Tag", },
260{ "Next days view uses full window","Nächste-X-Tage nutzt Vollbild" }, 260{ "Next days view uses full window","Nächste-X-Tage nutzt Vollbild" },
261{ "Next month","Nächster Monat" }, 261{ "Next month","Nächster Monat" },
262{ "&Next Week","&Nächste Woche" }, 262{ "&Next Week","&Nächste Woche" },
263{ "Next year","Nächstes Jahr" }, 263{ "Next year","Nächstes Jahr" },
264{ "Next Year","Nächstes Jahr" }, 264{ "Next Year","Nächstes Jahr" },
265{ "%n h","%n Std" }, 265{ "%n h","%n Std" },
266{ "No ending date","Kein End-Datum", }, 266{ "No ending date","Kein End-Datum", },
267{ "No event, nothing to do.","Kein Termin, nichts zu tun.", }, 267{ "No event, nothing to do.","Kein Termin, nichts zu tun.", },
268{ "No event selected.","Kein Termin selektiert" }, 268{ "No event selected.","Kein Termin selektiert" },
269{ "No","Nein" }, 269{ "No","Nein" },
270{ "No program set","Kein Programm ausgewählt", }, 270{ "No program set","Kein Programm ausgewählt", },
271{ "Normal","Normal" }, 271{ "Normal","Normal" },
272{ "[No selection]","Keine Selektion", }, 272{ "[No selection]","Keine Selektion", },
273{ "No sound set","Kein Sound ausgewählt", }, 273{ "No sound set","Kein Sound ausgewählt", },
274{ "no time ","keine Zeit ", }, 274{ "no time ","keine Zeit ", },
275{ "no time","keine Zeit", }, 275{ "no time","keine Zeit", },
276{ "No Time","Keine Zeit" }, 276{ "No Time","Keine Zeit" },
277{ "November","November" }, 277{ "November","November" },
278{ "Nov","Nov", }, 278{ "Nov","Nov", },
279{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" }, 279{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" },
280{ "occurrence(s)","Vorkommen" }, 280{ "occurrence(s)","Vorkommen" },
281{ "October","Oktober" }, 281{ "October","Oktober" },
282{ "Oct","Okt", }, 282{ "Oct","Okt", },
283{ "O-due!","Ü-fällig! " }, 283{ "O-due!","Ü-fällig! " },
284{ "&OK","&OK" }, 284{ "&OK","&OK" },
285{ "Ok+Show!","Ok+Anzeigen" }, 285{ "Ok+Show!","Ok+Anzeigen" },
286{ "Organizer: %1","Organisator %1" }, 286{ "Organizer: %1","Organisator %1" },
287{ "Organizer","Organisator" }, 287{ "Organizer","Organisator" },
288{ "Owner: ","Besitzer: " }, 288{ "Owner: ","Besitzer: " },
289{ "Owner:","Besitzer:" }, 289{ "Owner:","Besitzer:" },
290{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 290{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
291{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" }, 291{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" },
292{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."}, 292{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."},
293{ "Please specify a valid end date,\nfor example '%1'.","Bitte gültiges Enddatum angeben,\nz.B.'%1'." }, 293{ "Please specify a valid end date,\nfor example '%1'.","Bitte gültiges Enddatum angeben,\nz.B.'%1'." },
294{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." }, 294{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." },
295{ "Please specify a valid start date,\nfor example '%1'.","Bitte gültiges Startdatum angeben,\nz.B. '%1'." }, 295{ "Please specify a valid start date,\nfor example '%1'.","Bitte gültiges Startdatum angeben,\nz.B. '%1'." },
296{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."}, 296{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."},
297{ "Please specify a valid start time,\nfor example '%1'.","Bitte gültige Startzeit angeben,\nz.B. '%1'." }, 297{ "Please specify a valid start time,\nfor example '%1'.","Bitte gültige Startzeit angeben,\nz.B. '%1'." },
298{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" }, 298{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" },
299{ "&Previous Day","Vorheriger Tag" }, 299{ "&Previous Day","Vorheriger Tag" },
300{ "Previous month","Vorheriger Monat" }, 300{ "Previous month","Vorheriger Monat" },
301{ "Previous Month","Vorheriger Monat" }, 301{ "Previous Month","Vorheriger Monat" },
302{ "&Previous Week","Vorherige Woche" }, 302{ "&Previous Week","Vorherige Woche" },
303{ "Previous year","Vorheriges Jahr" }, 303{ "Previous year","Vorheriges Jahr" },
304{ "Previous Year","Vorheriges Jahr" }, 304{ "Previous Year","Vorheriges Jahr" },
305{ "Printing","Drucken" }, 305{ "Printing","Drucken" },
306{ "Priority:","Priorität:" }, 306{ "Priority:","Priorität:" },
307{ "Private","Privat" }, 307{ "Private","Privat" },
308{ "Proceed","Weiter" }, 308{ "Proceed","Weiter" },
309{ "Public","Öffentlich" }, 309{ "Public","Öffentlich" },
310{ "Purge","Entferne" }, 310{ "Purge","Entferne" },
311{ "Purge Completed...","Entferne erledigte Todos..." }, 311{ "Purge Completed...","Entferne erledigte Todos..." },
312{ "Purge Todos","Todos bereinigen" }, 312{ "Purge Todos","Todos bereinigen" },
313{ "read-only","schreibgeschützt" }, 313{ "read-only","schreibgeschützt" },
314{ "Recur every","Wiederh. alle" }, 314{ "Recur every","Wiederh. alle" },
315{ "Recur in the month of","Wiederh. im Monat" }, 315{ "Recur in the month of","Wiederh. im Monat" },
316{ "Recur on the","Wiederh. am" }, 316{ "Recur on the","Wiederh. am" },
317{ "Recur on this day","Wiederh. am diesen Tag" }, 317{ "Recur on this day","Wiederh. am diesen Tag" },
318{ "Recurrence Range...","Wiederholungs Zeitraum..." }, 318{ "Recurrence Range...","Wiederholungs Zeitraum..." },
319{ "Recurrence Range","Wiederholungs Zeitraum" }, 319{ "Recurrence Range","Wiederholungs Zeitraum" },
320{ "Recurrence Rule","Wiederholungs Regel" }, 320{ "Recurrence Rule","Wiederholungs Regel" },
321{ "Recurrence","Wiederholung" }, 321{ "Recurrence","Wiederholung" },
322{ "Recurs","Wiederholung" }, 322{ "Recurs","Wiederholung" },
323{"&Reject","Abweisen"}, 323{"&Reject","Abweisen"},
324{ "Reminder:","Alarm:" }, 324{ "Reminder:","Alarm:" },
325{ "Rem.:","Alarm:" }, 325{ "Rem.:","Alarm:" },
326{ "Rem.","Alarm:" }, 326{ "Rem.","Alarm:" },
327{ "Remote file:","Remote Datei:"}, 327{ "Remote file:","Remote Datei:"},
328{ "Remote IP:","Remote (ferne) IP:" }, 328{ "Remote IP:","Remote (ferne) IP:" },
329{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " }, 329{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " },
330{ "Remote user:","Remote Benutzer"}, 330{ "Remote user:","Remote Benutzer"},
331{ "&Remove","Entfe&rnen" }, 331{ "&Remove","Entfe&rnen" },
332{ "Remove","Entfernen" }, 332{ "Remove","Entfernen" },
333{ "Request response","Bemerkung anfordern" }, 333{ "Request response","Bemerkung anfordern" },
334{ "Role:","Rolle:" }, 334{ "Role:","Rolle:" },
335{ "Role","Rolle" }, 335{ "Role","Rolle" },
336{ "Sat","Sa" }, 336{ "Sat","Sa" },
337{ "Saturday","Samstag" }, 337{ "Saturday","Samstag" },
338{ "Search for:","Suche nach:" }, 338{ "Search for:","Suche nach:" },
339{ "Search In","Suche in" }, 339{ "Search In","Suche in" },
340{ "Search...","Suche..." }, 340{ "Search...","Suche..." },
341{ "Search","Suche" }, 341{ "Search","Suche" },
342{ "Select Addresses","Wähle Adressen" }, 342{ "Select Addresses","Wähle Adressen" },
343{ "Select all","Selektiere Alle" }, 343{ "Select all","Selektiere Alle" },
344{ "Select a month","Wähle Monat" }, 344{ "Select a month","Wähle Monat" },
345{ "Select a week","Wähle Woche" }, 345{ "Select a week","Wähle Woche" },
346{ "Select a year","Wähle Jahr" }, 346{ "Select a year","Wähle Jahr" },
347{ "Send directly","Sende direkt" }, 347{ "Send directly","Sende direkt" },
348{ "&Send Messages","&Sende Nachrichten", }, 348{ "&Send Messages","&Sende Nachrichten", },
349{ "Sep","Sep" }, 349{ "Sep","Sep" },
350{ "September","September" }, 350{ "September","September" },
351{ "Shopping","Einkaufen" }, 351{ "Shopping","Einkaufen" },
352{ "Show Dates","Zeige Daten" }, 352{ "Show Dates","Zeige Daten" },
353{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." }, 353{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." },
354{ "Show Event","Termin anzeigen" }, 354{ "Show Event","Termin anzeigen" },
355{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." }, 355{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." },
356{ "Show Marcus Bains line","Zeige Marcus Bains Linie" }, 356{ "Show Marcus Bains line","Zeige Marcus Bains Linie" },
357{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." }, 357{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." },
358{ "Show time as:","Zeige Zeit als" }, 358{ "Show time as:","Zeige Zeit als" },
359{ "Show Todo","Todo anzeigen" }, 359{ "Show Todo","Todo anzeigen" },
360{ "Vertical screen layout(Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" }, 360{ "Vertical screen layout(Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" },
361{ "&Show","Anzeigen" }, 361{ "&Show","Anzeigen" },
362{ "Show...","Anzeigen..." }, 362{ "Show...","Anzeigen..." },
363{ "Show","Anzeigen" }, 363{ "Show","Anzeigen" },
364{ "Small","Klein" }, 364{ "Small","Klein" },
365{ "Sorry","Tut mir leid" }, 365{ "Sorry","Tut mir leid" },
366{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"}, 366{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"},
367{ "Start:","Start:" }, 367{ "Start:","Start:" },
368{ "Start Date","Start Datum" }, 368{ "Start Date","Start Datum" },
369{ "Start date: %1","Start Datum: %1" }, 369{ "Start date: %1","Start Datum: %1" },
370{ "Start Time","Start Zeit" }, 370{ "Start Time","Start Zeit" },
371{ "Status:","Status:" }, 371{ "Status:","Status:" },
372{ "Status","Status:" }, 372{ "Status","Status:" },
373{ "Summaries","Titel" }, 373{ "Summaries","Titel" },
374{ "Summary:","Titel:" }, 374{ "Summary:","Titel:" },
375{ "Summary","Titel" }, 375{ "Summary","Titel" },
376{ "Sunday","Sonntag" }, 376{ "Sunday","Sonntag" },
377{ "Sun","So" }, 377{ "Sun","So" },
378{ "Sync preferences:","Sync Einstellungen" }, 378{ "Sync preferences:","Sync Einstellungen" },
379{ "Sync Prefs","Sync Einstellungen" }, 379{ "Sync Prefs","Sync Einstellungen" },
380{ "Syncronize","Daten abgleich" }, 380{ "Syncronize","Daten abgleich" },
381{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, 381{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" },
382{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, 382{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" },
383{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, 383{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" },
384{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges Todo" }, 384{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges Todo" },
385{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" }, 385{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" },
386{ "Template...","Vorlage..." }, 386{ "Template...","Vorlage..." },
387{ "This day","Dieser Tag" }, 387{ "This day","Dieser Tag" },
388{ "This is an experimental feature. ","Dieses Feature ist experimentel" }, 388{ "This is an experimental feature. ","Dieses Feature ist experimentel" },
389{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." }, 389{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." },
390{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." }, 390{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." },
391{ "Thu","Do" }, 391{ "Thu","Do" },
392{ "Thursday","Donnerstag" }, 392{ "Thursday","Donnerstag" },
393{ "Time associated","Mit Zeit" }, 393{ "Time associated","Mit Zeit" },
394{ "Time bar:","Uhrzeit Zeile:" }, 394{ "Time bar:","Uhrzeit Zeile:" },
395{ "Time && Date","Zeit und Datum" }, 395{ "Time && Date","Zeit und Datum" },
396{ "Time Format","Zeit Format" }, 396{ "Time Format","Zeit Format" },
397{ "Time Format(nr):","Zeit Format(Neustart!)" }, 397{ "Time Format(nr):","Zeit Format(Neustart!)" },
398{ "Date Labels:","Datumsleiste:" }, 398{ "Date Labels:","Datumsleiste:" },
399{ "Time: ","Zeit: " }, 399{ "Time: ","Zeit: " },
400{ "Timezone:","Zeitzone:" }, 400{ "Timezone:","Zeitzone:" },
401{ "To: ","Bis: " }, 401{ "To: ","Bis: " },
402{ "To:","Bis:" }, 402{ "To:","Bis:" },
403{ "Today: ","Heute: " }, 403{ "Today: ","Heute: " },
404{ "Todo due today color:","Heute fällige Todos" }, 404{ "Todo due today color:","Heute fällige Todos" },
405{ "To-do items:","To-Do items:" }, 405{ "To-do items:","To-Do items:" },
406{ "Todo overdue color:","Überfällige Todos" }, 406{ "Todo overdue color:","Überfällige Todos" },
407{ "Todo","Todo" }, 407{ "Todo","Todo" },
408{ "To-do view shows completed Todos","Todo Ansicht zeigt erledigte Todos" }, 408{ "To-do view shows completed Todos","Todo Ansicht zeigt erledigte Todos" },
409{ "ToDoView:","Todo Ansicht:" }, 409{ "ToDoView:","Todo Ansicht:" },
410{ "Toggle Alarm","Wechsle Alarm" }, 410{ "Toggle Alarm","Wechsle Alarm" },
411{ "Toggle Allday","Umschalten Ganztag" }, 411{ "Toggle Allday","Umschalten Ganztag" },
412{ "Tomorrow: ","Morgen: " }, 412{ "Tomorrow: ","Morgen: " },
413{ "Tue","Di" }, 413{ "Tue","Di" },
414{ "Tuesday","Dienstag" }, 414{ "Tuesday","Dienstag" },
415{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" }, 415{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" },
416{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." }, 416{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." },
417{ "Unknown","Unbekannt" }, 417{ "Unknown","Unbekannt" },
418{ "Up","Hinauf" }, 418{ "Up","Hinauf" },
419{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" }, 419{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" },
420{ "User defined","Benutzerdefiniert" }, 420{ "User defined","Benutzerdefiniert" },
421{ "User long date:","Format langes Datum:" }, 421{ "User long date:","Format langes Datum:" },
422{ "User short date:","Forma kurzes Datum:" }, 422{ "User short date:","Forma kurzes Datum:" },
423{ "View","Ansicht" }, 423{ "View","Ansicht" },
424{ "View Fonts","Schriftarten Ansichten" }, 424{ "View Fonts","Schriftarten Ansichten" },
425{ "Views","Ansichten" }, 425{ "Views","Ansichten" },
426{ "Wed","Mi" }, 426{ "Wed","Mi" },
427{ "Wednesday","Mittwoch" }, 427{ "Wednesday","Mittwoch" },
428{ "Week %1","Woche %1" }, 428{ "Week %1","Woche %1" },
429{ "Weekly","Wöchentlich" }, 429{ "Weekly","Wöchentlich" },
430{ "Week starts on Sunday","Woche beginnt Sonntags" }, 430{ "Week starts on Sunday","Woche beginnt Sonntags" },
431{ "What's Next View:","What's Next Anz." }, 431{ "What's Next View:","What's Next Anz." },
432{ "What's next ?","Was kommt als nächstes?(What's Next)" }, 432{ "What's next ?","Was kommt als nächstes?(What's Next)" },
433{ "Working Hours","Tägliche Arbeitszeit" }, 433{ "Working Hours","Tägliche Arbeitszeit" },
434{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" }, 434{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" },
435{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" }, 435{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" },
436{ "Write back synced file","Syncronisierte Datei zurückschreiben" }, 436{ "Write back synced file","Syncronisierte Datei zurückschreiben" },
437{ "Yearly","Jährlich" }, 437{ "Yearly","Jährlich" },
438{ "year(s)","Jahr(e)" }, 438{ "year(s)","Jahr(e)" },
439{ "Yes","Ja" }, 439{ "Yes","Ja" },
440{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" }, 440{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" },
441{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." }, 441{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." },
442{ "week(s) on:","Woche(n) am: " }, 442{ "week(s) on:","Woche(n) am: " },
443{ "Full menu bar(nr)","Volle Menuleiste(bn)" }, 443{ "Full menu bar(nr)","Volle Menuleiste(bn)" },
444{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 444{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
445{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 445{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
446{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 446{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
447{ "Daylight start:","Sommerzeit Start:" }, 447{ "Daylight start:","Sommerzeit Start:" },
448{ "Daylight end:","Sommerzeit Ende:" }, 448{ "Daylight end:","Sommerzeit Ende:" },
449{ "Time Zone","Zeitzone" }, 449{ "Time Zone","Zeitzone" },
450{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" }, 450{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" },
451{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" }, 451{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" },
452{ "minutely","minütlich" }, 452{ "minutely","minütlich" },
453{ "hourly","stündlich" }, 453{ "hourly","stündlich" },
454{ "daily","täglich" }, 454{ "daily","täglich" },
455{ "weekly","wöchentlich" }, 455{ "weekly","wöchentlich" },
456{ "monthly","monatlich" }, 456{ "monthly","monatlich" },
457{ "day-monthly","tag-monatlich" }, 457{ "day-monthly","tag-monatlich" },
458{ "month-yearly","monat-jährlich" }, 458{ "month-yearly","monat-jährlich" },
459{ "day-yearly","tag-jährlich" }, 459{ "day-yearly","tag-jährlich" },
460{ "position-yearly","pos-jährlich" }, 460{ "position-yearly","pos-jährlich" },
461{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" }, 461{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" },
462{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" }, 462{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" },
463{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" }, 463{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" },
464{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" }, 464{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" },
465{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" }, 465{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" },
466{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." }, 466{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." },
467{ "Event list view uses full window","Listenansicht nutzt Vollbild" }, 467{ "Event list view uses full window","Listenansicht nutzt Vollbild" },
468{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" }, 468{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" },
469{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" }, 469{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" },
470{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" }, 470{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" },
471{ "ViewChange","Ansichtswechsel" }, 471{ "ViewChange","Ansichtswechsel" },
472{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" }, 472{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" },
473{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" }, 473{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" },
474{ "File","Datei" }, 474{ "File","Datei" },
475{ "Clone...","Dupliziere..." }, 475{ "Clone...","Dupliziere..." },
476{ "Move...","Bewege..." }, 476{ "Move...","Bewege..." },
477{ "Beam...","Sende via IR..." }, 477{ "Beam...","Sende via IR..." },
478{ "&Clone...","Dupliziere..." }, 478{ "&Clone...","Dupliziere..." },
479{ "&Move...","Bewege..." }, 479{ "&Move...","Bewege..." },
480{ "&Beam...","Sende via IR..." }, 480{ "&Beam...","Sende via IR..." },
481{ "Show Completed","Zeige erledigte Todos" }, 481{ "Show Completed","Zeige erledigte Todos" },
482{ "Show Quick Todo","Zeige Quick-Todo" }, 482{ "Show Quick Todo","Zeige Quick-Todo" },
483{ "Unparent Todo","Un-sub Todo" }, 483{ "Unparent Todo","Un-sub Todo" },
484{ "Save selected to file...","Speichere Selektierte..." }, 484{ "Save selected to file...","Speichere Selektierte..." },
485{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." }, 485{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." },
486{ "Set Categ. for selected...","Setze Kateg. für Selekt." }, 486{ "Set Categ. for selected...","Setze Kateg. für Selekt." },
487{ "Beam via IR...","Sende via IR..." }, 487{ "Beam via IR...","Sende via IR..." },
488{ "Search","Suchen" }, 488{ "Search","Suchen" },
489{ "Date Picker","Datum auswählen" }, 489{ "Date Picker","Datum auswählen" },
490{ "Day View","Tagesansicht" }, 490{ "Day View","Tagesansicht" },
491{ "Work Week","Arbeitswoche" }, 491{ "Work Week","Arbeitswoche" },
492{ "Week","Wochenansicht" }, 492{ "Week","Wochenansicht" },
493{ "Month","Monatsansicht" }, 493{ "Month","Monatsansicht" },
494{ "Todo View","Todo Liste" }, 494{ "Todo View","Todo Liste" },
495{ "Journal","Journal" }, 495{ "Journal","Journal" },
496{ "Next days","Nächste Tage" }, 496{ "Next days","Nächste Tage" },
497{ "Print agenda selection...","Drucke Agendaselektion..." }, 497{ "Print agenda selection...","Drucke Agendaselektion..." },
498{ "Toggle DateNavigator","Navigator umschalten" }, 498{ "Toggle DateNavigator","Navigator umschalten" },
499{ "Toggle FilterView","Filteransicht umschalten" }, 499{ "Toggle FilterView","Filteransicht umschalten" },
500{ "Prev. month","Vorheriger Monat" }, 500{ "Prev. month","Vorheriger Monat" },
501{ "Go backward","Gehe zurück" }, 501{ "Go backward","Gehe zurück" },
502{ "Go forward","Gehe weiter" }, 502{ "Go forward","Gehe weiter" },
503{ "Synchronize","Synchronisieren" }, 503{ "Synchronize","Synchronisieren" },
504{ "AgendaSize","Agendagröße" }, 504{ "AgendaSize","Agendagröße" },
505{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" }, 505{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" },
506{ "Import last file","Importiere letzte Datei" }, 506{ "Import last file","Importiere letzte Datei" },
507{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." }, 507{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." },
508{ "Save Backup...","Speichere Backup..." }, 508{ "Save Backup...","Speichere Backup..." },
509{ "Export VCalendar","Exportiere VCalendar" }, 509{ "Export VCalendar","Exportiere VCalendar" },
510{ "Manage new categories...","Verwalte neue Kategorien..." }, 510{ "Manage new categories...","Verwalte neue Kategorien..." },
511{ "Beam complete calendar...","Sende kompletten Kalender..." }, 511{ "Beam complete calendar...","Sende kompletten Kalender..." },
512{ "Beam filtered calendar...","Sende gefilterten Kalender..." }, 512{ "Beam filtered calendar...","Sende gefilterten Kalender..." },
513{ "Remote via ssh","Über Netzwerk via ssh" }, 513{ "Remote via ssh","Über Netzwerk via ssh" },
514{ "With local file","Mit lokaler Datei" }, 514{ "With local file","Mit lokaler Datei" },
515{ "With last file","Mit letzter Datei" }, 515{ "With last file","Mit letzter Datei" },
516{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" }, 516{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" },
517{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" }, 517{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" },
518{ "Save filename","Speichern: Dateinamen wählen" }, 518{ "Save filename","Speichern: Dateinamen wählen" },
519{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" }, 519{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" },
520{ "KO/Pi: Warning!","KO/Pi: Warnung!" }, 520{ "KO/Pi: Warning!","KO/Pi: Warnung!" },
521{ "Overwrite!","Überschreibe!" }, 521{ "Overwrite!","Überschreibe!" },
522{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 522{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
523{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" }, 523{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" },
524{ "KO/Pi Confirmation","KO/Pi Bestätigung" }, 524{ "KO/Pi Confirmation","KO/Pi Bestätigung" },
525{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" }, 525{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" },
526{ "Deleting item %d ...","Lösche Eintrag %d ..." }, 526{ "Deleting item %d ...","Lösche Eintrag %d ..." },
527{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." }, 527{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." },
528{ "Size","Größe" }, 528{ "Size","Größe" },
529{ "Date","Datum" }, 529{ "Date","Datum" },
530{ "Mime Type","Datei Typ" }, 530{ "Mime Type","Datei Typ" },
531{ "All Files","Alle Dateien" }, 531{ "All Files","Alle Dateien" },
532{ "Files","Dateien" }, 532{ "Files","Dateien" },
533{ "Documents","DoKumente" }, 533{ "Documents","DoKumente" },
534{ "Select Categories","Selektiere Kategorien" }, 534{ "Select Categories","Selektiere Kategorien" },
535{ " &Deselect All "," Auswahl aufheben " }, 535{ " &Deselect All "," Auswahl aufheben " },
536{ "A&dd","Hinzu" }, 536{ "A&dd","Hinzu" },
537{ "&Modify","Ändern" }, 537{ "&Modify","Ändern" },
538{ "Edit Categories","Editiere Kategorien" }, 538{ "Edit Categories","Editiere Kategorien" },
539{ " &Edit Categories "," &Editiere Kategorien " }, 539{ " &Edit Categories "," &Editiere Kategorien " },
540{ "Beam Options","Beam Einstellungen" }, 540{ "Beam Options","Beam Einstellungen" },
541{ " With timezone "," Mit Zeitzone " }, 541{ " With timezone "," Mit Zeitzone " },
542{ " Local time ", " Lokale Zeit " }, 542{ " Local time ", " Lokale Zeit " },
543{ "Manage new Categories","Verwalte neue Kategorien" }, 543{ "Manage new Categories","Verwalte neue Kategorien" },
544{ "Add to category list","Füge zur Kategorieliste hinzu" }, 544{ "Add to category list","Füge zur Kategorieliste hinzu" },
545{ "Remove from Events/Todos","Entferne von Terminen/Todos" }, 545{ "Remove from Events/Todos","Entferne von Terminen/Todos" },
546{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" }, 546{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" },
547{ "File format","Datei Format" }, 547{ "File format","Datei Format" },
548{ "Time format","Zeit Format" }, 548{ "Time format","Zeit Format" },
549{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." }, 549{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." },
550{ "KO/Pi:File Saved. Needed %d sec, %d ms","KO/Pi: Abgespeichert in %d sec, %d ms" }, 550{ "KO/Pi:File Saved. Needed %d sec, %d ms","KO/Pi: Abgespeichert in %d sec, %d ms" },
551{ "h","Std" }, 551{ "h","Std" },
552{ "min","Min" }, 552{ "min","Min" },
553{ "hou","Std" }, 553{ "hou","Std" },
554{ "day","Tag" }, 554{ "day","Tag" },
555{ "French","Französich" }, 555{ "French","Französich" },
556{ "Time","Zeit" }, 556{ "Time","Zeit" },
557{ "Event Viewer","Termin Anzeige" }, 557{ "Event Viewer","Termin Anzeige" },
558{ "Cancel Sync","Sync Abbrechen" }, 558{ "Cancel Sync","Sync Abbrechen" },
559{ "Remote","Fern" }, 559{ "Remote","Fern" },
560{ "Local","Lokal" }, 560{ "Local","Lokal" },
561{ "Conflict! Please choose entry","Konflikt! Bitte Eintrag wählen" }, 561{ "Conflict! Please choose entry","Konflikt! Bitte Eintrag wählen" },
562{ "Local: ","Lokal: " }, 562{ "Local: ","Lokal: " },
563{ "Remote: ","Fern: " }, 563{ "Remote: ","Fern: " },
564{ "Last modified: ","Zuletzt geändert: " }, 564{ "Last modified: ","Zuletzt geändert: " },
565{ "Location: ","Ort: " }, 565{ "Location: ","Ort: " },
566{ "<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>","<p><b>Von:</b> %1 </p><p><b>Bis:</b> %2</p>" }, 566{ "<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>","<p><b>Von:</b> %1 </p><p><b>Bis:</b> %2</p>" },
567{ "<p><b>On:</b> %1</p>","<p><b>Am:</b> %1</p>" }, 567{ "<p><b>On:</b> %1</p>","<p><b>Am:</b> %1</p>" },
568{ "<p><b>From:</b> %1</p> ","<p><b>Von:</b> %1</p> " }, 568{ "<p><b>From:</b> %1</p> ","<p><b>Von:</b> %1</p> " },
569{ "<p><b>To:</b> %1</p>","<p><b>Bis:</b> %1</p>" }, 569{ "<p><b>To:</b> %1</p>","<p><b>Bis:</b> %1</p>" },
570{ "<p><b>On:</b> %1</p> ","<p><b>Am:</b> %1</p> " }, 570{ "<p><b>On:</b> %1</p> ","<p><b>Am:</b> %1</p> " },
571{ "<p><b>From:</b> %1 <b>To:</b> %2</p>","<p><b>Von:</b> %1 <b>Bis:</b> %2</p>" }, 571{ "<p><b>From:</b> %1 <b>To:</b> %2</p>","<p><b>Von:</b> %1 <b>Bis:</b> %2</p>" },
572{ "This is a %1 recurring event.","Das ist ein %1 wiederholender Termin." }, 572{ "This is a %1 recurring event.","Das ist ein %1 wiederholender Termin." },
573{ "<b>Next recurrence is on:</b>","<b>Nächste Wiederholung ist am:</b>" }, 573{ "<b>Next recurrence is on:</b>","<b>Nächste Wiederholung ist am:</b>" },
574{ "<b>Last recurrence was on:</b>","<b>Letzte Wiederholung war am:</b>" }, 574{ "<b>Last recurrence was on:</b>","<b>Letzte Wiederholung war am:</b>" },
575{ "( %1 min before )","( %1 min vorher )" }, 575{ "( %1 min before )","( %1 min vorher )" },
576{ "<b>Alarm on: ","<b>Alarm am: " }, 576{ "<b>Alarm on: ","<b>Alarm am: " },
577{ "<b>Details: </b>","<b>Details: </b>" }, 577{ "<b>Details: </b>","<b>Details: </b>" },
578{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 578{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
579{ "<p><i>%1 % completed</i></p>","<p><i>%1 % erledigt</i></p>" }, 579{ "<p><i>%1 % completed</i></p>","<p><i>%1 % erledigt</i></p>" },
580{ "Organizer","Organisator" }, 580{ "Organizer","Organisator" },
581{ "Save","Speichern" }, 581{ "Save","Speichern" },
582{ "Exit (+save)","Beenden(+speichern)" }, 582{ "Exit (+save)","Beenden(+speichern)" },
583{ "Home","Zuhause" }, 583{ "Home","Zuhause" },
584{ "Office","Büro" }, 584{ "Office","Büro" },
585{ "Library","Bibliothek" }, 585{ "Library","Bibliothek" },
586{ "Doctor","Arzt" }, 586{ "Doctor","Arzt" },
587{ "Beach","Strand" }, 587{ "Beach","Strand" },
588{ "Conference room","Konferenzraum" }, 588{ "Conference room","Konferenzraum" },
589{ "Drive Home","Heimfahrt" }, 589{ "Drive Home","Heimfahrt" },
590{ "Watch TV","Tv gucken" }, 590{ "Watch TV","Tv gucken" },
591{ "Phone call","Telefonanruf" }, 591{ "Phone call","Telefonanruf" },
592{ "Pay bill","Rechnung bezahlen" }, 592{ "Pay bill","Rechnung bezahlen" },
593{ "Read book","Buch lesen" }, 593{ "Read book","Buch lesen" },
594{ "Watering plants","Pflanzen giessen" }, 594{ "Watering plants","Pflanzen giessen" },
595{"Appointment","Verabredung" }, 595{"Appointment","Verabredung" },
596{"Birthday","Geburtstag" }, 596{"Birthday","Geburtstag" },
597{"Business","Geschäft" }, 597{"Business","Geschäft" },
598{"Business Travel","Geschäftsreise" }, 598{"Business Travel","Geschäftsreise" },
599{"Cinema","Kino" }, 599{"Cinema","Kino" },
600{"Customer","Kunde" }, 600{"Customer","Kunde" },
601{"Break","Pause" }, 601{"Break","Pause" },
602{"Breakfast","Frühstück" }, 602{"Breakfast","Frühstück" },
603{"Competition","Wettkampf" }, 603{"Competition","Wettkampf" },
604{"Dinner","Abendessen" }, 604{"Dinner","Abendessen" },
605{"Education","Erziehung" }, 605{"Education","Erziehung" },
606{"Family","Familie" }, 606{"Family","Familie" },
607{"Favorites","Favoriten" }, 607{"Favorites","Favoriten" },
608{"Festival","Festival" }, 608{"Festival","Festival" },
609{"Fishing","Angeln" }, 609{"Fishing","Angeln" },
610{"Flight","Flug" }, 610{"Flight","Flug" },
611{"Gifts","Geschenk" }, 611{"Gifts","Geschenk" },
612{"Holiday","Feiertag" }, 612{"Holiday","Feiertag" },
613{"Holiday Cards","Ansichtskarten" }, 613{"Holiday Cards","Ansichtskarten" },
614{"Hot Contacts","Heisse Kontakte" }, 614{"Hot Contacts","Heisse Kontakte" },
615{"Hiking","Wandern" }, 615{"Hiking","Wandern" },
616{"Hunting","Jagen" }, 616{"Hunting","Jagen" },
617{"Key Customer","Wichtiger Kunde" }, 617{"Key Customer","Wichtiger Kunde" },
618{"Kids","Kinder" }, 618{"Kids","Kinder" },
619{"Lunch","Mittagessen" }, 619{"Lunch","Mittagessen" },
620{"Meeting","Treffen" }, 620{"Meeting","Treffen" },
621{"Miscellaneous","Verschiedenes" }, 621{"Miscellaneous","Verschiedenes" },
622{"Partner","Partner" }, 622{"Partner","Partner" },
623{"Party","Partie" }, 623{"Party","Partie" },
624{"Personal","Privat" }, 624{"Personal","Privat" },
625{"Personal Travel","Privatreise"}, 625{"Personal Travel","Privatreise"},
626{"PHB","PHB" }, 626{"PHB","PHB" },
627{"Phone Calls","Telefonanruf" }, 627{"Phone Calls","Telefonanruf" },
628{"Projects","Projekt" }, 628{"Projects","Projekt" },
629{"Recurring","Wiederholend" }, 629{"Recurring","Wiederholend" },
630{"School","Schule" }, 630{"School","Schule" },
631{"Shopping","Einkaufen" }, 631{"Shopping","Einkaufen" },
632{"Speach","Rede" }, 632{"Speach","Rede" },
633{"Special Occasion","Spez.Gelegenheit" }, 633{"Special Occasion","Spez.Gelegenheit" },
634{"Sports","Sport" }, 634{"Sports","Sport" },
635{"Talk","Vortrag" }, 635{"Talk","Vortrag" },
636{"Travel","Reise" }, 636{"Travel","Reise" },
637{"TV","TV" }, 637{"TV","TV" },
638{"Germany","Deutschland" }, 638{"Germany","Deutschland" },
639{"Sweden","Schweden" }, 639{"Sweden","Schweden" },
640{"Forest","Wald" }, 640{"Forest","Wald" },
641{ "Desert","Wüste" }, 641{ "Desert","Wüste" },
642{ "Kitchen","Küche" }, 642{ "Kitchen","Küche" },
643{ "Lake","See" }, 643{ "Lake","See" },
644{"University","Universität"}, 644{"University","Universität"},
645{"Vacation","Urlaub" }, 645{"Vacation","Urlaub" },
646{"VIP","VIP" }, 646{"VIP","VIP" },
647{ "Import Sharp Calendar","Importiere Sharp Kalender" }, 647{ "Import Sharp Calendar","Importiere Sharp Kalender" },
648{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" }, 648{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" },
649{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" }, 649{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" },
650{ "Cancelled","Gecancelt" }, 650{ "Cancelled","Gecancelt" },
651{ "Multiple sync","Mehrfach Sync" }, 651{ "Multiple sync","Mehrfach Sync" },
652{ "Local file","Lokale Datei" }, 652{ "Local file","Lokale Datei" },
653{ "Last file","Letzte Datei" }, 653{ "Last file","Letzte Datei" },
654{ "Keys + Colors...","Tasten + Farben..." }, 654{ "Keys + Colors...","Tasten + Farben..." },
655{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" }, 655{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" },
656{ "Quick load/save (w/o Unicode)","Schnelles Laden/Speichern (o Unicode)" }, 656{ "Quick load/save (w/o Unicode)","Schnelles Laden/Speichern (o Unicode)" },
657{ "Choose...","Wähle..." }, 657{ "Choose...","Wähle..." },
658{ "Use colors for application:","Setze Farben für Programm:" }, 658{ "Use colors for application:","Setze Farben für Programm:" },
659{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" }, 659{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" },
660{ "Frames, labels, etc.:","Rahmen, Label, etc.:" }, 660{ "Frames, labels, etc.:","Rahmen, Label, etc.:" },
661{ "Show parent To-Do's","Zeige Ober-Todos" }, 661{ "Show parent To-Do's","Zeige Ober-Todos" },
662{ "Show location","Zeige Orte" }, 662{ "Show location","Zeige Orte" },
663{ "Show events that recur ","Zeige Termine, die sich wiederholen:" }, 663{ "Show events that recur ","Zeige Termine, die sich wiederholen:" },
664{ "Show in every cell ","Zeige in jeder Zelle " }, 664{ "Show in every cell ","Zeige in jeder Zelle " },
665{ "short month","kurzen Monat" }, 665{ "short month","kurzen Monat" },
666{ "icons","Icons" }, 666{ "icons","Icons" },
667{ "Show Sat/Sun together","Zeige Sam/Son zusammen" }, 667{ "Show Sat/Sun together","Zeige Sam/Son zusammen" },
668{ "Category colors are applied to text","Kategorie Farben färben Text" }, 668{ "Category colors are applied to text","Kategorie Farben färben Text" },
669{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" }, 669{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" },
670{ "Day color odd months","Tagesfarbe ungerade Monate" }, 670{ "Day color odd months","Tagesfarbe ungerade Monate" },
671{ "Day color even months","Tagesfarbe gerade Monate" }, 671{ "Day color even months","Tagesfarbe gerade Monate" },
672{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" }, 672{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" },
673{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" }, 673{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" },
674{ "Small To-do view uses smaller font","Kleine Todo Ansicht nutzt kleineren Font" }, 674{ "Small To-do view uses smaller font","Kleine Todo Ansicht nutzt kleineren Font" },
675{ "Colors are applied to text","Farben werden auf Text angewendet" }, 675{ "Colors are applied to text","Farben werden auf Text angewendet" },
676{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" }, 676{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" },
677{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" }, 677{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" },
678{ "Play beeps count:","Anzahl der Alarmpiepse: " }, 678{ "Play beeps count:","Anzahl der Alarmpiepse: " },
679{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " }, 679{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " },
680{ "Default suspend time in min:","Standard Supendierungs Zeit: " }, 680{ "Default suspend time in min:","Standard Supendierungs Zeit: " },
681{ "Auto suspend count:","Anzahl der auto Suspendierungen" }, 681{ "Auto suspend count:","Anzahl der auto Suspendierungen" },
682{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" }, 682{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" },
683{ "New profile","Neues Profil" }, 683{ "New profile","Neues Profil" },
684{ "Clone profile","Klone Profil" }, 684{ "Clone profile","Klone Profil" },
685{ "Delete profile","Lösche Profil" }, 685{ "Delete profile","Lösche Profil" },
686{ "Profile:","Profil:" }, 686{ "Profile:","Profil:" },
687{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" }, 687{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" },
688{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" }, 688{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" },
689{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" }, 689{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" },
690{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" }, 690{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" },
691{ "Write back file","Schreibe Datei zurück" }, 691{ "Write back file","Schreibe Datei zurück" },
692{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" }, 692{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" },
693{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" }, 693{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" },
694{ "Local device name:","Name dieses Gerätes:" }, 694{ "Local device name:","Name dieses Gerätes:" },
695{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" }, 695{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" },
696{ "Sync preferences","Synchronisations Einstellungen" }, 696{ "Sync preferences","Synchronisations Einstellungen" },
697{ "Profile kind","Profil Art" }, 697{ "Profile kind","Profil Art" },
698{ "Local file","Lokale Datei" }, 698{ "Local file","Lokale Datei" },
699{ "Local file:","Lokale Datei:" }, 699{ "Local file:","Lokale Datei:" },
700{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, 700{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" },
701{ "Fill in default values for:","Setze Beispiel Werte ein für:" }, 701{ "Fill in default values for:","Setze Beispiel Werte ein für:" },
702{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, 702{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" },
703{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, 703{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"},
704{ "Device","Gerät:" }, 704{ "Device","Gerät:" },
705{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, 705{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" },
706{ "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","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" }, 706{ "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","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" },
707{ "Synchronization successful","Synchronisation erfolgreich" }, 707{ "Synchronization successful","Synchronisation erfolgreich" },
708{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, 708{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." },
709{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, 709{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" },
710{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, 710{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" },
711{ "Enter password","Passwort eingeben" }, 711{ "Enter password","Passwort eingeben" },
712{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, 712{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" },
713{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, 713{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." },
714{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, 714{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" },
715{ "Writing back file result: ","Resultat des Dateizurückschreibens: " }, 715{ "Writing back file result: ","Resultat des Dateizurückschreibens: " },
716{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, 716{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" },
717{ "Edit Calendar Filters","Editiere Kalendar Filter" }, 717{ "Edit Calendar Filters","Editiere Kalendar Filter" },
718{ "Enter filter name:","Neuer Filter Name:" }, 718{ "Enter filter name:","Neuer Filter Name:" },
719{ "Add Filter","Filter hinzufügen" }, 719{ "Add Filter","Filter hinzufügen" },
720{ "Question","Frage" }, 720{ "Question","Frage" },
721{ "Filter position: ","Filter Position: " }, 721{ "Filter position: ","Filter Position: " },
722{ "Month View","Monatsansicht" }, 722{ "Month View","Monatsansicht" },
723{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" }, 723{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" },
724{ "KO/Pi config error","KO/Pi Konfig. Fehler" }, 724{ "KO/Pi config error","KO/Pi Konfig. Fehler" },
725{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, 725{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" },
726{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" }, 726{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" },
727{ "Access: ","Zugriff: " }, 727{ "Access: ","Zugriff: " },
728{ "Needs Action","Aktion notwendig" }, 728{ "Needs Action","Aktion notwendig" },
729{ "Accepted","Akzeptiert" }, 729{ "Accepted","Akzeptiert" },
730{ "Declined","Abgelehnt" }, 730{ "Declined","Abgelehnt" },
731{ "Tentative","Vorläufig" }, 731{ "Tentative","Vorläufig" },
732{ "Delegated","Beauftragt" }, 732{ "Delegated","Beauftragt" },
733{ "Completed","Vollständig" }, 733{ "Completed","Vollständig" },
734{ "In Process","In Bearbeitung" }, 734{ "In Process","In Bearbeitung" },
735{ "Participant","Teilnehmer" }, 735{ "Participant","Teilnehmer" },
736{ "Optional Participant","Möglicher Teilnehmer" }, 736{ "Optional Participant","Möglicher Teilnehmer" },
737{ "Observer","Beobachter" }, 737{ "Observer","Beobachter" },
738{ "Chair","Vorsitzender" }, 738{ "Chair","Vorsitzender" },
739{ "Not supported \non desktop!\n","" }, 739{ "Not supported \non desktop!\n","" },
740{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die vertikale Auswahl zum Drucken zu bestimmen,\nbitte einen vertikalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen.\n(Es wird danach direkt der Termin Dialog angezeigt\n - dort bitte auf Abbrechen klicken) " }, 740{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die vertikale Auswahl zum Drucken zu bestimmen,\nbitte einen vertikalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen.\n(Es wird danach direkt der Termin Dialog angezeigt\n - dort bitte auf Abbrechen klicken) " },
741{ "Date range: ","Datums Zeitspanne: " }, 741{ "Date range: ","Datums Zeitspanne: " },
742{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " }, 742{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " },
743{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." }, 743{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." },
744{ "Add / remove events","Add./entferne Termine" }, 744{ "Add / remove events","Add./entferne Termine" },
745{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." }, 745{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." },
746{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." }, 746{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." },
747{ "Overwrite","Überschreiben" }, 747{ "Overwrite","Überschreiben" },
748{ "Sync+save","Syncen+speichern" }, 748{ "Sync+save","Syncen+speichern" },
749{ "Default","Standard" }, 749{ "Default","Standard" },
750{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, 750{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " },
751{ " %d items?"," %d Einträge?" }, 751{ " %d items?"," %d Einträge?" },
752{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" }, 752{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" },
753{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, 753{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" },
754{ "Current","Aktuelle" }, 754{ "Current","Aktuelle" },
755{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" }, 755{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" },
756{ "All","Alle" }, 756{ "All","Alle" },
757{ "Data Loss Warning","Datenverlust Warnung" }, 757{ "Data Loss Warning","Datenverlust Warnung" },
758{ "Proceed","Weitermachen" }, 758{ "Proceed","Weitermachen" },
759{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, 759{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" },
760{ "Filter disabled ","Filter abgeschaltet" }, 760{ "Filter disabled ","Filter abgeschaltet" },
761{ "Filter selected: ","Gewählter Filter: " }, 761{ "Filter selected: ","Gewählter Filter: " },
762{ "Toggle Cancel","Gecancelt ändern" }, 762{ "Toggle Cancel","Gecancelt ändern" },
763{ "&Toggle Cancel","Gecancel&t ändern" }, 763{ "&Toggle Cancel","Gecancel&t ändern" },
764{ "Configure Toolbar","Konfiguriere Toolbar" }, 764{ "Configure Toolbar","Konfiguriere Toolbar" },
765{ "Stretched TB","Gedehnte TB" }, 765{ "Stretched TB","Gedehnte TB" },
766{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, 766{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" },
767{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, 767{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" },
768{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" }, 768{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" },
769{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, 769{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" },
770{ "Imported file successfully","Datei erfolgreich importiert" }, 770{ "Imported file successfully","Datei erfolgreich importiert" },
771{ "Error importing file","Fehler beim Importieren der Datei" }, 771{ "Error importing file","Fehler beim Importieren der Datei" },
772{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, 772{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" },
773{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" }, 773{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" },
774{ "Overwrite!","Überschreiben!" }, 774{ "Overwrite!","Überschreiben!" },
775{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" }, 775{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" },
776{ "Load backup filename","Lade Backup Dateiname" }, 776{ "Load backup filename","Lade Backup Dateiname" },
777{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, 777{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" },
778{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, 778{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" },
779{ "Save backup filename","Speichere Backup Dateiname" }, 779{ "Save backup filename","Speichere Backup Dateiname" },
780{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" }, 780{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" },
781{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 781{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
782{ "Details of attendee","Teilnehmerdetails" }, 782{ "Details of attendee","Teilnehmerdetails" },
783{ "Work phone:\n","Telefon Arbeit:\n" }, 783{ "Work phone:\n","Telefon Arbeit:\n" },
784{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, 784{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" },
785{ "Home phone:\n","Telefon privat:\n" }, 785{ "Home phone:\n","Telefon privat:\n" },
786{ "Mobile home phone:\n","Mobiltelefon privat:\n" }, 786{ "Mobile home phone:\n","Mobiltelefon privat:\n" },
787{ "Email:\n","Email:\n" }, 787{ "Email:\n","Email:\n" },
788{ "Alarm disabled for this item","Alarm deaktiviert für dieses Item" }, 788{ "Alarm disabled for this item","Alarm deaktiviert für dieses Item" },
789{ "Audio Al.: ","Audio Al.: " }, 789{ "Audio Al.: ","Audio Al.: " },
790{ "Proc.Al.: ","Proz.Al.: " }, 790{ "Proc.Al.: ","Proz.Al.: " },
791{ "No sound set","Kein Sound definiert" }, 791{ "No sound set","Kein Sound definiert" },
792{ "*.wav|Wav Files","*.wav|Wav Dateien" }, 792{ "*.wav|Wav Files","*.wav|Wav Dateien" },
793{ "No program set","Kein Programm definiert" }, 793{ "No program set","Kein Programm definiert" },
794{ "Running '%1'","Ausführen '%1'" }, 794{ "Running '%1'","Ausführen '%1'" },
795{ "Playing '%1'","Abspielen '%1'" }, 795{ "Playing '%1'","Abspielen '%1'" },
796{ "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" }, 796{ "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" },
797{ "Load!","Laden!" }, 797{ "Load!","Laden!" },
798{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" }, 798{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" },
799{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" }, 799{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" },
800{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" }, 800{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" },
801{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" }, 801{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" },
802{ "Features + hints...","Eigenschaften + Tipps..." }, 802{ "Features + hints...","Eigenschaften + Tipps..." },
803{ "User translation...","Benutzer Übersetzung..." }, 803{ "User translation...","Benutzer Übersetzung..." },
804{ "Sync HowTo...","Synchronisation HowTo..." }, 804{ "Sync HowTo...","Synchronisation HowTo..." },
805{ "Print calendar...","Drucke Kalender..." }, 805{ "Print calendar...","Drucke Kalender..." },
806{ "Anniversary","Jahrestag" }, 806{ "Anniversary","Jahrestag" },
807{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" }, 807{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" },
808{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" }, 808{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" },
809{ "Next recurrence is on: ","Nächste Wiederholung ist am:" }, 809{ "Next recurrence is on: ","Nächste Wiederholung ist am:" },
810{ "<b>Alarm on: </b>","<b>Alarm am: </b>" }, 810{ "<b>Alarm on: </b>","<b>Alarm am: </b>" },
811{ "<b>Access: </b>","<b>Zugriff: </b>" }, 811{ "<b>Access: </b>","<b>Zugriff: </b>" },
812{ "(%1 min before)","(%1 min vorher)" }, 812{ "(%1 min before)","(%1 min vorher)" },
813{ "<b>Categories: </b>","<b>Kategorien: </b>" }, 813{ "<b>Categories: </b>","<b>Kategorien: </b>" },
814{ "Save Journal/Description...","Speichere Journal/Details..." }, 814{ "Save Journal/Description...","Speichere Journal/Details..." },
815{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." }, 815{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." },
816{ "Continue","Weitermachen" }, 816{ "Continue","Weitermachen" },
817{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" }, 817{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" },
818{ "Attendee:","Teilnehmer:" }, 818{ "Attendee:","Teilnehmer:" },
819{ "Click OK to search ->","Klicke zum Suchen auf OK ->" }, 819{ "Click OK to search ->","Klicke zum Suchen auf OK ->" },
820{ "On day ","Am Tag " }, 820{ "On day ","Am Tag " },
821{ "%1 of ","%1 des Monats" }, 821{ "%1 of ","%1 des Monats" },
822{ "%1 of the year","%1 des Jahres" }, 822{ "%1 of the year","%1 des Jahres" },
823{ "Anonymous","Anonymo" }, 823{ "Anonymous","Anonymo" },
824{ "nobody@nowhere","niemand@nirgendwo" }, 824{ "nobody@nowhere","niemand@nirgendwo" },
825{ "calendar.html","calendar.html" }, 825{ "calendar.html","calendar.html" },
826{ " Local Time"," Lokale Zeit" }, 826{ " Local Time"," Lokale Zeit" },
827{ "Unknown Name","Unbekannter Name" }, 827{ "Unknown Name","Unbekannter Name" },
828{ "unknown@nowhere","unbekannt@nirgendwo" }, 828{ "unknown@nowhere","unbekannt@nirgendwo" },
829{ "Beam via IR!","Beam via IR!" }, 829{ "Beam via IR!","Beam via IR!" },
830{ "Next Month","Nächster Monat" }, 830{ "Next Month","Nächster Monat" },
831{ "Prio","Prio" }, 831{ "Prio","Prio" },
832{ "Reparent Todo","Mache Sub-Todo" }, 832{ "Reparent Todo","Mache Sub-Todo" },
833{ "tomorrow","morgen" }, 833{ "tomorrow","morgen" },
834{ "today","heute" }, 834{ "today","heute" },
835{ "yesterday","gestern" }, 835{ "yesterday","gestern" },
836{ "Ok","Ok" }, 836{ "Ok","Ok" },
837{ "Ok+Agenda","Ok+Agenda" }, 837{ "Ok+Agenda","Ok+Agenda" },
838{ "Email","Email" }, 838{ "Email","Email" },
839{ "RSVP","RSVP" }, 839{ "RSVP","RSVP" },
840{ "Email:","Email:" }, 840{ "Email:","Email:" },
841{ "Appointment Time ","Termin Zeit " }, 841{ "Appointment Time ","Termin Zeit " },
842{ "2","2" }, 842{ "2","2" },
843{ "3","3" }, 843{ "3","3" },
844{ "4","4" }, 844{ "4","4" },
845{ " 0 %"," 0 %" }, 845{ " 0 %"," 0 %" },
846{ " 20 %"," 20 %" }, 846{ " 20 %"," 20 %" },
847{ " 40 %"," 40 %" }, 847{ " 40 %"," 40 %" },
848{ " 60 %"," 60 %" }, 848{ " 60 %"," 60 %" },
849{ " 80 %"," 80 %" }, 849{ " 80 %"," 80 %" },
850{ "100 %","100 %" }, 850{ "100 %","100 %" },
851{ "Filter","Filter" }, 851{ "Filter","Filter" },
852{ "Configure","Konfiguriere" }, 852{ "Configure","Konfiguriere" },
853{ "What's Next","What's Next" }, 853{ "What's Next","What's Next" },
854{ "Complete calendar...","Kompletten Kalender..." }, 854{ "Complete calendar...","Kompletten Kalender..." },
855{ "Filtered calendar...","Gefilterten Kalender..." }, 855{ "Filtered calendar...","Gefilterten Kalender..." },
856{ "Export to phone","Exportiere zum Handy" }, 856{ "Export to phone","Exportiere zum Handy" },
857{ "Beam receive enabled","Beam Empfang an" }, 857{ "Beam receive enabled","Beam Empfang an" },
858{ "What's new?","Was ist neu?" }, 858{ "What's new?","Was ist neu?" },
859{ "FAQ...","FAQ..." }, 859{ "FAQ...","FAQ..." },
860{ "Licence...","Licence..." }, 860{ "Licence...","Licence..." },
861{ "What's This?","What's This?" }, 861{ "What's This?","What's This?" },
862{ "&Edit...","Bearbeite..." }, 862{ "&Edit...","Bearbeite..." },
863{ "Oktober","Oktober" }, 863{ "Oktober","Oktober" },
864{ "Title","Titel" }, 864{ "Title","Titel" },
865{ "%1 %","%1 %" }, 865{ "%1 %","%1 %" },
866{ "Enable Pi-Sync","Schalte Pi-Sync an" }, 866{ "Enable Pi-Sync","Schalte Pi-Sync an" },
867{ "Import!","Importiere!" }, 867{ "Import!","Importiere!" },
868{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" }, 868{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" },
869{ "Export to phone options","Export ans Handy Optionen" }, 869{ "Export to phone options","Export ans Handy Optionen" },
870{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, 870{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." },
871{ "I/O device: ","I/O device: " }, 871{ "I/O device: ","I/O device: " },
872{ "Connection: ","Connection: " }, 872{ "Connection: ","Connection: " },
873{ "Model(opt.): ","Model(opt.): " }, 873{ "Model(opt.): ","Model(opt.): " },
874{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" }, 874{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" },
875{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " }, 875{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " },
876{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nTodo/Kalender Daten auf dem Handy!" }, 876{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nTodo/Kalender Daten auf dem Handy!" },
877{ "Export to mobile phone!","Exportiere auf das Handy!" }, 877{ "Export to mobile phone!","Exportiere auf das Handy!" },
878{ "Export complete calendar","Exportiere kompletten Kalender" }, 878{ "Export complete calendar","Exportiere kompletten Kalender" },
879{ "Writing to phone...","Sende Daten ans Handy..." }, 879{ "Writing to phone...","Sende Daten ans Handy..." },
880{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, 880{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" },
881{ "Retry","Nochmal versuchen" }, 881{ "Retry","Nochmal versuchen" },
882{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, 882{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" },
883{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, 883{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" },
884{ "Error exporting to phone!","Fehler beim Export auf das Handy!" }, 884{ "Error exporting to phone!","Fehler beim Export auf das Handy!" },
885{ "Export filtered calendar","Exportiere gefilterten Kalender" }, 885{ "Export filtered calendar","Exportiere gefilterten Kalender" },
886{ "Preferences","Vorlieben" }, 886{ "Preferences","Vorlieben" },
887{ "Global","Global" }, 887{ "Global","Global" },
888{ "Phone","Phone" }, 888{ "Phone","Phone" },
889{ "SMS","SMS" }, 889{ "SMS","SMS" },
890{ "Fax","Fax" }, 890{ "Fax","Fax" },
891{ "Pager","Pager" }, 891{ "Pager","Pager" },
892{ "SIP","SIP" }, 892{ "SIP","SIP" },
893{ "Italian","Italienisch" }, 893{ "Italian","Italienisch" },
894{ "24:00","24:00" }, 894{ "24:00","24:00" },
895{ "12:00am","12:00am" }, 895{ "12:00am","12:00am" },
896{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 896{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
897{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 897{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
898{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 898{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
899{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 899{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
900{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 900{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
901{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 901{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
902{ "Used Mail Client","Benutzter Mail Client" }, 902{ "Used Mail Client","Benutzter Mail Client" },
903{ "Channel:","Channel:" }, 903{ "Channel:","Channel:" },
904{ "Message:","Message:" }, 904{ "Message:","Message:" },
905{ "Parameters:","Parameter:" }, 905{ "Parameters:","Parameter:" },
906{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 906{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
907{ "extra Message:","extra Message:" }, 907{ "extra Message:","extra Message:" },
908{ "extra Parameters:","extra Parameter:" }, 908{ "extra Parameters:","extra Parameter:" },
909{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 909{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
910{ "External Apps.","Externe Appl." }, 910{ "External Apps.","Externe Appl." },
911{ "24 hours","24 Std." }, 911{ "24 hours","24 Std." },
912{ "3 hours","3 Std." }, 912{ "3 hours","3 Std." },
913{ "1 hour","1 Std." }, 913{ "1 hour","1 Std." },
914{ "15 minutes","15 Min." }, 914{ "15 minutes","15 Min." },
915{ "5 minutes","5 Min." }, 915{ "5 minutes","5 Min." },
916{ "1 minute","1 Min." }, 916{ "1 minute","1 Min." },
917{ "23","23" }, 917{ "23","23" },
918{ "Mon 15","Mon 15" }, 918{ "Mon 15","Mon 15" },
919{ "Configure KO","Konfiguriere KO" }, 919{ "Configure KO","Konfiguriere KO" },
920{ "Event text","Termin Text" }, 920{ "Event text","Termin Text" },
921{ "ToDo","Todo" }, 921{ "ToDo","Todo" },
922{ "Today","Heute" }, 922{ "Today","Heute" },
923{ "What's Next View","What's Next Ansicht" }, 923{ "What's Next View","What's Next Ansicht" },
924{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, 924{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" },
925{ "Alarm","Alarm" }, 925{ "Alarm","Alarm" },
926{ "Used %1 Client","Benutzter %1 Client" }, 926{ "Used %1 Client","Benutzter %1 Client" },
927{ "No email client installed","Kein Email Klient installiert" }, 927{ "No email client installed","Kein Email Klient installiert" },
928{ "Userdefined email client","Benutzerdef. Email Klient" }, 928{ "Userdefined email client","Benutzerdef. Email Klient" },
929{ "OM/Pi email client","OM/Pi Email Klient" }, 929{ "OM/Pi email client","OM/Pi Email Klient" },
930{ "Include in multiple ","Beziehe in multiple " }, 930{ "Include in multiple ","Beziehe in multiple " },
931{ "calendar ","Kalender " }, 931{ "calendar ","Kalender " },
932{ "addressbook ","Adressbuch " }, 932{ "addressbook ","Adressbuch " },
933{ "pwmanager","PWmanager" }, 933{ "pwmanager","PWmanager" },
934{ " sync"," Sync ein" }, 934{ " sync"," Sync ein" },
935{ "Write back synced data","Schreibe gesyncte Daten zurück" }, 935{ "Write back synced data","Schreibe gesyncte Daten zurück" },
936{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, 936{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" },
937{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, 937{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" },
938{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, 938{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " },
939{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, 939{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" },
940{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, 940{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" },
941{ "Help...","Hilfe..." }, 941{ "Help...","Hilfe..." },
942{ "Local file Cal:","Lokale Datei Kal:" }, 942{ "Local file Cal:","Lokale Datei Kal:" },
943{ "Local file ABook:","Lokale Datei ABuch:" }, 943{ "Local file ABook:","Lokale Datei ABuch:" },
944{ "Local file PWMgr:","Lokale Datei PWMgr:" }, 944{ "Local file PWMgr:","Lokale Datei PWMgr:" },
945{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, 945{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" },
946{ "Calendar:","Kalender:" }, 946{ "Calendar:","Kalender:" },
947{ "AddressBook:","AdressBuch:" }, 947{ "AddressBook:","AdressBuch:" },
948{ "PWManager:","PWManager:" }, 948{ "PWManager:","PWManager:" },
949{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, 949{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" },
950{ "ssh/scp","ssh/scp" }, 950{ "ssh/scp","ssh/scp" },
951{ "ftp","ftp" }, 951{ "ftp","ftp" },
952{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, 952{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" },
953{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, 953{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" },
954{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, 954{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" },
955{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, 955{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" },
956{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, 956{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" },
957{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, 957{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" },
958{ "KDE-Pim sync config","KDE-Pim sync Konfig" }, 958{ "KDE-Pim sync config","KDE-Pim sync Konfig" },
959{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, 959{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" },
960{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, 960{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" },
961{ "Port number (Default: %1)","Port Nummer (Default: %1)" }, 961{ "Port number (Default: %1)","Port Nummer (Default: %1)" },
962{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, 962{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" },
963{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, 963{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" },
964{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, 964{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" },
965{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, 965{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" },
966{ "Disable Pi-Sync","Schalte Pi-Sync aus" }, 966{ "Disable Pi-Sync","Schalte Pi-Sync aus" },
967{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen "Multi-Syncen"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, 967{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen "Multi-Syncen"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" },
968{ "KDE-Pim Sync","KDE-Pim Sync" }, 968{ "KDE-Pim Sync","KDE-Pim Sync" },
969{ "Multiple profiles","Multi-Sync Profile" }, 969{ "Multiple profiles","Multi-Sync Profile" },
970{ "Device: ","Gerät: " }, 970{ "Device: ","Gerät: " },
971{ "Multiple sync started.","Multi-Sync gestartet." }, 971{ "Multiple sync started.","Multi-Sync gestartet." },
972{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, 972{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" },
973{ "Turn filter on","Schalte Filter an" }, 973{ "Turn filter on","Schalte Filter an" },
974{ "Turn filter off","Schalte Filter aus" }, 974{ "Turn filter off","Schalte Filter aus" },
975{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, 975{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" },
976{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, 976{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" },
977{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, 977{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" },
978{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" }, 978{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" },
979{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" }, 979{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" },
980{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" }, 980{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" },
981{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" }, 981{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" },
982{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" }, 982{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" },
983{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" }, 983{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" },
984{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, 984{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" },
985{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, 985{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" },
986{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" }, 986{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" },
987{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, 987{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" },
988{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, 988{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" },
989{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" }, 989{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" },
990{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" }, 990{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" },
991{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, 991{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" },
992{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" }, 992{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" },
993{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, 993{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" },
994{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" }, 994{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" },
995{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" }, 995{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" },
996{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" }, 996{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" },
997{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" }, 997{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" },
998{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, 998{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" },
999{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" }, 999{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" },
1000{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, 1000{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" },
1001{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, 1001{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" },
1002{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, 1002{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" },
1003{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, 1003{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" },
1004{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, 1004{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" },
1005{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, 1005{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" },
1006{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, 1006{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" },
1007{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, 1007{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" },
1008{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, 1008{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" },
1009{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, 1009{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" },
1010{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, 1010{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" },
1011{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, 1011{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" },
1012{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" }, 1012{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" },
1013{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, 1013{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" },
1014{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, 1014{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" },
1015{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" }, 1015{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" },
1016{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" }, 1016{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" },
1017{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" }, 1017{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" },
1018{ "<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ","<p><b>X</b>: Nächste-X-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " }, 1018{ "<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ","<p><b>X</b>: Nächste-X-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " },
1019{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" }, 1019{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" },
1020{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" }, 1020{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" },
1021{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" }, 1021{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" },
1022{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" }, 1022{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" },
1023{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" }, 1023{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" },
1024{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, 1024{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" },
1025{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" }, 1025{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" },
1026{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, 1026{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" },
1027{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, 1027{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" },
1028{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, 1028{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" },
1029{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" }, 1029{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" },
1030{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" }, 1030{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" },
1031{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" }, 1031{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" },
1032{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" }, 1032{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" },
1033{ "KO/Pi FAQ","KO/Pi FAQ" }, 1033{ "KO/Pi FAQ","KO/Pi FAQ" },
1034{ "PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n","PDA-Edition\nfür: Zaurus 5x00/7x0/860/3000/6000\n" }, 1034{ "PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n","PDA-Edition\nfür: Zaurus 5x00/7x0/860/3000/6000\n" },
1035{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" }, 1035{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" },
1036{ "About KOrganizer/Pi","Über KOrganizer/Pi" }, 1036{ "About KOrganizer/Pi","Über KOrganizer/Pi" },
1037{ "From: ","Von: " }, 1037{ "From: ","Von: " },
1038{ "Remove sync info","Entferne Sync Info" }, 1038{ "Remove sync info","Entferne Sync Info" },
1039{ "For all profiles","Für alle Profile" }, 1039{ "For all profiles","Für alle Profile" },
1040{ "Hide not Running","Verstecke nicht Laufende" }, 1040{ "Hide not Running","Verstecke nicht Laufende" },
1041{ "ME","ME" }, 1041{ "ME","ME" },
1042{ "Toolbar","Toolbar" }, 1042{ "Toolbar","Toolbar" },
1043{ "Undo Delete...","UNDO Löschen..." }, 1043{ "Undo Delete...","UNDO Löschen..." },
1044{ "Undo Delete","Löschen rückgängig machen" }, 1044{ "Undo Delete","Löschen rückgängig machen" },
1045{ "KDE Sync HowTo...","KDE Sync HowTo..." }, 1045{ "KDE Sync HowTo...","KDE Sync HowTo..." },
1046{ "Multi Sync HowTo...","Multi Sync HowTo..." }, 1046{ "Multi Sync HowTo...","Multi Sync HowTo..." },
1047{ "Januar","Januar" }, 1047{ "Januar","Januar" },
1048{ "KO/Pi Keys + Colors","KO/Pi Tasten + Farben" }, 1048{ "KO/Pi Keys + Colors","KO/Pi Tasten + Farben" },
1049{ "No Filter","Kein Filter" }, 1049{ "No Filter","Kein Filter" },
1050{ "Multiple Sync options","Multi Sync Optionen" }, 1050{ "Multiple Sync options","Multi Sync Optionen" },
1051{ "Sync algo options","Sync Ablauf Optionen" }, 1051{ "Sync algo options","Sync Ablauf Optionen" },
1052{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" }, 1052{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" },
1053{ "Incoming calendar filter:","Eingehender Kalender Filter:" }, 1053{ "Incoming calendar filter:","Eingehender Kalender Filter:" },
1054{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" }, 1054{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" },
1055{ "Write back options","Optionen zum Zurückschreiben" }, 1055{ "Write back options","Optionen zum Zurückschreiben" },
1056{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" }, 1056{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" },
1057{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" }, 1057{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" },
1058{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" }, 1058{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" },
1059{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" }, 1059{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" },
1060{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" }, 1060{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" },
1061{ "Time period","Zeitspanne" }, 1061{ "Time period","Zeitspanne" },
1062{ "From ","Von " }, 1062{ "From ","Von " },
1063{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " }, 1063{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " },
1064{ " weeks in the future "," Wochen in der Zukunft " }, 1064{ " weeks in the future "," Wochen in der Zukunft " },
1065{ "Profile kind specific settings","Profil Art abhängige Einstellungen" }, 1065{ "Profile kind specific settings","Profil Art abhängige Einstellungen" },
1066{ "Local temp file:","Lokale temp Datei:" }, 1066{ "Local temp file:","Lokale temp Datei:" },
1067{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" }, 1067{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" },
1068{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" }, 1068{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" },
1069{ "Language","Sprache" }, 1069{ "Language","Sprache" },
1070{ "Time Format","Zeit Format" }, 1070{ "Time Format","Zeit Format" },
1071{ "Time Zone","Zeit Zone" }, 1071{ "Time Zone","Zeit Zone" },
1072{ "%1 groups subscribed","%1 Guppen abboniert" }, 1072{ "%1 groups subscribed","%1 Guppen abboniert" },
1073{ "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" }, 1073{ "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" },
1074{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" }, 1074{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" },
1075{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" }, 1075{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" },
1076{ "Save settings","Speichere Einstellungen" }, 1076{ "Save settings","Speichere Einstellungen" },
1077{ "Save standard","Speichere Standard" }, 1077{ "Save standard","Speichere Standard" },
1078{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" }, 1078{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" },
1079{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" }, 1079{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" },
1080{ "Data storage path","Daten Speicherpfad" }, 1080{ "Data storage path","Daten Speicherpfad" },
1081{ "Language","Sprache" }, 1081{ "Language","Sprache" },
1082{ "Show time in agenda items","Zeige Zeit in Agenda Items" }, 1082{ "Show time in agenda items","Zeige Zeit in Agenda Items" },
1083{ "Color for Sundays + category "Holiday"","Farbe für Sonntags + Kategorie "Feiertag"" }, 1083{ "Color for Sundays + category "Holiday"","Farbe für Sonntags + Kategorie "Feiertag"" },
1084{ "Show events that are done","Zeige abgelaufene Termine" }, 1084{ "Show events that are done","Zeige abgelaufene Termine" },
1085{ "Hide not running Todos in To-do view","Verstecke nicht laufende Todos" }, 1085{ "Hide not running Todos in To-do view","Verstecke nicht laufende Todos" },
1086{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" }, 1086{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" },
1087{ "KO/Pi","KO/Pi" }, 1087{ "KO/Pi","KO/Pi" },
1088{ "There is nothing to undo!","Es gibt nichts zum\nRückgängigmachen!" }, 1088{ "There is nothing to undo!","Es gibt nichts zum\nRückgängigmachen!" },
1089{ "Recreating edit dialog. Please wait...","Recreating edit dialog. Please wait..." }, 1089{ "Recreating edit dialog. Please wait...","Recreating edit dialog. Please wait..." },
1090{ "Sound.Al.: ","Sound.Al.: " }, 1090{ "Sound.Al.: ","Sound.Al.: " },
1091{ "From: %1 To: %2 %3","Von: %1 Bis: %2 %3" }, 1091{ "From: %1 To: %2 %3","Von: %1 Bis: %2 %3" },
1092{ "Restore","Wiederherstellen" }, 1092{ "Restore","Wiederherstellen" },
1093{ "\nAre you sure you want\nto restore this?","\nMöchten Sie das wirklich\nwiederherstellen?" }, 1093{ "\nAre you sure you want\nto restore this?","\nMöchten Sie das wirklich\nwiederherstellen?" },
1094{ "% completed","% erledigt" }, 1094{ "% completed","% erledigt" },
1095{ "%d item(s) found.","%d Item(s) gefunden." }, 1095{ "%d item(s) found.","%d Item(s) gefunden." },
1096{ "Set complete","Setze auf erledigt" }, 1096{ "Set complete","Setze auf erledigt" },
1097{ "(cancelled)","(gecancelt)" }, 1097{ "(cancelled)","(gecancelt)" },
1098{ "Click on the week number to\nshow week in agenda view","Klicke auf die Wochennummer\num die Woche in der Agenda anzuzeigen" }, 1098{ "Click on the week number to\nshow week in agenda view","Klicke auf die Wochennummer\num die Woche in der Agenda anzuzeigen" },
1099{ " Local time "," Lokale Zeit " }, 1099{ " Local time "," Lokale Zeit " },
1100{ "Form2","Form2" }, 1100{ "Form2","Form2" },
1101{ "Filter enabled","Filter angeschaltet" }, 1101{ "Filter enabled","Filter angeschaltet" },
1102{ "Edit Filters","Ändere Filter" }, 1102{ "Edit Filters","Ändere Filter" },
1103{ "Print What's Next View...","Drucke What's Next Ansicht..." }, 1103{ "Print What's Next View...","Drucke What's Next Ansicht..." },
1104{ "Agenda","Agenda" }, 1104{ "Agenda","Agenda" },
1105{ " ("," (" }, 1105{ " ("," (" },
1106{ "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" }, 1106{ "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" },
1107{ "Print","Print" }, 1107{ "Print","Print" },
1108{ "&Setup Printer...","Drucker &Setup..." }, 1108{ "&Setup Printer...","Drucker &Setup..." },
1109{ "View Type","Zeige Typ" }, 1109{ "View Type","Zeige Typ" },
1110{ "Page &orientation:","Seiten Ausrichtung:" }, 1110{ "Page &orientation:","Seiten Ausrichtung:" },
1111{ "Use Default of Selected Style","Default des selektierten Stils" }, 1111{ "Use Default of Selected Style","Default des selektierten Stils" },
1112{ "Use Default Setting of Printer","Default Einstellung des Druckers" }, 1112{ "Use Default Setting of Printer","Default Einstellung des Druckers" },
1113{ "Portrait","Portrait" }, 1113{ "Portrait","Portrait" },
1114{ "Landscape","Landschaft" }, 1114{ "Landscape","Landschaft" },
1115{ "Print day","Drucke Tag" }, 1115{ "Print day","Drucke Tag" },
1116{ "CalPrintDay_Base","CalPrintDay_Base" }, 1116{ "CalPrintDay_Base","CalPrintDay_Base" },
1117{ "Date && Time Range","Datum && Zeitspanne" }, 1117{ "Date && Time Range","Datum && Zeitspanne" },
1118{ "&End date:","&Enddatum:" }, 1118{ "&End date:","&Enddatum:" },
1119{ "&Start date:","&Startdatum:" }, 1119{ "&Start date:","&Startdatum:" },
1120{ "Start &time:","Startzeit:" }, 1120{ "Start &time:","Startzeit:" },
1121{ "End ti&me:","Endzeit:" }, 1121{ "End ti&me:","Endzeit:" },
1122{ "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" }, 1122{ "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" },
1123{ "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" }, 1123{ "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" },
1124{ "Alt+D","Alt+D" }, 1124{ "Alt+D","Alt+D" },
1125{ "&Use colors","Nutze Farben" }, 1125{ "&Use colors","Nutze Farben" },
1126{ "Alt+U","Alt+U" }, 1126{ "Alt+U","Alt+U" },
1127{ "Print week","Drucke Woche" }, 1127{ "Print week","Drucke Woche" },
1128{ "CalPrintWeek_Base","CalPrintWeek_Base" }, 1128{ "CalPrintWeek_Base","CalPrintWeek_Base" },
1129{ "Use &colors","Nutze Farben" }, 1129{ "Use &colors","Nutze Farben" },
1130{ "Type of View","Typ der Ansicht" }, 1130{ "Type of View","Typ der Ansicht" },
1131{ "Print as &Filofax page","Drucke als &Filofax Seite" }, 1131{ "Print as &Filofax page","Drucke als &Filofax Seite" },
1132{ "Alt+F","Alt+F" }, 1132{ "Alt+F","Alt+F" },
1133{ "Print as &timetable view:","Drucke als Zeittabelle:" }, 1133{ "Print as &timetable view:","Drucke als Zeittabelle:" },
1134{ "Alt+T","Alt+T" }, 1134{ "Alt+T","Alt+T" },
1135{ "Print as split week view","Drucke als gesplittete Wochenansicht" }, 1135{ "Print as split week view","Drucke als gesplittete Wochenansicht" },
1136{ "Print month","Drucke Monat" }, 1136{ "Print month","Drucke Monat" },
1137{ "CalPrintMonth_Base","CalPrintMonth_Base" }, 1137{ "CalPrintMonth_Base","CalPrintMonth_Base" },
1138{ "&Start month:","&Startmonat:" }, 1138{ "&Start month:","&Startmonat:" },
1139{ "&End month:","&Endmonat:" }, 1139{ "&End month:","&Endmonat:" },
1140{ "Print week &numbers","Drucke Wochen Nummer(n)" }, 1140{ "Print week &numbers","Drucke Wochen Nummer(n)" },
1141{ "Print todos","Drucke Todos" }, 1141{ "Print todos","Drucke Todos" },
1142{ "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" }, 1142{ "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" },
1143{ "Include &description of the item","Inclusive Itembeschreibung" }, 1143{ "Include &description of the item","Inclusive Itembeschreibung" },
1144{ "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" }, 1144{ "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" },
1145{ "Include &priority of the item","Inclusive Priorität des Items" }, 1145{ "Include &priority of the item","Inclusive Priorität des Items" },
1146{ "Items to Print","Zu druckende Items" }, 1146{ "Items to Print","Zu druckende Items" },
1147{ "&From:","Von:" }, 1147{ "&From:","Von:" },
1148{ "&To:","Bis:" }, 1148{ "&To:","Bis:" },
1149{ "Print &all todo items","Drucke alle Todo Items" }, 1149{ "Print &all todo items","Drucke alle Todo Items" },
1150{ "Print only &uncompleted items","Drucke nur nicht erledigte Todos" }, 1150{ "Print only &uncompleted items","Drucke nur nicht erledigte Todos" },
1151{ "Only items due in the &range:","Nur Items in dem Zeitraum:" }, 1151{ "Only items due in the &range:","Nur Items in dem Zeitraum:" },
1152{ "Todo List","Todo Liste" }, 1152{ "Todo List","Todo Liste" },
1153{ "&Title:","&Titel:" }, 1153{ "&Title:","&Titel:" },
1154{ "Co&nnect subtodos with its parent","Verbinde Untertodos mit ihren Ober-Todos" }, 1154{ "Co&nnect subtodos with its parent","Verbinde Untertodos mit ihren Ober-Todos" },
1155{ "Todo list","Todo Liste" }, 1155{ "Todo list","Todo Liste" },
1156{ "&Print...","Drucke..." }, 1156{ "&Print...","Drucke..." },
1157{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" }, 1157{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" },
1158{ "[Unconfigured]","[Unkonfiguriert]" }, 1158{ "[Unconfigured]","[Unkonfiguriert]" },
1159{ "OK","OK" }, 1159{ "OK","OK" },
1160{ "FilterEditor","FilterEditor" }, 1160{ "FilterEditor","FilterEditor" },
1161{ "Include","Inclusive" }, 1161{ "Include","Inclusive" },
1162{ "Exclude","Exclusive" }, 1162{ "Exclude","Exclusive" },
1163{ "Edit Selection...","Editiere Auswahl" }, 1163{ "Edit Selection...","Editiere Auswahl" },
1164{ "recurring events","wiederholende Termine" }, 1164{ "recurring events","wiederholende Termine" },
1165{ "recurr. events","wiederh.Termine" }, 1165{ "recurr. events","wiederh.Termine" },
1166{ "completed to-dos","erledigte Todos" }, 1166{ "completed to-dos","erledigte Todos" },
1167{ "events","Termine" }, 1167{ "events","Termine" },
1168{ "todos","Todos" }, 1168{ "todos","Todos" },
1169{ "journals","Journale" }, 1169{ "journals","Journale" },
1170{ "public","öffentl." }, 1170{ "public","öffentl." },
1171{ "private","privat" }, 1171{ "private","privat" },
1172{ "confidential","vertraul." }, 1172{ "confidential","vertraul." },
1173{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Untertodos.\nAlle erledigten Untertodos\nwerden auch gelöscht!" }, 1173{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Untertodos.\nAlle erledigten Untertodos\nwerden auch gelöscht!" },
1174{ "Yesterday","Gestern" }, 1174{ "Yesterday","Gestern" },
1175{ "Day after tomorrow","Übermorgen" }, 1175{ "Day after tomorrow","Übermorgen" },
1176{ "Tomorrow","Morgen" }, 1176{ "Tomorrow","Morgen" },
1177{ "Day before yesterday","Vorgestern" }, 1177{ "Day before yesterday","Vorgestern" },
1178{ "Size %1","Größe %1" }, 1178{ "Size %1","Größe %1" },
1179{ "New Agendasize: %1","Neue Agendagröße: %1" }, 1179{ "New Agendasize: %1","Neue Agendagröße: %1" },
1180{ " (%1 y.)"," (%1 J.)" }, 1180{ " (%1 y.)"," (%1 J.)" },
1181{ "Allday:","Ganztägig:" }, 1181{ "Allday:","Ganztägig:" },
1182{ "compl.todos","erled.Todos" }, 1182{ "compl.todos","erled.Todos" },
1183{ "Day view","Tagesansicht" }, 1183{ "Day view","Tagesansicht" },
1184{ "Next days","Nächste Tage" }, 1184{ "Next days","Nächste Tage" },
1185{ "Next week","Nächste Woche" }, 1185{ "Next week","Nächste Woche" },
1186{ "Next two weeks","Nächste zwei Wochen" }, 1186{ "Next two weeks","Nächste zwei Wochen" },
1187{ "This month","Dieser Monat" }, 1187{ "This month","Dieser Monat" },
1188{ "Journal view","Journal" }, 1188{ "Journal view","Journal" },
1189{ "Display all opened","Zeige alle geöffnet" }, 1189{ "Display all opened","Zeige alle geöffnet" },
1190{ "Display all closed","Zeige alle geschlossen" }, 1190{ "Display all closed","Zeige alle geschlossen" },
1191{ "Display all flat","Zeige alle flach" }, 1191{ "Display all flat","Zeige alle flach" },
1192{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, 1192{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" },
1193{ "Default todo done color:","Standard Todo erledigt Farbe" }, 1193{ "Default todo done color:","Standard Todo erledigt Farbe" },
1194{ "Select week %1-%2","Wähle Woche %1-%2" }, 1194{ "Select week %1-%2","Wähle Woche %1-%2" },
1195{ "Select Week","Wähle Woche" }, 1195{ "Select Week","Wähle Woche" },
1196{ "Set alarm...","Setze Alarm..." }, 1196{ "Set alarm...","Setze Alarm..." },
1197{ "Set Alarm!","Setze Alarm!" }, 1197{ "Set Alarm!","Setze Alarm!" },
1198{ "Changed alarm for %1 items","Alarm für %1 Items geändert" }, 1198{ "Changed alarm for %1 items","Alarm für %1 Items geändert" },
1199{ " and "," und " }, 1199{ " and "," und " },
1200{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, 1200{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" },
1201{ "Mail to selected","Mail an Ausgewählte" }, 1201{ "Mail to selected","Mail an Ausgewählte" },
1202{ "Mail to all","Mail an Alle" }, 1202{ "Mail to all","Mail an Alle" },
1203{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, 1203{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" },
1204{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, 1204{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" },
1205{ " on"," am" }, 1205{ " on"," am" },
1206{ " completed on "," erledigt am " }, 1206{ " completed on "," erledigt am " },
1207{ "Save as Event template","Speichere als Vorlage" }, 1207{ "Save as Event template","Speichere als Vorlage" },
1208{ "Load Event template","Lade Termin Vorlage" }, 1208{ "Load Event template","Lade Termin Vorlage" },
1209{ "Save as Journal template","Speichere als Journal Vorlage" }, 1209{ "Save as Journal template","Speichere als Journal Vorlage" },
1210{ "Insert Journal template","Füge Journal Vorlage ein" }, 1210{ "Insert Journal template","Füge Journal Vorlage ein" },
1211{ "Sub todos:<br>","Unter-Todos:<br>" }, 1211{ "Sub todos:<br>","Unter-Todos:<br>" },
1212{ "Parent todo:<br>","Über-Todo:<br>" }, 1212{ "Parent todo:<br>","Über-Todo:<br>" },
1213{ "Set current as color category","Setze Gewählte als Farbkategorie" }, 1213{ "Set current as color category","Setze Gewählte als Farbkategorie" },
1214{ " completed"," erledigt" }, 1214{ " completed"," erledigt" },
1215{ "(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.info --- 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.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" }, 1215{ "(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.info --- 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.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" },
1216{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, 1216{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." },
1217{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, 1217{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." },
1218{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, 1218{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." },
1219{ "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?" }, 1219{ "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?" },
1220{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, 1220{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." },
1221{ "Error","Fehler" }, 1221{ "Error","Fehler" },
1222{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, 1222{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." },
1223{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, 1223{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." },
1224{ "Warning","Warnung" }, 1224{ "Warning","Warnung" },
1225{ "Select week number","Wähle Wochen Nummer" }, 1225{ "Select week number","Wähle Wochen Nummer" },
1226{ "Februar","Februar" }, 1226{ "Februar","Februar" },
1227{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" }, 1227{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" },
1228{ "W","W" }, 1228{ "W","W" },
1229{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" }, 1229{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" },
1230{ "T: %1","T: %1" }, 1230{ "T: %1","T: %1" },
1231{ "Start: ","Start: " }, 1231{ "Start: ","Start: " },
1232{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " }, 1232{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " },
1233{ "Password for remote access:","Passwort für fernen Zugriff:" }, 1233{ "Password for remote access:","Passwort für fernen Zugriff:" },
1234{ "Remote IP address:","Ferne IP Adresse:" }, 1234{ "Remote IP address:","Ferne IP Adresse:" },
1235{ "Remote port number:","Ferne Port Nummer:" }, 1235{ "Remote port number:","Ferne Port Nummer:" },
1236{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." }, 1236{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." },
1237{ "Remote from: ","Fern von: " }, 1237{ "Remote from: ","Fern von: " },
1238{ "Local from: ","Lokal von: " }, 1238{ "Local from: ","Lokal von: " },
1239{ "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" }, 1239{ "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" },
1240{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, 1240{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
1241{ "Write back","Schreibe zurück" }, 1241{ "Write back","Schreibe zurück" },
1242{ "KO/Pi Synchronization","KO/Pi Synchronisation" }, 1242{ "KO/Pi Synchronization","KO/Pi Synchronisation" },
1243{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, 1243{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
1244{ "Received sync request","Sync Anfrage erhalten" }, 1244{ "Received sync request","Sync Anfrage erhalten" },
1245{ "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." }, 1245{ "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." },
1246{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, 1246{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
1247{ "Data saved to temp file!","Daten in temp Datei gespeichert!" }, 1247{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
1248{ "Sending file...","Sende Datei..." }, 1248{ "Sending file...","Sende Datei..." },
1249{ "Waiting for synced file...","Warte auf gesyncte Daten..." }, 1249{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
1250{ "Receiving synced file...","Gesyncte Daten erhalten..." }, 1250{ "Receiving synced file...","Gesyncte Daten erhalten..." },
1251{ "Received %1 bytes","%1 Bytes erhalten" }, 1251{ "Received %1 bytes","%1 Bytes erhalten" },
1252{ "Writing file to disk...","Speichere Datei..." }, 1252{ "Writing file to disk...","Speichere Datei..." },
1253{ "Pi-Sync successful!","Pi-Sync erfolgreich!" }, 1253{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
1254{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, 1254{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
1255{ "Synchronize!","Synchronisiere!" }, 1255{ "Synchronize!","Synchronisiere!" },
1256{ "High clock skew!","Großer Uhrzeitunterschied!" }, 1256{ "High clock skew!","Großer Uhrzeitunterschied!" },
1257{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, 1257{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
1258{ "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!" }, 1258{ "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!" },
1259{ "This is a %1 recurring todo.","Das ist eine %1 wiederholende Aufgabe." }, 1259{ "This is a %1 recurring todo.","Das ist eine %1 wiederholende Aufgabe." },
1260{ "<p><b>Start on:</b> %1</p>","<p><b>Start am:</b> %1</p>" }, 1260{ "<p><b>Start on:</b> %1</p>","<p><b>Start am:</b> %1</p>" },
1261{ "List week view","Listenwochenansicht" }, 1261{ "List week view","Listenwochenansicht" },
1262{ "List week","Listenwochenansicht" }, 1262{ "List week","Listenwochenansicht" },
1263{ "Next Week","Nächste Woche" }, 1263{ "Next Week","Nächste Woche" },
1264{ "Previous Week","Vorherige Woche" }, 1264{ "Previous Week","Vorherige Woche" },
1265{ "No items were found matching\nyour search expression.\nUse the wildcard characters\n'*' and '?' where needed.","Keine Einträge gefunden die\ndem Suchausdruck entsprechen.\nBenutze Platzhalter Zeichen\n'*' und '?' wo benötigt." }, 1265{ "No items were found matching\nyour search expression.\nUse the wildcard characters\n'*' and '?' where needed.","Keine Einträge gefunden die\ndem Suchausdruck entsprechen.\nBenutze Platzhalter Zeichen\n'*' und '?' wo benötigt." },
1266{ "Show in todo/event viewer:","Zeige in Termin/Todo Anzeige:" }, 1266{ "Show in todo/event viewer:","Zeige in Termin/Todo Anzeige:" },
1267{ "Details","Details" }, 1267{ "Details","Details" },
1268{ "Created time","Erstellt Zeit" }, 1268{ "Created time","Erstellt Zeit" },
1269{ "Last modified time","Geändert Zeit" }, 1269{ "Last modified time","Geändert Zeit" },
1270{ "Show in What'sThis quick overview:","Zeige in What'sThis Schnellübersicht:" }, 1270{ "Show in What'sThis quick overview:","Zeige in What'sThis Schnellübersicht:" },
1271{ "View Options","Anzeige Optionen" }, 1271{ "View Options","Anzeige Optionen" },
1272{ "<b>Created: ","<b>Erstellt am: " }, 1272{ "<b>Created: ","<b>Erstellt am: " },
1273{ "<b>Last modified: ","<b>Zuletzt geändert am: " }, 1273{ "<b>Last modified: ","<b>Zuletzt geändert am: " },
1274{ "Journal: ","Journal: " }, 1274{ "Journal: ","Journal: " },
1275{ "yearly","jährlich" }, 1275{ "yearly","jährlich" },
1276{ "(%1) ","%1-" }, 1276{ "(%1) ","%1-" },
1277{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" }, 1277{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" },
1278{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" }, 1278{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" },
1279{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" }, 1279{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" },
1280{ "Summary/Loc.","Titel/Ort" }, 1280{ "Summary/Loc.","Titel/Ort" },
1281{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." }, 1281{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." },
1282{ "Week Number","Wochennummer" }, 1282{ "Week Number","Wochennummer" },
1283{ "Import","Importiere" }, 1283{ "Import","Importiere" },
1284{ "Export","Exportiere" }, 1284{ "Export","Exportiere" },
1285{ "Beam","Beame" }, 1285{ "Beam","Beame" },
1286{ "Export","Exportiere" }, 1286{ "Export","Exportiere" },
1287{ "As iCal (ics) file...","Als iCal (ics) Datei..." }, 1287{ "As iCal (ics) file...","Als iCal (ics) Datei..." },
1288{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." }, 1288{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." },
1289{ "Journal/Details...","Journale/Details..." }, 1289{ "Journal/Details...","Journale/Details..." },
1290{ "Agenda View","Agenda Ansicht" }, 1290{ "Agenda View","Agenda Ansicht" },
1291{ "Show current time","Zeige aktuelle Zeit" }, 1291{ "Show current time","Zeige aktuelle Zeit" },
1292{ "Edit new item","Bearbeite neuen Eintrag" }, 1292{ "Edit new item","Bearbeite neuen Eintrag" },
1293{ "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" }, 1293{ "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" },
1294{ "There is no next alarm.","Es gibt keinen nächsten Alarm." }, 1294{ "There is no next alarm.","Es gibt keinen nächsten Alarm." },
1295{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" }, 1295{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" },
1296{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" }, 1296{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" },
1297{ "%1 days\n","%1 Tagen\n" }, 1297{ "%1 days\n","%1 Tagen\n" },
1298{ "1 day\n","1 Tag\n" }, 1298{ "1 day\n","1 Tag\n" },
1299{ "%1 hours\n","%1 Stunden\n" }, 1299{ "%1 hours\n","%1 Stunden\n" },
1300{ "1 hour\n","1 Stunde\n" }, 1300{ "1 hour\n","1 Stunde\n" },
1301{ "%1 minutes\n","%1 Minuten\n" }, 1301{ "%1 minutes\n","%1 Minuten\n" },
1302{ "1 minute\n","1 Minute\n" }, 1302{ "1 minute\n","1 Minute\n" },
1303{ "Only one toolbar","Nur eine Toolbar" }, 1303{ "Only one toolbar","Nur eine Toolbar" },
1304{ "Print","Drucke" }, 1304{ "Print","Drucke" },
1305{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." }, 1305{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." },
1306{ "There is nothing selected!","Es ist nichts ausgewählt!" }, 1306{ "There is nothing selected!","Es ist nichts ausgewählt!" },
1307{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " }, 1307{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " },
1308{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" }, 1308{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" },
1309{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.\n","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden.\n" }, 1309{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.\n","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden.\n" },
1310{ "KO/Pi Printout","KO/Pi Ausdruck" }, 1310{ "KO/Pi Printout","KO/Pi Ausdruck" },
1311{ "Print unscaled","Drucke unskaliert" }, 1311{ "Print unscaled","Drucke unskaliert" },
1312{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." }, 1312{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." },
1313{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." }, 1313{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." },
1314{ "Printout Mode","Druck Modus" }, 1314{ "Printout Mode","Druck Modus" },
1315{ "Filter menu icon","Filtermenu Icon" }, 1315{ "Filter menu icon","Filtermenu Icon" },
1316{ "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" }, 1316{ "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" },
1317{ "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" }, 1317{ "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" },
1318{ "%1d","%1t" }, 1318{ "%1d","%1t" },
1319{ "%1h","%1std" }, 1319{ "%1h","%1std" },
1320{ "%1min","%1min" }, 1320{ "%1min","%1min" },
1321{ "( %1 before )","( %1 vorher )" }, 1321{ "( %1 before )","( %1 vorher )" },
1322{ "The next alarm is in\nless than one minute!","Der nächste Alarm kommt in\nweniger als einer Minute!" }, 1322{ "The next alarm is in\nless than one minute!","Der nächste Alarm kommt in\nweniger als einer Minute!" },
1323{ "\nThe internal alarm notification is disabled!\n","\nDie interne Alarmbenachrichtigung ist ausgeschaltet!\n" }, 1323{ "\nThe internal alarm notification is disabled!\n","\nDie interne Alarmbenachrichtigung ist ausgeschaltet!\n" },
1324{ "Enable it in the settings menu, TAB alarm.","Schalten Sie sie an im Menu Einstellungen, TAB Alarm." }, 1324{ "Enable it in the settings menu, TAB alarm.","Schalten Sie sie an im Menu Einstellungen, TAB Alarm." },
1325{ "Show Sync Events","Zeige Sync-Ereignisse" }, 1325{ "Show Sync Events","Zeige Sync-Ereignisse" },
1326{ "Use short date in WN+Event view","Zeige Kurzdatum in WN+Terminanzeige" }, 1326{ "Use short date in WN+Event view","Zeige Kurzdatum in WN+Terminanzeige" },
1327{ "Number of max.displayed todo prios:","Anzahl max.angezeigter Todo-Prios:" }, 1327{ "Number of max.displayed todo prios:","Anzahl max.angezeigter Todo-Prios:" },
1328{ " on "," am " }, 1328{ " on "," am " },
1329{ "On: ","Am: " }, 1329{ "On: ","Am: " },
1330{ "<i>The recurrence is computed from the start datetime!</i>","<i>Die Wiederholung wird vom Startwert aus berechnet!</i>" }, 1330{ "<i>The recurrence is computed from the start datetime!</i>","<i>Die Wiederholung wird vom Startwert aus berechnet!</i>" },
1331{ "Start/Stop todo...","Starte/Stoppe Todo..." }, 1331{ "Start/Stop todo...","Starte/Stoppe Todo..." },
1332{ "Color for running todos:","Farbe für laufende Todos:" }, 1332{ "Color for running todos:","Farbe für laufende Todos:" },
1333{ "The todo\n%1\nis started.\nDo you want to set\nthe state to stopped?","Das Todo\n%1\nist gestartet.\nWollen Sie es\nauf gestoppt setzen?" }, 1333{ "The todo\n%1\nis started.\nDo you want to set\nthe state to stopped?","Das Todo\n%1\nist gestartet.\nWollen Sie es\nauf gestoppt setzen?" },
1334{ "Todo is started","Todo ist gestartet" }, 1334{ "Todo is started","Todo ist gestartet" },
1335{ "Stop todo","Stoppe Todo" }, 1335{ "Stop todo","Stoppe Todo" },
1336{ "Todo is stopped","Todo ist gestoppt" }, 1336{ "Todo is stopped","Todo ist gestoppt" },
1337{ "Start todo","Starte Todo" }, 1337{ "Start todo","Starte Todo" },
1338{ "The todo\n%1\nis stopped.\nDo you want to set\nthe state to started?","Das Todo\n%1\nist gestoppt.\nWollen Sie es auf\ngestartet setzen?" }, 1338{ "The todo\n%1\nis stopped.\nDo you want to set\nthe state to started?","Das Todo\n%1\nist gestoppt.\nWollen Sie es auf\ngestartet setzen?" },
1339{ "The todo\n%1\nwill be cloned!\nIt has subtodos!\nDo you want to clone\nall subtodos as well?","Das Todo\n%1\nwird geklont!\nEs hat Untertodos!\nMöchten Sie alle\nUntertodos auch klonen?" }, 1339{ "The todo\n%1\nwill be cloned!\nIt has subtodos!\nDo you want to clone\nall subtodos as well?","Das Todo\n%1\nwird geklont!\nEs hat Untertodos!\nMöchten Sie alle\nUntertodos auch klonen?" },
1340{ "Todo has subtodos","Todo hat Untertodos" }, 1340{ "Todo has subtodos","Todo hat Untertodos" },
1341{ "Block popup until mouse button release","Sperre Popup bis Mausknopf losgelassen" }, 1341{ "Block popup until mouse button release","Sperre Popup bis Mausknopf losgelassen" },
1342{ "Colors","Farben" }, 1342{ "Colors","Farben" },
1343{ "Click on new parent item","Klicke auf neues Übertodo" }, 1343{ "Click on new parent item","Klicke auf neues Übertodo" },
1344{ "Reparenting aborted!","Übertodo setzen abgebrochen" }, 1344{ "Reparenting aborted!","Übertodo setzen abgebrochen" },
1345{ "Cannot move Todo to itself\nor a child of itself","Kann nicht Todo auf\nsich selbst oder\nein Untertodo verschieben" }, 1345{ "Cannot move Todo to itself\nor a child of itself","Kann nicht Todo auf\nsich selbst oder\nein Untertodo verschieben" },
1346{ "Recursive reparenting not possible!","Rekursives Verschieben nicht möglich" }, 1346{ "Recursive reparenting not possible!","Rekursives Verschieben nicht möglich" },
1347{ "Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)","Entferne alle erledigten Todos?\n(Erledigte wiederholende Todos\nwerden nicht gelöscht!)" }, 1347{ "Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)","Entferne alle erledigten Todos?\n(Erledigte wiederholende Todos\nwerden nicht gelöscht!)" },
1348{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, 1348{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" },
1349{ "times","Zeiten" }, 1349{ "times","Zeiten" },
1350{ "The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?","Das Todo\n%1\nhat Untertodos!\nMöchten Sie die Kategorien\nauch für alle Untertodos setzen?" }, 1350{ "The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?","Das Todo\n%1\nhat Untertodos!\nMöchten Sie die Kategorien\nauch für alle Untertodos setzen?" },
1351{ "Backup enabled","Backup angeschaltet" }, 1351{ "Backup enabled","Backup angeschaltet" },
1352{ "Use standard backup dir","Standard Backupverzeichnis" }, 1352{ "Use standard backup dir","Standard Backupverzeichnis" },
1353{ "Number of Backups:","Anzahl der Backups" }, 1353{ "Number of Backups:","Anzahl der Backups" },
1354{ "Make backup every ","Mache ein Backup alle " }, 1354{ "Make backup every ","Mache ein Backup alle " },
1355{ " days"," Tage" }, 1355{ " days"," Tage" },
1356{ "Creating backup ... please wait ...","Erstelle Backup ... bitte warten ..." }, 1356{ "Creating backup ... please wait ...","Erstelle Backup ... bitte warten ..." },
1357{ "Backup Failed!","Backup Problem!" }, 1357{ "Backup Failed!","Backup Problem!" },
1358{ "Try again now","Versuche jetzt nochmal" }, 1358{ "Try again now","Versuche jetzt nochmal" },
1359{ "Try again later","Versuche später nochmal" }, 1359{ "Try again later","Versuche später nochmal" },
1360{ "Try again tomorrow","Versuche morgen nochmal" }, 1360{ "Try again tomorrow","Versuche morgen nochmal" },
1361{ "Disable backup","Schalte Backup ab" }, 1361{ "Disable backup","Schalte Backup ab" },
1362{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" }, 1362{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" },
1363{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" }, 1363{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" },
1364{ "Choose action","Wähle Aktion" }, 1364{ "Choose action","Wähle Aktion" },
1365{ "Comment for todo:","Kommentar zum Todo:" }, 1365{ "Comment for todo:","Kommentar zum Todo:" },
1366{ "Stop+note","Stop+Notiz" }, 1366{ "Stop+note","Stop+Notiz" },
1367{ "Agenda view shows completed todos","Agenda Ansicht zeigt erledigte Todos" }, 1367{ "Agenda view shows completed todos","Agenda Ansicht zeigt erledigte Todos" },
1368{ "KO/Pi: Missing alarms!","KO/Pi: Verpasste Alarme!" }, 1368{ "KO/Pi: Missing alarms!","KO/Pi: Verpasste Alarme!" },
1369{ "You missed the alarms for the following events or todos:","Sie verpassten die Alarme für folgende Termine oder Todos:" }, 1369{ "You missed the alarms for the following events or todos:","Sie verpassten die Alarme für folgende Termine oder Todos:" },
1370{ "Print complete list...","Drucke komplette Liste..." }, 1370{ "Print complete list...","Drucke komplette Liste..." },
1371{ "Hide all selected","Verstecke Ausgewählte" }, 1371{ "Hide all selected","Verstecke Ausgewählte" },
1372{ "Add items","hinzufügen" }, 1372{ "Add items","hinzufügen" },
1373{ "One (or more) selected\ntodo has subtodos!\nDo you want to select\nall subtodos of all\nselected todos as well?","Ein (oder mehrere) ausgewähltes\nTodo hat Untertodos!\nMöchten Sie der Auswahlliste\nalle Untertodos von allen\nausgewählten Todos hinzufügen?" }, 1373{ "One (or more) selected\ntodo has subtodos!\nDo you want to select\nall subtodos of all\nselected todos as well?","Ein (oder mehrere) ausgewähltes\nTodo hat Untertodos!\nMöchten Sie der Auswahlliste\nalle Untertodos von allen\nausgewählten Todos hinzufügen?" },
1374{ "Print List View...","Drucke Listenansicht..." }, 1374{ "Print List View...","Drucke Listenansicht..." },
1375{ "You can make a printout of the <b>List View</b> and the list view in the <b>Search Dialog</b>! To do this, please go to the <b>List View/Search Dialog</b>. Right click on the list. Select in the popup menu the entry <b>Print complete list</b>. That prints the list as you see it. You can remove items from the list before printing without deleting the corresponding event/todo! Simply select all items you do not want to print out. Then right click on one of the items and choose <b>Hide selected items</b>. After that you can print the list without these items.","Sie können die <b>Listenansicht</b> und die Listenansicht im <b>Suchdialog</b> ausdrucken! Um das zu machen gehen Sie bitte zur <b>Listenansicht</b> oder zum <b>Suchdialog</b>. Rechtsklicken Sie auf die Liste. Wählen Sie im Popupmenu den Eintrag <b>Drucke komplette Liste</b>. Das druckt die Liste so, wie man sie sieht. Sie können Listeneinträge entfernen ohne die korrespondierenden Ereignisse/Todos zu löschen! Selektieren sie einfach alle Einträge, die sie nicht ausdrucken möchten. Dann Rechtsklicken Sie auf einen Eintrag und wählen <b>Verstecke Selektierte</b>. Danach können Sie die Liste ohne diese Einträge ausdrucken." }, 1375{ "You can make a printout of the <b>List View</b> and the list view in the <b>Search Dialog</b>! To do this, please go to the <b>List View/Search Dialog</b>. Right click on the list. Select in the popup menu the entry <b>Print complete list</b>. That prints the list as you see it. You can remove items from the list before printing without deleting the corresponding event/todo! Simply select all items you do not want to print out. Then right click on one of the items and choose <b>Hide selected items</b>. After that you can print the list without these items.","Sie können die <b>Listenansicht</b> und die Listenansicht im <b>Suchdialog</b> ausdrucken! Um das zu machen gehen Sie bitte zur <b>Listenansicht</b> oder zum <b>Suchdialog</b>. Rechtsklicken Sie auf die Liste. Wählen Sie im Popupmenu den Eintrag <b>Drucke komplette Liste</b>. Das druckt die Liste so, wie man sie sieht. Sie können Listeneinträge entfernen ohne die korrespondierenden Ereignisse/Todos zu löschen! Selektieren sie einfach alle Einträge, die sie nicht ausdrucken möchten. Dann Rechtsklicken Sie auf einen Eintrag und wählen <b>Verstecke Selektierte</b>. Danach können Sie die Liste ohne diese Einträge ausdrucken." },
1376{ "Configure KO/Pi...","Konfiguriere KO/Pi..." }, 1376{ "Configure KO/Pi...","Konfiguriere KO/Pi..." },
1377{ "Global Settings...","Globale Einstellungen..." }, 1377{ "Global Settings...","Globale Einstellungen..." },
1378{ "<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n","<p><b>R</b>: Zeige Resource Ansicht | <b>F</b>: Editiere Filter </p>\n" }, 1378{ "<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n","<p><b>R</b>: Zeige Resource Ansicht | <b>F</b>: Editiere Filter </p>\n" },
1379{ "(disabled)","(abgeschaltet)" }, 1379{ "(disabled)","(abgeschaltet)" },
1380{ "New Calendar","Neuer Kalender" }, 1380{ "New Calendar","Neuer Kalender" },
1381{ "Calendar","Kalender" }, 1381{ "Calendar","Kalender" },
1382{ "Filter selector","Filterauswahl" }, 1382{ "Filter selector","Filterauswahl" },
1383{ "Filtermenu","Filtermenu" }, 1383{ "Filtermenu","Filtermenu" },
1384{ "Toggle Fullscreen","Vollbild umschalten" }, 1384{ "Toggle Fullscreen","Vollbild umschalten" },
1385{ "Toggle Resource View","Resourcenansicht umschalten" }, 1385{ "Toggle Resource View","Resourcenansicht umschalten" },
1386{ "Storage HowTo...","Speicherort HowTo..." }, 1386{ "Storage HowTo...","Speicherort HowTo..." },
1387{ "Timetracking HowTo...","Timetracking HowTo..." }, 1387{ "Timetracking HowTo...","Timetracking HowTo..." },
1388{ "Juni","Juni" }, 1388{ "Juni","Juni" },
1389{ "Juli","Juli" }, 1389{ "Juli","Juli" },
1390{ "ToDo:","ToDo:" }, 1390{ "ToDo:","ToDo:" },
1391{ "Set Calendar","Setze Kalender" }, 1391{ "Set Calendar","Setze Kalender" },
1392{ "Todo: %1","Todo: %1" }, 1392{ "Todo: %1","Todo: %1" },
1393{ ": (Prio ",": (Prio " }, 1393{ ": (Prio ",": (Prio " },
1394{ "Todos","Todos" }, 1394{ "Todos","Todos" },
1395{ "Todo Viewer","Todo Anzeige" }, 1395{ "Todo Viewer","Todo Anzeige" },
1396{ "Todo ","Todo " }, 1396{ "Todo ","Todo " },
1397{ " Calendar \n Resource "," Kalender \n Resource " }, 1397{ " Calendar \n Resource "," Kalender \n Resource " },
1398{ " Color "," Farbe " }, 1398{ " Color "," Farbe " },
1399{ "The calendar <b>%1</b> is displaying file <b>%2</b>. Do you want to remove this calendar from KO/Pi? (The file is not removed!)","Der Kalender <b>%1</b> zeigt die Datei <b>%2</b>. Möchten Sie diesen Kalender aus KO/Pi entfernen? (Die Datei wird dabei nicht gelöscht!)" }, 1399{ "The calendar <b>%1</b> is displaying file <b>%2</b>. Do you want to remove this calendar from KO/Pi? (The file is not removed!)","Der Kalender <b>%1</b> zeigt die Datei <b>%2</b>. Möchten Sie diesen Kalender aus KO/Pi entfernen? (Die Datei wird dabei nicht gelöscht!)" },
1400{ "The calendar <b>%1</b> is displaying file <b>%2</b>","Der Kalender <b>%1</b> zeigt die Datei <b>%2</b>" }, 1400{ "The calendar <b>%1</b> is displaying file <b>%2</b>","Der Kalender <b>%1</b> zeigt die Datei <b>%2</b>" },
1401{ "Add new Calendar","Füge Kalender hinzu" }, 1401{ "Add new Calendar","Füge Kalender hinzu" },
1402{ "<b>Name of new calendar:</b>","<b>Name des Kalenders:</b>" }, 1402{ "<b>Name of new calendar:</b>","<b>Name des Kalenders:</b>" },
1403{ "<b>Local ical (*.ics) file:</b>","<b>Lokale ical (*.ics) Datei:</b>" }, 1403{ "<b>Local ical (*.ics) file:</b>","<b>Lokale ical (*.ics) Datei:</b>" },
1404{ "Sorry, the calendar name is empty!","Sorry, der Kalendername ist leer!" }, 1404{ "Sorry, the calendar name is empty!","Sorry, der Kalendername ist leer!" },
1405{ "Sorry, the file name is empty!","Sorry, der Dateiname ist leer!" }, 1405{ "Sorry, the file name is empty!","Sorry, der Dateiname ist leer!" },
1406{ "Error loading calendar file\n%1.","Fehler beim Laden der Kalenderdatei\n%1." }, 1406{ "Error loading calendar file\n%1.","Fehler beim Laden der Kalenderdatei\n%1." },
1407{ "The calendar <b>%1</b> is not loaded! Loading of file <b>%2</b> failed! <b>Try again to load the calendar?</b>","Der Kalender <b>%1</b> ist nicht geladen! Das Laden der Datei <b>%2</b> schlug fehl! <b>Soll erneut versucht werden den Kalender zu laden?</b>" }, 1407{ "The calendar <b>%1</b> is not loaded! Loading of file <b>%2</b> failed! <b>Try again to load the calendar?</b>","Der Kalender <b>%1</b> ist nicht geladen! Das Laden der Datei <b>%2</b> schlug fehl! <b>Soll erneut versucht werden den Kalender zu laden?</b>" },
1408{ "Global application font for all apps:","Globale Schriftart:" }, 1408{ "Global application font for all apps:","Globale Schriftart:" },
1409{ "Application Font","Applikationsschriftart" }, 1409{ "Application Font","Applikationsschriftart" },
1410{ "Kx/Pi","Kx/Pi" }, 1410{ "Kx/Pi","Kx/Pi" },
1411{ "Backup","Backup" }, 1411{ "Backup","Backup" },
1412{ "KDE-Pim Global Settings","KDE-Pim Globale Einstellungen" }, 1412{ "KDE-Pim Global Settings","KDE-Pim Globale Einstellungen" },
1413{ "Sorry, the calendar name \n%1\nalready exists!\nPlease choose another name!","Sorry, der Kalendername \n%1\nist schon in Benutzung!\nBitte wählen Sie einen anderen!" }, 1413{ "Sorry, the calendar name \n%1\nalready exists!\nPlease choose another name!","Sorry, der Kalendername \n%1\nist schon in Benutzung!\nBitte wählen Sie einen anderen!" },
1414{ "Sorry, the file \n%1\nis already loaded!\nPlease choose another file!","Sorry, die Datei \n%1\nist schon geladen!\nBitte wählen Sie eine andere!" }, 1414{ "Sorry, the file \n%1\nis already loaded!\nPlease choose another file!","Sorry, die Datei \n%1\nist schon geladen!\nBitte wählen Sie eine andere!" },
1415{ "Choose Color","Wähle Farbe" }, 1415{ "Choose Color","Wähle Farbe" },
1416{ " OK "," OK " }, 1416{ " OK "," OK " },
1417{ " Cancel "," Abbrechen " }, 1417{ " Cancel "," Abbrechen " },
1418{ "Matching items will be added to list","Passende werden zur Liste hinzugefügt" }, 1418{ "Matching items will be added to list","Passende werden zur Liste hinzugefügt" },
1419{ "Matching items will be removed from list","Passende werden von der Liste entfernt" }, 1419{ "Matching items will be removed from list","Passende werden von der Liste entfernt" },
1420{ "Search on displayed list only","Suche auf der dargestellten Liste" }, 1420{ "Search on displayed list only","Suche auf der dargestellten Liste" },
1421{ "List will be cleared before search","Liste wird vor der Suche gelöscht" }, 1421{ "List will be cleared before search","Liste wird vor der Suche gelöscht" },
1422{ "<center>%1</center> <center>is not running. Do you want to set\nthe state to running?</center>","<center>%1</center> <center>ist nicht am Laufen. Möchten Sie den Zustand auf "laufend" setzen?</center>" }, 1422{ "<center>%1</center> <center>is not running. Do you want to set\nthe state to running?</center>","<center>%1</center> <center>ist nicht am Laufen. Möchten Sie den Zustand auf "laufend" setzen?</center>" },
1423{ "%1\nis running!","%1\nist am Laufen!" }, 1423{ "%1\nis running!","%1\nist am Laufen!" },
1424{ "Additional Comment:","Zusätzlicher Kommentar:" }, 1424{ "Additional Comment:","Zusätzlicher Kommentar:" },
1425{ "Stop and save","Stopp und Speichern" }, 1425{ "Stop and save","Stopp und Speichern" },
1426{ "Continue running","Weiter laufen lassen" }, 1426{ "Continue running","Weiter laufen lassen" },
1427{ "Stop - do not save","Stopp - nicht Speichern" }, 1427{ "Stop - do not save","Stopp - nicht Speichern" },
1428{ "Do you really want to set\nthe state to stopped\nwithout saving the data?","Möchten sie den Zustand\nwirklich auf gestoppt setzen\nohne die Daten abzuspeichern?" }, 1428{ "Do you really want to set\nthe state to stopped\nwithout saving the data?","Möchten sie den Zustand\nwirklich auf gestoppt setzen\nohne die Daten abzuspeichern?" },
1429{ "Time mismatch!","Zeiten stimmen nicht!" }, 1429{ "Time mismatch!","Zeiten stimmen nicht!" },
1430{ "The start time is\nafter the end time!","Die Startzeit ist\nhinter der Endzeit!" }, 1430{ "The start time is\nafter the end time!","Die Startzeit ist\nhinter der Endzeit!" },
1431{ "Yes, stop todo","Ja, stoppe Todo" }, 1431{ "Yes, stop todo","Ja, stoppe Todo" },
1432{ "Todo stopped - no data saved because runtime was < 15 sec!","Todo gestoppt - nichts gespeichert da Laufzeit < 15 sec!" }, 1432{ "Todo stopped - no data saved because runtime was < 15 sec!","Todo gestoppt - nichts gespeichert da Laufzeit < 15 sec!" },
1433{ "Todo started! Double click again to stop!","Todo gestartet! Doppelklicke um es zu stoppen!" }, 1433{ "Todo started! Double click again to stop!","Todo gestartet! Doppelklicke um es zu stoppen!" },
1434{ "Please choose the <b>default calendar</b> in this column. Newly created or imported items are added to the default calendar.","Bitte wählen Sie den <b>Default-Kalender</b> in dieser Spalte. Neu angelegte oder importierte Einträge werden dem Default-Kalender hinzugefügt." }, 1434{ "Please choose the <b>default calendar</b> in this column. Newly created or imported items are added to the default calendar.","Bitte wählen Sie den <b>Default-Kalender</b> in dieser Spalte. Neu angelegte oder importierte Einträge werden dem Default-Kalender hinzugefügt." },
1435{ "Spouse","Ehegatte" }, 1435{ "Spouse","Ehegatte" },
1436{ "Notes","Notizen" }, 1436{ "Notes","Notizen" },
1437{ "Messanger","Messanger" }, 1437{ "Messanger","Messanger" },
1438{ "Assistant","Assistent" }, 1438{ "Assistant","Assistent" },
1439{ "Manager","Manager" }, 1439{ "Manager","Manager" },
1440{ "Secrecy","Sichtbar" }, 1440{ "Secrecy","Sichtbar" },
1441{ "male","männlich" }, 1441{ "male","männlich" },
1442{ "female","weiblich" }, 1442{ "female","weiblich" },
1443{ "Hide!","Verbergen!" }, 1443{ "Hide!","Verbergen!" },
1444{ "Show!","Anzeigen!" }, 1444{ "Show!","Anzeigen!" },
1445{ "Details","Details" }, 1445{ "Details","Details" },
1446{ "Profession","Beruf" }, 1446{ "Profession","Beruf" },
1447{ "Children","Kinder" }, 1447{ "Children","Kinder" },
1448{ "Department","Abteilung" }, 1448{ "Department","Abteilung" },
1449{ "Backup cancelled","Backup abgebrochen" }, 1449{ "Backup cancelled","Backup abgebrochen" },
1450{ "Backup globally disabled","Backup global abgeschaltet" }, 1450{ "Backup globally disabled","Backup global abgeschaltet" },
1451{ "Backup succesfully finished","Backup erfolgreich beendet" }, 1451{ "Backup succesfully finished","Backup erfolgreich beendet" },
1452{ "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" }, 1452{ "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" },
1453{ "This will <b>backup all calendar files</b> to the directory %1 %2","Das schreibt ein <b>Backup aller Kalenderdateien</b> in das Verzeichnis %1 %2" }, 1453{ "This will <b>backup all calendar files</b> to the directory %1 %2","Das schreibt ein <b>Backup aller Kalenderdateien</b> in das Verzeichnis %1 %2" },
1454{ "Birthdays","Geburtstage" }, 1454{ "Birthdays","Geburtstage" },
1455{ "KO/Pi import information!","KO/Pi Import Information!" }, 1455{ "KO/Pi import information!","KO/Pi Import Information!" },
1456{ "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" }, 1456{ "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" },
1457{ "Cancel - do not start"," Abbrechen - Todo nicht starten" }, 1457{ "Cancel - do not start"," Abbrechen - Todo nicht starten" },
1458{ "The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n"How do I change the timezone?"\nas well!","Die Zeitzone wurde geändert!\nSollen die Kalender neu geladen\nwerden num die Zeiten\nder Termine zu ändern?\nBitte lesen Sie auch\nMenu: Help->FAQ:\n"How do I change the timezone?"" }, 1458{ "The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n"How do I change the timezone?"\nas well!","Die Zeitzone wurde geändert!\nSollen die Kalender neu geladen\nwerden num die Zeiten\nder Termine zu ändern?\nBitte lesen Sie auch\nMenu: Help->FAQ:\n"How do I change the timezone?"" },
1459{ "Reload","Neu laden" }, 1459{ "Reload","Neu laden" },
1460{ "Timezone settings","Zeitzoneneinstellung" }, 1460{ "Timezone settings","Zeitzoneneinstellung" },
1461{ "Title: ","Titel: " }, 1461{ "Title: ","Titel: " },
1462{ "Journal from: ","Journal vom: " }, 1462{ "Journal from: ","Journal vom: " },
1463{ "Journal: %1 from ","Journal: %1 vom " }, 1463{ "Journal: %1 from ","Journal: %1 vom " },
1464{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" }, 1464{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" },
1465{ "Selected Item","Ausgewähltes Item" }, 1465{ "Selected Item","Ausgewähltes Item" },
1466{ "Select Date...","Wähle Datum..." }, 1466{ "Select Date...","Wähle Datum..." },
1467{ "After importing/loading/syncing there may be new categories in events or todos which are not added automatically to the category list. Please choose what to do <b>now</b>:","Nach dem Importieren/Laden/Syncen kann es neue Kategorien in den Terminen oder Todos geben, die nicht automatisch der Kategorieliste hinzugefügt werden. Bitte wählen Sie, was <b>jetzt</b> passieren soll:" }, 1467{ "After importing/loading/syncing there may be new categories in events or todos which are not added automatically to the category list. Please choose what to do <b>now</b>:","Nach dem Importieren/Laden/Syncen kann es neue Kategorien in den Terminen oder Todos geben, die nicht automatisch der Kategorieliste hinzugefügt werden. Bitte wählen Sie, was <b>jetzt</b> passieren soll:" },
1468{ "Change category list now!","Ändere Kategorieliste jetzt!" }, 1468{ "Change category list now!","Ändere Kategorieliste jetzt!" },
1469{ "Edit category list...","Ändere Kategorieliste..." }, 1469{ "Edit category list...","Ändere Kategorieliste..." },
1470{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" }, 1470{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" },
1471{ "Filepath: ","Dateipfad: " }, 1471{ "Filepath: ","Dateipfad: " },
1472{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" }, 1472{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" },
1473{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" }, 1473{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" },
1474{ "Pending Suspend Alarm","Laufender Suspend Alarm" }, 1474{ "Pending Suspend Alarm","Laufender Suspend Alarm" },
1475{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" }, 1475{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" },
1476{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" }, 1476{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" },
1477{ "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" }, 1477{ "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" },
1478{ "Alarm Options","Alarm Einstellungen" }, 1478{ "Alarm Options","Alarm Einstellungen" },
1479{ "Delete selected...","Lösche Ausgewählte..." }, 1479{ "Delete selected...","Lösche Ausgewählte..." },
1480{ "None","Nichts" }, 1480{ "None","Nichts" },
1481{ "Selection","Auswahl" }, 1481{ "Selection","Auswahl" },
1482{ "Set categories","Setze Kategorien" }, 1482{ "Set categories","Setze Kategorien" },
1483{ "This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!","Das fügt die ausgewählten\nEinträge dem Kalender\n%1\nhinzu und entfernt sie von\nihrem aktuellen Kalender!" }, 1483{ "This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!","Das fügt die ausgewählten\nEinträge dem Kalender\n%1\nhinzu und entfernt sie von\nihrem aktuellen Kalender!" },
1484{ "Reset","Neu setzen" }, 1484{ "Reset","Neu setzen" },
1485{ "Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?","Möchten Sie Kategorien zu den ausgewählten Einträgen <b>hinzufügen</b> oder die Liste <b>neu setzen</b> (d.h. vorhandene Kategorien löschen)?" }, 1485{ "Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?","Möchten Sie Kategorien zu den ausgewählten Einträgen <b>hinzufügen</b> oder die Liste <b>neu setzen</b> (d.h. vorhandene Kategorien löschen)?" },
1486{ "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" }, 1486{ "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" },
1487{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" }, 1487{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" },
1488{ "\nNO\n WRITEABLE\n CALENDAR\n FOUND!\n\nPlease fix your calendar settings!\n","\nKEIN\n SCHREIBBARER\n KALENDER\n GEFUNDEN!\n\nBitte korrigieren Sie\nihre Kalendereinstellungen!\n" }, 1488{ "\nNO\n WRITEABLE\n CALENDAR\n FOUND!\n\nPlease fix your calendar settings!\n","\nKEIN\n SCHREIBBARER\n KALENDER\n GEFUNDEN!\n\nBitte korrigieren Sie\nihre Kalendereinstellungen!\n" },
1489{ "\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie Datei\n%1\nwurde verändert!\nDatei Grösse: %2 Bytes.\nZuletzt geändert: %3\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, 1489{ "\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie Datei\n%1\nwurde verändert!\nDatei Grösse: %2 Bytes.\nZuletzt geändert: %3\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" },
1490{ "Edit","Edit" }, 1490{ "Edit","Edit" },
1491{ "Last Modified","Zuletzt geändert" }, 1491{ "Last Modified","Zuletzt geändert" },
1492{ "Journal viewer","Journal Anzeige" }, 1492{ "Journal viewer","Journal Anzeige" },
1493{ "Configure Calendar Files...","Konfiguriere Kalenderdateien..." }, 1493{ "Configure Calendar Files...","Konfiguriere Kalenderdateien..." },
1494{ "You can use and display <b>more than one</b> calendar file in KO/Pi. A calendar file is called a <b>resource</b>. To add a calendar or change calendar settings please use menu: <b>View -> Toggle Resource View</b>.","Sie können <b>mehr als eine</b> Kalenderdatei in KO/Pi darstellen und benutzen. Eine Kalenderdatei wird <b>Resource</b> genannt. Um einen Kalender hinzuzufügen oder die Kalendereinstellungen zu ändern benutzen Sie bitte das Menu: <b>Ansicht -> Resourcenansicht umschalten</b>." }, 1494{ "You can use and display <b>more than one</b> calendar file in KO/Pi. A calendar file is called a <b>resource</b>. To add a calendar or change calendar settings please use menu: <b>View -> Toggle Resource View</b>.","Sie können <b>mehr als eine</b> Kalenderdatei in KO/Pi darstellen und benutzen. Eine Kalenderdatei wird <b>Resource</b> genannt. Um einen Kalender hinzuzufügen oder die Kalendereinstellungen zu ändern benutzen Sie bitte das Menu: <b>Ansicht -> Resourcenansicht umschalten</b>." },
1495{ "Hide Completed","Verstecke erledigte Todos" },
1496{ "Show not Running","Zeige nicht Laufende" },
1495{ "","" }, 1497{ "","" },
1496{ "","" }, 1498{ "","" },
1497{ "","" }, 1499{ "","" },
1498{ "","" }, 1500{ "","" },
1499{ "","" }, 1501{ "","" },
1500{ "","" }, 1502{ "","" },
1501{ "","" }, 1503{ "","" },
1502{ "","" }, 1504
1503{ "","" }, 1505
1504{ "","" }, 1506
1505{ "","" },
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp
index 555c1b1..100a81b 100644
--- a/korganizer/kotodoeditor.cpp
+++ b/korganizer/kotodoeditor.cpp
@@ -1,452 +1,453 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 1997, 1998 Preston Brown 3 Copyright (c) 1997, 1998 Preston Brown
4 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 19
20 As a special exception, permission is given to link this program 20 As a special exception, permission is given to link this program
21 with any edition of Qt, and distribute the resulting executable, 21 with any edition of Qt, and distribute the resulting executable,
22 without including the source code for Qt in the source distribution. 22 without including the source code for Qt in the source distribution.
23*/ 23*/
24 24
25#include <qtooltip.h> 25#include <qtooltip.h>
26#include <qframe.h> 26#include <qframe.h>
27#include <qpixmap.h> 27#include <qpixmap.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qhbox.h> 29#include <qhbox.h>
30#include <qdir.h> 30#include <qdir.h>
31#include <qdatetime.h> 31#include <qdatetime.h>
32#include <qapplication.h> 32#include <qapplication.h>
33#include <qtabwidget.h> 33#include <qtabwidget.h>
34 34
35#include <kiconloader.h> 35#include <kiconloader.h>
36#include <klocale.h> 36#include <klocale.h>
37#include <kfiledialog.h> 37#include <kfiledialog.h>
38#include <kstandarddirs.h> 38#include <kstandarddirs.h>
39#include <kmessagebox.h> 39#include <kmessagebox.h>
40 40
41#include <libkdepim/categoryselectdialog.h> 41#include <libkdepim/categoryselectdialog.h>
42#include <libkcal/calendarlocal.h> 42#include <libkcal/calendarlocal.h>
43#include <libkcal/calendarresources.h> 43#include <libkcal/calendarresources.h>
44#include <libkcal/resourcecalendar.h> 44#include <libkcal/resourcecalendar.h>
45#include <libkcal/icalformat.h> 45#include <libkcal/icalformat.h>
46#include <kresources/resourceselectdialog.h> 46#include <kresources/resourceselectdialog.h>
47#include <libkdepim/kdateedit.h> 47#include <libkdepim/kdateedit.h>
48 48
49#include "koprefs.h" 49#include "koprefs.h"
50#include "kolocationbox.h" 50#include "kolocationbox.h"
51 51
52#include "kotodoeditor.h" 52#include "kotodoeditor.h"
53extern int globalFlagBlockAgenda; 53extern int globalFlagBlockAgenda;
54 54
55KOTodoEditor::KOTodoEditor( Calendar *calendar, QWidget *parent ) : 55KOTodoEditor::KOTodoEditor( Calendar *calendar, QWidget *parent ) :
56 KOIncidenceEditor( i18n("Edit To-Do"), calendar, parent ) 56 KOIncidenceEditor( i18n("Edit To-Do"), calendar, parent )
57{ 57{
58 mTodo = 0; 58 mTodo = 0;
59 mRelatedTodo = 0; 59 mRelatedTodo = 0;
60 findButton(User1)->hide(); 60 findButton(User1)->hide();
61 init(); 61 init();
62 if ( QApplication::desktop()->height() <= 240 ) 62 if ( QApplication::desktop()->height() <= 240 )
63 hideButtons(); 63 hideButtons();
64} 64}
65 65
66KOTodoEditor::~KOTodoEditor() 66KOTodoEditor::~KOTodoEditor()
67{ 67{
68 emit dialogClose( mTodo ); 68 emit dialogClose( mTodo );
69} 69}
70 70
71void KOTodoEditor::init() 71void KOTodoEditor::init()
72{ 72{
73 setupGeneral(); 73 setupGeneral();
74 setupAttendeesTab(); 74 setupAttendeesTab();
75 setupRecurrence(); 75 setupRecurrence();
76 connect(mGeneral,SIGNAL(datesChecked()),this ,SLOT(checkRecurrence())); 76 connect(mGeneral,SIGNAL(datesChecked()),this ,SLOT(checkRecurrence()));
77 mRecurrence->setDateTimeStr( i18n("<i>The recurrence is computed from the start datetime!</i>") ); 77 mRecurrence->setDateTimeStr( i18n("<i>The recurrence is computed from the start datetime!</i>") );
78 connect(mGeneral,SIGNAL(dateTimesChanged(QDateTime,QDateTime)), 78 connect(mGeneral,SIGNAL(dateTimesChanged(QDateTime,QDateTime)),
79 mRecurrence,SLOT(setDefaultsDates(QDateTime,QDateTime))); 79 mRecurrence,SLOT(setDefaultsDates(QDateTime,QDateTime)));
80} 80}
81void KOTodoEditor::setupRecurrence() 81void KOTodoEditor::setupRecurrence()
82{ 82{
83 QFrame *topFrame = addPage( i18n("Recurrence") ); 83 QFrame *topFrame = addPage( i18n("Recurrence") );
84 QBoxLayout *topLayout = new QVBoxLayout( topFrame ); 84 QBoxLayout *topLayout = new QVBoxLayout( topFrame );
85 85
86 mRecurrence = new KOEditorRecurrence( topFrame ); 86 mRecurrence = new KOEditorRecurrence( topFrame );
87 topLayout->addWidget( mRecurrence ); 87 topLayout->addWidget( mRecurrence );
88} 88}
89 89
90void KOTodoEditor::setCategories( QString s ) 90void KOTodoEditor::setCategories( QString s )
91{ 91{
92 mGeneral->setCategories(s); 92 mGeneral->setCategories(s);
93} 93}
94void KOTodoEditor::setSecrecy( int sec ) 94void KOTodoEditor::setSecrecy( int sec )
95{ 95{
96 mGeneral->setSecrecy( sec ); 96 mGeneral->setSecrecy( sec );
97} 97}
98void KOTodoEditor::reload() 98void KOTodoEditor::reload()
99{ 99{
100 if ( mTodo ) readTodo( mTodo ); 100 if ( mTodo ) readTodo( mTodo );
101} 101}
102 102
103void KOTodoEditor::setupGeneral() 103void KOTodoEditor::setupGeneral()
104{ 104{
105 mGeneral = new KOEditorGeneralTodo(this); 105 mGeneral = new KOEditorGeneralTodo(this);
106 connect ( mGeneral, SIGNAL ( allAccepted() ), this, SLOT ( slotOk () ) ); 106 connect ( mGeneral, SIGNAL ( allAccepted() ), this, SLOT ( slotOk () ) );
107 107
108 // connect(mGeneral,SIGNAL(openCategoryDialog()),mCategoryDialog,SLOT(show())); 108 // connect(mGeneral,SIGNAL(openCategoryDialog()),mCategoryDialog,SLOT(show()));
109 //connect(mCategoryDialog, SIGNAL(categoriesSelected(const QString &)), 109 //connect(mCategoryDialog, SIGNAL(categoriesSelected(const QString &)),
110 // mGeneral,SLOT(setCategories(const QString &))); 110 // mGeneral,SLOT(setCategories(const QString &)));
111 111
112 if (KOPrefs::instance()->mCompactDialogs) { 112 if (KOPrefs::instance()->mCompactDialogs) {
113 QFrame *topFrame = addPage(i18n("General")); 113 QFrame *topFrame = addPage(i18n("General"));
114 114
115 QBoxLayout *topLayout = new QVBoxLayout(topFrame); 115 QBoxLayout *topLayout = new QVBoxLayout(topFrame);
116 if ( QApplication::desktop()->width() < 480 ) { 116 if ( QApplication::desktop()->width() < 480 ) {
117 topLayout->setMargin(marginHintSmall()); 117 topLayout->setMargin(marginHintSmall());
118 topLayout->setSpacing(spacingHintSmall()); 118 topLayout->setSpacing(spacingHintSmall());
119 } else { 119 } else {
120 topLayout->setMargin(marginHint()); 120 topLayout->setMargin(marginHint());
121 topLayout->setSpacing(spacingHint()); 121 topLayout->setSpacing(spacingHint());
122 } 122 }
123 topLayout->addStretch( 1 ); 123 topLayout->addStretch( 1 );
124 mGeneral->initHeader(topFrame,topLayout); 124 mGeneral->initHeader(topFrame,topLayout);
125 topLayout->addStretch( 1 ); 125 topLayout->addStretch( 1 );
126 mGeneral->initTime(topFrame,topLayout); 126 mGeneral->initTime(topFrame,topLayout);
127 topLayout->addStretch( 1 ); 127 topLayout->addStretch( 1 );
128 mGeneral->initAlarm(topFrame,topLayout); 128 mGeneral->initAlarm(topFrame,topLayout);
129 topLayout->addStretch( 1 ); 129 topLayout->addStretch( 1 );
130 mGeneral->enableAlarm( false ); 130 mGeneral->enableAlarm( false );
131 131
132 132
133 QBoxLayout *priorityLayout; 133 QBoxLayout *priorityLayout;
134 if ( QApplication::desktop()->width() < 500 ) 134 if ( QApplication::desktop()->width() < 500 )
135 priorityLayout = new QVBoxLayout( topLayout ); 135 priorityLayout = new QVBoxLayout( topLayout );
136 else 136 else
137 priorityLayout = new QHBoxLayout( topLayout ); 137 priorityLayout = new QHBoxLayout( topLayout );
138 QWidget* prioWidget = new QWidget (topFrame); 138 QWidget* prioWidget = new QWidget (topFrame);
139 priorityLayout->addWidget( prioWidget ); 139 priorityLayout->addWidget( prioWidget );
140 QHBoxLayout* priorityLayout2 = new QHBoxLayout( prioWidget); 140 QHBoxLayout* priorityLayout2 = new QHBoxLayout( prioWidget);
141 141
142 142
143 QIconSet icon; 143 QIconSet icon;
144 if ( QApplication::desktop()->width() < 321 ) 144 if ( QApplication::desktop()->width() < 321 )
145 icon = SmallIcon("fileimport16"); 145 icon = SmallIcon("fileimport16");
146 else 146 else
147 icon = SmallIcon("fileimport"); 147 icon = SmallIcon("fileimport");
148 QPushButton * loadTemplate = new QPushButton( prioWidget); 148 QPushButton * loadTemplate = new QPushButton( prioWidget);
149 loadTemplate->setIconSet (icon ) ; 149 loadTemplate->setIconSet (icon ) ;
150 int size = loadTemplate->sizeHint().height(); 150 int size = loadTemplate->sizeHint().height();
151 loadTemplate->setFixedSize( size, size ); 151 loadTemplate->setFixedSize( size, size );
152 if ( QApplication::desktop()->width() < 321 ) 152 if ( QApplication::desktop()->width() < 321 )
153 icon = SmallIcon("fileexport16"); 153 icon = SmallIcon("fileexport16");
154 else 154 else
155 icon = SmallIcon("fileexport"); 155 icon = SmallIcon("fileexport");
156 QPushButton * saveTemplate = new QPushButton( prioWidget); 156 QPushButton * saveTemplate = new QPushButton( prioWidget);
157 saveTemplate->setIconSet (icon ) ; 157 saveTemplate->setIconSet (icon ) ;
158 saveTemplate->setFixedSize( size, size ); 158 saveTemplate->setFixedSize( size, size );
159 159
160 priorityLayout2->addWidget(loadTemplate); 160 priorityLayout2->addWidget(loadTemplate);
161 priorityLayout2->addWidget(saveTemplate); 161 priorityLayout2->addWidget(saveTemplate);
162 mGeneral->initPriority(prioWidget,priorityLayout2); 162 mGeneral->initPriority(prioWidget,priorityLayout2);
163 mGeneral->initCategories( topFrame, priorityLayout ); 163 mGeneral->initCategories( topFrame, priorityLayout );
164 topLayout->addStretch(1); 164 topLayout->addStretch(1);
165 165
166 QFrame *topFrame2 = addPage(i18n("Details")); 166 QFrame *topFrame2 = addPage(i18n("Details"));
167 167
168 QBoxLayout *topLayout2 = new QVBoxLayout(topFrame2); 168 QBoxLayout *topLayout2 = new QVBoxLayout(topFrame2);
169 topLayout2->setMargin(marginHint()); 169 topLayout2->setMargin(marginHint());
170 topLayout2->setSpacing(spacingHint()); 170 topLayout2->setSpacing(spacingHint());
171 171
172 QHBoxLayout *completionLayout = new QHBoxLayout( topLayout2 ); 172 QHBoxLayout *completionLayout = new QHBoxLayout( topLayout2 );
173 mGeneral->initCompletion(topFrame2,completionLayout); 173 mGeneral->initCompletion(topFrame2,completionLayout);
174 174
175 175
176 mGeneral->initSecrecy( topFrame2, topLayout2 ); 176 mGeneral->initSecrecy( topFrame2, topLayout2 );
177 mGeneral->initDescription(topFrame2,topLayout2); 177 mGeneral->initDescription(topFrame2,topLayout2);
178 178
179 // QHBox * hb = new QHBox ( topFrame2 ); 179 // QHBox * hb = new QHBox ( topFrame2 );
180 // topLayout2->addWidget(hb); 180 // topLayout2->addWidget(hb);
181 // hb->setSpacing( 3 ); 181 // hb->setSpacing( 3 );
182 182
183 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) ); 183 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) );
184 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) ); 184 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) );
185 185
186 } else { 186 } else {
187 QFrame *topFrame = addPage(i18n("General")); 187 QFrame *topFrame = addPage(i18n("General"));
188 188
189 QBoxLayout *topLayout = new QVBoxLayout(topFrame); 189 QBoxLayout *topLayout = new QVBoxLayout(topFrame);
190 topLayout->setSpacing(spacingHint()); 190 topLayout->setSpacing(spacingHint());
191 191
192 mGeneral->initHeader(topFrame,topLayout); 192 mGeneral->initHeader(topFrame,topLayout);
193 mGeneral->initTime(topFrame,topLayout); 193 mGeneral->initTime(topFrame,topLayout);
194 mGeneral->initStatus(topFrame,topLayout); 194 mGeneral->initStatus(topFrame,topLayout);
195 QBoxLayout *alarmLineLayout = new QHBoxLayout(topLayout); 195 QBoxLayout *alarmLineLayout = new QHBoxLayout(topLayout);
196 mGeneral->initAlarm(topFrame,alarmLineLayout); 196 mGeneral->initAlarm(topFrame,alarmLineLayout);
197 mGeneral->initDescription(topFrame,topLayout); 197 mGeneral->initDescription(topFrame,topLayout);
198 QBoxLayout *detailsLayout = new QHBoxLayout(topLayout); 198 QBoxLayout *detailsLayout = new QHBoxLayout(topLayout);
199 mGeneral->initCategories( topFrame, detailsLayout ); 199 mGeneral->initCategories( topFrame, detailsLayout );
200 mGeneral->initSecrecy( topFrame, detailsLayout ); 200 mGeneral->initSecrecy( topFrame, detailsLayout );
201 } 201 }
202 mGeneral->finishSetup(); 202 mGeneral->finishSetup();
203 203
204} 204}
205 205
206void KOTodoEditor::editTodo(Todo *todo, bool editDescription) 206void KOTodoEditor::editTodo(Todo *todo, bool editDescription)
207{ 207{
208 //init(); 208 //init();
209 209
210 mTodo = todo; 210 mTodo = todo;
211 readTodo(mTodo); 211 readTodo(mTodo);
212 if ( editDescription ) { 212 if ( editDescription ) {
213 showPage( 1 ); 213 showPage( 1 );
214 mGeneral->setFocusOn( 1 ); 214 mGeneral->setFocusOn( 1 );
215 } else { 215 } else {
216 showPage( 0 ); 216 showPage( 0 );
217 mGeneral->setFocusOn( 2 ); 217 mGeneral->setFocusOn( 2 );
218 } 218 }
219 checkRecurrence(); 219 checkRecurrence();
220} 220}
221 221
222void KOTodoEditor::newTodo(QDateTime due,Todo *relatedTodo,bool allDay) 222void KOTodoEditor::newTodo(QDateTime due,Todo *relatedTodo,bool allDay)
223{ 223{
224 //init(); 224 //init();
225 225
226 mTodo = 0; 226 mTodo = 0;
227 setDefaults(due,relatedTodo,allDay); 227 setDefaults(due,relatedTodo,allDay);
228} 228}
229 229
230void KOTodoEditor::loadDefaults() 230void KOTodoEditor::loadDefaults()
231{ 231{
232 setDefaults(QDateTime::currentDateTime().addDays(7),0,false); 232 setDefaults(QDateTime::currentDateTime().addDays(7),0,false);
233} 233}
234 234
235bool KOTodoEditor::processInput( bool emitTime ) 235bool KOTodoEditor::processInput( bool emitTime )
236{ 236{
237 if (!validateInput()) return false; 237 if (!validateInput()) return false;
238 238
239 Todo *todo = 0; 239 Todo *todo = 0;
240 240
241 if (mTodo) todo = mTodo; 241 if (mTodo) todo = mTodo;
242 else { 242 else {
243 todo = new Todo; 243 todo = new Todo;
244 todo->setOrganizer(KOPrefs::instance()->email()); 244 todo->setOrganizer(KOPrefs::instance()->email());
245 } 245 }
246 246
247 writeTodo(todo); 247 writeTodo(todo);
248 if ( emitTime ) { 248 if ( emitTime ) {
249 globalFlagBlockAgenda = 1; 249 globalFlagBlockAgenda = 1;
250 emit showAgendaView( false ); 250 emit showAgendaView( false );
251 if ( todo->hasDueDate() ) 251 if ( todo->hasDueDate() )
252 emit jumpToTime( todo->dtDue().date() ); 252 emit jumpToTime( todo->dtDue().date() );
253 globalFlagBlockAgenda = 2; 253 globalFlagBlockAgenda = 2;
254 } 254 }
255 if (mTodo) { 255 if (mTodo) {
256 todo->setRevision(todo->revision()+1); 256 todo->setRevision(todo->revision()+1);
257 emit todoChanged(todo); 257 emit todoChanged(todo);
258 } else { 258 } else {
259 mCalendar->addTodo(todo); 259 mCalendar->addTodo(todo);
260 mTodo = todo; 260 mTodo = todo;
261 emit todoAdded(todo); 261 emit todoAdded(todo);
262 } 262 }
263 263
264 return true; 264 return true;
265} 265}
266 266
267void KOTodoEditor::deleteTodo() 267void KOTodoEditor::deleteTodo()
268{ 268{
269 if (mTodo) { 269 if (mTodo) {
270 if (KOPrefs::instance()->mConfirm) { 270 if (KOPrefs::instance()->mConfirm) {
271 switch (msgItemDelete()) { 271 switch (msgItemDelete()) {
272 case KMessageBox::Continue: // OK 272 case KMessageBox::Continue: // OK
273 emit todoToBeDeleted(mTodo); 273 emit todoToBeDeleted(mTodo);
274 emit dialogClose(mTodo); 274 emit dialogClose(mTodo);
275 mCalendar->deleteTodo(mTodo); 275 mCalendar->deleteTodo(mTodo);
276 emit todoDeleted(); 276 emit todoDeleted();
277 reject(); 277 reject();
278 break; 278 break;
279 } 279 }
280 } 280 }
281 else { 281 else {
282 emit todoToBeDeleted(mTodo); 282 emit todoToBeDeleted(mTodo);
283 emit dialogClose(mTodo); 283 emit dialogClose(mTodo);
284 mCalendar->deleteTodo(mTodo); 284 mCalendar->deleteTodo(mTodo);
285 emit todoDeleted(); 285 emit todoDeleted();
286 reject(); 286 reject();
287 } 287 }
288 } else { 288 } else {
289 reject(); 289 reject();
290 } 290 }
291} 291}
292 292
293void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay) 293void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay)
294{ 294{
295 mRelatedTodo = relatedEvent; 295 mRelatedTodo = relatedEvent;
296 296
297 mGeneral->setDefaults(due,allDay); 297 mGeneral->setDefaults(due,allDay);
298 mDetails->setDefaults(); 298 mDetails->setDefaults();
299 showPage( 0 ); 299 showPage( 0 );
300 if ( mRelatedTodo ) { 300 if ( mRelatedTodo ) {
301 mGeneral->fillCalCombo(mRelatedTodo->calID() );
301 mGeneral->setCategories (mRelatedTodo->categoriesStr ()); 302 mGeneral->setCategories (mRelatedTodo->categoriesStr ());
302 mGeneral->setSecrecy (mRelatedTodo->secrecy ()); 303 mGeneral->setSecrecy (mRelatedTodo->secrecy ());
303 if ( mRelatedTodo->priority() < 3 ) 304 if ( mRelatedTodo->priority() < 3 )
304 mGeneral->mPriorityCombo->setCurrentItem(mRelatedTodo->priority()-1); 305 mGeneral->mPriorityCombo->setCurrentItem(mRelatedTodo->priority()-1);
305 mGeneral->mSummaryEdit->lineEdit()->setText(mRelatedTodo->summary()+": "); 306 mGeneral->mSummaryEdit->lineEdit()->setText(mRelatedTodo->summary()+": ");
306 int len = mRelatedTodo->summary().length(); 307 int len = mRelatedTodo->summary().length();
307 mGeneral->mSummaryEdit->lineEdit()->setFocus(); 308 mGeneral->mSummaryEdit->lineEdit()->setFocus();
308 mGeneral->mSummaryEdit->lineEdit()->setCursorPosition ( len+2 ); 309 mGeneral->mSummaryEdit->lineEdit()->setCursorPosition ( len+2 );
309 mGeneral->mSummaryEdit->lineEdit()->setSelection ( 0, len+2 ); 310 mGeneral->mSummaryEdit->lineEdit()->setSelection ( 0, len+2 );
310 311
311 } else 312 } else
312 mGeneral->setFocusOn( 2 ); 313 mGeneral->setFocusOn( 2 );
313 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false ); 314 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false );
314 mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 )); 315 mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 ));
315} 316}
316void KOTodoEditor::checkRecurrence() 317void KOTodoEditor::checkRecurrence()
317{ 318{
318 if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) { 319 if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) {
319 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), true ); 320 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), true );
320 321
321 if ( mTodo ) 322 if ( mTodo )
322 mRecurrence->readEvent( mTodo ); 323 mRecurrence->readEvent( mTodo );
323 else { 324 else {
324 bool time = mGeneral->mTimeButton->isChecked(); 325 bool time = mGeneral->mTimeButton->isChecked();
325 QDateTime from,to; 326 QDateTime from,to;
326 if ( time ) { 327 if ( time ) {
327 to = QDateTime( mGeneral->mDueDateEdit->date(), mGeneral->mDueTimeEdit->getTime() ) ; 328 to = QDateTime( mGeneral->mDueDateEdit->date(), mGeneral->mDueTimeEdit->getTime() ) ;
328 from = QDateTime( mGeneral->mStartDateEdit->date(),mGeneral->mStartTimeEdit->getTime( )) ; 329 from = QDateTime( mGeneral->mStartDateEdit->date(),mGeneral->mStartTimeEdit->getTime( )) ;
329 } else { 330 } else {
330 to = QDateTime( mGeneral->mDueDateEdit->date(), QTime( 0,0,0) ) ; 331 to = QDateTime( mGeneral->mDueDateEdit->date(), QTime( 0,0,0) ) ;
331 from = QDateTime( mGeneral->mStartDateEdit->date(),QTime( 0,0,0) ) ; 332 from = QDateTime( mGeneral->mStartDateEdit->date(),QTime( 0,0,0) ) ;
332 } 333 }
333 if ( to < from ) 334 if ( to < from )
334 to = from; 335 to = from;
335 mRecurrence->setDefaults(from,to); 336 mRecurrence->setDefaults(from,to);
336 } 337 }
337 } else { 338 } else {
338 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false ); 339 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false );
339 mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 )); 340 mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 ));
340 } 341 }
341} 342}
342void KOTodoEditor::readTodo(Todo *todo) 343void KOTodoEditor::readTodo(Todo *todo)
343{ 344{
344 mGeneral->readTodo(todo); 345 mGeneral->readTodo(todo);
345 mDetails->readEvent(todo); 346 mDetails->readEvent(todo);
346 mRelatedTodo = 0;//todo->relatedTo(); 347 mRelatedTodo = 0;//todo->relatedTo();
347 // categories 348 // categories
348 // mCategoryDialog->setSelected(todo->categories()); 349 // mCategoryDialog->setSelected(todo->categories());
349 350
350 // We should handle read-only events here. 351 // We should handle read-only events here.
351} 352}
352 353
353void KOTodoEditor::writeTodo(Todo *event) 354void KOTodoEditor::writeTodo(Todo *event)
354{ 355{
355 bool maybeComputeRecurrenceTime = false; 356 bool maybeComputeRecurrenceTime = false;
356 if( event->hasRecurrenceID() && event->percentComplete() < 100) 357 if( event->hasRecurrenceID() && event->percentComplete() < 100)
357 maybeComputeRecurrenceTime = true; 358 maybeComputeRecurrenceTime = true;
358 event->setHasRecurrenceID( false ); 359 event->setHasRecurrenceID( false );
359 mGeneral->writeTodo(event); 360 mGeneral->writeTodo(event);
360 mDetails->writeEvent(event); 361 mDetails->writeEvent(event);
361 362
362 // set related event, i.e. parent to-do in this case. 363 // set related event, i.e. parent to-do in this case.
363 if (mRelatedTodo) { 364 if (mRelatedTodo) {
364 event->setRelatedTo(mRelatedTodo); 365 event->setRelatedTo(mRelatedTodo);
365 } 366 }
366 if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) { 367 if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) {
367 mRecurrence->writeEvent(event); 368 mRecurrence->writeEvent(event);
368 if ( event->doesRecur() ) { 369 if ( event->doesRecur() ) {
369 int addSec = -1 ; 370 int addSec = -1 ;
370 if ( maybeComputeRecurrenceTime && event->percentComplete() == 100 ) 371 if ( maybeComputeRecurrenceTime && event->percentComplete() == 100 )
371 addSec = 1; 372 addSec = 1;
372 event->setRecurrenceID( event->dtStart().addSecs( addSec ) ); 373 event->setRecurrenceID( event->dtStart().addSecs( addSec ) );
373 event->setRecurDates(); 374 event->setRecurDates();
374 } else { 375 } else {
375 event->setHasRecurrenceID( false ); 376 event->setHasRecurrenceID( false );
376 } 377 }
377 } else { 378 } else {
378 event->setHasRecurrenceID( false ); 379 event->setHasRecurrenceID( false );
379 event->recurrence()->unsetRecurs(); 380 event->recurrence()->unsetRecurs();
380 } 381 }
381} 382}
382 383
383bool KOTodoEditor::validateInput() 384bool KOTodoEditor::validateInput()
384{ 385{
385 if (!mGeneral->validateInput()) return false; 386 if (!mGeneral->validateInput()) return false;
386 if (!mDetails->validateInput()) return false; 387 if (!mDetails->validateInput()) return false;
387 return true; 388 return true;
388} 389}
389 390
390int KOTodoEditor::msgItemDelete() 391int KOTodoEditor::msgItemDelete()
391{ 392{
392 return KMessageBox::warningContinueCancel(this, 393 return KMessageBox::warningContinueCancel(this,
393 i18n("This item will be permanently deleted."), 394 i18n("This item will be permanently deleted."),
394 i18n("KOrganizer Confirmation"),i18n("Delete")); 395 i18n("KOrganizer Confirmation"),i18n("Delete"));
395} 396}
396 397
397void KOTodoEditor::modified (int modification) 398void KOTodoEditor::modified (int modification)
398{ 399{
399 if (modification == KOGlobals::CATEGORY_MODIFIED || 400 if (modification == KOGlobals::CATEGORY_MODIFIED ||
400 KOGlobals::UNKNOWN_MODIFIED == modification ) 401 KOGlobals::UNKNOWN_MODIFIED == modification )
401 // mCategoryDialog->setSelected (mTodo->categories ()); 402 // mCategoryDialog->setSelected (mTodo->categories ());
402 mGeneral->modified (mTodo, modification); 403 mGeneral->modified (mTodo, modification);
403 404
404} 405}
405 406
406void KOTodoEditor::slotLoadTemplate() 407void KOTodoEditor::slotLoadTemplate()
407{ 408{
408 409
409 QString fileName =locateLocal( "templates", "todos" ); 410 QString fileName =locateLocal( "templates", "todos" );
410 QDir t_dir; 411 QDir t_dir;
411 if ( !t_dir.exists(fileName) ) 412 if ( !t_dir.exists(fileName) )
412 t_dir.mkdir ( fileName ); 413 t_dir.mkdir ( fileName );
413 fileName += "/todo"; 414 fileName += "/todo";
414 fileName = KFileDialog::getSaveFileName( fileName , "Load Todo template", this ); 415 fileName = KFileDialog::getSaveFileName( fileName , "Load Todo template", this );
415 if ( fileName.length() == 0 ) 416 if ( fileName.length() == 0 )
416 return; 417 return;
417 CalendarLocal cal; 418 CalendarLocal cal;
418 ICalFormat format; 419 ICalFormat format;
419 if ( !format.load( &cal, fileName ) ) { 420 if ( !format.load( &cal, fileName ) ) {
420 KMessageBox::error( this, i18n("Error loading template file\n '%1'.") 421 KMessageBox::error( this, i18n("Error loading template file\n '%1'.")
421 .arg( fileName ) ); 422 .arg( fileName ) );
422 return ; 423 return ;
423 } 424 }
424 QPtrList<Todo> todos = cal.todos(); 425 QPtrList<Todo> todos = cal.todos();
425 Todo * todo = todos.first(); 426 Todo * todo = todos.first();
426 if ( !todo ) { 427 if ( !todo ) {
427 KMessageBox::error( this, 428 KMessageBox::error( this,
428 i18n("Template does not\ncontain a valid Todo.")); 429 i18n("Template does not\ncontain a valid Todo."));
429 } else { 430 } else {
430 readTodo( todo ); 431 readTodo( todo );
431 } 432 }
432 433
433} 434}
434 435
435void KOTodoEditor::slotSaveTemplate() 436void KOTodoEditor::slotSaveTemplate()
436{ 437{
437 QString fileName =locateLocal( "templates", "todos" ); 438 QString fileName =locateLocal( "templates", "todos" );
438 QDir t_dir; 439 QDir t_dir;
439 if ( !t_dir.exists(fileName) ) 440 if ( !t_dir.exists(fileName) )
440 t_dir.mkdir ( fileName ); 441 t_dir.mkdir ( fileName );
441 fileName += "/todo"; 442 fileName += "/todo";
442 fileName = KFileDialog::getSaveFileName( fileName , "Save as Todo template", this ); 443 fileName = KFileDialog::getSaveFileName( fileName , "Save as Todo template", this );
443 if ( fileName.length() > 0 ) 444 if ( fileName.length() > 0 )
444 saveTemplate( fileName ); 445 saveTemplate( fileName );
445} 446}
446 447
447void KOTodoEditor::saveTemplate( const QString &templateName ) 448void KOTodoEditor::saveTemplate( const QString &templateName )
448{ 449{
449 Todo *todo = new Todo; 450 Todo *todo = new Todo;
450 writeTodo( todo ); 451 writeTodo( todo );
451 saveAsTemplate( todo, templateName ); 452 saveAsTemplate( todo, templateName );
452} 453}
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index a87e6fc..c23a8ee 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -1,1629 +1,1691 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qheader.h> 25#include <qheader.h>
26#include <qcursor.h> 26#include <qcursor.h>
27#include <qwhatsthis.h> 27#include <qwhatsthis.h>
28#include <qdialog.h> 28#include <qdialog.h>
29#include <qlabel.h> 29#include <qlabel.h>
30#include <qpushbutton.h> 30#include <qpushbutton.h>
31 31
32#include <qinputdialog.h> 32#include <qinputdialog.h>
33 33
34#include <qvbox.h> 34#include <qvbox.h>
35#include <kdebug.h> 35#include <kdebug.h>
36#include "koprefs.h" 36#include "koprefs.h"
37#include <klocale.h> 37#include <klocale.h>
38#include <kglobal.h> 38#include <kglobal.h>
39#include <kdateedit.h> 39#include <kdateedit.h>
40#include "ktimeedit.h" 40#include "ktimeedit.h"
41#include <kiconloader.h> 41#include <kiconloader.h>
42#include <kmessagebox.h> 42#include <kmessagebox.h>
43 43
44#include <libkcal/icaldrag.h> 44#include <libkcal/icaldrag.h>
45#include <libkcal/vcaldrag.h> 45#include <libkcal/vcaldrag.h>
46#include <libkcal/calfilter.h> 46#include <libkcal/calfilter.h>
47#include <libkcal/dndfactory.h> 47#include <libkcal/dndfactory.h>
48#include <libkcal/calendarresources.h> 48#include <libkcal/calendarresources.h>
49#include <libkcal/resourcecalendar.h> 49#include <libkcal/resourcecalendar.h>
50#include <kresources/resourceselectdialog.h> 50#include <kresources/resourceselectdialog.h>
51#include <libkcal/kincidenceformatter.h> 51#include <libkcal/kincidenceformatter.h>
52#ifndef DESKTOP_VERSION 52#ifndef DESKTOP_VERSION
53#include <qpe/qpeapplication.h> 53#include <qpe/qpeapplication.h>
54#else 54#else
55#include <qapplication.h> 55#include <qapplication.h>
56#endif 56#endif
57#ifndef KORG_NOPRINTER 57#ifndef KORG_NOPRINTER
58#include "calprinter.h" 58#include "calprinter.h"
59#endif 59#endif
60#include "docprefs.h" 60#include "docprefs.h"
61 61
62#include "kotodoview.h" 62#include "kotodoview.h"
63using namespace KOrg; 63using namespace KOrg;
64 64
65 65
66KOStartTodoPrefs::KOStartTodoPrefs( QString sum, QWidget *parent, const char *name ) : 66KOStartTodoPrefs::KOStartTodoPrefs( QString sum, QWidget *parent, const char *name ) :
67 QDialog( parent, name, true ) 67 QDialog( parent, name, true )
68{ 68{
69 mStopAll = true; 69 mStopAll = true;
70 setCaption( i18n("Start todo") ); 70 setCaption( i18n("Start todo") );
71 QVBoxLayout* lay = new QVBoxLayout( this ); 71 QVBoxLayout* lay = new QVBoxLayout( this );
72 lay->setSpacing( 3 ); 72 lay->setSpacing( 3 );
73 lay->setMargin( 3 ); 73 lay->setMargin( 3 );
74 QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( sum ), this ); 74 QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( sum ), this );
75 lay->addWidget( lab ); 75 lay->addWidget( lab );
76 lab->setAlignment( AlignCenter ); 76 lab->setAlignment( AlignCenter );
77 77
78 QPushButton * ok = new QPushButton( i18n("Start this todo\nand stop all running"), this ); 78 QPushButton * ok = new QPushButton( i18n("Start this todo\nand stop all running"), this );
79 lay->addWidget( ok ); 79 lay->addWidget( ok );
80 ok->setDefault( true ); 80 ok->setDefault( true );
81 QPushButton * start = new QPushButton( i18n("Start todo"), this ); 81 QPushButton * start = new QPushButton( i18n("Start todo"), this );
82 lay->addWidget( start ); 82 lay->addWidget( start );
83 QPushButton * cancel = new QPushButton( i18n("Cancel - do not start"), this ); 83 QPushButton * cancel = new QPushButton( i18n("Cancel - do not start"), this );
84 lay->addWidget( cancel ); 84 lay->addWidget( cancel );
85 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 85 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
86 connect ( start,SIGNAL(clicked() ),this , SLOT ( doStop() ) ); 86 connect ( start,SIGNAL(clicked() ),this , SLOT ( doStop() ) );
87 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 87 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
88 resize( sizeHint() ); 88 resize( sizeHint() );
89 89
90} 90}
91void KOStartTodoPrefs::doStop() 91void KOStartTodoPrefs::doStop()
92{ 92{
93 mStopAll = false; 93 mStopAll = false;
94 accept(); 94 accept();
95} 95}
96KOStopTodoPrefs::KOStopTodoPrefs( Todo* todo, QWidget *parent, const char *name ) : 96KOStopTodoPrefs::KOStopTodoPrefs( Todo* todo, QWidget *parent, const char *name ) :
97 QDialog( parent, name, true ) 97 QDialog( parent, name, true )
98{ 98{
99 mTodo = todo; 99 mTodo = todo;
100 setCaption( i18n("Stop todo") ); 100 setCaption( i18n("Stop todo") );
101 QVBoxLayout* lay = new QVBoxLayout( this ); 101 QVBoxLayout* lay = new QVBoxLayout( this );
102 lay->setSpacing( 3 ); 102 lay->setSpacing( 3 );
103 lay->setMargin( 3 ); 103 lay->setMargin( 3 );
104 QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( todo->summary() ), this ); 104 QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( todo->summary() ), this );
105 lay->addWidget( lab ); 105 lay->addWidget( lab );
106 lab->setAlignment( AlignHCenter ); 106 lab->setAlignment( AlignHCenter );
107 lab = new QLabel( i18n("Additional Comment:"), this ); 107 lab = new QLabel( i18n("Additional Comment:"), this );
108 lay->addWidget( lab ); 108 lay->addWidget( lab );
109 mComment = new QLineEdit( this ); 109 mComment = new QLineEdit( this );
110 lay->addWidget( mComment ); 110 lay->addWidget( mComment );
111 QHBox * start = new QHBox ( this ); 111 QHBox * start = new QHBox ( this );
112 lay->addWidget( start ); 112 lay->addWidget( start );
113 lab = new QLabel( i18n("Start:"), start ); 113 lab = new QLabel( i18n("Start:"), start );
114 QHBox * end = new QHBox ( this ); 114 QHBox * end = new QHBox ( this );
115 lay->addWidget( end ); 115 lay->addWidget( end );
116 lab = new QLabel( i18n("End:"), end ); 116 lab = new QLabel( i18n("End:"), end );
117 sde = new KDateEdit( start ); 117 sde = new KDateEdit( start );
118 ste = new KOTimeEdit( start ); 118 ste = new KOTimeEdit( start );
119 connect ( sde,SIGNAL(setTimeTo( QTime ) ),ste , SLOT ( setTime(QTime ) ) ); 119 connect ( sde,SIGNAL(setTimeTo( QTime ) ),ste , SLOT ( setTime(QTime ) ) );
120 ede = new KDateEdit( end ); 120 ede = new KDateEdit( end );
121 ete = new KOTimeEdit(end ); 121 ete = new KOTimeEdit(end );
122 connect ( ede,SIGNAL(setTimeTo( QTime ) ),ete , SLOT ( setTime(QTime ) ) ); 122 connect ( ede,SIGNAL(setTimeTo( QTime ) ),ete , SLOT ( setTime(QTime ) ) );
123 sde->setDate( mTodo->runStart().date() ); 123 sde->setDate( mTodo->runStart().date() );
124 ste->setTime( mTodo->runStart().time() ); 124 ste->setTime( mTodo->runStart().time() );
125 ede->setDate( QDate::currentDate()); 125 ede->setDate( QDate::currentDate());
126 ete->setTime( QTime::currentTime() ); 126 ete->setTime( QTime::currentTime() );
127 QPushButton * ok = new QPushButton( i18n("Stop and save"), this ); 127 QPushButton * ok = new QPushButton( i18n("Stop and save"), this );
128 lay->addWidget( ok ); 128 lay->addWidget( ok );
129 ok->setDefault( true ); 129 ok->setDefault( true );
130 QPushButton * cancel = new QPushButton( i18n("Continue running"), this ); 130 QPushButton * cancel = new QPushButton( i18n("Continue running"), this );
131 lay->addWidget( cancel ); 131 lay->addWidget( cancel );
132 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 132 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
133 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 133 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
134 ok = new QPushButton( i18n("Stop - do not save"), this ); 134 ok = new QPushButton( i18n("Stop - do not save"), this );
135 connect ( ok,SIGNAL(clicked() ),this , SLOT ( doNotSave() ) ); 135 connect ( ok,SIGNAL(clicked() ),this , SLOT ( doNotSave() ) );
136 lay->addWidget( ok ); 136 lay->addWidget( ok );
137 if (QApplication::desktop()->width() < 320 ) 137 if (QApplication::desktop()->width() < 320 )
138 resize( 240, sizeHint().height() ); 138 resize( 240, sizeHint().height() );
139 else 139 else
140 resize( 320, sizeHint().height() ); 140 resize( 320, sizeHint().height() );
141 141
142} 142}
143 143
144void KOStopTodoPrefs::accept() 144void KOStopTodoPrefs::accept()
145{ 145{
146 QDateTime start = QDateTime( sde->date(), ste->getTime() ); 146 QDateTime start = QDateTime( sde->date(), ste->getTime() );
147 QDateTime stop = QDateTime( ede->date(), ete->getTime() ); 147 QDateTime stop = QDateTime( ede->date(), ete->getTime() );
148 if ( start > stop ) { 148 if ( start > stop ) {
149 KMessageBox::sorry(this, 149 KMessageBox::sorry(this,
150 i18n("The start time is\nafter the end time!"), 150 i18n("The start time is\nafter the end time!"),
151 i18n("Time mismatch!")); 151 i18n("Time mismatch!"));
152 return; 152 return;
153 } 153 }
154 mTodo->saveRunningInfo( mComment->text(), start, stop ); 154 mTodo->saveRunningInfo( mComment->text(), start, stop );
155 QDialog::accept(); 155 QDialog::accept();
156} 156}
157void KOStopTodoPrefs::doNotSave() 157void KOStopTodoPrefs::doNotSave()
158{ 158{
159 int result = KMessageBox::warningContinueCancel(this, 159 int result = KMessageBox::warningContinueCancel(this,
160 i18n("Do you really want to set\nthe state to stopped\nwithout saving the data?"),mTodo->summary(),i18n("Yes, stop todo") ); 160 i18n("Do you really want to set\nthe state to stopped\nwithout saving the data?"),mTodo->summary(),i18n("Yes, stop todo") );
161 if (result != KMessageBox::Continue) return; 161 if (result != KMessageBox::Continue) return;
162 mTodo->stopRunning(); 162 mTodo->stopRunning();
163 QDialog::accept(); 163 QDialog::accept();
164} 164}
165 165
166 166
167class KOTodoViewWhatsThis :public QWhatsThis 167class KOTodoViewWhatsThis :public QWhatsThis
168{ 168{
169public: 169public:
170 KOTodoViewWhatsThis( QWidget *wid, KOTodoView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; 170 KOTodoViewWhatsThis( QWidget *wid, KOTodoView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { };
171 171
172protected: 172protected:
173 virtual QString text( const QPoint& p) 173 virtual QString text( const QPoint& p)
174 { 174 {
175 return _view->getWhatsThisText(p) ; 175 return _view->getWhatsThisText(p) ;
176 } 176 }
177private: 177private:
178 QWidget* _wid; 178 QWidget* _wid;
179 KOTodoView * _view; 179 KOTodoView * _view;
180}; 180};
181 181
182KOTodoListView::KOTodoListView(Calendar *calendar,QWidget *parent, 182KOTodoListView::KOTodoListView(Calendar *calendar,QWidget *parent,
183 const char *name) : 183 const char *name) :
184 KListView(parent,name) 184 KListView(parent,name)
185{ 185{
186 mName = QString ( name ); 186 mName = QString ( name );
187 mCalendar = calendar; 187 mCalendar = calendar;
188#ifndef DESKTOP_VERSION 188#ifndef DESKTOP_VERSION
189 QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold ); 189 QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold );
190#endif 190#endif
191 mOldCurrent = 0; 191 mOldCurrent = 0;
192 mMousePressed = false; 192 mMousePressed = false;
193 193
194 setAcceptDrops(true); 194 setAcceptDrops(true);
195 viewport()->setAcceptDrops(true); 195 viewport()->setAcceptDrops(true);
196 int size = 16; 196 int size = 16;
197 if (qApp->desktop()->width() < 300 ) 197 if (qApp->desktop()->width() < 300 )
198 size = 12; 198 size = 12;
199 setTreeStepSize( size + 6 ); 199 setTreeStepSize( size + 6 );
200 200
201} 201}
202 202
203void KOTodoListView::contentsDragEnterEvent(QDragEnterEvent *e) 203void KOTodoListView::contentsDragEnterEvent(QDragEnterEvent *e)
204{ 204{
205#ifndef KORG_NODND 205#ifndef KORG_NODND
206// kdDebug() << "KOTodoListView::contentsDragEnterEvent" << endl; 206// kdDebug() << "KOTodoListView::contentsDragEnterEvent" << endl;
207 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && 207 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) &&
208 !QTextDrag::canDecode( e ) ) { 208 !QTextDrag::canDecode( e ) ) {
209 e->ignore(); 209 e->ignore();
210 return; 210 return;
211 } 211 }
212 212
213 mOldCurrent = currentItem(); 213 mOldCurrent = currentItem();
214#endif 214#endif
215} 215}
216 216
217 217
218void KOTodoListView::contentsDragMoveEvent(QDragMoveEvent *e) 218void KOTodoListView::contentsDragMoveEvent(QDragMoveEvent *e)
219{ 219{
220#ifndef KORG_NODND 220#ifndef KORG_NODND
221// kdDebug() << "KOTodoListView::contentsDragMoveEvent" << endl; 221// kdDebug() << "KOTodoListView::contentsDragMoveEvent" << endl;
222 222
223 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && 223 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) &&
224 !QTextDrag::canDecode( e ) ) { 224 !QTextDrag::canDecode( e ) ) {
225 e->ignore(); 225 e->ignore();
226 return; 226 return;
227 } 227 }
228 228
229 e->accept(); 229 e->accept();
230#endif 230#endif
231} 231}
232 232
233void KOTodoListView::contentsDragLeaveEvent(QDragLeaveEvent *) 233void KOTodoListView::contentsDragLeaveEvent(QDragLeaveEvent *)
234{ 234{
235#ifndef KORG_NODND 235#ifndef KORG_NODND
236// kdDebug() << "KOTodoListView::contentsDragLeaveEvent" << endl; 236// kdDebug() << "KOTodoListView::contentsDragLeaveEvent" << endl;
237 237
238 setCurrentItem(mOldCurrent); 238 setCurrentItem(mOldCurrent);
239 setSelected(mOldCurrent,true); 239 setSelected(mOldCurrent,true);
240#endif 240#endif
241} 241}
242 242
243void KOTodoListView::contentsDropEvent(QDropEvent *e) 243void KOTodoListView::contentsDropEvent(QDropEvent *e)
244{ 244{
245#ifndef KORG_NODND 245#ifndef KORG_NODND
246// kdDebug() << "KOTodoListView::contentsDropEvent" << endl; 246// kdDebug() << "KOTodoListView::contentsDropEvent" << endl;
247 247
248 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && 248 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) &&
249 !QTextDrag::canDecode( e ) ) { 249 !QTextDrag::canDecode( e ) ) {
250 e->ignore(); 250 e->ignore();
251 return; 251 return;
252 } 252 }
253 253
254 DndFactory factory( mCalendar ); 254 DndFactory factory( mCalendar );
255 Todo *todo = factory.createDropTodo(e); 255 Todo *todo = factory.createDropTodo(e);
256 256
257 if (todo) { 257 if (todo) {
258 e->acceptAction(); 258 e->acceptAction();
259 259
260 KOTodoViewItem *destination = 260 KOTodoViewItem *destination =
261 (KOTodoViewItem *)itemAt(contentsToViewport(e->pos())); 261 (KOTodoViewItem *)itemAt(contentsToViewport(e->pos()));
262 Todo *destinationEvent = 0; 262 Todo *destinationEvent = 0;
263 if (destination) destinationEvent = destination->todo(); 263 if (destination) destinationEvent = destination->todo();
264 264
265 Todo *existingTodo = mCalendar->todo(todo->uid()); 265 Todo *existingTodo = mCalendar->todo(todo->uid());
266 266
267 if(existingTodo) { 267 if(existingTodo) {
268 Incidence *to = destinationEvent; 268 Incidence *to = destinationEvent;
269 while(to) { 269 while(to) {
270 if (to->uid() == todo->uid()) { 270 if (to->uid() == todo->uid()) {
271 KMessageBox::sorry(this, 271 KMessageBox::sorry(this,
272 i18n("Cannot move Todo to itself\nor a child of itself"), 272 i18n("Cannot move Todo to itself\nor a child of itself"),
273 i18n("Drop Todo")); 273 i18n("Drop Todo"));
274 delete todo; 274 delete todo;
275 return; 275 return;
276 } 276 }
277 to = to->relatedTo(); 277 to = to->relatedTo();
278 } 278 }
279 internalDrop = true; 279 internalDrop = true;
280 if ( destinationEvent ) 280 if ( destinationEvent )
281 reparentTodoSignal( destinationEvent, existingTodo ); 281 reparentTodoSignal( destinationEvent, existingTodo );
282 else 282 else
283 unparentTodoSignal(existingTodo); 283 unparentTodoSignal(existingTodo);
284 delete todo; 284 delete todo;
285 } else { 285 } else {
286 mCalendar->addTodo(todo); 286 mCalendar->addTodo(todo);
287 emit todoDropped(todo, KOGlobals::EVENTADDED); 287 emit todoDropped(todo, KOGlobals::EVENTADDED);
288 if ( destinationEvent ) 288 if ( destinationEvent )
289 reparentTodoSignal( destinationEvent, todo ); 289 reparentTodoSignal( destinationEvent, todo );
290 } 290 }
291 } 291 }
292 else { 292 else {
293 QString text; 293 QString text;
294 if (QTextDrag::decode(e,text)) { 294 if (QTextDrag::decode(e,text)) {
295 //QListViewItem *qlvi = itemAt( contentsToViewport(e->pos()) ); 295 //QListViewItem *qlvi = itemAt( contentsToViewport(e->pos()) );
296 KOTodoViewItem *todoi = static_cast<KOTodoViewItem *>(itemAt( contentsToViewport(e->pos()) )); 296 KOTodoViewItem *todoi = static_cast<KOTodoViewItem *>(itemAt( contentsToViewport(e->pos()) ));
297 qDebug("Dropped : " + text); 297 qDebug("Dropped : " + text);
298 QStringList emails = QStringList::split(",",text); 298 QStringList emails = QStringList::split(",",text);
299 for(QStringList::ConstIterator it = emails.begin();it!=emails.end();++it) { 299 for(QStringList::ConstIterator it = emails.begin();it!=emails.end();++it) {
300 int pos = (*it).find("<"); 300 int pos = (*it).find("<");
301 QString name = (*it).left(pos); 301 QString name = (*it).left(pos);
302 QString email = (*it).mid(pos); 302 QString email = (*it).mid(pos);
303 if (!email.isEmpty() && todoi) { 303 if (!email.isEmpty() && todoi) {
304 todoi->todo()->addAttendee(new Attendee(name,email)); 304 todoi->todo()->addAttendee(new Attendee(name,email));
305 } 305 }
306 } 306 }
307 } 307 }
308 else { 308 else {
309 qDebug("KOTodoListView::contentsDropEvent(): Todo from drop not decodable "); 309 qDebug("KOTodoListView::contentsDropEvent(): Todo from drop not decodable ");
310 e->ignore(); 310 e->ignore();
311 } 311 }
312 } 312 }
313#endif 313#endif
314} 314}
315void KOTodoListView::wheelEvent (QWheelEvent *e) 315void KOTodoListView::wheelEvent (QWheelEvent *e)
316{ 316{
317 QListView::wheelEvent (e); 317 QListView::wheelEvent (e);
318} 318}
319 319
320void KOTodoListView::contentsMousePressEvent(QMouseEvent* e) 320void KOTodoListView::contentsMousePressEvent(QMouseEvent* e)
321{ 321{
322 322
323 QPoint p(contentsToViewport(e->pos())); 323 QPoint p(contentsToViewport(e->pos()));
324 QListViewItem *i = itemAt(p); 324 QListViewItem *i = itemAt(p);
325 bool rootClicked = true; 325 bool rootClicked = true;
326 if (i) { 326 if (i) {
327 // if the user clicked into the root decoration of the item, don't 327 // if the user clicked into the root decoration of the item, don't
328 // try to start a drag! 328 // try to start a drag!
329 int X = p.x(); 329 int X = p.x();
330 //qDebug("%d %d %d", X, header()->sectionPos(0), treeStepSize() ); 330 //qDebug("%d %d %d", X, header()->sectionPos(0), treeStepSize() );
331 if (X > header()->sectionPos(0) + 331 if (X > header()->sectionPos(0) +
332 treeStepSize() * (i->depth() + (rootIsDecorated() ? 1 : 0)) + 332 treeStepSize() * (i->depth() + (rootIsDecorated() ? 1 : 0)) +
333 itemMargin() +i->height()|| 333 itemMargin() +i->height()||
334 X < header()->sectionPos(0)) { 334 X < header()->sectionPos(0)) {
335 rootClicked = false; 335 rootClicked = false;
336 } 336 }
337 } else { 337 } else {
338 rootClicked = false; 338 rootClicked = false;
339 } 339 }
340#ifndef KORG_NODND 340#ifndef KORG_NODND
341 mMousePressed = false; 341 mMousePressed = false;
342 if (! rootClicked && !( e->button() == RightButton) ) { 342 if (! rootClicked && !( e->button() == RightButton) ) {
343 mPressPos = e->pos(); 343 mPressPos = e->pos();
344 mMousePressed = true; 344 mMousePressed = true;
345 } else { 345 } else {
346 mMousePressed = false; 346 mMousePressed = false;
347 } 347 }
348#endif 348#endif
349 //qDebug("KOTodoListView::contentsMousePressEvent %d", rootClicked); 349 //qDebug("KOTodoListView::contentsMousePressEvent %d", rootClicked);
350#ifndef DESKTOP_VERSION 350#ifndef DESKTOP_VERSION
351 if (!( e->button() == RightButton && rootClicked) ) 351 if (!( e->button() == RightButton && rootClicked) )
352 QListView::contentsMousePressEvent(e); 352 QListView::contentsMousePressEvent(e);
353#else 353#else
354 QListView::contentsMousePressEvent(e); 354 QListView::contentsMousePressEvent(e);
355#endif 355#endif
356} 356}
357void KOTodoListView::paintEvent(QPaintEvent* e) 357void KOTodoListView::paintEvent(QPaintEvent* e)
358{ 358{
359 emit paintNeeded(); 359 emit paintNeeded();
360 QListView::paintEvent( e); 360 QListView::paintEvent( e);
361} 361}
362void KOTodoListView::contentsMouseMoveEvent(QMouseEvent* e) 362void KOTodoListView::contentsMouseMoveEvent(QMouseEvent* e)
363{ 363{
364 364
365#ifndef KORG_NODND 365#ifndef KORG_NODND
366 //QListView::contentsMouseMoveEvent(e); 366 //QListView::contentsMouseMoveEvent(e);
367 if (mMousePressed && (mPressPos - e->pos()).manhattanLength() > 367 if (mMousePressed && (mPressPos - e->pos()).manhattanLength() >
368 QApplication::startDragDistance()*3) { 368 QApplication::startDragDistance()*3) {
369 mMousePressed = false; 369 mMousePressed = false;
370 QListViewItem *item = itemAt(contentsToViewport(mPressPos)); 370 QListViewItem *item = itemAt(contentsToViewport(mPressPos));
371 if (item) { 371 if (item) {
372 DndFactory factory( mCalendar ); 372 DndFactory factory( mCalendar );
373 ICalDrag *vd = factory.createDrag( 373 ICalDrag *vd = factory.createDrag(
374 ((KOTodoViewItem *)item)->todo(),viewport()); 374 ((KOTodoViewItem *)item)->todo(),viewport());
375 internalDrop = false; 375 internalDrop = false;
376 // we cannot do any senseful here, because the DnD is still broken in Qt 376 // we cannot do any senseful here, because the DnD is still broken in Qt
377 if (vd->drag()) { 377 if (vd->drag()) {
378 if ( !internalDrop ) { 378 if ( !internalDrop ) {
379 //emit deleteTodo( ((KOTodoViewItem *)item)->todo() ); 379 //emit deleteTodo( ((KOTodoViewItem *)item)->todo() );
380 qDebug("Dnd: External move: Delete drag source "); 380 qDebug("Dnd: External move: Delete drag source ");
381 } else 381 } else
382 qDebug("Dnd: Internal move "); 382 qDebug("Dnd: Internal move ");
383 383
384 } else { 384 } else {
385 if ( !internalDrop ) { 385 if ( !internalDrop ) {
386 qDebug("Dnd: External Copy"); 386 qDebug("Dnd: External Copy");
387 } else 387 } else
388 qDebug("DnD: Internal copy: Copy pending"); 388 qDebug("DnD: Internal copy: Copy pending");
389 } 389 }
390 } 390 }
391 } 391 }
392#endif 392#endif
393} 393}
394void KOTodoListView::keyReleaseEvent ( QKeyEvent *e ) 394void KOTodoListView::keyReleaseEvent ( QKeyEvent *e )
395{ 395{
396 if ( !e->isAutoRepeat() ) { 396 if ( !e->isAutoRepeat() ) {
397 mFlagKeyPressed = false; 397 mFlagKeyPressed = false;
398 } 398 }
399} 399}
400 400
401 401
402void KOTodoListView::keyPressEvent ( QKeyEvent * e ) 402void KOTodoListView::keyPressEvent ( QKeyEvent * e )
403{ 403{
404 qApp->processEvents(); 404 qApp->processEvents();
405 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 405 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
406 e->ignore(); 406 e->ignore();
407 // qDebug(" ignore %d",e->isAutoRepeat() ); 407 // qDebug(" ignore %d",e->isAutoRepeat() );
408 return; 408 return;
409 } 409 }
410 if (! e->isAutoRepeat() ) 410 if (! e->isAutoRepeat() )
411 mFlagKeyPressed = true; 411 mFlagKeyPressed = true;
412 QListViewItem* cn; 412 QListViewItem* cn;
413 if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) { 413 if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) {
414 cn = currentItem(); 414 cn = currentItem();
415 if ( cn ) { 415 if ( cn ) {
416 KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); 416 KOTodoViewItem* ci = (KOTodoViewItem*)( cn );
417 if ( ci ){ 417 if ( ci ){
418 if ( e->state() == ShiftButton ) 418 if ( e->state() == ShiftButton )
419 ci->setOn( false ); 419 ci->setOn( false );
420 else 420 else
421 ci->setOn( true ); 421 ci->setOn( true );
422 cn = cn->itemBelow(); 422 cn = cn->itemBelow();
423 if ( cn ) { 423 if ( cn ) {
424 setCurrentItem ( cn ); 424 setCurrentItem ( cn );
425 ensureItemVisible ( cn ); 425 ensureItemVisible ( cn );
426 } 426 }
427 427
428 } 428 }
429 } 429 }
430 430
431 return; 431 return;
432 } 432 }
433 433
434 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || mName != "todolistsmall" ) { 434 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || mName != "todolistsmall" ) {
435 switch ( e->key() ) { 435 switch ( e->key() ) {
436 case Qt::Key_Down: 436 case Qt::Key_Down:
437 case Qt::Key_Up: 437 case Qt::Key_Up:
438 QListView::keyPressEvent ( e ); 438 QListView::keyPressEvent ( e );
439 break; 439 break;
440 case Qt::Key_Left: 440 case Qt::Key_Left:
441 case Qt::Key_Right: 441 case Qt::Key_Right:
442 QListView::keyPressEvent ( e ); 442 QListView::keyPressEvent ( e );
443 e->accept(); 443 e->accept();
444 return; 444 return;
445 break; 445 break;
446 default: 446 default:
447 e->ignore(); 447 e->ignore();
448 break; 448 break;
449 } 449 }
450 return; 450 return;
451 } 451 }
452 e->ignore(); 452 e->ignore();
453} 453}
454void KOTodoListView::contentsMouseReleaseEvent(QMouseEvent *e) 454void KOTodoListView::contentsMouseReleaseEvent(QMouseEvent *e)
455{ 455{
456 QListView::contentsMouseReleaseEvent(e); 456 QListView::contentsMouseReleaseEvent(e);
457 mMousePressed = false; 457 mMousePressed = false;
458} 458}
459 459
460void KOTodoListView::contentsMouseDoubleClickEvent(QMouseEvent *e) 460void KOTodoListView::contentsMouseDoubleClickEvent(QMouseEvent *e)
461{ 461{
462 if (!e) return; 462 if (!e) return;
463 463
464 QPoint vp = contentsToViewport(e->pos()); 464 QPoint vp = contentsToViewport(e->pos());
465 465
466 QListViewItem *item = itemAt(vp); 466 QListViewItem *item = itemAt(vp);
467 467
468 emit double_Clicked(item); 468 emit double_Clicked(item);
469 if (!item) return; 469 if (!item) return;
470 470
471 emit doubleClicked(item,vp,0); 471 emit doubleClicked(item,vp,0);
472} 472}
473 473
474///////////////////////////////////////////////////////////////////////////// 474/////////////////////////////////////////////////////////////////////////////
475 475
476KOQuickTodo::KOQuickTodo(QWidget *parent) : 476KOQuickTodo::KOQuickTodo(QWidget *parent) :
477 QLineEdit(parent) 477 QLineEdit(parent)
478{ 478{
479 setText(i18n("Click to add a new Todo")); 479 setText(i18n("Click to add a new Todo"));
480} 480}
481 481
482void KOQuickTodo::focusInEvent(QFocusEvent *ev) 482void KOQuickTodo::focusInEvent(QFocusEvent *ev)
483{ 483{
484 if ( text()==i18n("Click to add a new Todo") ) 484 if ( text()==i18n("Click to add a new Todo") )
485 setText(""); 485 setText("");
486 QLineEdit::focusInEvent(ev); 486 QLineEdit::focusInEvent(ev);
487} 487}
488 488
489void KOQuickTodo::focusOutEvent(QFocusEvent *ev) 489void KOQuickTodo::focusOutEvent(QFocusEvent *ev)
490{ 490{
491 setText(i18n("Click to add a new Todo")); 491 setText(i18n("Click to add a new Todo"));
492 QLineEdit::focusOutEvent(ev); 492 QLineEdit::focusOutEvent(ev);
493} 493}
494 494
495///////////////////////////////////////////////////////////////////////////// 495/////////////////////////////////////////////////////////////////////////////
496 496
497KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : 497KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
498 KOrg::BaseView(calendar,parent,name) 498 KOrg::BaseView(calendar,parent,name)
499{ 499{
500 mCategoryPopupMenu = 0; 500 mCategoryPopupMenu = 0;
501 mPendingUpdateBeforeRepaint = false; 501 mPendingUpdateBeforeRepaint = false;
502 isFlatDisplay = false; 502 isFlatDisplay = false;
503 mNavigator = 0; 503 mNavigator = 0;
504 QBoxLayout *topLayout = new QVBoxLayout(this); 504 QBoxLayout *topLayout = new QVBoxLayout(this);
505 mName = QString ( name ); 505 mName = QString ( name );
506 mBlockUpdate = false; 506 mBlockUpdate = false;
507 mQuickAdd = new KOQuickTodo(this); 507 mQuickBar = new QWidget( this );
508 topLayout->addWidget(mQuickAdd); 508 topLayout->addWidget(mQuickBar);
509 509
510 if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickAdd->hide(); 510 mQuickAdd = new KOQuickTodo(mQuickBar);
511 QBoxLayout *quickLayout = new QHBoxLayout(mQuickBar);
512 quickLayout->addWidget( mQuickAdd );
513 QPushButton * flat = new QPushButton( "F",mQuickBar );
514 int fixwid = flat->sizeHint().height();
515 if ( QApplication::desktop()->width() > 320 )
516 fixwid *= 2;
517 flat->setFixedWidth( fixwid );
518 connect ( flat, SIGNAL ( clicked()), SLOT ( setAllFlat()));
519 QPushButton * allopen = new QPushButton( "O",mQuickBar );
520 allopen->setFixedWidth( fixwid );
521 connect ( allopen, SIGNAL ( clicked()), SLOT ( setAllOpen()));
522 QPushButton * allclose = new QPushButton( "C",mQuickBar );
523 allclose->setFixedWidth( fixwid );
524 connect ( allclose, SIGNAL ( clicked()), SLOT ( setAllClose()));
525 QPushButton * s_done = new QPushButton( "D",mQuickBar );
526 s_done->setFixedWidth( fixwid );
527 connect ( s_done, SIGNAL ( clicked()), SLOT ( toggleCompleted()));
528 QPushButton * s_run = new QPushButton( "R",mQuickBar );
529 s_run->setFixedWidth( fixwid );
530 connect ( s_run, SIGNAL ( clicked()), SLOT ( toggleRunning()));
531
532 mNewSubBut = new QPushButton( "sub",mQuickBar );
533 mNewSubBut->setFixedWidth( fixwid*3/2 );
534 connect ( mNewSubBut, SIGNAL ( clicked()), SLOT ( newSubTodo()));
535 mNewSubBut->setEnabled( false );
536 quickLayout->addWidget( mNewSubBut );
537 quickLayout->addWidget( s_done );
538 quickLayout->addWidget( s_run );
539
540 quickLayout->addWidget( allopen );
541 quickLayout->addWidget( allclose );
542 quickLayout->addWidget( flat );
543
544 if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickBar->hide();
511 545
512 mTodoListView = new KOTodoListView(calendar,this, name ); 546 mTodoListView = new KOTodoListView(calendar,this, name );
513 topLayout->addWidget(mTodoListView); 547 topLayout->addWidget(mTodoListView);
514 //mTodoListView->header()->setMaximumHeight(30); 548 //mTodoListView->header()->setMaximumHeight(30);
515 mTodoListView->setRootIsDecorated(true); 549 mTodoListView->setRootIsDecorated(true);
516 mTodoListView->setAllColumnsShowFocus(true); 550 mTodoListView->setAllColumnsShowFocus(true);
517 551
518 mTodoListView->setShowSortIndicator(true); 552 mTodoListView->setShowSortIndicator(true);
519 553
520 mTodoListView->addColumn(i18n("Todo")); 554 mTodoListView->addColumn(i18n("Todo"));
521 mTodoListView->addColumn(i18n("Prio")); 555 mTodoListView->addColumn(i18n("Prio"));
522 mTodoListView->setColumnAlignment(1,AlignHCenter); 556 mTodoListView->setColumnAlignment(1,AlignHCenter);
523 mTodoListView->addColumn(i18n("Complete")); 557 mTodoListView->addColumn(i18n("Complete"));
524 mTodoListView->setColumnAlignment(2,AlignCenter); 558 mTodoListView->setColumnAlignment(2,AlignCenter);
525 559
526 mTodoListView->addColumn(i18n("Due Date")); 560 mTodoListView->addColumn(i18n("Due Date"));
527 mTodoListView->setColumnAlignment(3,AlignLeft); 561 mTodoListView->setColumnAlignment(3,AlignLeft);
528 mTodoListView->addColumn(i18n("Due Time")); 562 mTodoListView->addColumn(i18n("Due Time"));
529 mTodoListView->setColumnAlignment(4,AlignHCenter); 563 mTodoListView->setColumnAlignment(4,AlignHCenter);
530 564
531 mTodoListView->addColumn(i18n("Start Date")); 565 mTodoListView->addColumn(i18n("Start Date"));
532 mTodoListView->setColumnAlignment(5,AlignLeft); 566 mTodoListView->setColumnAlignment(5,AlignLeft);
533 mTodoListView->addColumn(i18n("Start Time")); 567 mTodoListView->addColumn(i18n("Start Time"));
534 mTodoListView->setColumnAlignment(6,AlignHCenter); 568 mTodoListView->setColumnAlignment(6,AlignHCenter);
535 569
536 mTodoListView->addColumn(i18n("Cancelled")); 570 mTodoListView->addColumn(i18n("Cancelled"));
537 mTodoListView->addColumn(i18n("Categories")); 571 mTodoListView->addColumn(i18n("Categories"));
538 mTodoListView->addColumn(i18n("Calendar")); 572 mTodoListView->addColumn(i18n("Calendar"));
539#if 0 573#if 0
540 mTodoListView->addColumn(i18n("Sort Id")); 574 mTodoListView->addColumn(i18n("Sort Id"));
541 mTodoListView->setColumnAlignment(4,AlignHCenter); 575 mTodoListView->setColumnAlignment(4,AlignHCenter);
542#endif 576#endif
543 577
544 mTodoListView->setMinimumHeight( 60 ); 578 mTodoListView->setMinimumHeight( 60 );
545 mTodoListView->setItemsRenameable( true ); 579 mTodoListView->setItemsRenameable( true );
546 mTodoListView->setRenameable( 0 ); 580 mTodoListView->setRenameable( 0 );
547 mTodoListView->setColumnWidth( 0, 120 ); 581 mTodoListView->setColumnWidth( 0, 120 );
548 int iii = 0; 582 int iii = 0;
549 for ( iii = 0; iii< 10 ; ++iii ) 583 for ( iii = 0; iii< 10 ; ++iii )
550 mTodoListView->setColumnWidthMode( iii, QListView::Manual ); 584 mTodoListView->setColumnWidthMode( iii, QListView::Manual );
551 585
552 586
553 mKOTodoViewWhatsThis = new KOTodoViewWhatsThis(mTodoListView->viewport(),this); 587 mKOTodoViewWhatsThis = new KOTodoViewWhatsThis(mTodoListView->viewport(),this);
554 588
555 mPriorityPopupMenu = new QPopupMenu(this); 589 mPriorityPopupMenu = new QPopupMenu(this);
556 for (int i = 1; i <= 5; i++) { 590 for (int i = 1; i <= 5; i++) {
557 QString label = QString ("%1").arg (i); 591 QString label = QString ("%1").arg (i);
558 mPriority[mPriorityPopupMenu->insertItem (label)] = i; 592 mPriority[mPriorityPopupMenu->insertItem (label)] = i;
559 } 593 }
560 connect (mPriorityPopupMenu, SIGNAL(activated (int)), SLOT (setNewPriority(int))); 594 connect (mPriorityPopupMenu, SIGNAL(activated (int)), SLOT (setNewPriority(int)));
561 595
562 mPercentageCompletedPopupMenu = new QPopupMenu(this); 596 mPercentageCompletedPopupMenu = new QPopupMenu(this);
563 for (int i = 0; i <= 100; i+=20) { 597 for (int i = 0; i <= 100; i+=20) {
564 QString label = QString ("%1 %").arg (i); 598 QString label = QString ("%1 %").arg (i);
565 mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i; 599 mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i;
566 } 600 }
567 connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int))); 601 connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int)));
568 602
569 603
570 mCategoryPopupMenu = new QPopupMenu (this); 604 mCategoryPopupMenu = new QPopupMenu (this);
571 mCategoryPopupMenu->setCheckable (true); 605 mCategoryPopupMenu->setCheckable (true);
572 connect (mCategoryPopupMenu, SIGNAL (activated (int)), SLOT (changedCategories (int))); 606 connect (mCategoryPopupMenu, SIGNAL (activated (int)), SLOT (changedCategories (int)));
573 connect (mCategoryPopupMenu, SIGNAL (aboutToShow ()), SLOT (fillCategories ())); 607 connect (mCategoryPopupMenu, SIGNAL (aboutToShow ()), SLOT (fillCategories ()));
574 608
575 mCalPopupMenu = new QPopupMenu (this); 609 mCalPopupMenu = new QPopupMenu (this);
576 mCalPopupMenu->setCheckable (true); 610 mCalPopupMenu->setCheckable (true);
577 connect (mCalPopupMenu, SIGNAL (activated (int)), SLOT (changedCal (int))); 611 connect (mCalPopupMenu, SIGNAL (activated (int)), SLOT (changedCal (int)));
578 connect (mCalPopupMenu, SIGNAL (aboutToShow ()), SLOT (fillCal ())); 612 connect (mCalPopupMenu, SIGNAL (aboutToShow ()), SLOT (fillCal ()));
579 613
580 614
581 615
582 616
583 mItemPopupMenu = new QPopupMenu(this); 617 mItemPopupMenu = new QPopupMenu(this);
584 mItemPopupMenu->insertItem(i18n("Show"), this, 618 mItemPopupMenu->insertItem(i18n("Show"), this,
585 SLOT (showTodo())); 619 SLOT (showTodo()));
586 mItemPopupMenu->insertItem(i18n("Edit..."), this, 620 mItemPopupMenu->insertItem(i18n("Edit..."), this,
587 SLOT (editTodo())); 621 SLOT (editTodo()));
588 mItemPopupMenu->insertItem( i18n("Delete..."), this, 622 mItemPopupMenu->insertItem( i18n("Delete..."), this,
589 SLOT (deleteTodo())); 623 SLOT (deleteTodo()));
590 mItemPopupMenu->insertItem( i18n("Clone..."), this, 624 mItemPopupMenu->insertItem( i18n("Clone..."), this,
591 SLOT (cloneTodo())); 625 SLOT (cloneTodo()));
592 mItemPopupMenu->insertItem( i18n("Move..."), this, 626 mItemPopupMenu->insertItem( i18n("Move..."), this,
593 SLOT (moveTodo())); 627 SLOT (moveTodo()));
594#ifndef DESKTOP_VERSION 628#ifndef DESKTOP_VERSION
595 mItemPopupMenu->insertItem( i18n("Beam..."), this, 629 mItemPopupMenu->insertItem( i18n("Beam..."), this,
596 SLOT (beamTodo())); 630 SLOT (beamTodo()));
597#endif 631#endif
598 mItemPopupMenu->insertItem( i18n("Toggle Cancel"), this, 632 mItemPopupMenu->insertItem( i18n("Toggle Cancel"), this,
599 SLOT (cancelTodo())); 633 SLOT (cancelTodo()));
600 mItemPopupMenu->insertItem( i18n("Categories"), mCategoryPopupMenu); 634 mItemPopupMenu->insertItem( i18n("Categories"), mCategoryPopupMenu);
601 mItemPopupMenu->insertItem( i18n("Calendar"), mCalPopupMenu); 635 mItemPopupMenu->insertItem( i18n("Calendar"), mCalPopupMenu);
602 mItemPopupMenu->insertSeparator(); 636 mItemPopupMenu->insertSeparator();
603 mItemPopupMenu->insertItem( i18n("Start/Stop todo..."), this, 637 mItemPopupMenu->insertItem( i18n("Start/Stop todo..."), this,
604 SLOT (toggleRunningItem())); 638 SLOT (toggleRunningItem()));
605 mItemPopupMenu->insertSeparator(); 639 mItemPopupMenu->insertSeparator();
606 /* 640 /*
607 mItemPopupMenu->insertItem( i18n("New Todo..."), this, 641 mItemPopupMenu->insertItem( i18n("New Todo..."), this,
608 SLOT (newTodo())); 642 SLOT (newTodo()));
609 */ 643 */
610 mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this, 644 mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this,
611 SLOT (newSubTodo())); 645 SLOT (newSubTodo()));
612 mItemPopupMenu->insertItem(i18n("Unparent Todo"), this, 646 mItemPopupMenu->insertItem(i18n("Unparent Todo"), this,
613 SLOT (unparentTodo()),0,21); 647 SLOT (unparentTodo()),0,21);
614 mItemPopupMenu->insertItem(i18n("Reparent Todo"), this, 648 mItemPopupMenu->insertItem(i18n("Reparent Todo"), this,
615 SLOT (reparentTodo()),0,22); 649 SLOT (reparentTodo()),0,22);
616 mItemPopupMenu->insertSeparator(); 650 mItemPopupMenu->insertSeparator();
617#if 0 651#if 0
618 mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed..."), 652 mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed..."),
619 this, SLOT( purgeCompleted() ) ); 653 this, SLOT( purgeCompleted() ) );
620 mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"), 654 mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"),
621 this, SLOT( toggleCompleted() ),0, 33 ); 655 this, SLOT( toggleCompleted() ),0, 33 );
622 mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), 656 mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"),
623 this, SLOT( toggleQuickTodo() ),0, 34 ); 657 this, SLOT( toggleQuickTodo() ),0, 34 );
624 mItemPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), 658 mItemPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"),
625 this, SLOT( toggleRunning() ),0, 35 ); 659 this, SLOT( toggleRunning() ),0, 35 );
626 660
627#endif 661#endif
628 mPopupMenu = new QPopupMenu(this); 662 mPopupMenu = new QPopupMenu(this);
629 mPopupMenu->insertItem(SmallIconSet("todo"), i18n("New Todo..."), this, 663 mPopupMenu->insertItem(SmallIconSet("todo"), i18n("New Todo..."), this,
630 SLOT (newTodo()),0,1); 664 SLOT (newTodo()),0,1);
631 mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed..."), 665 mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed..."),
632 this, SLOT(purgeCompleted()),0,2); 666 this, SLOT(purgeCompleted()),0,2);
633 mPopupMenu->insertItem(i18n("Show Completed"), 667 mPopupMenu->insertItem(i18n("Show Completed"),
634 this, SLOT( toggleCompleted() ),0,3 ); 668 this, SLOT( toggleCompleted() ),0,3 );
635 mPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), 669 mPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"),
636 this, SLOT( toggleRunning() ),0,5 ); 670 this, SLOT( toggleRunning() ),0,5 );
637 mPopupMenu->insertItem(i18n(" set all open","Display all opened"), 671 mPopupMenu->insertItem(i18n(" set all open","Display all opened"),
638 this, SLOT( setAllOpen() ),0,6 ); 672 this, SLOT( setAllOpen() ),0,6 );
639 mPopupMenu->insertItem(i18n(" set all close","Display all closed"), 673 mPopupMenu->insertItem(i18n(" set all close","Display all closed"),
640 this, SLOT( setAllClose() ),0,7 ); 674 this, SLOT( setAllClose() ),0,7 );
641 mPopupMenu->insertItem(i18n(" set all flat","Display all flat"), 675 mPopupMenu->insertItem(i18n(" set all flat","Display all flat"),
642 this, SLOT( setAllFlat() ),0,8 ); 676 this, SLOT( setAllFlat() ),0,8 );
643 mPopupMenu->insertSeparator(); 677 mPopupMenu->insertSeparator();
644 mPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), 678 mPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"),
645 this, SLOT( toggleQuickTodo() ),0,4 ); 679 this, SLOT( toggleQuickTodo() ),0,4 );
646 mDocPrefs = new DocPrefs( name ); 680 mDocPrefs = new DocPrefs( name );
647 681
648 mItemPopupMenu->insertItem(i18n("Todo View"),mPopupMenu ); 682 mItemPopupMenu->insertItem(i18n("Todo View"),mPopupMenu );
649 mPopupMenu->setCheckable( true ); 683 mPopupMenu->setCheckable( true );
650 mItemPopupMenu->setCheckable( true ); 684 mItemPopupMenu->setCheckable( true );
651 685
652 686
653 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); 687 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo );
654 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); 688 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo );
655 689
656 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); 690 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo);
657 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); 691 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo );
658 692
659 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos); 693 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos);
660 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos ); 694 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos );
661 695
662 696
663 // Double clicking conflicts with opening/closing the subtree 697 // Double clicking conflicts with opening/closing the subtree
664 connect( mTodoListView, SIGNAL( doubleClicked( QListViewItem *) ), 698 connect( mTodoListView, SIGNAL( doubleClicked( QListViewItem *) ),
665 SLOT( editItem( QListViewItem *) ) ); 699 SLOT( editItem( QListViewItem *) ) );
666 /* 700 /*
667 connect( mTodoListView, SIGNAL( rightButtonClicked ( QListViewItem *, 701 connect( mTodoListView, SIGNAL( rightButtonClicked ( QListViewItem *,
668 const QPoint &,int ) ), 702 const QPoint &,int ) ),
669 SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) ); 703 SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) );
670 */ 704 */
671 connect( mTodoListView, SIGNAL( contextRequest ( QListViewItem *, 705 connect( mTodoListView, SIGNAL( contextRequest ( QListViewItem *,
672 const QPoint &,int ) ), 706 const QPoint &,int ) ),
673 SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) ); 707 SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) );
674 connect( mTodoListView, SIGNAL( clicked( QListViewItem * ) ), 708 connect( mTodoListView, SIGNAL( clicked( QListViewItem * ) ),
675 SLOT( itemClicked( QListViewItem * ) ) ); 709 SLOT( itemClicked( QListViewItem * ) ) );
676 connect( mTodoListView, SIGNAL( double_Clicked( QListViewItem * ) ), 710 connect( mTodoListView, SIGNAL( double_Clicked( QListViewItem * ) ),
677 SLOT( itemDoubleClicked( QListViewItem * ) ) ); 711 SLOT( itemDoubleClicked( QListViewItem * ) ) );
678 connect( mTodoListView, SIGNAL( todoDropped( Todo *, int ) ), 712 connect( mTodoListView, SIGNAL( todoDropped( Todo *, int ) ),
679 SLOT( updateView() ) ); 713 SLOT( updateView() ) );
680 connect( mTodoListView, SIGNAL( todoDropped( Todo *, int ) ), 714 connect( mTodoListView, SIGNAL( todoDropped( Todo *, int ) ),
681 SLOT( todoModified(Todo *, int) ) ); 715 SLOT( todoModified(Todo *, int) ) );
682 connect( mTodoListView, SIGNAL( expanded( QListViewItem * ) ), 716 connect( mTodoListView, SIGNAL( expanded( QListViewItem * ) ),
683 SLOT( itemStateChanged( QListViewItem * ) ) ); 717 SLOT( itemStateChanged( QListViewItem * ) ) );
684 connect( mTodoListView, SIGNAL( collapsed( QListViewItem * ) ), 718 connect( mTodoListView, SIGNAL( collapsed( QListViewItem * ) ),
685 SLOT( itemStateChanged( QListViewItem * ) ) ); 719 SLOT( itemStateChanged( QListViewItem * ) ) );
686 connect( mTodoListView, SIGNAL( paintNeeded() ), 720 connect( mTodoListView, SIGNAL( paintNeeded() ),
687 SLOT( paintNeeded()) ); 721 SLOT( paintNeeded()) );
688 722
689#if 0 723#if 0
690 connect(mTodoListView,SIGNAL(selectionChanged(QListViewItem *)), 724 connect(mTodoListView,SIGNAL(selectionChanged(QListViewItem *)),
691 SLOT(selectionChanged(QListViewItem *))); 725 SLOT(selectionChanged(QListViewItem *)));
692 connect(mTodoListView,SIGNAL(clicked(QListViewItem *)), 726 connect(mTodoListView,SIGNAL(clicked(QListViewItem *)),
693 SLOT(selectionChanged(QListViewItem *))); 727 SLOT(selectionChanged(QListViewItem *)));
694 connect(mTodoListView,SIGNAL(pressed(QListViewItem *)), 728 connect(mTodoListView,SIGNAL(pressed(QListViewItem *)),
695 SLOT(selectionChanged(QListViewItem *))); 729 SLOT(selectionChanged(QListViewItem *)));
696#endif 730#endif
697 731
698 connect( mTodoListView, SIGNAL(reparentTodoSignal( Todo *,Todo * ) ), SIGNAL(reparentTodoSignal( Todo *,Todo * ) )); 732 connect( mTodoListView, SIGNAL(reparentTodoSignal( Todo *,Todo * ) ), SIGNAL(reparentTodoSignal( Todo *,Todo * ) ));
699 connect( mTodoListView, SIGNAL(unparentTodoSignal(Todo *) ), SIGNAL(unparentTodoSignal(Todo *) )); 733 connect( mTodoListView, SIGNAL(unparentTodoSignal(Todo *) ), SIGNAL(unparentTodoSignal(Todo *) ));
700 connect( mTodoListView, SIGNAL( deleteTodo(Todo *) ), SIGNAL(deleteTodoSignal(Todo *) )); 734 connect( mTodoListView, SIGNAL( deleteTodo(Todo *) ), SIGNAL(deleteTodoSignal(Todo *) ));
701 735
702 connect( mTodoListView, SIGNAL(selectionChanged() ), 736 connect( mTodoListView, SIGNAL(selectionChanged() ),
703 SLOT( processSelectionChange() ) ); 737 SLOT( processSelectionChange() ) );
704 connect( mQuickAdd, SIGNAL( returnPressed () ), 738 connect( mQuickAdd, SIGNAL( returnPressed () ),
705 SLOT( addQuickTodo() ) ); 739 SLOT( addQuickTodo() ) );
706 740
707} 741}
708 742
709KOTodoView::~KOTodoView() 743KOTodoView::~KOTodoView()
710{ 744{
711 745
712#if QT_VERSION >= 0x030000 746#if QT_VERSION >= 0x030000
713 747
714#else 748#else
715 delete mKOTodoViewWhatsThis; 749 delete mKOTodoViewWhatsThis;
716#endif 750#endif
717 751
718 delete mDocPrefs; 752 delete mDocPrefs;
719} 753}
720QString KOTodoView::getWhatsThisText(QPoint p) 754QString KOTodoView::getWhatsThisText(QPoint p)
721{ 755{
722 KOTodoViewItem* item = ( KOTodoViewItem* ) mTodoListView->itemAt( p ); 756 KOTodoViewItem* item = ( KOTodoViewItem* ) mTodoListView->itemAt( p );
723 if ( item ) 757 if ( item )
724 return KIncidenceFormatter::instance()->getFormattedText( item->todo(), 758 return KIncidenceFormatter::instance()->getFormattedText( item->todo(),
725 KOPrefs::instance()->mWTshowDetails, 759 KOPrefs::instance()->mWTshowDetails,
726 KOPrefs::instance()->mWTshowCreated, 760 KOPrefs::instance()->mWTshowCreated,
727 KOPrefs::instance()->mWTshowChanged); 761 KOPrefs::instance()->mWTshowChanged);
728 return i18n("That is the todo view" ); 762 return i18n("That is the todo view" );
729 763
730} 764}
731 765
732void KOTodoView::jumpToDate () 766void KOTodoView::jumpToDate ()
733{ 767{
734 // if (mActiveItem) { 768 // if (mActiveItem) {
735// mActiveItem->todo()); 769// mActiveItem->todo());
736// if ( mActiveItem->todo()->hasDueDate() ) 770// if ( mActiveItem->todo()->hasDueDate() )
737// emit mActiveItem->todo()jumpToTime( mTodo->dtDue().date() ); 771// emit mActiveItem->todo()jumpToTime( mTodo->dtDue().date() );
738} 772}
739void KOTodoView::paintNeeded() 773void KOTodoView::paintNeeded()
740{ 774{
741 if ( mPendingUpdateBeforeRepaint ) { 775 if ( mPendingUpdateBeforeRepaint ) {
742 updateView(); 776 updateView();
743 mPendingUpdateBeforeRepaint = false; 777 mPendingUpdateBeforeRepaint = false;
744 } 778 }
745} 779}
746void KOTodoView::paintEvent(QPaintEvent * pevent) 780void KOTodoView::paintEvent(QPaintEvent * pevent)
747{ 781{
748 if ( mPendingUpdateBeforeRepaint ) { 782 if ( mPendingUpdateBeforeRepaint ) {
749 updateView(); 783 updateView();
750 mPendingUpdateBeforeRepaint = false; 784 mPendingUpdateBeforeRepaint = false;
751 } 785 }
752 KOrg::BaseView::paintEvent( pevent); 786 KOrg::BaseView::paintEvent( pevent);
753} 787}
754 788
755void KOTodoView::updateView() 789void KOTodoView::updateView()
756{ 790{
757 pendingSubtodo = 0; 791 pendingSubtodo = 0;
758 if ( mBlockUpdate ) { 792 if ( mBlockUpdate ) {
759 return; 793 return;
760 } 794 }
761 if ( !isVisible() ) { 795 if ( !isVisible() ) {
762 mPendingUpdateBeforeRepaint = true; 796 mPendingUpdateBeforeRepaint = true;
763 return; 797 return;
764 } 798 }
765 //qDebug("KOTodoView::updateView() %x", this); 799 //qDebug("KOTodoView::updateView() %x", this);
766 if ( isFlatDisplay ) { 800 if ( isFlatDisplay ) {
767 displayAllFlat(); 801 displayAllFlat();
768 return; 802 return;
769 } 803 }
770 storeCurrentItem(); 804 storeCurrentItem();
771 //qDebug("update "); 805 //qDebug("update ");
772// kdDebug() << "KOTodoView::updateView()" << endl; 806// kdDebug() << "KOTodoView::updateView()" << endl;
773 QFont fo = KOPrefs::instance()->mTodoViewFont; 807 QFont fo = KOPrefs::instance()->mTodoViewFont;
774 808
775 809
776 mTodoListView->clear(); 810 mTodoListView->clear();
777 if ( mName == "todolistsmall" ) { 811 if ( mName == "todolistsmall" ) {
778 if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { 812 if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) {
779 int ps = fo.pointSize() -2; 813 int ps = fo.pointSize() -2;
780 if ( ps > 12 ) 814 if ( ps > 12 )
781 ps -= 2; 815 ps -= 2;
782 fo.setPointSize( ps ); 816 fo.setPointSize( ps );
783 } 817 }
784 } 818 }
785 819
786 mTodoListView->setFont( fo ); 820 mTodoListView->setFont( fo );
787 // QFontMetrics fm ( KOPrefs::instance()->mTodoViewFont ); 821 // QFontMetrics fm ( KOPrefs::instance()->mTodoViewFont );
788 //mTodoListView->header()->setMaximumHeight(fm.height()); 822 //mTodoListView->header()->setMaximumHeight(fm.height());
789 QPtrList<Todo> todoList = calendar()->todos(); 823 QPtrList<Todo> todoList = calendar()->todos();
790 824
791/* 825/*
792 kdDebug() << "KOTodoView::updateView(): Todo List:" << endl; 826 kdDebug() << "KOTodoView::updateView(): Todo List:" << endl;
793 Event *t; 827 Event *t;
794 for(t = todoList.first(); t; t = todoList.next()) { 828 for(t = todoList.first(); t; t = todoList.next()) {
795 kdDebug() << " " << t->getSummary() << endl; 829 kdDebug() << " " << t->getSummary() << endl;
796 830
797 if (t->getRelatedTo()) { 831 if (t->getRelatedTo()) {
798 kdDebug() << " (related to " << t->getRelatedTo()->getSummary() << ")" << endl; 832 kdDebug() << " (related to " << t->getRelatedTo()->getSummary() << ")" << endl;
799 } 833 }
800 834
801 QPtrList<Event> l = t->getRelations(); 835 QPtrList<Event> l = t->getRelations();
802 Event *c; 836 Event *c;
803 for(c=l.first();c;c=l.next()) { 837 for(c=l.first();c;c=l.next()) {
804 kdDebug() << " - relation: " << c->getSummary() << endl; 838 kdDebug() << " - relation: " << c->getSummary() << endl;
805 } 839 }
806 } 840 }
807*/ 841*/
808 842
809 // Put for each Event a KOTodoViewItem in the list view. Don't rely on a 843 // Put for each Event a KOTodoViewItem in the list view. Don't rely on a
810 // specific order of events. That means that we have to generate parent items 844 // specific order of events. That means that we have to generate parent items
811 // recursively for proper hierarchical display of Todos. 845 // recursively for proper hierarchical display of Todos.
812 mTodoMap.clear(); 846 mTodoMap.clear();
813 Todo *todo; 847 Todo *todo;
814 todo = todoList.first();// todo; todo = todoList.next()) { 848 todo = todoList.first();// todo; todo = todoList.next()) {
815 while ( todo ) { 849 while ( todo ) {
816 bool next = true; 850 bool next = true;
817 // qDebug("todo %s ", todo->summary().latin1()); 851 // qDebug("todo %s ", todo->summary().latin1());
818 Incidence *incidence = todo->relatedTo(); 852 Incidence *incidence = todo->relatedTo();
819 while ( incidence ) { 853 while ( incidence ) {
820 if ( incidence->typeID() == todoID ) { 854 if ( incidence->typeID() == todoID ) {
821 //qDebug("related %s ",incidence->summary().latin1() ); 855 //qDebug("related %s ",incidence->summary().latin1() );
822 if ( !(todoList.contains ( ((Todo* )incidence ) ) ) && incidence->calEnabled() ) { 856 if ( !(todoList.contains ( ((Todo* )incidence ) ) ) && incidence->calEnabled() ) {
823 //qDebug("related not found "); 857 //qDebug("related not found ");
824 todoList.remove( ); 858 todoList.remove( );
825 todo = todoList.current(); 859 todo = todoList.current();
826 next = false; 860 next = false;
827 incidence = 0; 861 incidence = 0;
828 862
829 } else { 863 } else {
830 //qDebug("related found "); 864 //qDebug("related found ");
831 incidence = incidence->relatedTo(); 865 incidence = incidence->relatedTo();
832 } 866 }
833 } else 867 } else
834 incidence = 0; 868 incidence = 0;
835 } 869 }
836 if ( next ) 870 if ( next )
837 todo = todoList.next(); 871 todo = todoList.next();
838 } 872 }
839 873
840 for(todo = todoList.first(); todo; todo = todoList.next()) { 874 for(todo = todoList.first(); todo; todo = todoList.next()) {
841 if (!mTodoMap.contains(todo) && checkTodo( todo ) ) 875 if (!mTodoMap.contains(todo) && checkTodo( todo ) )
842 { 876 {
843 insertTodoItem(todo); 877 insertTodoItem(todo);
844 } 878 }
845 } 879 }
846 // Restore opened/closed state 880 // Restore opened/closed state
847 mTodoListView->blockSignals( true ); 881 mTodoListView->blockSignals( true );
848 if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() ); 882 if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() );
849 mTodoListView->blockSignals( false ); 883 mTodoListView->blockSignals( false );
850 resetCurrentItem(); 884 resetCurrentItem();
851} 885}
852 886
853void KOTodoView::storeCurrentItem() 887void KOTodoView::storeCurrentItem()
854{ 888{
855 mCurItem = 0; 889 mCurItem = 0;
856 mCurItemRootParent = 0; 890 mCurItemRootParent = 0;
857 mCurItemParent = 0; 891 mCurItemParent = 0;
858 mCurItemAbove = 0; 892 mCurItemAbove = 0;
859 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 893 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
860 if (mActiveItem) { 894 if (mActiveItem) {
861 mCurItem = mActiveItem->todo(); 895 mCurItem = mActiveItem->todo();
862 KOTodoViewItem* activeItemAbove = (KOTodoViewItem*)mActiveItem->itemAbove (); 896 KOTodoViewItem* activeItemAbove = (KOTodoViewItem*)mActiveItem->itemAbove ();
863 if ( activeItemAbove ) 897 if ( activeItemAbove )
864 mCurItemAbove = activeItemAbove->todo(); 898 mCurItemAbove = activeItemAbove->todo();
865 mCurItemRootParent = mCurItem; 899 mCurItemRootParent = mCurItem;
866 mCurItemParent = mCurItemRootParent->relatedTo(); 900 mCurItemParent = mCurItemRootParent->relatedTo();
867 while ( mCurItemRootParent->relatedTo() != 0 ) 901 while ( mCurItemRootParent->relatedTo() != 0 )
868 mCurItemRootParent = mCurItemRootParent->relatedTo(); 902 mCurItemRootParent = mCurItemRootParent->relatedTo();
869 } 903 }
870 mActiveItem = 0; 904 mActiveItem = 0;
871} 905}
872 906
873void KOTodoView::resetCurrentItem() 907void KOTodoView::resetCurrentItem()
874{ 908{
875 //mTodoListView->setFocus(); 909 //mTodoListView->setFocus();
876 KOTodoViewItem* foundItem = 0; 910 KOTodoViewItem* foundItem = 0;
877 KOTodoViewItem* foundItemRoot = 0; 911 KOTodoViewItem* foundItemRoot = 0;
878 KOTodoViewItem* foundItemParent = 0; 912 KOTodoViewItem* foundItemParent = 0;
879 KOTodoViewItem* foundItemAbove = 0; 913 KOTodoViewItem* foundItemAbove = 0;
880 if ( mTodoListView->firstChild () ) { 914 if ( mTodoListView->firstChild () ) {
881 if ( mCurItem ) { 915 if ( mCurItem ) {
882 KOTodoViewItem* item = (KOTodoViewItem*)mTodoListView->firstChild (); 916 KOTodoViewItem* item = (KOTodoViewItem*)mTodoListView->firstChild ();
883 while ( item ) { 917 while ( item ) {
884 if ( item->todo() == mCurItem ) { 918 if ( item->todo() == mCurItem ) {
885 foundItem = item; 919 foundItem = item;
886 break; 920 break;
887 } else if ( item->todo() == mCurItemAbove ) { 921 } else if ( item->todo() == mCurItemAbove ) {
888 foundItemAbove = item; 922 foundItemAbove = item;
889 923
890 } 924 }
891 if ( item->todo() == mCurItemRootParent ) { 925 if ( item->todo() == mCurItemRootParent ) {
892 foundItemRoot = item; 926 foundItemRoot = item;
893 } 927 }
894 if ( item->todo() == mCurItemParent ) { 928 if ( item->todo() == mCurItemParent ) {
895 foundItemParent = item; 929 foundItemParent = item;
896 } 930 }
897 item = (KOTodoViewItem*)item->itemBelow(); 931 item = (KOTodoViewItem*)item->itemBelow();
898 } 932 }
899 if ( ! foundItem ) { 933 if ( ! foundItem ) {
900 if ( foundItemParent ) { 934 if ( foundItemParent ) {
901 foundItem = foundItemParent; 935 foundItem = foundItemParent;
902 } else { 936 } else {
903 if ( foundItemRoot ) 937 if ( foundItemRoot )
904 foundItem = foundItemRoot; 938 foundItem = foundItemRoot;
905 else 939 else
906 foundItem = foundItemAbove; 940 foundItem = foundItemAbove;
907 } 941 }
908 } 942 }
909 } 943 }
910 if ( foundItem ) { 944 if ( foundItem ) {
911 mTodoListView->setSelected ( foundItem, true ); 945 mTodoListView->setSelected ( foundItem, true );
912 mTodoListView->setCurrentItem( foundItem ); 946 mTodoListView->setCurrentItem( foundItem );
913 mTodoListView->ensureItemVisible( foundItem ); 947 mTodoListView->ensureItemVisible( foundItem );
914 } else { 948 } else {
915 if ( mTodoListView->firstChild () ) { 949 if ( mTodoListView->firstChild () ) {
916 mTodoListView->setSelected ( mTodoListView->firstChild (), true ); 950 mTodoListView->setSelected ( mTodoListView->firstChild (), true );
917 mTodoListView->setCurrentItem( mTodoListView->firstChild () ); 951 mTodoListView->setCurrentItem( mTodoListView->firstChild () );
918 } 952 }
919 } 953 }
920 } 954 }
921 processSelectionChange(); 955 processSelectionChange();
922 QTimer::singleShot( 100, this, SLOT ( resetFocusToList() )); 956 QTimer::singleShot( 100, this, SLOT ( resetFocusToList() ));
923} 957}
924void KOTodoView::resetFocusToList() 958void KOTodoView::resetFocusToList()
925{ 959{
926 topLevelWidget()->setActiveWindow(); 960 topLevelWidget()->setActiveWindow();
927 mTodoListView->setFocus(); 961 mTodoListView->setFocus();
928} 962}
929//Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove; 963//Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove;
930bool KOTodoView::checkTodo( Todo * todo ) 964bool KOTodoView::checkTodo( Todo * todo )
931{ 965{
932 966
933 if ( !KOPrefs::instance()->mShowCompletedTodo && todo->isCompleted() ) 967 if ( !KOPrefs::instance()->mShowCompletedTodo && todo->isCompleted() )
934 return false; 968 return false;
935 if ( !todo->isCompleted() ) { 969 if ( !todo->isCompleted() ) {
936 if ( todo->hasDueDate() && todo->dtDue().date() <= QDate::currentDate() ) 970 if ( todo->hasDueDate() && todo->dtDue().date() <= QDate::currentDate() )
937 return true; 971 return true;
938 } 972 }
939 if ( KOPrefs::instance()->mHideNonStartedTodos && mNavigator ) { 973 if ( KOPrefs::instance()->mHideNonStartedTodos && mNavigator ) {
940 if ( todo->hasStartDate() ) 974 if ( todo->hasStartDate() )
941 if ( mNavigator->selectedDates().last() < todo->dtStart().date() ) 975 if ( mNavigator->selectedDates().last() < todo->dtStart().date() )
942 return false; 976 return false;
943 if ( todo->hasDueDate() ) 977 if ( todo->hasDueDate() )
944 if ( mNavigator->selectedDates().first() > todo->dtDue().date() ) 978 if ( mNavigator->selectedDates().first() > todo->dtDue().date() )
945 return false; 979 return false;
946 } 980 }
947 return true; 981 return true;
948} 982}
949 983
950void KOTodoView::restoreItemState( QListViewItem *item ) 984void KOTodoView::restoreItemState( QListViewItem *item )
951{ 985{
952 pendingSubtodo = 0; 986 pendingSubtodo = 0;
953 while( item ) { 987 while( item ) {
954 KOTodoViewItem *todoItem = (KOTodoViewItem *)item; 988 KOTodoViewItem *todoItem = (KOTodoViewItem *)item;
955 todoItem->setOpen( mDocPrefs->readBoolEntry( todoItem->todo()->uid() ) ); 989 todoItem->setOpen( mDocPrefs->readBoolEntry( todoItem->todo()->uid() ) );
956 if( item->childCount() > 0 ) restoreItemState( item->firstChild() ); 990 if( item->childCount() > 0 ) restoreItemState( item->firstChild() );
957 item = item->nextSibling(); 991 item = item->nextSibling();
958 } 992 }
959} 993}
960 994
961 995
962QMap<Todo *,KOTodoViewItem *>::ConstIterator 996QMap<Todo *,KOTodoViewItem *>::ConstIterator
963KOTodoView::insertTodoItem(Todo *todo) 997KOTodoView::insertTodoItem(Todo *todo)
964{ 998{
965 999
966 // kdDebug() << "KOTodoView::insertTodoItem(): " << todo->getSummary() << endl; 1000 // kdDebug() << "KOTodoView::insertTodoItem(): " << todo->getSummary() << endl;
967 // TODO: Check, if dynmaic cast is necessary 1001 // TODO: Check, if dynmaic cast is necessary
968 1002
969 pendingSubtodo = 0; 1003 pendingSubtodo = 0;
970 Incidence *incidence = todo->relatedTo(); 1004 Incidence *incidence = todo->relatedTo();
971 while ( incidence && !incidence->calEnabled() ) 1005 while ( incidence && !incidence->calEnabled() )
972 incidence = incidence->relatedTo(); 1006 incidence = incidence->relatedTo();
973 if (incidence && incidence->typeID() == todoID ) { 1007 if (incidence && incidence->typeID() == todoID ) {
974 Todo *relatedTodo = static_cast<Todo *>(incidence); 1008 Todo *relatedTodo = static_cast<Todo *>(incidence);
975 1009
976 // kdDebug() << " has Related" << endl; 1010 // kdDebug() << " has Related" << endl;
977 QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator; 1011 QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator;
978 itemIterator = mTodoMap.find(relatedTodo); 1012 itemIterator = mTodoMap.find(relatedTodo);
979 if (itemIterator == mTodoMap.end()) { 1013 if (itemIterator == mTodoMap.end()) {
980 // kdDebug() << " related not yet in list" << endl; 1014 // kdDebug() << " related not yet in list" << endl;
981 itemIterator = insertTodoItem (relatedTodo); 1015 itemIterator = insertTodoItem (relatedTodo);
982 } 1016 }
983 // isn't this pretty stupid? We give one Todo to the KOTodoViewItem 1017 // isn't this pretty stupid? We give one Todo to the KOTodoViewItem
984 // and one into the map. Sure finding is more easy but why? -zecke 1018 // and one into the map. Sure finding is more easy but why? -zecke
985 KOTodoViewItem *todoItem = new KOTodoViewItem(*itemIterator,todo,this); 1019 KOTodoViewItem *todoItem = new KOTodoViewItem(*itemIterator,todo,this);
986 return mTodoMap.insert(todo,todoItem); 1020 return mTodoMap.insert(todo,todoItem);
987 } else { 1021 } else {
988 // kdDebug() << " no Related" << endl; 1022 // kdDebug() << " no Related" << endl;
989 // see above -zecke 1023 // see above -zecke
990 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this); 1024 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
991 return mTodoMap.insert(todo,todoItem); 1025 return mTodoMap.insert(todo,todoItem);
992 } 1026 }
993} 1027}
994 1028
995 1029
996void KOTodoView::updateConfig() 1030void KOTodoView::updateConfig()
997{ 1031{
998 updateView(); 1032 updateView();
999 mTodoListView->repaintContents(); 1033 mTodoListView->repaintContents();
1000} 1034}
1001 1035
1002QPtrList<Incidence> KOTodoView::selectedIncidences() 1036QPtrList<Incidence> KOTodoView::selectedIncidences()
1003{ 1037{
1004 QPtrList<Incidence> selected; 1038 QPtrList<Incidence> selected;
1005 1039
1006 KOTodoViewItem *item = (KOTodoViewItem *)(mTodoListView->selectedItem()); 1040 KOTodoViewItem *item = (KOTodoViewItem *)(mTodoListView->selectedItem());
1007// if (!item) item = mActiveItem; 1041// if (!item) item = mActiveItem;
1008 if (item) selected.append(item->todo()); 1042 if (item) selected.append(item->todo());
1009 1043
1010 return selected; 1044 return selected;
1011} 1045}
1012 1046
1013QPtrList<Todo> KOTodoView::selectedTodos() 1047QPtrList<Todo> KOTodoView::selectedTodos()
1014{ 1048{
1015 QPtrList<Todo> selected; 1049 QPtrList<Todo> selected;
1016 1050
1017 KOTodoViewItem *item = (KOTodoViewItem *)(mTodoListView->selectedItem()); 1051 KOTodoViewItem *item = (KOTodoViewItem *)(mTodoListView->selectedItem());
1018// if (!item) item = mActiveItem; 1052// if (!item) item = mActiveItem;
1019 if (item) selected.append(item->todo()); 1053 if (item) selected.append(item->todo());
1020 1054
1021 return selected; 1055 return selected;
1022} 1056}
1023 1057
1024void KOTodoView::changeEventDisplay(Event *, int) 1058void KOTodoView::changeEventDisplay(Event *, int)
1025{ 1059{
1026 updateView(); 1060 updateView();
1027} 1061}
1028 1062
1029void KOTodoView::showDates(const QDate &, const QDate &) 1063void KOTodoView::showDates(const QDate &, const QDate &)
1030{ 1064{
1031} 1065}
1032 1066
1033void KOTodoView::showEvents(QPtrList<Event>) 1067void KOTodoView::showEvents(QPtrList<Event>)
1034{ 1068{
1035 kdDebug() << "KOTodoView::selectEvents(): not yet implemented" << endl; 1069 kdDebug() << "KOTodoView::selectEvents(): not yet implemented" << endl;
1036} 1070}
1037 1071
1038void KOTodoView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1072void KOTodoView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1039 const QDate &td) 1073 const QDate &td)
1040{ 1074{
1041#ifndef KORG_NOPRINTER 1075#ifndef KORG_NOPRINTER
1042 calPrinter->preview(CalPrinter::Todolist, fd, td); 1076 calPrinter->preview(CalPrinter::Todolist, fd, td);
1043#endif 1077#endif
1044} 1078}
1045 1079
1046void KOTodoView::editItem(QListViewItem *item ) 1080void KOTodoView::editItem(QListViewItem *item )
1047{ 1081{
1048 emit editTodoSignal(((KOTodoViewItem *)item)->todo()); 1082 emit editTodoSignal(((KOTodoViewItem *)item)->todo());
1049} 1083}
1050 1084
1051void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) 1085void KOTodoView::showItem(QListViewItem *item,const QPoint &,int)
1052{ 1086{
1053 emit showTodoSignal(((KOTodoViewItem *)item)->todo()); 1087 emit showTodoSignal(((KOTodoViewItem *)item)->todo());
1054} 1088}
1055 1089
1056void KOTodoView::popupMenu(QListViewItem *item,const QPoint &p,int column) 1090void KOTodoView::popupMenu(QListViewItem *item,const QPoint &p,int column)
1057{ 1091{
1058 pendingSubtodo = 0; 1092 pendingSubtodo = 0;
1059 mActiveItem = (KOTodoViewItem *)item; 1093 mActiveItem = (KOTodoViewItem *)item;
1060 if (item) { 1094 if (item) {
1061 switch (column){ 1095 switch (column){
1062 case 1: 1096 case 1:
1063 mPriorityPopupMenu->popup(QCursor::pos ()); break; 1097 mPriorityPopupMenu->popup(QCursor::pos ()); break;
1064 case 2: 1098 case 2:
1065 mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; 1099 mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break;
1066 case 3: 1100 case 3:
1067 moveTodo(); 1101 moveTodo();
1068 break; 1102 break;
1069 case 8: 1103 case 8:
1070 mCategoryPopupMenu->popup(QCursor::pos ()); break; 1104 mCategoryPopupMenu->popup(QCursor::pos ()); break;
1071 case 9: 1105 case 9:
1072 mCalPopupMenu->popup(QCursor::pos ()); break; 1106 mCalPopupMenu->popup(QCursor::pos ()); break;
1073 default: 1107 default:
1074 mItemPopupMenu->popup(QCursor::pos()); 1108 mItemPopupMenu->popup(QCursor::pos());
1075 } 1109 }
1076 } else mPopupMenu->popup(QCursor::pos()); 1110 } else mPopupMenu->popup(QCursor::pos());
1077} 1111}
1078void KOTodoView::newTodo() 1112void KOTodoView::newTodo()
1079{ 1113{
1080 emit newTodoSignal(); 1114 emit newTodoSignal();
1081} 1115}
1082 1116
1083void KOTodoView::newSubTodo() 1117void KOTodoView::newSubTodo()
1084{ 1118{
1119 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1085 if (mActiveItem) { 1120 if (mActiveItem) {
1086 emit newSubTodoSignal(mActiveItem->todo()); 1121 if ( mQuickAdd->isVisible() && !mQuickAdd->text().isEmpty() && mQuickAdd->text() != i18n("Click to add a new Todo") ) {
1122 addQuickTodoPar( mActiveItem->todo());
1123 } else
1124 emit newSubTodoSignal(mActiveItem->todo());
1087 } 1125 }
1088} 1126}
1089void KOTodoView::unparentTodo() 1127void KOTodoView::unparentTodo()
1090{ 1128{
1091 if (mActiveItem) { 1129 if (mActiveItem) {
1092 emit unparentTodoSignal(mActiveItem->todo()); 1130 emit unparentTodoSignal(mActiveItem->todo());
1093 } 1131 }
1094} 1132}
1095 1133
1096void KOTodoView::reparentTodo() 1134void KOTodoView::reparentTodo()
1097{ 1135{
1098 if (mActiveItem) { 1136 if (mActiveItem) {
1099 topLevelWidget()->setCaption(i18n("Click on new parent item")); 1137 topLevelWidget()->setCaption(i18n("Click on new parent item"));
1100 pendingSubtodo = mActiveItem; 1138 pendingSubtodo = mActiveItem;
1101 } 1139 }
1102} 1140}
1103void KOTodoView::editTodo() 1141void KOTodoView::editTodo()
1104{ 1142{
1105 if (mActiveItem) { 1143 if (mActiveItem) {
1106 emit editTodoSignal(mActiveItem->todo()); 1144 emit editTodoSignal(mActiveItem->todo());
1107 } 1145 }
1108} 1146}
1109void KOTodoView::cloneTodo() 1147void KOTodoView::cloneTodo()
1110{ 1148{
1111 if (mActiveItem) { 1149 if (mActiveItem) {
1112 emit cloneTodoSignal((Incidence*)mActiveItem->todo()); 1150 emit cloneTodoSignal((Incidence*)mActiveItem->todo());
1113 } 1151 }
1114} 1152}
1115void KOTodoView::cancelTodo() 1153void KOTodoView::cancelTodo()
1116{ 1154{
1117 if (mActiveItem) { 1155 if (mActiveItem) {
1118 emit cancelTodoSignal((Incidence*)mActiveItem->todo()); 1156 emit cancelTodoSignal((Incidence*)mActiveItem->todo());
1119 } 1157 }
1120} 1158}
1121void KOTodoView::moveTodo() 1159void KOTodoView::moveTodo()
1122{ 1160{
1123 if (mActiveItem) { 1161 if (mActiveItem) {
1124 emit moveTodoSignal((Incidence*)mActiveItem->todo()); 1162 emit moveTodoSignal((Incidence*)mActiveItem->todo());
1125 } 1163 }
1126} 1164}
1127void KOTodoView::beamTodo() 1165void KOTodoView::beamTodo()
1128{ 1166{
1129 if (mActiveItem) { 1167 if (mActiveItem) {
1130 emit beamTodoSignal((Incidence*)mActiveItem->todo()); 1168 emit beamTodoSignal((Incidence*)mActiveItem->todo());
1131 } 1169 }
1132} 1170}
1133 1171
1134 1172
1135void KOTodoView::showTodo() 1173void KOTodoView::showTodo()
1136{ 1174{
1137 if (mActiveItem) { 1175 if (mActiveItem) {
1138 emit showTodoSignal(mActiveItem->todo()); 1176 emit showTodoSignal(mActiveItem->todo());
1139 } 1177 }
1140} 1178}
1141 1179
1142void KOTodoView::deleteTodo() 1180void KOTodoView::deleteTodo()
1143{ 1181{
1144 if (mActiveItem) { 1182 if (mActiveItem) {
1145 emit deleteTodoSignal(mActiveItem->todo()); 1183 emit deleteTodoSignal(mActiveItem->todo());
1146 } 1184 }
1147} 1185}
1148 1186
1149void KOTodoView::setNewPriority(int index) 1187void KOTodoView::setNewPriority(int index)
1150{ 1188{
1151 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { 1189 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) {
1152 mActiveItem->todo()->setPriority(mPriority[index]); 1190 mActiveItem->todo()->setPriority(mPriority[index]);
1153 mActiveItem->construct(); 1191 mActiveItem->construct();
1154 todoModified (mActiveItem->todo(), KOGlobals::PRIORITY_MODIFIED); 1192 todoModified (mActiveItem->todo(), KOGlobals::PRIORITY_MODIFIED);
1155 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); 1193 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 );
1156 } 1194 }
1157 processSelectionChange(); 1195 processSelectionChange();
1158} 1196}
1159 1197
1160void KOTodoView::setNewPercentage(int index) 1198void KOTodoView::setNewPercentage(int index)
1161{ 1199{
1162 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { 1200 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) {
1163 1201
1164 if ( mPercentage[index] == 100 && !mActiveItem->isOn() ) { 1202 if ( mPercentage[index] == 100 && !mActiveItem->isOn() ) {
1165 mActiveItem->setOn( true ); 1203 mActiveItem->setOn( true );
1166 processSelectionChange(); 1204 processSelectionChange();
1167 return; 1205 return;
1168 } else if ( mPercentage[index] != 100 && mActiveItem->isOn() ) { 1206 } else if ( mPercentage[index] != 100 && mActiveItem->isOn() ) {
1169 KOTodoViewItem* par = (static_cast<KOTodoViewItem*>(mActiveItem->parent())); 1207 KOTodoViewItem* par = (static_cast<KOTodoViewItem*>(mActiveItem->parent()));
1170 if ( par && par->isOn() ) 1208 if ( par && par->isOn() )
1171 par->setOn( false ); 1209 par->setOn( false );
1172 } 1210 }
1173 if (mPercentage[index] == 100) { 1211 if (mPercentage[index] == 100) {
1174 mActiveItem->todo()->setCompleted(QDateTime::currentDateTime()); 1212 mActiveItem->todo()->setCompleted(QDateTime::currentDateTime());
1175 } else { 1213 } else {
1176 mActiveItem->todo()->setCompleted(false); 1214 mActiveItem->todo()->setCompleted(false);
1177 } 1215 }
1178 mActiveItem->todo()->setPercentComplete(mPercentage[index]); 1216 mActiveItem->todo()->setPercentComplete(mPercentage[index]);
1179 mActiveItem->construct(); 1217 mActiveItem->construct();
1180 todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED); 1218 todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED);
1181 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); 1219 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 );
1182 } 1220 }
1183 processSelectionChange(); 1221 processSelectionChange();
1184} 1222}
1185 1223
1186void KOTodoView::fillCategories () 1224void KOTodoView::fillCategories ()
1187{ 1225{
1188 mCategoryPopupMenu->clear(); 1226 mCategoryPopupMenu->clear();
1189 if ( ! mActiveItem ) return; 1227 if ( ! mActiveItem ) return;
1190 QStringList checkedCategories = mActiveItem->todo()->categories (); 1228 QStringList checkedCategories = mActiveItem->todo()->categories ();
1191 for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); 1229 for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin ();
1192 it != KOPrefs::instance()->mCustomCategories.end (); 1230 it != KOPrefs::instance()->mCustomCategories.end ();
1193 ++it) { 1231 ++it) {
1194 int index = mCategoryPopupMenu->insertItem (*it); 1232 int index = mCategoryPopupMenu->insertItem (*it);
1195 mCategory[index] = *it; 1233 mCategory[index] = *it;
1196 if (checkedCategories.find (*it) != checkedCategories.end ()) mCategoryPopupMenu->setItemChecked (index, true); 1234 if (checkedCategories.find (*it) != checkedCategories.end ()) mCategoryPopupMenu->setItemChecked (index, true);
1197 } 1235 }
1198} 1236}
1199void KOTodoView::fillCal () 1237void KOTodoView::fillCal ()
1200{ 1238{
1201 mCalPopupMenu->clear(); 1239 mCalPopupMenu->clear();
1202 if (!mActiveItem) return; 1240 if (!mActiveItem) return;
1203 bool readO = mActiveItem->todo()->isReadOnly(); 1241 bool readO = mActiveItem->todo()->isReadOnly();
1204 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 1242 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
1205 while ( kkf ) { 1243 while ( kkf ) {
1206 int index = mCalPopupMenu->insertItem( kkf->mName, kkf->mCalNumber); 1244 int index = mCalPopupMenu->insertItem( kkf->mName, kkf->mCalNumber);
1207 if ( kkf->mErrorOnLoad || kkf->isReadOnly || readO ) 1245 if ( kkf->mErrorOnLoad || kkf->isReadOnly || readO )
1208 mCalPopupMenu->setItemEnabled( index, false ); 1246 mCalPopupMenu->setItemEnabled( index, false );
1209 mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID()); 1247 mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID());
1210 kkf = KOPrefs::instance()->mCalendars.next(); 1248 kkf = KOPrefs::instance()->mCalendars.next();
1211 } 1249 }
1212} 1250}
1213void KOTodoView::changedCal (int index ) 1251void KOTodoView::changedCal (int index )
1214{ 1252{
1215 if (!mActiveItem) return; 1253 if (!mActiveItem) return;
1216 mActiveItem->todo()->setCalID( index ); 1254 mActiveItem->todo()->setCalID( index );
1217 mActiveItem->construct(); 1255 mActiveItem->construct();
1218} 1256}
1219void KOTodoView::changedCategories(int index) 1257void KOTodoView::changedCategories(int index)
1220{ 1258{
1221 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { 1259 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) {
1222 QStringList categories = mActiveItem->todo()->categories (); 1260 QStringList categories = mActiveItem->todo()->categories ();
1223 QString colcat = categories.first(); 1261 QString colcat = categories.first();
1224 if (categories.find (mCategory[index]) != categories.end ()) 1262 if (categories.find (mCategory[index]) != categories.end ())
1225 categories.remove (mCategory[index]); 1263 categories.remove (mCategory[index]);
1226 else 1264 else
1227 categories.insert (categories.end(), mCategory[index]); 1265 categories.insert (categories.end(), mCategory[index]);
1228 categories.sort (); 1266 categories.sort ();
1229 if ( !colcat.isEmpty() ) { 1267 if ( !colcat.isEmpty() ) {
1230 if ( categories.find ( colcat ) != categories.end () ) { 1268 if ( categories.find ( colcat ) != categories.end () ) {
1231 categories.remove( colcat ); 1269 categories.remove( colcat );
1232 categories.prepend( colcat ); 1270 categories.prepend( colcat );
1233 } 1271 }
1234 } 1272 }
1235 mActiveItem->todo()->setCategories (categories); 1273 mActiveItem->todo()->setCategories (categories);
1236 mActiveItem->construct(); 1274 mActiveItem->construct();
1237 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); 1275 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 );
1238 todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); 1276 todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED);
1239 } 1277 }
1240} 1278}
1241void KOTodoView::itemDoubleClicked(QListViewItem *item) 1279void KOTodoView::itemDoubleClicked(QListViewItem *item)
1242{ 1280{
1243 if ( pendingSubtodo != 0 ) { 1281 if ( pendingSubtodo != 0 ) {
1244 topLevelWidget()->setCaption(i18n("Reparenting aborted!")); 1282 topLevelWidget()->setCaption(i18n("Reparenting aborted!"));
1245 } 1283 }
1246 pendingSubtodo = 0; 1284 pendingSubtodo = 0;
1247 //int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() ); 1285 //int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() );
1248 int row = mTodoListView->header()->sectionAt ( mTodoListView->viewportToContents(mTodoListView->viewport()->mapFromGlobal( QCursor::pos())) .x() ); 1286 int row = mTodoListView->header()->sectionAt ( mTodoListView->viewportToContents(mTodoListView->viewport()->mapFromGlobal( QCursor::pos())) .x() );
1249 //qDebug("ROW %d ", row); 1287 //qDebug("ROW %d ", row);
1250 if (!item) { 1288 if (!item) {
1251 newTodo(); 1289 newTodo();
1252 return; 1290 return;
1253 } else { 1291 } else {
1254 if ( row == 1 ) { 1292 if ( row == 1 ) {
1255 mActiveItem = (KOTodoViewItem *) item; 1293 mActiveItem = (KOTodoViewItem *) item;
1256 newSubTodo(); 1294 newSubTodo();
1257 return; 1295 return;
1258 } 1296 }
1259 if ( row == 5 || row == 6 || row == 2) { 1297 if ( row == 5 || row == 6 || row == 2) {
1260 mActiveItem = (KOTodoViewItem *) item; 1298 mActiveItem = (KOTodoViewItem *) item;
1261 Todo * t = mActiveItem->todo(); 1299 Todo * t = mActiveItem->todo();
1262 if ( t->isRunning() ) { 1300 if ( t->isRunning() ) {
1263 if ( t->runTime() < 15) { 1301 if ( t->runTime() < 15) {
1264 t->stopRunning(); 1302 t->stopRunning();
1265 mActiveItem->construct(); 1303 mActiveItem->construct();
1266 topLevelWidget()->setCaption(i18n("Todo stopped - no data saved because runtime was < 15 sec!")); 1304 topLevelWidget()->setCaption(i18n("Todo stopped - no data saved because runtime was < 15 sec!"));
1267 return; 1305 return;
1268 } 1306 }
1269 else 1307 else
1270 toggleRunningItem(); 1308 toggleRunningItem();
1271 return; 1309 return;
1272 } else { 1310 } else {
1273 t->setRunning( true ); 1311 t->setRunning( true );
1274 mActiveItem->construct(); 1312 mActiveItem->construct();
1275 topLevelWidget()->setCaption(i18n("Todo started! Double click again to stop!")); 1313 topLevelWidget()->setCaption(i18n("Todo started! Double click again to stop!"));
1276 return; 1314 return;
1277 } 1315 }
1278 } 1316 }
1279 } 1317 }
1280 if ( KOPrefs::instance()->mEditOnDoubleClick ) 1318 if ( KOPrefs::instance()->mEditOnDoubleClick )
1281 editItem( item ); 1319 editItem( item );
1282 else 1320 else
1283 showItem( item , QPoint(), 0 ); 1321 showItem( item , QPoint(), 0 );
1284} 1322}
1285void KOTodoView::toggleRunningItem() 1323void KOTodoView::toggleRunningItem()
1286{ 1324{
1287 // qDebug("KOTodoView::toggleRunning() "); 1325 // qDebug("KOTodoView::toggleRunning() ");
1288 if ( ! mActiveItem ) 1326 if ( ! mActiveItem )
1289 return; 1327 return;
1290 Todo * t = mActiveItem->todo(); 1328 Todo * t = mActiveItem->todo();
1291 if ( t->isRunning() ) { 1329 if ( t->isRunning() ) {
1292 KOStopTodoPrefs tp ( t, this ); 1330 KOStopTodoPrefs tp ( t, this );
1293 if (QApplication::desktop()->width() <= 800 ){ 1331 if (QApplication::desktop()->width() <= 800 ){
1294 int wid = tp.width(); 1332 int wid = tp.width();
1295 int hei = tp.height(); 1333 int hei = tp.height();
1296 int xx = (QApplication::desktop()->width()-wid)/2; 1334 int xx = (QApplication::desktop()->width()-wid)/2;
1297 int yy = (QApplication::desktop()->height()-hei)/2; 1335 int yy = (QApplication::desktop()->height()-hei)/2;
1298 tp.setGeometry( xx,yy,wid,hei ); 1336 tp.setGeometry( xx,yy,wid,hei );
1299 } 1337 }
1300 tp.exec(); 1338 tp.exec();
1301 mActiveItem->construct(); 1339 mActiveItem->construct();
1302 } else { 1340 } else {
1303 KOStartTodoPrefs tp ( t->summary(), this ); 1341 KOStartTodoPrefs tp ( t->summary(), this );
1304 if (QApplication::desktop()->width() <= 800 ){ 1342 if (QApplication::desktop()->width() <= 800 ){
1305 int wid = tp.width(); 1343 int wid = tp.width();
1306 int hei = tp.height(); 1344 int hei = tp.height();
1307 int xx = (QApplication::desktop()->width()-wid)/2; 1345 int xx = (QApplication::desktop()->width()-wid)/2;
1308 int yy = (QApplication::desktop()->height()-hei)/2; 1346 int yy = (QApplication::desktop()->height()-hei)/2;
1309 tp.setGeometry( xx,yy,wid,hei ); 1347 tp.setGeometry( xx,yy,wid,hei );
1310 } 1348 }
1311 if ( !tp.exec() ) return; 1349 if ( !tp.exec() ) return;
1312 if ( tp.stopAll() ) { 1350 if ( tp.stopAll() ) {
1313 mCalendar->stopAllTodos(); 1351 mCalendar->stopAllTodos();
1314 t->setRunning( true ); 1352 t->setRunning( true );
1315 updateView(); 1353 updateView();
1316 } else { 1354 } else {
1317 t->setRunning( true ); 1355 t->setRunning( true );
1318 mActiveItem->construct(); 1356 mActiveItem->construct();
1319 } 1357 }
1320 } 1358 }
1321} 1359}
1322 1360
1323void KOTodoView::itemClicked(QListViewItem *item) 1361void KOTodoView::itemClicked(QListViewItem *item)
1324{ 1362{
1325 //qDebug("KOTodoView::itemClicked %d", item); 1363 //qDebug("KOTodoView::itemClicked %d", item);
1326 if (!item) { 1364 if (!item) {
1327 if ( pendingSubtodo != 0 ) { 1365 if ( pendingSubtodo != 0 ) {
1328 topLevelWidget()->setCaption(i18n("Reparenting aborted!")); 1366 topLevelWidget()->setCaption(i18n("Reparenting aborted!"));
1329 } 1367 }
1330 pendingSubtodo = 0; 1368 pendingSubtodo = 0;
1331 return; 1369 return;
1332 } 1370 }
1333 KOTodoViewItem *todoItem = (KOTodoViewItem *)item; 1371 KOTodoViewItem *todoItem = (KOTodoViewItem *)item;
1334 if ( pendingSubtodo != 0 ) { 1372 if ( pendingSubtodo != 0 ) {
1335 bool allowReparent = true; 1373 bool allowReparent = true;
1336 QListViewItem *par = item; 1374 QListViewItem *par = item;
1337 while ( par ) { 1375 while ( par ) {
1338 if ( par == pendingSubtodo ) { 1376 if ( par == pendingSubtodo ) {
1339 allowReparent = false; 1377 allowReparent = false;
1340 break; 1378 break;
1341 } 1379 }
1342 par = par->parent(); 1380 par = par->parent();
1343 } 1381 }
1344 if ( !allowReparent ) { 1382 if ( !allowReparent ) {
1345 topLevelWidget()->setCaption(i18n("Recursive reparenting not possible!")); 1383 topLevelWidget()->setCaption(i18n("Recursive reparenting not possible!"));
1346 pendingSubtodo = 0; 1384 pendingSubtodo = 0;
1347 } else { 1385 } else {
1348 Todo* newParent = todoItem->todo(); 1386 Todo* newParent = todoItem->todo();
1349 Todo* newSub = pendingSubtodo->todo(); 1387 Todo* newSub = pendingSubtodo->todo();
1350 pendingSubtodo = 0; 1388 pendingSubtodo = 0;
1351 emit reparentTodoSignal( newParent,newSub ); 1389 emit reparentTodoSignal( newParent,newSub );
1352 return; 1390 return;
1353 } 1391 }
1354 } 1392 }
1355 1393
1356} 1394}
1357 1395
1358void KOTodoView::setDocumentId( const QString &id ) 1396void KOTodoView::setDocumentId( const QString &id )
1359{ 1397{
1360 1398
1361 mDocPrefs->setDoc( id ); 1399 mDocPrefs->setDoc( id );
1362} 1400}
1363 1401
1364void KOTodoView::itemStateChanged( QListViewItem *item ) 1402void KOTodoView::itemStateChanged( QListViewItem *item )
1365{ 1403{
1366 if (!item) return; 1404 if (!item) return;
1367 1405
1368 KOTodoViewItem *todoItem = (KOTodoViewItem *)item; 1406 KOTodoViewItem *todoItem = (KOTodoViewItem *)item;
1369 1407
1370// kdDebug() << "KOTodoView::itemStateChanged(): " << todoItem->todo()->summary() << endl; 1408// kdDebug() << "KOTodoView::itemStateChanged(): " << todoItem->todo()->summary() << endl;
1371 1409
1372 if( mDocPrefs ) mDocPrefs->writeEntry( todoItem->todo()->uid(), todoItem->isOpen() ); 1410 if( mDocPrefs ) mDocPrefs->writeEntry( todoItem->todo()->uid(), todoItem->isOpen() );
1373} 1411}
1374 1412
1375void KOTodoView::saveLayout(KConfig *config, const QString &group) const 1413void KOTodoView::saveLayout(KConfig *config, const QString &group) const
1376{ 1414{
1377 mTodoListView->saveLayout(config,group); 1415 mTodoListView->saveLayout(config,group);
1378} 1416}
1379 1417
1380void KOTodoView::restoreLayout(KConfig *config, const QString &group) 1418void KOTodoView::restoreLayout(KConfig *config, const QString &group)
1381{ 1419{
1382 mTodoListView->restoreLayout(config,group); 1420 mTodoListView->restoreLayout(config,group);
1383} 1421}
1384 1422
1385void KOTodoView::processSelectionChange() 1423void KOTodoView::processSelectionChange()
1386{ 1424{
1387// kdDebug() << "KOTodoView::processSelectionChange()" << endl; 1425// kdDebug() << "KOTodoView::processSelectionChange()" << endl;
1388 1426
1389 KOTodoViewItem *item = 1427 KOTodoViewItem *item =
1390 static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() ); 1428 static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() );
1391 1429
1392 if ( !item ) { 1430 if ( !item ) {
1393 emit incidenceSelected( 0 ); 1431 emit incidenceSelected( 0 );
1432 mNewSubBut->setEnabled( false );
1394 } else { 1433 } else {
1395 emit incidenceSelected( item->todo() ); 1434 emit incidenceSelected( item->todo() );
1435 mNewSubBut->setEnabled( true );
1396 } 1436 }
1397} 1437}
1398 1438
1399void KOTodoView::modified(bool b) 1439void KOTodoView::modified(bool b)
1400{ 1440{
1401 emit isModified(b); 1441 emit isModified(b);
1402} 1442}
1403void KOTodoView::setTodoModified( Todo* todo ) 1443void KOTodoView::setTodoModified( Todo* todo )
1404{ 1444{
1405 todoModified( todo, KOGlobals::UNKNOWN_MODIFIED ); 1445 todoModified( todo, KOGlobals::UNKNOWN_MODIFIED );
1406} 1446}
1407void KOTodoView::clearSelection() 1447void KOTodoView::clearSelection()
1408{ 1448{
1409 mTodoListView->selectAll( false ); 1449 mTodoListView->selectAll( false );
1410} 1450}
1411void KOTodoView::setAllOpen() 1451void KOTodoView::setAllOpen()
1412{ 1452{
1413 if ( isFlatDisplay ) { 1453 if ( isFlatDisplay ) {
1414 isFlatDisplay = false; 1454 isFlatDisplay = false;
1415 mPopupMenu->setItemChecked( 8,false ); 1455 mPopupMenu->setItemChecked( 8,false );
1416 updateView(); 1456 updateView();
1417 } else { 1457 } else {
1418 storeCurrentItem(); 1458 storeCurrentItem();
1419 } 1459 }
1420 setOpen(mTodoListView->firstChild(), true); 1460 setOpen(mTodoListView->firstChild(), true);
1421 resetCurrentItem(); 1461 resetCurrentItem();
1422} 1462}
1423void KOTodoView::setAllClose() 1463void KOTodoView::setAllClose()
1424{ 1464{
1425 if ( isFlatDisplay ) { 1465 if ( isFlatDisplay ) {
1426 isFlatDisplay = false; 1466 isFlatDisplay = false;
1427 mPopupMenu->setItemChecked( 8,false ); 1467 mPopupMenu->setItemChecked( 8,false );
1428 updateView(); 1468 updateView();
1429 } else { 1469 } else {
1430 storeCurrentItem(); 1470 storeCurrentItem();
1431 } 1471 }
1432 setOpen(mTodoListView->firstChild(), false); 1472 setOpen(mTodoListView->firstChild(), false);
1433 resetCurrentItem(); 1473 resetCurrentItem();
1434} 1474}
1435void KOTodoView::setOpen( QListViewItem* item, bool setOpenI) 1475void KOTodoView::setOpen( QListViewItem* item, bool setOpenI)
1436{ 1476{
1437 1477
1438 while ( item ) { 1478 while ( item ) {
1439 setOpen( item->firstChild(), setOpenI ); 1479 setOpen( item->firstChild(), setOpenI );
1440 item->setOpen( setOpenI ); 1480 item->setOpen( setOpenI );
1441 item = item->nextSibling(); 1481 item = item->nextSibling();
1442 } 1482 }
1443} 1483}
1444 1484
1445void KOTodoView::displayAllFlat() 1485void KOTodoView::displayAllFlat()
1446{ 1486{
1447 storeCurrentItem(); 1487 storeCurrentItem();
1448 pendingSubtodo = 0; 1488 pendingSubtodo = 0;
1449 if ( mBlockUpdate ) { 1489 if ( mBlockUpdate ) {
1450 return; 1490 return;
1451 } 1491 }
1452 mPopupMenu->setItemChecked( 8,true ); 1492 mPopupMenu->setItemChecked( 8,true );
1453 isFlatDisplay = true; 1493 isFlatDisplay = true;
1454 QPtrList<Todo> todoList = calendar()->todos(); 1494 QPtrList<Todo> todoList = calendar()->todos();
1455 mTodoMap.clear(); 1495 mTodoMap.clear();
1456 mTodoListView->clear(); 1496 mTodoListView->clear();
1457 Todo *todo; 1497 Todo *todo;
1458 for(todo = todoList.first(); todo; todo = todoList.next()) { 1498 for(todo = todoList.first(); todo; todo = todoList.next()) {
1459 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this); 1499 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
1460 mTodoMap.insert(todo,todoItem); 1500 mTodoMap.insert(todo,todoItem);
1461 } 1501 }
1462 resetCurrentItem(); 1502 resetCurrentItem();
1463} 1503}
1464 1504
1465void KOTodoView::setAllFlat() 1505void KOTodoView::setAllFlat()
1466{ 1506{
1467 if ( isFlatDisplay ) { 1507 if ( isFlatDisplay ) {
1468 isFlatDisplay = false; 1508 isFlatDisplay = false;
1469 mPopupMenu->setItemChecked( 8,false ); 1509 mPopupMenu->setItemChecked( 8,false );
1470 updateView(); 1510 updateView();
1471 return; 1511 return;
1472 } 1512 }
1473 displayAllFlat(); 1513 displayAllFlat();
1474} 1514}
1475 1515
1476void KOTodoView::purgeCompleted() 1516void KOTodoView::purgeCompleted()
1477{ 1517{
1478 emit purgeCompletedSignal(); 1518 emit purgeCompletedSignal();
1479 1519
1480} 1520}
1481void KOTodoView::toggleQuickTodo() 1521void KOTodoView::toggleQuickTodo()
1482{ 1522{
1483 if ( mQuickAdd->isVisible() ) { 1523 if ( mQuickBar->isVisible() ) {
1484 mQuickAdd->hide(); 1524 mQuickBar->hide();
1485 KOPrefs::instance()->mEnableQuickTodo = false; 1525 KOPrefs::instance()->mEnableQuickTodo = false;
1486 } 1526 }
1487 else { 1527 else {
1488 mQuickAdd->show(); 1528 mQuickBar->show();
1489 KOPrefs::instance()->mEnableQuickTodo = true; 1529 KOPrefs::instance()->mEnableQuickTodo = true;
1490 } 1530 }
1491 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); 1531 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo);
1492 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); 1532 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo );
1493} 1533}
1494 1534
1495void KOTodoView::toggleRunning() 1535void KOTodoView::toggleRunning()
1496{ 1536{
1497 KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos; 1537 KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos;
1498 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos); 1538 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos);
1499 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos ); 1539 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos );
1500 updateView(); 1540 updateView();
1541 if ( KOPrefs::instance()->mHideNonStartedTodos )
1542 topLevelWidget()->setCaption(i18n("Hide not Running"));
1543 else
1544 topLevelWidget()->setCaption(i18n("Show not Running"));
1501} 1545}
1502 1546
1503void KOTodoView::toggleCompleted() 1547void KOTodoView::toggleCompleted()
1504{ 1548{
1505 KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo; 1549 KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo;
1506 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); 1550 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo );
1507 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); 1551 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo );
1508 updateView(); 1552 updateView();
1553 if ( KOPrefs::instance()->mShowCompletedTodo )
1554 topLevelWidget()->setCaption(i18n("Show Completed"));
1555 else
1556 topLevelWidget()->setCaption(i18n("Hide Completed"));
1509} 1557}
1510 1558
1511void KOTodoView::addQuickTodo() 1559void KOTodoView::addQuickTodo()
1512{ 1560{
1513 Todo *todo = new Todo(); 1561 addQuickTodoPar( 0 );
1514 todo->setSummary(mQuickAdd->text());
1515 todo->setOrganizer(KOPrefs::instance()->email());
1516 CalFilter * cf = mCalendar->filter();
1517 if ( cf ) {
1518 if ( cf->isEnabled()&& cf->showCategories()) {
1519 todo->setCategories(cf->categoryList());
1520 }
1521 if ( cf->isEnabled() )
1522 todo->setSecrecy( cf->getSecrecy());
1523 }
1524 mCalendar->addTodo(todo);
1525 mQuickAdd->setText("");
1526 todoModified (todo, KOGlobals::EVENTADDED );
1527 updateView();
1528} 1562}
1563void KOTodoView::addQuickTodoPar( Todo * parentTodo)
1564{
1565 Todo *todo = new Todo();
1566 todo->setSummary(mQuickAdd->text());
1567 todo->setOrganizer(KOPrefs::instance()->email());
1568 if ( parentTodo ) {
1569 todo->setRelatedTo(parentTodo);
1570
1571 todo->setCategories (parentTodo->categoriesStr ());
1572 todo->setSecrecy (parentTodo->secrecy ());
1573 if ( parentTodo->priority() < 3 )
1574 todo->setPriority( parentTodo->priority() );
1575 todo->setCalID( parentTodo->calID() );
1576 } else {
1577 CalFilter * cf = mCalendar->filter();
1578 if ( cf ) {
1579 if ( cf->isEnabled()&& cf->showCategories()) {
1580 todo->setCategories(cf->categoryList());
1581 }
1582 if ( cf->isEnabled() )
1583 todo->setSecrecy( cf->getSecrecy());
1584 }
1585 }
1586 mCalendar->addTodo(todo);
1587 mQuickAdd->setText("");
1588 todoModified (todo, KOGlobals::EVENTADDED );
1589 updateView();
1529 1590
1591}
1530void KOTodoView::keyPressEvent ( QKeyEvent * e ) 1592void KOTodoView::keyPressEvent ( QKeyEvent * e )
1531{ 1593{
1532 // e->ignore(); 1594 // e->ignore();
1533 //return; 1595 //return;
1534 //qDebug("KOTodoView::keyPressEvent "); 1596 //qDebug("KOTodoView::keyPressEvent ");
1535 switch ( e->key() ) { 1597 switch ( e->key() ) {
1536 case Qt::Key_Down: 1598 case Qt::Key_Down:
1537 case Qt::Key_Up: 1599 case Qt::Key_Up:
1538 QWidget::keyPressEvent ( e ); 1600 QWidget::keyPressEvent ( e );
1539 break; 1601 break;
1540 1602
1541 case Qt::Key_Q: 1603 case Qt::Key_Q:
1542 toggleQuickTodo(); 1604 toggleQuickTodo();
1543 break; 1605 break;
1544 case Qt::Key_U: 1606 case Qt::Key_U:
1545 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) { 1607 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) {
1546 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1608 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1547 unparentTodo(); 1609 unparentTodo();
1548 e->accept(); 1610 e->accept();
1549 } else 1611 } else
1550 e->ignore(); 1612 e->ignore();
1551 break; 1613 break;
1552 case Qt::Key_S: 1614 case Qt::Key_S:
1553 if ( e->state() == Qt::ControlButton ) { 1615 if ( e->state() == Qt::ControlButton ) {
1554 e->ignore(); 1616 e->ignore();
1555 break; 1617 break;
1556 } 1618 }
1557 if ( e->state() == Qt::ShiftButton ) { 1619 if ( e->state() == Qt::ShiftButton ) {
1558 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1620 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1559 reparentTodo(); 1621 reparentTodo();
1560 e->accept(); 1622 e->accept();
1561 } else 1623 } else
1562 e->ignore(); 1624 e->ignore();
1563 break; 1625 break;
1564 case Qt::Key_P: 1626 case Qt::Key_P:
1565 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) { 1627 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) {
1566 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1628 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1567 if ( pendingSubtodo ) 1629 if ( pendingSubtodo )
1568 itemClicked(mActiveItem); 1630 itemClicked(mActiveItem);
1569 e->accept(); 1631 e->accept();
1570 } else 1632 } else
1571 e->ignore(); 1633 e->ignore();
1572 break; 1634 break;
1573 case Qt::Key_Escape: 1635 case Qt::Key_Escape:
1574 if ( pendingSubtodo ) { 1636 if ( pendingSubtodo ) {
1575 itemClicked(0); 1637 itemClicked(0);
1576 e->accept(); 1638 e->accept();
1577 } else 1639 } else
1578 e->ignore(); 1640 e->ignore();
1579 break; 1641 break;
1580 default: 1642 default:
1581 e->ignore(); 1643 e->ignore();
1582 } 1644 }
1583 1645
1584 if ( true ) { 1646 if ( true ) {
1585 if ( e->key() == Qt::Key_I ) { 1647 if ( e->key() == Qt::Key_I ) {
1586 KOTodoViewItem*cn = (KOTodoViewItem*)mTodoListView->currentItem(); 1648 KOTodoViewItem*cn = (KOTodoViewItem*)mTodoListView->currentItem();
1587 if ( cn ) { 1649 if ( cn ) {
1588 mActiveItem = cn; 1650 mActiveItem = cn;
1589 KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); 1651 KOTodoViewItem* ci = (KOTodoViewItem*)( cn );
1590 if ( ci ){ 1652 if ( ci ){
1591 showTodo(); 1653 showTodo();
1592 cn = (KOTodoViewItem*)cn->itemBelow(); 1654 cn = (KOTodoViewItem*)cn->itemBelow();
1593 if ( cn ) { 1655 if ( cn ) {
1594 mTodoListView->setCurrentItem ( cn ); 1656 mTodoListView->setCurrentItem ( cn );
1595 mTodoListView->ensureItemVisible ( cn ); 1657 mTodoListView->ensureItemVisible ( cn );
1596 } 1658 }
1597 1659
1598 } 1660 }
1599 } 1661 }
1600 e->accept(); 1662 e->accept();
1601 1663
1602 } 1664 }
1603 1665
1604 } 1666 }
1605 1667
1606} 1668}
1607void KOTodoView::updateTodo( Todo * t, int type ) 1669void KOTodoView::updateTodo( Todo * t, int type )
1608{ 1670{
1609 if ( mBlockUpdate) 1671 if ( mBlockUpdate)
1610 return; 1672 return;
1611 1673
1612 QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator; 1674 QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator;
1613 itemIterator = mTodoMap.find(t); 1675 itemIterator = mTodoMap.find(t);
1614 if (itemIterator != mTodoMap.end()) { 1676 if (itemIterator != mTodoMap.end()) {
1615 (*itemIterator)->construct(); 1677 (*itemIterator)->construct();
1616 } else { 1678 } else {
1617 if ( type == KOGlobals::EVENTADDED ) { 1679 if ( type == KOGlobals::EVENTADDED ) {
1618 insertTodoItem( t ); 1680 insertTodoItem( t );
1619 } 1681 }
1620 } 1682 }
1621 1683
1622} 1684}
1623 1685
1624void KOTodoView::todoModified(Todo * t , int p ) 1686void KOTodoView::todoModified(Todo * t , int p )
1625{ 1687{
1626 mBlockUpdate = true; 1688 mBlockUpdate = true;
1627 emit todoModifiedSignal ( t, p ); 1689 emit todoModifiedSignal ( t, p );
1628 mBlockUpdate = false; 1690 mBlockUpdate = false;
1629} 1691}
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index 79cc756..a8e90e2 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -1,305 +1,308 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000, 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000, 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef KOTODOVIEW_H 23#ifndef KOTODOVIEW_H
24#define KOTODOVIEW_H 24#define KOTODOVIEW_H
25 25
26#include <qfont.h> 26#include <qfont.h>
27#include <qfontmetrics.h> 27#include <qfontmetrics.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29#include <qptrlist.h> 29#include <qptrlist.h>
30#include <qstrlist.h> 30#include <qstrlist.h>
31#include <qlistbox.h> 31#include <qlistbox.h>
32#include <qpopupmenu.h> 32#include <qpopupmenu.h>
33#include <qlabel.h> 33#include <qlabel.h>
34#include <qmap.h> 34#include <qmap.h>
35#include <qdialog.h> 35#include <qdialog.h>
36#include <qlabel.h> 36#include <qlabel.h>
37#include <qlistview.h> 37#include <qlistview.h>
38#include <klistview.h> 38#include <klistview.h>
39 39
40#include <libkcal/calendar.h> 40#include <libkcal/calendar.h>
41#include <libkcal/todo.h> 41#include <libkcal/todo.h>
42 42
43#include <korganizer/baseview.h> 43#include <korganizer/baseview.h>
44 44
45#include "kotodoviewitem.h" 45#include "kotodoviewitem.h"
46#include "koprefs.h" 46#include "koprefs.h"
47#include "koglobals.h" 47#include "koglobals.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49 49
50class QDragEnterEvent; 50class QDragEnterEvent;
51class QDragMoveEvent; 51class QDragMoveEvent;
52class QDragLeaveEvent; 52class QDragLeaveEvent;
53class QDropEvent; 53class QDropEvent;
54class KOTodoViewWhatsThis; 54class KOTodoViewWhatsThis;
55class KDateEdit; 55class KDateEdit;
56class KOTimeEdit; 56class KOTimeEdit;
57 57
58class DocPrefs; 58class DocPrefs;
59 59
60 60
61class KOStopTodoPrefs : public QDialog 61class KOStopTodoPrefs : public QDialog
62{ 62{
63 Q_OBJECT 63 Q_OBJECT
64 public: 64 public:
65 KOStopTodoPrefs( Todo* todo, QWidget *parent=0, const char *name=0 ) ; 65 KOStopTodoPrefs( Todo* todo, QWidget *parent=0, const char *name=0 ) ;
66 66
67 67
68private slots: 68private slots:
69 void doNotSave(); 69 void doNotSave();
70 void accept(); 70 void accept();
71private: 71private:
72 Todo* mTodo; 72 Todo* mTodo;
73 QLineEdit* mComment; 73 QLineEdit* mComment;
74 KDateEdit *sde, *ede; 74 KDateEdit *sde, *ede;
75 KOTimeEdit *ste, *ete; 75 KOTimeEdit *ste, *ete;
76 76
77}; 77};
78 78
79class KOStartTodoPrefs : public QDialog 79class KOStartTodoPrefs : public QDialog
80{ 80{
81 Q_OBJECT 81 Q_OBJECT
82 public: 82 public:
83 KOStartTodoPrefs( QString sum, QWidget *parent=0, const char *name=0 ) ; 83 KOStartTodoPrefs( QString sum, QWidget *parent=0, const char *name=0 ) ;
84 84
85 bool stopAll() { return mStopAll; } 85 bool stopAll() { return mStopAll; }
86private slots: 86private slots:
87 void doStop(); 87 void doStop();
88private: 88private:
89 bool mStopAll; 89 bool mStopAll;
90 90
91}; 91};
92 92
93class KOTodoListView : public KListView 93class KOTodoListView : public KListView
94{ 94{
95 Q_OBJECT 95 Q_OBJECT
96 public: 96 public:
97 KOTodoListView(Calendar *,QWidget *parent=0,const char *name=0); 97 KOTodoListView(Calendar *,QWidget *parent=0,const char *name=0);
98 virtual ~KOTodoListView() {} 98 virtual ~KOTodoListView() {}
99 99
100 signals: 100 signals:
101 void paintNeeded(); 101 void paintNeeded();
102 void todoDropped(Todo *, int); 102 void todoDropped(Todo *, int);
103 void double_Clicked(QListViewItem *item); 103 void double_Clicked(QListViewItem *item);
104 void reparentTodoSignal( Todo *,Todo * ); 104 void reparentTodoSignal( Todo *,Todo * );
105 void unparentTodoSignal(Todo *); 105 void unparentTodoSignal(Todo *);
106 void deleteTodo( Todo * ); 106 void deleteTodo( Todo * );
107 protected: 107 protected:
108 void wheelEvent (QWheelEvent *e); 108 void wheelEvent (QWheelEvent *e);
109 void contentsDragEnterEvent(QDragEnterEvent *); 109 void contentsDragEnterEvent(QDragEnterEvent *);
110 void contentsDragMoveEvent(QDragMoveEvent *); 110 void contentsDragMoveEvent(QDragMoveEvent *);
111 void contentsDragLeaveEvent(QDragLeaveEvent *); 111 void contentsDragLeaveEvent(QDragLeaveEvent *);
112 void contentsDropEvent(QDropEvent *); 112 void contentsDropEvent(QDropEvent *);
113 113
114 void contentsMousePressEvent(QMouseEvent *); 114 void contentsMousePressEvent(QMouseEvent *);
115 void contentsMouseMoveEvent(QMouseEvent *); 115 void contentsMouseMoveEvent(QMouseEvent *);
116 void contentsMouseReleaseEvent(QMouseEvent *); 116 void contentsMouseReleaseEvent(QMouseEvent *);
117 void contentsMouseDoubleClickEvent(QMouseEvent *); 117 void contentsMouseDoubleClickEvent(QMouseEvent *);
118 118
119 private: 119 private:
120 void paintEvent(QPaintEvent * pevent); 120 void paintEvent(QPaintEvent * pevent);
121 bool internalDrop; 121 bool internalDrop;
122 QString mName; 122 QString mName;
123 Calendar *mCalendar; 123 Calendar *mCalendar;
124 QPoint mPressPos; 124 QPoint mPressPos;
125 bool mMousePressed; 125 bool mMousePressed;
126 QListViewItem *mOldCurrent; 126 QListViewItem *mOldCurrent;
127 bool mFlagKeyPressed; 127 bool mFlagKeyPressed;
128 void keyPressEvent ( QKeyEvent * ) ; 128 void keyPressEvent ( QKeyEvent * ) ;
129 void keyReleaseEvent ( QKeyEvent * ) ; 129 void keyReleaseEvent ( QKeyEvent * ) ;
130}; 130};
131 131
132 132
133/** 133/**
134 This is the line-edit on top of the todoview for fast addition of new todos 134 This is the line-edit on top of the todoview for fast addition of new todos
135*/ 135*/
136class KOQuickTodo : public QLineEdit 136class KOQuickTodo : public QLineEdit
137{ 137{
138 public: 138 public:
139 KOQuickTodo(QWidget *parent=0); 139 KOQuickTodo(QWidget *parent=0);
140 protected: 140 protected:
141 void focusInEvent(QFocusEvent *ev); 141 void focusInEvent(QFocusEvent *ev);
142 void focusOutEvent(QFocusEvent *ev); 142 void focusOutEvent(QFocusEvent *ev);
143}; 143};
144 144
145 145
146/** 146/**
147 This class provides a multi-column list view of todo events. 147 This class provides a multi-column list view of todo events.
148 148
149 @short multi-column list view of todo events. 149 @short multi-column list view of todo events.
150 @author Cornelius Schumacher <schumacher@kde.org> 150 @author Cornelius Schumacher <schumacher@kde.org>
151*/ 151*/
152class KOTodoView : public KOrg::BaseView 152class KOTodoView : public KOrg::BaseView
153{ 153{
154 Q_OBJECT 154 Q_OBJECT
155 public: 155 public:
156 KOTodoView(Calendar *, QWidget* parent=0, const char* name=0 ); 156 KOTodoView(Calendar *, QWidget* parent=0, const char* name=0 );
157 ~KOTodoView(); 157 ~KOTodoView();
158 158
159 QPtrList<Incidence> selectedIncidences(); 159 QPtrList<Incidence> selectedIncidences();
160 QPtrList<Todo> selectedTodos(); 160 QPtrList<Todo> selectedTodos();
161 161
162 DateList selectedDates() 162 DateList selectedDates()
163 {DateList q; 163 {DateList q;
164 return q;} 164 return q;}
165 165
166 /** Return number of shown dates. TodoView does not show dates, */ 166 /** Return number of shown dates. TodoView does not show dates, */
167 int currentDateCount() { return 0; } 167 int currentDateCount() { return 0; }
168 168
169 void printPreview(CalPrinter *calPrinter, const QDate &fd, const QDate &td); 169 void printPreview(CalPrinter *calPrinter, const QDate &fd, const QDate &td);
170 170
171 void setDocumentId( const QString & ); 171 void setDocumentId( const QString & );
172 172
173 void saveLayout(KConfig *config, const QString &group) const; 173 void saveLayout(KConfig *config, const QString &group) const;
174 void restoreLayout(KConfig *config, const QString &group); 174 void restoreLayout(KConfig *config, const QString &group);
175 void setNavigator( DateNavigator* nav ) {mNavigator = nav;} 175 void setNavigator( DateNavigator* nav ) {mNavigator = nav;}
176 QString getWhatsThisText(QPoint p); 176 QString getWhatsThisText(QPoint p);
177 void clearList() {mTodoListView->clear(); } 177 void clearList() {mTodoListView->clear(); }
178 178
179 public slots: 179 public slots:
180 void updateView(); 180 void updateView();
181 void updateConfig(); 181 void updateConfig();
182 182
183 void changeEventDisplay(Event *, int); 183 void changeEventDisplay(Event *, int);
184 184
185 void showDates(const QDate &start, const QDate &end); 185 void showDates(const QDate &start, const QDate &end);
186 void showEvents(QPtrList<Event> eventList); 186 void showEvents(QPtrList<Event> eventList);
187 187
188 void clearSelection(); 188 void clearSelection();
189 void jumpToDate (); 189 void jumpToDate ();
190 190
191 void editItem(QListViewItem *item); 191 void editItem(QListViewItem *item);
192 void showItem(QListViewItem *item,const QPoint &,int); 192 void showItem(QListViewItem *item,const QPoint &,int);
193 void popupMenu(QListViewItem *item,const QPoint &,int); 193 void popupMenu(QListViewItem *item,const QPoint &,int);
194 void newTodo(); 194 void newTodo();
195 void newSubTodo(); 195 void newSubTodo();
196 void unparentTodo(); 196 void unparentTodo();
197 void reparentTodo(); 197 void reparentTodo();
198 void showTodo(); 198 void showTodo();
199 void editTodo(); 199 void editTodo();
200 void cloneTodo(); 200 void cloneTodo();
201 void cancelTodo(); 201 void cancelTodo();
202 void moveTodo(); 202 void moveTodo();
203 void beamTodo(); 203 void beamTodo();
204 void deleteTodo(); 204 void deleteTodo();
205 205
206 void setNewPriority(int); 206 void setNewPriority(int);
207 void setNewPercentage(int); 207 void setNewPercentage(int);
208 void changedCategories(int); 208 void changedCategories(int);
209 209
210 void setAllOpen(); 210 void setAllOpen();
211 void setAllClose(); 211 void setAllClose();
212 void setAllFlat(); 212 void setAllFlat();
213 void displayAllFlat(); 213 void displayAllFlat();
214 214
215 void purgeCompleted(); 215 void purgeCompleted();
216 void toggleCompleted(); 216 void toggleCompleted();
217 void toggleRunning(); 217 void toggleRunning();
218 void toggleQuickTodo(); 218 void toggleQuickTodo();
219 void updateTodo( Todo *, int ); 219 void updateTodo( Todo *, int );
220 220
221 void itemClicked(QListViewItem *); 221 void itemClicked(QListViewItem *);
222 void itemStateChanged(QListViewItem *); 222 void itemStateChanged(QListViewItem *);
223 void modified(bool); 223 void modified(bool);
224 void itemDoubleClicked(QListViewItem *item); 224 void itemDoubleClicked(QListViewItem *item);
225 void resetFocusToList(); 225 void resetFocusToList();
226 void fillCategories (); 226 void fillCategories ();
227 void fillCal (); 227 void fillCal ();
228 void changedCal (int); 228 void changedCal (int);
229 229
230 signals: 230 signals:
231 void newTodoSignal(); 231 void newTodoSignal();
232 void newSubTodoSignal(Todo *); 232 void newSubTodoSignal(Todo *);
233 void unparentTodoSignal(Todo *); 233 void unparentTodoSignal(Todo *);
234 void reparentTodoSignal( Todo *,Todo * ); 234 void reparentTodoSignal( Todo *,Todo * );
235 void showTodoSignal(Todo *); 235 void showTodoSignal(Todo *);
236 236
237 void editTodoSignal(Todo *); 237 void editTodoSignal(Todo *);
238 void deleteTodoSignal(Todo *); 238 void deleteTodoSignal(Todo *);
239 void todoModifiedSignal (Todo *, int); 239 void todoModifiedSignal (Todo *, int);
240 240
241 void isModified(bool); 241 void isModified(bool);
242 void cloneTodoSignal( Incidence * ); 242 void cloneTodoSignal( Incidence * );
243 void cancelTodoSignal( Incidence * ); 243 void cancelTodoSignal( Incidence * );
244 void moveTodoSignal( Incidence * ); 244 void moveTodoSignal( Incidence * );
245 void beamTodoSignal( Incidence * ); 245 void beamTodoSignal( Incidence * );
246 void purgeCompletedSignal(); 246 void purgeCompletedSignal();
247 247
248 protected slots: 248 protected slots:
249 void toggleRunningItem(); 249 void toggleRunningItem();
250 void paintNeeded(); 250 void paintNeeded();
251 void processSelectionChange(); 251 void processSelectionChange();
252 void addQuickTodo(); 252 void addQuickTodo();
253 void setTodoModified( Todo* ); 253 void setTodoModified( Todo* );
254 void todoModified(Todo *, int ); 254 void todoModified(Todo *, int );
255 255
256 private: 256 private:
257 void addQuickTodoPar( Todo * parentTodo);
257 /* 258 /*
258 * the TodoEditor approach is rather unscaling in the long 259 * the TodoEditor approach is rather unscaling in the long
259 * run. 260 * run.
260 * Korganizer keeps it in memory and we need to update 261 * Korganizer keeps it in memory and we need to update
261 * 1. make KOTodoViewItem a QObject again? 262 * 1. make KOTodoViewItem a QObject again?
262 * 2. add a public method for setting one todo modified? 263 * 2. add a public method for setting one todo modified?
263 * 3. add a private method for setting a todo modified + friend here? 264 * 3. add a private method for setting a todo modified + friend here?
264 * -- zecke 2002-07-08 265 * -- zecke 2002-07-08
265 */ 266 */
266 KOTodoViewWhatsThis* mKOTodoViewWhatsThis; 267 KOTodoViewWhatsThis* mKOTodoViewWhatsThis;
267 friend class KOTodoListView; 268 friend class KOTodoListView;
268 void paintEvent(QPaintEvent * pevent); 269 void paintEvent(QPaintEvent * pevent);
269 bool mPendingUpdateBeforeRepaint; 270 bool mPendingUpdateBeforeRepaint;
270 friend class KOTodoViewItem; 271 friend class KOTodoViewItem;
271 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo); 272 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo);
272 void restoreItemState( QListViewItem * ); 273 void restoreItemState( QListViewItem * );
273 274
274 bool checkTodo( Todo * ); 275 bool checkTodo( Todo * );
275 bool isFlatDisplay; 276 bool isFlatDisplay;
276 void setOpen( QListViewItem*, bool setOpen); 277 void setOpen( QListViewItem*, bool setOpen);
277 KOTodoListView *mTodoListView; 278 KOTodoListView *mTodoListView;
278 QPopupMenu *mItemPopupMenu; 279 QPopupMenu *mItemPopupMenu;
279 QPopupMenu *mPopupMenu; 280 QPopupMenu *mPopupMenu;
280 QPopupMenu *mPriorityPopupMenu; 281 QPopupMenu *mPriorityPopupMenu;
281 QPopupMenu *mPercentageCompletedPopupMenu; 282 QPopupMenu *mPercentageCompletedPopupMenu;
282 QPopupMenu *mCategoryPopupMenu; 283 QPopupMenu *mCategoryPopupMenu;
283 QPopupMenu *mCalPopupMenu; 284 QPopupMenu *mCalPopupMenu;
284 285
285 QMap<int, int> mPercentage; 286 QMap<int, int> mPercentage;
286 QMap<int, int> mPriority; 287 QMap<int, int> mPriority;
287 QMap<int, QString> mCategory; 288 QMap<int, QString> mCategory;
288 KOTodoViewItem *mActiveItem; 289 KOTodoViewItem *mActiveItem;
289 290
290 QMap<Todo *,KOTodoViewItem *> mTodoMap; 291 QMap<Todo *,KOTodoViewItem *> mTodoMap;
291 QString mName; 292 QString mName;
293 QWidget* mQuickBar;
292 294
293 DocPrefs *mDocPrefs; 295 DocPrefs *mDocPrefs;
294 QString mCurrentDoc; 296 QString mCurrentDoc;
295 KOQuickTodo *mQuickAdd; 297 KOQuickTodo *mQuickAdd;
296 bool mBlockUpdate; 298 bool mBlockUpdate;
297 void keyPressEvent ( QKeyEvent * ) ; 299 void keyPressEvent ( QKeyEvent * ) ;
298 KOTodoViewItem * pendingSubtodo; 300 KOTodoViewItem * pendingSubtodo;
299 DateNavigator* mNavigator; 301 DateNavigator* mNavigator;
300 void storeCurrentItem(); 302 void storeCurrentItem();
301 void resetCurrentItem(); 303 void resetCurrentItem();
302 Incidence * mCurItem, *mCurItemRootParent, *mCurItemParent,*mCurItemAbove; 304 Incidence * mCurItem, *mCurItemRootParent, *mCurItemParent,*mCurItemAbove;
305 QPushButton * mNewSubBut;
303}; 306};
304 307
305#endif 308#endif