summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-06 19:14:52 (UTC)
committer zautrix <zautrix>2005-07-06 19:14:52 (UTC)
commitc79a8a4950c098fa6f5a7ae8396feb4dd3a91577 (patch) (unidiff)
tree7c6e03165f85a4bb42c8a20f6090fc533f3133f0
parent2038f7363c31e1a0ab139a1184cbed10086e1862 (diff)
downloadkdepimpi-c79a8a4950c098fa6f5a7ae8396feb4dd3a91577.zip
kdepimpi-c79a8a4950c098fa6f5a7ae8396feb4dd3a91577.tar.gz
kdepimpi-c79a8a4950c098fa6f5a7ae8396feb4dd3a91577.tar.bz2
fixes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt9
-rw-r--r--korganizer/koagendaview.cpp5
-rw-r--r--korganizer/mainwindow.cpp12
-rw-r--r--korganizer/mainwindow.h3
4 files changed, 25 insertions, 4 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index bc5cbb7..a5e2597 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1,1496 +1,1505 @@
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..." },
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{ "","" },
1496{ "","" },
1497{ "","" },
1498{ "","" },
1499{ "","" },
1500{ "","" },
1501{ "","" },
1493{ "","" }, 1502{ "","" },
1494{ "","" }, 1503{ "","" },
1495{ "","" }, 1504{ "","" },
1496{ "","" }, 1505{ "","" },
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index ef5c4dd..131a345 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -1,1672 +1,1675 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qhbox.h> 24#include <qhbox.h>
25#include <qvbox.h> 25#include <qvbox.h>
26#include <qlabel.h> 26#include <qlabel.h>
27#include <qframe.h> 27#include <qframe.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#ifndef KORG_NOSPLITTER 29#ifndef KORG_NOSPLITTER
30#include <qsplitter.h> 30#include <qsplitter.h>
31#endif 31#endif
32#include <qfont.h> 32#include <qfont.h>
33#include <qfontmetrics.h> 33#include <qfontmetrics.h>
34#include <qpopupmenu.h> 34#include <qpopupmenu.h>
35#include <qtooltip.h> 35#include <qtooltip.h>
36#include <qpainter.h> 36#include <qpainter.h>
37#include <qpushbutton.h> 37#include <qpushbutton.h>
38#include <qapplication.h> 38#include <qapplication.h>
39 39
40#include <kapplication.h> 40#include <kapplication.h>
41#include <KDGanttMinimizeSplitter.h> 41#include <KDGanttMinimizeSplitter.h>
42#include <kdebug.h> 42#include <kdebug.h>
43#include <kstandarddirs.h> 43#include <kstandarddirs.h>
44#include <kiconloader.h> 44#include <kiconloader.h>
45#include <klocale.h> 45#include <klocale.h>
46#include <kconfig.h> 46#include <kconfig.h>
47#include <kglobal.h> 47#include <kglobal.h>
48#include "calendarview.h" 48#include "calendarview.h"
49#include "koviewmanager.h" 49#include "koviewmanager.h"
50 50
51#include <libkcal/calendar.h> 51#include <libkcal/calendar.h>
52#include <libkcal/icaldrag.h> 52#include <libkcal/icaldrag.h>
53#include <libkcal/dndfactory.h> 53#include <libkcal/dndfactory.h>
54 54
55#include <kcalendarsystem.h> 55#include <kcalendarsystem.h>
56 56
57#include "koglobals.h" 57#include "koglobals.h"
58#ifndef KORG_NOPLUGINS 58#ifndef KORG_NOPLUGINS
59#include "kocore.h" 59#include "kocore.h"
60#endif 60#endif
61#include "koprefs.h" 61#include "koprefs.h"
62#include "koagenda.h" 62#include "koagenda.h"
63#include "koagendaitem.h" 63#include "koagendaitem.h"
64#ifndef KORG_NOPRINTER 64#ifndef KORG_NOPRINTER
65#include "calprinter.h" 65#include "calprinter.h"
66#endif 66#endif
67 67
68#include "koagendaview.h" 68#include "koagendaview.h"
69//#include "koagendaview.moc" 69//#include "koagendaview.moc"
70 70
71//extern bool globalFlagBlockPainting; 71//extern bool globalFlagBlockPainting;
72extern int globalFlagBlockAgenda; 72extern int globalFlagBlockAgenda;
73extern int globalFlagBlockStartup; 73extern int globalFlagBlockStartup;
74extern int globalFlagBlockAgendaItemPaint; 74extern int globalFlagBlockAgendaItemPaint;
75extern int globalFlagBlockAgendaItemUpdate; 75extern int globalFlagBlockAgendaItemUpdate;
76extern int globalFlagBlockLabel; 76extern int globalFlagBlockLabel;
77using namespace KOrg; 77using namespace KOrg;
78 78
79#define IDLETIMEOUT 45 79#define IDLETIMEOUT 45
80 80
81TimeLabels::TimeLabels(int rows,QWidget *parent,const char *name,WFlags f) : 81TimeLabels::TimeLabels(int rows,QWidget *parent,const char *name,WFlags f) :
82 QScrollView(parent,name,f) 82 QScrollView(parent,name,f)
83{ 83{
84 myPix.resize( 1, 1 ); 84 myPix.resize( 1, 1 );
85 mRows = rows; 85 mRows = rows;
86 86
87 mRedrawNeeded = true; 87 mRedrawNeeded = true;
88 setMinimumHeight( 20 ); 88 setMinimumHeight( 20 );
89 mCellHeight = KOPrefs::instance()->mHourSize*4; 89 mCellHeight = KOPrefs::instance()->mHourSize*4;
90 90
91 enableClipper(true); 91 enableClipper(true);
92 92
93 setHScrollBarMode(AlwaysOff); 93 setHScrollBarMode(AlwaysOff);
94 setVScrollBarMode(AlwaysOff); 94 setVScrollBarMode(AlwaysOff);
95 95
96 resizeContents(50,mRows * mCellHeight); 96 resizeContents(50,mRows * mCellHeight);
97 97
98 viewport()->setBackgroundMode( PaletteBackground ); 98 viewport()->setBackgroundMode( PaletteBackground );
99} 99}
100 100
101void TimeLabels::setCellHeight(int height) 101void TimeLabels::setCellHeight(int height)
102{ 102{
103 mCellHeight = height; 103 mCellHeight = height;
104} 104}
105 105
106/* 106/*
107 Optimization so that only the "dirty" portion of the scroll view 107 Optimization so that only the "dirty" portion of the scroll view
108 is redrawn. Unfortunately, this is not called by default paintEvent() method. 108 is redrawn. Unfortunately, this is not called by default paintEvent() method.
109*/ 109*/
110void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch) 110void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch)
111{ 111{
112 112
113 cx = contentsX() + frameWidth()*2; 113 cx = contentsX() + frameWidth()*2;
114 cw = contentsWidth() ; 114 cw = contentsWidth() ;
115 // end of workaround 115 // end of workaround
116 116
117 int cell = ((int)(cy/mCellHeight)); 117 int cell = ((int)(cy/mCellHeight));
118 int y = cell * mCellHeight; 118 int y = cell * mCellHeight;
119 QFontMetrics fm = fontMetrics(); 119 QFontMetrics fm = fontMetrics();
120 QString hour; 120 QString hour;
121 QString suffix = "am"; 121 QString suffix = "am";
122 int timeHeight = fm.ascent(); 122 int timeHeight = fm.ascent();
123 QFont nFont = font(); 123 QFont nFont = font();
124 p->setFont( font()); 124 p->setFont( font());
125 125
126 if (!KGlobal::locale()->use12Clock()) { 126 if (!KGlobal::locale()->use12Clock()) {
127 suffix = "00"; 127 suffix = "00";
128 } else 128 } else
129 if (cell > 11) suffix = "pm"; 129 if (cell > 11) suffix = "pm";
130 130
131 if ( timeHeight > mCellHeight ) { 131 if ( timeHeight > mCellHeight ) {
132 timeHeight = mCellHeight-1; 132 timeHeight = mCellHeight-1;
133 int pointS = nFont.pointSize(); 133 int pointS = nFont.pointSize();
134 while ( pointS > 4 ) { 134 while ( pointS > 4 ) {
135 nFont.setPointSize( pointS ); 135 nFont.setPointSize( pointS );
136 fm = QFontMetrics( nFont ); 136 fm = QFontMetrics( nFont );
137 if ( fm.ascent() < mCellHeight ) 137 if ( fm.ascent() < mCellHeight )
138 break; 138 break;
139 -- pointS; 139 -- pointS;
140 } 140 }
141 fm = QFontMetrics( nFont ); 141 fm = QFontMetrics( nFont );
142 timeHeight = fm.ascent(); 142 timeHeight = fm.ascent();
143 } 143 }
144 //timeHeight -= (timeHeight/4-2); 144 //timeHeight -= (timeHeight/4-2);
145 QFont sFont = nFont; 145 QFont sFont = nFont;
146 sFont.setPointSize( sFont.pointSize()/2 ); 146 sFont.setPointSize( sFont.pointSize()/2 );
147 QFontMetrics fmS( sFont ); 147 QFontMetrics fmS( sFont );
148 int sHei = fmS.ascent() ; 148 int sHei = fmS.ascent() ;
149 //sHei -= (sHei/4-2); 149 //sHei -= (sHei/4-2);
150 int startW = mMiniWidth - frameWidth()-2 ; 150 int startW = mMiniWidth - frameWidth()-2 ;
151 int tw2 = fmS.width(suffix); 151 int tw2 = fmS.width(suffix);
152 timeHeight = (timeHeight-1) /2 -1; 152 timeHeight = (timeHeight-1) /2 -1;
153 //testline 153 //testline
154 //p->drawLine(0,0,0,contentsHeight()); 154 //p->drawLine(0,0,0,contentsHeight());
155 while (y < cy + ch+mCellHeight) { 155 while (y < cy + ch+mCellHeight) {
156 p->drawLine(startW-tw2+1 ,y,cw+2,y); 156 p->drawLine(startW-tw2+1 ,y,cw+2,y);
157 hour.setNum(cell); 157 hour.setNum(cell);
158 // handle 24h and am/pm time formats 158 // handle 24h and am/pm time formats
159 if (KGlobal::locale()->use12Clock()) { 159 if (KGlobal::locale()->use12Clock()) {
160 if (cell == 12) suffix = "pm"; 160 if (cell == 12) suffix = "pm";
161 if (cell == 0) hour.setNum(12); 161 if (cell == 0) hour.setNum(12);
162 if (cell > 12) hour.setNum(cell - 12); 162 if (cell > 12) hour.setNum(cell - 12);
163 } 163 }
164 164
165 // center and draw the time label 165 // center and draw the time label
166 int timeWidth = fm.width(hour); 166 int timeWidth = fm.width(hour);
167 int offset = startW - timeWidth - tw2 -1 ; 167 int offset = startW - timeWidth - tw2 -1 ;
168 p->setFont( nFont ); 168 p->setFont( nFont );
169 p->drawText( offset, y+ timeHeight, hour); 169 p->drawText( offset, y+ timeHeight, hour);
170 p->setFont( sFont ); 170 p->setFont( sFont );
171 offset = startW - tw2; 171 offset = startW - tw2;
172 p->drawText( offset, y -1, suffix); 172 p->drawText( offset, y -1, suffix);
173 173
174 // increment indices 174 // increment indices
175 y += mCellHeight; 175 y += mCellHeight;
176 cell++; 176 cell++;
177 } 177 }
178 178
179 179
180 180
181 181
182} 182}
183 183
184/** 184/**
185 Calculates the minimum width. 185 Calculates the minimum width.
186*/ 186*/
187int TimeLabels::minimumWidth() const 187int TimeLabels::minimumWidth() const
188{ 188{
189 return mMiniWidth; 189 return mMiniWidth;
190} 190}
191 191
192/** updates widget's internal state */ 192/** updates widget's internal state */
193void TimeLabels::updateConfig() 193void TimeLabels::updateConfig()
194{ 194{
195 mRedrawNeeded = true; 195 mRedrawNeeded = true;
196 // set the font 196 // set the font
197 // config->setGroup("Fonts"); 197 // config->setGroup("Fonts");
198 // QFont font = config->readFontEntry("TimeBar Font"); 198 // QFont font = config->readFontEntry("TimeBar Font");
199 setFont(KOPrefs::instance()->mTimeBarFont); 199 setFont(KOPrefs::instance()->mTimeBarFont);
200 QString test = "20"; 200 QString test = "20";
201 if (KGlobal::locale()->use12Clock()) 201 if (KGlobal::locale()->use12Clock())
202 test = "12"; 202 test = "12";
203 mMiniWidth = fontMetrics().width(test); 203 mMiniWidth = fontMetrics().width(test);
204 if (KGlobal::locale()->use12Clock()) 204 if (KGlobal::locale()->use12Clock())
205 test = "pm"; 205 test = "pm";
206 else { 206 else {
207 test = "00"; 207 test = "00";
208 } 208 }
209 QFont sFont = font(); 209 QFont sFont = font();
210 sFont.setPointSize( sFont.pointSize()/2 ); 210 sFont.setPointSize( sFont.pointSize()/2 );
211 QFontMetrics fmS( sFont ); 211 QFontMetrics fmS( sFont );
212 mMiniWidth += fmS.width( test ) + frameWidth()*2+4 ; 212 mMiniWidth += fmS.width( test ) + frameWidth()*2+4 ;
213 // update geometry restrictions based on new settings 213 // update geometry restrictions based on new settings
214 setFixedWidth( mMiniWidth ); 214 setFixedWidth( mMiniWidth );
215 215
216 // update HourSize 216 // update HourSize
217 mCellHeight = KOPrefs::instance()->mHourSize*4; 217 mCellHeight = KOPrefs::instance()->mHourSize*4;
218 resizeContents(mMiniWidth,mRows * mCellHeight+1); 218 resizeContents(mMiniWidth,mRows * mCellHeight+1);
219} 219}
220 220
221/** update time label positions */ 221/** update time label positions */
222void TimeLabels::positionChanged() 222void TimeLabels::positionChanged()
223{ 223{
224 int adjustment = mAgenda->contentsY(); 224 int adjustment = mAgenda->contentsY();
225 setContentsPos(0, adjustment); 225 setContentsPos(0, adjustment);
226} 226}
227 227
228/** */ 228/** */
229void TimeLabels::setAgenda(KOAgenda* agenda) 229void TimeLabels::setAgenda(KOAgenda* agenda)
230{ 230{
231 mAgenda = agenda; 231 mAgenda = agenda;
232} 232}
233 233
234void TimeLabels::contentsMousePressEvent ( QMouseEvent * e) 234void TimeLabels::contentsMousePressEvent ( QMouseEvent * e)
235{ 235{
236 mMouseDownY = e->pos().y(); 236 mMouseDownY = e->pos().y();
237 mOrgCap = topLevelWidget()->caption(); 237 mOrgCap = topLevelWidget()->caption();
238} 238}
239 239
240void TimeLabels::contentsMouseMoveEvent ( QMouseEvent * e ) 240void TimeLabels::contentsMouseMoveEvent ( QMouseEvent * e )
241{ 241{
242 int diff = mMouseDownY - e->pos().y(); 242 int diff = mMouseDownY - e->pos().y();
243 if ( diff < 10 && diff > -10 ) 243 if ( diff < 10 && diff > -10 )
244 return; 244 return;
245 int tSize = KOPrefs::instance()->mHourSize + (diff/10) ; 245 int tSize = KOPrefs::instance()->mHourSize + (diff/10) ;
246 if ( tSize < 4 ) 246 if ( tSize < 4 )
247 tSize = 4; 247 tSize = 4;
248 if ( tSize > 22 ) 248 if ( tSize > 22 )
249 tSize = 22; 249 tSize = 22;
250 tSize = (tSize-2)/2; 250 tSize = (tSize-2)/2;
251 topLevelWidget()->setCaption(i18n("New Agendasize: %1").arg(tSize)); 251 topLevelWidget()->setCaption(i18n("New Agendasize: %1").arg(tSize));
252 252
253} 253}
254void TimeLabels::contentsMouseReleaseEvent ( QMouseEvent * e ) 254void TimeLabels::contentsMouseReleaseEvent ( QMouseEvent * e )
255{ 255{
256 topLevelWidget()->setCaption( mOrgCap ); 256 topLevelWidget()->setCaption( mOrgCap );
257 int diff = mMouseDownY - e->pos().y(); 257 int diff = mMouseDownY - e->pos().y();
258 if ( diff < 10 && diff > -10 ) 258 if ( diff < 10 && diff > -10 )
259 return; 259 return;
260 int tSize = KOPrefs::instance()->mHourSize + (diff/10); 260 int tSize = KOPrefs::instance()->mHourSize + (diff/10);
261 if ( tSize < 4 ) 261 if ( tSize < 4 )
262 tSize = 4; 262 tSize = 4;
263 if ( tSize > 22 ) 263 if ( tSize > 22 )
264 tSize = 22; 264 tSize = 22;
265 tSize = (tSize/2)*2; 265 tSize = (tSize/2)*2;
266 if ( tSize == KOPrefs::instance()->mHourSize ) 266 if ( tSize == KOPrefs::instance()->mHourSize )
267 return; 267 return;
268 KOPrefs::instance()->mHourSize = tSize; 268 KOPrefs::instance()->mHourSize = tSize;
269 emit scaleChanged(); 269 emit scaleChanged();
270} 270}
271 271
272/** This is called in response to repaint() */ 272/** This is called in response to repaint() */
273void TimeLabels::paintEvent(QPaintEvent*) 273void TimeLabels::paintEvent(QPaintEvent*)
274{ 274{
275 275
276 // kdDebug() << "paintevent..." << endl; 276 // kdDebug() << "paintevent..." << endl;
277 // this is another hack! 277 // this is another hack!
278 // QPainter painter(this); 278 // QPainter painter(this);
279 //QString c 279 //QString c
280 repaintContents(contentsX(), contentsY(), visibleWidth(), visibleHeight()); 280 repaintContents(contentsX(), contentsY(), visibleWidth(), visibleHeight());
281} 281}
282 282
283//////////////////////////////////////////////////////////////////////////// 283////////////////////////////////////////////////////////////////////////////
284 284
285EventIndicator::EventIndicator(Location loc,QWidget *parent,const char *name) 285EventIndicator::EventIndicator(Location loc,QWidget *parent,const char *name)
286 : QFrame(parent,name) 286 : QFrame(parent,name)
287{ 287{
288 mColumns = 1; 288 mColumns = 1;
289 mTopBox = 0; 289 mTopBox = 0;
290 mLocation = loc; 290 mLocation = loc;
291 mTopLayout = 0; 291 mTopLayout = 0;
292 mPaintWidget = 0; 292 mPaintWidget = 0;
293 mXOffset = 0; 293 mXOffset = 0;
294 if (mLocation == Top) mPixmap = SmallIcon("1uparrow"); 294 if (mLocation == Top) mPixmap = SmallIcon("1uparrow");
295 else mPixmap = SmallIcon("1downarrow"); 295 else mPixmap = SmallIcon("1downarrow");
296 mEnabled.resize(mColumns); 296 mEnabled.resize(mColumns);
297 mEnabled.fill( false ); 297 mEnabled.fill( false );
298 setMinimumHeight(mPixmap.height()); 298 setMinimumHeight(mPixmap.height());
299} 299}
300 300
301EventIndicator::~EventIndicator() 301EventIndicator::~EventIndicator()
302{ 302{
303} 303}
304 304
305void EventIndicator::drawContents(QPainter *p) 305void EventIndicator::drawContents(QPainter *p)
306{ 306{
307 307
308 // kdDebug() << "======== top: " << contentsRect().top() << " bottom " << // contentsRect().bottom() << " left " << contentsRect().left() << " right " << contentsRect().right() << endl; 308 // kdDebug() << "======== top: " << contentsRect().top() << " bottom " << // contentsRect().bottom() << " left " << contentsRect().left() << " right " << contentsRect().right() << endl;
309 KDGanttSplitterHandle* han = 0; 309 KDGanttSplitterHandle* han = 0;
310 if ( mPaintWidget ) 310 if ( mPaintWidget )
311 han = mPaintWidget->firstHandle(); 311 han = mPaintWidget->firstHandle();
312 if ( ! han ) { 312 if ( ! han ) {
313 int i; 313 int i;
314 for(i=0;i<mColumns;++i) { 314 for(i=0;i<mColumns;++i) {
315 if (mEnabled[i]) { 315 if (mEnabled[i]) {
316 int cellWidth = contentsRect().right()/mColumns; 316 int cellWidth = contentsRect().right()/mColumns;
317 int xOffset = KOGlobals::self()->reverseLayout() ? 317 int xOffset = KOGlobals::self()->reverseLayout() ?
318 (mColumns - 1 - i)*cellWidth + (cellWidth -mPixmap.width())/2 : 318 (mColumns - 1 - i)*cellWidth + (cellWidth -mPixmap.width())/2 :
319 i*cellWidth + (cellWidth -mPixmap.width()) /2; 319 i*cellWidth + (cellWidth -mPixmap.width()) /2;
320 p->drawPixmap(QPoint(1+xOffset,0),mPixmap); 320 p->drawPixmap(QPoint(1+xOffset,0),mPixmap);
321 } 321 }
322 } 322 }
323 } else { 323 } else {
324 han->repaint(); 324 han->repaint();
325 //mPaintWidget->setBackgroundColor( red ); 325 //mPaintWidget->setBackgroundColor( red );
326 326
327 QPainter pa( han ); 327 QPainter pa( han );
328 int i; 328 int i;
329 bool setColor = false; 329 bool setColor = false;
330 for(i=0;i<mColumns;++i) { 330 for(i=0;i<mColumns;++i) {
331 if (mEnabled[i]) { 331 if (mEnabled[i]) {
332 setColor = true; 332 setColor = true;
333 333
334 int cellWidth = contentsRect().right()/mColumns; 334 int cellWidth = contentsRect().right()/mColumns;
335 int xOffset = KOGlobals::self()->reverseLayout() ? 335 int xOffset = KOGlobals::self()->reverseLayout() ?
336 (mColumns - 1 - i)*cellWidth + cellWidth/2 -mPixmap.width()/2 : 336 (mColumns - 1 - i)*cellWidth + cellWidth/2 -mPixmap.width()/2 :
337 i*cellWidth + cellWidth/2 -mPixmap.width()/2; 337 i*cellWidth + cellWidth/2 -mPixmap.width()/2;
338 pa.drawPixmap(QPoint(mXOffset + xOffset,0),mPixmap); 338 pa.drawPixmap(QPoint(mXOffset + xOffset,0),mPixmap);
339 //qDebug("222draw pix %d ",xOffset ); 339 //qDebug("222draw pix %d ",xOffset );
340 340
341 } 341 }
342 342
343 } 343 }
344 pa.end(); 344 pa.end();
345 345
346 } 346 }
347} 347}
348 348
349void EventIndicator::setXOffset( int x ) 349void EventIndicator::setXOffset( int x )
350{ 350{
351 mXOffset = x; 351 mXOffset = x;
352} 352}
353void EventIndicator::setPaintWidget( KDGanttMinimizeSplitter * w ) 353void EventIndicator::setPaintWidget( KDGanttMinimizeSplitter * w )
354{ 354{
355 mPaintWidget = w; 355 mPaintWidget = w;
356 setMaximumHeight(0); 356 setMaximumHeight(0);
357 setMinimumHeight(0); 357 setMinimumHeight(0);
358} 358}
359void EventIndicator::changeColumns(int columns) 359void EventIndicator::changeColumns(int columns)
360{ 360{
361 mColumns = columns; 361 mColumns = columns;
362 mEnabled.resize(mColumns); 362 mEnabled.resize(mColumns);
363 363
364 update(); 364 update();
365} 365}
366 366
367void EventIndicator::enableColumn(int column, bool enable) 367void EventIndicator::enableColumn(int column, bool enable)
368{ 368{
369 mEnabled[column] = enable; 369 mEnabled[column] = enable;
370} 370}
371 371
372 372
373//////////////////////////////////////////////////////////////////////////// 373////////////////////////////////////////////////////////////////////////////
374//////////////////////////////////////////////////////////////////////////// 374////////////////////////////////////////////////////////////////////////////
375//////////////////////////////////////////////////////////////////////////// 375////////////////////////////////////////////////////////////////////////////
376 376
377KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : 377KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
378 KOEventView (cal,parent,name) 378 KOEventView (cal,parent,name)
379{ 379{
380 mBlockUpdating = true; 380 mBlockUpdating = true;
381 mStartHour = 8; 381 mStartHour = 8;
382 mSelectedDates.append(QDate::currentDate()); 382 mSelectedDates.append(QDate::currentDate());
383 383
384 mLayoutDayLabels = 0; 384 mLayoutDayLabels = 0;
385 mDayLabelsFrame = 0; 385 mDayLabelsFrame = 0;
386 mDayLabels = 0; 386 mDayLabels = 0;
387 bool isRTL = KOGlobals::self()->reverseLayout(); 387 bool isRTL = KOGlobals::self()->reverseLayout();
388 QPixmap expandPix; 388 QPixmap expandPix;
389 if ( KOPrefs::instance()->mVerticalScreen ) { 389 if ( KOPrefs::instance()->mVerticalScreen ) {
390 expandPix = SmallIcon( "1updownarrow" ); 390 expandPix = SmallIcon( "1updownarrow" );
391 } else { 391 } else {
392 expandPix = SmallIcon("1leftrightarrow" ); 392 expandPix = SmallIcon("1leftrightarrow" );
393 } 393 }
394 394
395 QBoxLayout *topLayout = new QVBoxLayout(this); 395 QBoxLayout *topLayout = new QVBoxLayout(this);
396 396
397 // Create day name labels for agenda columns 397 // Create day name labels for agenda columns
398 // Create agenda splitter 398 // Create agenda splitter
399 399
400 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this); 400 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this);
401 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 401 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
402 topLayout->addWidget( mSplitterAgenda ); 402 topLayout->addWidget( mSplitterAgenda );
403 mAllDayFrame = new QHBox(mSplitterAgenda); 403 mAllDayFrame = new QHBox(mSplitterAgenda);
404 mAllDayFrame->setFocusPolicy(NoFocus); 404 mAllDayFrame->setFocusPolicy(NoFocus);
405 QWidget *agendaFrame = new QWidget(mSplitterAgenda); 405 QWidget *agendaFrame = new QWidget(mSplitterAgenda);
406 agendaFrame->setFocusPolicy(NoFocus); 406 agendaFrame->setFocusPolicy(NoFocus);
407 407
408 // Create all-day agenda widget 408 // Create all-day agenda widget
409 mDummyAllDayLeft = new QVBox( mAllDayFrame ); 409 mDummyAllDayLeft = new QVBox( mAllDayFrame );
410 410
411 mExpandButton = new QPushButton(mDummyAllDayLeft); 411 mExpandButton = new QPushButton(mDummyAllDayLeft);
412 mExpandButton->setPixmap( expandPix ); 412 mExpandButton->setPixmap( expandPix );
413 int widebut = mExpandButton->sizeHint().width()+4; 413 int widebut = mExpandButton->sizeHint().width()+4;
414 int heibut = mExpandButton->sizeHint().height()+4; 414 int heibut = mExpandButton->sizeHint().height()+4;
415 if ( heibut > widebut ) 415 if ( heibut > widebut )
416 widebut = heibut ; 416 widebut = heibut ;
417 417
418 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, 418 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed,
419 // QSizePolicy::Fixed ) ); 419 // QSizePolicy::Fixed ) );
420 mExpandButton->setFixedSize( widebut, widebut); 420 mExpandButton->setFixedSize( widebut, widebut);
421 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) ); 421 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) );
422 mExpandButton->setFocusPolicy(NoFocus); 422 mExpandButton->setFocusPolicy(NoFocus);
423 mAllDayAgenda = new KOAgenda(1,mAllDayFrame); 423 mAllDayAgenda = new KOAgenda(1,mAllDayFrame);
424 mAllDayAgenda->setFocusPolicy(NoFocus); 424 mAllDayAgenda->setFocusPolicy(NoFocus);
425 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame); 425 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame);
426 426
427 // Create event context menu for all day agenda 427 // Create event context menu for all day agenda
428 //mAllDayAgendaPopup = eventPopup(); 428 //mAllDayAgendaPopup = eventPopup();
429 429
430 // Create agenda frame 430 // Create agenda frame
431 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3); 431 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3);
432 // QHBox *agendaFrame = new QHBox(splitterAgenda); 432 // QHBox *agendaFrame = new QHBox(splitterAgenda);
433 433
434 // create event indicator bars 434 // create event indicator bars
435 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame); 435 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame);
436#ifndef DESKTOP_VERSION 436#ifndef DESKTOP_VERSION
437 mEventIndicatorTop->setPaintWidget( mSplitterAgenda ); 437 mEventIndicatorTop->setPaintWidget( mSplitterAgenda );
438#endif 438#endif
439 mDayLabelsFrame = new QHBox(agendaFrame); 439 mDayLabelsFrame = new QHBox(agendaFrame);
440 //topLayout->addWidget(mDayLabelsFrame); 440 //topLayout->addWidget(mDayLabelsFrame);
441 mDayLabels = new QFrame (mDayLabelsFrame); 441 mDayLabels = new QFrame (mDayLabelsFrame);
442 mLayoutDayLabels = new QHBoxLayout(mDayLabels); 442 mLayoutDayLabels = new QHBoxLayout(mDayLabels);
443 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2); 443 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2);
444 agendaLayout->addWidget(mEventIndicatorTop,1,1); 444 agendaLayout->addWidget(mEventIndicatorTop,1,1);
445 445
446 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom, 446 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom,
447 agendaFrame); 447 agendaFrame);
448 agendaLayout->addWidget(mEventIndicatorBottom,3,1); 448 agendaLayout->addWidget(mEventIndicatorBottom,3,1);
449 QWidget *dummyAgendaRight = new QWidget(agendaFrame); 449 QWidget *dummyAgendaRight = new QWidget(agendaFrame);
450 agendaLayout->addWidget(dummyAgendaRight,1,2); 450 agendaLayout->addWidget(dummyAgendaRight,1,2);
451 451
452 // Create time labels 452 // Create time labels
453 mTimeLabels = new TimeLabels(24,agendaFrame); 453 mTimeLabels = new TimeLabels(24,agendaFrame);
454 agendaLayout->addWidget(mTimeLabels,2,0); 454 agendaLayout->addWidget(mTimeLabels,2,0);
455 connect(mTimeLabels,SIGNAL( scaleChanged()), 455 connect(mTimeLabels,SIGNAL( scaleChanged()),
456 this,SLOT(updateConfig())); 456 this,SLOT(updateConfig()));
457 457
458 // Create agenda 458 // Create agenda
459 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame); 459 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame);
460 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2); 460 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2);
461 agendaLayout->setColStretch(1,1); 461 agendaLayout->setColStretch(1,1);
462 mAgenda->setFocusPolicy(NoFocus); 462 mAgenda->setFocusPolicy(NoFocus);
463 // Create event context menu for agenda 463 // Create event context menu for agenda
464 mAllAgendaPopup = eventPopup(); 464 mAllAgendaPopup = eventPopup();
465 465
466#if 0 466#if 0
467 mAllAgendaPopup->addAdditionalItem(QIconSet(SmallIcon("bell")), 467 mAllAgendaPopup->addAdditionalItem(QIconSet(SmallIcon("bell")),
468 i18n("Toggle Alarm"),mAgenda, 468 i18n("Toggle Alarm"),mAgenda,
469 SLOT(popupAlarm()),true); 469 SLOT(popupAlarm()),true);
470 470
471#endif 471#endif
472 connect(mAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 472 connect(mAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
473 mAllAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 473 mAllAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
474 474
475 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 475 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
476 mAllAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 476 mAllAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
477 477
478 connect(mAllAgendaPopup,SIGNAL(categoryChanged(Incidence *)), 478 connect(mAllAgendaPopup,SIGNAL(categoryChanged(Incidence *)),
479 this,SLOT(categoryChanged(Incidence *))); 479 this,SLOT(categoryChanged(Incidence *)));
480 480
481 481
482 mAgenda->setPopup( mAllAgendaPopup ); 482 mAgenda->setPopup( mAllAgendaPopup );
483 mAllDayAgenda->setPopup( mAllAgendaPopup ); 483 mAllDayAgenda->setPopup( mAllAgendaPopup );
484 // make connections between dependent widgets 484 // make connections between dependent widgets
485 mTimeLabels->setAgenda(mAgenda); 485 mTimeLabels->setAgenda(mAgenda);
486 486
487 // Update widgets to reflect user preferences 487 // Update widgets to reflect user preferences
488 // updateConfig(); 488 // updateConfig();
489 489
490 // createDayLabels(); 490 // createDayLabels();
491 491
492 // these blank widgets make the All Day Event box line up with the agenda 492 // these blank widgets make the All Day Event box line up with the agenda
493 dummyAllDayRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); 493 dummyAllDayRight->setFixedWidth(mAgenda->verticalScrollBar()->width());
494 dummyAgendaRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); 494 dummyAgendaRight->setFixedWidth(mAgenda->verticalScrollBar()->width());
495 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 495 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
496 496
497 // Scrolling 497 // Scrolling
498 connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)), 498 connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)),
499 mTimeLabels, SLOT(positionChanged())); 499 mTimeLabels, SLOT(positionChanged()));
500 connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)), 500 connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)),
501 SLOT(setContentsPos(int))); 501 SLOT(setContentsPos(int)));
502 502
503 connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int ))); 503 connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int )));
504 connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) )); 504 connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) ));
505 505
506 // Create/Show/Edit/Delete Event 506 // Create/Show/Edit/Delete Event
507 connect(mAgenda,SIGNAL(newEventSignal(int,int)), 507 connect(mAgenda,SIGNAL(newEventSignal(int,int)),
508 SLOT(newEvent(int,int))); 508 SLOT(newEvent(int,int)));
509 connect(mAgenda,SIGNAL(newTodoSignal(int,int)), 509 connect(mAgenda,SIGNAL(newTodoSignal(int,int)),
510 SLOT(newTodo(int,int))); 510 SLOT(newTodo(int,int)));
511 connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)), 511 connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)),
512 SLOT(newEvent(int,int,int,int))); 512 SLOT(newEvent(int,int,int,int)));
513 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int)), 513 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int)),
514 SLOT(newEventAllDay(int,int))); 514 SLOT(newEventAllDay(int,int)));
515 connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)), 515 connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)),
516 SLOT(newTodoAllDay(int,int))); 516 SLOT(newTodoAllDay(int,int)));
517 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int,int,int)), 517 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int,int,int)),
518 SLOT(newEventAllDay(int,int))); 518 SLOT(newEventAllDay(int,int)));
519 connect(mAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)), 519 connect(mAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)),
520 SLOT(newTimeSpanSelected(int,int,int,int))); 520 SLOT(newTimeSpanSelected(int,int,int,int)));
521 connect(mAllDayAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)), 521 connect(mAllDayAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)),
522 SLOT(newTimeSpanSelectedAllDay(int,int,int,int))); 522 SLOT(newTimeSpanSelectedAllDay(int,int,int,int)));
523 connect(mAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView())); 523 connect(mAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView()));
524 connect(mAllDayAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView())); 524 connect(mAllDayAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView()));
525 525
526 connect(mAgenda,SIGNAL(editIncidenceSignal(Incidence *)), 526 connect(mAgenda,SIGNAL(editIncidenceSignal(Incidence *)),
527 SIGNAL(editIncidenceSignal(Incidence *))); 527 SIGNAL(editIncidenceSignal(Incidence *)));
528 connect(mAllDayAgenda,SIGNAL(editIncidenceSignal(Incidence *)), 528 connect(mAllDayAgenda,SIGNAL(editIncidenceSignal(Incidence *)),
529 SIGNAL(editIncidenceSignal(Incidence *))); 529 SIGNAL(editIncidenceSignal(Incidence *)));
530 connect(mAgenda,SIGNAL(showIncidenceSignal(Incidence *)), 530 connect(mAgenda,SIGNAL(showIncidenceSignal(Incidence *)),
531 SIGNAL(showIncidenceSignal(Incidence *))); 531 SIGNAL(showIncidenceSignal(Incidence *)));
532 connect(mAllDayAgenda,SIGNAL(showIncidenceSignal(Incidence *)), 532 connect(mAllDayAgenda,SIGNAL(showIncidenceSignal(Incidence *)),
533 SIGNAL(showIncidenceSignal(Incidence *))); 533 SIGNAL(showIncidenceSignal(Incidence *)));
534 connect(mAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)), 534 connect(mAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)),
535 SIGNAL(deleteIncidenceSignal(Incidence *))); 535 SIGNAL(deleteIncidenceSignal(Incidence *)));
536 connect(mAllDayAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)), 536 connect(mAllDayAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)),
537 SIGNAL(deleteIncidenceSignal(Incidence *))); 537 SIGNAL(deleteIncidenceSignal(Incidence *)));
538 538
539 connect(mAgenda,SIGNAL(itemModified(KOAgendaItem *, int )), 539 connect(mAgenda,SIGNAL(itemModified(KOAgendaItem *, int )),
540 SLOT(updateEventDates(KOAgendaItem *, int ))); 540 SLOT(updateEventDates(KOAgendaItem *, int )));
541 connect(mAllDayAgenda,SIGNAL(itemModified(KOAgendaItem *, int )), 541 connect(mAllDayAgenda,SIGNAL(itemModified(KOAgendaItem *, int )),
542 SLOT(updateEventDates(KOAgendaItem *, int))); 542 SLOT(updateEventDates(KOAgendaItem *, int)));
543 543
544 // event indicator update 544 // event indicator update
545 connect(mAgenda,SIGNAL(lowerYChanged(int)), 545 connect(mAgenda,SIGNAL(lowerYChanged(int)),
546 SLOT(updateEventIndicatorTop(int))); 546 SLOT(updateEventIndicatorTop(int)));
547 connect(mAgenda,SIGNAL(upperYChanged(int)), 547 connect(mAgenda,SIGNAL(upperYChanged(int)),
548 SLOT(updateEventIndicatorBottom(int))); 548 SLOT(updateEventIndicatorBottom(int)));
549 // drag signals 549 // drag signals
550 /* 550 /*
551 connect(mAgenda,SIGNAL(startDragSignal(Event *)), 551 connect(mAgenda,SIGNAL(startDragSignal(Event *)),
552 SLOT(startDrag(Event *))); 552 SLOT(startDrag(Event *)));
553 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)), 553 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)),
554 SLOT(startDrag(Event *))); 554 SLOT(startDrag(Event *)));
555 */ 555 */
556 // synchronize selections 556 // synchronize selections
557 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 557 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
558 mAllDayAgenda, SLOT( deselectItem() ) ); 558 mAllDayAgenda, SLOT( deselectItem() ) );
559 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 559 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
560 mAgenda, SLOT( deselectItem() ) ); 560 mAgenda, SLOT( deselectItem() ) );
561 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 561 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
562 SIGNAL( incidenceSelected( Incidence * ) ) ); 562 SIGNAL( incidenceSelected( Incidence * ) ) );
563 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 563 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
564 SIGNAL( incidenceSelected( Incidence * ) ) ); 564 SIGNAL( incidenceSelected( Incidence * ) ) );
565 connect( mAgenda, SIGNAL( resizedSignal() ), 565 connect( mAgenda, SIGNAL( resizedSignal() ),
566 SLOT( updateConfig( ) ) ); 566 SLOT( updateConfig( ) ) );
567 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ), 567 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ),
568 SLOT( addToCalSlot(Incidence *, Incidence * ) ) ); 568 SLOT( addToCalSlot(Incidence *, Incidence * ) ) );
569 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ), 569 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ),
570 SLOT( addToCalSlot(Incidence * , Incidence *) ) ); 570 SLOT( addToCalSlot(Incidence * , Incidence *) ) );
571 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 571 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
572 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 572 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
573 573
574 connect( mAllDayAgenda, SIGNAL( signalClearSelection() ),mAgenda, SLOT( slotClearSelection()) ); 574 connect( mAllDayAgenda, SIGNAL( signalClearSelection() ),mAgenda, SLOT( slotClearSelection()) );
575 connect( mAgenda, SIGNAL( signalClearSelection() ),mAllDayAgenda, SLOT( slotClearSelection()) ); 575 connect( mAgenda, SIGNAL( signalClearSelection() ),mAllDayAgenda, SLOT( slotClearSelection()) );
576#ifndef DESKTOP_VERSION 576#ifndef DESKTOP_VERSION
577 connect( mAllDayAgenda, SIGNAL( updateViewSignal() ),this, SLOT( fillAgenda()) ); 577 connect( mAllDayAgenda, SIGNAL( updateViewSignal() ),this, SLOT( fillAgenda()) );
578 connect( mAgenda, SIGNAL( updateViewSignal() ), this, SLOT( fillAgenda()) ); 578 connect( mAgenda, SIGNAL( updateViewSignal() ), this, SLOT( fillAgenda()) );
579 connect( mAllDayAgenda, SIGNAL( sendPing() ),this, SLOT( startIdleTimeout()) ); 579 connect( mAllDayAgenda, SIGNAL( sendPing() ),this, SLOT( startIdleTimeout()) );
580 connect( mAgenda, SIGNAL( sendPing() ), this, SLOT( startIdleTimeout()) ); 580 connect( mAgenda, SIGNAL( sendPing() ), this, SLOT( startIdleTimeout()) );
581 mIdleTimer = new QTimer ( this );; 581 mIdleTimer = new QTimer ( this );;
582 connect(mIdleTimer,SIGNAL(timeout()),SLOT(slotIdleTimeout())); 582 connect(mIdleTimer,SIGNAL(timeout()),SLOT(slotIdleTimeout()));
583#endif 583#endif
584} 584}
585void KOAgendaView::startIdleTimeout() 585void KOAgendaView::startIdleTimeout()
586{ 586{
587#ifndef DESKTOP_VERSION 587#ifndef DESKTOP_VERSION
588 mIdleStart = QDateTime::currentDateTime(); 588 mIdleStart = QDateTime::currentDateTime();
589 mIdleTimer->start( IDLETIMEOUT * 1000 ); 589 mIdleTimer->start( IDLETIMEOUT * 1000 );
590#endif 590#endif
591} 591}
592void KOAgendaView::slotIdleTimeout() 592void KOAgendaView::slotIdleTimeout()
593{ 593{
594#ifndef DESKTOP_VERSION 594#ifndef DESKTOP_VERSION
595 //qDebug("SECS TO %d ",mIdleStart.secsTo( QDateTime::currentDateTime() ) ); 595 //qDebug("SECS TO %d ",mIdleStart.secsTo( QDateTime::currentDateTime() ) );
596 int secsfromstart = mIdleStart.secsTo( QDateTime::currentDateTime() ); 596 int secsfromstart = mIdleStart.secsTo( QDateTime::currentDateTime() );
597 mIdleTimer->stop(); 597 mIdleTimer->stop();
598 bool isActice = topLevelWidget()->isActiveWindow(); 598 bool isActice = topLevelWidget()->isActiveWindow();
599 //qDebug("KO: Active Window %d %d", isActice, isVisible()); 599 //qDebug("KO: Active Window %d %d", isActice, isVisible());
600 // we do nothing if we wake up from a suspend 600 // we do nothing if we wake up from a suspend
601 if ( secsfromstart > IDLETIMEOUT + 30 && isActice ) { 601 if ( secsfromstart > IDLETIMEOUT + 30 && isActice ) {
602 qDebug("KO: Wakeup from suspend "); 602 qDebug("KO: Wakeup from suspend ");
603 startIdleTimeout(); 603 startIdleTimeout();
604 return; 604 return;
605 } 605 }
606 qDebug("KO: Downsizing Pixmaps "); 606 qDebug("KO: Downsizing Pixmaps ");
607 mAgenda->shrinkPixmap(); 607 mAgenda->shrinkPixmap();
608 mAllDayAgenda->shrinkPixmap(); 608 mAllDayAgenda->shrinkPixmap();
609 KOAgendaItem::paintPix()->resize( 20,20); 609 KOAgendaItem::paintPix()->resize( 20,20);
610 KOAgendaItem::paintPixAllday()->resize( 20,20); 610 KOAgendaItem::paintPixAllday()->resize( 20,20);
611#endif 611#endif
612 612
613} 613}
614void KOAgendaView::toggleAllDay() 614void KOAgendaView::toggleAllDay()
615{ 615{
616 if ( mSplitterAgenda->firstHandle() ) 616 if ( mSplitterAgenda->firstHandle() )
617 mSplitterAgenda->firstHandle()->toggle(); 617 mSplitterAgenda->firstHandle()->toggle();
618} 618}
619void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld ) 619void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld )
620{ 620{
621 calendar()->addIncidence( inc ); 621 calendar()->addIncidence( inc );
622 622
623 if ( incOld ) { 623 if ( incOld ) {
624 if ( incOld->typeID() == todoID ) 624 if ( incOld->typeID() == todoID )
625 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED ); 625 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED );
626 else 626 else
627 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED); 627 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED);
628 } 628 }
629 629
630} 630}
631void KOAgendaView::categoryChanged(Incidence * inc) 631void KOAgendaView::categoryChanged(Incidence * inc)
632{ 632{
633 mAgenda->categoryChanged( inc ); 633 mAgenda->categoryChanged( inc );
634 mAllDayAgenda->categoryChanged( inc ); 634 mAllDayAgenda->categoryChanged( inc );
635} 635}
636KOAgendaView::~KOAgendaView() 636KOAgendaView::~KOAgendaView()
637{ 637{
638 delete mAllAgendaPopup; 638 delete mAllAgendaPopup;
639 //delete mAllDayAgendaPopup; 639 //delete mAllDayAgendaPopup;
640 delete KOAgendaItem::paintPix(); 640 delete KOAgendaItem::paintPix();
641 delete KOAgendaItem::paintPixAllday(); 641 delete KOAgendaItem::paintPixAllday();
642} 642}
643void KOAgendaView::resizeEvent( QResizeEvent* e ) 643void KOAgendaView::resizeEvent( QResizeEvent* e )
644{ 644{
645 //qDebug("KOAgendaView::resizeEvent( QResizeEvent* e ) %d ", e->size().width()); 645 //qDebug("KOAgendaView::resizeEvent( QResizeEvent* e ) %d ", e->size().width());
646 bool uc = false; 646 bool uc = false;
647 int ow = e->oldSize().width(); 647 int ow = e->oldSize().width();
648 int oh = e->oldSize().height(); 648 int oh = e->oldSize().height();
649 int w = e->size().width(); 649 int w = e->size().width();
650 int h = e->size().height(); 650 int h = e->size().height();
651 if ( (ow > oh && w< h ) || (ow < oh && w > h ) ) { 651 if ( (ow > oh && w< h ) || (ow < oh && w > h ) ) {
652 if ( ! mBlockUpdating && !globalFlagBlockStartup && !globalFlagBlockAgenda ) 652 if ( ! mBlockUpdating && !globalFlagBlockStartup && !globalFlagBlockAgenda )
653 uc = true; 653 uc = true;
654 //qDebug("view changed %d %d %d %d ", ow, oh , w , h); 654 //qDebug("view changed %d %d %d %d ", ow, oh , w , h);
655 } 655 }
656 mUpcomingWidth = e->size().width() ; 656 mUpcomingWidth = e->size().width() ;
657 if ( mBlockUpdating || uc ) { 657 if ( mBlockUpdating || uc ) {
658 mBlockUpdating = false; 658 mBlockUpdating = false;
659 //mAgenda->setMinimumSize(800 , 600 ); 659 //mAgenda->setMinimumSize(800 , 600 );
660 //qDebug("mAgenda->resize+++++++++++++++ "); 660 //qDebug("mAgenda->resize+++++++++++++++ ");
661 updateConfig(); 661 updateConfig();
662 //qDebug("KOAgendaView::Updating now possible "); 662 //qDebug("KOAgendaView::Updating now possible ");
663 } else 663 } else
664 createDayLabels(); 664 createDayLabels();
665 //qDebug("resizeEvent end "); 665 //qDebug("resizeEvent end ");
666 666
667} 667}
668void KOAgendaView::slotDaylabelClicked( int num ) 668void KOAgendaView::slotDaylabelClicked( int num )
669{ 669{
670 670
671 QDate firstDate = mSelectedDates.first(); 671 QDate firstDate = mSelectedDates.first();
672 if ( num == -1 ) 672 if ( num == -1 )
673 emit showDateView( 6, firstDate ); 673 emit showDateView( 6, firstDate );
674 else if (num >= 0 ) { 674 else if (num >= 0 ) {
675 if ( mSelectedDates.count() == 1) 675 if ( mSelectedDates.count() == 1)
676 emit showDateView( 9, firstDate.addDays( num ) ); 676 emit showDateView( 9, firstDate.addDays( num ) );
677 else 677 else
678 emit showDateView( 3, firstDate.addDays( num ) ); 678 emit showDateView( 3, firstDate.addDays( num ) );
679 } 679 }
680 else 680 else
681 showDateView( 10, firstDate.addDays(1) ); 681 showDateView( 10, firstDate.addDays(1) );
682} 682}
683 683
684KOAgendaButton* KOAgendaView::getNewDaylabel() 684KOAgendaButton* KOAgendaView::getNewDaylabel()
685{ 685{
686 686
687 KOAgendaButton * dayLabel = new KOAgendaButton(mDayLabels); 687 KOAgendaButton * dayLabel = new KOAgendaButton(mDayLabels);
688 connect( dayLabel, SIGNAL( numClicked(int) ), this, SLOT ( slotDaylabelClicked(int) ) ); 688 connect( dayLabel, SIGNAL( numClicked(int) ), this, SLOT ( slotDaylabelClicked(int) ) );
689 mDayLabelsList.append( dayLabel ); 689 mDayLabelsList.append( dayLabel );
690 mLayoutDayLabels->addWidget(dayLabel); 690 mLayoutDayLabels->addWidget(dayLabel);
691 return dayLabel ; 691 return dayLabel ;
692} 692}
693 693
694void KOAgendaView::createDayLabels() 694void KOAgendaView::createDayLabels()
695{ 695{
696 696
697 if ( mBlockUpdating || globalFlagBlockLabel == 1) { 697 if ( mBlockUpdating || globalFlagBlockLabel == 1) {
698 // qDebug(" KOAgendaView::createDayLabels() blocked "); 698 // qDebug(" KOAgendaView::createDayLabels() blocked ");
699 return; 699 return;
700 700
701 } 701 }
702 int newHight; 702 int newHight;
703 if ( !mSelectedDates.count()) 703 if ( !mSelectedDates.count())
704 return; 704 return;
705 705
706 // ### Before deleting and recreating we could check if mSelectedDates changed... 706 // ### Before deleting and recreating we could check if mSelectedDates changed...
707 // It would remove some flickering and gain speed (since this is called by 707 // It would remove some flickering and gain speed (since this is called by
708 // each updateView() call) 708 // each updateView() call)
709 709
710 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2; 710 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2;
711 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); 711 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth );
712 if ( maxWid < 20 ) 712 if ( maxWid < 20 )
713 maxWid = 20; 713 maxWid = 20;
714 714
715 QFont dlf = KOPrefs::instance()->mTimeLabelsFont; 715 QFont dlf = KOPrefs::instance()->mTimeLabelsFont;
716 QFontMetrics fm ( dlf ); 716 QFontMetrics fm ( dlf );
717 dlf.setBold( true ); 717 dlf.setBold( true );
718 int selCount = mSelectedDates.count(); 718 int selCount = mSelectedDates.count();
719 int widModulo = maxWid - (mAgenda->gridSpacingX() * selCount)+1; 719 int widModulo = maxWid - (mAgenda->gridSpacingX() * selCount)+1;
720 QString dayTest = "Mon 20"; 720 QString dayTest = "Mon 20";
721 //QString dayTest = "Mon 20"; 721 //QString dayTest = "Mon 20";
722 int wid = fm.width( dayTest ); 722 int wid = fm.width( dayTest );
723 //maxWid -= ( selCount * 3 ); //working for QLabels 723 //maxWid -= ( selCount * 3 ); //working for QLabels
724 if ( QApplication::desktop()->width() <= 320 ) 724 if ( QApplication::desktop()->width() <= 320 )
725 maxWid -= ( selCount * 3 ); //working for QPushButton 725 maxWid -= ( selCount * 3 ); //working for QPushButton
726 else 726 else
727 maxWid -= ( selCount * 4 ); //working for QPushButton 727 maxWid -= ( selCount * 4 ); //working for QPushButton
728 if ( maxWid < 0 ) 728 if ( maxWid < 0 )
729 maxWid = 20; 729 maxWid = 20;
730 int needWid = wid * selCount; 730 int needWid = wid * selCount;
731 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid ); 731 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid );
732 //if ( needWid > maxWid ) 732 //if ( needWid > maxWid )
733 // qDebug("DAYLABELS TOOOOOOO BIG "); 733 // qDebug("DAYLABELS TOOOOOOO BIG ");
734 while ( needWid > maxWid ) { 734 while ( needWid > maxWid ) {
735 dayTest = dayTest.left( dayTest.length() - 1 ); 735 dayTest = dayTest.left( dayTest.length() - 1 );
736 wid = fm.width( dayTest ); 736 wid = fm.width( dayTest );
737 needWid = wid * selCount; 737 needWid = wid * selCount;
738 } 738 }
739 int maxLen = dayTest.length(); 739 int maxLen = dayTest.length();
740 int fontPoint = dlf.pointSize(); 740 int fontPoint = dlf.pointSize();
741 if ( maxLen < 2 ) { 741 if ( maxLen < 2 ) {
742 int fontPoint = dlf.pointSize(); 742 int fontPoint = dlf.pointSize();
743 while ( fontPoint > 4 ) { 743 while ( fontPoint > 4 ) {
744 --fontPoint; 744 --fontPoint;
745 dlf.setPointSize( fontPoint ); 745 dlf.setPointSize( fontPoint );
746 QFontMetrics f( dlf ); 746 QFontMetrics f( dlf );
747 wid = f.width( "30" ); 747 wid = f.width( "30" );
748 needWid = wid * selCount; 748 needWid = wid * selCount;
749 if ( needWid < maxWid ) 749 if ( needWid < maxWid )
750 break; 750 break;
751 } 751 }
752 maxLen = 2; 752 maxLen = 2;
753 } 753 }
754 //qDebug("Max len %d ", dayTest.length() ); 754 //qDebug("Max len %d ", dayTest.length() );
755 if ( !KOPrefs::instance()->mTimeLabelsFont.bold() ) 755 if ( !KOPrefs::instance()->mTimeLabelsFont.bold() )
756 dlf.setBold( false ); 756 dlf.setBold( false );
757 QFontMetrics tempF( dlf ); 757 QFontMetrics tempF( dlf );
758 newHight = tempF.height(); 758 newHight = tempF.height();
759 mDayLabels->setFont( dlf ); 759 mDayLabels->setFont( dlf );
760 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);; 760 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);;
761 // mLayoutDayLabels->addSpacing(mTimeLabels->width()); 761 // mLayoutDayLabels->addSpacing(mTimeLabels->width());
762 //mLayoutDayLabels->addSpacing( 2 ); 762 //mLayoutDayLabels->addSpacing( 2 );
763 // QFont lFont = dlf; 763 // QFont lFont = dlf;
764 bool appendLabels = false; 764 bool appendLabels = false;
765 KOAgendaButton *dayLabel; 765 KOAgendaButton *dayLabel;
766 dayLabel = mDayLabelsList.first(); 766 dayLabel = mDayLabelsList.first();
767 if ( !dayLabel ) { 767 if ( !dayLabel ) {
768 appendLabels = true; 768 appendLabels = true;
769 dayLabel = getNewDaylabel(); 769 dayLabel = getNewDaylabel();
770 } 770 }
771 dayLabel->setFixedWidth( mTimeLabels->width()+mAgenda->frameWidth() ); 771 dayLabel->setFixedWidth( mTimeLabels->width()+mAgenda->frameWidth() );
772 dayLabel->setFont( dlf ); 772 dayLabel->setFont( dlf );
773 dayLabel->setNum( -1 ); 773 dayLabel->setNum( -1 );
774 //dayLabel->setAlignment(QLabel::AlignHCenter); 774 //dayLabel->setAlignment(QLabel::AlignHCenter);
775 775
776 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); 776 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) );
777 dayLabel->show(); 777 dayLabel->show();
778 DateList::ConstIterator dit; 778 DateList::ConstIterator dit;
779 bool oneday = (mSelectedDates.first() == mSelectedDates.last() ); 779 bool oneday = (mSelectedDates.first() == mSelectedDates.last() );
780 int counter = -1; 780 int counter = -1;
781 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 781 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
782 ++counter; 782 ++counter;
783 QDate date = *dit; 783 QDate date = *dit;
784 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels); 784 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels);
785 if ( ! appendLabels ) { 785 if ( ! appendLabels ) {
786 dayLabel = mDayLabelsList.next(); 786 dayLabel = mDayLabelsList.next();
787 if ( !dayLabel ) 787 if ( !dayLabel )
788 appendLabels = true; 788 appendLabels = true;
789 } 789 }
790 if ( appendLabels ) { 790 if ( appendLabels ) {
791 dayLabel = getNewDaylabel(); 791 dayLabel = getNewDaylabel();
792 } 792 }
793 dayLabel->setMinimumWidth( 1 ); 793 dayLabel->setMinimumWidth( 1 );
794 dayLabel->setMaximumWidth( 10240 ); 794 dayLabel->setMaximumWidth( 10240 );
795 dayLabel->setFont( dlf ); 795 dayLabel->setFont( dlf );
796 dayLabel->show(); 796 dayLabel->show();
797 dayLabel->setAutoRepeat( false ); 797 dayLabel->setAutoRepeat( false );
798 dayLabel->setNum( counter ); 798 dayLabel->setNum( counter );
799 QString str; 799 QString str;
800 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date); 800 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date);
801 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true ); 801 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true );
802 switch ( maxLen ) { 802 switch ( maxLen ) {
803 case 2: 803 case 2:
804 str = QString::number( date.day() ); 804 str = QString::number( date.day() );
805 break; 805 break;
806 806
807 case 3: 807 case 3:
808 str = dayName.left( 1 ) +QString::number( date.day()); 808 str = dayName.left( 1 ) +QString::number( date.day());
809 809
810 break; 810 break;
811 case 4: 811 case 4:
812 str = dayName.left( 1 ) + " " +QString::number( date.day()); 812 str = dayName.left( 1 ) + " " +QString::number( date.day());
813 813
814 break; 814 break;
815 case 5: 815 case 5:
816 str = dayName.left( 2 ) + " " +QString::number( date.day()); 816 str = dayName.left( 2 ) + " " +QString::number( date.day());
817 817
818 break; 818 break;
819 case 6: 819 case 6:
820 str = dayName.left( 3 ) + " " +QString::number( date.day()); 820 str = dayName.left( 3 ) + " " +QString::number( date.day());
821 break; 821 break;
822 822
823 default: 823 default:
824 break; 824 break;
825 } 825 }
826 if ( oneday ) { 826 if ( oneday ) {
827 QString addString; 827 QString addString;
828 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() ) 828 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() )
829 addString = i18n("Today"); 829 addString = i18n("Today");
830 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) ) 830 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) )
831 addString = i18n("Tomorrow"); 831 addString = i18n("Tomorrow");
832 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) ) 832 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) )
833 addString = i18n("Yesterday"); 833 addString = i18n("Yesterday");
834 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) ) 834 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) )
835 addString = i18n("Day before yesterday"); 835 addString = i18n("Day before yesterday");
836 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) ) 836 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) )
837 addString = i18n("Day after tomorrow"); 837 addString = i18n("Day after tomorrow");
838 if ( !addString.isEmpty() ) { 838 if ( !addString.isEmpty() ) {
839 str = addString+", " + str; 839 if ( QApplication::desktop()->width() < 640 )
840 str = addString+", " + str;
841 else
842 str = addString+", "+ KGlobal::locale()->formatDate( date, false);
840 } else { 843 } else {
841 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer); 844 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer);
842 } 845 }
843 } 846 }
844 dayLabel->setText(str); 847 dayLabel->setText(str);
845 //dayLabel->setAlignment(QLabel::AlignHCenter); 848 //dayLabel->setAlignment(QLabel::AlignHCenter);
846 if (date == QDate::currentDate()) { 849 if (date == QDate::currentDate()) {
847 QFont bFont = dlf; 850 QFont bFont = dlf;
848 bFont.setBold( true ); 851 bFont.setBold( true );
849 dayLabel->setFont(bFont); 852 dayLabel->setFont(bFont);
850 } 853 }
851 //dayLayout->addWidget(dayLabel); 854 //dayLayout->addWidget(dayLabel);
852 855
853#ifndef KORG_NOPLUGINS 856#ifndef KORG_NOPLUGINS
854 CalendarDecoration::List cds = KOCore::self()->calendarDecorations(); 857 CalendarDecoration::List cds = KOCore::self()->calendarDecorations();
855 CalendarDecoration *it; 858 CalendarDecoration *it;
856 for(it = cds.first(); it; it = cds.next()) { 859 for(it = cds.first(); it; it = cds.next()) {
857 QString text = it->shortText( date ); 860 QString text = it->shortText( date );
858 if ( !text.isEmpty() ) { 861 if ( !text.isEmpty() ) {
859 QLabel *label = new QLabel(text,mDayLabels); 862 QLabel *label = new QLabel(text,mDayLabels);
860 label->setAlignment(AlignCenter); 863 label->setAlignment(AlignCenter);
861 dayLayout->addWidget(label); 864 dayLayout->addWidget(label);
862 } 865 }
863 } 866 }
864 867
865 for(it = cds.first(); it; it = cds.next()) { 868 for(it = cds.first(); it; it = cds.next()) {
866 QWidget *wid = it->smallWidget(mDayLabels,date); 869 QWidget *wid = it->smallWidget(mDayLabels,date);
867 if ( wid ) { 870 if ( wid ) {
868 // wid->setHeight(20); 871 // wid->setHeight(20);
869 dayLayout->addWidget(wid); 872 dayLayout->addWidget(wid);
870 } 873 }
871 } 874 }
872#endif 875#endif
873 } 876 }
874 if ( ! appendLabels ) { 877 if ( ! appendLabels ) {
875 dayLabel = mDayLabelsList.next(); 878 dayLabel = mDayLabelsList.next();
876 if ( !dayLabel ) 879 if ( !dayLabel )
877 appendLabels = true; 880 appendLabels = true;
878 } 881 }
879 if ( appendLabels ) { 882 if ( appendLabels ) {
880 dayLabel = getNewDaylabel(); 883 dayLabel = getNewDaylabel();
881 } 884 }
882 //dayLabel->hide();//test only 885 //dayLabel->hide();//test only
883 886
884 dayLabel->setText(">"); 887 dayLabel->setText(">");
885 dayLabel->setFont( dlf ); 888 dayLabel->setFont( dlf );
886 dayLabel->setAutoRepeat( true ); 889 dayLabel->setAutoRepeat( true );
887 dayLabel->show(); 890 dayLabel->show();
888 dayLabel->setNum( -2 ); 891 dayLabel->setNum( -2 );
889 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ widModulo ); 892 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ widModulo );
890 893
891 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2); 894 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2);
892 if ( !appendLabels ) { 895 if ( !appendLabels ) {
893 dayLabel = mDayLabelsList.next(); 896 dayLabel = mDayLabelsList.next();
894 while ( dayLabel ) { 897 while ( dayLabel ) {
895 //qDebug("!dayLabel %d",dayLabel ); 898 //qDebug("!dayLabel %d",dayLabel );
896 dayLabel->hide(); 899 dayLabel->hide();
897 dayLabel = mDayLabelsList.next(); 900 dayLabel = mDayLabelsList.next();
898 } 901 }
899 } 902 }
900 903
901 mDayLabelsFrame->setFixedHeight( newHight + 4 ); 904 mDayLabelsFrame->setFixedHeight( newHight + 4 );
902} 905}
903 906
904int KOAgendaView::maxDatesHint() 907int KOAgendaView::maxDatesHint()
905{ 908{
906 // Not sure about the max number of events, so return 0 for now. 909 // Not sure about the max number of events, so return 0 for now.
907 return 0; 910 return 0;
908} 911}
909 912
910int KOAgendaView::currentDateCount() 913int KOAgendaView::currentDateCount()
911{ 914{
912 return mSelectedDates.count(); 915 return mSelectedDates.count();
913} 916}
914 917
915QPtrList<Incidence> KOAgendaView::selectedIncidences() 918QPtrList<Incidence> KOAgendaView::selectedIncidences()
916{ 919{
917 QPtrList<Incidence> selected; 920 QPtrList<Incidence> selected;
918 Incidence *incidence; 921 Incidence *incidence;
919 922
920 incidence = mAgenda->selectedIncidence(); 923 incidence = mAgenda->selectedIncidence();
921 if (incidence) selected.append(incidence); 924 if (incidence) selected.append(incidence);
922 925
923 incidence = mAllDayAgenda->selectedIncidence(); 926 incidence = mAllDayAgenda->selectedIncidence();
924 if (incidence) selected.append(incidence); 927 if (incidence) selected.append(incidence);
925 928
926 return selected; 929 return selected;
927} 930}
928 931
929DateList KOAgendaView::selectedDates() 932DateList KOAgendaView::selectedDates()
930{ 933{
931 DateList selected; 934 DateList selected;
932 QDate qd; 935 QDate qd;
933 936
934 qd = mAgenda->selectedIncidenceDate(); 937 qd = mAgenda->selectedIncidenceDate();
935 if (qd.isValid()) selected.append(qd); 938 if (qd.isValid()) selected.append(qd);
936 939
937 qd = mAllDayAgenda->selectedIncidenceDate(); 940 qd = mAllDayAgenda->selectedIncidenceDate();
938 if (qd.isValid()) selected.append(qd); 941 if (qd.isValid()) selected.append(qd);
939 942
940 return selected; 943 return selected;
941} 944}
942 945
943 946
944void KOAgendaView::updateView() 947void KOAgendaView::updateView()
945{ 948{
946 if ( mBlockUpdating ) 949 if ( mBlockUpdating )
947 return; 950 return;
948 // kdDebug() << "KOAgendaView::updateView()" << endl; 951 // kdDebug() << "KOAgendaView::updateView()" << endl;
949 fillAgenda(); 952 fillAgenda();
950 953
951} 954}
952 955
953 956
954/* 957/*
955 Update configuration settings for the agenda view. This method is not 958 Update configuration settings for the agenda view. This method is not
956 complete. 959 complete.
957*/ 960*/
958void KOAgendaView::updateConfig() 961void KOAgendaView::updateConfig()
959{ 962{
960 if ( mBlockUpdating ) 963 if ( mBlockUpdating )
961 return; 964 return;
962 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) { 965 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) {
963 int old = KOPrefs::instance()->mHourSize; 966 int old = KOPrefs::instance()->mHourSize;
964 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1; 967 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1;
965 //qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize ); 968 //qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize );
966 } 969 }
967 970
968 971
969 // update config for children 972 // update config for children
970 mTimeLabels->updateConfig(); 973 mTimeLabels->updateConfig();
971 mAgenda->storePosition(); 974 mAgenda->storePosition();
972 mAgenda->updateConfig(); 975 mAgenda->updateConfig();
973 mAllDayAgenda->updateConfig(); 976 mAllDayAgenda->updateConfig();
974 // widget synchronization 977 // widget synchronization
975 //TODO: find a better way, maybe signal/slot 978 //TODO: find a better way, maybe signal/slot
976 mTimeLabels->positionChanged(); 979 mTimeLabels->positionChanged();
977 980
978 // for some reason, this needs to be called explicitly 981 // for some reason, this needs to be called explicitly
979 mTimeLabels->repaint(); 982 mTimeLabels->repaint();
980 983
981 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 984 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
982 985
983 // ToolTips displaying summary of events 986 // ToolTips displaying summary of events
984 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance() 987 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance()
985 ->mEnableToolTips); 988 ->mEnableToolTips);
986 989
987 //setHolidayMasks(); 990 //setHolidayMasks();
988 991
989 //createDayLabels(); called by via updateView(); 992 //createDayLabels(); called by via updateView();
990 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth()); 993 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth());
991 updateView(); 994 updateView();
992 mAgenda->restorePosition(); 995 mAgenda->restorePosition();
993} 996}
994 997
995 998
996void KOAgendaView::updateEventDates(KOAgendaItem *item, int type) 999void KOAgendaView::updateEventDates(KOAgendaItem *item, int type)
997{ 1000{
998 1001
999 1002
1000 int xxx = item->cellX(); 1003 int xxx = item->cellX();
1001 //qDebug("KOAgendaView::updateEventDates %d %d %d %d %d", xxx, mMinY.at(xxx),mMaxY.at(xxx),item->cellYTop(),item->cellYBottom() ); 1004 //qDebug("KOAgendaView::updateEventDates %d %d %d %d %d", xxx, mMinY.at(xxx),mMaxY.at(xxx),item->cellYTop(),item->cellYBottom() );
1002 if ( mMinY.at(xxx) > item->cellYTop() ) 1005 if ( mMinY.at(xxx) > item->cellYTop() )
1003 mMinY.at(xxx) = item->cellYTop(); 1006 mMinY.at(xxx) = item->cellYTop();
1004 if ( mMaxY.at(xxx) < item->cellYBottom() ) 1007 if ( mMaxY.at(xxx) < item->cellYBottom() )
1005 mMaxY.at(xxx) = item->cellYBottom(); 1008 mMaxY.at(xxx) = item->cellYBottom();
1006 1009
1007 QDateTime startDt,endDt; 1010 QDateTime startDt,endDt;
1008 QDate startDate; 1011 QDate startDate;
1009 int lenInSecs; 1012 int lenInSecs;
1010 // if ( type == KOAgenda::RESIZETOP ) 1013 // if ( type == KOAgenda::RESIZETOP )
1011 // qDebug("RESIZETOP "); 1014 // qDebug("RESIZETOP ");
1012 // if ( type == KOAgenda::RESIZEBOTTOM ) 1015 // if ( type == KOAgenda::RESIZEBOTTOM )
1013 // qDebug("RESIZEBOTTOM "); 1016 // qDebug("RESIZEBOTTOM ");
1014 // if ( type == KOAgenda::MOVE ) 1017 // if ( type == KOAgenda::MOVE )
1015 // qDebug("MOVE "); 1018 // qDebug("MOVE ");
1016 if ( item->incidence()->typeID() == eventID ) { 1019 if ( item->incidence()->typeID() == eventID ) {
1017 startDt =item->incidence()->dtStart(); 1020 startDt =item->incidence()->dtStart();
1018 endDt = item->incidence()->dtEnd(); 1021 endDt = item->incidence()->dtEnd();
1019 lenInSecs = startDt.secsTo( endDt ); 1022 lenInSecs = startDt.secsTo( endDt );
1020 } 1023 }
1021 1024
1022 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED ); 1025 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED );
1023 1026
1024 if ( item->incidence()->typeID()== todoID && item->mLastMoveXPos > 0 ) { 1027 if ( item->incidence()->typeID()== todoID && item->mLastMoveXPos > 0 ) {
1025 startDate = mSelectedDates[item->mLastMoveXPos]; 1028 startDate = mSelectedDates[item->mLastMoveXPos];
1026 } else { 1029 } else {
1027 if (item->cellX() < 0) { 1030 if (item->cellX() < 0) {
1028 startDate = (mSelectedDates.first()).addDays(item->cellX()); 1031 startDate = (mSelectedDates.first()).addDays(item->cellX());
1029 } else { 1032 } else {
1030 startDate = mSelectedDates[item->cellX()]; 1033 startDate = mSelectedDates[item->cellX()];
1031 } 1034 }
1032 } 1035 }
1033 startDt.setDate(startDate); 1036 startDt.setDate(startDate);
1034 1037
1035 if (item->incidence()->doesFloat()) { 1038 if (item->incidence()->doesFloat()) {
1036 endDt.setDate(startDate.addDays(item->cellWidth() - 1)); 1039 endDt.setDate(startDate.addDays(item->cellWidth() - 1));
1037 } else { 1040 } else {
1038 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE ) 1041 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE )
1039 startDt.setTime(mAgenda->gyToTime(item->cellYTop())); 1042 startDt.setTime(mAgenda->gyToTime(item->cellYTop()));
1040 if ( item->incidence()->typeID() == eventID ) { 1043 if ( item->incidence()->typeID() == eventID ) {
1041 if ( type == KOAgenda::MOVE ) { 1044 if ( type == KOAgenda::MOVE ) {
1042 endDt = startDt.addSecs(lenInSecs); 1045 endDt = startDt.addSecs(lenInSecs);
1043 1046
1044 } else if ( type == KOAgenda::RESIZEBOTTOM ) { 1047 } else if ( type == KOAgenda::RESIZEBOTTOM ) {
1045 if (item->lastMultiItem()) { 1048 if (item->lastMultiItem()) {
1046 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 1049 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
1047 endDt.setDate(startDate. 1050 endDt.setDate(startDate.
1048 addDays(item->lastMultiItem()->cellX() - item->cellX())); 1051 addDays(item->lastMultiItem()->cellX() - item->cellX()));
1049 } else { 1052 } else {
1050 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 1053 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
1051 endDt.setDate(startDate); 1054 endDt.setDate(startDate);
1052 } 1055 }
1053 } 1056 }
1054 } else { 1057 } else {
1055 // todo 1058 // todo
1056 if (item->lastMultiItem()) { 1059 if (item->lastMultiItem()) {
1057 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 1060 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
1058 endDt.setDate(startDate. 1061 endDt.setDate(startDate.
1059 addDays(item->lastMultiItem()->cellX() - item->cellX())); 1062 addDays(item->lastMultiItem()->cellX() - item->cellX()));
1060 } else { 1063 } else {
1061 //qDebug("tem->cellYBottom() %d",item->cellYBottom() ); 1064 //qDebug("tem->cellYBottom() %d",item->cellYBottom() );
1062 if ( item->cellYBottom() > 0 ) 1065 if ( item->cellYBottom() > 0 )
1063 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 1066 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
1064 else 1067 else
1065 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time()); 1068 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time());
1066 endDt.setDate(startDate); 1069 endDt.setDate(startDate);
1067 } 1070 }
1068 } 1071 }
1069 } 1072 }
1070 if ( item->incidence()->typeID() == eventID ) { 1073 if ( item->incidence()->typeID() == eventID ) {
1071 item->incidence()->setDtStart(startDt); 1074 item->incidence()->setDtStart(startDt);
1072 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt); 1075 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt);
1073 } else if ( item->incidence()->typeID() == todoID ) { 1076 } else if ( item->incidence()->typeID() == todoID ) {
1074 Todo* to = static_cast<Todo*>(item->incidence()); 1077 Todo* to = static_cast<Todo*>(item->incidence());
1075 1078
1076 to->setDtDue(endDt); 1079 to->setDtDue(endDt);
1077 if ( to->hasStartDate() ) { 1080 if ( to->hasStartDate() ) {
1078 if (to->dtStart() >= to->dtDue() ) 1081 if (to->dtStart() >= to->dtDue() )
1079 to->setDtStart(to->dtDue().addDays( -2 )); 1082 to->setDtStart(to->dtDue().addDays( -2 ));
1080 } 1083 }
1081 1084
1082 } 1085 }
1083 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() ); 1086 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() );
1084 item->incidence()->setRevision(item->incidence()->revision()+1); 1087 item->incidence()->setRevision(item->incidence()->revision()+1);
1085 item->setItemDate(startDt.date()); 1088 item->setItemDate(startDt.date());
1086 //item->updateItem(); 1089 //item->updateItem();
1087 if ( item->incidence()->typeID() == todoID ) { 1090 if ( item->incidence()->typeID() == todoID ) {
1088 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED ); 1091 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED );
1089 1092
1090 } 1093 }
1091 else 1094 else
1092 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED); 1095 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED);
1093 item->updateItem(); 1096 item->updateItem();
1094} 1097}
1095 1098
1096void KOAgendaView::showDates( const QDate &start, const QDate &end ) 1099void KOAgendaView::showDates( const QDate &start, const QDate &end )
1097{ 1100{
1098 // kdDebug() << "KOAgendaView::selectDates" << endl; 1101 // kdDebug() << "KOAgendaView::selectDates" << endl;
1099 1102
1100 mSelectedDates.clear(); 1103 mSelectedDates.clear();
1101 // qDebug("KOAgendaView::showDates "); 1104 // qDebug("KOAgendaView::showDates ");
1102 QDate d = start; 1105 QDate d = start;
1103 while (d <= end) { 1106 while (d <= end) {
1104 mSelectedDates.append(d); 1107 mSelectedDates.append(d);
1105 d = d.addDays( 1 ); 1108 d = d.addDays( 1 );
1106 } 1109 }
1107 1110
1108 // and update the view 1111 // and update the view
1109 fillAgenda(); 1112 fillAgenda();
1110} 1113}
1111 1114
1112 1115
1113void KOAgendaView::showEvents(QPtrList<Event>) 1116void KOAgendaView::showEvents(QPtrList<Event>)
1114{ 1117{
1115 kdDebug() << "KOAgendaView::showEvents() is not yet implemented" << endl; 1118 kdDebug() << "KOAgendaView::showEvents() is not yet implemented" << endl;
1116} 1119}
1117 1120
1118void KOAgendaView::changeEventDisplay(Event *, int) 1121void KOAgendaView::changeEventDisplay(Event *, int)
1119{ 1122{
1120 // qDebug("KOAgendaView::changeEventDisplay "); 1123 // qDebug("KOAgendaView::changeEventDisplay ");
1121 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl; 1124 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl;
1122 // this should be re-written to be MUCH smarter. Right now we 1125 // this should be re-written to be MUCH smarter. Right now we
1123 // are just playing dumb. 1126 // are just playing dumb.
1124 fillAgenda(); 1127 fillAgenda();
1125} 1128}
1126 1129
1127void KOAgendaView::fillAgenda(const QDate &) 1130void KOAgendaView::fillAgenda(const QDate &)
1128{ 1131{
1129 // qDebug("KOAgendaView::fillAgenda "); 1132 // qDebug("KOAgendaView::fillAgenda ");
1130 fillAgenda(); 1133 fillAgenda();
1131} 1134}
1132 1135
1133void KOAgendaView::fillAgenda() 1136void KOAgendaView::fillAgenda()
1134{ 1137{
1135 if ( globalFlagBlockStartup ) 1138 if ( globalFlagBlockStartup )
1136 return; 1139 return;
1137 if ( globalFlagBlockAgenda == 1 ) 1140 if ( globalFlagBlockAgenda == 1 )
1138 return; 1141 return;
1139 static bool onlyOne = false; 1142 static bool onlyOne = false;
1140 if ( onlyOne ) 1143 if ( onlyOne )
1141 return; 1144 return;
1142 onlyOne = true; 1145 onlyOne = true;
1143 //if ( globalFlagBlockAgenda == 2 ) 1146 //if ( globalFlagBlockAgenda == 2 )
1144 //globalFlagBlockAgenda = 0; 1147 //globalFlagBlockAgenda = 0;
1145 // globalFlagBlockPainting = false; 1148 // globalFlagBlockPainting = false;
1146 if ( globalFlagBlockAgenda == 0 ) 1149 if ( globalFlagBlockAgenda == 0 )
1147 globalFlagBlockAgenda = 1; 1150 globalFlagBlockAgenda = 1;
1148 // clearView(); 1151 // clearView();
1149 //qDebug("fillAgenda()++++ "); 1152 //qDebug("fillAgenda()++++ ");
1150 globalFlagBlockAgendaItemPaint = 1; 1153 globalFlagBlockAgendaItemPaint = 1;
1151 1154
1152 mAllDayAgenda->changeColumns(mSelectedDates.count()); 1155 mAllDayAgenda->changeColumns(mSelectedDates.count());
1153 mAgenda->changeColumns(mSelectedDates.count()); 1156 mAgenda->changeColumns(mSelectedDates.count());
1154 qApp->processEvents(); 1157 qApp->processEvents();
1155 mEventIndicatorTop->changeColumns(mSelectedDates.count()); 1158 mEventIndicatorTop->changeColumns(mSelectedDates.count());
1156 mEventIndicatorBottom->changeColumns(mSelectedDates.count()); 1159 mEventIndicatorBottom->changeColumns(mSelectedDates.count());
1157 setHolidayMasks(); 1160 setHolidayMasks();
1158 1161
1159 mMinY.resize(mSelectedDates.count()); 1162 mMinY.resize(mSelectedDates.count());
1160 mMaxY.resize(mSelectedDates.count()); 1163 mMaxY.resize(mSelectedDates.count());
1161 1164
1162 QPtrList<Event> dayEvents; 1165 QPtrList<Event> dayEvents;
1163 1166
1164 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1167 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1165 // Therefore, gtodoset all of them. 1168 // Therefore, gtodoset all of them.
1166 QPtrList<Todo> todos = calendar()->todos(); 1169 QPtrList<Todo> todos = calendar()->todos();
1167 1170
1168 mAgenda->setDateList(mSelectedDates); 1171 mAgenda->setDateList(mSelectedDates);
1169 1172
1170 QDate today = QDate::currentDate(); 1173 QDate today = QDate::currentDate();
1171 1174
1172 DateList::ConstIterator dit; 1175 DateList::ConstIterator dit;
1173 int curCol = 0; 1176 int curCol = 0;
1174 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 1177 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
1175 QDate currentDate = *dit; 1178 QDate currentDate = *dit;
1176 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString() 1179 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString()
1177 // << endl; 1180 // << endl;
1178 1181
1179 dayEvents = calendar()->events(currentDate,false); 1182 dayEvents = calendar()->events(currentDate,false);
1180 1183
1181 // Default values, which can never be reached 1184 // Default values, which can never be reached
1182 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1; 1185 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1;
1183 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1; 1186 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1;
1184 1187
1185 unsigned int numEvent; 1188 unsigned int numEvent;
1186 for(numEvent=0;numEvent<dayEvents.count();++numEvent) { 1189 for(numEvent=0;numEvent<dayEvents.count();++numEvent) {
1187 Event *event = dayEvents.at(numEvent); 1190 Event *event = dayEvents.at(numEvent);
1188 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) 1191 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") )
1189 if ( event->uid().left(15) == QString("last-syncEvent-") ) 1192 if ( event->uid().left(15) == QString("last-syncEvent-") )
1190 continue; 1193 continue;
1191 // kdDebug() << " Event: " << event->summary() << endl; 1194 // kdDebug() << " Event: " << event->summary() << endl;
1192 1195
1193 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol; 1196 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol;
1194 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol; 1197 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol;
1195 1198
1196 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl; 1199 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl;
1197 1200
1198 if (event->doesFloat()) { 1201 if (event->doesFloat()) {
1199 if (event->recurrence()->doesRecur()) { 1202 if (event->recurrence()->doesRecur()) {
1200 if (event->isMultiDay() ) { 1203 if (event->isMultiDay() ) {
1201 endX = endX - beginX;// endX is now number of days 1204 endX = endX - beginX;// endX is now number of days
1202 if ( event->recursOn( currentDate ) ) { 1205 if ( event->recursOn( currentDate ) ) {
1203 endX += curCol; 1206 endX += curCol;
1204 beginX = curCol; 1207 beginX = curCol;
1205 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1208 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1206 } else { 1209 } else {
1207 //qDebug("days %d %s",endX , currentDate.toString().latin1()); 1210 //qDebug("days %d %s",endX , currentDate.toString().latin1());
1208 QDate dateit = currentDate.addDays( -endX ); 1211 QDate dateit = currentDate.addDays( -endX );
1209 if ( event->recursOn( dateit ) ) { 1212 if ( event->recursOn( dateit ) ) {
1210 //qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() ); 1213 //qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() );
1211 if ( curCol-endX < 0 ) { 1214 if ( curCol-endX < 0 ) {
1212 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol); 1215 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol);
1213 } 1216 }
1214 } 1217 }
1215 } 1218 }
1216 } else { 1219 } else {
1217 mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol); 1220 mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol);
1218 } 1221 }
1219 1222
1220 } else { 1223 } else {
1221 if (beginX <= 0 && curCol == 0) { 1224 if (beginX <= 0 && curCol == 0) {
1222 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1225 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1223 } else if (beginX == curCol) { 1226 } else if (beginX == curCol) {
1224 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1227 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1225 } 1228 }
1226 } 1229 }
1227 } else if (event->isMultiDay()) { 1230 } else if (event->isMultiDay()) {
1228 if ( event->doesRecur () ) { 1231 if ( event->doesRecur () ) {
1229 QDate dateit = currentDate; 1232 QDate dateit = currentDate;
1230 int count = 0; 1233 int count = 0;
1231 int max = event->dtStart().daysTo( event->dtEnd() ) +2; 1234 int max = event->dtStart().daysTo( event->dtEnd() ) +2;
1232 while (! event->recursOn( dateit ) && count <= max ) { 1235 while (! event->recursOn( dateit ) && count <= max ) {
1233 ++count; 1236 ++count;
1234 dateit = dateit.addDays( -1 ); 1237 dateit = dateit.addDays( -1 );
1235 } 1238 }
1236 bool ok; 1239 bool ok;
1237 QDateTime nextOcstart = event->getNextOccurence( QDateTime(dateit) ,&ok ); 1240 QDateTime nextOcstart = event->getNextOccurence( QDateTime(dateit) ,&ok );
1238 if ( ok ) 1241 if ( ok )
1239 { 1242 {
1240 int secs = event->dtStart().secsTo( event->dtEnd() ); 1243 int secs = event->dtStart().secsTo( event->dtEnd() );
1241 QDateTime nextOcend =nextOcstart.addSecs( secs ); ; 1244 QDateTime nextOcend =nextOcstart.addSecs( secs ); ;
1242 beginX = currentDate.daysTo(nextOcstart.date()) + curCol; 1245 beginX = currentDate.daysTo(nextOcstart.date()) + curCol;
1243 endX = currentDate.daysTo(nextOcend.date()) + curCol; 1246 endX = currentDate.daysTo(nextOcend.date()) + curCol;
1244 1247
1245 } 1248 }
1246 } 1249 }
1247 int startY = mAgenda->timeToY(event->dtStart().time()); 1250 int startY = mAgenda->timeToY(event->dtStart().time());
1248 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1; 1251 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1;
1249 //qDebug("insert %d %d %d %d %d ",beginX,endX,startY,endY , curCol ); 1252 //qDebug("insert %d %d %d %d %d ",beginX,endX,startY,endY , curCol );
1250 if ((beginX <= 0 && curCol == 0) || beginX == curCol) { 1253 if ((beginX <= 0 && curCol == 0) || beginX == curCol) {
1251 //qDebug("insert!!! "); 1254 //qDebug("insert!!! ");
1252 mAgenda->insertMultiItem(event,currentDate,beginX,endX,startY,endY); 1255 mAgenda->insertMultiItem(event,currentDate,beginX,endX,startY,endY);
1253 } 1256 }
1254 if (beginX == curCol) { 1257 if (beginX == curCol) {
1255 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59)); 1258 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59));
1256 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1259 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1257 } else if (endX == curCol) { 1260 } else if (endX == curCol) {
1258 mMinY[curCol] = mAgenda->timeToY(QTime(0,0)); 1261 mMinY[curCol] = mAgenda->timeToY(QTime(0,0));
1259 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1262 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1260 } else { 1263 } else {
1261 mMinY[curCol] = mAgenda->timeToY(QTime(0,0)); 1264 mMinY[curCol] = mAgenda->timeToY(QTime(0,0));
1262 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59)); 1265 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59));
1263 } 1266 }
1264 } else { 1267 } else {
1265 int startY = mAgenda->timeToY(event->dtStart().time()); 1268 int startY = mAgenda->timeToY(event->dtStart().time());
1266 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1; 1269 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1;
1267 if (endY < startY) endY = startY; 1270 if (endY < startY) endY = startY;
1268 mAgenda->insertItem(event,currentDate,curCol,startY,endY); 1271 mAgenda->insertItem(event,currentDate,curCol,startY,endY);
1269 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1272 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1270 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1273 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1271 } 1274 }
1272 } 1275 }
1273 // ---------- [display Todos -------------- 1276 // ---------- [display Todos --------------
1274 unsigned int numTodo; 1277 unsigned int numTodo;
1275 for (numTodo = 0; numTodo < todos.count(); ++numTodo) { 1278 for (numTodo = 0; numTodo < todos.count(); ++numTodo) {
1276 Todo *todo = todos.at(numTodo); 1279 Todo *todo = todos.at(numTodo);
1277 1280
1278 if ( ! todo->hasDueDate() && !todo->hasCompletedDate()) continue; // todo shall not be displayed if it has no date 1281 if ( ! todo->hasDueDate() && !todo->hasCompletedDate()) continue; // todo shall not be displayed if it has no date
1279 if ( todo->hasCompletedDate() && !KOPrefs::instance()->mShowCompletedTodoInAgenda ) continue; 1282 if ( todo->hasCompletedDate() && !KOPrefs::instance()->mShowCompletedTodoInAgenda ) continue;
1280 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1283 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1281 // Already completed items can be displayed on their original due date 1284 // Already completed items can be displayed on their original due date
1282 //if not KOPrefs::instance()->mShowTodoInAgenda, show overdue in agenda 1285 //if not KOPrefs::instance()->mShowTodoInAgenda, show overdue in agenda
1283 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < today) && KOPrefs::instance()->mShowTodoInAgenda; 1286 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < today) && KOPrefs::instance()->mShowTodoInAgenda;
1284 bool fillIn = false; 1287 bool fillIn = false;
1285 if ( todo->hasCompletedDate() && todo->completed().date() == currentDate ) 1288 if ( todo->hasCompletedDate() && todo->completed().date() == currentDate )
1286 fillIn = true; 1289 fillIn = true;
1287 if ( ! fillIn && !todo->hasCompletedDate() ) 1290 if ( ! fillIn && !todo->hasCompletedDate() )
1288 fillIn = ((todo->dtDue().date() == currentDate) && !overdue) || ((currentDate == today) && overdue); 1291 fillIn = ((todo->dtDue().date() == currentDate) && !overdue) || ((currentDate == today) && overdue);
1289 if ( fillIn ) { 1292 if ( fillIn ) {
1290 if ( (todo->doesFloat() || overdue ) && !todo->hasCompletedDate() ) { // Todo has no due-time set or is already overdue 1293 if ( (todo->doesFloat() || overdue ) && !todo->hasCompletedDate() ) { // Todo has no due-time set or is already overdue
1291 if ( KOPrefs::instance()->mShowTodoInAgenda ) 1294 if ( KOPrefs::instance()->mShowTodoInAgenda )
1292 mAllDayAgenda->insertAllDayItem(todo, currentDate, curCol, curCol); 1295 mAllDayAgenda->insertAllDayItem(todo, currentDate, curCol, curCol);
1293 } 1296 }
1294 else { 1297 else {
1295 QDateTime dt; 1298 QDateTime dt;
1296 if ( todo->hasCompletedDate() ) 1299 if ( todo->hasCompletedDate() )
1297 dt = todo->completed(); 1300 dt = todo->completed();
1298 else 1301 else
1299 dt = todo->dtDue();; 1302 dt = todo->dtDue();;
1300 1303
1301 1304
1302 int endY = mAgenda->timeToY(dt.time()) - 1; 1305 int endY = mAgenda->timeToY(dt.time()) - 1;
1303 int hi = (18/KOPrefs::instance()->mHourSize); 1306 int hi = (18/KOPrefs::instance()->mHourSize);
1304 //qDebug("hei %d ",KOPrefs::instance()->mHourSize); 1307 //qDebug("hei %d ",KOPrefs::instance()->mHourSize);
1305 int startY = endY -hi; 1308 int startY = endY -hi;
1306 1309
1307 mAgenda->insertItem(todo,currentDate,curCol,startY,endY); 1310 mAgenda->insertItem(todo,currentDate,curCol,startY,endY);
1308 1311
1309 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1312 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1310 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1313 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1311 } 1314 }
1312 } 1315 }
1313 } 1316 }
1314 // ---------- display Todos] -------------- 1317 // ---------- display Todos] --------------
1315 1318
1316 ++curCol; 1319 ++curCol;
1317 } 1320 }
1318 mAgenda->hideUnused(); 1321 mAgenda->hideUnused();
1319 mAllDayAgenda->hideUnused(); 1322 mAllDayAgenda->hideUnused();
1320 mAgenda->checkScrollBoundaries(); 1323 mAgenda->checkScrollBoundaries();
1321 deleteSelectedDateTime(); 1324 deleteSelectedDateTime();
1322 createDayLabels(); 1325 createDayLabels();
1323 emit incidenceSelected( 0 ); 1326 emit incidenceSelected( 0 );
1324 1327
1325 if ( globalFlagBlockAgenda == 2 ) { 1328 if ( globalFlagBlockAgenda == 2 ) {
1326 if ( KOPrefs::instance()->mSetTimeToDayStartAt ) 1329 if ( KOPrefs::instance()->mSetTimeToDayStartAt )
1327 setStartHour( KOPrefs::instance()->mDayBegins ); 1330 setStartHour( KOPrefs::instance()->mDayBegins );
1328 else if ( KOPrefs::instance()->mCenterOnCurrentTime ) 1331 else if ( KOPrefs::instance()->mCenterOnCurrentTime )
1329 setStartHour( QTime::currentTime ().hour() ); 1332 setStartHour( QTime::currentTime ().hour() );
1330 } 1333 }
1331 qApp->processEvents(); 1334 qApp->processEvents();
1332 globalFlagBlockAgenda = 0; 1335 globalFlagBlockAgenda = 0;
1333 mAllDayAgenda->drawContentsToPainter(); 1336 mAllDayAgenda->drawContentsToPainter();
1334 mAgenda->drawContentsToPainter(); 1337 mAgenda->drawContentsToPainter();
1335 repaintAgenda(); 1338 repaintAgenda();
1336 startIdleTimeout(); 1339 startIdleTimeout();
1337 onlyOne = false; 1340 onlyOne = false;
1338} 1341}
1339void KOAgendaView::repaintAgenda() 1342void KOAgendaView::repaintAgenda()
1340{ 1343{
1341 mAgenda->viewport()->repaint( false ); 1344 mAgenda->viewport()->repaint( false );
1342 mAllDayAgenda->viewport()->repaint( false ); 1345 mAllDayAgenda->viewport()->repaint( false );
1343 mAgenda->finishUpdate(); 1346 mAgenda->finishUpdate();
1344 mAllDayAgenda->finishUpdate(); 1347 mAllDayAgenda->finishUpdate();
1345} 1348}
1346 1349
1347 1350
1348void KOAgendaView::clearView() 1351void KOAgendaView::clearView()
1349{ 1352{
1350 mAllDayAgenda->clear(); 1353 mAllDayAgenda->clear();
1351 mAgenda->clear(); 1354 mAgenda->clear();
1352} 1355}
1353void KOAgendaView::clearList() 1356void KOAgendaView::clearList()
1354{ 1357{
1355 clearView(); 1358 clearView();
1356 mAllDayAgenda->hideUnused(); 1359 mAllDayAgenda->hideUnused();
1357 mAgenda->hideUnused(); 1360 mAgenda->hideUnused();
1358} 1361}
1359 1362
1360void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1363void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1361 const QDate &td) 1364 const QDate &td)
1362{ 1365{
1363#ifndef KORG_NOPRINTER 1366#ifndef KORG_NOPRINTER
1364 if (fd == td) 1367 if (fd == td)
1365 calPrinter->preview(CalPrinter::Day, fd, td); 1368 calPrinter->preview(CalPrinter::Day, fd, td);
1366 else 1369 else
1367 calPrinter->preview(CalPrinter::Week, fd, td); 1370 calPrinter->preview(CalPrinter::Week, fd, td);
1368#endif 1371#endif
1369} 1372}
1370 1373
1371// void KOAgendaView::updateMovedTodo() 1374// void KOAgendaView::updateMovedTodo()
1372// { 1375// {
1373// // updateConfig(); 1376// // updateConfig();
1374// // emit updateTodoViews(); 1377// // emit updateTodoViews();
1375// } 1378// }
1376 1379
1377void KOAgendaView::slotShowDateView( int mode , int d ) 1380void KOAgendaView::slotShowDateView( int mode , int d )
1378{ 1381{
1379 if ( d >= mSelectedDates.count() ) { 1382 if ( d >= mSelectedDates.count() ) {
1380 qDebug("KOAgendaView::slotShowDateView datecounterror %d %d ", d, mSelectedDates.count() ); 1383 qDebug("KOAgendaView::slotShowDateView datecounterror %d %d ", d, mSelectedDates.count() );
1381 1384
1382 } else { 1385 } else {
1383 QDate day = mSelectedDates[d]; 1386 QDate day = mSelectedDates[d];
1384 emit showDateView(mode , day ); 1387 emit showDateView(mode , day );
1385 } 1388 }
1386 1389
1387} 1390}
1388void KOAgendaView::newEvent(int gx, int gy) 1391void KOAgendaView::newEvent(int gx, int gy)
1389{ 1392{
1390 if (!mSelectedDates.count()) return; 1393 if (!mSelectedDates.count()) return;
1391 1394
1392 QDate day = mSelectedDates[gx]; 1395 QDate day = mSelectedDates[gx];
1393 1396
1394 QTime time = mAgenda->gyToTime(gy); 1397 QTime time = mAgenda->gyToTime(gy);
1395 QDateTime dt(day,time); 1398 QDateTime dt(day,time);
1396 // if ( dt < QDateTime::currentDateTime () ) 1399 // if ( dt < QDateTime::currentDateTime () )
1397 // dt = QDateTime::currentDateTime ().addSecs( 3600 ); 1400 // dt = QDateTime::currentDateTime ().addSecs( 3600 );
1398 emit newEventSignal(dt); 1401 emit newEventSignal(dt);
1399} 1402}
1400 1403
1401void KOAgendaView::newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd) 1404void KOAgendaView::newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd)
1402{ 1405{
1403 if (!mSelectedDates.count()) return; 1406 if (!mSelectedDates.count()) return;
1404 1407
1405 QDate dayStart = mSelectedDates[gxStart]; 1408 QDate dayStart = mSelectedDates[gxStart];
1406 QDate dayEnd = mSelectedDates[gxEnd]; 1409 QDate dayEnd = mSelectedDates[gxEnd];
1407 1410
1408 QTime timeStart = mAgenda->gyToTime(gyStart); 1411 QTime timeStart = mAgenda->gyToTime(gyStart);
1409 QTime timeEnd = mAgenda->gyToTime( gyEnd + 1 ); 1412 QTime timeEnd = mAgenda->gyToTime( gyEnd + 1 );
1410 1413
1411 QDateTime dtStart(dayStart,timeStart); 1414 QDateTime dtStart(dayStart,timeStart);
1412 QDateTime dtEnd(dayEnd,timeEnd); 1415 QDateTime dtEnd(dayEnd,timeEnd);
1413 1416
1414 emit newEventSignal(dtStart,dtEnd); 1417 emit newEventSignal(dtStart,dtEnd);
1415} 1418}
1416 1419
1417void KOAgendaView::newEventAllDay(int gx, int ) 1420void KOAgendaView::newEventAllDay(int gx, int )
1418{ 1421{
1419 if (!mSelectedDates.count()) return; 1422 if (!mSelectedDates.count()) return;
1420 1423
1421 QDate day = mSelectedDates[gx]; 1424 QDate day = mSelectedDates[gx];
1422 1425
1423 emit newEventSignal(day); 1426 emit newEventSignal(day);
1424} 1427}
1425void KOAgendaView::newTodoAllDay(int gx, int ) 1428void KOAgendaView::newTodoAllDay(int gx, int )
1426{ 1429{
1427 if (!mSelectedDates.count()) return; 1430 if (!mSelectedDates.count()) return;
1428 1431
1429 QDateTime day (mSelectedDates[gx] ); 1432 QDateTime day (mSelectedDates[gx] );
1430 emit newTodoSignal(day, true); 1433 emit newTodoSignal(day, true);
1431} 1434}
1432void KOAgendaView::newTodo(int gx, int gy ) 1435void KOAgendaView::newTodo(int gx, int gy )
1433{ 1436{
1434 if (!mSelectedDates.count()) return; 1437 if (!mSelectedDates.count()) return;
1435 QDate dayStart = mSelectedDates[gx]; 1438 QDate dayStart = mSelectedDates[gx];
1436 QTime timeStart = mAgenda->gyToTime(gy); 1439 QTime timeStart = mAgenda->gyToTime(gy);
1437 QDateTime dt (dayStart,timeStart); 1440 QDateTime dt (dayStart,timeStart);
1438 emit newTodoSignal( dt, false ); 1441 emit newTodoSignal( dt, false );
1439} 1442}
1440 1443
1441void KOAgendaView::updateEventIndicatorTop(int newY) 1444void KOAgendaView::updateEventIndicatorTop(int newY)
1442{ 1445{
1443 uint i; 1446 uint i;
1444 for(i=0;i<mMinY.size();++i) { 1447 for(i=0;i<mMinY.size();++i) {
1445 if (newY >= mMinY.at(i)) mEventIndicatorTop->enableColumn(i,true); 1448 if (newY >= mMinY.at(i)) mEventIndicatorTop->enableColumn(i,true);
1446 else mEventIndicatorTop->enableColumn(i,false); 1449 else mEventIndicatorTop->enableColumn(i,false);
1447 } 1450 }
1448 1451
1449 mEventIndicatorTop->update(); 1452 mEventIndicatorTop->update();
1450} 1453}
1451 1454
1452void KOAgendaView::updateEventIndicatorBottom(int newY) 1455void KOAgendaView::updateEventIndicatorBottom(int newY)
1453{ 1456{
1454 uint i; 1457 uint i;
1455 for(i=0;i<mMaxY.size();++i) { 1458 for(i=0;i<mMaxY.size();++i) {
1456 if (newY <= mMaxY.at(i)) mEventIndicatorBottom->enableColumn(i,true); 1459 if (newY <= mMaxY.at(i)) mEventIndicatorBottom->enableColumn(i,true);
1457 else mEventIndicatorBottom->enableColumn(i,false); 1460 else mEventIndicatorBottom->enableColumn(i,false);
1458 } 1461 }
1459 1462
1460 mEventIndicatorBottom->update(); 1463 mEventIndicatorBottom->update();
1461} 1464}
1462 1465
1463void KOAgendaView::startDrag(Event *event) 1466void KOAgendaView::startDrag(Event *event)
1464{ 1467{
1465#ifndef KORG_NODND 1468#ifndef KORG_NODND
1466 DndFactory factory( calendar() ); 1469 DndFactory factory( calendar() );
1467 ICalDrag *vd = factory.createDrag(event,this); 1470 ICalDrag *vd = factory.createDrag(event,this);
1468 if (vd->drag()) { 1471 if (vd->drag()) {
1469 kdDebug() << "KOAgendaView::startDrag(): Delete drag source" << endl; 1472 kdDebug() << "KOAgendaView::startDrag(): Delete drag source" << endl;
1470 } 1473 }
1471#endif 1474#endif
1472} 1475}
1473 1476
1474void KOAgendaView::readSettings() 1477void KOAgendaView::readSettings()
1475{ 1478{
1476 readSettings(KOGlobals::config()); 1479 readSettings(KOGlobals::config());
1477} 1480}
1478 1481
1479void KOAgendaView::readSettings(KConfig *config) 1482void KOAgendaView::readSettings(KConfig *config)
1480{ 1483{
1481 // kdDebug() << "KOAgendaView::readSettings()" << endl; 1484 // kdDebug() << "KOAgendaView::readSettings()" << endl;
1482 1485
1483 config->setGroup("Views"); 1486 config->setGroup("Views");
1484 1487
1485 //#ifndef KORG_NOSPLITTER 1488 //#ifndef KORG_NOSPLITTER
1486 QValueList<int> sizes = config->readIntListEntry("Separator AgendaView"); 1489 QValueList<int> sizes = config->readIntListEntry("Separator AgendaView");
1487 if (sizes.count() == 2) { 1490 if (sizes.count() == 2) {
1488 if ( sizes[0] < 20 ) { 1491 if ( sizes[0] < 20 ) {
1489 sizes[1] = sizes[1] +20 - sizes[0]; 1492 sizes[1] = sizes[1] +20 - sizes[0];
1490 sizes[0] = 20; 1493 sizes[0] = 20;
1491 } 1494 }
1492 mSplitterAgenda->setSizes(sizes); 1495 mSplitterAgenda->setSizes(sizes);
1493 // qDebug("read %d %d ",sizes[0],sizes[1] ); 1496 // qDebug("read %d %d ",sizes[0],sizes[1] );
1494 } 1497 }
1495 //#endif 1498 //#endif
1496 1499
1497 // updateConfig(); 1500 // updateConfig();
1498} 1501}
1499 1502
1500void KOAgendaView::writeSettings(KConfig *config) 1503void KOAgendaView::writeSettings(KConfig *config)
1501{ 1504{
1502 // kdDebug() << "KOAgendaView::writeSettings()" << endl; 1505 // kdDebug() << "KOAgendaView::writeSettings()" << endl;
1503 1506
1504 config->setGroup("Views"); 1507 config->setGroup("Views");
1505 1508
1506 //#ifndef KORG_NOSPLITTER 1509 //#ifndef KORG_NOSPLITTER
1507 QValueList<int> list = mSplitterAgenda->sizes(); 1510 QValueList<int> list = mSplitterAgenda->sizes();
1508 config->writeEntry("Separator AgendaView",list); 1511 config->writeEntry("Separator AgendaView",list);
1509 //qDebug("write %d %d ", list[0],list[1] ); 1512 //qDebug("write %d %d ", list[0],list[1] );
1510 //#endif 1513 //#endif
1511} 1514}
1512 1515
1513void KOAgendaView::setHolidayMasks() 1516void KOAgendaView::setHolidayMasks()
1514{ 1517{
1515 mHolidayMask.resize(mSelectedDates.count()); 1518 mHolidayMask.resize(mSelectedDates.count());
1516 1519
1517 uint i; 1520 uint i;
1518 for(i=0;i<mSelectedDates.count();++i) { 1521 for(i=0;i<mSelectedDates.count();++i) {
1519 QDate date = mSelectedDates[i]; 1522 QDate date = mSelectedDates[i];
1520 bool showSaturday = KOPrefs::instance()->mExcludeSaturdays && (date.dayOfWeek() == 6); 1523 bool showSaturday = KOPrefs::instance()->mExcludeSaturdays && (date.dayOfWeek() == 6);
1521 bool showSunday = KOPrefs::instance()->mExcludeHolidays && (date.dayOfWeek() == 7); 1524 bool showSunday = KOPrefs::instance()->mExcludeHolidays && (date.dayOfWeek() == 7);
1522 bool showHoliday = false; 1525 bool showHoliday = false;
1523 if ( KOPrefs::instance()->mExcludeHolidays ) { 1526 if ( KOPrefs::instance()->mExcludeHolidays ) {
1524 QPtrList<Event> events = calendar()->events( date, true ); 1527 QPtrList<Event> events = calendar()->events( date, true );
1525 Event *event; 1528 Event *event;
1526 for( event = events.first(); event; event = events.next() ) { 1529 for( event = events.first(); event; event = events.next() ) {
1527 if ( event->isHoliday()) { 1530 if ( event->isHoliday()) {
1528 showHoliday = true; 1531 showHoliday = true;
1529 break; 1532 break;
1530 } 1533 }
1531 } 1534 }
1532 1535
1533 } 1536 }
1534 1537
1535#ifndef KORG_NOPLUGINS 1538#ifndef KORG_NOPLUGINS
1536 bool showHoliday = KOPrefs::instance()->mExcludeHolidays && 1539 bool showHoliday = KOPrefs::instance()->mExcludeHolidays &&
1537 !KOCore::self()->holiday(date).isEmpty(); 1540 !KOCore::self()->holiday(date).isEmpty();
1538#endif 1541#endif
1539 bool showDay = showSaturday || showSunday || showHoliday; 1542 bool showDay = showSaturday || showSunday || showHoliday;
1540 1543
1541 if (showDay) { 1544 if (showDay) {
1542 mHolidayMask.at(i) = true; 1545 mHolidayMask.at(i) = true;
1543 } else { 1546 } else {
1544 mHolidayMask.at(i) = false; 1547 mHolidayMask.at(i) = false;
1545 } 1548 }
1546 } 1549 }
1547 1550
1548 mAgenda->setHolidayMask(&mHolidayMask); 1551 mAgenda->setHolidayMask(&mHolidayMask);
1549 mAllDayAgenda->setHolidayMask(&mHolidayMask); 1552 mAllDayAgenda->setHolidayMask(&mHolidayMask);
1550} 1553}
1551 1554
1552void KOAgendaView::setContentsPos(int y) 1555void KOAgendaView::setContentsPos(int y)
1553{ 1556{
1554 mAgenda->setContentsPos(0,y); 1557 mAgenda->setContentsPos(0,y);
1555} 1558}
1556 1559
1557void KOAgendaView::clearSelection() 1560void KOAgendaView::clearSelection()
1558{ 1561{
1559 mAgenda->deselectItem(); 1562 mAgenda->deselectItem();
1560 mAllDayAgenda->deselectItem(); 1563 mAllDayAgenda->deselectItem();
1561} 1564}
1562 1565
1563void KOAgendaView::newTimeSpanSelectedAllDay(int gxStart, int gyStart, 1566void KOAgendaView::newTimeSpanSelectedAllDay(int gxStart, int gyStart,
1564 int gxEnd, int gyEnd) 1567 int gxEnd, int gyEnd)
1565{ 1568{
1566 mTimeSpanInAllDay = true; 1569 mTimeSpanInAllDay = true;
1567 newTimeSpanSelected(gxStart,gyStart,gxEnd,gyEnd); 1570 newTimeSpanSelected(gxStart,gyStart,gxEnd,gyEnd);
1568} 1571}
1569 1572
1570 1573
1571 1574
1572 1575
1573void KOAgendaView::newTimeSpanSelected(int gxStart, int gyStart, 1576void KOAgendaView::newTimeSpanSelected(int gxStart, int gyStart,
1574 int gxEnd, int gyEnd) 1577 int gxEnd, int gyEnd)
1575{ 1578{
1576 if (!mSelectedDates.count()) return; 1579 if (!mSelectedDates.count()) return;
1577 1580
1578 QDate dayStart = mSelectedDates[gxStart]; 1581 QDate dayStart = mSelectedDates[gxStart];
1579 QDate dayEnd = mSelectedDates[gxEnd]; 1582 QDate dayEnd = mSelectedDates[gxEnd];
1580 1583
1581 QTime timeStart = mAgenda->gyToTime(gyStart); 1584 QTime timeStart = mAgenda->gyToTime(gyStart);
1582 QTime timeEnd = mAgenda->gyToTime( gyEnd + 1 ); 1585 QTime timeEnd = mAgenda->gyToTime( gyEnd + 1 );
1583 1586
1584 QDateTime dtStart(dayStart,timeStart); 1587 QDateTime dtStart(dayStart,timeStart);
1585 QDateTime dtEnd(dayEnd,timeEnd); 1588 QDateTime dtEnd(dayEnd,timeEnd);
1586 1589
1587 mTimeSpanBegin = dtStart; 1590 mTimeSpanBegin = dtStart;
1588 mTimeSpanEnd = dtEnd; 1591 mTimeSpanEnd = dtEnd;
1589 1592
1590} 1593}
1591 1594
1592void KOAgendaView::deleteSelectedDateTime() 1595void KOAgendaView::deleteSelectedDateTime()
1593{ 1596{
1594 mTimeSpanBegin.setDate(QDate()); 1597 mTimeSpanBegin.setDate(QDate());
1595 mTimeSpanEnd.setDate(QDate()); 1598 mTimeSpanEnd.setDate(QDate());
1596 mTimeSpanInAllDay = false; 1599 mTimeSpanInAllDay = false;
1597} 1600}
1598 1601
1599void KOAgendaView::keyPressEvent ( QKeyEvent * e ) 1602void KOAgendaView::keyPressEvent ( QKeyEvent * e )
1600{ 1603{
1601 e->ignore(); 1604 e->ignore();
1602} 1605}
1603 1606
1604void KOAgendaView::scrollOneHourUp() 1607void KOAgendaView::scrollOneHourUp()
1605{ 1608{
1606 1609
1607 mAgenda->scrollBy ( 0, -mAgenda->contentsHeight () / 24 ); 1610 mAgenda->scrollBy ( 0, -mAgenda->contentsHeight () / 24 );
1608} 1611}
1609void KOAgendaView::scrollOneHourDown() 1612void KOAgendaView::scrollOneHourDown()
1610{ 1613{
1611 mAgenda->scrollBy ( 0, mAgenda->contentsHeight () / 24 ); 1614 mAgenda->scrollBy ( 0, mAgenda->contentsHeight () / 24 );
1612} 1615}
1613 1616
1614void KOAgendaView::setStartHour( int h ) 1617void KOAgendaView::setStartHour( int h )
1615{ 1618{
1616 mAgenda->setStartHour( h ); 1619 mAgenda->setStartHour( h );
1617 1620
1618} 1621}
1619void KOAgendaView::setInitStartHour() 1622void KOAgendaView::setInitStartHour()
1620{ 1623{
1621 1624
1622 if ( KOPrefs::instance()->mCenterOnCurrentTime ) 1625 if ( KOPrefs::instance()->mCenterOnCurrentTime )
1623 setStartHour( QTime::currentTime ().hour() ); 1626 setStartHour( QTime::currentTime ().hour() );
1624 else 1627 else
1625 setStartHour( KOPrefs::instance()->mDayBegins ); 1628 setStartHour( KOPrefs::instance()->mDayBegins );
1626 1629
1627} 1630}
1628 1631
1629 1632
1630void KOAgendaView::updateTodo( Todo * t, int ) 1633void KOAgendaView::updateTodo( Todo * t, int )
1631{ 1634{
1632 if ( !isVisible() ) 1635 if ( !isVisible() )
1633 return; 1636 return;
1634 bool remove = false; 1637 bool remove = false;
1635 bool removeAD = false; 1638 bool removeAD = false;
1636 QDate da; 1639 QDate da;
1637 if ( t->hasCompletedDate() ) 1640 if ( t->hasCompletedDate() )
1638 da = t->completed().date(); 1641 da = t->completed().date();
1639 else 1642 else
1640 da = t->dtDue().date(); 1643 da = t->dtDue().date();
1641 if ( ! t->hasDueDate() && !t->hasCompletedDate() ) { 1644 if ( ! t->hasDueDate() && !t->hasCompletedDate() ) {
1642 remove = true; 1645 remove = true;
1643 removeAD = true; 1646 removeAD = true;
1644 } 1647 }
1645 else { 1648 else {
1646 bool overdue = (!t->isCompleted()) && (t->dtDue() < QDate::currentDate()) && KOPrefs::instance()->mShowTodoInAgenda ; 1649 bool overdue = (!t->isCompleted()) && (t->dtDue() < QDate::currentDate()) && KOPrefs::instance()->mShowTodoInAgenda ;
1647 if ( overdue && 1650 if ( overdue &&
1648 QDate::currentDate() >= mSelectedDates.first() && 1651 QDate::currentDate() >= mSelectedDates.first() &&
1649 QDate::currentDate() <= mSelectedDates.last()) { 1652 QDate::currentDate() <= mSelectedDates.last()) {
1650 removeAD = false; 1653 removeAD = false;
1651 remove = true; 1654 remove = true;
1652 } 1655 }
1653 else { 1656 else {
1654 1657
1655 if ( da < mSelectedDates.first() || 1658 if ( da < mSelectedDates.first() ||
1656 da > mSelectedDates.last() ) { 1659 da > mSelectedDates.last() ) {
1657 remove = true; 1660 remove = true;
1658 removeAD = true; 1661 removeAD = true;
1659 } else { 1662 } else {
1660 remove = t->doesFloat() && !t->hasCompletedDate(); 1663 remove = t->doesFloat() && !t->hasCompletedDate();
1661 removeAD = !remove; 1664 removeAD = !remove;
1662 } 1665 }
1663 } 1666 }
1664 } 1667 }
1665 int days = mSelectedDates.first().daysTo( da ); 1668 int days = mSelectedDates.first().daysTo( da );
1666 //qDebug("daysto %d %d %d", days, remove,removeAD ); 1669 //qDebug("daysto %d %d %d", days, remove,removeAD );
1667 mAgenda->updateTodo( t , days, remove); 1670 mAgenda->updateTodo( t , days, remove);
1668 if ( KOPrefs::instance()->mShowTodoInAgenda ) 1671 if ( KOPrefs::instance()->mShowTodoInAgenda )
1669 mAllDayAgenda->updateTodo( t , days, removeAD); 1672 mAllDayAgenda->updateTodo( t , days, removeAD);
1670 //qDebug("KOAgendaView::updateTodo( Todo *, int ) "); 1673 //qDebug("KOAgendaView::updateTodo( Todo *, int ) ");
1671 1674
1672} 1675}
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index cbf6096..e960424 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,2572 +1,2580 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "kojournalview.h" 50#include "kojournalview.h"
51#include "koagenda.h" 51#include "koagenda.h"
52#include "kodialogmanager.h" 52#include "kodialogmanager.h"
53#include "kdialogbase.h" 53#include "kdialogbase.h"
54#include "kapplication.h" 54#include "kapplication.h"
55#include "kofilterview.h" 55#include "kofilterview.h"
56#include "kstandarddirs.h" 56#include "kstandarddirs.h"
57#include "koprefs.h" 57#include "koprefs.h"
58#include "kfiledialog.h" 58#include "kfiledialog.h"
59#include "koglobals.h" 59#include "koglobals.h"
60#include "kglobal.h" 60#include "kglobal.h"
61#include "ktoolbar.h" 61#include "ktoolbar.h"
62#include "klocale.h" 62#include "klocale.h"
63#include "kconfig.h" 63#include "kconfig.h"
64#include "externalapphandler.h" 64#include "externalapphandler.h"
65#include <kglobalsettings.h> 65#include <kglobalsettings.h>
66 66
67using namespace KCal; 67using namespace KCal;
68#ifndef _WIN32_ 68#ifndef _WIN32_
69#include <unistd.h> 69#include <unistd.h>
70#else 70#else
71#ifdef _OL_IMPORT_ 71#ifdef _OL_IMPORT_
72#include "koimportoldialog.h" 72#include "koimportoldialog.h"
73#endif 73#endif
74#endif 74#endif
75#include "mainwindow.h" 75#include "mainwindow.h"
76 76
77 77
78class KOex2phonePrefs : public QDialog 78class KOex2phonePrefs : public QDialog
79{ 79{
80 public: 80 public:
81 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 81 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
82 QDialog( parent, name, true ) 82 QDialog( parent, name, true )
83 { 83 {
84 setCaption( i18n("Export to phone options") ); 84 setCaption( i18n("Export to phone options") );
85 QVBoxLayout* lay = new QVBoxLayout( this ); 85 QVBoxLayout* lay = new QVBoxLayout( this );
86 lay->setSpacing( 3 ); 86 lay->setSpacing( 3 );
87 lay->setMargin( 3 ); 87 lay->setMargin( 3 );
88 QLabel *lab; 88 QLabel *lab;
89 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 89 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
90 lab->setAlignment (AlignHCenter ); 90 lab->setAlignment (AlignHCenter );
91 QHBox* temphb; 91 QHBox* temphb;
92 temphb = new QHBox( this ); 92 temphb = new QHBox( this );
93 new QLabel( i18n("I/O device: "), temphb ); 93 new QLabel( i18n("I/O device: "), temphb );
94 mPhoneDevice = new QLineEdit( temphb); 94 mPhoneDevice = new QLineEdit( temphb);
95 lay->addWidget( temphb ); 95 lay->addWidget( temphb );
96 temphb = new QHBox( this ); 96 temphb = new QHBox( this );
97 new QLabel( i18n("Connection: "), temphb ); 97 new QLabel( i18n("Connection: "), temphb );
98 mPhoneConnection = new QLineEdit( temphb); 98 mPhoneConnection = new QLineEdit( temphb);
99 lay->addWidget( temphb ); 99 lay->addWidget( temphb );
100 temphb = new QHBox( this ); 100 temphb = new QHBox( this );
101 new QLabel( i18n("Model(opt.): "), temphb ); 101 new QLabel( i18n("Model(opt.): "), temphb );
102 mPhoneModel = new QLineEdit( temphb); 102 mPhoneModel = new QLineEdit( temphb);
103 lay->addWidget( temphb ); 103 lay->addWidget( temphb );
104 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 104 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
105 mWriteBackFuture->setChecked( true ); 105 mWriteBackFuture->setChecked( true );
106 lay->addWidget( mWriteBackFuture ); 106 lay->addWidget( mWriteBackFuture );
107 temphb = new QHBox( this ); 107 temphb = new QHBox( this );
108 new QLabel( i18n("Max. weeks in future: ") , temphb ); 108 new QLabel( i18n("Max. weeks in future: ") , temphb );
109 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 109 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
110 mWriteBackFutureWeeks->setValue( 8 ); 110 mWriteBackFutureWeeks->setValue( 8 );
111 lay->addWidget( temphb ); 111 lay->addWidget( temphb );
112 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 112 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
113 lab->setAlignment (AlignHCenter ); 113 lab->setAlignment (AlignHCenter );
114 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 114 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
115 lay->addWidget( ok ); 115 lay->addWidget( ok );
116 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 116 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
117 lay->addWidget( cancel ); 117 lay->addWidget( cancel );
118 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 118 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
119 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 119 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
120 resize( 220, 240 ); 120 resize( 220, 240 );
121 qApp->processEvents(); 121 qApp->processEvents();
122 int dw = QApplication::desktop()->width(); 122 int dw = QApplication::desktop()->width();
123 int dh = QApplication::desktop()->height(); 123 int dh = QApplication::desktop()->height();
124 move( (dw-width())/2, (dh - height() )/2 ); 124 move( (dw-width())/2, (dh - height() )/2 );
125 } 125 }
126 126
127public: 127public:
128 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 128 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
129 QCheckBox* mWriteBackFuture; 129 QCheckBox* mWriteBackFuture;
130 QSpinBox* mWriteBackFutureWeeks; 130 QSpinBox* mWriteBackFutureWeeks;
131}; 131};
132 132
133QPixmap* sgListViewCompletedPix[6]; 133QPixmap* sgListViewCompletedPix[6];
134 134
135 135
136int globalFlagBlockStartup; 136int globalFlagBlockStartup;
137MainWindow::MainWindow( QWidget *parent, const char *name ) : 137MainWindow::MainWindow( QWidget *parent, const char *name ) :
138 QMainWindow( parent, name ) 138 QMainWindow( parent, name )
139{ 139{
140 sgListViewCompletedPix[5] = &listviewPix; 140 sgListViewCompletedPix[5] = &listviewPix;
141 sgListViewCompletedPix[0] = &listviewPix0; 141 sgListViewCompletedPix[0] = &listviewPix0;
142 sgListViewCompletedPix[1] = &listviewPix20; 142 sgListViewCompletedPix[1] = &listviewPix20;
143 sgListViewCompletedPix[2] = &listviewPix40; 143 sgListViewCompletedPix[2] = &listviewPix40;
144 sgListViewCompletedPix[3] = &listviewPix60; 144 sgListViewCompletedPix[3] = &listviewPix60;
145 sgListViewCompletedPix[4] = &listviewPix80; 145 sgListViewCompletedPix[4] = &listviewPix80;
146 if ( sgListViewCompletedPix[5]->height() < 5 ) { 146 if ( sgListViewCompletedPix[5]->height() < 5 ) {
147 //int size = 12; 147 //int size = 12;
148 sgListViewCompletedPix[5]->resize( 11, 11 ); 148 sgListViewCompletedPix[5]->resize( 11, 11 );
149 sgListViewCompletedPix[5]->fill( Qt::white ); 149 sgListViewCompletedPix[5]->fill( Qt::white );
150 QPainter p ( sgListViewCompletedPix[5] ); 150 QPainter p ( sgListViewCompletedPix[5] );
151 p.drawRect( 0,0,11,11); 151 p.drawRect( 0,0,11,11);
152 p.drawLine ( 2, 5, 4 , 7 ) ; 152 p.drawLine ( 2, 5, 4 , 7 ) ;
153 p.drawLine ( 4 , 7 , 8, 3) ; 153 p.drawLine ( 4 , 7 , 8, 3) ;
154 int iii = 0; 154 int iii = 0;
155 for ( iii = 0; iii < 5; ++iii ) { 155 for ( iii = 0; iii < 5; ++iii ) {
156 sgListViewCompletedPix[iii]->resize( 11, 11 ); 156 sgListViewCompletedPix[iii]->resize( 11, 11 );
157 sgListViewCompletedPix[iii]->fill( Qt::white ); 157 sgListViewCompletedPix[iii]->fill( Qt::white );
158 QPainter p ( sgListViewCompletedPix[iii] ); 158 QPainter p ( sgListViewCompletedPix[iii] );
159 p.drawRect( 0,0,11,11); 159 p.drawRect( 0,0,11,11);
160 if ( iii ) 160 if ( iii )
161 p.fillRect( 1,1,iii*2,9,Qt::gray ); 161 p.fillRect( 1,1,iii*2,9,Qt::gray );
162 } 162 }
163 } 163 }
164 mClosed = false; 164 mClosed = false;
165 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 165 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
166 QString confFile = locateLocal("config","korganizerrc"); 166 QString confFile = locateLocal("config","korganizerrc");
167 QFileInfo finf ( confFile ); 167 QFileInfo finf ( confFile );
168 bool showWarning = !finf.exists(); 168 bool showWarning = !finf.exists();
169 setIcon(SmallIcon( "ko24" ) ); 169 setIcon(SmallIcon( "ko24" ) );
170 mBlockAtStartup = true; 170 mBlockAtStartup = true;
171 mFlagKeyPressed = false; 171 mFlagKeyPressed = false;
172 setCaption("KO/Pi"); 172 setCaption("KO/Pi");
173 KOPrefs *p = KOPrefs::instance(); 173 KOPrefs *p = KOPrefs::instance();
174 //KPimGlobalPrefs::instance()->setGlobalConfig(); 174 //KPimGlobalPrefs::instance()->setGlobalConfig();
175 p->mCurrentDisplayedView = 0; 175 p->mCurrentDisplayedView = 0;
176 if ( p->mHourSize > 22 ) 176 if ( p->mHourSize > 22 )
177 p->mHourSize = 22; 177 p->mHourSize = 22;
178 QMainWindow::ToolBarDock tbd; 178 QMainWindow::ToolBarDock tbd;
179 if ( p->mToolBarHor ) { 179 if ( p->mToolBarHor ) {
180 if ( p->mToolBarUp ) 180 if ( p->mToolBarUp )
181 tbd = Bottom; 181 tbd = Bottom;
182 else 182 else
183 tbd = Top; 183 tbd = Top;
184 } 184 }
185 else { 185 else {
186 if ( p->mToolBarUp ) 186 if ( p->mToolBarUp )
187 tbd = Right; 187 tbd = Right;
188 else 188 else
189 tbd = Left; 189 tbd = Left;
190 } 190 }
191 if ( KOPrefs::instance()->mUseAppColors ) 191 if ( KOPrefs::instance()->mUseAppColors )
192 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 192 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
193 globalFlagBlockStartup = 1; 193 globalFlagBlockStartup = 1;
194 iconToolBar = new QPEToolBar( this ); 194 iconToolBar = new QPEToolBar( this );
195 addToolBar (iconToolBar , tbd ); 195 addToolBar (iconToolBar , tbd );
196 196
197#ifdef DESKTOP_VERSION 197#ifdef DESKTOP_VERSION
198 if ( KOPrefs::instance()->mShowIconFilter ) 198 if ( KOPrefs::instance()->mShowIconFilter )
199#else 199#else
200 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) 200 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar )
201#endif 201#endif
202 202
203{ 203{
204 if ( p->mToolBarHorF ) { 204 if ( p->mToolBarHorF ) {
205 if ( p->mToolBarUpF ) 205 if ( p->mToolBarUpF )
206 tbd = Bottom; 206 tbd = Bottom;
207 else 207 else
208 tbd = Top; 208 tbd = Top;
209 } 209 }
210 else { 210 else {
211 if ( p->mToolBarUpF ) 211 if ( p->mToolBarUpF )
212 tbd = Right; 212 tbd = Right;
213 else 213 else
214 tbd = Left; 214 tbd = Left;
215 } 215 }
216 filterToolBar = new QPEToolBar ( this ); 216 filterToolBar = new QPEToolBar ( this );
217 filterMenubar = new QMenuBar( 0 ); 217 filterMenubar = new QMenuBar( 0 );
218 QFontMetrics fm ( filterMenubar->font() ); 218 QFontMetrics fm ( filterMenubar->font() );
219 219
220 filterPopupMenu = new QPopupMenu( this ); 220 filterPopupMenu = new QPopupMenu( this );
221 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); 221 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
222 QString addTest = "A"; 222 QString addTest = "A";
223 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) ); 223 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) );
224#ifdef DESKTOP_VERSION 224#ifdef DESKTOP_VERSION
225 addTest = "AAABBBCCCx"; 225 addTest = "AAABBBCCCx";
226#else 226#else
227 addTest = "AAx"; 227 addTest = "AAx";
228#endif 228#endif
229 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) ); 229 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) );
230 addToolBar (filterToolBar , tbd ); 230 addToolBar (filterToolBar , tbd );
231 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); 231 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
232 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); 232 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
233 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) 233 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar )
234 filterToolBar->hide(); 234 filterToolBar->hide();
235 } else { 235 } else {
236 filterToolBar = 0; 236 filterToolBar = 0;
237 filterMenubar = 0; 237 filterMenubar = 0;
238 filterPopupMenu = 0; 238 filterPopupMenu = 0;
239 } 239 }
240 if ( p->mShowIconOnetoolbar ) { 240 if ( p->mShowIconOnetoolbar ) {
241 viewToolBar = iconToolBar ; 241 viewToolBar = iconToolBar ;
242 navigatorToolBar = iconToolBar ; 242 navigatorToolBar = iconToolBar ;
243 } else { 243 } else {
244#ifndef DESKTOP_VERSION 244#ifndef DESKTOP_VERSION
245 setToolBarsMovable( false ); 245 setToolBarsMovable( false );
246#endif 246#endif
247 if ( p->mToolBarHorV ) { 247 if ( p->mToolBarHorV ) {
248 if ( p->mToolBarUpV ) 248 if ( p->mToolBarUpV )
249 tbd = Bottom; 249 tbd = Bottom;
250 else 250 else
251 tbd = Top; 251 tbd = Top;
252 } 252 }
253 else { 253 else {
254 if ( p->mToolBarUpV ) 254 if ( p->mToolBarUpV )
255 tbd = Right; 255 tbd = Right;
256 else 256 else
257 tbd = Left; 257 tbd = Left;
258 } 258 }
259 viewToolBar = new QPEToolBar( this ); 259 viewToolBar = new QPEToolBar( this );
260 addToolBar (viewToolBar , tbd ); 260 addToolBar (viewToolBar , tbd );
261 if ( p->mToolBarHorN ) { 261 if ( p->mToolBarHorN ) {
262 if ( p->mToolBarUpN ) 262 if ( p->mToolBarUpN )
263 tbd = Bottom; 263 tbd = Bottom;
264 else 264 else
265 tbd = Top; 265 tbd = Top;
266 } 266 }
267 else { 267 else {
268 if ( p->mToolBarUpN ) 268 if ( p->mToolBarUpN )
269 tbd = Right; 269 tbd = Right;
270 else 270 else
271 tbd = Left; 271 tbd = Left;
272 } 272 }
273 navigatorToolBar = new QPEToolBar( this ); 273 navigatorToolBar = new QPEToolBar( this );
274 addToolBar (navigatorToolBar , tbd ); 274 addToolBar (navigatorToolBar , tbd );
275 } 275 }
276 276
277 277
278 278
279 mCalendarModifiedFlag = false; 279 mCalendarModifiedFlag = false;
280 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 280 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
281 splash->setAlignment ( AlignCenter ); 281 splash->setAlignment ( AlignCenter );
282 setCentralWidget( splash ); 282 setCentralWidget( splash );
283#ifndef DESKTOP_VERSION 283#ifndef DESKTOP_VERSION
284 showMaximized(); 284 showMaximized();
285#endif 285#endif
286 286
287 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 287 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
288 setDefaultPreferences(); 288 setDefaultPreferences();
289 mCalendar = new CalendarLocal(); 289 mCalendar = new CalendarLocal();
290 mView = new CalendarView( mCalendar, this,"mCalendar " ); 290 mView = new CalendarView( mCalendar, this,"mCalendar " );
291 mView->hide(); 291 mView->hide();
292 //mView->resize(splash->size() ); 292 //mView->resize(splash->size() );
293 initActions(); 293 initActions();
294 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 294 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
295 mSyncManager->setBlockSave(false); 295 mSyncManager->setBlockSave(false);
296 mView->setSyncManager(mSyncManager); 296 mView->setSyncManager(mSyncManager);
297#ifndef DESKTOP_VERSION 297#ifndef DESKTOP_VERSION
298 iconToolBar->show(); 298 iconToolBar->show();
299 qApp->processEvents(); 299 qApp->processEvents();
300#endif 300#endif
301 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 301 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
302 int vh = height() ; 302 int vh = height() ;
303 int vw = width(); 303 int vw = width();
304 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 304 //qDebug("Toolbar hei %d ",iconToolBar->height() );
305 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 305 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
306 vh -= iconToolBar->height(); 306 vh -= iconToolBar->height();
307 } else { 307 } else {
308 vw -= iconToolBar->height(); 308 vw -= iconToolBar->height();
309 } 309 }
310 //mView->setMaximumSize( splash->size() ); 310 //mView->setMaximumSize( splash->size() );
311 //mView->resize( splash->size() ); 311 //mView->resize( splash->size() );
312 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 312 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
313 mView->readSettings(); 313 mView->readSettings();
314 bool newFile = false; 314 bool newFile = false;
315 if( !QFile::exists( defaultFileName() ) ) { 315 if( !QFile::exists( defaultFileName() ) ) {
316 QFileInfo finfo ( defaultFileName() ); 316 QFileInfo finfo ( defaultFileName() );
317 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 317 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
318 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; 318 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n";
319 finfo.setFile( oldFile ); 319 finfo.setFile( oldFile );
320 if (finfo.exists() ) { 320 if (finfo.exists() ) {
321 KMessageBox::information( this, message); 321 KMessageBox::information( this, message);
322 mView->openCalendar( oldFile ); 322 mView->openCalendar( oldFile );
323 qApp->processEvents(); 323 qApp->processEvents();
324 } else { 324 } else {
325 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 325 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
326 finfo.setFile( oldFile ); 326 finfo.setFile( oldFile );
327 if (finfo.exists() ) { 327 if (finfo.exists() ) {
328 KMessageBox::information( this, message); 328 KMessageBox::information( this, message);
329 mView->openCalendar( oldFile ); 329 mView->openCalendar( oldFile );
330 qApp->processEvents(); 330 qApp->processEvents();
331 } 331 }
332 } 332 }
333 mView->saveCalendar( defaultFileName() ); 333 mView->saveCalendar( defaultFileName() );
334 newFile = true; 334 newFile = true;
335 } 335 }
336 336
337 QTime neededSaveTime = QDateTime::currentDateTime().time(); 337 QTime neededSaveTime = QDateTime::currentDateTime().time();
338 mView->loadCalendars(); 338 mView->loadCalendars();
339 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 339 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
340 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 340 qDebug("KO: Calendar loading time: %d ms",msNeeded );
341 341
342 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 342 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
343 KOPrefs::instance()->setAllDefaults(); 343 KOPrefs::instance()->setAllDefaults();
344 } 344 }
345 processIncidenceSelection( 0 ); 345 processIncidenceSelection( 0 );
346 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 346 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
347 SLOT( processIncidenceSelection( Incidence * ) ) ); 347 SLOT( processIncidenceSelection( Incidence * ) ) );
348 connect( mView, SIGNAL( modifiedChanged( bool ) ), 348 connect( mView, SIGNAL( modifiedChanged( bool ) ),
349 SLOT( slotModifiedChanged( bool ) ) ); 349 SLOT( slotModifiedChanged( bool ) ) );
350 350
351 351
352 connect( mView, SIGNAL( tempDisableBR(bool) ), 352 connect( mView, SIGNAL( tempDisableBR(bool) ),
353 SLOT( disableBR(bool) ) ); 353 SLOT( disableBR(bool) ) );
354 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 354 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
355 mView->setModified( false ); 355 mView->setModified( false );
356 mBlockAtStartup = false; 356 mBlockAtStartup = false;
357 mView->setModified( false ); 357 mView->setModified( false );
358 setCentralWidget( mView ); 358 setCentralWidget( mView );
359 globalFlagBlockStartup = 0; 359 globalFlagBlockStartup = 0;
360 mView->show(); 360 mView->show();
361 delete splash; 361 delete splash;
362 if ( newFile ) 362 if ( newFile )
363 mView->updateConfig(); 363 mView->updateConfig();
364 // qApp->processEvents(); 364 // qApp->processEvents();
365 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 365 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
366 //fillSyncMenu(); 366 //fillSyncMenu();
367 367
368 368
369 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 369 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
370 connect(mView , SIGNAL( save() ), this, SLOT( save() ) ); 370 connect(mView , SIGNAL( save() ), this, SLOT( save() ) );
371 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); 371 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) );
372 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 372 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
373 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 373 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
374 mSyncManager->setDefaultFileName( sentSyncFile()); 374 mSyncManager->setDefaultFileName( sentSyncFile());
375 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 375 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
376 mSyncManager->fillSyncMenu(); 376 mSyncManager->fillSyncMenu();
377 377
378 378
379 379
380 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 380 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
381 if ( showWarning ) { 381 if ( showWarning ) {
382 KMessageBox::information( this, 382 KMessageBox::information( this,
383 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 383 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
384 qApp->processEvents(); 384 qApp->processEvents();
385 mView->dialogManager()->showSyncOptions(); 385 mView->dialogManager()->showSyncOptions();
386 } 386 }
387 387
388 //US listen for result adressed from Ka/Pi 388 //US listen for result adressed from Ka/Pi
389#ifndef DESKTOP_VERSION 389#ifndef DESKTOP_VERSION
390 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 390 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
391#endif 391#endif
392#ifndef DESKTOP_VERSION 392#ifndef DESKTOP_VERSION
393 infrared = 0; 393 infrared = 0;
394#endif 394#endif
395 updateFilterToolbar(); 395 updateFilterToolbar();
396 updateWeek( mView->startDate() ); 396 updateWeek( mView->startDate() );
397 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 397 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
398 SLOT( updateWeekNum( const KCal::DateList & ) ) ); 398 SLOT( updateWeekNum( const KCal::DateList & ) ) );
399 mBRdisabled = false; 399 mBRdisabled = false;
400 //toggleBeamReceive(); 400 //toggleBeamReceive();
401 401
402 QTimer::singleShot( 1000, mView, SLOT ( checkFiles() )); 402 QTimer::singleShot( 1000, mView, SLOT ( checkFiles() ));
403} 403}
404MainWindow::~MainWindow() 404MainWindow::~MainWindow()
405{ 405{
406 //qDebug("MainWindow::~MainWindow() "); 406 //qDebug("MainWindow::~MainWindow() ");
407 //save toolbar location 407 //save toolbar location
408 delete mCalendar; 408 delete mCalendar;
409 delete mSyncManager; 409 delete mSyncManager;
410#ifndef DESKTOP_VERSION 410#ifndef DESKTOP_VERSION
411 if ( infrared ) 411 if ( infrared )
412 delete infrared; 412 delete infrared;
413#endif 413#endif
414 414
415 415
416} 416}
417 417
418void MainWindow::disableBR(bool b) 418void MainWindow::disableBR(bool b)
419{ 419{
420#ifndef DESKTOP_VERSION 420#ifndef DESKTOP_VERSION
421 if ( b ) { 421 if ( b ) {
422 if ( infrared ) { 422 if ( infrared ) {
423 toggleBeamReceive(); 423 toggleBeamReceive();
424 mBRdisabled = true; 424 mBRdisabled = true;
425 } 425 }
426 mBRdisabled = true; 426 mBRdisabled = true;
427 } else { 427 } else {
428 if ( mBRdisabled ) { 428 if ( mBRdisabled ) {
429 mBRdisabled = false; 429 mBRdisabled = false;
430 //makes no sense,because other cal ap is probably running 430 //makes no sense,because other cal ap is probably running
431 // toggleBeamReceive(); 431 // toggleBeamReceive();
432 } 432 }
433 } 433 }
434#endif 434#endif
435 435
436} 436}
437bool MainWindow::beamReceiveEnabled() 437bool MainWindow::beamReceiveEnabled()
438{ 438{
439#ifndef DESKTOP_VERSION 439#ifndef DESKTOP_VERSION
440 return ( infrared != 0 ); 440 return ( infrared != 0 );
441#endif 441#endif
442 return false; 442 return false;
443} 443}
444 444
445void MainWindow::toggleBeamReceive() 445void MainWindow::toggleBeamReceive()
446{ 446{
447 if ( mBRdisabled ) 447 if ( mBRdisabled )
448 return; 448 return;
449#ifndef DESKTOP_VERSION 449#ifndef DESKTOP_VERSION
450 if ( infrared ) { 450 if ( infrared ) {
451 qDebug("KO: Disable BeamReceive "); 451 qDebug("KO: Disable BeamReceive ");
452 delete infrared; 452 delete infrared;
453 infrared = 0; 453 infrared = 0;
454 brAction->setOn(false); 454 brAction->setOn(false);
455 return; 455 return;
456 } 456 }
457 qDebug("KO: Enable BeamReceive "); 457 qDebug("KO: Enable BeamReceive ");
458 brAction->setOn(true); 458 brAction->setOn(true);
459 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 459 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
460 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 460 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
461#endif 461#endif
462} 462}
463void MainWindow::showMaximized () 463void MainWindow::showMaximized ()
464{ 464{
465#ifndef DESKTOP_VERSION 465#ifndef DESKTOP_VERSION
466 if ( ! globalFlagBlockStartup ) 466 if ( ! globalFlagBlockStartup )
467 if ( mClosed ) 467 if ( mClosed )
468 mView->goToday(); 468 mView->goToday();
469#endif 469#endif
470 QWidget::showMaximized () ; 470 QWidget::showMaximized () ;
471 mClosed = false; 471 mClosed = false;
472} 472}
473void MainWindow::closeEvent( QCloseEvent* ce ) 473void MainWindow::closeEvent( QCloseEvent* ce )
474{ 474{
475 475
476 476
477 477
478 if ( ! KOPrefs::instance()->mAskForQuit ) { 478 if ( ! KOPrefs::instance()->mAskForQuit ) {
479 saveOnClose(); 479 saveOnClose();
480 mClosed = true; 480 mClosed = true;
481 ce->accept(); 481 ce->accept();
482 return; 482 return;
483 483
484 } 484 }
485 485
486 switch( QMessageBox::information( this, "KO/Pi", 486 switch( QMessageBox::information( this, "KO/Pi",
487 i18n("Do you really want\nto close KO/Pi?"), 487 i18n("Do you really want\nto close KO/Pi?"),
488 i18n("Close"), i18n("No"), 488 i18n("Close"), i18n("No"),
489 0, 0 ) ) { 489 0, 0 ) ) {
490 case 0: 490 case 0:
491 saveOnClose(); 491 saveOnClose();
492 mClosed = true; 492 mClosed = true;
493 ce->accept(); 493 ce->accept();
494 break; 494 break;
495 case 1: 495 case 1:
496 ce->ignore(); 496 ce->ignore();
497 break; 497 break;
498 case 2: 498 case 2:
499 499
500 default: 500 default:
501 break; 501 break;
502 } 502 }
503 503
504 504
505} 505}
506 506
507void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 507void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
508{ 508{
509 QDataStream stream( data, IO_ReadOnly ); 509 QDataStream stream( data, IO_ReadOnly );
510 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 510 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
511 //QString datamess; 511 //QString datamess;
512 //qDebug("message "); 512 //qDebug("message ");
513 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 513 qDebug("KO: QCOP message received: %s ", cmsg.data() );
514 514
515 if ( cmsg == "setDocument(QString)" ) { 515 if ( cmsg == "setDocument(QString)" ) {
516 QDataStream stream( data, IO_ReadOnly ); 516 QDataStream stream( data, IO_ReadOnly );
517 QString fileName; 517 QString fileName;
518 stream >> fileName; 518 stream >> fileName;
519 //qDebug("filename %s ", fileName.latin1()); 519 //qDebug("filename %s ", fileName.latin1());
520 showMaximized(); 520 showMaximized();
521 raise(); 521 raise();
522 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 522 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
523 mSyncManager->slotSyncMenu( 1002 ); 523 mSyncManager->slotSyncMenu( 1002 );
524 return; 524 return;
525 } 525 }
526 526
527 if ( cmsg == "-writeFile" ) { 527 if ( cmsg == "-writeFile" ) {
528 // I made from the "-writeFile" an "-writeAlarm" 528 // I made from the "-writeFile" an "-writeAlarm"
529 mView->viewManager()->showWhatsNextView(); 529 mView->viewManager()->showWhatsNextView();
530 mCalendar->checkAlarmForIncidence( 0, true); 530 mCalendar->checkAlarmForIncidence( 0, true);
531 showMaximized(); 531 showMaximized();
532 raise(); 532 raise();
533 return; 533 return;
534 534
535 } 535 }
536 if ( cmsg == "-writeFileSilent" ) { 536 if ( cmsg == "-writeFileSilent" ) {
537 // I made from the "-writeFile" an "-writeAlarm" 537 // I made from the "-writeFile" an "-writeAlarm"
538 // mView->viewManager()->showWhatsNextView(); 538 // mView->viewManager()->showWhatsNextView();
539 mCalendar->checkAlarmForIncidence( 0, true); 539 mCalendar->checkAlarmForIncidence( 0, true);
540 //showMaximized(); 540 //showMaximized();
541 //raise(); 541 //raise();
542 hide(); 542 hide();
543 return; 543 return;
544 } 544 }
545 if ( cmsg == "-newCountdown" ) { 545 if ( cmsg == "-newCountdown" ) {
546 qDebug("newCountdown "); 546 qDebug("newCountdown ");
547 547
548 } 548 }
549 QString msg ; 549 QString msg ;
550 QString allmsg = cmsg; 550 QString allmsg = cmsg;
551 while ( allmsg.length() > 0 ) { 551 while ( allmsg.length() > 0 ) {
552 int nextC = allmsg.find( "-", 1 ); 552 int nextC = allmsg.find( "-", 1 );
553 if ( nextC == -1 ) { 553 if ( nextC == -1 ) {
554 msg = allmsg; 554 msg = allmsg;
555 allmsg = ""; 555 allmsg = "";
556 } else{ 556 } else{
557 msg = allmsg.left( nextC ); 557 msg = allmsg.left( nextC );
558 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 558 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
559 } 559 }
560 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 560 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
561 if ( msg == "-newEvent" ) { 561 if ( msg == "-newEvent" ) {
562 QTimer::singleShot( 0, mView, SLOT ( newEvent())); 562 QTimer::singleShot( 0, mView, SLOT ( newEvent()));
563 } 563 }
564 if ( msg == "-newTodo" ) { 564 if ( msg == "-newTodo" ) {
565 QTimer::singleShot( 0, mView, SLOT ( newTodo())); 565 QTimer::singleShot( 0, mView, SLOT ( newTodo()));
566 } 566 }
567 if ( msg == "-showWN" ) { 567 if ( msg == "-showWN" ) {
568 mView->viewManager()->showWhatsNextView(); 568 mView->viewManager()->showWhatsNextView();
569 } 569 }
570 if ( msg == "-showTodo" ) { 570 if ( msg == "-showTodo" ) {
571 mView->viewManager()->showTodoView(); 571 mView->viewManager()->showTodoView();
572 } 572 }
573 if ( msg == "-showList" ) { 573 if ( msg == "-showList" ) {
574 mView->viewManager()->showListView(); 574 mView->viewManager()->showListView();
575 } 575 }
576 else if ( msg == "-showDay" ) { 576 else if ( msg == "-showDay" ) {
577 mView->viewManager()->showDayView(); 577 mView->viewManager()->showDayView();
578 } 578 }
579 else if ( msg == "-showWWeek" ) { 579 else if ( msg == "-showWWeek" ) {
580 mView->viewManager()->showWorkWeekView(); 580 mView->viewManager()->showWorkWeekView();
581 } 581 }
582 else if ( msg == "-ringSync" ) { 582 else if ( msg == "-ringSync" ) {
583 QTimer::singleShot( 0, this, SLOT (startMultiSync())); 583 QTimer::singleShot( 0, this, SLOT (startMultiSync()));
584 } 584 }
585 else if ( msg == "-showWeek" ) { 585 else if ( msg == "-showWeek" ) {
586 mView->viewManager()->showWeekView(); 586 mView->viewManager()->showWeekView();
587 } 587 }
588 else if ( msg == "-showTodo" ) { 588 else if ( msg == "-showTodo" ) {
589 mView->viewManager()->showTodoView(); 589 mView->viewManager()->showTodoView();
590 } 590 }
591 else if ( msg == "-showJournal" ) { 591 else if ( msg == "-showJournal" ) {
592 mView->dateNavigator()->selectDates( 1 ); 592 mView->dateNavigator()->selectDates( 1 );
593 mView->dateNavigator()->selectToday(); 593 mView->dateNavigator()->selectToday();
594 mView->viewManager()->showJournalView(); 594 mView->viewManager()->showJournalView();
595 } 595 }
596 else if ( msg == "-showKO" ) { 596 else if ( msg == "-showKO" ) {
597 mView->viewManager()->showNextXView(); 597 mView->viewManager()->showNextXView();
598 } 598 }
599 else if ( msg == "-showWNext" ) { 599 else if ( msg == "-showWNext" ) {
600 mView->viewManager()->showWhatsNextView(); 600 mView->viewManager()->showWhatsNextView();
601 } 601 }
602 else if ( msg == "nextView()" ) { 602 else if ( msg == "nextView()" ) {
603 mView->viewManager()->showNextView(); 603 mView->viewManager()->showNextView();
604 } 604 }
605 else if ( msg == "-showNextXView" ) { 605 else if ( msg == "-showNextXView" ) {
606 mView->viewManager()->showNextXView(); 606 mView->viewManager()->showNextXView();
607 } 607 }
608 608
609 609
610 } 610 }
611 611
612 showMaximized(); 612 showMaximized();
613 raise(); 613 raise();
614} 614}
615void MainWindow::startMultiSync() 615void MainWindow::startMultiSync()
616{ 616{
617 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 617 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
618 if ( QMessageBox::information( this, i18n("KDE-Pim Sync"), 618 if ( QMessageBox::information( this, i18n("KDE-Pim Sync"),
619 question, 619 question,
620 i18n("Yes"), i18n("No"), 620 i18n("Yes"), i18n("No"),
621 0, 0 ) != 0 ) { 621 0, 0 ) != 0 ) {
622 setCaption(i18n("Aborted! Nothing synced!")); 622 setCaption(i18n("Aborted! Nothing synced!"));
623 return; 623 return;
624 } 624 }
625 mSyncManager->multiSync( false ); 625 mSyncManager->multiSync( false );
626#ifndef DESKTOP_VERSION 626#ifndef DESKTOP_VERSION
627 QCopEnvelope e("QPE/Application/kapi", "doRingSync"); 627 QCopEnvelope e("QPE/Application/kapi", "doRingSync");
628#endif 628#endif
629} 629}
630QPixmap MainWindow::loadPixmap( QString name ) 630QPixmap MainWindow::loadPixmap( QString name )
631{ 631{
632 return SmallIcon( name ); 632 return SmallIcon( name );
633 633
634} 634}
635void MainWindow::setUsesBigPixmaps ( bool b ) 635void MainWindow::setUsesBigPixmaps ( bool b )
636{ 636{
637 qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b); 637 qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b);
638 if ( b ) 638 if ( b )
639 qDebug("KO: BigPixmaps are not supported "); 639 qDebug("KO: BigPixmaps are not supported ");
640} 640}
641void MainWindow::initActions() 641void MainWindow::initActions()
642{ 642{
643 //KOPrefs::instance()->mShowFullMenu 643 //KOPrefs::instance()->mShowFullMenu
644 iconToolBar->clear(); 644 iconToolBar->clear();
645 KOPrefs *p = KOPrefs::instance(); 645 KOPrefs *p = KOPrefs::instance();
646 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 646 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
647 647
648 QPopupMenu *viewMenu = new QPopupMenu( this ); 648 QPopupMenu *viewMenu = new QPopupMenu( this );
649 QPopupMenu *actionMenu = new QPopupMenu( this ); 649 QPopupMenu *actionMenu = new QPopupMenu( this );
650 mCurrentItemMenu = new QPopupMenu ( this ); 650 mCurrentItemMenu = new QPopupMenu ( this );
651 QPopupMenu *importMenu = new QPopupMenu( this ); 651 QPopupMenu *importMenu = new QPopupMenu( this );
652 QPopupMenu *importMenu_X = new QPopupMenu( this ); 652 QPopupMenu *importMenu_X = new QPopupMenu( this );
653 QPopupMenu *exportMenu_X = new QPopupMenu( this ); 653 QPopupMenu *exportMenu_X = new QPopupMenu( this );
654 QPopupMenu *beamMenu_X = new QPopupMenu( this ); 654 QPopupMenu *beamMenu_X = new QPopupMenu( this );
655 selectFilterMenu = new QPopupMenu( this ); 655 selectFilterMenu = new QPopupMenu( this );
656 selectFilterMenu->setCheckable( true ); 656 selectFilterMenu->setCheckable( true );
657 syncMenu = new QPopupMenu( this ); 657 syncMenu = new QPopupMenu( this );
658 configureAgendaMenu = new QPopupMenu( this ); 658 configureAgendaMenu = new QPopupMenu( this );
659 configureToolBarMenu = new QPopupMenu( this ); 659 configureToolBarMenu = new QPopupMenu( this );
660 QPopupMenu *helpMenu = new QPopupMenu( this ); 660 QPopupMenu *helpMenu = new QPopupMenu( this );
661 QIconSet icon; 661 QIconSet icon;
662 int pixWid = 22, pixHei = 22; 662 int pixWid = 22, pixHei = 22;
663 QString pathString = ""; 663 QString pathString = "";
664 if ( !p->mToolBarMiniIcons ) { 664 if ( !p->mToolBarMiniIcons ) {
665 if ( QApplication::desktop()->width() < 480 /*|| QApplication::desktop()->height() < 320*/) { 665 if ( QApplication::desktop()->width() < 480 /*|| QApplication::desktop()->height() < 320*/) {
666 pathString += "icons16/"; 666 pathString += "icons16/";
667 pixWid = 18; pixHei = 16; 667 pixWid = 18; pixHei = 16;
668 } 668 }
669 } else { 669 } else {
670 pathString += "iconsmini/"; 670 pathString += "iconsmini/";
671 pixWid = 18; pixHei = 16; 671 pixWid = 18; pixHei = 16;
672 } 672 }
673 if ( KOPrefs::instance()->mShowFullMenu ) { 673 if ( KOPrefs::instance()->mShowFullMenu ) {
674 QMenuBar *menuBar1; 674 QMenuBar *menuBar1;
675 menuBar1 = menuBar(); 675 menuBar1 = menuBar();
676 menuBar1->insertItem( i18n("File"), importMenu ); 676 menuBar1->insertItem( i18n("File"), importMenu );
677 menuBar1->insertItem( i18n("View"), viewMenu ); 677 menuBar1->insertItem( i18n("View"), viewMenu );
678 menuBar1->insertItem( i18n("Edit"), mCurrentItemMenu ); 678 menuBar1->insertItem( i18n("Edit"), mCurrentItemMenu );
679 menuBar1->insertItem( i18n("Action"), actionMenu ); 679 menuBar1->insertItem( i18n("Action"), actionMenu );
680#ifdef DESKTOP_VERSION 680#ifdef DESKTOP_VERSION
681 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 681 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
682 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 682 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
683#else 683#else
684 menuBar1->insertItem( i18n("Sync"), syncMenu ); 684 menuBar1->insertItem( i18n("Sync"), syncMenu );
685 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu ); 685 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu );
686#endif 686#endif
687 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 687 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
688 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 688 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
689 menuBar1->insertItem( i18n("Help"), helpMenu ); 689 menuBar1->insertItem( i18n("Help"), helpMenu );
690 } else { 690 } else {
691 QPEMenuBar *menuBar1; 691 QPEMenuBar *menuBar1;
692 menuBar1 = new QPEMenuBar( iconToolBar ); 692 menuBar1 = new QPEMenuBar( iconToolBar );
693 QPopupMenu *menuBar = new QPopupMenu( this ); 693 QPopupMenu *menuBar = new QPopupMenu( this );
694 icon = loadPixmap( pathString + "z_menu" ); 694 icon = loadPixmap( pathString + "z_menu" );
695 menuBar1->insertItem( icon.pixmap(), menuBar); 695 menuBar1->insertItem( icon.pixmap(), menuBar);
696 //menuBar1->insertItem( i18n("ME"), menuBar); 696 //menuBar1->insertItem( i18n("ME"), menuBar);
697 menuBar->insertItem( i18n("File"), importMenu ); 697 menuBar->insertItem( i18n("File"), importMenu );
698 menuBar->insertItem( i18n("View"), viewMenu ); 698 menuBar->insertItem( i18n("View"), viewMenu );
699 menuBar->insertItem( i18n("Edit"), mCurrentItemMenu ); 699 menuBar->insertItem( i18n("Edit"), mCurrentItemMenu );
700 menuBar->insertItem( i18n("Action"), actionMenu ); 700 menuBar->insertItem( i18n("Action"), actionMenu );
701 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 701 menuBar->insertItem( i18n("Synchronize"), syncMenu );
702 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 702 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
703 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 703 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
704 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 704 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
705 menuBar->insertItem( i18n("Help"), helpMenu ); 705 menuBar->insertItem( i18n("Help"), helpMenu );
706 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 706 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
707 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 707 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
708 } 708 }
709 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 709 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
710 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) ); 710 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) );
711 711
712 712
713 mWeekBgColor = iconToolBar->backgroundColor(); 713 mWeekBgColor = iconToolBar->backgroundColor();
714 mWeekPixmap.resize( pixWid , pixHei ); 714 mWeekPixmap.resize( pixWid , pixHei );
715 mWeekPixmap.fill( mWeekBgColor ); 715 mWeekPixmap.fill( mWeekBgColor );
716 icon = mWeekPixmap; 716 icon = mWeekPixmap;
717 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this ); 717 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this );
718 if ( p-> mShowIconWeekNum ) 718 if ( p-> mShowIconWeekNum )
719 mWeekAction->addTo( iconToolBar ); 719 mWeekAction->addTo( iconToolBar );
720 mWeekFont = font(); 720 mWeekFont = font();
721 721
722 int fontPoint = mWeekFont.pointSize(); 722 int fontPoint = mWeekFont.pointSize();
723 QFontMetrics f( mWeekFont ); 723 QFontMetrics f( mWeekFont );
724 int fontWid = f.width( "30" ); 724 int fontWid = f.width( "30" );
725 while ( fontWid > pixWid ) { 725 while ( fontWid > pixWid ) {
726 --fontPoint; 726 --fontPoint;
727 mWeekFont.setPointSize( fontPoint ); 727 mWeekFont.setPointSize( fontPoint );
728 QFontMetrics f( mWeekFont ); 728 QFontMetrics f( mWeekFont );
729 fontWid = f.width( "30" ); 729 fontWid = f.width( "30" );
730 //qDebug("dec-- "); 730 //qDebug("dec-- ");
731 } 731 }
732 732
733 connect( mWeekAction, SIGNAL( activated() ), 733 connect( mWeekAction, SIGNAL( activated() ),
734 this, SLOT( weekAction() ) ); 734 this, SLOT( weekAction() ) );
735 735
736 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) ); 736 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) );
737 if ( p->mShowIconFilterview ) { 737 if ( p->mShowIconFilterview ) {
738 icon = loadPixmap( pathString + "filter" ); 738 icon = loadPixmap( pathString + "filter" );
739 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this ); 739 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this );
740 connect( actionFilterMenuTB, SIGNAL( activated() ), 740 connect( actionFilterMenuTB, SIGNAL( activated() ),
741 this, SLOT( fillFilterMenuTB() ) ); 741 this, SLOT( fillFilterMenuTB() ) );
742 actionFilterMenuTB->addTo( iconToolBar ); 742 actionFilterMenuTB->addTo( iconToolBar );
743 selectFilterMenuTB = new QPopupMenu( this ); 743 selectFilterMenuTB = new QPopupMenu( this );
744 selectFilterMenuTB->setCheckable( true ); 744 selectFilterMenuTB->setCheckable( true );
745 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 745 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
746 } 746 }
747 747
748 //#endif 748 //#endif
749 // ****************** 749 // ******************
750 QAction *action; 750 QAction *action;
751 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 751 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
752 configureToolBarMenu->setCheckable( true ); 752 configureToolBarMenu->setCheckable( true );
753 753
754 754
755 configureAgendaMenu->setCheckable( true ); 755 configureAgendaMenu->setCheckable( true );
756 int iii ; 756 int iii ;
757 for ( iii = 1;iii<= 10 ;++iii ){ 757 for ( iii = 1;iii<= 10 ;++iii ){
758 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 ); 758 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 );
759 } 759 }
760 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 760 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
761 761
762 connect( configureAgendaMenu, SIGNAL( aboutToShow()), 762 connect( configureAgendaMenu, SIGNAL( aboutToShow()),
763 this, SLOT( showConfigureAgenda( ) ) ); 763 this, SLOT( showConfigureAgenda( ) ) );
764 icon = loadPixmap( pathString + "today" ); 764 icon = loadPixmap( pathString + "today" );
765 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 765 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
766 today_action->addTo( actionMenu ); 766 today_action->addTo( actionMenu );
767 connect( today_action, SIGNAL( activated() ), 767 connect( today_action, SIGNAL( activated() ),
768 mView, SLOT( goToday() ) ); 768 mView, SLOT( goToday() ) );
769 769
770 icon = loadPixmap( pathString + "picker" ); 770 icon = loadPixmap( pathString + "picker" );
771 QAction* dPickerAction = new QAction( i18n("Select Date..."), icon, i18n("Select Date..."), 0, this ); 771 QAction* dPickerAction = new QAction( i18n("Select Date..."), icon, i18n("Select Date..."), 0, this );
772 dPickerAction->addTo( actionMenu ); 772 dPickerAction->addTo( actionMenu );
773 connect( dPickerAction, SIGNAL( activated() ), 773 connect( dPickerAction, SIGNAL( activated() ),
774 mView, SLOT( showDatePicker() ) ); 774 mView, SLOT( showDatePicker() ) );
775 775
776 icon = loadPixmap( pathString + "search" ); 776 icon = loadPixmap( pathString + "search" );
777 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 777 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
778 search_action->addTo( actionMenu ); 778 search_action->addTo( actionMenu );
779 connect( search_action, SIGNAL( activated() ), 779 connect( search_action, SIGNAL( activated() ),
780 mView->dialogManager(), SLOT( showSearchDialog() ) ); 780 mView->dialogManager(), SLOT( showSearchDialog() ) );
781 781
782 actionMenu->insertSeparator(); 782 actionMenu->insertSeparator();
783 783
784 784
785 785
786 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this ); 786 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
787 action->addTo( mCurrentItemMenu ); 787 action->addTo( mCurrentItemMenu );
788 connect( action, SIGNAL( activated() ), 788 connect( action, SIGNAL( activated() ),
789 mView, SLOT( undo_delete() ) ); 789 mView, SLOT( undo_delete() ) );
790 mCurrentItemMenu->insertSeparator(); 790 mCurrentItemMenu->insertSeparator();
791 icon = loadPixmap( pathString + "newevent" ); 791 icon = loadPixmap( pathString + "newevent" );
792 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 792 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
793 configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 ); 793 configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 );
794 configureToolBarMenu->insertSeparator(); 794 configureToolBarMenu->insertSeparator();
795 configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 ); 795 configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 );
796 configureToolBarMenu->insertSeparator(); 796 configureToolBarMenu->insertSeparator();
797 configureToolBarMenu->insertItem(i18n("Week Number"), 400); 797 configureToolBarMenu->insertItem(i18n("Week Number"), 400);
798 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 798 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
799 799
800 //actionMenu->insertItem ( i18n("Selected Item"), mCurrentItemMenu); 800 //actionMenu->insertItem ( i18n("Selected Item"), mCurrentItemMenu);
801 mShowAction = new QAction( "show_incidence", i18n("Show"), 0, this ); 801 mShowAction = new QAction( "show_incidence", i18n("Show"), 0, this );
802 mShowAction->addTo( mCurrentItemMenu ); 802 mShowAction->addTo( mCurrentItemMenu );
803 connect( mShowAction, SIGNAL( activated() ), 803 connect( mShowAction, SIGNAL( activated() ),
804 mView, SLOT( showIncidence() ) ); 804 mView, SLOT( showIncidence() ) );
805 805
806 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 806 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
807 mEditAction->addTo( mCurrentItemMenu ); 807 mEditAction->addTo( mCurrentItemMenu );
808 connect( mEditAction, SIGNAL( activated() ), 808 connect( mEditAction, SIGNAL( activated() ),
809 mView, SLOT( editIncidence() ) ); 809 mView, SLOT( editIncidence() ) );
810 810
811 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 811 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
812 mDeleteAction->addTo( mCurrentItemMenu ); 812 mDeleteAction->addTo( mCurrentItemMenu );
813 connect( mDeleteAction, SIGNAL( activated() ), 813 connect( mDeleteAction, SIGNAL( activated() ),
814 mView, SLOT( deleteIncidence() ) ); 814 mView, SLOT( deleteIncidence() ) );
815 815
816 816
817 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this ); 817 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
818 mCloneAction->addTo( mCurrentItemMenu ); 818 mCloneAction->addTo( mCurrentItemMenu );
819 connect( mCloneAction, SIGNAL( activated() ), 819 connect( mCloneAction, SIGNAL( activated() ),
820 mView, SLOT( cloneIncidence() ) ); 820 mView, SLOT( cloneIncidence() ) );
821 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this ); 821 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
822 mMoveAction->addTo( mCurrentItemMenu ); 822 mMoveAction->addTo( mCurrentItemMenu );
823 connect( mMoveAction, SIGNAL( activated() ), 823 connect( mMoveAction, SIGNAL( activated() ),
824 mView, SLOT( moveIncidence() ) ); 824 mView, SLOT( moveIncidence() ) );
825#ifndef DESKTOP_VERSION 825#ifndef DESKTOP_VERSION
826 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this ); 826 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
827 mBeamAction->addTo(mCurrentItemMenu ); 827 mBeamAction->addTo(mCurrentItemMenu );
828 connect( mBeamAction, SIGNAL( activated() ), 828 connect( mBeamAction, SIGNAL( activated() ),
829 mView, SLOT( beamIncidence() ) ); 829 mView, SLOT( beamIncidence() ) );
830#endif 830#endif
831 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this ); 831 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
832 mCancelAction->addTo( mCurrentItemMenu ); 832 mCancelAction->addTo( mCurrentItemMenu );
833 connect( mCancelAction, SIGNAL( activated() ), 833 connect( mCancelAction, SIGNAL( activated() ),
834 mView, SLOT( toggleCancelIncidence() ) ); 834 mView, SLOT( toggleCancelIncidence() ) );
835 835
836 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 836 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
837 ne_action->addTo( actionMenu ); 837 ne_action->addTo( actionMenu );
838 connect( ne_action, SIGNAL( activated() ), 838 connect( ne_action, SIGNAL( activated() ),
839 mView, SLOT( newEvent() ) ); 839 mView, SLOT( newEvent() ) );
840 icon = loadPixmap( pathString + "newtodo" ); 840 icon = loadPixmap( pathString + "newtodo" );
841 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 841 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
842 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 842 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
843 nt_action->addTo( actionMenu ); 843 nt_action->addTo( actionMenu );
844 connect( nt_action, SIGNAL( activated() ), 844 connect( nt_action, SIGNAL( activated() ),
845 mView, SLOT( newTodo() ) ); 845 mView, SLOT( newTodo() ) );
846 846
847 847
848 848
849 // *********************** 849 // ***********************
850 if ( KOPrefs::instance()->mVerticalScreen ) { 850 if ( KOPrefs::instance()->mVerticalScreen ) {
851 icon = SmallIcon( "1updownarrow" ); 851 icon = SmallIcon( "1updownarrow" );
852 } else { 852 } else {
853 icon = SmallIcon("1leftrightarrow" ); 853 icon = SmallIcon("1leftrightarrow" );
854 } 854 }
855 configureToolBarMenu->insertItem(icon, i18n("Toggle Fullscreen"), 28 ); 855 configureToolBarMenu->insertItem(icon, i18n("Toggle Fullscreen"), 28 );
856 QAction* FSaction = new QAction( i18n("Toggle Fullscreen"), icon, i18n("Toggle Fullscreen"), 0, this ); 856 QAction* FSaction = new QAction( i18n("Toggle Fullscreen"), icon, i18n("Toggle Fullscreen"), 0, this );
857 FSaction->addTo( viewMenu ); 857 FSaction->addTo( viewMenu );
858 connect( FSaction, SIGNAL( activated() ), mView, SLOT( toggleExpand() )); 858 connect( FSaction, SIGNAL( activated() ), mView, SLOT( toggleExpand() ));
859 859
860 860
861 icon = loadPixmap( pathString + "filter" ); 861 icon = loadPixmap( pathString + "filter" );
862 configureToolBarMenu->insertItem(icon, i18n("Filter menu icon"), 26 ); 862 configureToolBarMenu->insertItem(icon, i18n("Filter menu icon"), 26 );
863 icon = loadPixmap( pathString + "configure" ); 863 icon = loadPixmap( pathString + "configure" );
864 action = new QAction( i18n("Toggle Resource View"), icon, i18n("Toggle Resource View"), 0, this ); 864 action = new QAction( i18n("Toggle Resource View"), icon, i18n("Toggle Resource View"), 0, this );
865 action->addTo( viewMenu ); 865 action->addTo( viewMenu );
866 connect( action, SIGNAL( activated() ), 866 connect( action, SIGNAL( activated() ),
867 mView, SLOT( toggleFilter() ) ); 867 mView, SLOT( toggleFilter() ) );
868 mToggleFilter = action; 868 mToggleFilter = action;
869 icon = loadPixmap( pathString + "navi" ); 869 icon = loadPixmap( pathString + "navi" );
870 configureToolBarMenu->insertItem(icon, i18n("Toggle DateNavigator"), 22 ); 870 configureToolBarMenu->insertItem(icon, i18n("Toggle DateNavigator"), 22 );
871 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 871 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
872 action->addTo( viewMenu ); 872 action->addTo( viewMenu );
873 connect( action, SIGNAL( activated() ), 873 connect( action, SIGNAL( activated() ),
874 mView, SLOT( toggleDateNavigatorWidget() ) ); 874 mView, SLOT( toggleDateNavigatorWidget() ) );
875 mToggleNav = action ; 875 mToggleNav = action ;
876 icon = loadPixmap( pathString + "allday" ); 876 icon = loadPixmap( pathString + "allday" );
877 configureToolBarMenu->insertItem(icon, i18n("Toggle Allday"), 24 ); 877 configureToolBarMenu->insertItem(icon, i18n("Toggle Allday"), 24 );
878 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this ); 878 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this );
879 action->addTo( viewMenu ); 879 action->addTo( viewMenu );
880 connect( action, SIGNAL( activated() ), 880 connect( action, SIGNAL( activated() ),
881 mView, SLOT( toggleAllDaySize() ) ); 881 mView, SLOT( toggleAllDaySize() ) );
882 mToggleAllday = action; 882 mToggleAllday = action;
883 883
884 884
885 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 885 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
886 mToggleNav, SLOT( setEnabled ( bool ) ) ); 886 mToggleNav, SLOT( setEnabled ( bool ) ) );
887 //connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 887 //connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
888 // mToggleFilter, SLOT( setEnabled ( bool ) ) ); 888 // mToggleFilter, SLOT( setEnabled ( bool ) ) );
889 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 889 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
890 mToggleAllday, SLOT( setEnabled ( bool ) ) ); 890 mToggleAllday, SLOT( setEnabled ( bool ) ) );
891 // connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 891 // connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
892 // configureAgendaMenu, SLOT( setEnabled ( bool ) ) ); 892 // configureAgendaMenu, SLOT( setEnabled ( bool ) ) );
893 893
894 894
895 dPickerAction->addTo( iconToolBar ); 895 dPickerAction->addTo( iconToolBar );
896 viewMenu->insertSeparator(); 896 viewMenu->insertSeparator();
897 897
898 if ( p-> mShowIconToggleFull ) 898 if ( p-> mShowIconToggleFull )
899 FSaction->addTo( iconToolBar ); 899 FSaction->addTo( iconToolBar );
900 if ( p->mShowIconNavigator ) mToggleNav ->addTo( iconToolBar ); 900 if ( p->mShowIconNavigator ) mToggleNav ->addTo( iconToolBar );
901 901
902 //******************** 902 //********************
903 if ( p->mShowIconAllday ) mToggleAllday->addTo( iconToolBar ); 903 if ( p->mShowIconAllday ) mToggleAllday->addTo( iconToolBar );
904 904
905 905
906 icon = loadPixmap( pathString + "whatsnext" ); 906 icon = loadPixmap( pathString + "whatsnext" );
907 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110 ); 907 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110 );
908 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 908 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
909 whatsnext_action->addTo( viewMenu ); 909 whatsnext_action->addTo( viewMenu );
910 connect( whatsnext_action, SIGNAL( activated() ), 910 connect( whatsnext_action, SIGNAL( activated() ),
911 mView->viewManager(), SLOT( showWhatsNextView() ) ); 911 mView->viewManager(), SLOT( showWhatsNextView() ) );
912 912
913 icon = loadPixmap( pathString + "xdays" ); 913 icon = loadPixmap( pathString + "xdays" );
914 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100 ); 914 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100 );
915 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 915 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
916 xdays_action->addTo( viewMenu ); 916 xdays_action->addTo( viewMenu );
917 connect( xdays_action, SIGNAL( activated() ), 917 connect( xdays_action, SIGNAL( activated() ),
918 mView->viewManager(), SLOT( showNextXView() ) ); 918 mView->viewManager(), SLOT( showNextXView() ) );
919 919
920 920
921 icon = loadPixmap( pathString + "journal" ); 921 icon = loadPixmap( pathString + "journal" );
922 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 922 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
923 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 923 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
924 viewjournal_action->addTo( viewMenu ); 924 viewjournal_action->addTo( viewMenu );
925 connect( viewjournal_action, SIGNAL( activated() ), 925 connect( viewjournal_action, SIGNAL( activated() ),
926 mView->viewManager(), SLOT( showJournalView() ) ); 926 mView->viewManager(), SLOT( showJournalView() ) );
927 927
928 928
929 icon = loadPixmap( pathString + "day" ); 929 icon = loadPixmap( pathString + "day" );
930 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 930 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
931 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 931 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
932 day1_action->addTo( viewMenu ); 932 day1_action->addTo( viewMenu );
933 // action->addTo( toolBar ); 933 // action->addTo( toolBar );
934 connect( day1_action, SIGNAL( activated() ), 934 connect( day1_action, SIGNAL( activated() ),
935 mView->viewManager(), SLOT( showDayView() ) ); 935 mView->viewManager(), SLOT( showDayView() ) );
936 936
937 icon = loadPixmap( pathString + "workweek" ); 937 icon = loadPixmap( pathString + "workweek" );
938 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 938 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
939 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 939 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
940 day5_action->addTo( viewMenu ); 940 day5_action->addTo( viewMenu );
941 connect( day5_action, SIGNAL( activated() ), 941 connect( day5_action, SIGNAL( activated() ),
942 mView->viewManager(), SLOT( showWorkWeekView() ) ); 942 mView->viewManager(), SLOT( showWorkWeekView() ) );
943 943
944 icon = loadPixmap( pathString + "week" ); 944 icon = loadPixmap( pathString + "week" );
945 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 945 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
946 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 946 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
947 day7_action->addTo( viewMenu ); 947 day7_action->addTo( viewMenu );
948 connect( day7_action, SIGNAL( activated() ), 948 connect( day7_action, SIGNAL( activated() ),
949 mView->viewManager(), SLOT( showWeekView() ) ); 949 mView->viewManager(), SLOT( showWeekView() ) );
950 950
951 icon = loadPixmap( pathString + "workweek2" ); 951 icon = loadPixmap( pathString + "workweek2" );
952 configureToolBarMenu->insertItem(icon, i18n("List week view"), 75 ); 952 configureToolBarMenu->insertItem(icon, i18n("List week view"), 75 );
953 QAction* day6_action = new QAction( i18n("List week"), icon, i18n("List week"), 0, this ); 953 QAction* day6_action = new QAction( i18n("List week"), icon, i18n("List week"), 0, this );
954 day6_action->addTo( viewMenu ); 954 day6_action->addTo( viewMenu );
955 connect( day6_action, SIGNAL( activated() ), 955 connect( day6_action, SIGNAL( activated() ),
956 mView->viewManager(), SLOT( showMonthViewWeek() ) ); 956 mView->viewManager(), SLOT( showMonthViewWeek() ) );
957 957
958 icon = loadPixmap( pathString + "month" ); 958 icon = loadPixmap( pathString + "month" );
959 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 959 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
960 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 960 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
961 month_action->addTo( viewMenu ); 961 month_action->addTo( viewMenu );
962 connect( month_action, SIGNAL( activated() ), 962 connect( month_action, SIGNAL( activated() ),
963 mView->viewManager(), SLOT( showMonthView() ) ); 963 mView->viewManager(), SLOT( showMonthView() ) );
964 964
965 icon = loadPixmap( pathString + "list" ); 965 icon = loadPixmap( pathString + "list" );
966 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 966 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
967 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 967 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
968 showlist_action->addTo( viewMenu ); 968 showlist_action->addTo( viewMenu );
969 connect( showlist_action, SIGNAL( activated() ), 969 connect( showlist_action, SIGNAL( activated() ),
970 mView->viewManager(), SLOT( showListView() ) ); 970 mView->viewManager(), SLOT( showListView() ) );
971 971
972 icon = loadPixmap( pathString + "todo" ); 972 icon = loadPixmap( pathString + "todo" );
973 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 973 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
974 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 974 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
975 todoview_action->addTo( viewMenu ); 975 todoview_action->addTo( viewMenu );
976 connect( todoview_action, SIGNAL( activated() ), 976 connect( todoview_action, SIGNAL( activated() ),
977 mView->viewManager(), SLOT( showTodoView() ) ); 977 mView->viewManager(), SLOT( showTodoView() ) );
978 978
979 979
980 980
981#if 0 981#if 0
982 action = new QAction( "view_timespan", "Time Span", 0, this ); 982 action = new QAction( "view_timespan", "Time Span", 0, this );
983 action->addTo( viewMenu ); 983 action->addTo( viewMenu );
984 connect( action, SIGNAL( activated() ), 984 connect( action, SIGNAL( activated() ),
985 mView->viewManager(), SLOT( showTimeSpanView() ) ); 985 mView->viewManager(), SLOT( showTimeSpanView() ) );
986#endif 986#endif
987 987
988 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 988 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
989 this ); 989 this );
990 mNewSubTodoAction->addTo( actionMenu ); 990 mNewSubTodoAction->addTo( actionMenu );
991 connect( mNewSubTodoAction, SIGNAL( activated() ), 991 connect( mNewSubTodoAction, SIGNAL( activated() ),
992 mView, SLOT( newSubTodo() ) ); 992 mView, SLOT( newSubTodo() ) );
993 993
994 action = new QAction( "purge_completed", i18n("Purge Completed..."), 0, 994 action = new QAction( "purge_completed", i18n("Purge Completed..."), 0,
995 this ); 995 this );
996 action->addTo( actionMenu ); 996 action->addTo( actionMenu );
997 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 997 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
998 998
999 999
1000 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5); 1000 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5);
1001 1001
1002 1002
1003 1003
1004 actionMenu->insertSeparator(); 1004 actionMenu->insertSeparator();
1005 action = new QAction( "manage cat", i18n("Edit category list..."), 0, 1005 action = new QAction( "manage cat", i18n("Edit category list..."), 0,
1006 this ); 1006 this );
1007 action->addTo( actionMenu ); 1007 action->addTo( actionMenu );
1008 connect( action, SIGNAL( activated() ), mView, SLOT( editCategories() ) ); 1008 connect( action, SIGNAL( activated() ), mView, SLOT( editCategories() ) );
1009 1009
1010 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 1010 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
1011 this ); 1011 this );
1012 action->addTo( actionMenu ); 1012 action->addTo( actionMenu );
1013 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 1013 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
1014 1014
1015 1015
1016 actionMenu->insertSeparator(); 1016 actionMenu->insertSeparator();
1017 icon = loadPixmap( pathString + "configure" ); 1017 icon = loadPixmap( pathString + "configure" );
1018 action = new QAction( i18n("Configure"),icon, i18n("Configure KO/Pi..."), 0, this ); 1018 action = new QAction( i18n("Configure"),icon, i18n("Configure KO/Pi..."), 0, this );
1019 action->addTo( actionMenu ); 1019 action->addTo( actionMenu );
1020 connect( action, SIGNAL( activated() ), 1020 connect( action, SIGNAL( activated() ),
1021 mView, SLOT( edit_options() ) ); 1021 mView, SLOT( edit_options() ) );
1022 icon = loadPixmap( pathString + "configure" ); 1022 action = new QAction( i18n("Configure"),icon, i18n("Configure Calendar Files..."), 0, this );
1023 action->addTo( actionMenu );
1024 connect( action, SIGNAL( activated() ),
1025 this, SLOT( calHint() ) );
1023 action = new QAction( i18n("Configure"),icon, i18n("Global Settings..."), 0, this ); 1026 action = new QAction( i18n("Configure"),icon, i18n("Global Settings..."), 0, this );
1024 action->addTo( actionMenu ); 1027 action->addTo( actionMenu );
1025 connect( action, SIGNAL( activated() ), 1028 connect( action, SIGNAL( activated() ),
1026 mView, SLOT( edit_global_options() ) ); 1029 mView, SLOT( edit_global_options() ) );
1027 if ( KOPrefs::instance()->mShowFullMenu ) { 1030 if ( KOPrefs::instance()->mShowFullMenu ) {
1028 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 1031 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
1029 1032
1030 } 1033 }
1031 // actionMenu->insertSeparator(); 1034 // actionMenu->insertSeparator();
1032 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 1035 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
1033 this ); 1036 this );
1034 action->addTo( importMenu_X ); 1037 action->addTo( importMenu_X );
1035 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 1038 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
1036 action = new QAction( "import_quick", i18n("Import last file"), 0, 1039 action = new QAction( "import_quick", i18n("Import last file"), 0,
1037 this ); 1040 this );
1038 action->addTo( importMenu_X ); 1041 action->addTo( importMenu_X );
1039 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 1042 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
1040 importMenu_X->insertSeparator(); 1043 importMenu_X->insertSeparator();
1041 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 1044 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
1042 this ); 1045 this );
1043 action->addTo( importMenu_X ); 1046 action->addTo( importMenu_X );
1044 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 1047 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
1045 //#ifndef DESKTOP_VERSION 1048 //#ifndef DESKTOP_VERSION
1046 importMenu_X->insertSeparator(); 1049 importMenu_X->insertSeparator();
1047 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 1050 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
1048 this ); 1051 this );
1049 action->addTo( importMenu_X ); 1052 action->addTo( importMenu_X );
1050 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 1053 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
1051 //#else 1054 //#else
1052#ifdef _OL_IMPORT_ 1055#ifdef _OL_IMPORT_
1053 importMenu_X->insertSeparator(); 1056 importMenu_X->insertSeparator();
1054 action = new QAction( "import_ol", i18n("Import from OL"), 0, 1057 action = new QAction( "import_ol", i18n("Import from OL"), 0,
1055 this ); 1058 this );
1056 action->addTo( importMenu_X ); 1059 action->addTo( importMenu_X );
1057 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 1060 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
1058#endif 1061#endif
1059 //#endif 1062 //#endif
1060 1063
1061 //importMenu->insertSeparator(); 1064 //importMenu->insertSeparator();
1062#if 0 1065#if 0
1063 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 1066 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
1064 this ); 1067 this );
1065 action->addTo( importMenu ); 1068 action->addTo( importMenu );
1066 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 1069 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
1067#endif 1070#endif
1068 action = new QAction( "save_cal", i18n("Save Backup..."), 0, 1071 action = new QAction( "save_cal", i18n("Save Backup..."), 0,
1069 this ); 1072 this );
1070 action->addTo( importMenu ); 1073 action->addTo( importMenu );
1071 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 1074 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
1072 importMenu->insertSeparator(); 1075 importMenu->insertSeparator();
1073 importMenu->insertItem( i18n("Import"), importMenu_X ); 1076 importMenu->insertItem( i18n("Import"), importMenu_X );
1074 //importMenu->insertSeparator(); 1077 //importMenu->insertSeparator();
1075 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 1078 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
1076 this ); 1079 this );
1077 action->addTo( exportMenu_X ); 1080 action->addTo( exportMenu_X );
1078 connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 1081 connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
1079 1082
1080 1083
1081 //LR 1084 //LR
1082 QPopupMenu *ex2phone = new QPopupMenu( this ); 1085 QPopupMenu *ex2phone = new QPopupMenu( this );
1083 ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1086 ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1084 ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1087 ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1085 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); 1088 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) );
1086 exportMenu_X->insertItem( i18n("Export to phone"), ex2phone ); 1089 exportMenu_X->insertItem( i18n("Export to phone"), ex2phone );
1087 1090
1088 importMenu->insertItem( i18n("Export"), exportMenu_X ); 1091 importMenu->insertItem( i18n("Export"), exportMenu_X );
1089#ifndef DESKTOP_VERSION 1092#ifndef DESKTOP_VERSION
1090 //importMenu->insertSeparator(); 1093 //importMenu->insertSeparator();
1091 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, 1094 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0,
1092 this ); 1095 this );
1093 brAction->addTo( beamMenu_X ); 1096 brAction->addTo( beamMenu_X );
1094 brAction->setToggleAction (true ) ; 1097 brAction->setToggleAction (true ) ;
1095 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); 1098 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) );
1096 1099
1097 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 1100 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
1098 this ); 1101 this );
1099 action->addTo( beamMenu_X ); 1102 action->addTo( beamMenu_X );
1100 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 1103 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
1101 1104
1102 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 1105 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
1103 this ); 1106 this );
1104 action->addTo( beamMenu_X ); 1107 action->addTo( beamMenu_X );
1105 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 1108 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
1106 importMenu->insertItem( i18n("Beam"), beamMenu_X ); 1109 importMenu->insertItem( i18n("Beam"), beamMenu_X );
1107#else 1110#else
1108 //importMenu->insertSeparator(); 1111 //importMenu->insertSeparator();
1109 icon = loadPixmap( pathString + "print" ); 1112 icon = loadPixmap( pathString + "print" );
1110 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 1113 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
1111 action->addTo( beamMenu_X ); 1114 action->addTo( beamMenu_X );
1112 connect( action, SIGNAL( activated() ), 1115 connect( action, SIGNAL( activated() ),
1113 this, SLOT( printCal() ) ); 1116 this, SLOT( printCal() ) );
1114 1117
1115 icon = loadPixmap( pathString + "print" ); 1118 icon = loadPixmap( pathString + "print" );
1116 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 1119 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
1117 action->addTo( beamMenu_X ); 1120 action->addTo( beamMenu_X );
1118 connect( action, SIGNAL( activated() ), 1121 connect( action, SIGNAL( activated() ),
1119 this, SLOT( printSel() ) ); 1122 this, SLOT( printSel() ) );
1120 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this ); 1123 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this );
1121 action->addTo( beamMenu_X ); 1124 action->addTo( beamMenu_X );
1122 connect( action, SIGNAL( activated() ), 1125 connect( action, SIGNAL( activated() ),
1123 mView->viewManager(), SLOT( slotprintWNV() ) ); 1126 mView->viewManager(), SLOT( slotprintWNV() ) );
1124 1127
1125 1128
1126 icon = loadPixmap( pathString + "print" ); 1129 icon = loadPixmap( pathString + "print" );
1127 action = new QAction( i18n("Print List View..."),icon,i18n("Print List View..."), 0, this ); 1130 action = new QAction( i18n("Print List View..."),icon,i18n("Print List View..."), 0, this );
1128 action->addTo( beamMenu_X ); 1131 action->addTo( beamMenu_X );
1129 connect( action, SIGNAL( activated() ), 1132 connect( action, SIGNAL( activated() ),
1130 this, SLOT( printListView() ) ); 1133 this, SLOT( printListView() ) );
1131 1134
1132 action = new QAction( i18n("Print selected event / todo..."),icon,i18n("Print selected event / todo..."), 0, this ); 1135 action = new QAction( i18n("Print selected event / todo..."),icon,i18n("Print selected event / todo..."), 0, this );
1133 action->addTo( beamMenu_X ); 1136 action->addTo( beamMenu_X );
1134 connect( action, SIGNAL( activated() ), 1137 connect( action, SIGNAL( activated() ),
1135 mView, SLOT( slotprintSelInc() ) ); 1138 mView, SLOT( slotprintSelInc() ) );
1136 1139
1137 importMenu->insertItem( i18n("Print"), beamMenu_X ); 1140 importMenu->insertItem( i18n("Print"), beamMenu_X );
1138#endif 1141#endif
1139 1142
1140 importMenu->insertSeparator(); 1143 importMenu->insertSeparator();
1141 action = new QAction( "beam all", i18n("Save"), 0, 1144 action = new QAction( "beam all", i18n("Save"), 0,
1142 this ); 1145 this );
1143 action->addTo( importMenu ); 1146 action->addTo( importMenu );
1144 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 1147 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
1145 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 1148 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
1146 this ); 1149 this );
1147 action->addTo( importMenu ); 1150 action->addTo( importMenu );
1148 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 1151 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
1149 1152
1150 //menuBar->insertItem( "Configure",configureMenu ); 1153 //menuBar->insertItem( "Configure",configureMenu );
1151 //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); 1154 //configureMenu->insertItem( "Toolbar",configureToolBarMenu );
1152 icon = loadPixmap( "korganizer/korganizer" ); 1155 icon = loadPixmap( "korganizer/korganizer" );
1153 1156
1154 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 1157 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
1155 action->addTo( helpMenu ); 1158 action->addTo( helpMenu );
1156 connect( action, SIGNAL( activated() ), 1159 connect( action, SIGNAL( activated() ),
1157 SLOT( whatsNew() ) ); 1160 SLOT( whatsNew() ) );
1158 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); 1161 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this );
1159 action->addTo( helpMenu ); 1162 action->addTo( helpMenu );
1160 connect( action, SIGNAL( activated() ), 1163 connect( action, SIGNAL( activated() ),
1161 SLOT( features() ) ); 1164 SLOT( features() ) );
1162 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); 1165 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this );
1163 action->addTo( helpMenu ); 1166 action->addTo( helpMenu );
1164 connect( action, SIGNAL( activated() ), 1167 connect( action, SIGNAL( activated() ),
1165 SLOT( keyBindings() ) ); 1168 SLOT( keyBindings() ) );
1166 action = new QAction( "Storage Howto", i18n("Storage HowTo..."), 0,this ); 1169 action = new QAction( "Storage Howto", i18n("Storage HowTo..."), 0,this );
1167 action->addTo( helpMenu ); 1170 action->addTo( helpMenu );
1168 connect( action, SIGNAL( activated() ), 1171 connect( action, SIGNAL( activated() ),
1169 SLOT( storagehowto() ) ); 1172 SLOT( storagehowto() ) );
1170 action = new QAction( "Timetracking Howto", i18n("Timetracking HowTo..."), 0,this ); 1173 action = new QAction( "Timetracking Howto", i18n("Timetracking HowTo..."), 0,this );
1171 action->addTo( helpMenu ); 1174 action->addTo( helpMenu );
1172 connect( action, SIGNAL( activated() ), 1175 connect( action, SIGNAL( activated() ),
1173 SLOT( timetrackinghowto() ) ); 1176 SLOT( timetrackinghowto() ) );
1174 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 1177 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
1175 action->addTo( helpMenu ); 1178 action->addTo( helpMenu );
1176 connect( action, SIGNAL( activated() ), 1179 connect( action, SIGNAL( activated() ),
1177 SLOT( synchowto() ) ); 1180 SLOT( synchowto() ) );
1178 action = new QAction( "KDE Sync Howto", i18n("KDE Sync HowTo..."), 0,this ); 1181 action = new QAction( "KDE Sync Howto", i18n("KDE Sync HowTo..."), 0,this );
1179 action->addTo( helpMenu ); 1182 action->addTo( helpMenu );
1180 connect( action, SIGNAL( activated() ), 1183 connect( action, SIGNAL( activated() ),
1181 SLOT( kdesynchowto() ) ); 1184 SLOT( kdesynchowto() ) );
1182 action = new QAction( "Multi Sync Howto", i18n("Multi Sync HowTo..."), 0,this ); 1185 action = new QAction( "Multi Sync Howto", i18n("Multi Sync HowTo..."), 0,this );
1183 action->addTo( helpMenu ); 1186 action->addTo( helpMenu );
1184 connect( action, SIGNAL( activated() ), 1187 connect( action, SIGNAL( activated() ),
1185 SLOT( multisynchowto() ) ); 1188 SLOT( multisynchowto() ) );
1186 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); 1189 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this );
1187 action->addTo( helpMenu ); 1190 action->addTo( helpMenu );
1188 connect( action, SIGNAL( activated() ), 1191 connect( action, SIGNAL( activated() ),
1189 SLOT( aboutAutoSaving() ) ); 1192 SLOT( aboutAutoSaving() ) );
1190 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); 1193 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this );
1191 action->addTo( helpMenu ); 1194 action->addTo( helpMenu );
1192 connect( action, SIGNAL( activated() ), 1195 connect( action, SIGNAL( activated() ),
1193 SLOT( aboutKnownBugs() ) ); 1196 SLOT( aboutKnownBugs() ) );
1194 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 1197 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
1195 action->addTo( helpMenu ); 1198 action->addTo( helpMenu );
1196 connect( action, SIGNAL( activated() ), 1199 connect( action, SIGNAL( activated() ),
1197 SLOT( usertrans() ) ); 1200 SLOT( usertrans() ) );
1198 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 1201 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
1199 action->addTo( helpMenu ); 1202 action->addTo( helpMenu );
1200 connect( action, SIGNAL( activated() ), 1203 connect( action, SIGNAL( activated() ),
1201 SLOT( faq() ) ); 1204 SLOT( faq() ) );
1202 action = new QAction( "licence", i18n("Licence..."), 0, this ); 1205 action = new QAction( "licence", i18n("Licence..."), 0, this );
1203 action->addTo( helpMenu ); 1206 action->addTo( helpMenu );
1204 connect( action, SIGNAL( activated() ), 1207 connect( action, SIGNAL( activated() ),
1205 SLOT( licence() ) ); 1208 SLOT( licence() ) );
1206 action = new QAction( "about", i18n("About..."), 0, this ); 1209 action = new QAction( "about", i18n("About..."), 0, this );
1207 action->addTo( helpMenu ); 1210 action->addTo( helpMenu );
1208 connect( action, SIGNAL( activated() ), 1211 connect( action, SIGNAL( activated() ),
1209 SLOT( about() ) ); 1212 SLOT( about() ) );
1210 //menuBar->insertSeparator(); 1213 //menuBar->insertSeparator();
1211 1214
1212 // ****************************************************** 1215 // ******************************************************
1213 // menubar icons 1216 // menubar icons
1214 1217
1215 1218
1216 1219
1217 //menuBar->insertItem( iconToolBar ); 1220 //menuBar->insertItem( iconToolBar );
1218 //xdays_action 1221 //xdays_action
1219 if (p-> mShowIconNewEvent) 1222 if (p-> mShowIconNewEvent)
1220 ne_action->addTo( iconToolBar ); 1223 ne_action->addTo( iconToolBar );
1221 if (p->mShowIconNewTodo ) 1224 if (p->mShowIconNewTodo )
1222 nt_action->addTo( iconToolBar ); 1225 nt_action->addTo( iconToolBar );
1223 if (p-> mShowIconSearch) 1226 if (p-> mShowIconSearch)
1224 search_action->addTo( iconToolBar ); 1227 search_action->addTo( iconToolBar );
1225 if (p-> mShowIconWhatsThis) 1228 if (p-> mShowIconWhatsThis)
1226 QWhatsThis::whatsThisButton ( iconToolBar ); 1229 QWhatsThis::whatsThisButton ( iconToolBar );
1227 if (p-> mShowIconNext) 1230 if (p-> mShowIconNext)
1228 whatsnext_action->addTo( viewToolBar ); 1231 whatsnext_action->addTo( viewToolBar );
1229 if (p-> mShowIconNextDays) 1232 if (p-> mShowIconNextDays)
1230 xdays_action->addTo( viewToolBar ); 1233 xdays_action->addTo( viewToolBar );
1231 if (p-> mShowIconJournal) 1234 if (p-> mShowIconJournal)
1232 viewjournal_action->addTo( viewToolBar ); 1235 viewjournal_action->addTo( viewToolBar );
1233 if (p-> mShowIconDay1) 1236 if (p-> mShowIconDay1)
1234 day1_action->addTo( viewToolBar ); 1237 day1_action->addTo( viewToolBar );
1235 if (p-> mShowIconDay5) 1238 if (p-> mShowIconDay5)
1236 day5_action->addTo( viewToolBar ); 1239 day5_action->addTo( viewToolBar );
1237 if (p-> mShowIconDay7) 1240 if (p-> mShowIconDay7)
1238 day7_action->addTo( viewToolBar ); 1241 day7_action->addTo( viewToolBar );
1239 if (p-> mShowIconDay6) 1242 if (p-> mShowIconDay6)
1240 day6_action->addTo( viewToolBar ); 1243 day6_action->addTo( viewToolBar );
1241 if (p-> mShowIconMonth) 1244 if (p-> mShowIconMonth)
1242 month_action->addTo( viewToolBar ); 1245 month_action->addTo( viewToolBar );
1243 if (p-> mShowIconList) 1246 if (p-> mShowIconList)
1244 showlist_action->addTo( viewToolBar ); 1247 showlist_action->addTo( viewToolBar );
1245 if (p-> mShowIconTodoview) 1248 if (p-> mShowIconTodoview)
1246 todoview_action->addTo( viewToolBar ); 1249 todoview_action->addTo( viewToolBar );
1247 1250
1248 icon = loadPixmap( pathString + "2leftarrowB" ); 1251 icon = loadPixmap( pathString + "2leftarrowB" );
1249 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200); 1252 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200);
1250 if (p-> mShowIconBackFast) { 1253 if (p-> mShowIconBackFast) {
1251 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 1254 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
1252 connect( action, SIGNAL( activated() ), 1255 connect( action, SIGNAL( activated() ),
1253 mView, SLOT( goPreviousMonth() ) ); 1256 mView, SLOT( goPreviousMonth() ) );
1254 action->addTo( navigatorToolBar ); 1257 action->addTo( navigatorToolBar );
1255 } 1258 }
1256 icon = loadPixmap( pathString + "1leftarrowB" ); 1259 icon = loadPixmap( pathString + "1leftarrowB" );
1257 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210); 1260 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210);
1258 if (p-> mShowIconBack) { 1261 if (p-> mShowIconBack) {
1259 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 1262 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
1260 connect( action, SIGNAL( activated() ), 1263 connect( action, SIGNAL( activated() ),
1261 mView, SLOT( goPrevious() ) ); 1264 mView, SLOT( goPrevious() ) );
1262 action->addTo( navigatorToolBar ); 1265 action->addTo( navigatorToolBar );
1263 } 1266 }
1264 icon = loadPixmap( pathString + "today" ); 1267 icon = loadPixmap( pathString + "today" );
1265 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); 1268 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
1266 if (p-> mShowIconToday) 1269 if (p-> mShowIconToday)
1267 today_action->addTo( navigatorToolBar ); 1270 today_action->addTo( navigatorToolBar );
1268 icon = loadPixmap( pathString + "1rightarrowB" ); 1271 icon = loadPixmap( pathString + "1rightarrowB" );
1269 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 1272 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
1270 if (p-> mShowIconForward) { 1273 if (p-> mShowIconForward) {
1271 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 1274 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
1272 connect( action, SIGNAL( activated() ), 1275 connect( action, SIGNAL( activated() ),
1273 mView, SLOT( goNext() ) ); 1276 mView, SLOT( goNext() ) );
1274 action->addTo( navigatorToolBar ); 1277 action->addTo( navigatorToolBar );
1275 } 1278 }
1276 icon = loadPixmap( pathString + "2rightarrowB" ); 1279 icon = loadPixmap( pathString + "2rightarrowB" );
1277 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 1280 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
1278 if (p-> mShowIconForwardFast) { 1281 if (p-> mShowIconForwardFast) {
1279 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 1282 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
1280 connect( action, SIGNAL( activated() ), 1283 connect( action, SIGNAL( activated() ),
1281 mView, SLOT( goNextMonth() ) ); 1284 mView, SLOT( goNextMonth() ) );
1282 action->addTo( navigatorToolBar ); 1285 action->addTo( navigatorToolBar );
1283 } 1286 }
1284 1287
1285 1288
1286 configureToolBarMenu->insertItem(i18n("What's This?"), 300, 6); 1289 configureToolBarMenu->insertItem(i18n("What's This?"), 300, 6);
1287 1290
1288 1291
1289 if ( p->mShowIconNavigator ) configureToolBarMenu->setItemChecked( 22 , true); 1292 if ( p->mShowIconNavigator ) configureToolBarMenu->setItemChecked( 22 , true);
1290 if ( p->mShowIconAllday ) configureToolBarMenu->setItemChecked( 24 , true); 1293 if ( p->mShowIconAllday ) configureToolBarMenu->setItemChecked( 24 , true);
1291 if ( p->mShowIconFilterview ) configureToolBarMenu->setItemChecked( 26 , true); 1294 if ( p->mShowIconFilterview ) configureToolBarMenu->setItemChecked( 26 , true);
1292 if ( p->mShowIconToggleFull ) configureToolBarMenu->setItemChecked( 28 , true); 1295 if ( p->mShowIconToggleFull ) configureToolBarMenu->setItemChecked( 28 , true);
1293 1296
1294 if (p-> mShowIconNewEvent) 1297 if (p-> mShowIconNewEvent)
1295 configureToolBarMenu->setItemChecked( 10, true ); 1298 configureToolBarMenu->setItemChecked( 10, true );
1296 if (p->mShowIconNewTodo ) 1299 if (p->mShowIconNewTodo )
1297 configureToolBarMenu->setItemChecked( 20, true ); 1300 configureToolBarMenu->setItemChecked( 20, true );
1298 if (p-> mShowIconSearch) 1301 if (p-> mShowIconSearch)
1299 configureToolBarMenu->setItemChecked( 120, true ); 1302 configureToolBarMenu->setItemChecked( 120, true );
1300 if (p-> mShowIconList) 1303 if (p-> mShowIconList)
1301 configureToolBarMenu->setItemChecked( 30, true ); 1304 configureToolBarMenu->setItemChecked( 30, true );
1302 if (p-> mShowIconDay1) 1305 if (p-> mShowIconDay1)
1303 configureToolBarMenu->setItemChecked( 40, true ); 1306 configureToolBarMenu->setItemChecked( 40, true );
1304 if (p-> mShowIconDay5) 1307 if (p-> mShowIconDay5)
1305 configureToolBarMenu->setItemChecked( 50, true ); 1308 configureToolBarMenu->setItemChecked( 50, true );
1306 if (p-> mShowIconDay6) 1309 if (p-> mShowIconDay6)
1307 configureToolBarMenu->setItemChecked( 75, true ); 1310 configureToolBarMenu->setItemChecked( 75, true );
1308 if (p-> mShowIconDay7) 1311 if (p-> mShowIconDay7)
1309 configureToolBarMenu->setItemChecked( 60, true ); 1312 configureToolBarMenu->setItemChecked( 60, true );
1310 if (p-> mShowIconMonth) 1313 if (p-> mShowIconMonth)
1311 configureToolBarMenu->setItemChecked( 70, true ); 1314 configureToolBarMenu->setItemChecked( 70, true );
1312 if (p-> mShowIconTodoview) 1315 if (p-> mShowIconTodoview)
1313 configureToolBarMenu->setItemChecked( 80, true ); 1316 configureToolBarMenu->setItemChecked( 80, true );
1314 if (p-> mShowIconBackFast) 1317 if (p-> mShowIconBackFast)
1315 configureToolBarMenu->setItemChecked( 200, true ); 1318 configureToolBarMenu->setItemChecked( 200, true );
1316 if (p-> mShowIconBack) 1319 if (p-> mShowIconBack)
1317 configureToolBarMenu->setItemChecked( 210, true ); 1320 configureToolBarMenu->setItemChecked( 210, true );
1318 if (p-> mShowIconToday) 1321 if (p-> mShowIconToday)
1319 configureToolBarMenu->setItemChecked( 130, true ); 1322 configureToolBarMenu->setItemChecked( 130, true );
1320 if (p-> mShowIconForward) 1323 if (p-> mShowIconForward)
1321 configureToolBarMenu->setItemChecked( 220, true ); 1324 configureToolBarMenu->setItemChecked( 220, true );
1322 if (p-> mShowIconForwardFast) 1325 if (p-> mShowIconForwardFast)
1323 configureToolBarMenu->setItemChecked( 230, true ); 1326 configureToolBarMenu->setItemChecked( 230, true );
1324 if (p-> mShowIconNextDays) 1327 if (p-> mShowIconNextDays)
1325 configureToolBarMenu->setItemChecked( 100, true ); 1328 configureToolBarMenu->setItemChecked( 100, true );
1326 if (p-> mShowIconNext) 1329 if (p-> mShowIconNext)
1327 configureToolBarMenu->setItemChecked( 110, true ); 1330 configureToolBarMenu->setItemChecked( 110, true );
1328 if (p-> mShowIconJournal) 1331 if (p-> mShowIconJournal)
1329 configureToolBarMenu->setItemChecked( 90, true ); 1332 configureToolBarMenu->setItemChecked( 90, true );
1330 if (p-> mShowIconWhatsThis) 1333 if (p-> mShowIconWhatsThis)
1331 configureToolBarMenu->setItemChecked( 300, true ); 1334 configureToolBarMenu->setItemChecked( 300, true );
1332 if (p-> mShowIconWeekNum) 1335 if (p-> mShowIconWeekNum)
1333 configureToolBarMenu->setItemChecked( 400, true ); 1336 configureToolBarMenu->setItemChecked( 400, true );
1334 if (!p-> mShowIconStretch) { 1337 if (!p-> mShowIconStretch) {
1335 QLabel* dummy = new QLabel( iconToolBar ); 1338 QLabel* dummy = new QLabel( iconToolBar );
1336 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 1339 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
1337 dummy->setMinimumWidth( 0 ); 1340 dummy->setMinimumWidth( 0 );
1338 iconToolBar->setStretchableWidget ( dummy ) ; 1341 iconToolBar->setStretchableWidget ( dummy ) ;
1339 } 1342 }
1340 else { 1343 else {
1341 iconToolBar->setHorizontalStretchable (true ); 1344 iconToolBar->setHorizontalStretchable (true );
1342 viewToolBar->setHorizontalStretchable (true ); 1345 viewToolBar->setHorizontalStretchable (true );
1343 navigatorToolBar->setHorizontalStretchable (true ); 1346 navigatorToolBar->setHorizontalStretchable (true );
1344 iconToolBar->setVerticalStretchable (true ); 1347 iconToolBar->setVerticalStretchable (true );
1345 viewToolBar->setVerticalStretchable (true ); 1348 viewToolBar->setVerticalStretchable (true );
1346 navigatorToolBar->setVerticalStretchable (true ); 1349 navigatorToolBar->setVerticalStretchable (true );
1347 configureToolBarMenu->setItemChecked( 5, true ); 1350 configureToolBarMenu->setItemChecked( 5, true );
1348 } 1351 }
1349 if (p-> mShowIconFilter) 1352 if (p-> mShowIconFilter)
1350 configureToolBarMenu->setItemChecked( 7, true ); 1353 configureToolBarMenu->setItemChecked( 7, true );
1351 if (p-> mShowIconOnetoolbar) 1354 if (p-> mShowIconOnetoolbar)
1352 configureToolBarMenu->setItemChecked( 6, true ); 1355 configureToolBarMenu->setItemChecked( 6, true );
1353 1356
1354 1357
1355 if ( filterMenubar ) { 1358 if ( filterMenubar ) {
1356 filterMenubar->reparent(filterToolBar,0,QPoint(0,0) ); 1359 filterMenubar->reparent(filterToolBar,0,QPoint(0,0) );
1357 connect( mView, SIGNAL( filtersUpdated() ), SLOT( updateFilterToolbar() ) ); 1360 connect( mView, SIGNAL( filtersUpdated() ), SLOT( updateFilterToolbar() ) );
1358 } 1361 }
1359 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 1362 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
1360 configureAgenda( p->mHourSize ); 1363 configureAgenda( p->mHourSize );
1361 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 1364 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
1362} 1365}
1363 1366void MainWindow::calHint()
1367{
1368 QString message = i18n("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>.");
1369
1370 KMessageBox::information( this, message);
1371}
1364void MainWindow::exportToPhone( int mode ) 1372void MainWindow::exportToPhone( int mode )
1365{ 1373{
1366 1374
1367 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1375 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1368 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1376 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1369 KOex2phonePrefs ex2phone; 1377 KOex2phonePrefs ex2phone;
1370 1378
1371 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 1379 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
1372 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 1380 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
1373 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1381 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
1374 if ( mode == 1 ) 1382 if ( mode == 1 )
1375 ex2phone.setCaption(i18n("Export complete calendar")); 1383 ex2phone.setCaption(i18n("Export complete calendar"));
1376 if ( mode == 2 ) 1384 if ( mode == 2 )
1377 ex2phone.setCaption(i18n("Export filtered calendar")); 1385 ex2phone.setCaption(i18n("Export filtered calendar"));
1378 1386
1379 if ( !ex2phone.exec() ) { 1387 if ( !ex2phone.exec() ) {
1380 return; 1388 return;
1381 } 1389 }
1382 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 1390 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
1383 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 1391 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
1384 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 1392 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
1385 1393
1386 int inFuture = 0; 1394 int inFuture = 0;
1387 if ( ex2phone.mWriteBackFuture->isChecked() ) 1395 if ( ex2phone.mWriteBackFuture->isChecked() )
1388 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 1396 inFuture = ex2phone.mWriteBackFutureWeeks->value();
1389 QPtrList<Incidence> delSel; 1397 QPtrList<Incidence> delSel;
1390 if ( mode == 1 ) 1398 if ( mode == 1 )
1391 delSel = mCalendar->rawIncidences(); 1399 delSel = mCalendar->rawIncidences();
1392 if ( mode == 2 ) 1400 if ( mode == 2 )
1393 delSel = mCalendar->incidences(); 1401 delSel = mCalendar->incidences();
1394 CalendarLocal* cal = new CalendarLocal(); 1402 CalendarLocal* cal = new CalendarLocal();
1395 cal->setLocalTime(); 1403 cal->setLocalTime();
1396 Incidence *incidence = delSel.first(); 1404 Incidence *incidence = delSel.first();
1397 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1405 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1398 QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); 1406 QDateTime end = cur.addDays( ( inFuture +1 ) *7 );
1399 while ( incidence ) { 1407 while ( incidence ) {
1400 if ( incidence->typeID() != journalID ) { 1408 if ( incidence->typeID() != journalID ) {
1401 bool add = true; 1409 bool add = true;
1402 if ( inFuture ) { 1410 if ( inFuture ) {
1403 QDateTime dt; 1411 QDateTime dt;
1404 if ( incidence->typeID() == todoID ) { 1412 if ( incidence->typeID() == todoID ) {
1405 Todo * t = (Todo*)incidence; 1413 Todo * t = (Todo*)incidence;
1406 if ( t->hasDueDate() ) 1414 if ( t->hasDueDate() )
1407 dt = t->dtDue(); 1415 dt = t->dtDue();
1408 else 1416 else
1409 dt = cur.addSecs( 62 ); 1417 dt = cur.addSecs( 62 );
1410 } 1418 }
1411 else { 1419 else {
1412 bool ok; 1420 bool ok;
1413 dt = incidence->getNextOccurence( cur, &ok ); 1421 dt = incidence->getNextOccurence( cur, &ok );
1414 if ( !ok ) 1422 if ( !ok )
1415 dt = cur.addSecs( -62 ); 1423 dt = cur.addSecs( -62 );
1416 } 1424 }
1417 if ( dt < cur || dt > end ) { 1425 if ( dt < cur || dt > end ) {
1418 add = false; 1426 add = false;
1419 } 1427 }
1420 } 1428 }
1421 if ( add ) { 1429 if ( add ) {
1422 Incidence *in = incidence->clone(); 1430 Incidence *in = incidence->clone();
1423 cal->addIncidence( in ); 1431 cal->addIncidence( in );
1424 } 1432 }
1425 } 1433 }
1426 incidence = delSel.next(); 1434 incidence = delSel.next();
1427 } 1435 }
1428 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 1436 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
1429 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 1437 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
1430 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1438 KPimGlobalPrefs::instance()->mEx2PhoneModel );
1431 1439
1432 setCaption( i18n("Writing to phone...")); 1440 setCaption( i18n("Writing to phone..."));
1433 if ( PhoneFormat::writeToPhone( cal ) ) 1441 if ( PhoneFormat::writeToPhone( cal ) )
1434 setCaption( i18n("Export to phone successful!")); 1442 setCaption( i18n("Export to phone successful!"));
1435 else 1443 else
1436 setCaption( i18n("Error exporting to phone!")); 1444 setCaption( i18n("Error exporting to phone!"));
1437 delete cal; 1445 delete cal;
1438} 1446}
1439 1447
1440 1448
1441void MainWindow::setDefaultPreferences() 1449void MainWindow::setDefaultPreferences()
1442{ 1450{
1443 KOPrefs *p = KOPrefs::instance(); 1451 KOPrefs *p = KOPrefs::instance();
1444 1452
1445 p->mCompactDialogs = true; 1453 p->mCompactDialogs = true;
1446 p->mConfirm = true; 1454 p->mConfirm = true;
1447 // p->mEnableQuickTodo = false; 1455 // p->mEnableQuickTodo = false;
1448 1456
1449} 1457}
1450 1458
1451QString MainWindow::resourcePath() 1459QString MainWindow::resourcePath()
1452{ 1460{
1453 return KGlobal::iconLoader()->iconPath(); 1461 return KGlobal::iconLoader()->iconPath();
1454} 1462}
1455 1463
1456void MainWindow::displayText( QString text ,QString cap ) 1464void MainWindow::displayText( QString text ,QString cap )
1457{ 1465{
1458 QDialog dia( this, "name", true ); ; 1466 QDialog dia( this, "name", true ); ;
1459 dia.setCaption( cap ); 1467 dia.setCaption( cap );
1460 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1468 QVBoxLayout* lay = new QVBoxLayout( &dia );
1461 lay->setSpacing( 3 ); 1469 lay->setSpacing( 3 );
1462 lay->setMargin( 3 ); 1470 lay->setMargin( 3 );
1463 QTextBrowser tb ( &dia ); 1471 QTextBrowser tb ( &dia );
1464 lay->addWidget( &tb ); 1472 lay->addWidget( &tb );
1465 tb.setText( text ); 1473 tb.setText( text );
1466#ifdef DESKTOP_VERSION 1474#ifdef DESKTOP_VERSION
1467 dia.resize( 640, 480); 1475 dia.resize( 640, 480);
1468#else 1476#else
1469 dia.showMaximized(); 1477 dia.showMaximized();
1470#endif 1478#endif
1471 dia.exec(); 1479 dia.exec();
1472} 1480}
1473 1481
1474void MainWindow::features() 1482void MainWindow::features()
1475{ 1483{
1476 1484
1477 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" ); 1485 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" );
1478} 1486}
1479 1487
1480void MainWindow::usertrans() 1488void MainWindow::usertrans()
1481{ 1489{
1482 1490
1483 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" ); 1491 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" );
1484} 1492}
1485 1493
1486void MainWindow::storagehowto() 1494void MainWindow::storagehowto()
1487{ 1495{
1488 KApplication::showFile( "KDE-Pim/Pi Storage HowTo", "kdepim/storagehowto.txt" ); 1496 KApplication::showFile( "KDE-Pim/Pi Storage HowTo", "kdepim/storagehowto.txt" );
1489} 1497}
1490void MainWindow::timetrackinghowto() 1498void MainWindow::timetrackinghowto()
1491{ 1499{
1492 KApplication::showFile( "KO/Pi Timetracking HowTo", "kdepim/timetrackerhowto.txt" ); 1500 KApplication::showFile( "KO/Pi Timetracking HowTo", "kdepim/timetrackerhowto.txt" );
1493} 1501}
1494void MainWindow::kdesynchowto() 1502void MainWindow::kdesynchowto()
1495{ 1503{
1496 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 1504 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
1497} 1505}
1498void MainWindow::multisynchowto() 1506void MainWindow::multisynchowto()
1499{ 1507{
1500 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" ); 1508 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" );
1501} 1509}
1502void MainWindow::synchowto() 1510void MainWindow::synchowto()
1503{ 1511{
1504 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 1512 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1505} 1513}
1506void MainWindow::faq() 1514void MainWindow::faq()
1507{ 1515{
1508 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" ); 1516 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" );
1509 1517
1510} 1518}
1511void MainWindow::whatsNew() 1519void MainWindow::whatsNew()
1512{ 1520{
1513 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 1521 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1514 1522
1515} 1523}
1516void MainWindow::licence() 1524void MainWindow::licence()
1517{ 1525{
1518 KApplication::showLicence(); 1526 KApplication::showLicence();
1519 1527
1520} 1528}
1521void MainWindow::about() 1529void MainWindow::about()
1522{ 1530{
1523 QString version; 1531 QString version;
1524#include <../version> 1532#include <../version>
1525 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1533 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1526 i18n("KOrganizer/Platform-independent\n") + 1534 i18n("KOrganizer/Platform-independent\n") +
1527 "(KO/Pi) " + version + " - " + 1535 "(KO/Pi) " + version + " - " +
1528 1536
1529#ifdef DESKTOP_VERSION 1537#ifdef DESKTOP_VERSION
1530 i18n("Desktop Edition\n") + 1538 i18n("Desktop Edition\n") +
1531#else 1539#else
1532 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") + 1540 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") +
1533#endif 1541#endif
1534 i18n("(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!") ); 1542 i18n("(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!") );
1535} 1543}
1536void MainWindow::keyBindings() 1544void MainWindow::keyBindings()
1537{ 1545{
1538 QString cap = i18n("KO/Pi Keys + Colors"); 1546 QString cap = i18n("KO/Pi Keys + Colors");
1539 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1547 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1540 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1548 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1541 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") + 1549 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") +
1542 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") + 1550 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") +
1543 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1551 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1544 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1552 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1545 i18n("<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n")+ 1553 i18n("<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n")+
1546 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1554 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1547 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1555 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1548 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+ 1556 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+
1549 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1557 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1550 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1558 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1551 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1559 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1552 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+ 1560 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+
1553 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1561 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1554 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1562 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1555 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+ 1563 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+
1556 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1564 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1557 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1565 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1558 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1566 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1559 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1567 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1560 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1568 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1561 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1569 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1562 i18n("<p><h3>In agenda view:</h3></p>\n") + 1570 i18n("<p><h3>In agenda view:</h3></p>\n") +
1563 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1571 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1564 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1572 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1565 i18n("<p><h3>In todo view:</h3></p>\n") + 1573 i18n("<p><h3>In todo view:</h3></p>\n") +
1566 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1574 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1567 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1575 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
1568 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ 1576 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+
1569 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1577 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1570 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1578 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1571 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1579 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1572 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1580 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1573 i18n("<p><h3>In list view:</h3></p>\n") + 1581 i18n("<p><h3>In list view:</h3></p>\n") +
1574 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1582 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1575 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1583 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1576 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1584 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1577 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1585 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1578 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1586 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1579 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1587 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1580 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1588 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1581 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1589 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1582 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1590 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1583 i18n("<p><b>E</b>: Edit item</p>\n") + 1591 i18n("<p><b>E</b>: Edit item</p>\n") +
1584 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1592 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1585 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1593 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1586 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1594 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1587 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1595 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1588 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1596 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1589 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1597 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1590 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1598 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1591 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1599 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1592 i18n("<p><b>White</b>: Item readonly</p>\n"); 1600 i18n("<p><b>White</b>: Item readonly</p>\n");
1593 displayText( text, cap); 1601 displayText( text, cap);
1594} 1602}
1595void MainWindow::aboutAutoSaving() 1603void MainWindow::aboutAutoSaving()
1596{ 1604{
1597 QString text = i18n("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"); 1605 QString text = i18n("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");
1598 1606
1599 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); 1607 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text);
1600 1608
1601} 1609}
1602void MainWindow::aboutKnownBugs() 1610void MainWindow::aboutKnownBugs()
1603{ 1611{
1604 QMessageBox* msg; 1612 QMessageBox* msg;
1605 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1613 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1606 i18n("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")+ 1614 i18n("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")+
1607 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1615 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1608 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") + 1616 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") +
1609 i18n("\nor report them in the bugtracker on\n") + 1617 i18n("\nor report them in the bugtracker on\n") +
1610 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1618 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1611 QMessageBox::NoIcon, 1619 QMessageBox::NoIcon,
1612 QMessageBox::Ok, 1620 QMessageBox::Ok,
1613 QMessageBox::NoButton, 1621 QMessageBox::NoButton,
1614 QMessageBox::NoButton); 1622 QMessageBox::NoButton);
1615 msg->exec(); 1623 msg->exec();
1616 delete msg; 1624 delete msg;
1617 1625
1618} 1626}
1619 1627
1620QString MainWindow::defaultFileName() 1628QString MainWindow::defaultFileName()
1621{ 1629{
1622 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1630 return locateLocal( "data", "korganizer/mycalendar.ics" );
1623} 1631}
1624QString MainWindow::syncFileName() 1632QString MainWindow::syncFileName()
1625{ 1633{
1626#ifdef DESKTOP_VERSION 1634#ifdef DESKTOP_VERSION
1627 return locateLocal( "tmp", "synccalendar.ics" ); 1635 return locateLocal( "tmp", "synccalendar.ics" );
1628#else 1636#else
1629 return QString( "/tmp/synccalendar.ics" ); 1637 return QString( "/tmp/synccalendar.ics" );
1630#endif 1638#endif
1631} 1639}
1632#include "koglobals.h" 1640#include "koglobals.h"
1633#include <kcalendarsystem.h> 1641#include <kcalendarsystem.h>
1634void MainWindow::updateWeek(QDate seda) 1642void MainWindow::updateWeek(QDate seda)
1635{ 1643{
1636 int weekNum = KGlobal::locale()->weekNum ( seda ); 1644 int weekNum = KGlobal::locale()->weekNum ( seda );
1637 mWeekPixmap.fill( mWeekBgColor ); 1645 mWeekPixmap.fill( mWeekBgColor );
1638 QPainter p ( &mWeekPixmap ); 1646 QPainter p ( &mWeekPixmap );
1639 p.setFont( mWeekFont ); 1647 p.setFont( mWeekFont );
1640 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) ); 1648 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) );
1641 p.end(); 1649 p.end();
1642 QIconSet icon3 ( mWeekPixmap ); 1650 QIconSet icon3 ( mWeekPixmap );
1643 mWeekAction->setIconSet ( icon3 ); 1651 mWeekAction->setIconSet ( icon3 );
1644 1652
1645} 1653}
1646void MainWindow::updateWeekNum(const DateList &selectedDates) 1654void MainWindow::updateWeekNum(const DateList &selectedDates)
1647{ 1655{
1648 updateWeek( selectedDates.first() ); 1656 updateWeek( selectedDates.first() );
1649} 1657}
1650void MainWindow::processIncidenceSelection( Incidence *incidence ) 1658void MainWindow::processIncidenceSelection( Incidence *incidence )
1651{ 1659{
1652 if ( !incidence ) { 1660 if ( !incidence ) {
1653 mShowAction->setMenuText( i18n("Show") ); 1661 mShowAction->setMenuText( i18n("Show") );
1654 enableIncidenceActions( false ); 1662 enableIncidenceActions( false );
1655 mNewSubTodoAction->setEnabled( false ); 1663 mNewSubTodoAction->setEnabled( false );
1656 setCaptionToDates(); 1664 setCaptionToDates();
1657 return; 1665 return;
1658 } 1666 }
1659 QString startString = ""; 1667 QString startString = "";
1660 if ( incidence->typeID() != todoID ) { 1668 if ( incidence->typeID() != todoID ) {
1661 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1669 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1662 if ( incidence->doesFloat() ) { 1670 if ( incidence->doesFloat() ) {
1663 startString += ": "+incidence->dtStartDateStr( true ); 1671 startString += ": "+incidence->dtStartDateStr( true );
1664 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1672 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1665 } else { 1673 } else {
1666 startString = ": "+incidence->dtStartStr(true); 1674 startString = ": "+incidence->dtStartStr(true);
1667 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1675 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1668 } 1676 }
1669 } else { 1677 } else {
1670 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1678 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1671 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1679 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1672 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1680 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1673 if ( incidence->isBirthday() || incidence->isAnniversary() ) { 1681 if ( incidence->isBirthday() || incidence->isAnniversary() ) {
1674 bool ok; 1682 bool ok;
1675 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok ); 1683 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok );
1676 if ( ok ) { 1684 if ( ok ) {
1677 int years = noc.date().year() - incidence->dtStart().date().year(); 1685 int years = noc.date().year() - incidence->dtStart().date().year();
1678 startString += i18n(" (%1 y.)"). arg( years ); 1686 startString += i18n(" (%1 y.)"). arg( years );
1679 } 1687 }
1680 } 1688 }
1681 else 1689 else
1682 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1690 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1683 } 1691 }
1684 } 1692 }
1685 else { 1693 else {
1686 if ( (( KCal::Todo*)incidence)->percentComplete() == 100 ) 1694 if ( (( KCal::Todo*)incidence)->percentComplete() == 100 )
1687 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+i18n("completed on %1").arg( (( KCal::Todo*)incidence)->completedStr(true) ); 1695 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+i18n("completed on %1").arg( (( KCal::Todo*)incidence)->completedStr(true) );
1688 else 1696 else
1689 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1697 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1690 } 1698 }
1691 if ( !incidence->location().isEmpty() ) 1699 if ( !incidence->location().isEmpty() )
1692 startString += " (" +incidence->location()+")"; 1700 startString += " (" +incidence->location()+")";
1693 setCaption( incidence->summary()+startString); 1701 setCaption( incidence->summary()+startString);
1694 enableIncidenceActions( true ); 1702 enableIncidenceActions( true );
1695 if ( incidence->typeID() == eventID ) { 1703 if ( incidence->typeID() == eventID ) {
1696 mShowAction->setMenuText( i18n("Show Event") ); 1704 mShowAction->setMenuText( i18n("Show Event") );
1697 mNewSubTodoAction->setEnabled( false ); 1705 mNewSubTodoAction->setEnabled( false );
1698 } else if ( incidence->typeID() == todoID ) { 1706 } else if ( incidence->typeID() == todoID ) {
1699 mShowAction->setMenuText( i18n("Show Todo") ); 1707 mShowAction->setMenuText( i18n("Show Todo") );
1700 mNewSubTodoAction->setEnabled( true ); 1708 mNewSubTodoAction->setEnabled( true );
1701 } else { 1709 } else {
1702 mShowAction->setMenuText( i18n("Show") ); 1710 mShowAction->setMenuText( i18n("Show") );
1703 mNewSubTodoAction->setEnabled( false ); 1711 mNewSubTodoAction->setEnabled( false );
1704 } 1712 }
1705} 1713}
1706 1714
1707void MainWindow::enableIncidenceActions( bool enabled ) 1715void MainWindow::enableIncidenceActions( bool enabled )
1708{ 1716{
1709 mShowAction->setEnabled( enabled ); 1717 mShowAction->setEnabled( enabled );
1710 mEditAction->setEnabled( enabled ); 1718 mEditAction->setEnabled( enabled );
1711 mDeleteAction->setEnabled( enabled ); 1719 mDeleteAction->setEnabled( enabled );
1712 1720
1713 mCloneAction->setEnabled( enabled ); 1721 mCloneAction->setEnabled( enabled );
1714 mMoveAction->setEnabled( enabled ); 1722 mMoveAction->setEnabled( enabled );
1715#ifndef DESKTOP_VERSION 1723#ifndef DESKTOP_VERSION
1716 mBeamAction->setEnabled( enabled ); 1724 mBeamAction->setEnabled( enabled );
1717#endif 1725#endif
1718 mCancelAction->setEnabled( enabled ); 1726 mCancelAction->setEnabled( enabled );
1719} 1727}
1720 1728
1721void MainWindow::importOL() 1729void MainWindow::importOL()
1722{ 1730{
1723#ifdef _OL_IMPORT_ 1731#ifdef _OL_IMPORT_
1724 mView->clearAllViews(); 1732 mView->clearAllViews();
1725 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1733 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1726 id->exec(); 1734 id->exec();
1727 delete id; 1735 delete id;
1728 mView->calendar()->checkAlarmForIncidence( 0, true ); 1736 mView->calendar()->checkAlarmForIncidence( 0, true );
1729 mView->updateView(); 1737 mView->updateView();
1730#endif 1738#endif
1731} 1739}
1732void MainWindow::importBday() 1740void MainWindow::importBday()
1733{ 1741{
1734 int result = QMessageBox::warning( this, i18n("KO/Pi import information!"), 1742 int result = QMessageBox::warning( this, i18n("KO/Pi import information!"),
1735 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1743 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1736 i18n("Import!"), i18n("Cancel"), 0, 1744 i18n("Import!"), i18n("Cancel"), 0,
1737 0, 1 ); 1745 0, 1 );
1738 if ( result == 0 ) { 1746 if ( result == 0 ) {
1739 mView->importBday(); 1747 mView->importBday();
1740 1748
1741 } 1749 }
1742 1750
1743 1751
1744} 1752}
1745void MainWindow::importQtopia() 1753void MainWindow::importQtopia()
1746{ 1754{
1747 //#ifndef DESKTOP_VERSION 1755 //#ifndef DESKTOP_VERSION
1748 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); 1756 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing");
1749#ifdef DESKTOP_VERSION 1757#ifdef DESKTOP_VERSION
1750 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); 1758 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml");
1751#endif 1759#endif
1752 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, 1760 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess,
1753 i18n("Import!"), i18n("Cancel"), 0, 1761 i18n("Import!"), i18n("Cancel"), 0,
1754 0, 1 ); 1762 0, 1 );
1755 if ( result == 0 ) { 1763 if ( result == 0 ) {
1756#ifndef DESKTOP_VERSION 1764#ifndef DESKTOP_VERSION
1757 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1765 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1758 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1766 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1759 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1767 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1760#else 1768#else
1761 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; 1769 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml";
1762 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; 1770 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml";
1763 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; 1771 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml";
1764#endif 1772#endif
1765 mView->importQtopia( categories, datebook, todolist ); 1773 mView->importQtopia( categories, datebook, todolist );
1766 } 1774 }
1767 mView->calendar()->reInitAlarmSettings(); 1775 mView->calendar()->reInitAlarmSettings();
1768#if 0 1776#if 0
1769 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1777 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1770 i18n("Not supported \non desktop!\n"), 1778 i18n("Not supported \non desktop!\n"),
1771 i18n("Ok"), i18n("Cancel"), 0, 1779 i18n("Ok"), i18n("Cancel"), 0,
1772 0, 1 ); 1780 0, 1 );
1773 1781
1774#endif 1782#endif
1775} 1783}
1776 1784
1777void MainWindow::saveOnClose() 1785void MainWindow::saveOnClose()
1778{ 1786{
1779 KOPrefs *p = KOPrefs::instance(); 1787 KOPrefs *p = KOPrefs::instance();
1780 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1788 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1781 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); 1789 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal );
1782 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); 1790 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal );
1783 if ( filterToolBar ) { 1791 if ( filterToolBar ) {
1784 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); 1792 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal );
1785 } 1793 }
1786#ifdef DESKTOP_VERSION 1794#ifdef DESKTOP_VERSION
1787 1795
1788 QPoint myP; 1796 QPoint myP;
1789 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) ); 1797 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) );
1790 if ( p->mToolBarHor ) 1798 if ( p->mToolBarHor )
1791 p->mToolBarUp = myP.y() > height()/2; 1799 p->mToolBarUp = myP.y() > height()/2;
1792 else 1800 else
1793 p->mToolBarUp = myP.x() > width()/2; 1801 p->mToolBarUp = myP.x() > width()/2;
1794 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) ); 1802 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) );
1795 if ( p->mToolBarHorV ) 1803 if ( p->mToolBarHorV )
1796 p->mToolBarUpV = myP.y() > height()/2; 1804 p->mToolBarUpV = myP.y() > height()/2;
1797 else 1805 else
1798 p->mToolBarUpV = myP.x() > width()/2 ; 1806 p->mToolBarUpV = myP.x() > width()/2 ;
1799 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) ); 1807 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) );
1800 if ( p->mToolBarHorN ) 1808 if ( p->mToolBarHorN )
1801 p->mToolBarUpN = myP.y() > height()/2; 1809 p->mToolBarUpN = myP.y() > height()/2;
1802 else 1810 else
1803 p->mToolBarUpN = myP.x() > width()/2 ; 1811 p->mToolBarUpN = myP.x() > width()/2 ;
1804 if ( filterToolBar ) { 1812 if ( filterToolBar ) {
1805 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) ); 1813 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) );
1806 if ( p->mToolBarHorF ) 1814 if ( p->mToolBarHorF )
1807 p->mToolBarUpF = myP.y() > height()/2; 1815 p->mToolBarUpF = myP.y() > height()/2;
1808 else 1816 else
1809 p->mToolBarUpF = myP.x() > width()/2 ; 1817 p->mToolBarUpF = myP.x() > width()/2 ;
1810 } 1818 }
1811#else 1819#else
1812 if ( p->mToolBarHor ) 1820 if ( p->mToolBarHor )
1813 p->mToolBarUp = iconToolBar->y() > height()/2; 1821 p->mToolBarUp = iconToolBar->y() > height()/2;
1814 else 1822 else
1815 p->mToolBarUp = iconToolBar->x() > width()/2; 1823 p->mToolBarUp = iconToolBar->x() > width()/2;
1816 if ( p->mToolBarHorV ) 1824 if ( p->mToolBarHorV )
1817 p->mToolBarUpV = viewToolBar->y() > height()/2; 1825 p->mToolBarUpV = viewToolBar->y() > height()/2;
1818 else 1826 else
1819 p->mToolBarUpV = viewToolBar->x() > width()/2 ; 1827 p->mToolBarUpV = viewToolBar->x() > width()/2 ;
1820 1828
1821 if ( p->mToolBarHorN ) 1829 if ( p->mToolBarHorN )
1822 p->mToolBarUpN = navigatorToolBar->y() > height()/2; 1830 p->mToolBarUpN = navigatorToolBar->y() > height()/2;
1823 else 1831 else
1824 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; 1832 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ;
1825 if ( filterToolBar ) { 1833 if ( filterToolBar ) {
1826 if ( p->mToolBarHorF ) 1834 if ( p->mToolBarHorF )
1827 p->mToolBarUpF = filterToolBar->y() > height()/2; 1835 p->mToolBarUpF = filterToolBar->y() > height()/2;
1828 else 1836 else
1829 p->mToolBarUpF = filterToolBar->x() > width()/2 ; 1837 p->mToolBarUpF = filterToolBar->x() > width()/2 ;
1830 } 1838 }
1831#endif 1839#endif
1832 save(); 1840 save();
1833 mView->writeSettings(); 1841 mView->writeSettings();
1834 mView->checkSuspendAlarm(); 1842 mView->checkSuspendAlarm();
1835} 1843}
1836void MainWindow::slotModifiedChanged( bool ) 1844void MainWindow::slotModifiedChanged( bool )
1837{ 1845{
1838 if ( mBlockAtStartup ) 1846 if ( mBlockAtStartup )
1839 return; 1847 return;
1840 1848
1841 int msec; 1849 int msec;
1842 // we store the changes after 1 minute, 1850 // we store the changes after 1 minute,
1843 // and for safety reasons after 10 minutes again 1851 // and for safety reasons after 10 minutes again
1844 if ( !mSyncManager->blockSave() ) 1852 if ( !mSyncManager->blockSave() )
1845 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1853 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1846 else 1854 else
1847 msec = 1000 * 600; 1855 msec = 1000 * 600;
1848 mSaveTimer.start( msec, true ); // 1 minute 1856 mSaveTimer.start( msec, true ); // 1 minute
1849 qDebug("KO: Saving File in %d secs!", msec/1000); 1857 qDebug("KO: Saving File in %d secs!", msec/1000);
1850 mCalendarModifiedFlag = true; 1858 mCalendarModifiedFlag = true;
1851} 1859}
1852void MainWindow::saveStopTimer() 1860void MainWindow::saveStopTimer()
1853{ 1861{
1854 mSaveTimer.stop(); 1862 mSaveTimer.stop();
1855} 1863}
1856void MainWindow::backupAllFiles() 1864void MainWindow::backupAllFiles()
1857{ 1865{
1858 QDate reference ( 2000,1,1); 1866 QDate reference ( 2000,1,1);
1859 int daysTo = reference.daysTo ( QDate::currentDate() ); 1867 int daysTo = reference.daysTo ( QDate::currentDate() );
1860 setCaption(i18n("Creating backup ... please wait ..." )); 1868 setCaption(i18n("Creating backup ... please wait ..." ));
1861 qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); 1869 qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate);
1862 // we need the file path, the backup dir and the number of bups as param 1870 // we need the file path, the backup dir and the number of bups as param
1863 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; 1871 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir;
1864 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) 1872 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir)
1865 bupDir = KGlobalSettings::backupDataDir(); 1873 bupDir = KGlobalSettings::backupDataDir();
1866 int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); 1874 int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers );
1867 if ( retval == 0 ) { 1875 if ( retval == 0 ) {
1868 setCaption(i18n("Backup cancelled" )); 1876 setCaption(i18n("Backup cancelled" ));
1869 qDebug("KO: Backup cancelled. Will try again tomorrow "); 1877 qDebug("KO: Backup cancelled. Will try again tomorrow ");
1870 // retval == 0 : backup skipped for today, try again tomorrow 1878 // retval == 0 : backup skipped for today, try again tomorrow
1871 KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; 1879 KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1;
1872 } else if ( retval == 1 ){ 1880 } else if ( retval == 1 ){
1873 qDebug("KO: Backup created."); 1881 qDebug("KO: Backup created.");
1874 // backup ok 1882 // backup ok
1875 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; 1883 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
1876 KopiCalendarFile * cal = calendars.first(); 1884 KopiCalendarFile * cal = calendars.first();
1877 cal = calendars.next(); 1885 cal = calendars.next();
1878 while ( cal ) { 1886 while ( cal ) {
1879 if ( !cal->mErrorOnLoad ) { 1887 if ( !cal->mErrorOnLoad ) {
1880 KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); 1888 KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers );
1881 } 1889 }
1882 cal = calendars.next(); 1890 cal = calendars.next();
1883 } 1891 }
1884 KOPrefs::instance()->mLastBackupDate = daysTo; 1892 KOPrefs::instance()->mLastBackupDate = daysTo;
1885 setCaption(i18n("Backup succesfully finished" )); 1893 setCaption(i18n("Backup succesfully finished" ));
1886 } else if ( retval == 2 ){ 1894 } else if ( retval == 2 ){
1887 setCaption(i18n("Backup globally disabled" )); 1895 setCaption(i18n("Backup globally disabled" ));
1888 qDebug("KO: Backup globally cancelled."); 1896 qDebug("KO: Backup globally cancelled.");
1889 // backup globally cancelled 1897 // backup globally cancelled
1890 KPimGlobalPrefs::instance()->mBackupEnabled = false; 1898 KPimGlobalPrefs::instance()->mBackupEnabled = false;
1891 } 1899 }
1892 // retval == 3: do nothing, try again later 1900 // retval == 3: do nothing, try again later
1893} 1901}
1894void MainWindow::save() 1902void MainWindow::save()
1895{ 1903{
1896 1904
1897 if ( mView->viewManager()->journalView() ) 1905 if ( mView->viewManager()->journalView() )
1898 mView->viewManager()->journalView()->checkModified(); 1906 mView->viewManager()->journalView()->checkModified();
1899 if ( !mCalendarModifiedFlag ) { 1907 if ( !mCalendarModifiedFlag ) {
1900 qDebug("KO: Calendar not modified. Nothing saved."); 1908 qDebug("KO: Calendar not modified. Nothing saved.");
1901 return; 1909 return;
1902 } 1910 }
1903 if ( mSyncManager->blockSave() ) 1911 if ( mSyncManager->blockSave() )
1904 return; 1912 return;
1905 mSyncManager->setBlockSave(true); 1913 mSyncManager->setBlockSave(true);
1906 if ( mView->checkAllFileVersions() ) { 1914 if ( mView->checkAllFileVersions() ) {
1907 if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ 1915 if ( KPimGlobalPrefs::instance()->mBackupEnabled ){
1908 QDate reference ( 2000,1,1); 1916 QDate reference ( 2000,1,1);
1909 int daysTo = reference.daysTo ( QDate::currentDate() ); 1917 int daysTo = reference.daysTo ( QDate::currentDate() );
1910 if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { 1918 if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) {
1911 backupAllFiles(); 1919 backupAllFiles();
1912 } 1920 }
1913 ; // KPimGlobalPrefs::instance()->mLastBackupDate 1921 ; // KPimGlobalPrefs::instance()->mLastBackupDate
1914 } 1922 }
1915 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1923 QTime neededSaveTime = QDateTime::currentDateTime().time();
1916 if ( !isMinimized () ) 1924 if ( !isMinimized () )
1917 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1925 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1918 qDebug("KO: Start saving data to file!"); 1926 qDebug("KO: Start saving data to file!");
1919 mView->saveCalendars(); 1927 mView->saveCalendars();
1920 mCalendarModifiedFlag = false; 1928 mCalendarModifiedFlag = false;
1921 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1929 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1922 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1930 qDebug("KO: Needed %d ms for saving.",msNeeded );
1923 QString savemes; 1931 QString savemes;
1924 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1932 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1925 if ( !isMinimized () ) 1933 if ( !isMinimized () )
1926 setCaption(savemes); 1934 setCaption(savemes);
1927 else 1935 else
1928 qDebug(savemes); 1936 qDebug(savemes);
1929 } else 1937 } else
1930 setCaption(i18n("Saving cancelled!")); 1938 setCaption(i18n("Saving cancelled!"));
1931 mSyncManager->setBlockSave( false ); 1939 mSyncManager->setBlockSave( false );
1932} 1940}
1933 1941
1934void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1942void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1935{ 1943{
1936 if ( !e->isAutoRepeat() ) { 1944 if ( !e->isAutoRepeat() ) {
1937 mFlagKeyPressed = false; 1945 mFlagKeyPressed = false;
1938 } 1946 }
1939} 1947}
1940void MainWindow::keyPressEvent ( QKeyEvent * e ) 1948void MainWindow::keyPressEvent ( QKeyEvent * e )
1941{ 1949{
1942 qApp->processEvents(); 1950 qApp->processEvents();
1943 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1951 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1944 e->ignore(); 1952 e->ignore();
1945 // qDebug(" ignore %d",e->isAutoRepeat() ); 1953 // qDebug(" ignore %d",e->isAutoRepeat() );
1946 return; 1954 return;
1947 } 1955 }
1948 if (! e->isAutoRepeat() ) 1956 if (! e->isAutoRepeat() )
1949 mFlagKeyPressed = true; 1957 mFlagKeyPressed = true;
1950 KOPrefs *p = KOPrefs::instance(); 1958 KOPrefs *p = KOPrefs::instance();
1951 bool showSelectedDates = false; 1959 bool showSelectedDates = false;
1952 int size; 1960 int size;
1953 int pro = 0; 1961 int pro = 0;
1954 //qDebug("MainWindow::keyPressEvent "); 1962 //qDebug("MainWindow::keyPressEvent ");
1955 switch ( e->key() ) { 1963 switch ( e->key() ) {
1956 case Qt::Key_Right: 1964 case Qt::Key_Right:
1957 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1965 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1958 mView->goNextMonth(); 1966 mView->goNextMonth();
1959 else 1967 else
1960 mView->goNext(); 1968 mView->goNext();
1961 showSelectedDates = true; 1969 showSelectedDates = true;
1962 break; 1970 break;
1963 case Qt::Key_Left: 1971 case Qt::Key_Left:
1964 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1972 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1965 mView->goPreviousMonth(); 1973 mView->goPreviousMonth();
1966 else 1974 else
1967 mView->goPrevious(); 1975 mView->goPrevious();
1968 showSelectedDates = true; 1976 showSelectedDates = true;
1969 break; 1977 break;
1970 case Qt::Key_Down: 1978 case Qt::Key_Down:
1971 mView->viewManager()->agendaView()->scrollOneHourDown(); 1979 mView->viewManager()->agendaView()->scrollOneHourDown();
1972 break; 1980 break;
1973 case Qt::Key_Up: 1981 case Qt::Key_Up:
1974 mView->viewManager()->agendaView()->scrollOneHourUp(); 1982 mView->viewManager()->agendaView()->scrollOneHourUp();
1975 break; 1983 break;
1976 case Qt::Key_K: 1984 case Qt::Key_K:
1977 mView->viewManager()->showMonthViewWeek(); 1985 mView->viewManager()->showMonthViewWeek();
1978 break; 1986 break;
1979 case Qt::Key_I: 1987 case Qt::Key_I:
1980 mView->showIncidence(); 1988 mView->showIncidence();
1981 break; 1989 break;
1982 case Qt::Key_Delete: 1990 case Qt::Key_Delete:
1983 case Qt::Key_Backspace: 1991 case Qt::Key_Backspace:
1984 mView->deleteIncidence(); 1992 mView->deleteIncidence();
1985 break; 1993 break;
1986 case Qt::Key_D: 1994 case Qt::Key_D:
1987 mView->viewManager()->showDayView(); 1995 mView->viewManager()->showDayView();
1988 showSelectedDates = true; 1996 showSelectedDates = true;
1989 break; 1997 break;
1990 case Qt::Key_O: 1998 case Qt::Key_O:
1991 mView->toggleFilerEnabled( ); 1999 mView->toggleFilerEnabled( );
1992 break; 2000 break;
1993 case Qt::Key_0: 2001 case Qt::Key_0:
1994 case Qt::Key_1: 2002 case Qt::Key_1:
1995 case Qt::Key_2: 2003 case Qt::Key_2:
1996 case Qt::Key_3: 2004 case Qt::Key_3:
1997 case Qt::Key_4: 2005 case Qt::Key_4:
1998 case Qt::Key_5: 2006 case Qt::Key_5:
1999 case Qt::Key_6: 2007 case Qt::Key_6:
2000 case Qt::Key_7: 2008 case Qt::Key_7:
2001 case Qt::Key_8: 2009 case Qt::Key_8:
2002 case Qt::Key_9: 2010 case Qt::Key_9:
2003 pro = e->key()-48; 2011 pro = e->key()-48;
2004 if ( pro == 0 ) 2012 if ( pro == 0 )
2005 pro = 10; 2013 pro = 10;
2006 if ( e->state() == Qt::ControlButton) 2014 if ( e->state() == Qt::ControlButton)
2007 pro += 10; 2015 pro += 10;
2008 break; 2016 break;
2009 case Qt::Key_M: 2017 case Qt::Key_M:
2010 mView->viewManager()->showMonthView(); 2018 mView->viewManager()->showMonthView();
2011 showSelectedDates = true; 2019 showSelectedDates = true;
2012 break; 2020 break;
2013 case Qt::Key_Insert: 2021 case Qt::Key_Insert:
2014 mView->newEvent(); 2022 mView->newEvent();
2015 break; 2023 break;
2016 case Qt::Key_S : 2024 case Qt::Key_S :
2017 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 2025 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
2018 mView->newSubTodo(); 2026 mView->newSubTodo();
2019 else 2027 else
2020 mView->dialogManager()->showSearchDialog(); 2028 mView->dialogManager()->showSearchDialog();
2021 break; 2029 break;
2022 case Qt::Key_Y : 2030 case Qt::Key_Y :
2023 case Qt::Key_Z : 2031 case Qt::Key_Z :
2024 mView->viewManager()->showWorkWeekView(); 2032 mView->viewManager()->showWorkWeekView();
2025 showSelectedDates = true; 2033 showSelectedDates = true;
2026 break; 2034 break;
2027 case Qt::Key_U : 2035 case Qt::Key_U :
2028 mView->viewManager()->showWeekView(); 2036 mView->viewManager()->showWeekView();
2029 showSelectedDates = true; 2037 showSelectedDates = true;
2030 break; 2038 break;
2031 case Qt::Key_H : 2039 case Qt::Key_H :
2032 keyBindings(); 2040 keyBindings();
2033 break; 2041 break;
2034 case Qt::Key_W: 2042 case Qt::Key_W:
2035 mView->viewManager()->showWhatsNextView(); 2043 mView->viewManager()->showWhatsNextView();
2036 break; 2044 break;
2037 case Qt::Key_L: 2045 case Qt::Key_L:
2038 mView->viewManager()->showListView(); 2046 mView->viewManager()->showListView();
2039 break; 2047 break;
2040 case Qt::Key_N: 2048 case Qt::Key_N:
2041 mView->viewManager()->showNextView(); 2049 mView->viewManager()->showNextView();
2042 break; 2050 break;
2043 case Qt::Key_V: 2051 case Qt::Key_V:
2044 mView->viewManager()->showTodoView(); 2052 mView->viewManager()->showTodoView();
2045 break; 2053 break;
2046 case Qt::Key_C: 2054 case Qt::Key_C:
2047 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 2055 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
2048 break; 2056 break;
2049 case Qt::Key_P: 2057 case Qt::Key_P:
2050 mView->showDatePicker( ); 2058 mView->showDatePicker( );
2051 break; 2059 break;
2052 case Qt::Key_F: 2060 case Qt::Key_F:
2053 mView->editFilters(); 2061 mView->editFilters();
2054 break; 2062 break;
2055 case Qt::Key_R: 2063 case Qt::Key_R:
2056 mView->toggleFilter(); 2064 mView->toggleFilter();
2057 break; 2065 break;
2058 case Qt::Key_X: 2066 case Qt::Key_X:
2059 if ( e->state() == Qt::ControlButton ) 2067 if ( e->state() == Qt::ControlButton )
2060 mView->toggleDateNavigatorWidget(); 2068 mView->toggleDateNavigatorWidget();
2061 else { 2069 else {
2062 mView->viewManager()->showNextXView(); 2070 mView->viewManager()->showNextXView();
2063 showSelectedDates = true; 2071 showSelectedDates = true;
2064 } 2072 }
2065 break; 2073 break;
2066 case Qt::Key_Space: 2074 case Qt::Key_Space:
2067 mView->toggleExpand(); 2075 mView->toggleExpand();
2068 break; 2076 break;
2069 case Qt::Key_A: 2077 case Qt::Key_A:
2070 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) 2078 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton )
2071 mView->showNextAlarms(); 2079 mView->showNextAlarms();
2072 else 2080 else
2073 mView->toggleAllDaySize(); 2081 mView->toggleAllDaySize();
2074 break; 2082 break;
2075 case Qt::Key_T: 2083 case Qt::Key_T:
2076 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 2084 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
2077 mView->newTodo(); 2085 mView->newTodo();
2078 else { 2086 else {
2079 mView->goToday(); 2087 mView->goToday();
2080 showSelectedDates = true; 2088 showSelectedDates = true;
2081 } 2089 }
2082 break; 2090 break;
2083 case Qt::Key_J: 2091 case Qt::Key_J:
2084 mView->viewManager()->showJournalView(); 2092 mView->viewManager()->showJournalView();
2085 break; 2093 break;
2086 case Qt::Key_B: 2094 case Qt::Key_B:
2087 mView->editIncidenceDescription();; 2095 mView->editIncidenceDescription();;
2088 break; 2096 break;
2089 // case Qt::Key_Return: 2097 // case Qt::Key_Return:
2090 case Qt::Key_E: 2098 case Qt::Key_E:
2091 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 2099 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
2092 mView->newEvent(); 2100 mView->newEvent();
2093 else 2101 else
2094 mView->editIncidence(); 2102 mView->editIncidence();
2095 break; 2103 break;
2096 case Qt::Key_Plus: 2104 case Qt::Key_Plus:
2097 size = p->mHourSize +2; 2105 size = p->mHourSize +2;
2098 if ( size <= 22 ) 2106 if ( size <= 22 )
2099 configureAgenda( size ); 2107 configureAgenda( size );
2100 break; 2108 break;
2101 case Qt::Key_Minus: 2109 case Qt::Key_Minus:
2102 size = p->mHourSize - 2; 2110 size = p->mHourSize - 2;
2103 if ( size >= 4 ) 2111 if ( size >= 4 )
2104 configureAgenda( size ); 2112 configureAgenda( size );
2105 break; 2113 break;
2106 2114
2107 2115
2108 default: 2116 default:
2109 e->ignore(); 2117 e->ignore();
2110 } 2118 }
2111 if ( pro > 0 ) { 2119 if ( pro > 0 ) {
2112 selectFilter( pro+1 ); 2120 selectFilter( pro+1 );
2113 } 2121 }
2114 if ( showSelectedDates ) { 2122 if ( showSelectedDates ) {
2115 ;// setCaptionToDates(); 2123 ;// setCaptionToDates();
2116 } 2124 }
2117 2125
2118} 2126}
2119void MainWindow::fillFilterMenuTB() 2127void MainWindow::fillFilterMenuTB()
2120{ 2128{
2121 selectFilterMenuTB->clear(); 2129 selectFilterMenuTB->clear();
2122 selectFilterMenuTB->insertItem(i18n ( "Edit Filters" ), 0 ); 2130 selectFilterMenuTB->insertItem(i18n ( "Edit Filters" ), 0 );
2123 selectFilterMenuTB->insertSeparator(); 2131 selectFilterMenuTB->insertSeparator();
2124 selectFilterMenuTB->insertItem(i18n ( "No Filter" ), 1 ); 2132 selectFilterMenuTB->insertItem(i18n ( "No Filter" ), 1 );
2125 2133
2126 selectFilterMenuTB->insertSeparator(); 2134 selectFilterMenuTB->insertSeparator();
2127 QPtrList<CalFilter> fili = mView->filters(); 2135 QPtrList<CalFilter> fili = mView->filters();
2128 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2136 CalFilter *curfilter = mView->filterView()->selectedFilter();
2129 CalFilter *filter = fili.first(); 2137 CalFilter *filter = fili.first();
2130 int iii = 2; 2138 int iii = 2;
2131 bool checkitem = mView->filterView()->filtersEnabled(); 2139 bool checkitem = mView->filterView()->filtersEnabled();
2132 while(filter) { 2140 while(filter) {
2133 selectFilterMenuTB->insertItem( filter->name(), iii ); 2141 selectFilterMenuTB->insertItem( filter->name(), iii );
2134 if ( filter == curfilter) 2142 if ( filter == curfilter)
2135 selectFilterMenuTB->setItemChecked( iii, checkitem ); 2143 selectFilterMenuTB->setItemChecked( iii, checkitem );
2136 filter = fili.next(); 2144 filter = fili.next();
2137 ++iii; 2145 ++iii;
2138 } 2146 }
2139 if ( !checkitem ) 2147 if ( !checkitem )
2140 selectFilterMenuTB->setItemChecked( 1, true ); 2148 selectFilterMenuTB->setItemChecked( 1, true );
2141 2149
2142 int x = 0; 2150 int x = 0;
2143 int y = iconToolBar->height(); 2151 int y = iconToolBar->height();
2144 int dX = 0; 2152 int dX = 0;
2145 int dY = 0; 2153 int dY = 0;
2146 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 2154 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
2147 if ( iconToolBar->y() > height()/2 ) { 2155 if ( iconToolBar->y() > height()/2 ) {
2148 dY = selectFilterMenuTB->sizeHint().height()+8; 2156 dY = selectFilterMenuTB->sizeHint().height()+8;
2149 y = 0; 2157 y = 0;
2150 } 2158 }
2151 } else { 2159 } else {
2152 if ( iconToolBar->x() > width()/2 ) { // right side 2160 if ( iconToolBar->x() > width()/2 ) { // right side
2153 x=0; 2161 x=0;
2154 dX= selectFilterMenuTB->sizeHint().width()+8; 2162 dX= selectFilterMenuTB->sizeHint().width()+8;
2155 y = 0; 2163 y = 0;
2156 } else { 2164 } else {
2157 x= iconToolBar->width(); 2165 x= iconToolBar->width();
2158 y = 0; 2166 y = 0;
2159 } 2167 }
2160 } 2168 }
2161 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() ); 2169 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() );
2162 selectFilterMenuTB->popup(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY))); 2170 selectFilterMenuTB->popup(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY)));
2163} 2171}
2164void MainWindow::fillFilterMenu() 2172void MainWindow::fillFilterMenu()
2165{ 2173{
2166 selectFilterMenu->clear(); 2174 selectFilterMenu->clear();
2167 selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 ); 2175 selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 );
2168 selectFilterMenu->insertSeparator(); 2176 selectFilterMenu->insertSeparator();
2169 selectFilterMenu->insertItem(i18n ( "No Filter" ), 1 ); 2177 selectFilterMenu->insertItem(i18n ( "No Filter" ), 1 );
2170 2178
2171 selectFilterMenu->insertSeparator(); 2179 selectFilterMenu->insertSeparator();
2172 QPtrList<CalFilter> fili = mView->filters(); 2180 QPtrList<CalFilter> fili = mView->filters();
2173 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2181 CalFilter *curfilter = mView->filterView()->selectedFilter();
2174 CalFilter *filter = fili.first(); 2182 CalFilter *filter = fili.first();
2175 int iii = 2; 2183 int iii = 2;
2176 bool checkitem = mView->filterView()->filtersEnabled(); 2184 bool checkitem = mView->filterView()->filtersEnabled();
2177 while(filter) { 2185 while(filter) {
2178 selectFilterMenu->insertItem( filter->name(), iii ); 2186 selectFilterMenu->insertItem( filter->name(), iii );
2179 if ( filter == curfilter) 2187 if ( filter == curfilter)
2180 selectFilterMenu->setItemChecked( iii, checkitem ); 2188 selectFilterMenu->setItemChecked( iii, checkitem );
2181 filter = fili.next(); 2189 filter = fili.next();
2182 ++iii; 2190 ++iii;
2183 } 2191 }
2184 if ( !checkitem ) 2192 if ( !checkitem )
2185 selectFilterMenu->setItemChecked( 1, true ); 2193 selectFilterMenu->setItemChecked( 1, true );
2186} 2194}
2187void MainWindow::fillFilterMenuPopup() 2195void MainWindow::fillFilterMenuPopup()
2188{ 2196{
2189 filterPopupMenu->clear(); 2197 filterPopupMenu->clear();
2190 filterPopupMenu->insertItem(i18n ( "No Filter" ), 0 ); 2198 filterPopupMenu->insertItem(i18n ( "No Filter" ), 0 );
2191 2199
2192 filterPopupMenu->insertSeparator(); 2200 filterPopupMenu->insertSeparator();
2193 QPtrList<CalFilter> fili = mView->filters(); 2201 QPtrList<CalFilter> fili = mView->filters();
2194 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2202 CalFilter *curfilter = mView->filterView()->selectedFilter();
2195 CalFilter *filter = fili.first(); 2203 CalFilter *filter = fili.first();
2196 int iii = 1; 2204 int iii = 1;
2197 bool checkitem = mView->filterView()->filtersEnabled(); 2205 bool checkitem = mView->filterView()->filtersEnabled();
2198 while(filter) { 2206 while(filter) {
2199 filterPopupMenu->insertItem( filter->name(), iii ); 2207 filterPopupMenu->insertItem( filter->name(), iii );
2200 if ( filter == curfilter) 2208 if ( filter == curfilter)
2201 filterPopupMenu->setItemChecked( iii, checkitem ); 2209 filterPopupMenu->setItemChecked( iii, checkitem );
2202 filter = fili.next(); 2210 filter = fili.next();
2203 ++iii; 2211 ++iii;
2204 } 2212 }
2205 if ( !checkitem ) 2213 if ( !checkitem )
2206 filterPopupMenu->setItemChecked( 0, true ); 2214 filterPopupMenu->setItemChecked( 0, true );
2207} 2215}
2208void MainWindow::selectFilter( int fil ) 2216void MainWindow::selectFilter( int fil )
2209{ 2217{
2210 2218
2211 if ( fil == 0 ) { 2219 if ( fil == 0 ) {
2212 mView->editFilters( ); 2220 mView->editFilters( );
2213 } else if ( fil == 1 ){ 2221 } else if ( fil == 1 ){
2214 if ( mView->filterView()->filtersEnabled() ) 2222 if ( mView->filterView()->filtersEnabled() )
2215 mView->toggleFilerEnabled( ); 2223 mView->toggleFilerEnabled( );
2216 } else { 2224 } else {
2217 if ( !mView->filterView()->filtersEnabled() ) { 2225 if ( !mView->filterView()->filtersEnabled() ) {
2218 mView->filterView()->blockSignals( true ); 2226 mView->filterView()->blockSignals( true );
2219 mView->toggleFilerEnabled( ); 2227 mView->toggleFilerEnabled( );
2220 mView->filterView()->blockSignals( false ); 2228 mView->filterView()->blockSignals( false );
2221 } 2229 }
2222 mView->selectFilter( fil-2 ); 2230 mView->selectFilter( fil-2 );
2223 } 2231 }
2224} 2232}
2225void MainWindow::updateFilterToolbar() 2233void MainWindow::updateFilterToolbar()
2226{ 2234{
2227 if ( filterMenubar ) { 2235 if ( filterMenubar ) {
2228 if ( !mView->filterView()->filtersEnabled() ) { 2236 if ( !mView->filterView()->filtersEnabled() ) {
2229 filterMenubar->changeItem( 0, i18n("No Filter") ); 2237 filterMenubar->changeItem( 0, i18n("No Filter") );
2230 } else { 2238 } else {
2231 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2239 CalFilter *curfilter = mView->filterView()->selectedFilter();
2232 if ( curfilter ) { 2240 if ( curfilter ) {
2233 filterMenubar->changeItem( 0, curfilter->name() ); 2241 filterMenubar->changeItem( 0, curfilter->name() );
2234 } 2242 }
2235 } 2243 }
2236 } 2244 }
2237} 2245}
2238void MainWindow::selectFilterPopup( int fil ) 2246void MainWindow::selectFilterPopup( int fil )
2239{ 2247{
2240 selectFilter( fil + 1 ); 2248 selectFilter( fil + 1 );
2241 2249
2242} 2250}
2243void MainWindow::configureToolBar( int item ) 2251void MainWindow::configureToolBar( int item )
2244{ 2252{
2245 2253
2246 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); 2254 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
2247 KOPrefs *p = KOPrefs::instance(); 2255 KOPrefs *p = KOPrefs::instance();
2248 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); 2256 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
2249 p-> mShowIconOnetoolbar = configureToolBarMenu->isItemChecked( 6 ); 2257 p-> mShowIconOnetoolbar = configureToolBarMenu->isItemChecked( 6 );
2250 p-> mShowIconFilter = configureToolBarMenu->isItemChecked( 7 ); 2258 p-> mShowIconFilter = configureToolBarMenu->isItemChecked( 7 );
2251 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); 2259 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
2252 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); 2260 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
2253 p->mShowIconNavigator = configureToolBarMenu->isItemChecked( 22 ); 2261 p->mShowIconNavigator = configureToolBarMenu->isItemChecked( 22 );
2254 p->mShowIconAllday = configureToolBarMenu->isItemChecked( 24 ); 2262 p->mShowIconAllday = configureToolBarMenu->isItemChecked( 24 );
2255 p->mShowIconFilterview = configureToolBarMenu->isItemChecked( 26 ); 2263 p->mShowIconFilterview = configureToolBarMenu->isItemChecked( 26 );
2256 p->mShowIconToggleFull = configureToolBarMenu->isItemChecked( 28 ); 2264 p->mShowIconToggleFull = configureToolBarMenu->isItemChecked( 28 );
2257 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); 2265 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
2258 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); 2266 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 );
2259 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); 2267 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 );
2260 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); 2268 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 );
2261 p-> mShowIconDay6= configureToolBarMenu->isItemChecked( 75 ); 2269 p-> mShowIconDay6= configureToolBarMenu->isItemChecked( 75 );
2262 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); 2270 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 );
2263 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); 2271 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 );
2264 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); 2272 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 );
2265 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); 2273 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 );
2266 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); 2274 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 );
2267 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); 2275 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 );
2268 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); 2276 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 );
2269 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); 2277 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 );
2270 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); 2278 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 );
2271 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); 2279 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 );
2272 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); 2280 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
2273 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); 2281 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
2274 p-> mShowIconWeekNum= configureToolBarMenu->isItemChecked( 400 ); 2282 p-> mShowIconWeekNum= configureToolBarMenu->isItemChecked( 400 );
2275 // initActions(); 2283 // initActions();
2276 setCaption ( i18n("Toolbar changes needs a restart!") ); 2284 setCaption ( i18n("Toolbar changes needs a restart!") );
2277} 2285}
2278void MainWindow::setCaption ( const QString & c ) 2286void MainWindow::setCaption ( const QString & c )
2279{ 2287{
2280 QString cap = c; 2288 QString cap = c;
2281 cap.replace( QRegExp("\n"), " " ); 2289 cap.replace( QRegExp("\n"), " " );
2282 cap = cap.stripWhiteSpace(); 2290 cap = cap.stripWhiteSpace();
2283 if ( cap.isEmpty() ) 2291 if ( cap.isEmpty() )
2284 cap = "KO/Pi"; 2292 cap = "KO/Pi";
2285 QWidget::setCaption( cap ); 2293 QWidget::setCaption( cap );
2286} 2294}
2287void MainWindow::setCaptionToDates() 2295void MainWindow::setCaptionToDates()
2288{ 2296{
2289 QString selDates; 2297 QString selDates;
2290 QDate date = mView->startDate(); 2298 QDate date = mView->startDate();
2291 if ( ! date.isValid() ) { 2299 if ( ! date.isValid() ) {
2292 setCaption(""); 2300 setCaption("");
2293 return; 2301 return;
2294 } 2302 }
2295 selDates = KGlobal::locale()->formatDate( date, true); 2303 selDates = KGlobal::locale()->formatDate( date, true);
2296 if (mView->startDate() < mView->endDate() ) 2304 if (mView->startDate() < mView->endDate() )
2297 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); 2305 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true);
2298 else { 2306 else {
2299 QString addString; 2307 QString addString;
2300 if ( date == QDateTime::currentDateTime().date() ) 2308 if ( date == QDateTime::currentDateTime().date() )
2301 addString = i18n("Today"); 2309 addString = i18n("Today");
2302 else if ( date == QDateTime::currentDateTime().date().addDays(1) ) 2310 else if ( date == QDateTime::currentDateTime().date().addDays(1) )
2303 addString = i18n("Tomorrow"); 2311 addString = i18n("Tomorrow");
2304 if ( !addString.isEmpty() ) 2312 if ( !addString.isEmpty() )
2305 selDates = addString+", "+selDates ; 2313 selDates = addString+", "+selDates ;
2306 } 2314 }
2307 setCaption( i18n("Dates: ") + selDates ); 2315 setCaption( i18n("Dates: ") + selDates );
2308 2316
2309} 2317}
2310void MainWindow::showConfigureAgenda( ) 2318void MainWindow::showConfigureAgenda( )
2311{ 2319{
2312 int iii; 2320 int iii;
2313 for ( iii = 1;iii<= 10 ;++iii ){ 2321 for ( iii = 1;iii<= 10 ;++iii ){
2314 configureAgendaMenu->setItemChecked( (iii+1)*2, false ); 2322 configureAgendaMenu->setItemChecked( (iii+1)*2, false );
2315 } 2323 }
2316 configureAgendaMenu->setItemChecked( (KOPrefs::instance()->mHourSize/2)*2, true ); 2324 configureAgendaMenu->setItemChecked( (KOPrefs::instance()->mHourSize/2)*2, true );
2317} 2325}
2318void MainWindow::configureAgenda( int item ) 2326void MainWindow::configureAgenda( int item )
2319{ 2327{
2320 if ( KOPrefs::instance()->mHourSize == item ) 2328 if ( KOPrefs::instance()->mHourSize == item )
2321 return; 2329 return;
2322 KOPrefs::instance()->mHourSize=item; 2330 KOPrefs::instance()->mHourSize=item;
2323 mView->viewManager()->agendaView()->updateConfig(); 2331 mView->viewManager()->agendaView()->updateConfig();
2324} 2332}
2325 2333
2326void MainWindow::saveCalendar() 2334void MainWindow::saveCalendar()
2327{ 2335{
2328 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; 2336 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir;
2329 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) 2337 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir)
2330 bupDir = KGlobalSettings::backupDataDir(); 2338 bupDir = KGlobalSettings::backupDataDir();
2331 bupDir = KGlobal::formatMessage ( bupDir, 0 ); 2339 bupDir = KGlobal::formatMessage ( bupDir, 0 );
2332 QString bupHint; 2340 QString bupHint;
2333 if ( !KPimGlobalPrefs::instance()->mBackupEnabled ) 2341 if ( !KPimGlobalPrefs::instance()->mBackupEnabled )
2334 bupHint = i18n("(Hint: You can enable automatic backup in the global settings!)"); 2342 bupHint = i18n("(Hint: You can enable automatic backup in the global settings!)");
2335 if ( KMessageBox::warningContinueCancel( this, i18n("This will <b>backup all calendar files</b> to the directory %1 %2").arg(bupDir).arg(bupHint),i18n("Information") ) != KMessageBox::Continue ) return; 2343 if ( KMessageBox::warningContinueCancel( this, i18n("This will <b>backup all calendar files</b> to the directory %1 %2").arg(bupDir).arg(bupHint),i18n("Information") ) != KMessageBox::Continue ) return;
2336 bool enabled = KPimGlobalPrefs::instance()->mBackupEnabled; 2344 bool enabled = KPimGlobalPrefs::instance()->mBackupEnabled;
2337 KPimGlobalPrefs::instance()->mBackupEnabled = false; 2345 KPimGlobalPrefs::instance()->mBackupEnabled = false;
2338 save(); 2346 save();
2339 KPimGlobalPrefs::instance()->mBackupEnabled = enabled; 2347 KPimGlobalPrefs::instance()->mBackupEnabled = enabled;
2340 backupAllFiles(); 2348 backupAllFiles();
2341} 2349}
2342void MainWindow::loadCalendar() 2350void MainWindow::loadCalendar()
2343{ 2351{
2344 2352
2345 2353
2346#if 0 2354#if 0
2347 QString fn = KOPrefs::instance()->mLastLoadFile; 2355 QString fn = KOPrefs::instance()->mLastLoadFile;
2348 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); 2356 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this );
2349 2357
2350 if ( fn == "" ) 2358 if ( fn == "" )
2351 return; 2359 return;
2352 QFileInfo info; 2360 QFileInfo info;
2353 info.setFile( fn ); 2361 info.setFile( fn );
2354 QString mess; 2362 QString mess;
2355 bool loadbup = true; 2363 bool loadbup = true;
2356 if ( info. exists() ) { 2364 if ( info. exists() ) {
2357 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2365 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
2358 int result = QMessageBox::warning( this, "KO/Pi: Warning!", 2366 int result = QMessageBox::warning( this, "KO/Pi: Warning!",
2359 mess, 2367 mess,
2360 i18n("Load!"), i18n("Cancel"), 0, 2368 i18n("Load!"), i18n("Cancel"), 0,
2361 0, 1 ); 2369 0, 1 );
2362 if ( result != 0 ) { 2370 if ( result != 0 ) {
2363 loadbup = false; 2371 loadbup = false;
2364 } 2372 }
2365 } else { 2373 } else {
2366 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2374 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2367 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, 2375 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0,
2368 0, 1 ); 2376 0, 1 );
2369 2377
2370 return; 2378 return;
2371 } 2379 }
2372 if ( loadbup ) { 2380 if ( loadbup ) {
2373 mView->openCalendar( fn ); 2381 mView->openCalendar( fn );
2374 KOPrefs::instance()->mLastLoadFile = fn; 2382 KOPrefs::instance()->mLastLoadFile = fn;
2375 mess = i18n("KO/Pi:Loaded %1").arg(fn) ; 2383 mess = i18n("KO/Pi:Loaded %1").arg(fn) ;
2376 setCaption(mess); 2384 setCaption(mess);
2377 } 2385 }
2378#endif 2386#endif
2379 2387
2380} 2388}
2381void MainWindow::quickImportIcal() 2389void MainWindow::quickImportIcal()
2382{ 2390{
2383 importFile( KOPrefs::instance()->mLastImportFile, false ); 2391 importFile( KOPrefs::instance()->mLastImportFile, false );
2384} 2392}
2385void MainWindow::importFile( QString fn, bool quick ) 2393void MainWindow::importFile( QString fn, bool quick )
2386{ 2394{
2387 QFileInfo info; 2395 QFileInfo info;
2388 info.setFile( fn ); 2396 info.setFile( fn );
2389 QString mess; 2397 QString mess;
2390 if ( !info. exists() ) { 2398 if ( !info. exists() ) {
2391 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); 2399 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30));
2392 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2400 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2393 mess ); 2401 mess );
2394 return; 2402 return;
2395 } 2403 }
2396 int result = 0; 2404 int result = 0;
2397 if ( !quick ) { 2405 if ( !quick ) {
2398 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2406 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
2399 result = QMessageBox::warning( this, "KO/Pi: Warning!", 2407 result = QMessageBox::warning( this, "KO/Pi: Warning!",
2400 mess, 2408 mess,
2401 "Import", "Cancel", 0, 2409 "Import", "Cancel", 0,
2402 0, 1 ); 2410 0, 1 );
2403 } 2411 }
2404 if ( result == 0 ) { 2412 if ( result == 0 ) {
2405 if ( mView->openCalendar( fn, true )) { 2413 if ( mView->openCalendar( fn, true )) {
2406 KOPrefs::instance()->mLastImportFile = fn; 2414 KOPrefs::instance()->mLastImportFile = fn;
2407 setCaption(i18n("Imported file successfully")); 2415 setCaption(i18n("Imported file successfully"));
2408 } else { 2416 } else {
2409 setCaption(i18n("Error importing file")); 2417 setCaption(i18n("Error importing file"));
2410 } 2418 }
2411 } 2419 }
2412} 2420}
2413 2421
2414void MainWindow::importIcal() 2422void MainWindow::importIcal()
2415{ 2423{
2416 2424
2417 QString fn =KOPrefs::instance()->mLastImportFile; 2425 QString fn =KOPrefs::instance()->mLastImportFile;
2418 2426
2419 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 2427 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
2420 if ( fn == "" ) 2428 if ( fn == "" )
2421 return; 2429 return;
2422 importFile( fn, true ); 2430 importFile( fn, true );
2423 2431
2424} 2432}
2425 2433
2426void MainWindow::exportVCalendar() 2434void MainWindow::exportVCalendar()
2427{ 2435{
2428 QString fn = KOPrefs::instance()->mLastVcalFile; 2436 QString fn = KOPrefs::instance()->mLastVcalFile;
2429 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 2437 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
2430 if ( fn == "" ) 2438 if ( fn == "" )
2431 return; 2439 return;
2432 QFileInfo info; 2440 QFileInfo info;
2433 info.setFile( fn ); 2441 info.setFile( fn );
2434 QString mes; 2442 QString mes;
2435 bool createbup = true; 2443 bool createbup = true;
2436 if ( info. exists() ) { 2444 if ( info. exists() ) {
2437 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 2445 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
2438 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 2446 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
2439 i18n("Overwrite!"), i18n("Cancel"), 0, 2447 i18n("Overwrite!"), i18n("Cancel"), 0,
2440 0, 1 ); 2448 0, 1 );
2441 if ( result != 0 ) { 2449 if ( result != 0 ) {
2442 createbup = false; 2450 createbup = false;
2443 } 2451 }
2444 } 2452 }
2445 if ( createbup ) { 2453 if ( createbup ) {
2446 if ( mView->exportVCalendar( fn ) ) { 2454 if ( mView->exportVCalendar( fn ) ) {
2447 KOPrefs::instance()->mLastVcalFile = fn; 2455 KOPrefs::instance()->mLastVcalFile = fn;
2448 if ( fn.length() > 20 ) 2456 if ( fn.length() > 20 )
2449 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 2457 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
2450 else 2458 else
2451 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 2459 mes = i18n("KO/Pi:Exported to %1").arg(fn );
2452 setCaption(mes); 2460 setCaption(mes);
2453 } 2461 }
2454 } 2462 }
2455 2463
2456} 2464}
2457QString MainWindow::sentSyncFile() 2465QString MainWindow::sentSyncFile()
2458{ 2466{
2459#ifdef DESKTOP_VERSION 2467#ifdef DESKTOP_VERSION
2460 return locateLocal( "tmp", "copysynccal.ics" ); 2468 return locateLocal( "tmp", "copysynccal.ics" );
2461#else 2469#else
2462 return QString( "/tmp/copysynccal.ics" ); 2470 return QString( "/tmp/copysynccal.ics" );
2463#endif 2471#endif
2464} 2472}
2465 2473
2466void MainWindow::syncFileRequest() 2474void MainWindow::syncFileRequest()
2467{ 2475{
2468 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { 2476 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) {
2469 mSyncManager->slotSyncMenu( 999 ); 2477 mSyncManager->slotSyncMenu( 999 );
2470 } 2478 }
2471 2479
2472 setCaption(i18n("Saving Data to temp file ..." )); 2480 setCaption(i18n("Saving Data to temp file ..." ));
2473 mView->saveCalendar( sentSyncFile() ); 2481 mView->saveCalendar( sentSyncFile() );
2474 setCaption(i18n("Data saved to temp file!" )); 2482 setCaption(i18n("Data saved to temp file!" ));
2475 2483
2476} 2484}
2477void MainWindow::getFile( bool success ) 2485void MainWindow::getFile( bool success )
2478{ 2486{
2479 if ( ! success ) { 2487 if ( ! success ) {
2480 setCaption( i18n("Error receiving file. Nothing changed!") ); 2488 setCaption( i18n("Error receiving file. Nothing changed!") );
2481 return; 2489 return;
2482 } 2490 }
2483 mView->openCalendar( sentSyncFile() ); 2491 mView->openCalendar( sentSyncFile() );
2484 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { 2492 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) {
2485 mSyncManager->slotSyncMenu( 999 ); 2493 mSyncManager->slotSyncMenu( 999 );
2486 } 2494 }
2487 setCaption( i18n("Pi-Sync successful!") ); 2495 setCaption( i18n("Pi-Sync successful!") );
2488} 2496}
2489void MainWindow::printListView() 2497void MainWindow::printListView()
2490{ 2498{
2491 2499
2492 QString message = i18n("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."); 2500 QString message = i18n("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.");
2493 2501
2494 KMessageBox::information( this, message); 2502 KMessageBox::information( this, message);
2495} 2503}
2496void MainWindow::printSel( ) 2504void MainWindow::printSel( )
2497{ 2505{
2498 mView->viewManager()->agendaView()->agenda()->printSelection(); 2506 mView->viewManager()->agendaView()->agenda()->printSelection();
2499} 2507}
2500 2508
2501void MainWindow::printCal() 2509void MainWindow::printCal()
2502{ 2510{
2503 mView->print();//mCp->showDialog(); 2511 mView->print();//mCp->showDialog();
2504} 2512}
2505 2513
2506 2514
2507#include "libkdepim/kdatepicker.h" 2515#include "libkdepim/kdatepicker.h"
2508#include <kdatetbl.h> 2516#include <kdatetbl.h>
2509 2517
2510void MainWindow::weekAction() 2518void MainWindow::weekAction()
2511{ 2519{
2512 int month; 2520 int month;
2513 KPopupFrame* popup = new KPopupFrame(this); 2521 KPopupFrame* popup = new KPopupFrame(this);
2514 KDateInternalWeekPicker* picker = new KDateInternalWeekPicker(popup); 2522 KDateInternalWeekPicker* picker = new KDateInternalWeekPicker(popup);
2515 // ----- 2523 // -----
2516 picker->resize(picker->sizeHint()); 2524 picker->resize(picker->sizeHint());
2517 popup->setMainWidget(picker); 2525 popup->setMainWidget(picker);
2518 picker->setFocus(); 2526 picker->setFocus();
2519 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); 2527 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int)));
2520 int x = 0; 2528 int x = 0;
2521 int y = iconToolBar->height(); 2529 int y = iconToolBar->height();
2522 int dX = 0; 2530 int dX = 0;
2523 int dY = 0; 2531 int dY = 0;
2524 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 2532 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
2525 if ( iconToolBar->y() > height()/2 ) { 2533 if ( iconToolBar->y() > height()/2 ) {
2526 dY = picker->sizeHint().height()+8; 2534 dY = picker->sizeHint().height()+8;
2527 y = 0; 2535 y = 0;
2528 } 2536 }
2529 } else { 2537 } else {
2530 if ( iconToolBar->x() > width()/2 ) { // right side 2538 if ( iconToolBar->x() > width()/2 ) { // right side
2531 x=0; 2539 x=0;
2532 dX= picker->sizeHint().width()+8; 2540 dX= picker->sizeHint().width()+8;
2533 y = 0; 2541 y = 0;
2534 } else { 2542 } else {
2535 x= iconToolBar->width(); 2543 x= iconToolBar->width();
2536 y = 0; 2544 y = 0;
2537 } 2545 }
2538 } 2546 }
2539 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() ); 2547 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() );
2540 if(popup->exec(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY)))) 2548 if(popup->exec(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY))))
2541 { 2549 {
2542 month = picker->getResult(); 2550 month = picker->getResult();
2543 emit selectWeek ( month ); 2551 emit selectWeek ( month );
2544 //qDebug("weekSelected %d ", month); 2552 //qDebug("weekSelected %d ", month);
2545 } 2553 }
2546 delete popup; 2554 delete popup;
2547} 2555}
2548 2556
2549void MainWindow::hideEvent ( QHideEvent * ) 2557void MainWindow::hideEvent ( QHideEvent * )
2550{ 2558{
2551 QString message; 2559 QString message;
2552 QDateTime nextA = mCalendar->nextAlarmEventDateTime(); 2560 QDateTime nextA = mCalendar->nextAlarmEventDateTime();
2553 if ( nextA.isValid() ) { 2561 if ( nextA.isValid() ) {
2554 QString sum = mCalendar->nextSummary(); 2562 QString sum = mCalendar->nextSummary();
2555 2563
2556 message = i18n("%1 %2 - %3 (next event/todo with alarm)").arg( KGlobal::locale()->formatTime(nextA.time() , false)).arg(sum ).arg( KGlobal::locale()->formatDate(nextA.date() , false)); 2564 message = i18n("%1 %2 - %3 (next event/todo with alarm)").arg( KGlobal::locale()->formatTime(nextA.time() , false)).arg(sum ).arg( KGlobal::locale()->formatDate(nextA.date() , false));
2557 setCaption( message ); 2565 setCaption( message );
2558 } 2566 }
2559} 2567}
2560 2568
2561void MainWindow::resizeEvent( QResizeEvent* e) 2569void MainWindow::resizeEvent( QResizeEvent* e)
2562{ 2570{
2563#ifndef DESKTOP_VERSION 2571#ifndef DESKTOP_VERSION
2564 if ( !KOPrefs::instance()->mShowIconFilter && !KOPrefs::instance()->mShowIconOnetoolbar && QApplication::desktop()->width() > 320) { 2572 if ( !KOPrefs::instance()->mShowIconFilter && !KOPrefs::instance()->mShowIconOnetoolbar && QApplication::desktop()->width() > 320) {
2565 if (QApplication::desktop()->width() > QApplication::desktop()->height() ) 2573 if (QApplication::desktop()->width() > QApplication::desktop()->height() )
2566 filterToolBar->hide(); 2574 filterToolBar->hide();
2567 else 2575 else
2568 filterToolBar->show(); 2576 filterToolBar->show();
2569 } 2577 }
2570#endif 2578#endif
2571 QMainWindow::resizeEvent( e); 2579 QMainWindow::resizeEvent( e);
2572} 2580}
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index a948a52..adab95d 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,172 +1,173 @@
1#ifndef KORGE_MAINWINDOW_H 1#ifndef KORGE_MAINWINDOW_H
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7#include <qfile.h> 7#include <qfile.h>
8#include <qmenubar.h> 8#include <qmenubar.h>
9#include <qtextstream.h> 9#include <qtextstream.h>
10#include <qregexp.h> 10#include <qregexp.h>
11 11
12#include <libkcal/incidence.h> 12#include <libkcal/incidence.h>
13#include <ksyncmanager.h> 13#include <ksyncmanager.h>
14#ifndef DESKTOP_VERSION 14#ifndef DESKTOP_VERSION
15#include <qcopchannel_qws.h> 15#include <qcopchannel_qws.h>
16#endif 16#endif
17class QAction; 17class QAction;
18class CalendarView; 18class CalendarView;
19class KSyncProfile; 19class KSyncProfile;
20#ifdef DESKTOP_VERSION 20#ifdef DESKTOP_VERSION
21 21
22#define QPEToolBar QToolBar 22#define QPEToolBar QToolBar
23#define QPEMenuBar QMenuBar 23#define QPEMenuBar QMenuBar
24#endif 24#endif
25class QPEToolBar; 25class QPEToolBar;
26class QPEMenuBar; 26class QPEMenuBar;
27 27
28 28
29namespace KCal { 29namespace KCal {
30class CalendarLocal; 30class CalendarLocal;
31} 31}
32 32
33using namespace KCal; 33using namespace KCal;
34 34
35class MainWindow : public QMainWindow 35class MainWindow : public QMainWindow
36{ 36{
37 Q_OBJECT 37 Q_OBJECT
38 public: 38 public:
39 MainWindow( QWidget *parent = 0, const char *name = 0 ); 39 MainWindow( QWidget *parent = 0, const char *name = 0 );
40 ~MainWindow(); 40 ~MainWindow();
41 bool beamReceiveEnabled(); 41 bool beamReceiveEnabled();
42 static QString defaultFileName(); 42 static QString defaultFileName();
43 static QString syncFileName(); 43 static QString syncFileName();
44 static QString resourcePath(); 44 static QString resourcePath();
45 public slots: 45 public slots:
46 void setUsesBigPixmaps ( bool ); 46 void setUsesBigPixmaps ( bool );
47 void setCaption ( const QString & ); 47 void setCaption ( const QString & );
48 void updateWeekNum(const KCal::DateList &); 48 void updateWeekNum(const KCal::DateList &);
49 void updateWeek(QDate); 49 void updateWeek(QDate);
50 void updateFilterToolbar(); 50 void updateFilterToolbar();
51 virtual void showMaximized (); 51 virtual void showMaximized ();
52 void configureAgenda( int ); 52 void configureAgenda( int );
53 void recieve( const QCString& msg, const QByteArray& data ); 53 void recieve( const QCString& msg, const QByteArray& data );
54 protected slots: 54 protected slots:
55 void calHint();
55 void startMultiSync(); 56 void startMultiSync();
56 void setCaptionToDates(); 57 void setCaptionToDates();
57 void weekAction(); 58 void weekAction();
58 void about(); 59 void about();
59 void licence(); 60 void licence();
60 void faq(); 61 void faq();
61 void usertrans(); 62 void usertrans();
62 void features(); 63 void features();
63 void synchowto(); 64 void synchowto();
64 void storagehowto(); 65 void storagehowto();
65 void timetrackinghowto(); 66 void timetrackinghowto();
66 void kdesynchowto(); 67 void kdesynchowto();
67 void multisynchowto(); 68 void multisynchowto();
68 void whatsNew(); 69 void whatsNew();
69 void keyBindings(); 70 void keyBindings();
70 void aboutAutoSaving();; 71 void aboutAutoSaving();;
71 void aboutKnownBugs(); 72 void aboutKnownBugs();
72 73
73 void processIncidenceSelection( Incidence * ); 74 void processIncidenceSelection( Incidence * );
74 75
75 void importQtopia(); 76 void importQtopia();
76 void importBday(); 77 void importBday();
77 void importOL(); 78 void importOL();
78 void importIcal(); 79 void importIcal();
79 void importFile( QString, bool ); 80 void importFile( QString, bool );
80 void quickImportIcal(); 81 void quickImportIcal();
81 82
82 void slotModifiedChanged( bool ); 83 void slotModifiedChanged( bool );
83 84
84 void save(); 85 void save();
85 void backupAllFiles(); 86 void backupAllFiles();
86 void saveStopTimer(); 87 void saveStopTimer();
87 void configureToolBar( int ); 88 void configureToolBar( int );
88 void printSel(); 89 void printSel();
89 void printCal(); 90 void printCal();
90 void printListView(); 91 void printListView();
91 void saveCalendar(); 92 void saveCalendar();
92 void loadCalendar(); 93 void loadCalendar();
93 void exportVCalendar(); 94 void exportVCalendar();
94 void fillFilterMenu(); 95 void fillFilterMenu();
95 void fillFilterMenuTB(); 96 void fillFilterMenuTB();
96 void selectFilter( int ); 97 void selectFilter( int );
97 void fillFilterMenuPopup(); 98 void fillFilterMenuPopup();
98 void selectFilterPopup( int ); 99 void selectFilterPopup( int );
99 void exportToPhone( int ); 100 void exportToPhone( int );
100 void toggleBeamReceive(); 101 void toggleBeamReceive();
101 void disableBR(bool); 102 void disableBR(bool);
102 signals: 103 signals:
103 void selectWeek ( int ); 104 void selectWeek ( int );
104 private slots: 105 private slots:
105 void showConfigureAgenda(); 106 void showConfigureAgenda();
106 void getFile( bool ); 107 void getFile( bool );
107 void syncFileRequest(); 108 void syncFileRequest();
108 109
109 protected: 110 protected:
110 void hideEvent ( QHideEvent * ); 111 void hideEvent ( QHideEvent * );
111 QString sentSyncFile(); 112 QString sentSyncFile();
112 void displayText( QString, QString); 113 void displayText( QString, QString);
113 void enableIncidenceActions( bool ); 114 void enableIncidenceActions( bool );
114 115
115 private: 116 private:
116 bool mBRdisabled; 117 bool mBRdisabled;
117#ifndef DESKTOP_VERSION 118#ifndef DESKTOP_VERSION
118 QCopChannel* infrared; 119 QCopChannel* infrared;
119#endif 120#endif
120 QAction* brAction; 121 QAction* brAction;
121 KSyncManager* mSyncManager; 122 KSyncManager* mSyncManager;
122 bool mClosed; 123 bool mClosed;
123 void saveOnClose(); 124 void saveOnClose();
124 bool mFlagKeyPressed; 125 bool mFlagKeyPressed;
125 bool mBlockAtStartup; 126 bool mBlockAtStartup;
126 QPEToolBar *iconToolBar; 127 QPEToolBar *iconToolBar;
127 QPEToolBar *viewToolBar; 128 QPEToolBar *viewToolBar;
128 QPEToolBar *navigatorToolBar; 129 QPEToolBar *navigatorToolBar;
129 QPEToolBar *filterToolBar; 130 QPEToolBar *filterToolBar;
130 QMenuBar *filterMenubar; 131 QMenuBar *filterMenubar;
131 QPopupMenu * filterPopupMenu; 132 QPopupMenu * filterPopupMenu;
132 QPopupMenu * mCurrentItemMenu; 133 QPopupMenu * mCurrentItemMenu;
133 void initActions(); 134 void initActions();
134 void setDefaultPreferences(); 135 void setDefaultPreferences();
135 void resizeEvent( QResizeEvent* e); 136 void resizeEvent( QResizeEvent* e);
136 void keyPressEvent ( QKeyEvent * ) ; 137 void keyPressEvent ( QKeyEvent * ) ;
137 void keyReleaseEvent ( QKeyEvent * ) ; 138 void keyReleaseEvent ( QKeyEvent * ) ;
138 QPopupMenu *configureToolBarMenu; 139 QPopupMenu *configureToolBarMenu;
139 QPopupMenu *selectFilterMenu; 140 QPopupMenu *selectFilterMenu;
140 QPopupMenu *selectFilterMenuTB; 141 QPopupMenu *selectFilterMenuTB;
141 QPopupMenu *configureAgendaMenu, *syncMenu; 142 QPopupMenu *configureAgendaMenu, *syncMenu;
142 CalendarLocal *mCalendar; 143 CalendarLocal *mCalendar;
143 CalendarView *mView; 144 CalendarView *mView;
144 QAction *mNewSubTodoAction; 145 QAction *mNewSubTodoAction;
145 QAction *mWeekAction; 146 QAction *mWeekAction;
146 QFont mWeekFont; 147 QFont mWeekFont;
147 QPixmap mWeekPixmap; 148 QPixmap mWeekPixmap;
148 QColor mWeekBgColor; 149 QColor mWeekBgColor;
149 150
150 QAction *mShowAction; 151 QAction *mShowAction;
151 QAction *mEditAction; 152 QAction *mEditAction;
152 QAction *mDeleteAction; 153 QAction *mDeleteAction;
153 QAction *mCloneAction; 154 QAction *mCloneAction;
154 QAction *mMoveAction; 155 QAction *mMoveAction;
155 QAction *mBeamAction; 156 QAction *mBeamAction;
156 QAction *mCancelAction; 157 QAction *mCancelAction;
157 158
158 QAction *mToggleNav; 159 QAction *mToggleNav;
159 QAction *mToggleFilter; 160 QAction *mToggleFilter;
160 QAction *mToggleAllday; 161 QAction *mToggleAllday;
161 QAction *actionFilterMenuTB; 162 QAction *actionFilterMenuTB;
162 163
163 void closeEvent( QCloseEvent* ce ); 164 void closeEvent( QCloseEvent* ce );
164 QTimer mSaveTimer; 165 QTimer mSaveTimer;
165 //bool mBlockSaveFlag; 166 //bool mBlockSaveFlag;
166 bool mCalendarModifiedFlag; 167 bool mCalendarModifiedFlag;
167 QPixmap loadPixmap( QString ); 168 QPixmap loadPixmap( QString );
168 QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80; 169 QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80;
169}; 170};
170 171
171 172
172#endif 173#endif