author | zautrix <zautrix> | 2005-07-28 10:38:58 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-07-28 10:38:58 (UTC) |
commit | fee4c893fe8fd01af1b55c1ccd40213fc18a36b4 (patch) (unidiff) | |
tree | 83a3018d54d60e880d441a6f91ef8fe54254aaff | |
parent | 27ffa2e08ebb38e71f613af3a214750442418e2c (diff) | |
download | kdepimpi-fee4c893fe8fd01af1b55c1ccd40213fc18a36b4.zip kdepimpi-fee4c893fe8fd01af1b55c1ccd40213fc18a36b4.tar.gz kdepimpi-fee4c893fe8fd01af1b55c1ccd40213fc18a36b4.tar.bz2 |
fixxxx
-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 10 | ||||
-rw-r--r-- | korganizer/koeditorgeneraltodo.cpp | 21 | ||||
-rw-r--r-- | korganizer/kolistview.cpp | 71 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 5 | ||||
-rw-r--r-- | libkcal/alarm.cpp | 2 | ||||
-rw-r--r-- | libkcal/event.cpp | 8 | ||||
-rw-r--r-- | libkcal/event.h | 1 | ||||
-rw-r--r-- | libkcal/incidence.cpp | 29 | ||||
-rw-r--r-- | libkcal/incidence.h | 3 | ||||
-rw-r--r-- | libkcal/todo.cpp | 10 | ||||
-rw-r--r-- | libkcal/todo.h | 1 |
11 files changed, 105 insertions, 56 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index f3f5333..ab8339f 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -130,67 +130,67 @@ | |||
130 | { "Delete Event...","Lösche Termin..." }, | 130 | { "Delete Event...","Lösche Termin..." }, |
131 | { "Delete Event","Lösche Termin" }, | 131 | { "Delete Event","Lösche Termin" }, |
132 | { "&Delete...","Lösche..." }, | 132 | { "&Delete...","Lösche..." }, |
133 | { "Delete...","Lösche..." }, | 133 | { "Delete...","Lösche..." }, |
134 | { "Delete","Lösche" }, | 134 | { "Delete","Lösche" }, |
135 | { "Delete Todo...","Lösche Todo..." }, | 135 | { "Delete Todo...","Lösche Todo..." }, |
136 | { "Delete To-Do","Lösche Todo" }, | 136 | { "Delete To-Do","Lösche Todo" }, |
137 | { "Deleting item %d ...","Lösche Eintrag %d..." }, | 137 | { "Deleting item %d ...","Lösche Eintrag %d..." }, |
138 | { "Descriptions","Beschreibungen" }, | 138 | { "Descriptions","Beschreibungen" }, |
139 | { "Deselect all","Deselektiere Alle" }, | 139 | { "Deselect all","Deselektiere Alle" }, |
140 | { "Details","Details" }, | 140 | { "Details","Details" }, |
141 | { "Dinner","Abendessen" }, | 141 | { "Dinner","Abendessen" }, |
142 | { "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, | 142 | { "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, |
143 | { "Due Date","Fällig am" }, | 143 | { "Due Date","Fällig am" }, |
144 | { "Due: ","Fällig: "}, | 144 | { "Due: ","Fällig: "}, |
145 | { "Due Time","Fällig um" }, | 145 | { "Due Time","Fällig um" }, |
146 | { "Due:","Fällig:"}, | 146 | { "Due:","Fällig:"}, |
147 | { "Duration: ","Dauer: " }, | 147 | { "Duration: ","Dauer: " }, |
148 | { "Edit...","Bearbeite..." }, | 148 | { "Edit...","Bearbeite..." }, |
149 | { "Edit Event...","Bearbeite Termin..." }, | 149 | { "Edit Event...","Bearbeite Termin..." }, |
150 | { "Edit Event","Bearbeite Termin" }, | 150 | { "Edit Event","Bearbeite Termin" }, |
151 | { "Edit exceptions","Bearbeite Ausnahmen" }, | 151 | { "Edit exceptions","Bearbeite Ausnahmen" }, |
152 | { "EditorBox:","Editor Fenster:" }, | 152 | { "EditorBox:","Editor Fenster:" }, |
153 | { "Edit Recurrence Range","Bearbeite Wiederholung" }, | 153 | { "Edit Recurrence Range","Bearbeite Wiederholung" }, |
154 | { "Edit Todo...","Berabeite Todo..." }, | 154 | { "Edit Todo...","Berabeite Todo..." }, |
155 | { "Edit To-Do","Todo bearbeiten" }, | 155 | { "Edit To-Do","Todo bearbeiten" }, |
156 | { "E&mail address:","E&mail Adresse:" }, | 156 | { "E&mail address:","E&mail Adresse:" }, |
157 | { "(EmptyEmail)","(KeineEmail)" }, | 157 | { "(EmptyEmail)","(KeineEmail)" }, |
158 | { "(EmptyName)","(KeinName)" }, | 158 | { "(EmptyName)","(KeinName)" }, |
159 | { "Enable Recurrence","Wiederholung anschalten" }, | 159 | { "Enable Recurrence","Wiederholung anschalten" }, |
160 | { "End after","Endet nach"}, | 160 | { "End after","Endet nach"}, |
161 | { "End by:","Endet am"}, | 161 | { "End by:","Endet am"}, |
162 | { "End Date","End Datum" }, | 162 | { "End/Due Date","Ende/Fällig am" }, |
163 | { "End:","Ende:" }, | 163 | { "End:","Ende:" }, |
164 | { "End Time","End Zeit" }, | 164 | { "End/Due Time","Ende/Fällig um" }, |
165 | { "English","Englisch" }, | 165 | { "English","Englisch" }, |
166 | { "Event","Termin" }, | 166 | { "Event","Termin" }, |
167 | { "Event list","Termin Liste" }, | 167 | { "Event list","Termin Liste" }, |
168 | { "Events","Termine" }, | 168 | { "Events","Termine" }, |
169 | { "Event Viewer:","Termin Übersicht:" }, | 169 | { "Event Viewer:","Termin Übersicht:" }, |
170 | { "every","jede" }, | 170 | { "every","jede" }, |
171 | { "Exceptions...","Ausnahmen..." }, | 171 | { "Exceptions...","Ausnahmen..." }, |
172 | { "Exceptions","Ausnahmen" }, | 172 | { "Exceptions","Ausnahmen" }, |
173 | { "Exclude holidays","Ohne freie Tage" }, | 173 | { "Exclude holidays","Ohne freie Tage" }, |
174 | { "Exclude Saturdays","Ohne Samstage" }, | 174 | { "Exclude Saturdays","Ohne Samstage" }, |
175 | { "Feb","Feb" }, | 175 | { "Feb","Feb" }, |
176 | { "February","Februar" }, | 176 | { "February","Februar" }, |
177 | { "&Find","Suche!" }, | 177 | { "&Find","Suche!" }, |
178 | { "Fonts","Schriftart" }, | 178 | { "Fonts","Schriftart" }, |
179 | { "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" }, | 179 | { "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" }, |
180 | { "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"}, | 180 | { "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"}, |
181 | { "Free","Frei" }, | 181 | { "Free","Frei" }, |
182 | { "Friday","Freitag" }, | 182 | { "Friday","Freitag" }, |
183 | { "Fri","Fr" }, | 183 | { "Fri","Fr" }, |
184 | { "From:","Vom:" }, | 184 | { "From:","Vom:" }, |
185 | { "Full &name:","Vor- und &Nachname:" }, | 185 | { "Full &name:","Vor- und &Nachname:" }, |
186 | { "General","Allgemein" }, | 186 | { "General","Allgemein" }, |
187 | { "German","Deutsch" }, | 187 | { "German","Deutsch" }, |
188 | { "Gifts","Geschenke" }, | 188 | { "Gifts","Geschenke" }, |
189 | { "Go to Today","Heute anzeigen" }, | 189 | { "Go to Today","Heute anzeigen" }, |
190 | { "Help","Hilfe" }, | 190 | { "Help","Hilfe" }, |
191 | { "Hide Dates","Daten ausblenden" }, | 191 | { "Hide Dates","Daten ausblenden" }, |
192 | { "Highlight color:","Markierungen:" }, | 192 | { "Highlight color:","Markierungen:" }, |
193 | { "Holiday color:","Freie Tage:" }, | 193 | { "Holiday color:","Freie Tage:" }, |
194 | { "hour(s)","Stunde(n)" }, | 194 | { "hour(s)","Stunde(n)" }, |
195 | { "In %1 days: ","In %1 Tagen: " }, | 195 | { "In %1 days: ","In %1 Tagen: " }, |
196 | { "Incomplete Todo:","Unerledigte Aufgaben:" }, | 196 | { "Incomplete Todo:","Unerledigte Aufgaben:" }, |
@@ -335,67 +335,67 @@ | |||
335 | { "Sat","Sa" }, | 335 | { "Sat","Sa" }, |
336 | { "Saturday","Samstag" }, | 336 | { "Saturday","Samstag" }, |
337 | { "Search for:","Suche nach:" }, | 337 | { "Search for:","Suche nach:" }, |
338 | { "Search In","Suche in" }, | 338 | { "Search In","Suche in" }, |
339 | { "Search...","Suche..." }, | 339 | { "Search...","Suche..." }, |
340 | { "Search","Suche" }, | 340 | { "Search","Suche" }, |
341 | { "Select Addresses","Wähle Adressen" }, | 341 | { "Select Addresses","Wähle Adressen" }, |
342 | { "Select all","Selektiere Alle" }, | 342 | { "Select all","Selektiere Alle" }, |
343 | { "Select a month","Wähle Monat" }, | 343 | { "Select a month","Wähle Monat" }, |
344 | { "Select a week","Wähle Woche" }, | 344 | { "Select a week","Wähle Woche" }, |
345 | { "Select a year","Wähle Jahr" }, | 345 | { "Select a year","Wähle Jahr" }, |
346 | { "Send directly","Sende direkt" }, | 346 | { "Send directly","Sende direkt" }, |
347 | { "&Send Messages","&Sende Nachrichten", }, | 347 | { "&Send Messages","&Sende Nachrichten", }, |
348 | { "Sep","Sep" }, | 348 | { "Sep","Sep" }, |
349 | { "September","September" }, | 349 | { "September","September" }, |
350 | { "Shopping","Einkaufen" }, | 350 | { "Shopping","Einkaufen" }, |
351 | { "Show Dates","Zeige Daten" }, | 351 | { "Show Dates","Zeige Daten" }, |
352 | { "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." }, | 352 | { "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." }, |
353 | { "Show Event","Termin anzeigen" }, | 353 | { "Show Event","Termin anzeigen" }, |
354 | { "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." }, | 354 | { "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." }, |
355 | { "Show Marcus Bains line","Zeige Marcus Bains Linie" }, | 355 | { "Show Marcus Bains line","Zeige Marcus Bains Linie" }, |
356 | { "Show summary after syncing","Zeige Zusammenfassung nach Sync." }, | 356 | { "Show summary after syncing","Zeige Zusammenfassung nach Sync." }, |
357 | { "Show time as:","Zeige Zeit als" }, | 357 | { "Show time as:","Zeige Zeit als" }, |
358 | { "Show Todo","Todo anzeigen" }, | 358 | { "Show Todo","Todo anzeigen" }, |
359 | { "Vertical screen layout(Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" }, | 359 | { "Vertical screen layout(Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" }, |
360 | { "&Show","Anzeigen" }, | 360 | { "&Show","Anzeigen" }, |
361 | { "Show...","Anzeigen..." }, | 361 | { "Show...","Anzeigen..." }, |
362 | { "Show","Anzeigen" }, | 362 | { "Show","Anzeigen" }, |
363 | { "Small","Klein" }, | 363 | { "Small","Klein" }, |
364 | { "Sorry","Tut mir leid" }, | 364 | { "Sorry","Tut mir leid" }, |
365 | {"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"}, | 365 | {"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"}, |
366 | { "Start:","Start:" }, | 366 | { "Start:","Start:" }, |
367 | { "Start Date","Start Datum" }, | 367 | { "Start Date","Start am" }, |
368 | { "Start date: %1","Start Datum: %1" }, | 368 | { "Start date: %1","Start Datum: %1" }, |
369 | { "Start Time","Start Zeit" }, | 369 | { "Start Time","Start um" }, |
370 | { "Status:","Status:" }, | 370 | { "Status:","Status:" }, |
371 | { "Status","Status:" }, | 371 | { "Status","Status:" }, |
372 | { "Summaries","Titel" }, | 372 | { "Summaries","Titel" }, |
373 | { "Summary:","Titel:" }, | 373 | { "Summary:","Titel:" }, |
374 | { "Summary","Titel" }, | 374 | { "Summary","Titel" }, |
375 | { "Sunday","Sonntag" }, | 375 | { "Sunday","Sonntag" }, |
376 | { "Sun","So" }, | 376 | { "Sun","So" }, |
377 | { "Sync preferences:","Sync Einstellungen" }, | 377 | { "Sync preferences:","Sync Einstellungen" }, |
378 | { "Sync Prefs","Sync Einstellungen" }, | 378 | { "Sync Prefs","Sync Einstellungen" }, |
379 | { "Syncronize","Daten abgleich" }, | 379 | { "Syncronize","Daten abgleich" }, |
380 | { "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, | 380 | { "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, |
381 | { "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, | 381 | { "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, |
382 | { "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, | 382 | { "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, |
383 | { "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges Todo" }, | 383 | { "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges Todo" }, |
384 | { "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" }, | 384 | { "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" }, |
385 | { "Template...","Vorlage..." }, | 385 | { "Template...","Vorlage..." }, |
386 | { "This day","Dieser Tag" }, | 386 | { "This day","Dieser Tag" }, |
387 | { "This is an experimental feature. ","Dieses Feature ist experimentel" }, | 387 | { "This is an experimental feature. ","Dieses Feature ist experimentel" }, |
388 | { "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." }, | 388 | { "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." }, |
389 | { "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." }, | 389 | { "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." }, |
390 | { "Thu","Do" }, | 390 | { "Thu","Do" }, |
391 | { "Thursday","Donnerstag" }, | 391 | { "Thursday","Donnerstag" }, |
392 | { "Time associated","Mit Zeit" }, | 392 | { "Time associated","Mit Zeit" }, |
393 | { "Time bar:","Uhrzeit Zeile:" }, | 393 | { "Time bar:","Uhrzeit Zeile:" }, |
394 | { "Time && Date","Zeit und Datum" }, | 394 | { "Time && Date","Zeit und Datum" }, |
395 | { "Time Format","Zeit Format" }, | 395 | { "Time Format","Zeit Format" }, |
396 | { "Time Format(nr):","Zeit Format(Neustart!)" }, | 396 | { "Time Format(nr):","Zeit Format(Neustart!)" }, |
397 | { "Date Labels:","Datumsleiste:" }, | 397 | { "Date Labels:","Datumsleiste:" }, |
398 | { "Time: ","Zeit: " }, | 398 | { "Time: ","Zeit: " }, |
399 | { "Timezone:","Zeitzone:" }, | 399 | { "Timezone:","Zeitzone:" }, |
400 | { "To: ","Bis: " }, | 400 | { "To: ","Bis: " }, |
401 | { "To:","Bis:" }, | 401 | { "To:","Bis:" }, |
@@ -1502,42 +1502,44 @@ | |||
1502 | { "<p><b>Q</b>: Show next date with conflicting events\n ","<p><b>Q</b>: Zeige nächstes Datum mit Terminen im Konflikt\n " }, | 1502 | { "<p><b>Q</b>: Show next date with conflicting events\n ","<p><b>Q</b>: Zeige nächstes Datum mit Terminen im Konflikt\n " }, |
1503 | { "Week view mode uses row layout","Wochenansicht Modus nutzt Reihenlayout" }, | 1503 | { "Week view mode uses row layout","Wochenansicht Modus nutzt Reihenlayout" }, |
1504 | { "The event\n%1\nconflicts with event\n%2\nat date\n%3.\n","Der Termin\n%1\nist im Konflikt mit Termin\n%2\nam Datum\n%3.\n" }, | 1504 | { "The event\n%1\nconflicts with event\n%2\nat date\n%3.\n","Der Termin\n%1\nist im Konflikt mit Termin\n%2\nam Datum\n%3.\n" }, |
1505 | { "KO/Pi Conflict delected","KO/Pi Konflikt erkannt" }, | 1505 | { "KO/Pi Conflict delected","KO/Pi Konflikt erkannt" }, |
1506 | { "Show date","Zeige Datum" }, | 1506 | { "Show date","Zeige Datum" }, |
1507 | { "No problem!","Null Problemo!" }, | 1507 | { "No problem!","Null Problemo!" }, |
1508 | { "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" }, | 1508 | { "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" }, |
1509 | { "Pi-Sync Port Error","Pi-Sync Port Fehler" }, | 1509 | { "Pi-Sync Port Error","Pi-Sync Port Fehler" }, |
1510 | { "<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?","<b>Anschalten von Pi-Sync fehlgeschlagen!</b> Fehler beim Ansprechen des Ports %1! Ist bereits eine andere Anwendung dabei diesen Port zu nutzen?" }, | 1510 | { "<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?","<b>Anschalten von Pi-Sync fehlgeschlagen!</b> Fehler beim Ansprechen des Ports %1! Ist bereits eine andere Anwendung dabei diesen Port zu nutzen?" }, |
1511 | { "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" }, | 1511 | { "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" }, |
1512 | { "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" }, | 1512 | { "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" }, |
1513 | { "Pi-Sync Error","Pi-Sync Fehler" }, | 1513 | { "Pi-Sync Error","Pi-Sync Fehler" }, |
1514 | { "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" }, | 1514 | { "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" }, |
1515 | { "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" }, | 1515 | { "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" }, |
1516 | { "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." }, | 1516 | { "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." }, |
1517 | { "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" }, | 1517 | { "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" }, |
1518 | { "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" }, | 1518 | { "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" }, |
1519 | { "Pi-Sync: Connected!","Pi-Sync: Verbunden!" }, | 1519 | { "Pi-Sync: Connected!","Pi-Sync: Verbunden!" }, |
1520 | { "Receiving file from remote...","Empfange entfernte Datei..." }, | 1520 | { "Receiving file from remote...","Empfange entfernte Datei..." }, |
1521 | { "Sending back synced file...","Sende synchronisierte Datei zurück..." }, | 1521 | { "Sending back synced file...","Sende synchronisierte Datei zurück..." }, |
1522 | { "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" }, | 1522 | { "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" }, |
1523 | { "Do you want to\nclear the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" }, | 1523 | { "Do you want to\nclear the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" }, |
1524 | { "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." }, | 1524 | { "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." }, |
1525 | { "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" }, | 1525 | { "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" }, |
1526 | { "Writing back file ...","Schreibe Datei zurück..." }, | 1526 | { "Writing back file ...","Schreibe Datei zurück..." }, |
1527 | { "Sending back file ...","Sende Datei zurück..." }, | 1527 | { "Sending back file ...","Sende Datei zurück..." }, |
1528 | { "Eeek, there I am ticklish!","Hihi, da bin ich kitzlig!" }, | 1528 | { "Eeek, there I am ticklish!","Hihi, da bin ich kitzlig!" }, |
1529 | { "Created","Angelegt" }, | 1529 | { "Created","Angelegt" }, |
1530 | { "Last Modified Sub","Zuletzt geändertes Sub" }, | 1530 | { "Last Modified Sub","Zuletzt geändertes Sub" }, |
1531 | { "Checking conflicts ... please wait","Überprüfe Konflikte ... bitte warten" }, | 1531 | { "Checking conflicts ... please wait","Überprüfe Konflikte ... bitte warten" }, |
1532 | { "Show times on two lines","Zeige Zeiten auf zwei Zeilen" }, | 1532 | { "Show times on two lines","Zeige Zeiten auf zwei Zeilen" }, |
1533 | { "Save using LOCAL storage","Speichere nutze LOCAL Pfad" }, | 1533 | { "Save using LOCAL storage","Speichere nutze LOCAL Pfad" }, |
1534 | { "Duration","Dauer" }, | ||
1535 | { " day"," Tag" }, | ||
1534 | { "","" }, | 1536 | { "","" }, |
1535 | { "","" }, | 1537 | { "","" }, |
1536 | { "","" }, | 1538 | { "","" }, |
1537 | { "","" }, | 1539 | { "","" }, |
1538 | { "","" }, | 1540 | { "","" }, |
1539 | { "","" }, | 1541 | { "","" }, |
1540 | { "","" }, | 1542 | { "","" }, |
1541 | { "","" }, | 1543 | { "","" }, |
1542 | { "","" }, | 1544 | { "","" }, |
1543 | { "","" }, | 1545 | { "","" }, |
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp index 965cf47..10d9a8c 100644 --- a/korganizer/koeditorgeneraltodo.cpp +++ b/korganizer/koeditorgeneraltodo.cpp | |||
@@ -68,88 +68,87 @@ void KOEditorGeneralTodo::finishSetup() | |||
68 | // QWidget::setTabOrder(mLocationEdit, mDueCheck); | 68 | // QWidget::setTabOrder(mLocationEdit, mDueCheck); |
69 | // QWidget::setTabOrder(mDueCheck, mDueDateEdit); | 69 | // QWidget::setTabOrder(mDueCheck, mDueDateEdit); |
70 | // QWidget::setTabOrder(mDueDateEdit, mDueTimeEdit); | 70 | // QWidget::setTabOrder(mDueDateEdit, mDueTimeEdit); |
71 | // QWidget::setTabOrder(mDueTimeEdit, mStartCheck); | 71 | // QWidget::setTabOrder(mDueTimeEdit, mStartCheck); |
72 | // QWidget::setTabOrder(mStartCheck, mStartDateEdit); | 72 | // QWidget::setTabOrder(mStartCheck, mStartDateEdit); |
73 | // QWidget::setTabOrder(mStartDateEdit, mStartTimeEdit); | 73 | // QWidget::setTabOrder(mStartDateEdit, mStartTimeEdit); |
74 | // QWidget::setTabOrder(mStartTimeEdit, mTimeButton); | 74 | // QWidget::setTabOrder(mStartTimeEdit, mTimeButton); |
75 | // QWidget::setTabOrder(mTimeButton, mCompletedCombo); | 75 | // QWidget::setTabOrder(mTimeButton, mCompletedCombo); |
76 | // QWidget::setTabOrder(mCompletedCombo, mPriorityCombo); | 76 | // QWidget::setTabOrder(mCompletedCombo, mPriorityCombo); |
77 | // QWidget::setTabOrder(mPriorityCombo, mAlarmButton); | 77 | // QWidget::setTabOrder(mPriorityCombo, mAlarmButton); |
78 | // QWidget::setTabOrder(mAlarmButton, mCategoriesButton); | 78 | // QWidget::setTabOrder(mAlarmButton, mCategoriesButton); |
79 | // QWidget::setTabOrder(mCategoriesButton, mSecrecyCombo); | 79 | // QWidget::setTabOrder(mCategoriesButton, mSecrecyCombo); |
80 | // QWidget::setTabOrder(mSecrecyCombo, mDescriptionEdit); | 80 | // QWidget::setTabOrder(mSecrecyCombo, mDescriptionEdit); |
81 | mSummaryEdit->load(KOLocationBox::SUMMARYTODO); | 81 | mSummaryEdit->load(KOLocationBox::SUMMARYTODO); |
82 | mSummaryEdit->setFocus(); | 82 | mSummaryEdit->setFocus(); |
83 | } | 83 | } |
84 | 84 | ||
85 | void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) | 85 | void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) |
86 | { | 86 | { |
87 | QBoxLayout *timeLayout = new QVBoxLayout(topLayout); | 87 | QBoxLayout *timeLayout = new QVBoxLayout(topLayout); |
88 | 88 | ||
89 | QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal, | 89 | QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal, |
90 | i18n("Date && Time"),parent); | 90 | i18n("Date && Time"),parent); |
91 | timeLayout->addWidget(timeGroupBox); | 91 | timeLayout->addWidget(timeGroupBox); |
92 | timeGroupBox->layout()->setSpacing( KDialog::spacingHint()-2 ); | 92 | timeGroupBox->layout()->setSpacing( KDialog::spacingHint()-2 ); |
93 | timeGroupBox->layout()->setMargin( KDialog::marginHint() ); | 93 | timeGroupBox->layout()->setMargin( KDialog::marginHint() ); |
94 | QFrame *timeBoxFrame = new QFrame(timeGroupBox); | 94 | QFrame *timeBoxFrame = new QFrame(timeGroupBox); |
95 | 95 | ||
96 | QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3); | 96 | QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3); |
97 | layoutTimeBox->setSpacing(KDialog::spacingHintSmall()); | 97 | layoutTimeBox->setSpacing(KDialog::spacingHintSmall()); |
98 | layoutTimeBox->setColStretch( 1, 1 ); | 98 | layoutTimeBox->setColStretch( 1, 1 ); |
99 | 99 | ||
100 | mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame); | ||
101 | layoutTimeBox->addWidget(mStartCheck,0,0); | ||
102 | connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool))); | ||
103 | |||
104 | mStartDateEdit = new KDateEdit(timeBoxFrame); | ||
105 | layoutTimeBox->addWidget(mStartDateEdit,0,1); | ||
106 | |||
107 | mStartTimeEdit = new KOTimeEdit(timeBoxFrame); | ||
108 | layoutTimeBox->addWidget(mStartTimeEdit,0,2); | ||
109 | |||
100 | mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame); | 110 | mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame); |
101 | layoutTimeBox->addWidget(mDueCheck,1,0); | 111 | layoutTimeBox->addWidget(mDueCheck,1,0); |
102 | connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool))); | 112 | connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool))); |
103 | connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm())); | 113 | connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm())); |
104 | 114 | ||
105 | 115 | ||
106 | mDueDateEdit = new KDateEdit(timeBoxFrame); | 116 | mDueDateEdit = new KDateEdit(timeBoxFrame); |
107 | layoutTimeBox->addWidget(mDueDateEdit,1,1); | 117 | layoutTimeBox->addWidget(mDueDateEdit,1,1); |
108 | 118 | ||
109 | mDueTimeEdit = new KOTimeEdit(timeBoxFrame); | 119 | mDueTimeEdit = new KOTimeEdit(timeBoxFrame); |
110 | layoutTimeBox->addWidget(mDueTimeEdit,1,2); | 120 | layoutTimeBox->addWidget(mDueTimeEdit,1,2); |
111 | 121 | ||
112 | 122 | ||
113 | mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame); | ||
114 | layoutTimeBox->addWidget(mStartCheck,0,0); | ||
115 | connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool))); | ||
116 | |||
117 | mStartDateEdit = new KDateEdit(timeBoxFrame); | ||
118 | layoutTimeBox->addWidget(mStartDateEdit,0,1); | ||
119 | |||
120 | mStartTimeEdit = new KOTimeEdit(timeBoxFrame); | ||
121 | layoutTimeBox->addWidget(mStartTimeEdit,0,2); | ||
122 | |||
123 | |||
124 | mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame); | 123 | mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame); |
125 | layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1); | 124 | layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1); |
126 | 125 | ||
127 | connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool))); | 126 | connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool))); |
128 | connect(mDueDateEdit,SIGNAL(setTimeTo(QTime)),mDueTimeEdit,SLOT(setTime(QTime))); | 127 | connect(mDueDateEdit,SIGNAL(setTimeTo(QTime)),mDueTimeEdit,SLOT(setTime(QTime))); |
129 | connect(mStartDateEdit,SIGNAL(setTimeTo(QTime)),mStartTimeEdit,SLOT(setTime(QTime))); | 128 | connect(mStartDateEdit,SIGNAL(setTimeTo(QTime)),mStartTimeEdit,SLOT(setTime(QTime))); |
130 | connect(mStartDateEdit, SIGNAL(dateChanged(QDate)), | 129 | connect(mStartDateEdit, SIGNAL(dateChanged(QDate)), |
131 | this, SLOT(startDateChanged(QDate))); | 130 | this, SLOT(startDateChanged(QDate))); |
132 | // some more layouting | 131 | // some more layouting |
133 | //layoutTimeBox->setColStretch(3,1); | 132 | //layoutTimeBox->setColStretch(3,1); |
134 | } | 133 | } |
135 | 134 | ||
136 | 135 | ||
137 | void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) | 136 | void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) |
138 | { | 137 | { |
139 | mCompletedCombo = new QComboBox(parent); | 138 | mCompletedCombo = new QComboBox(parent); |
140 | // xgettext:no-c-format | 139 | // xgettext:no-c-format |
141 | mCompletedCombo->insertItem(i18n(" 0 %")); | 140 | mCompletedCombo->insertItem(i18n(" 0 %")); |
142 | // xgettext:no-c-format | 141 | // xgettext:no-c-format |
143 | mCompletedCombo->insertItem(i18n(" 20 %")); | 142 | mCompletedCombo->insertItem(i18n(" 20 %")); |
144 | // xgettext:no-c-format | 143 | // xgettext:no-c-format |
145 | mCompletedCombo->insertItem(i18n(" 40 %")); | 144 | mCompletedCombo->insertItem(i18n(" 40 %")); |
146 | // xgettext:no-c-format | 145 | // xgettext:no-c-format |
147 | mCompletedCombo->insertItem(i18n(" 60 %")); | 146 | mCompletedCombo->insertItem(i18n(" 60 %")); |
148 | // xgettext:no-c-format | 147 | // xgettext:no-c-format |
149 | mCompletedCombo->insertItem(i18n(" 80 %")); | 148 | mCompletedCombo->insertItem(i18n(" 80 %")); |
150 | // xgettext:no-c-format | 149 | // xgettext:no-c-format |
151 | mCompletedCombo->insertItem(i18n("100 %")); | 150 | mCompletedCombo->insertItem(i18n("100 %")); |
152 | connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); | 151 | connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); |
153 | topLayout->addWidget(mCompletedCombo); | 152 | topLayout->addWidget(mCompletedCombo); |
154 | 153 | ||
155 | mCompletedLabel = new QLabel(i18n("completed"),parent); | 154 | mCompletedLabel = new QLabel(i18n("completed"),parent); |
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index e7a5e0e..e560ce4 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp | |||
@@ -99,238 +99,233 @@ ListItemVisitor::~ListItemVisitor() | |||
99 | bool ListItemVisitor::visit(Event *e) | 99 | bool ListItemVisitor::visit(Event *e) |
100 | { | 100 | { |
101 | bool ok = false; | 101 | bool ok = false; |
102 | QString start, end; | 102 | QString start, end; |
103 | QDate ds, de; | 103 | QDate ds, de; |
104 | if ( e->doesRecur() ) { | 104 | if ( e->doesRecur() ) { |
105 | ds = e->getNextOccurence( QDateTime( mDate, QTime(0,0,0)), &ok ).date(); | 105 | ds = e->getNextOccurence( QDateTime( mDate, QTime(0,0,0)), &ok ).date(); |
106 | if ( ok ) { | 106 | if ( ok ) { |
107 | int days = e->dtStart().date().daysTo(e->dtEnd().date() ); | 107 | int days = e->dtStart().date().daysTo(e->dtEnd().date() ); |
108 | start = KGlobal::locale()->formatDate(ds,true); | 108 | start = KGlobal::locale()->formatDate(ds,true); |
109 | de = ds.addDays( days); | 109 | de = ds.addDays( days); |
110 | end = KGlobal::locale()->formatDate(de,true); | 110 | end = KGlobal::locale()->formatDate(de,true); |
111 | } | 111 | } |
112 | 112 | ||
113 | } | 113 | } |
114 | if ( ! ok ) { | 114 | if ( ! ok ) { |
115 | start =e->dtStartDateStr(); | 115 | start =e->dtStartDateStr(); |
116 | end = e->dtEndDateStr(); | 116 | end = e->dtEndDateStr(); |
117 | ds = e->dtStart().date(); | 117 | ds = e->dtStart().date(); |
118 | de = e->dtEnd().date(); | 118 | de = e->dtEnd().date(); |
119 | } | 119 | } |
120 | mItem->setText(0,e->summary()); | 120 | mItem->setText(0,e->summary()); |
121 | mItem->setText(1,start); | 121 | mItem->setText(1,start); |
122 | if ( e->doesFloat() ) | 122 | if ( e->doesFloat() ) |
123 | mItem->setText(2,"---"); | 123 | mItem->setText(2,"---"); |
124 | else | 124 | else |
125 | mItem->setText(2,e->dtStartTimeStr()); | 125 | mItem->setText(2,e->dtStartTimeStr()); |
126 | mItem->setText(3,end); | 126 | mItem->setText(3,end); |
127 | if ( e->doesFloat() ) | 127 | if ( e->doesFloat() ) |
128 | mItem->setText(4,"---"); | 128 | mItem->setText(4,"---"); |
129 | else | 129 | else |
130 | mItem->setText(4,e->dtEndTimeStr()); | 130 | mItem->setText(4,e->dtEndTimeStr()); |
131 | mItem->setText(5, e->durationText()); | ||
131 | if ( e->isAlarmEnabled() ) { | 132 | if ( e->isAlarmEnabled() ) { |
132 | mItem->setText(5,e->alarms().first()->offsetText() ); | 133 | mItem->setText(6,e->alarms().first()->offsetText() ); |
133 | } else { | 134 | } else { |
134 | mItem->setText(5, i18n("No")); | 135 | mItem->setText(6, i18n("No")); |
135 | } | 136 | } |
136 | mItem->setText(6, e->recurrenceText()); | 137 | mItem->setText(7, e->recurrenceText()); |
137 | if( ! e->doesRecur() ) | 138 | if( ! e->doesRecur() ) |
138 | mItem->setSortKey( 6, "-" ); | 139 | mItem->setSortKey( 7, "-" ); |
139 | mItem->setText(7,"---"); | 140 | mItem->setText(8, e->cancelled() ? i18n("Yes") : i18n("No")); |
140 | mItem->setText(8,"---"); | 141 | mItem->setText(9,e->categoriesStr()); |
141 | mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No")); | 142 | mItem->setText(10, KOPrefs::instance()->calName( e->calID() )); |
142 | mItem->setText(10,e->categoriesStr()); | 143 | mItem->setText(11, KGlobal::locale()->formatDateTime( e->lastModified(), true, true )); |
143 | mItem->setText(11, KOPrefs::instance()->calName( e->calID() )); | ||
144 | mItem->setText(12, KGlobal::locale()->formatDateTime( e->lastModified(), true, true )); | ||
145 | 144 | ||
146 | QString key; | 145 | QString key; |
147 | QDate d = e->lastModified().date(); | 146 | QDate d = e->lastModified().date(); |
148 | QTime t = e->lastModified().time(); | 147 | QTime t = e->lastModified().time(); |
149 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() ); | 148 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() ); |
150 | mItem->setSortKey(12,key); | 149 | mItem->setSortKey(12,key); |
151 | t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); | 150 | t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); |
152 | key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute()); | 151 | key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute()); |
153 | mItem->setSortKey(1,key); | 152 | mItem->setSortKey(1,key); |
154 | 153 | ||
155 | t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time(); | 154 | t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time(); |
156 | key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute()); | 155 | key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute()); |
157 | mItem->setSortKey(3,key); | 156 | mItem->setSortKey(3,key); |
158 | return true; | 157 | return true; |
159 | } | 158 | } |
160 | 159 | ||
161 | bool ListItemVisitor::visit(Todo *t) | 160 | bool ListItemVisitor::visit(Todo *t) |
162 | { | 161 | { |
163 | mItem->setText(0,t->summary()); | 162 | mItem->setText(0,t->summary()); |
164 | if ( t->isCompleted() ) { | 163 | if ( t->isCompleted() ) { |
165 | mItem->setSortKey(0,"99"+ t->summary().left(10)); | 164 | mItem->setSortKey(0,"99"+ t->summary().left(10)); |
166 | } else | 165 | } else |
167 | mItem->setSortKey(0,QString::number( t->percentComplete()+1 )+ t->summary().left(10)); | 166 | mItem->setSortKey(0,QString::number( t->percentComplete()+1 )+ t->summary().left(10)); |
168 | mItem->setPixmap( 0, *(sgListViewCompletedPix[t->percentComplete()/20])); | 167 | mItem->setPixmap( 0, *(sgListViewCompletedPix[t->percentComplete()/20])); |
169 | if (t->hasStartDate()) { | 168 | if (t->hasStartDate()) { |
170 | mItem->setText(1,t->dtStartDateStr()); | 169 | mItem->setText(1,t->dtStartDateStr()); |
171 | if (t->doesFloat()) { | 170 | if (t->doesFloat()) { |
172 | mItem->setText(2,"---"); | 171 | mItem->setText(2,"---"); |
173 | } else { | 172 | } else { |
174 | mItem->setText(2,t->dtStartTimeStr()); | 173 | mItem->setText(2,t->dtStartTimeStr()); |
175 | } | 174 | } |
176 | } else { | 175 | } else { |
177 | mItem->setText(1,"---"); | 176 | mItem->setText(1,"---"); |
178 | mItem->setText(2,"---"); | 177 | mItem->setText(2,"---"); |
179 | } | 178 | } |
180 | mItem->setText(3,"---"); | ||
181 | mItem->setText(4,"---"); | ||
182 | if ( t->isAlarmEnabled() ) { | 179 | if ( t->isAlarmEnabled() ) { |
183 | mItem->setText(5,t->alarms().first()->offsetText() ); | 180 | mItem->setText(6,t->alarms().first()->offsetText() ); |
184 | } else { | 181 | } else { |
185 | mItem->setText(5, i18n("No")); | 182 | mItem->setText(6, i18n("No")); |
186 | } | 183 | } |
187 | mItem->setText(6, t->recurrenceText()); | 184 | mItem->setText(7, t->recurrenceText()); |
188 | if( ! t->doesRecur() ) | 185 | if( ! t->doesRecur() ) |
189 | mItem->setSortKey( 6, "-" ); | 186 | mItem->setSortKey( 7, "-" ); |
190 | if (t->hasDueDate()) { | 187 | if (t->hasDueDate()) { |
191 | mItem->setText(7,t->dtDueDateStr()); | 188 | mItem->setText(3,t->dtDueDateStr()); |
192 | if (t->doesFloat()) { | 189 | if (t->doesFloat()) { |
193 | mItem->setText(8,"---"); | 190 | mItem->setText(4,"---"); |
194 | } else { | 191 | } else { |
195 | mItem->setText(8,t->dtDueTimeStr()); | 192 | mItem->setText(4,t->dtDueTimeStr()); |
196 | } | 193 | } |
197 | } else { | 194 | } else { |
198 | mItem->setText(7,"---"); | 195 | mItem->setText(3,"---"); |
199 | mItem->setText(8,"---"); | 196 | mItem->setText(4,"---"); |
200 | } | 197 | } |
201 | mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No")); | 198 | mItem->setText(5, t->durationText()); |
202 | mItem->setText(10,t->categoriesStr()); | 199 | mItem->setText(8, t->cancelled() ? i18n("Yes") : i18n("No")); |
203 | mItem->setText(11, KOPrefs::instance()->calName( t->calID() )); | 200 | mItem->setText(9,t->categoriesStr()); |
204 | mItem->setText(12, KGlobal::locale()->formatDateTime( t->lastModified(), true, true )); | 201 | mItem->setText(10, KOPrefs::instance()->calName( t->calID() )); |
202 | mItem->setText(11, KGlobal::locale()->formatDateTime( t->lastModified(), true, true )); | ||
205 | QString key; | 203 | QString key; |
206 | QDate d = t->lastModified().date(); | 204 | QDate d = t->lastModified().date(); |
207 | QTime tm = t->lastModified().time(); | 205 | QTime tm = t->lastModified().time(); |
208 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() ); | 206 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() ); |
209 | mItem->setSortKey(12,key); | 207 | mItem->setSortKey(11,key); |
210 | if (t->hasDueDate()) { | 208 | if (t->hasDueDate()) { |
211 | d = t->dtDue().date(); | 209 | d = t->dtDue().date(); |
212 | tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time(); | 210 | tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time(); |
213 | key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); | 211 | key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); |
214 | mItem->setSortKey(7,key); | 212 | mItem->setSortKey(3,key); |
215 | } | 213 | } |
216 | if ( t->hasStartDate() ) { | 214 | if ( t->hasStartDate() ) { |
217 | d = t->dtStart().date(); | 215 | d = t->dtStart().date(); |
218 | tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); | 216 | tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); |
219 | key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); | 217 | key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); |
220 | mItem->setSortKey(1,key); | 218 | mItem->setSortKey(1,key); |
221 | } | 219 | } |
222 | return true; | 220 | return true; |
223 | } | 221 | } |
224 | 222 | ||
225 | bool ListItemVisitor::visit(Journal * j) | 223 | bool ListItemVisitor::visit(Journal * j) |
226 | { | 224 | { |
227 | 225 | ||
228 | QString des; | 226 | QString des; |
229 | mItem->setPixmap( 0, *sgListViewJournalPix); | 227 | mItem->setPixmap( 0, *sgListViewJournalPix); |
230 | if ( !j->summary().isEmpty() ) { | 228 | if ( !j->summary().isEmpty() ) { |
231 | des = j->summary(); | 229 | des = j->summary(); |
232 | } else { | 230 | } else { |
233 | des = j->description().left(30); | 231 | des = j->description().left(30); |
234 | des = des.simplifyWhiteSpace (); | 232 | des = des.simplifyWhiteSpace (); |
235 | des.replace (QRegExp ("\\n"),"" ); | 233 | des.replace (QRegExp ("\\n"),"" ); |
236 | des.replace (QRegExp ("\\r"),"" ); | 234 | des.replace (QRegExp ("\\r"),"" ); |
237 | } | 235 | } |
238 | mItem->setText(0,des.left(25)); | 236 | mItem->setText(0,des.left(25)); |
239 | mItem->setSortKey(0,"0"+ des.left(25)); | 237 | mItem->setSortKey(0,"0"+ des.left(25)); |
240 | mItem->setText(1,j->dtStartDateStr()); | 238 | mItem->setText(1,j->dtStartDateStr()); |
241 | mItem->setText(2,"---"); | 239 | mItem->setText(2,"---"); |
242 | mItem->setText(3,"---"); | 240 | mItem->setText(3,"---"); |
243 | mItem->setText(4,"---"); | 241 | mItem->setText(4,"---"); |
244 | mItem->setText(5,"---"); | 242 | mItem->setText(5,"---"); |
245 | mItem->setText(6,"---"); | 243 | mItem->setText(6,"---"); |
246 | mItem->setText(7,j->dtStartDateStr()); | 244 | mItem->setText(7,"---"); |
247 | mItem->setText(8,"---"); | 245 | mItem->setText(8,"---"); |
248 | mItem->setText(9,"---"); | 246 | mItem->setText(9,j->categoriesStr()); |
249 | mItem->setText(10,j->categoriesStr()); | 247 | mItem->setText(10, KOPrefs::instance()->calName( j->calID() )); |
250 | mItem->setText(11, KOPrefs::instance()->calName( j->calID() )); | 248 | mItem->setText(11, KGlobal::locale()->formatDateTime( j->lastModified(), true, true )); |
251 | mItem->setText(12, KGlobal::locale()->formatDateTime( j->lastModified(), true, true )); | ||
252 | 249 | ||
253 | QString key; | 250 | QString key; |
254 | QDate d = j->lastModified().date(); | 251 | QDate d = j->lastModified().date(); |
255 | QTime tm = j->lastModified().time(); | 252 | QTime tm = j->lastModified().time(); |
256 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() ); | 253 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() ); |
257 | mItem->setSortKey(12,key); | 254 | mItem->setSortKey(12,key); |
258 | d = j->dtStart().date(); | 255 | d = j->dtStart().date(); |
259 | key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | 256 | key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); |
260 | mItem->setSortKey(1,key); | 257 | mItem->setSortKey(1,key); |
261 | mItem->setSortKey(7,key); | 258 | mItem->setSortKey(7,key); |
262 | 259 | ||
263 | return true; | 260 | return true; |
264 | } | 261 | } |
265 | 262 | ||
266 | KOListView::KOListView(Calendar *calendar, QWidget *parent, | 263 | KOListView::KOListView(Calendar *calendar, QWidget *parent, |
267 | const char *name) | 264 | const char *name) |
268 | : KOEventView(calendar, parent, name) | 265 | : KOEventView(calendar, parent, name) |
269 | { | 266 | { |
270 | 267 | ||
271 | mActiveItem = 0; | 268 | mActiveItem = 0; |
272 | mForceShowCompletedTodos = false; | 269 | mForceShowCompletedTodos = false; |
273 | mListView = new KOListViewListView(this); | 270 | mListView = new KOListViewListView(this); |
274 | mListView->addColumn(i18n("Summary")); | 271 | mListView->addColumn(i18n("Summary")); |
275 | mListView->addColumn(i18n("Start Date")); | 272 | mListView->addColumn(i18n("Start Date")); |
276 | mListView->addColumn(i18n("Start Time")); | 273 | mListView->addColumn(i18n("Start Time")); |
277 | mListView->addColumn(i18n("End Date")); | 274 | mListView->addColumn(i18n("End/Due Date")); |
278 | mListView->addColumn(i18n("End Time")); | 275 | mListView->addColumn(i18n("End/Due Time")); |
276 | mListView->addColumn(i18n("Duration")); | ||
279 | mListView->addColumn(i18n("Alarm")); // alarm set? | 277 | mListView->addColumn(i18n("Alarm")); // alarm set? |
280 | mListView->addColumn(i18n("Recurs")); // recurs? | 278 | mListView->addColumn(i18n("Recurs")); // recurs? |
281 | mListView->addColumn(i18n("Due Date")); | ||
282 | mListView->addColumn(i18n("Due Time")); | ||
283 | mListView->addColumn(i18n("Cancelled")); | 279 | mListView->addColumn(i18n("Cancelled")); |
284 | mListView->addColumn(i18n("Categories")); | 280 | mListView->addColumn(i18n("Categories")); |
285 | mListView->addColumn(i18n("Calendar")); | 281 | mListView->addColumn(i18n("Calendar")); |
286 | mListView->addColumn(i18n("Last Modified")); | 282 | mListView->addColumn(i18n("Last Modified")); |
287 | 283 | ||
288 | mListView->setColumnAlignment(0,AlignLeft); | 284 | mListView->setColumnAlignment(0,AlignLeft); |
289 | mListView->setColumnAlignment(1,AlignLeft); | 285 | mListView->setColumnAlignment(1,AlignLeft); |
290 | mListView->setColumnAlignment(2,AlignHCenter); | 286 | mListView->setColumnAlignment(2,AlignHCenter); |
291 | mListView->setColumnAlignment(3,AlignLeft); | 287 | mListView->setColumnAlignment(3,AlignLeft); |
292 | mListView->setColumnAlignment(4,AlignHCenter); | 288 | mListView->setColumnAlignment(4,AlignHCenter); |
293 | mListView->setColumnAlignment(5,AlignLeft); | 289 | mListView->setColumnAlignment(5,AlignLeft); |
294 | mListView->setColumnAlignment(6,AlignLeft); | 290 | mListView->setColumnAlignment(6,AlignLeft); |
295 | mListView->setColumnAlignment(7,AlignLeft); | 291 | mListView->setColumnAlignment(7,AlignLeft); |
296 | mListView->setColumnAlignment(8,AlignLeft); | 292 | mListView->setColumnAlignment(8,AlignLeft); |
297 | mListView->setColumnAlignment(9,AlignLeft); | 293 | mListView->setColumnAlignment(9,AlignLeft); |
298 | mListView->setColumnAlignment(10,AlignLeft); | 294 | mListView->setColumnAlignment(10,AlignLeft); |
299 | mListView->setColumnAlignment(11,AlignLeft); | 295 | mListView->setColumnAlignment(11,AlignLeft); |
300 | mListView->setColumnAlignment(12,AlignLeft); | ||
301 | mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this); | 296 | mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this); |
302 | 297 | ||
303 | int iii = 0; | 298 | int iii = 0; |
304 | for ( iii = 0; iii< 13 ; ++iii ) | 299 | for ( iii = 0; iii< 12 ; ++iii ) |
305 | mListView->setColumnWidthMode( iii, QListView::Manual ); | 300 | mListView->setColumnWidthMode( iii, QListView::Manual ); |
306 | 301 | ||
307 | QBoxLayout *layoutTop = new QVBoxLayout(this); | 302 | QBoxLayout *layoutTop = new QVBoxLayout(this); |
308 | layoutTop->addWidget(mListView); | 303 | layoutTop->addWidget(mListView); |
309 | mListView->setFont ( KOPrefs::instance()->mListViewFont ); | 304 | mListView->setFont ( KOPrefs::instance()->mListViewFont ); |
310 | mPopupMenu = eventPopup(); | 305 | mPopupMenu = eventPopup(); |
311 | QPopupMenu* selPopup = new QPopupMenu ( this ); | 306 | QPopupMenu* selPopup = new QPopupMenu ( this ); |
312 | mPopupMenu->insertSeparator(); | 307 | mPopupMenu->insertSeparator(); |
313 | 308 | ||
314 | selPopup->insertItem(i18n("All"),this, | 309 | selPopup->insertItem(i18n("All"),this, |
315 | SLOT(allSelection())); | 310 | SLOT(allSelection())); |
316 | selPopup->insertItem(i18n("None"),this, | 311 | selPopup->insertItem(i18n("None"),this, |
317 | SLOT(clearSelection())); | 312 | SLOT(clearSelection())); |
318 | selPopup->insertItem(i18n("Delete selected..."),this, | 313 | selPopup->insertItem(i18n("Delete selected..."),this, |
319 | SLOT(deleteAll())); | 314 | SLOT(deleteAll())); |
320 | mPopupMenu->insertItem(i18n("Selection"), selPopup ); | 315 | mPopupMenu->insertItem(i18n("Selection"), selPopup ); |
321 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 316 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
322 | i18n("Hide all selected"),this, | 317 | i18n("Hide all selected"),this, |
323 | SLOT(hideAll()),true); | 318 | SLOT(hideAll()),true); |
324 | 319 | ||
325 | selPopup->insertSeparator(); | 320 | selPopup->insertSeparator(); |
326 | QPopupMenu * exportPO = new QPopupMenu ( this ); | 321 | QPopupMenu * exportPO = new QPopupMenu ( this ); |
327 | selPopup->insertItem( i18n("Export"), exportPO ); | 322 | selPopup->insertItem( i18n("Export"), exportPO ); |
328 | #ifdef DESKTOP_VERSION | 323 | #ifdef DESKTOP_VERSION |
329 | mPopupMenu->insertSeparator(); | 324 | mPopupMenu->insertSeparator(); |
330 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 325 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
331 | i18n("Print complete list..."),this, | 326 | i18n("Print complete list..."),this, |
332 | SLOT(printList()),true); | 327 | SLOT(printList()),true); |
333 | #endif | 328 | #endif |
334 | mCalPopup = new QPopupMenu ( this ); | 329 | mCalPopup = new QPopupMenu ( this ); |
335 | selPopup->insertItem( i18n("Set Calendar"), mCalPopup ); | 330 | selPopup->insertItem( i18n("Set Calendar"), mCalPopup ); |
336 | 331 | ||
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 77d0ac8..98a820d 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -196,65 +196,68 @@ MainWindow::MainWindow( QWidget *parent, const char *name ) : | |||
196 | tbd = Right; | 196 | tbd = Right; |
197 | else | 197 | else |
198 | tbd = Left; | 198 | tbd = Left; |
199 | } | 199 | } |
200 | if ( KOPrefs::instance()->mUseAppColors ) | 200 | if ( KOPrefs::instance()->mUseAppColors ) |
201 | QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); | 201 | QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); |
202 | globalFlagBlockStartup = 1; | 202 | globalFlagBlockStartup = 1; |
203 | iconToolBar = new QPEToolBar( this ); | 203 | iconToolBar = new QPEToolBar( this ); |
204 | addToolBar (iconToolBar , tbd ); | 204 | addToolBar (iconToolBar , tbd ); |
205 | 205 | ||
206 | #ifdef DESKTOP_VERSION | 206 | #ifdef DESKTOP_VERSION |
207 | if ( KOPrefs::instance()->mShowIconFilter ) | 207 | if ( KOPrefs::instance()->mShowIconFilter ) |
208 | #else | 208 | #else |
209 | if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) | 209 | if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) |
210 | #endif | 210 | #endif |
211 | 211 | ||
212 | { | 212 | { |
213 | if ( p->mToolBarHorF ) { | 213 | if ( p->mToolBarHorF ) { |
214 | if ( p->mToolBarUpF ) | 214 | if ( p->mToolBarUpF ) |
215 | tbd = Bottom; | 215 | tbd = Bottom; |
216 | else | 216 | else |
217 | tbd = Top; | 217 | tbd = Top; |
218 | } | 218 | } |
219 | else { | 219 | else { |
220 | if ( p->mToolBarUpF ) | 220 | if ( p->mToolBarUpF ) |
221 | tbd = Right; | 221 | tbd = Right; |
222 | else | 222 | else |
223 | tbd = Left; | 223 | tbd = Left; |
224 | } | 224 | } |
225 | filterToolBar = new QPEToolBar ( this ); | 225 | filterToolBar = new QPEToolBar ( this ); |
226 | filterMenubar = new KMenuBar( 0 ); | 226 | filterMenubar = new KMenuBar( 0 ); |
227 | QFontMetrics fm ( filterMenubar->font() ); | 227 | QFontMetrics fm ( filterMenubar->font() ); |
228 | 228 | #ifndef DESKTOP_VERSION | |
229 | filterToolBar->setFocusPolicy( NoFocus ); | ||
230 | filterMenubar->setFocusPolicy( NoFocus ); | ||
231 | #endif | ||
229 | filterPopupMenu = new QPopupMenu( this ); | 232 | filterPopupMenu = new QPopupMenu( this ); |
230 | filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); | 233 | filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); |
231 | QString addTest = "A"; | 234 | QString addTest = "A"; |
232 | filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) ); | 235 | filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) ); |
233 | #ifdef DESKTOP_VERSION | 236 | #ifdef DESKTOP_VERSION |
234 | addTest = "AAABBBCCCx"; | 237 | addTest = "AAABBBCCCx"; |
235 | #else | 238 | #else |
236 | addTest = "AAx"; | 239 | addTest = "AAx"; |
237 | #endif | 240 | #endif |
238 | filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) ); | 241 | filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) ); |
239 | addToolBar (filterToolBar , tbd ); | 242 | addToolBar (filterToolBar , tbd ); |
240 | connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); | 243 | connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); |
241 | connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); | 244 | connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); |
242 | if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) | 245 | if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) |
243 | filterToolBar->hide(); | 246 | filterToolBar->hide(); |
244 | } else { | 247 | } else { |
245 | filterToolBar = 0; | 248 | filterToolBar = 0; |
246 | filterMenubar = 0; | 249 | filterMenubar = 0; |
247 | filterPopupMenu = 0; | 250 | filterPopupMenu = 0; |
248 | } | 251 | } |
249 | if ( p->mShowIconOnetoolbar ) { | 252 | if ( p->mShowIconOnetoolbar ) { |
250 | viewToolBar = iconToolBar ; | 253 | viewToolBar = iconToolBar ; |
251 | navigatorToolBar = iconToolBar ; | 254 | navigatorToolBar = iconToolBar ; |
252 | } else { | 255 | } else { |
253 | #ifndef DESKTOP_VERSION | 256 | #ifndef DESKTOP_VERSION |
254 | setToolBarsMovable( false ); | 257 | setToolBarsMovable( false ); |
255 | #endif | 258 | #endif |
256 | if ( p->mToolBarHorV ) { | 259 | if ( p->mToolBarHorV ) { |
257 | if ( p->mToolBarUpV ) | 260 | if ( p->mToolBarUpV ) |
258 | tbd = Bottom; | 261 | tbd = Bottom; |
259 | else | 262 | else |
260 | tbd = Top; | 263 | tbd = Top; |
diff --git a/libkcal/alarm.cpp b/libkcal/alarm.cpp index 79e0464..3157214 100644 --- a/libkcal/alarm.cpp +++ b/libkcal/alarm.cpp | |||
@@ -321,65 +321,65 @@ void Alarm::setText(const QString &text) | |||
321 | mDescription = text; | 321 | mDescription = text; |
322 | mParent->updated(); | 322 | mParent->updated(); |
323 | } | 323 | } |
324 | } | 324 | } |
325 | 325 | ||
326 | QString Alarm::text() const | 326 | QString Alarm::text() const |
327 | { | 327 | { |
328 | return (mType == Display) ? mDescription : QString::null; | 328 | return (mType == Display) ? mDescription : QString::null; |
329 | } | 329 | } |
330 | 330 | ||
331 | void Alarm::setTime(const QDateTime &alarmTime) | 331 | void Alarm::setTime(const QDateTime &alarmTime) |
332 | { | 332 | { |
333 | mAlarmTime = alarmTime; | 333 | mAlarmTime = alarmTime; |
334 | mHasTime = true; | 334 | mHasTime = true; |
335 | 335 | ||
336 | mParent->updated(); | 336 | mParent->updated(); |
337 | } | 337 | } |
338 | int Alarm::offset() | 338 | int Alarm::offset() |
339 | { | 339 | { |
340 | if ( hasTime() ) { | 340 | if ( hasTime() ) { |
341 | if (mParent->typeID() == todoID ) { | 341 | if (mParent->typeID() == todoID ) { |
342 | Todo *t = static_cast<Todo*>(mParent); | 342 | Todo *t = static_cast<Todo*>(mParent); |
343 | return t->dtDue().secsTo( mAlarmTime ) ; | 343 | return t->dtDue().secsTo( mAlarmTime ) ; |
344 | } else | 344 | } else |
345 | return mParent->dtStart().secsTo( mAlarmTime ) ; | 345 | return mParent->dtStart().secsTo( mAlarmTime ) ; |
346 | } | 346 | } |
347 | else | 347 | else |
348 | { | 348 | { |
349 | return mOffset.asSeconds(); | 349 | return mOffset.asSeconds(); |
350 | } | 350 | } |
351 | 351 | ||
352 | } | 352 | } |
353 | QString Alarm::offsetText() | 353 | QString Alarm::offsetText() |
354 | { | 354 | { |
355 | int min = -offset()/60; | 355 | int min = -offset()/60; |
356 | int hours = min /60; | 356 | int hours = min /60; |
357 | min = min % 60; | 357 | min = min % 60; |
358 | int days = hours /24; | 358 | int days = hours /24; |
359 | hours = hours % 24; | 359 | hours = hours % 24; |
360 | QString message; | 360 | QString message; |
361 | //qDebug("%d %d %d ", days, hours, min ); | 361 | //qDebug("%d %d %d ", days, hours, min ); |
362 | if ( days > 0 ) | 362 | if ( days > 0 ) |
363 | message += i18n("%1d").arg( days ); | 363 | message += i18n("%1d").arg( days ); |
364 | if ( hours > 0 ) { | 364 | if ( hours > 0 ) { |
365 | if ( !message.isEmpty() ) message += "/"; | 365 | if ( !message.isEmpty() ) message += "/"; |
366 | message += i18n("%1h").arg( hours ); | 366 | message += i18n("%1h").arg( hours ); |
367 | } | 367 | } |
368 | if ( min > 0 ) { | 368 | if ( min > 0 ) { |
369 | if ( !message.isEmpty() ) message += "/"; | 369 | if ( !message.isEmpty() ) message += "/"; |
370 | message += i18n("%1min").arg( min ); | 370 | message += i18n("%1min").arg( min ); |
371 | } | 371 | } |
372 | if ( message.isEmpty() ) | 372 | if ( message.isEmpty() ) |
373 | message = i18n("%1min").arg( 0 ); | 373 | message = i18n("%1min").arg( 0 ); |
374 | if ( !mParent->alarmEnabled() ) | 374 | if ( !mParent->alarmEnabled() ) |
375 | return "!"+message + i18n("(disabled)"); | 375 | return "!"+message + i18n("(disabled)"); |
376 | return message; | 376 | return message; |
377 | } | 377 | } |
378 | 378 | ||
379 | 379 | ||
380 | QDateTime Alarm::time() const | 380 | QDateTime Alarm::time() const |
381 | { | 381 | { |
382 | if ( hasTime() ) | 382 | if ( hasTime() ) |
383 | return mAlarmTime; | 383 | return mAlarmTime; |
384 | else | 384 | else |
385 | { | 385 | { |
diff --git a/libkcal/event.cpp b/libkcal/event.cpp index 0766fd9..fdf5657 100644 --- a/libkcal/event.cpp +++ b/libkcal/event.cpp | |||
@@ -385,32 +385,40 @@ QDateTime Event::getNextAlarmDateTime( bool * ok, int * offset, QDateTime start_ | |||
385 | // return incidenceStart; | 385 | // return incidenceStart; |
386 | // } | 386 | // } |
387 | for (QPtrListIterator<Alarm> it(mAlarms); (alarm = it.current()) != 0; ++it) { | 387 | for (QPtrListIterator<Alarm> it(mAlarms); (alarm = it.current()) != 0; ++it) { |
388 | if (alarm->enabled()) { | 388 | if (alarm->enabled()) { |
389 | if ( alarm->hasTime () ) { | 389 | if ( alarm->hasTime () ) { |
390 | if ( alarm->time() < alarmStart ) { | 390 | if ( alarm->time() < alarmStart ) { |
391 | alarmStart = alarm->time(); | 391 | alarmStart = alarm->time(); |
392 | enabled = true; | 392 | enabled = true; |
393 | off = alarmStart.secsTo( incidenceStart ); | 393 | off = alarmStart.secsTo( incidenceStart ); |
394 | } | 394 | } |
395 | 395 | ||
396 | } else { | 396 | } else { |
397 | int secs = alarm->startOffset().asSeconds(); | 397 | int secs = alarm->startOffset().asSeconds(); |
398 | if ( incidenceStart.addSecs( secs ) < alarmStart ) { | 398 | if ( incidenceStart.addSecs( secs ) < alarmStart ) { |
399 | alarmStart = incidenceStart.addSecs( secs ); | 399 | alarmStart = incidenceStart.addSecs( secs ); |
400 | enabled = true; | 400 | enabled = true; |
401 | off = -secs; | 401 | off = -secs; |
402 | } | 402 | } |
403 | } | 403 | } |
404 | } | 404 | } |
405 | } | 405 | } |
406 | if ( enabled ) { | 406 | if ( enabled ) { |
407 | if ( alarmStart > start_dt ) { | 407 | if ( alarmStart > start_dt ) { |
408 | *ok = true; | 408 | *ok = true; |
409 | * offset = off; | 409 | * offset = off; |
410 | return alarmStart; | 410 | return alarmStart; |
411 | } | 411 | } |
412 | } | 412 | } |
413 | *ok = false; | 413 | *ok = false; |
414 | return QDateTime (); | 414 | return QDateTime (); |
415 | 415 | ||
416 | } | 416 | } |
417 | |||
418 | QString Event::durationText() | ||
419 | { | ||
420 | int sec = mDtStart.secsTo( mDtEnd ); | ||
421 | if ( doesFloat() ) | ||
422 | sec += 86400; | ||
423 | return durationText4Time( sec ); | ||
424 | } | ||
diff --git a/libkcal/event.h b/libkcal/event.h index 2da9770..6a58618 100644 --- a/libkcal/event.h +++ b/libkcal/event.h | |||
@@ -47,48 +47,49 @@ class Event : public Incidence | |||
47 | QDateTime getNextAlarmDateTime( bool * ok, int * offset ,QDateTime start_dt ) const; | 47 | QDateTime getNextAlarmDateTime( bool * ok, int * offset ,QDateTime start_dt ) const; |
48 | 48 | ||
49 | /** for setting an event's ending date/time with a QDateTime. */ | 49 | /** for setting an event's ending date/time with a QDateTime. */ |
50 | void setDtEnd(const QDateTime &dtEnd); | 50 | void setDtEnd(const QDateTime &dtEnd); |
51 | /** Return the event's ending date/time as a QDateTime. */ | 51 | /** Return the event's ending date/time as a QDateTime. */ |
52 | virtual QDateTime dtEnd() const; | 52 | virtual QDateTime dtEnd() const; |
53 | /** returns an event's end time as a string formatted according to the | 53 | /** returns an event's end time as a string formatted according to the |
54 | users locale settings */ | 54 | users locale settings */ |
55 | QString dtEndTimeStr() const; | 55 | QString dtEndTimeStr() const; |
56 | /** returns an event's end date as a string formatted according to the | 56 | /** returns an event's end date as a string formatted according to the |
57 | users locale settings */ | 57 | users locale settings */ |
58 | QString dtEndDateStr(bool shortfmt=true) const; | 58 | QString dtEndDateStr(bool shortfmt=true) const; |
59 | /** returns an event's end date and time as a string formatted according | 59 | /** returns an event's end date and time as a string formatted according |
60 | to the users locale settings */ | 60 | to the users locale settings */ |
61 | QString dtEndStr(bool shortfmt=true) const; | 61 | QString dtEndStr(bool shortfmt=true) const; |
62 | void setHasEndDate(bool); | 62 | void setHasEndDate(bool); |
63 | /** Return whether the event has an end date/time. */ | 63 | /** Return whether the event has an end date/time. */ |
64 | bool hasEndDate() const; | 64 | bool hasEndDate() const; |
65 | 65 | ||
66 | /** Return true if the event spans multiple days, otherwise return false. */ | 66 | /** Return true if the event spans multiple days, otherwise return false. */ |
67 | bool isMultiDay() const; | 67 | bool isMultiDay() const; |
68 | 68 | ||
69 | /** set the event's time transparency level. */ | 69 | /** set the event's time transparency level. */ |
70 | void setTransparency(Transparency transparency); | 70 | void setTransparency(Transparency transparency); |
71 | /** get the event's time transparency level. */ | 71 | /** get the event's time transparency level. */ |
72 | Transparency transparency() const; | 72 | Transparency transparency() const; |
73 | 73 | ||
74 | void setDuration(int seconds); | 74 | void setDuration(int seconds); |
75 | 75 | ||
76 | bool contains ( Event*); | 76 | bool contains ( Event*); |
77 | 77 | ||
78 | bool isOverlapping ( Event*, QDateTime*, QDateTime* ); | 78 | bool isOverlapping ( Event*, QDateTime*, QDateTime* ); |
79 | QString durationText(); | ||
79 | 80 | ||
80 | private: | 81 | private: |
81 | bool accept(Visitor &v) { return v.visit(this); } | 82 | bool accept(Visitor &v) { return v.visit(this); } |
82 | 83 | ||
83 | QDateTime mDtEnd; | 84 | QDateTime mDtEnd; |
84 | bool mHasEndDate; | 85 | bool mHasEndDate; |
85 | Transparency mTransparency; | 86 | Transparency mTransparency; |
86 | }; | 87 | }; |
87 | 88 | ||
88 | bool operator==( const Event&, const Event& ); | 89 | bool operator==( const Event&, const Event& ); |
89 | 90 | ||
90 | 91 | ||
91 | } | 92 | } |
92 | 93 | ||
93 | 94 | ||
94 | #endif | 95 | #endif |
diff --git a/libkcal/incidence.cpp b/libkcal/incidence.cpp index 4643a3a..201f593 100644 --- a/libkcal/incidence.cpp +++ b/libkcal/incidence.cpp | |||
@@ -71,65 +71,94 @@ Incidence::Incidence( const Incidence &i ) : IncidenceBase( i ) | |||
71 | while( (a = it.current()) ) { | 71 | while( (a = it.current()) ) { |
72 | Alarm *b = new Alarm( *a ); | 72 | Alarm *b = new Alarm( *a ); |
73 | b->setParent( this ); | 73 | b->setParent( this ); |
74 | mAlarms.append( b ); | 74 | mAlarms.append( b ); |
75 | 75 | ||
76 | ++it; | 76 | ++it; |
77 | } | 77 | } |
78 | mAlarms.setAutoDelete(true); | 78 | mAlarms.setAutoDelete(true); |
79 | mHasRecurrenceID = i.mHasRecurrenceID; | 79 | mHasRecurrenceID = i.mHasRecurrenceID; |
80 | mRecurrenceID = i.mRecurrenceID; | 80 | mRecurrenceID = i.mRecurrenceID; |
81 | if ( i.mRecurrence ) | 81 | if ( i.mRecurrence ) |
82 | mRecurrence = new Recurrence( *(i.mRecurrence), this ); | 82 | mRecurrence = new Recurrence( *(i.mRecurrence), this ); |
83 | else | 83 | else |
84 | mRecurrence = 0; | 84 | mRecurrence = 0; |
85 | mHoliday = i.mHoliday ; | 85 | mHoliday = i.mHoliday ; |
86 | mBirthday = i.mBirthday; | 86 | mBirthday = i.mBirthday; |
87 | mAnniversary = i.mAnniversary; | 87 | mAnniversary = i.mAnniversary; |
88 | } | 88 | } |
89 | 89 | ||
90 | Incidence::~Incidence() | 90 | Incidence::~Incidence() |
91 | { | 91 | { |
92 | 92 | ||
93 | Incidence *ev; | 93 | Incidence *ev; |
94 | QPtrList<Incidence> Relations = relations(); | 94 | QPtrList<Incidence> Relations = relations(); |
95 | for (ev=Relations.first();ev;ev=Relations.next()) { | 95 | for (ev=Relations.first();ev;ev=Relations.next()) { |
96 | if (ev->relatedTo() == this) ev->setRelatedTo(0); | 96 | if (ev->relatedTo() == this) ev->setRelatedTo(0); |
97 | } | 97 | } |
98 | if (relatedTo()) relatedTo()->removeRelation(this); | 98 | if (relatedTo()) relatedTo()->removeRelation(this); |
99 | if ( mRecurrence ) | 99 | if ( mRecurrence ) |
100 | delete mRecurrence; | 100 | delete mRecurrence; |
101 | 101 | ||
102 | } | 102 | } |
103 | QString Incidence::durationText() | ||
104 | { | ||
105 | return "---"; | ||
106 | } | ||
107 | QString Incidence::durationText4Time( int offset ) | ||
108 | { | ||
109 | int min = offset/60; | ||
110 | int hours = min /60; | ||
111 | min = min % 60; | ||
112 | int days = hours /24; | ||
113 | hours = hours % 24; | ||
114 | |||
115 | if ( doesFloat() || ( min == 0 && hours == 0 ) ) { | ||
116 | if ( days == 1 ) | ||
117 | return "1" + i18n(" day"); | ||
118 | else | ||
119 | return QString::number( days )+ i18n(" days"); | ||
103 | 120 | ||
121 | } | ||
122 | QString message = QString::number ( hours ) +":"; | ||
123 | if ( min < 10 ) message += "0"; | ||
124 | message += QString::number ( min ); | ||
125 | if ( days > 0 ) { | ||
126 | if ( days == 1 ) | ||
127 | message = "1" + i18n(" day") + " "+message; | ||
128 | else | ||
129 | message = QString::number( days )+ i18n(" days") + " "+message; | ||
130 | } | ||
131 | return message; | ||
132 | } | ||
104 | bool Incidence::isHoliday() const | 133 | bool Incidence::isHoliday() const |
105 | { | 134 | { |
106 | return mHoliday; | 135 | return mHoliday; |
107 | } | 136 | } |
108 | bool Incidence::isBirthday() const | 137 | bool Incidence::isBirthday() const |
109 | { | 138 | { |
110 | 139 | ||
111 | return mBirthday ; | 140 | return mBirthday ; |
112 | } | 141 | } |
113 | bool Incidence::isAnniversary() const | 142 | bool Incidence::isAnniversary() const |
114 | { | 143 | { |
115 | return mAnniversary ; | 144 | return mAnniversary ; |
116 | 145 | ||
117 | } | 146 | } |
118 | 147 | ||
119 | bool Incidence::hasRecurrenceID() const | 148 | bool Incidence::hasRecurrenceID() const |
120 | { | 149 | { |
121 | return mHasRecurrenceID; | 150 | return mHasRecurrenceID; |
122 | } | 151 | } |
123 | 152 | ||
124 | void Incidence::setHasRecurrenceID( bool b ) | 153 | void Incidence::setHasRecurrenceID( bool b ) |
125 | { | 154 | { |
126 | mHasRecurrenceID = b; | 155 | mHasRecurrenceID = b; |
127 | } | 156 | } |
128 | 157 | ||
129 | void Incidence::setRecurrenceID(QDateTime d) | 158 | void Incidence::setRecurrenceID(QDateTime d) |
130 | { | 159 | { |
131 | mRecurrenceID = d; | 160 | mRecurrenceID = d; |
132 | mHasRecurrenceID = true; | 161 | mHasRecurrenceID = true; |
133 | updated(); | 162 | updated(); |
134 | } | 163 | } |
135 | QDateTime Incidence::recurrenceID () const | 164 | QDateTime Incidence::recurrenceID () const |
diff --git a/libkcal/incidence.h b/libkcal/incidence.h index 8519f01..88df217 100644 --- a/libkcal/incidence.h +++ b/libkcal/incidence.h | |||
@@ -252,65 +252,66 @@ class Incidence : public IncidenceBase | |||
252 | Recurrence *recurrence(); | 252 | Recurrence *recurrence(); |
253 | void setRecurrence(Recurrence * r); | 253 | void setRecurrence(Recurrence * r); |
254 | /** | 254 | /** |
255 | Forward to Recurrence::doesRecur(). | 255 | Forward to Recurrence::doesRecur(). |
256 | */ | 256 | */ |
257 | ushort doesRecur() const; | 257 | ushort doesRecur() const; |
258 | 258 | ||
259 | /** set the event's/todo's location. Do _not_ use it with journal */ | 259 | /** set the event's/todo's location. Do _not_ use it with journal */ |
260 | void setLocation(const QString &location); | 260 | void setLocation(const QString &location); |
261 | /** return the event's/todo's location. Do _not_ use it with journal */ | 261 | /** return the event's/todo's location. Do _not_ use it with journal */ |
262 | QString location() const; | 262 | QString location() const; |
263 | /** returns TRUE or FALSE depending on whether the todo has a start date */ | 263 | /** returns TRUE or FALSE depending on whether the todo has a start date */ |
264 | bool hasStartDate() const; | 264 | bool hasStartDate() const; |
265 | /** sets the event's hasStartDate value. */ | 265 | /** sets the event's hasStartDate value. */ |
266 | void setHasStartDate(bool f); | 266 | void setHasStartDate(bool f); |
267 | QDateTime getNextOccurence( const QDateTime& dt, bool* yes ) const; | 267 | QDateTime getNextOccurence( const QDateTime& dt, bool* yes ) const; |
268 | bool cancelled() const; | 268 | bool cancelled() const; |
269 | void setCancelled( bool b ); | 269 | void setCancelled( bool b ); |
270 | 270 | ||
271 | bool hasRecurrenceID() const; | 271 | bool hasRecurrenceID() const; |
272 | void setHasRecurrenceID( bool b ); | 272 | void setHasRecurrenceID( bool b ); |
273 | 273 | ||
274 | void setRecurrenceID(QDateTime); | 274 | void setRecurrenceID(QDateTime); |
275 | QDateTime recurrenceID () const; | 275 | QDateTime recurrenceID () const; |
276 | QDateTime dtStart() const; | 276 | QDateTime dtStart() const; |
277 | bool isHoliday() const; | 277 | bool isHoliday() const; |
278 | bool isBirthday() const; | 278 | bool isBirthday() const; |
279 | bool isAnniversary() const; | 279 | bool isAnniversary() const; |
280 | QDateTime lastModifiedSub(); | 280 | QDateTime lastModifiedSub(); |
281 | QString recurrenceText() const; | 281 | QString recurrenceText() const; |
282 | void setLastModifiedSubInvalid(); | 282 | void setLastModifiedSubInvalid(); |
283 | 283 | ||
284 | 284 | virtual QString durationText(); | |
285 | QString durationText4Time( int secs ); | ||
285 | Recurrence *mRecurrence; | 286 | Recurrence *mRecurrence; |
286 | protected: | 287 | protected: |
287 | QPtrList<Alarm> mAlarms; | 288 | QPtrList<Alarm> mAlarms; |
288 | QPtrList<Incidence> mRelations; | 289 | QPtrList<Incidence> mRelations; |
289 | QDateTime mRecurrenceID; | 290 | QDateTime mRecurrenceID; |
290 | bool mHasRecurrenceID; | 291 | bool mHasRecurrenceID; |
291 | private: | 292 | private: |
292 | void checkCategories(); | 293 | void checkCategories(); |
293 | bool mHoliday, mBirthday, mAnniversary; | 294 | bool mHoliday, mBirthday, mAnniversary; |
294 | int mRevision; | 295 | int mRevision; |
295 | bool mCancelled; | 296 | bool mCancelled; |
296 | 297 | ||
297 | // base components of jounal, event and todo | 298 | // base components of jounal, event and todo |
298 | QDateTime mCreated; | 299 | QDateTime mCreated; |
299 | QDateTime mLastModifiedSub; | 300 | QDateTime mLastModifiedSub; |
300 | QString mDescription; | 301 | QString mDescription; |
301 | QString mSummary; | 302 | QString mSummary; |
302 | QStringList mCategories; | 303 | QStringList mCategories; |
303 | Incidence *mRelatedTo; | 304 | Incidence *mRelatedTo; |
304 | QString mRelatedToUid; | 305 | QString mRelatedToUid; |
305 | DateList mExDates; | 306 | DateList mExDates; |
306 | QPtrList<Attachment> mAttachments; | 307 | QPtrList<Attachment> mAttachments; |
307 | QStringList mResources; | 308 | QStringList mResources; |
308 | bool mHasStartDate; // if todo has associated start date | 309 | bool mHasStartDate; // if todo has associated start date |
309 | 310 | ||
310 | int mSecrecy; | 311 | int mSecrecy; |
311 | int mPriority; // 1 = highest, 2 = less, etc. | 312 | int mPriority; // 1 = highest, 2 = less, etc. |
312 | 313 | ||
313 | //QPtrList<Alarm> mAlarms; | 314 | //QPtrList<Alarm> mAlarms; |
314 | 315 | ||
315 | QString mLocation; | 316 | QString mLocation; |
316 | }; | 317 | }; |
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp index 7bf756a..e4508a0 100644 --- a/libkcal/todo.cpp +++ b/libkcal/todo.cpp | |||
@@ -585,32 +585,42 @@ QDateTime Todo::getNextAlarmDateTime( bool * ok, int * offset, QDateTime start_d | |||
585 | } | 585 | } |
586 | } | 586 | } |
587 | } | 587 | } |
588 | if ( enabled ) { | 588 | if ( enabled ) { |
589 | if ( alarmStart > start_dt ) { | 589 | if ( alarmStart > start_dt ) { |
590 | *ok = true; | 590 | *ok = true; |
591 | * offset = off; | 591 | * offset = off; |
592 | return alarmStart; | 592 | return alarmStart; |
593 | } | 593 | } |
594 | } | 594 | } |
595 | *ok = false; | 595 | *ok = false; |
596 | return QDateTime (); | 596 | return QDateTime (); |
597 | 597 | ||
598 | } | 598 | } |
599 | 599 | ||
600 | void Todo::checkSetCompletedFalse() | 600 | void Todo::checkSetCompletedFalse() |
601 | { | 601 | { |
602 | if ( !mHasRecurrenceID ) { | 602 | if ( !mHasRecurrenceID ) { |
603 | qDebug("ERROR 1 in Todo::checkSetCompletedFalse"); | 603 | qDebug("ERROR 1 in Todo::checkSetCompletedFalse"); |
604 | return; | 604 | return; |
605 | } | 605 | } |
606 | // qDebug("Todo::checkSetCompletedFalse()"); | 606 | // qDebug("Todo::checkSetCompletedFalse()"); |
607 | //qDebug("%s %s %s ",mDtStart.toString().latin1(), dtDue().toString().latin1(),mRecurrenceID.toString().latin1() ); | 607 | //qDebug("%s %s %s ",mDtStart.toString().latin1(), dtDue().toString().latin1(),mRecurrenceID.toString().latin1() ); |
608 | if ( mPercentComplete == 100 ) { | 608 | if ( mPercentComplete == 100 ) { |
609 | QDateTime dt = QDateTime::currentDateTime(); | 609 | QDateTime dt = QDateTime::currentDateTime(); |
610 | if ( dt > mDtStart && dt > mRecurrenceID ) { | 610 | if ( dt > mDtStart && dt > mRecurrenceID ) { |
611 | qDebug("start: %s --due: %s --recID: %s ",mDtStart.toString().latin1(), dtDue().toString().latin1(),mRecurrenceID.toString().latin1() ); | 611 | qDebug("start: %s --due: %s --recID: %s ",mDtStart.toString().latin1(), dtDue().toString().latin1(),mRecurrenceID.toString().latin1() ); |
612 | setCompleted( false ); | 612 | setCompleted( false ); |
613 | qDebug("Todo::checkSetCompletedFalse "); | 613 | qDebug("Todo::checkSetCompletedFalse "); |
614 | } | 614 | } |
615 | } | 615 | } |
616 | } | 616 | } |
617 | QString Todo::durationText() | ||
618 | { | ||
619 | if ( mHasDueDate && hasStartDate() ) { | ||
620 | int sec = dtStart().secsTo( dtDue() ); | ||
621 | if ( doesFloat() ) | ||
622 | sec += 86400; | ||
623 | return durationText4Time( sec ); | ||
624 | } | ||
625 | return "---"; | ||
626 | } | ||
diff --git a/libkcal/todo.h b/libkcal/todo.h index 425dfad..7feb32e 100644 --- a/libkcal/todo.h +++ b/libkcal/todo.h | |||
@@ -101,55 +101,56 @@ namespace KCal { | |||
101 | between 0 and 100. | 101 | between 0 and 100. |
102 | */ | 102 | */ |
103 | int percentComplete() const; | 103 | int percentComplete() const; |
104 | /** | 104 | /** |
105 | Set how many percent of the task are completed. Valid values are in the | 105 | Set how many percent of the task are completed. Valid values are in the |
106 | range from 0 to 100. | 106 | range from 0 to 100. |
107 | */ | 107 | */ |
108 | void setPercentComplete(int); | 108 | void setPercentComplete(int); |
109 | 109 | ||
110 | /** return date and time when todo was completed */ | 110 | /** return date and time when todo was completed */ |
111 | QDateTime completed() const; | 111 | QDateTime completed() const; |
112 | QString completedStr(bool shortF = true) const; | 112 | QString completedStr(bool shortF = true) const; |
113 | /** set date and time of completion */ | 113 | /** set date and time of completion */ |
114 | void setCompleted(const QDateTime &completed); | 114 | void setCompleted(const QDateTime &completed); |
115 | 115 | ||
116 | /** Return true, if todo has a date associated with completion */ | 116 | /** Return true, if todo has a date associated with completion */ |
117 | bool hasCompletedDate() const; | 117 | bool hasCompletedDate() const; |
118 | bool contains ( Todo*); | 118 | bool contains ( Todo*); |
119 | void checkSetCompletedFalse(); | 119 | void checkSetCompletedFalse(); |
120 | bool setRecurDates(); | 120 | bool setRecurDates(); |
121 | bool isRunning() {return mRunning;} | 121 | bool isRunning() {return mRunning;} |
122 | bool hasRunningSub(); | 122 | bool hasRunningSub(); |
123 | void setRunning( bool ); | 123 | void setRunning( bool ); |
124 | void setRunningFalse( QString ); | 124 | void setRunningFalse( QString ); |
125 | void stopRunning(); | 125 | void stopRunning(); |
126 | int runTime(); | 126 | int runTime(); |
127 | QDateTime runStart () const { return mRunStart;} | 127 | QDateTime runStart () const { return mRunStart;} |
128 | void saveRunningInfo( QString comment, QDateTime start, QDateTime end ); | 128 | void saveRunningInfo( QString comment, QDateTime start, QDateTime end ); |
129 | public slots: | 129 | public slots: |
130 | void saveRunningInfoToFile( QString st ); | 130 | void saveRunningInfoToFile( QString st ); |
131 | void saveRunningInfoToFile( ); | 131 | void saveRunningInfoToFile( ); |
132 | void saveParents(); | 132 | void saveParents(); |
133 | QString durationText(); | ||
133 | private: | 134 | private: |
134 | bool mRunning; | 135 | bool mRunning; |
135 | QTimer * mRunSaveTimer; | 136 | QTimer * mRunSaveTimer; |
136 | QDateTime mRunStart; | 137 | QDateTime mRunStart; |
137 | QDateTime mRunEnd; | 138 | QDateTime mRunEnd; |
138 | bool accept(Visitor &v) { return v.visit(this); } | 139 | bool accept(Visitor &v) { return v.visit(this); } |
139 | 140 | ||
140 | QDateTime mDtDue; // due date of todo | 141 | QDateTime mDtDue; // due date of todo |
141 | 142 | ||
142 | bool mHasDueDate; // if todo has associated due date | 143 | bool mHasDueDate; // if todo has associated due date |
143 | 144 | ||
144 | // int mStatus; // confirmed/delegated/tentative/etc | 145 | // int mStatus; // confirmed/delegated/tentative/etc |
145 | 146 | ||
146 | QDateTime mCompleted; | 147 | QDateTime mCompleted; |
147 | bool mHasCompletedDate; | 148 | bool mHasCompletedDate; |
148 | 149 | ||
149 | int mPercentComplete; | 150 | int mPercentComplete; |
150 | }; | 151 | }; |
151 | 152 | ||
152 | bool operator==( const Todo&, const Todo& ); | 153 | bool operator==( const Todo&, const Todo& ); |
153 | } | 154 | } |
154 | 155 | ||
155 | #endif | 156 | #endif |