summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-02 05:23:23 (UTC)
committer zautrix <zautrix>2005-07-02 05:23:23 (UTC)
commitb51bfb06293b34b77c46954253ab1b5220c8dd03 (patch) (unidiff)
tree63caa6a4df764e14b49440800c8744b42ce94d82
parent36a9df18a9789d0f44d0485b5f47c4f0329abb22 (diff)
downloadkdepimpi-b51bfb06293b34b77c46954253ab1b5220c8dd03.zip
kdepimpi-b51bfb06293b34b77c46954253ab1b5220c8dd03.tar.gz
kdepimpi-b51bfb06293b34b77c46954253ab1b5220c8dd03.tar.bz2
fixxx
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt8
-rw-r--r--korganizer/kofilterview.cpp95
-rw-r--r--korganizer/kofilterview.h14
3 files changed, 67 insertions, 50 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 350d6b1..9c22730 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -270,193 +270,193 @@
270{ "No","Nein" }, 270{ "No","Nein" },
271{ "No program set","Kein Programm ausgewählt", }, 271{ "No program set","Kein Programm ausgewählt", },
272{ "Normal","Normal" }, 272{ "Normal","Normal" },
273{ "[No selection]","Keine Selektion", }, 273{ "[No selection]","Keine Selektion", },
274{ "No sound set","Kein Sound ausgewählt", }, 274{ "No sound set","Kein Sound ausgewählt", },
275{ "no time ","keine Zeit ", }, 275{ "no time ","keine Zeit ", },
276{ "no time","keine Zeit", }, 276{ "no time","keine Zeit", },
277{ "No Time","Keine Zeit" }, 277{ "No Time","Keine Zeit" },
278{ "November","November" }, 278{ "November","November" },
279{ "Nov","Nov", }, 279{ "Nov","Nov", },
280{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" }, 280{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" },
281{ "occurrence(s)","Vorkommen" }, 281{ "occurrence(s)","Vorkommen" },
282{ "October","Oktober" }, 282{ "October","Oktober" },
283{ "Oct","Okt", }, 283{ "Oct","Okt", },
284{ "O-due!","Ü-fällig! " }, 284{ "O-due!","Ü-fällig! " },
285{ "&OK","&OK" }, 285{ "&OK","&OK" },
286{ "Ok+Show!","Ok+Anzeigen" }, 286{ "Ok+Show!","Ok+Anzeigen" },
287{ "Organizer: %1","Organisator %1" }, 287{ "Organizer: %1","Organisator %1" },
288{ "Organizer","Organisator" }, 288{ "Organizer","Organisator" },
289{ "Owner: ","Besitzer: " }, 289{ "Owner: ","Besitzer: " },
290{ "Owner:","Besitzer:" }, 290{ "Owner:","Besitzer:" },
291{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 291{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
292{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" }, 292{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" },
293{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."}, 293{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."},
294{ "Please specify a valid end date,\nfor example '%1'.","Bitte gültiges Enddatum angeben,\nz.B.'%1'." }, 294{ "Please specify a valid end date,\nfor example '%1'.","Bitte gültiges Enddatum angeben,\nz.B.'%1'." },
295{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." }, 295{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." },
296{ "Please specify a valid start date,\nfor example '%1'.","Bitte gültiges Startdatum angeben,\nz.B. '%1'." }, 296{ "Please specify a valid start date,\nfor example '%1'.","Bitte gültiges Startdatum angeben,\nz.B. '%1'." },
297{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."}, 297{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."},
298{ "Please specify a valid start time,\nfor example '%1'.","Bitte gültige Startzeit angeben,\nz.B. '%1'." }, 298{ "Please specify a valid start time,\nfor example '%1'.","Bitte gültige Startzeit angeben,\nz.B. '%1'." },
299{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" }, 299{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" },
300{ "&Previous Day","Vorheriger Tag" }, 300{ "&Previous Day","Vorheriger Tag" },
301{ "Previous month","Vorheriger Monat" }, 301{ "Previous month","Vorheriger Monat" },
302{ "Previous Month","Vorheriger Monat" }, 302{ "Previous Month","Vorheriger Monat" },
303{ "&Previous Week","Vorherige Woche" }, 303{ "&Previous Week","Vorherige Woche" },
304{ "Previous year","Vorheriges Jahr" }, 304{ "Previous year","Vorheriges Jahr" },
305{ "Previous Year","Vorheriges Jahr" }, 305{ "Previous Year","Vorheriges Jahr" },
306{ "Printing","Drucken" }, 306{ "Printing","Drucken" },
307{ "Priority:","Priorität:" }, 307{ "Priority:","Priorität:" },
308{ "Private","Privat" }, 308{ "Private","Privat" },
309{ "Proceed","Weiter" }, 309{ "Proceed","Weiter" },
310{ "Public","Öffentlich" }, 310{ "Public","Öffentlich" },
311{ "Purge","Entferne" }, 311{ "Purge","Entferne" },
312{ "Purge Completed...","Entferne erledigte Todos..." }, 312{ "Purge Completed...","Entferne erledigte Todos..." },
313{ "Purge Todos","Todos bereinigen" }, 313{ "Purge Todos","Todos bereinigen" },
314{ "read-only","schreibgeschützt" }, 314{ "read-only","schreibgeschützt" },
315{ "Recur every","Wiederh. alle" }, 315{ "Recur every","Wiederh. alle" },
316{ "Recur in the month of","Wiederh. im Monat" }, 316{ "Recur in the month of","Wiederh. im Monat" },
317{ "Recur on the","Wiederh. am" }, 317{ "Recur on the","Wiederh. am" },
318{ "Recur on this day","Wiederh. am diesen Tag" }, 318{ "Recur on this day","Wiederh. am diesen Tag" },
319{ "Recurrence Range...","Wiederholungs Zeitraum..." }, 319{ "Recurrence Range...","Wiederholungs Zeitraum..." },
320{ "Recurrence Range","Wiederholungs Zeitraum" }, 320{ "Recurrence Range","Wiederholungs Zeitraum" },
321{ "Recurrence Rule","Wiederholungs Regel" }, 321{ "Recurrence Rule","Wiederholungs Regel" },
322{ "Recurrence","Wiederholung" }, 322{ "Recurrence","Wiederholung" },
323{ "Recurs","Wiederholung" }, 323{ "Recurs","Wiederholung" },
324{"&Reject","Abweisen"}, 324{"&Reject","Abweisen"},
325{ "Reminder:","Alarm:" }, 325{ "Reminder:","Alarm:" },
326{ "Rem.:","Alarm:" }, 326{ "Rem.:","Alarm:" },
327{ "Rem.","Alarm:" }, 327{ "Rem.","Alarm:" },
328{ "Remote file:","Remote Datei:"}, 328{ "Remote file:","Remote Datei:"},
329{ "Remote IP:","Remote (ferne) IP:" }, 329{ "Remote IP:","Remote (ferne) IP:" },
330{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " }, 330{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " },
331{ "Remote user:","Remote Benutzer"}, 331{ "Remote user:","Remote Benutzer"},
332{ "&Remove","Entfe&rnen" }, 332{ "&Remove","Entfe&rnen" },
333{ "Remove","Entfernen" }, 333{ "Remove","Entfernen" },
334{ "Request response","Bemerkung anfordern" }, 334{ "Request response","Bemerkung anfordern" },
335{ "Role:","Rolle:" }, 335{ "Role:","Rolle:" },
336{ "Role","Rolle" }, 336{ "Role","Rolle" },
337{ "Sat","Sa" }, 337{ "Sat","Sa" },
338{ "Saturday","Samstag" }, 338{ "Saturday","Samstag" },
339{ "Search for:","Suche nach:" }, 339{ "Search for:","Suche nach:" },
340{ "Search In","Suche in" }, 340{ "Search In","Suche in" },
341{ "Search...","Suche..." }, 341{ "Search...","Suche..." },
342{ "Search","Suche" }, 342{ "Search","Suche" },
343{ "Select Addresses","Wähle Adressen" }, 343{ "Select Addresses","Wähle Adressen" },
344{ "Select all","Selektiere Alle" }, 344{ "Select all","Selektiere Alle" },
345{ "Select a month","Wähle Monat" }, 345{ "Select a month","Wähle Monat" },
346{ "Select a week","Wähle Woche" }, 346{ "Select a week","Wähle Woche" },
347{ "Select a year","Wähle Jahr" }, 347{ "Select a year","Wähle Jahr" },
348{ "Send directly","Sende direkt" }, 348{ "Send directly","Sende direkt" },
349{ "&Send Messages","&Sende Nachrichten", }, 349{ "&Send Messages","&Sende Nachrichten", },
350{ "Sep","Sep" }, 350{ "Sep","Sep" },
351{ "September","September" }, 351{ "September","September" },
352{ "Shopping","Einkaufen" }, 352{ "Shopping","Einkaufen" },
353{ "Show Dates","Zeige Daten" }, 353{ "Show Dates","Zeige Daten" },
354{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." }, 354{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." },
355{ "Show Event...","Zeige Termin..." }, 355{ "Show Event...","Zeige Termin..." },
356{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." }, 356{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." },
357{ "Show Marcus Bains line","Zeige Marcus Bains Linie" }, 357{ "Show Marcus Bains line","Zeige Marcus Bains Linie" },
358{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." }, 358{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." },
359{ "Show time as:","Zeige Zeit als" }, 359{ "Show time as:","Zeige Zeit als" },
360{ "Show Todo...","Zeige To-Do" }, 360{ "Show Todo...","Zeige To-Do" },
361{ "Vertical screen layout(Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" }, 361{ "Vertical screen layout(Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" },
362{ "&Show","Zeige" }, 362{ "&Show","Zeige" },
363{ "Show...","Zeige..." }, 363{ "Show...","Zeige..." },
364{ "Show","Zeige" }, 364{ "Show","Zeige" },
365{ "Small","Klein" }, 365{ "Small","Klein" },
366{ "Sorry","Entschuldigung" }, 366{ "Sorry","Tut mir leid" },
367{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"}, 367{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"},
368{ "Start:","Start:" }, 368{ "Start:","Start:" },
369{ "Start Date","Start Datum" }, 369{ "Start Date","Start Datum" },
370{ "Start date: %1","Start Datum: %1" }, 370{ "Start date: %1","Start Datum: %1" },
371{ "Start Time","Start Zeit" }, 371{ "Start Time","Start Zeit" },
372{ "Status:","Status:" }, 372{ "Status:","Status:" },
373{ "Status","Status:" }, 373{ "Status","Status:" },
374{ "Summaries","Titel" }, 374{ "Summaries","Titel" },
375{ "Summary:","Titel:" }, 375{ "Summary:","Titel:" },
376{ "Summary","Titel" }, 376{ "Summary","Titel" },
377{ "Sunday","Sonntag" }, 377{ "Sunday","Sonntag" },
378{ "Sun","So" }, 378{ "Sun","So" },
379{ "Sync preferences:","Sync Einstellungen" }, 379{ "Sync preferences:","Sync Einstellungen" },
380{ "Sync Prefs","Sync Einstellungen" }, 380{ "Sync Prefs","Sync Einstellungen" },
381{ "Syncronize","Daten abgleich" }, 381{ "Syncronize","Daten abgleich" },
382{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, 382{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" },
383{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, 383{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" },
384{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, 384{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" },
385{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" }, 385{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" },
386{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" }, 386{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" },
387{ "Template...","Vorlage..." }, 387{ "Template...","Vorlage..." },
388{ "This day","Dieser Tag" }, 388{ "This day","Dieser Tag" },
389{ "This is an experimental feature. ","Dieses Feature ist experimentel" }, 389{ "This is an experimental feature. ","Dieses Feature ist experimentel" },
390{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." }, 390{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." },
391{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." }, 391{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." },
392{ "Thu","Do" }, 392{ "Thu","Do" },
393{ "Thursday","Donnerstag" }, 393{ "Thursday","Donnerstag" },
394{ "Time associated","Mit Zeit" }, 394{ "Time associated","Mit Zeit" },
395{ "Time bar:","Uhrzeit Zeile:" }, 395{ "Time bar:","Uhrzeit Zeile:" },
396{ "Time && Date","Zeit und Datum" }, 396{ "Time && Date","Zeit und Datum" },
397{ "Time Format","Zeit Format" }, 397{ "Time Format","Zeit Format" },
398{ "Time Format(nr):","Zeit Format(Neustart!)" }, 398{ "Time Format(nr):","Zeit Format(Neustart!)" },
399{ "Date Labels:","Datumsleiste:" }, 399{ "Date Labels:","Datumsleiste:" },
400{ "Time: ","Zeit: " }, 400{ "Time: ","Zeit: " },
401{ "Timezone:","Zeitzone:" }, 401{ "Timezone:","Zeitzone:" },
402{ "To: ","Bis: " }, 402{ "To: ","Bis: " },
403{ "To:","Bis:" }, 403{ "To:","Bis:" },
404{ "Today: ","Heute: " }, 404{ "Today: ","Heute: " },
405{ "Todo due today color:","Heute fällige To-Do's" }, 405{ "Todo due today color:","Heute fällige To-Do's" },
406{ "To-do items:","To-Do items:" }, 406{ "To-do items:","To-Do items:" },
407{ "Todo overdue color:","Überfällige To-Do's" }, 407{ "Todo overdue color:","Überfällige To-Do's" },
408{ "Todo","Todo" }, 408{ "Todo","Todo" },
409{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" }, 409{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" },
410{ "ToDoView:","Todo Ansicht:" }, 410{ "ToDoView:","Todo Ansicht:" },
411{ "Toggle Alarm","Wechsle Alarm" }, 411{ "Toggle Alarm","Wechsle Alarm" },
412{ "Toggle Allday","Umschalten Ganztag" }, 412{ "Toggle Allday","Umschalten Ganztag" },
413{ "Tomorrow: ","Morgen: " }, 413{ "Tomorrow: ","Morgen: " },
414{ "Tue","Di" }, 414{ "Tue","Di" },
415{ "Tuesday","Dienstag" }, 415{ "Tuesday","Dienstag" },
416{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" }, 416{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" },
417{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." }, 417{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." },
418{ "Unknown","Unbekannt" }, 418{ "Unknown","Unbekannt" },
419{ "Up","Hinauf" }, 419{ "Up","Hinauf" },
420{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" }, 420{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" },
421{ "User defined","Benutzerdefiniert" }, 421{ "User defined","Benutzerdefiniert" },
422{ "User long date:","Format langes Datum:" }, 422{ "User long date:","Format langes Datum:" },
423{ "User short date:","Forma kurzes Datum:" }, 423{ "User short date:","Forma kurzes Datum:" },
424{ "View","Ansicht" }, 424{ "View","Ansicht" },
425{ "View Fonts","Schriftarten Ansichten" }, 425{ "View Fonts","Schriftarten Ansichten" },
426{ "Views","Ansichten" }, 426{ "Views","Ansichten" },
427{ "Wed","Mi" }, 427{ "Wed","Mi" },
428{ "Wednesday","Mittwoch" }, 428{ "Wednesday","Mittwoch" },
429{ "Week %1","Woche %1" }, 429{ "Week %1","Woche %1" },
430{ "Weekly","Wöchentlich" }, 430{ "Weekly","Wöchentlich" },
431{ "Week starts on Sunday","Woche beginnt Sonntags" }, 431{ "Week starts on Sunday","Woche beginnt Sonntags" },
432{ "What's Next View:","What's Next Anz." }, 432{ "What's Next View:","What's Next Anz." },
433{ "What's next ?","Was kommt als nächstes?(What's Next)" }, 433{ "What's next ?","Was kommt als nächstes?(What's Next)" },
434{ "Working Hours","Tägliche Arbeitszeit" }, 434{ "Working Hours","Tägliche Arbeitszeit" },
435{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" }, 435{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" },
436{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" }, 436{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" },
437{ "Write back synced file","Syncronisierte Datei zurückschreiben" }, 437{ "Write back synced file","Syncronisierte Datei zurückschreiben" },
438{ "Yearly","Jährlich" }, 438{ "Yearly","Jährlich" },
439{ "year(s)","Jahr(e)" }, 439{ "year(s)","Jahr(e)" },
440{ "Yes","Ja" }, 440{ "Yes","Ja" },
441{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" }, 441{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" },
442{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." }, 442{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." },
443{ "week(s) on:","Woche(n) am: " }, 443{ "week(s) on:","Woche(n) am: " },
444{ "Full menu bar(nr)","Volle Menuleiste(bn)" }, 444{ "Full menu bar(nr)","Volle Menuleiste(bn)" },
445{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 445{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
446{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 446{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
447{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 447{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
448{ "Daylight start:","Sommerzeit Start:" }, 448{ "Daylight start:","Sommerzeit Start:" },
449{ "Daylight end:","Sommerzeit Ende:" }, 449{ "Daylight end:","Sommerzeit Ende:" },
450{ "Time Zone","Zeitzone" }, 450{ "Time Zone","Zeitzone" },
451{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" }, 451{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" },
452{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" }, 452{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" },
453{ "minutely","minütlich" }, 453{ "minutely","minütlich" },
454{ "hourly","stündlich" }, 454{ "hourly","stündlich" },
455{ "daily","täglich" }, 455{ "daily","täglich" },
456{ "weekly","wöchentlich" }, 456{ "weekly","wöchentlich" },
457{ "monthly","monatlich" }, 457{ "monthly","monatlich" },
458{ "day-monthly","tag-monatlich" }, 458{ "day-monthly","tag-monatlich" },
459{ "month-yearly","monat-jährlich" }, 459{ "month-yearly","monat-jährlich" },
460{ "day-yearly","tag-jährlich" }, 460{ "day-yearly","tag-jährlich" },
461{ "position-yearly","pos-jährlich" }, 461{ "position-yearly","pos-jährlich" },
462{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" }, 462{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" },
@@ -1392,106 +1392,106 @@
1392{ "ToDo:","ToDo:" }, 1392{ "ToDo:","ToDo:" },
1393{ "Set Calendar","Setze Kalender" }, 1393{ "Set Calendar","Setze Kalender" },
1394{ "Todo: %1","Todo: %1" }, 1394{ "Todo: %1","Todo: %1" },
1395{ ": (Prio ",": (Prio " }, 1395{ ": (Prio ",": (Prio " },
1396{ "Todos","Todos" }, 1396{ "Todos","Todos" },
1397{ "Todo Viewer","Todo Viewer" }, 1397{ "Todo Viewer","Todo Viewer" },
1398{ "Todo ","Todo " }, 1398{ "Todo ","Todo " },
1399{ " Calendar \n Resource "," Kalender \n Resource " }, 1399{ " Calendar \n Resource "," Kalender \n Resource " },
1400{ " Color "," Farbe " }, 1400{ " Color "," Farbe " },
1401{ "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!)" }, 1401{ "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!)" },
1402{ "The calendar <b>%1</b> is displaying file <b>%2</b>","Der Kalender <b>%1</b> zeigt die Datei <b>%2</b>" }, 1402{ "The calendar <b>%1</b> is displaying file <b>%2</b>","Der Kalender <b>%1</b> zeigt die Datei <b>%2</b>" },
1403{ "Add new Calendar","Füge Kalender hinzu" }, 1403{ "Add new Calendar","Füge Kalender hinzu" },
1404{ "<b>Name of new calendar:</b>","<b>Name des Kalenders:</b>" }, 1404{ "<b>Name of new calendar:</b>","<b>Name des Kalenders:</b>" },
1405{ "<b>Local ical (*.ics) file:</b>","<b>Lokale ical (*.ics) Datei:</b>" }, 1405{ "<b>Local ical (*.ics) file:</b>","<b>Lokale ical (*.ics) Datei:</b>" },
1406{ "Sorry, the calendar name is empty!","Sorry, der Kalendername ist leer!" }, 1406{ "Sorry, the calendar name is empty!","Sorry, der Kalendername ist leer!" },
1407{ "Sorry, the file name is empty!","Sorry, der Dateiname ist leer!" }, 1407{ "Sorry, the file name is empty!","Sorry, der Dateiname ist leer!" },
1408{ "Error loading calendar file\n%1.","Fehler beim Laden der Kalenderdatei\n%1." }, 1408{ "Error loading calendar file\n%1.","Fehler beim Laden der Kalenderdatei\n%1." },
1409{ "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>" }, 1409{ "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>" },
1410{ "Global application font for all apps:","Globale Schriftart:" }, 1410{ "Global application font for all apps:","Globale Schriftart:" },
1411{ "Application Font","Applikationsschriftart" }, 1411{ "Application Font","Applikationsschriftart" },
1412{ "Kx/Pi","Kx/Pi" }, 1412{ "Kx/Pi","Kx/Pi" },
1413{ "Backup","Backup" }, 1413{ "Backup","Backup" },
1414{ "KDE-Pim Global Settings","KDE-Pim Globale Einstellungen" }, 1414{ "KDE-Pim Global Settings","KDE-Pim Globale Einstellungen" },
1415{ "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!" }, 1415{ "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!" },
1416{ "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!" }, 1416{ "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!" },
1417{ "Choose Color","Wähle Farbe" }, 1417{ "Choose Color","Wähle Farbe" },
1418{ " OK "," OK " }, 1418{ " OK "," OK " },
1419{ " Cancel "," Abbrechen " }, 1419{ " Cancel "," Abbrechen " },
1420{ "Matching items will be added to list","Passende werden zur Liste hinzugefügt" }, 1420{ "Matching items will be added to list","Passende werden zur Liste hinzugefügt" },
1421{ "Matching items will be removed from list","Passende werden von der Liste entfernt" }, 1421{ "Matching items will be removed from list","Passende werden von der Liste entfernt" },
1422{ "Search on displayed list only","Suche auf der dargestellten Liste" }, 1422{ "Search on displayed list only","Suche auf der dargestellten Liste" },
1423{ "List will be cleared before search","Liste wird vor der Suche gelöscht" }, 1423{ "List will be cleared before search","Liste wird vor der Suche gelöscht" },
1424{ "<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>" }, 1424{ "<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>" },
1425{ "%1\nis running!","%1\nist am Laufen!" }, 1425{ "%1\nis running!","%1\nist am Laufen!" },
1426{ "Additional Comment:","Zusätzlicher Kommentar:" }, 1426{ "Additional Comment:","Zusätzlicher Kommentar:" },
1427{ "Stop and save","Stopp und Speichern" }, 1427{ "Stop and save","Stopp und Speichern" },
1428{ "Continue running","Weiter laufen lassen" }, 1428{ "Continue running","Weiter laufen lassen" },
1429{ "Stop - do not save","Stopp - nicht Speichern" }, 1429{ "Stop - do not save","Stopp - nicht Speichern" },
1430{ "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?" }, 1430{ "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?" },
1431{ "Time mismatch!","Zeiten stimmen nicht!" }, 1431{ "Time mismatch!","Zeiten stimmen nicht!" },
1432{ "The start time is\nafter the end time!","Die Startzeit ist\nhinter der Endzeit!" }, 1432{ "The start time is\nafter the end time!","Die Startzeit ist\nhinter der Endzeit!" },
1433{ "Yes, stop todo","Ja, stoppe Todo" }, 1433{ "Yes, stop todo","Ja, stoppe Todo" },
1434{ "Todo stopped - no data saved because runtime was < 15 sec!","Todo gestoppt - nichts gespeichert da Laufzeit < 15 sec!" }, 1434{ "Todo stopped - no data saved because runtime was < 15 sec!","Todo gestoppt - nichts gespeichert da Laufzeit < 15 sec!" },
1435{ "Todo started! Double click again to stop!","Todo gestartet! Doppelklicke um es zu stoppen!" }, 1435{ "Todo started! Double click again to stop!","Todo gestartet! Doppelklicke um es zu stoppen!" },
1436{ "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." }, 1436{ "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." },
1437{ "Spouse","Ehegatte" }, 1437{ "Spouse","Ehegatte" },
1438{ "Notes","Notizen" }, 1438{ "Notes","Notizen" },
1439{ "Messanger","Messanger" }, 1439{ "Messanger","Messanger" },
1440{ "Assistant","Assistent" }, 1440{ "Assistant","Assistent" },
1441{ "Manager","Manager" }, 1441{ "Manager","Manager" },
1442{ "Secrecy","Sichtbar" }, 1442{ "Secrecy","Sichtbar" },
1443{ "male","männlich" }, 1443{ "male","männlich" },
1444{ "female","weiblich" }, 1444{ "female","weiblich" },
1445{ "Hide!","Verbergen!" }, 1445{ "Hide!","Verbergen!" },
1446{ "Show!","Anzeigen!" }, 1446{ "Show!","Anzeigen!" },
1447{ "Details","Details" }, 1447{ "Details","Details" },
1448{ "Profession","Beruf" }, 1448{ "Profession","Beruf" },
1449{ "Children","Kinder" }, 1449{ "Children","Kinder" },
1450{ "Department","Abteilung" }, 1450{ "Department","Abteilung" },
1451{ "Backup cancelled","Backup abgebrochen" }, 1451{ "Backup cancelled","Backup abgebrochen" },
1452{ "Backup globally disabled","Backup global abgeschaltet" }, 1452{ "Backup globally disabled","Backup global abgeschaltet" },
1453{ "Backup succesfully finished","Backup erfolgreich beendet" }, 1453{ "Backup succesfully finished","Backup erfolgreich beendet" },
1454{ "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" }, 1454{ "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" },
1455{ "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" }, 1455{ "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" },
1456{ "Birthdays","Geburtstage" }, 1456{ "Birthdays","Geburtstage" },
1457{ "KO/Pi import information!","KO/Pi Import Information!" }, 1457{ "KO/Pi import information!","KO/Pi Import Information!" },
1458{ "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" }, 1458{ "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" },
1459{ "Cancel - do not start"," Abbrechen - Todo nicht starten" }, 1459{ "Cancel - do not start"," Abbrechen - Todo nicht starten" },
1460{ "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?"" }, 1460{ "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?"" },
1461{ "Reload","Neu laden" }, 1461{ "Reload","Neu laden" },
1462{ "Timezone settings","Zeitzoneneinstellung" }, 1462{ "Timezone settings","Zeitzoneneinstellung" },
1463{ "Title: ","Titel: " }, 1463{ "Title: ","Titel: " },
1464{ "Journal from: ","Journal vom: " }, 1464{ "Journal from: ","Journal vom: " },
1465{ "Journal: %1 from ","Journal: %1 vom " }, 1465{ "Journal: %1 from ","Journal: %1 vom " },
1466{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" }, 1466{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" },
1467{ "Selected Item","Ausgewähltes Item" }, 1467{ "Selected Item","Ausgewähltes Item" },
1468{ "Select Date...","Wähle Datum..." }, 1468{ "Select Date...","Wähle Datum..." },
1469{ "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:" }, 1469{ "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:" },
1470{ "Change category list now!","Ändere Kategorieliste jetzt!" }, 1470{ "Change category list now!","Ändere Kategorieliste jetzt!" },
1471{ "Edit category list...","Ändere Kategorieliste..." }, 1471{ "Edit category list...","Ändere Kategorieliste..." },
1472{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" }, 1472{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" },
1473{ "Filepath: ","Dateipfad: " }, 1473{ "Filepath: ","Dateipfad: " },
1474{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" }, 1474{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" },
1475{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" }, 1475{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" },
1476{ "Pending Suspend Alarm","Laufender Suspend Alarm" }, 1476{ "Pending Suspend Alarm","Laufender Suspend Alarm" },
1477{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" }, 1477{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" },
1478{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" }, 1478{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" },
1479{ "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" }, 1479{ "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" },
1480{ "Alarm Options","Alarm Einstellungen" }, 1480{ "Alarm Options","Alarm Einstellungen" },
1481{ "Delete selected...","Lösche Ausgewählte..." }, 1481{ "Delete selected...","Lösche Ausgewählte..." },
1482{ "None","Nichts" }, 1482{ "None","Nichts" },
1483{ "Selection","Auswahl" }, 1483{ "Selection","Auswahl" },
1484{ "Set categories","Setze Kategorien" }, 1484{ "Set categories","Setze Kategorien" },
1485{ "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!" }, 1485{ "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!" },
1486{ "Reset","Neu setzen" }, 1486{ "Reset","Neu setzen" },
1487{ "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)?" }, 1487{ "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)?" },
1488{ "","" }, 1488{ "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" },
1489{ "","" }, 1489{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" },
1490{ "","" }, 1490{ "\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" },
1491{ "","" }, 1491{ "","" },
1492{ "","" }, 1492{ "","" },
1493{ "","" }, 1493{ "","" },
1494{ "","" }, 1494{ "","" },
1495{ "","" }, 1495{ "","" },
1496{ "","" }, 1496{ "","" },
1497{ "","" }, \ No newline at end of file 1497{ "","" }, \ No newline at end of file
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp
index 20118aa..1335d7e 100644
--- a/korganizer/kofilterview.cpp
+++ b/korganizer/kofilterview.cpp
@@ -39,418 +39,431 @@
39#include <kglobal.h> 39#include <kglobal.h>
40#include <kcolorbutton.h> 40#include <kcolorbutton.h>
41#include <kmessagebox.h> 41#include <kmessagebox.h>
42 42
43 43
44 44
45 45
46 46
47KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent, 47KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent,
48 const char* name,WFlags fl ) 48 const char* name,WFlags fl )
49 : KOFilterView_base(parent,name,fl) 49 : KOFilterView_base(parent,name,fl)
50{ 50{
51 mFilters = filterList; 51 mFilters = filterList;
52 52
53 connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged())); 53 connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged()));
54 connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged())); 54 connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged()));
55 connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters())); 55 connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters()));
56} 56}
57 57
58KOFilterView::~KOFilterView() 58KOFilterView::~KOFilterView()
59{ 59{
60 // no need to delete child widgets, Qt does it all for us 60 // no need to delete child widgets, Qt does it all for us
61} 61}
62 62
63bool KOFilterView::filtersEnabled() 63bool KOFilterView::filtersEnabled()
64{ 64{
65 return mEnabledCheck->isChecked(); 65 return mEnabledCheck->isChecked();
66} 66}
67 67
68void KOFilterView::setFiltersEnabled(bool set) 68void KOFilterView::setFiltersEnabled(bool set)
69{ 69{
70 mEnabledCheck->setChecked(set); 70 mEnabledCheck->setChecked(set);
71 emit filterChanged(); 71 emit filterChanged();
72} 72}
73 73
74 74
75void KOFilterView::updateFilters() 75void KOFilterView::updateFilters()
76{ 76{
77 mSelectionCombo->clear(); 77 mSelectionCombo->clear();
78 78
79 CalFilter *filter = mFilters->first(); 79 CalFilter *filter = mFilters->first();
80 while(filter) { 80 while(filter) {
81 mSelectionCombo->insertItem(filter->name()); 81 mSelectionCombo->insertItem(filter->name());
82 filter = mFilters->next(); 82 filter = mFilters->next();
83 } 83 }
84} 84}
85 85
86CalFilter *KOFilterView::selectedFilter() 86CalFilter *KOFilterView::selectedFilter()
87{ 87{
88 CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); 88 CalFilter *f = mFilters->at(mSelectionCombo->currentItem());
89 return f; 89 return f;
90} 90}
91 91
92void KOFilterView::setSelectedFilter(QString filterName) 92void KOFilterView::setSelectedFilter(QString filterName)
93{ 93{
94 int filter_num = mSelectionCombo->count(); 94 int filter_num = mSelectionCombo->count();
95 int i; 95 int i;
96 for (i=0;i<filter_num;i++) { 96 for (i=0;i<filter_num;i++) {
97 if (mSelectionCombo->text(i)==filterName) 97 if (mSelectionCombo->text(i)==filterName)
98 mSelectionCombo->setCurrentItem(i); 98 mSelectionCombo->setCurrentItem(i);
99 } 99 }
100 emit filterChanged(); 100 emit filterChanged();
101} 101}
102void KOFilterView::setSelectedFilter( int fil ) 102void KOFilterView::setSelectedFilter( int fil )
103{ 103{
104 if ( fil >= mSelectionCombo->count() ) 104 if ( fil >= mSelectionCombo->count() )
105 return; 105 return;
106 mSelectionCombo->setCurrentItem( fil ); 106 mSelectionCombo->setCurrentItem( fil );
107 emit filterChanged(); 107 emit filterChanged();
108} 108}
109 109
110 110
111 111
112KOCalEditView::KOCalEditView(QWidget* parent, 112KOCalEditView::KOCalEditView(QWidget* parent,
113 const char* name ) 113 const char* name )
114 : QScrollView(parent,name) 114 : QScrollView(parent,name)
115{ 115{
116 mw = 0; 116 mw = 0;
117 setResizePolicy( AutoOneFit ); 117 setResizePolicy( AutoOneFit );
118 setFrameStyle ( QFrame::Panel | QFrame::Plain ); 118 setFrameStyle ( QFrame::Panel | QFrame::Plain );
119 setLineWidth ( 1 ); 119 setLineWidth ( 1 );
120 setMidLineWidth ( 1 ); 120 setMidLineWidth ( 1 );
121 setFocusPolicy(NoFocus); 121 setFocusPolicy(NoFocus);
122} 122}
123 123
124KOCalEditView::~KOCalEditView() 124KOCalEditView::~KOCalEditView()
125{ 125{
126 // no need to delete child widgets, Qt does it all for us 126 // no need to delete child widgets, Qt does it all for us
127} 127}
128void KOCalEditView::selectCal(int id ,bool b) 128void KOCalEditView::selectCal(int id ,bool b)
129{ 129{
130 KOPrefs::instance()->getCalendar( id )->isEnabled = b; 130 KOPrefs::instance()->getCalendar( id )->isEnabled = b;
131 emit calendarEnabled ( id, b ); 131 emit calendarEnabled ( id, b );
132 emit needsUpdate(); 132 emit needsUpdate();
133 133
134} 134}
135void KOCalEditView::selectStdCal( int id, bool b ) 135void KOCalEditView::selectStdCal( int id )
136{ 136{
137
138 if ( !b ) {
139 KOCalCheckButton* it = (KOCalCheckButton*) sender();
140 if ( it ) {
141 it->blockSignals( true );
142 it->setChecked( true );
143 it->blockSignals( false );
144 return;
145 }
146 return;
147 }
148 KOCalRadioButton* sen = (KOCalRadioButton*) sender();
149 KOCalRadioButton* it = mStdandardB.first(); 137 KOCalRadioButton* it = mStdandardB.first();
150 while ( it ) { 138 while ( it ) {
151 if ( it->isChecked() ) { 139 it->blockSignals( true );
152 if ( it != sen ) { 140 it->setChecked( it->num() == id );
153 it->blockSignals( true ); 141 it->blockSignals( false );
154 it->setChecked( false );
155 it->blockSignals( false );
156 break;
157 }
158 }
159 it = mStdandardB.next(); 142 it = mStdandardB.next();
160 } 143 }
161 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 144 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
162 while ( kkf ) { 145 while ( kkf ) {
163 kkf->isStandard = false; 146 kkf->isStandard = (kkf->mCalNumber == id );
164 kkf = KOPrefs::instance()->mCalendars.next(); 147 kkf = KOPrefs::instance()->mCalendars.next();
165 } 148 }
166 KOPrefs::instance()->getCalendar( id )->isStandard = true;
167 emit setCalendarDefault ( id ); 149 emit setCalendarDefault ( id );
168} 150}
169 151
170void KOCalEditView::selectCalAlarm(int id ,bool b ) 152void KOCalEditView::selectCalAlarm(int id ,bool b )
171{ 153{
172 KOPrefs::instance()->getCalendar( id )->isAlarmEnabled = b; 154 KOPrefs::instance()->getCalendar( id )->isAlarmEnabled = b;
173 emit alarmEnabled ( id , b ); 155 emit alarmEnabled ( id , b );
174 emit needsUpdate(); 156 emit needsUpdate();
175} 157}
176void KOCalEditView::selectReadOnly(int id ,bool b ) 158void KOCalEditView::selectReadOnly(int id ,bool b )
177{ 159{
178 KOPrefs::instance()->getCalendar( id )->isReadOnly = b; 160 KOPrefs::instance()->getCalendar( id )->isReadOnly = b;
179 emit calendarReadonly ( id , b ); 161 emit calendarReadonly ( id , b );
180 if ( KOPrefs::instance()->getCalendar( id )->isStandard && b && id > 1 ) { 162 if ( KOPrefs::instance()->getCalendar( id )->isStandard && b ) {
181 KOPrefs::instance()->getCalendar( id )->isStandard = false; 163 findNewStandard();
182 KOPrefs::instance()->getCalendar( 1 )->isStandard = true; 164 } else {
183 mStdandardB.at(0)->setChecked( true ); 165 if ( !b ){
184 mStdandardB.at(id-1)->setChecked( false ); 166 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
185 emit setCalendarDefault ( 1 ); 167 while ( kkf ) {
168 if (kkf->isReadOnly && kkf->isStandard ) {
169 selectStdCal( id );
170 break;
171 }
172 kkf = KOPrefs::instance()->mCalendars.next();
173 }
174 }
186 } 175 }
187 mStdandardB.at(id-1)->setEnabled( !b ); 176 mStdandardB.at(id-1)->setEnabled( !b );
188 emit needsUpdate(); 177 emit needsUpdate();
189 178
190} 179}
180void KOCalEditView::findNewStandard()
181{
182 bool found = false;
183 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
184 while ( kkf ) {
185 if (!kkf->isReadOnly && !kkf->mErrorOnLoad ) {
186 found = true;
187 selectStdCal( kkf->mCalNumber );
188 break;
189 }
190 kkf = KOPrefs::instance()->mCalendars.next();
191 }
192 if ( !found ) {
193 KMessageBox::error( this,i18n("\nNO\n WRITEABLE\n CALENDAR\n FOUND!\n\nPlease fix your calendar settings!\n"),
194 i18n("Houston, we have a problem!") );
195
196 }
197}
198
191void KOCalEditView::setColor( const QColor& c, int id ) 199void KOCalEditView::setColor( const QColor& c, int id )
192{ 200{
193 KOPrefs::instance()->getCalendar( id )->mDefaultColor = c; 201 KOPrefs::instance()->getCalendar( id )->mDefaultColor = c;
194 emit needsUpdate(); 202 emit needsUpdate();
195} 203}
196void KOCalEditView::deleteCal( int id ) 204void KOCalEditView::deleteCal( int id )
197{ 205{
198 KopiCalendarFile * kkf = KOPrefs::instance()->getCalendar( id ); 206 KopiCalendarFile * kkf = KOPrefs::instance()->getCalendar( id );
199 QString name = kkf->mName; 207 QString name = kkf->mName;
200 QString file = KGlobal::formatMessage ( kkf->mFileName ,0 ); 208 QString file = KGlobal::formatMessage ( kkf->mFileName ,0 );
201 if ( KMessageBox::warningContinueCancel( this, i18n("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!)").arg(name).arg(file) ) != KMessageBox::Continue ) return; 209 if ( KMessageBox::warningContinueCancel( this, i18n("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!)").arg(name).arg(file) ) != KMessageBox::Continue ) return;
202 if ( kkf->isStandard ) 210 bool findnewstd = kkf->isStandard;
203 selectStdCal( 1, true );
204 emit removeCalendar ( id ); 211 emit removeCalendar ( id );
205 KOPrefs::instance()->mCalendars.remove ( kkf ); 212 KOPrefs::instance()->mCalendars.remove ( kkf );
213 if ( findnewstd ) findNewStandard();
206 emit needsUpdate(); 214 emit needsUpdate();
207 QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); 215 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
208} 216}
209void KOCalEditView::infoCal( int id ) 217void KOCalEditView::infoCal( int id )
210{ 218{
211 QString name = KOPrefs::instance()->getCalendar( id )->mName; 219 QString name = KOPrefs::instance()->getCalendar( id )->mName;
212 QString file = KGlobal::formatMessage ( KOPrefs::instance()->getCalendar( id )->mFileName, 0 ); 220 QString file = KGlobal::formatMessage ( KOPrefs::instance()->getCalendar( id )->mFileName, 0 );
213 if ( KOPrefs::instance()->getCalendar( id )->mErrorOnLoad ) { 221 if ( KOPrefs::instance()->getCalendar( id )->mErrorOnLoad ) {
214 if ( KMessageBox::Yes == KMessageBox::questionYesNo( this, i18n("The calendar <b>%1</b> is not loaded! Loading of file <b>%2</b> failed! <b>Try again to load the calendar?</b>").arg(name).arg(file) ) ) { 222 if ( KMessageBox::Yes == KMessageBox::questionYesNo( this, i18n("The calendar <b>%1</b> is not loaded! Loading of file <b>%2</b> failed! <b>Try again to load the calendar?</b>").arg(name).arg(file) ) ) {
215 emit calendarAdded( id ); 223 emit calendarAdded( id );
216 emit needsUpdate(); 224 emit needsUpdate();
217 QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); 225 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
218 QTimer::singleShot( 100, this, SIGNAL ( checkCalendar() ) ); 226 QTimer::singleShot( 100, this, SIGNAL ( checkCalendar() ) );
219 } 227 }
220 } 228 }
221 else 229 else
222 KMessageBox::information( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>").arg(name).arg(file) ); 230 KMessageBox::information( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>").arg(name).arg(file) );
223} 231}
224void KOCalEditView::readConfig() 232void KOCalEditView::readConfig()
225{ 233{
226 234
227 mStdandardB.clear(); 235 mStdandardB.clear();
228 mEnabledB.clear(); 236 mEnabledB.clear();
229 mAlarmB.clear(); 237 mAlarmB.clear();
230 mROB.clear(); 238 mROB.clear();
231 239
232 if ( mw ) delete mw; 240 if ( mw ) delete mw;
233 mw = new QWidget ( viewport() ); 241 mw = new QWidget ( viewport() );
234 addChild(mw); 242 addChild(mw);
235 int ii = 0; 243 int ii = 0;
236 mainLayout = new QGridLayout ( mw , 2, 8 ); 244 mainLayout = new QGridLayout ( mw , 2, 8 );
237 mainLayout->setMargin( 2 ); 245 mainLayout->setMargin( 2 );
238 mainLayout->setSpacing( 2 ); 246 mainLayout->setSpacing( 2 );
239 QPushButton * addBut = new QPushButton ( mw ); 247 QPushButton * addBut = new QPushButton ( mw );
240 addBut->setFocusPolicy(NoFocus); 248 addBut->setFocusPolicy(NoFocus);
241 mainLayout->addWidget( addBut,0,0 ); 249 mainLayout->addWidget( addBut,0,0 );
242 addBut->setText( "D"); 250 addBut->setText( "D");
243 connect(addBut,SIGNAL(clicked()),SLOT(defaultInfo())); 251 connect(addBut,SIGNAL(clicked()),SLOT(defaultInfo()));
244 //addBut->setPixmap ( SmallIcon("greenhook16")); 252 //addBut->setPixmap ( SmallIcon("greenhook16"));
245 addBut->setMaximumWidth( addBut->sizeHint().height() ); 253 addBut->setMaximumWidth( addBut->sizeHint().height() );
246 int max = addBut->sizeHint().height(); 254 int max = addBut->sizeHint().height();
247 addBut = new QPushButton ( mw ); 255 addBut = new QPushButton ( mw );
248 addBut->setFocusPolicy(NoFocus); 256 addBut->setFocusPolicy(NoFocus);
249 mainLayout->addWidget( addBut,0,++ii ); 257 mainLayout->addWidget( addBut,0,++ii );
250 addBut->setPixmap ( SmallIcon("eye")); 258 addBut->setPixmap ( SmallIcon("eye"));
251 connect(addBut,SIGNAL(clicked()),SLOT(enableAll())); 259 connect(addBut,SIGNAL(clicked()),SLOT(enableAll()));
252 addBut->setMaximumWidth( addBut->sizeHint().height() ); 260 addBut->setMaximumWidth( addBut->sizeHint().height() );
253 261
254 QLabel* lab = new QLabel (i18n(" Calendar \n Resource "), mw ); 262 QLabel* lab = new QLabel (i18n(" Calendar \n Resource "), mw );
255 mainLayout->addWidget( lab,0,++ii ); 263 mainLayout->addWidget( lab,0,++ii );
256 //lab = new QLabel ( i18n(" "), mw ); 264 //lab = new QLabel ( i18n(" "), mw );
257 //mainLayout->addWidget( lab,0,++ii ); 265 //mainLayout->addWidget( lab,0,++ii );
258 //lab->setFixedWidth( 1 ); 266 //lab->setFixedWidth( 1 );
259 addBut = new QPushButton ( mw ); 267 addBut = new QPushButton ( mw );
260 addBut->setFocusPolicy(NoFocus); 268 addBut->setFocusPolicy(NoFocus);
261 mainLayout->addWidget( addBut,0,++ii ); 269 mainLayout->addWidget( addBut,0,++ii );
262 addBut->setPixmap ( SmallIcon("bell")); 270 addBut->setPixmap ( SmallIcon("bell"));
263 connect(addBut,SIGNAL(clicked()),SLOT(enableAlarm())); 271 connect(addBut,SIGNAL(clicked()),SLOT(enableAlarm()));
264 addBut->setMaximumWidth( addBut->sizeHint().height() ); 272 addBut->setMaximumWidth( addBut->sizeHint().height() );
265 273
266 addBut = new QPushButton ( mw ); 274 addBut = new QPushButton ( mw );
267 addBut->setFocusPolicy(NoFocus); 275 addBut->setFocusPolicy(NoFocus);
268 mainLayout->addWidget( addBut,0,++ii ); 276 mainLayout->addWidget( addBut,0,++ii );
269 addBut->setPixmap ( SmallIcon("pencil")); 277 addBut->setPixmap ( SmallIcon("pencil"));
270 connect(addBut,SIGNAL(clicked()),SLOT(disableRO())); 278 connect(addBut,SIGNAL(clicked()),SLOT(disableRO()));
271 addBut->setMaximumWidth( addBut->sizeHint().height() ); 279 addBut->setMaximumWidth( addBut->sizeHint().height() );
272 lab = new QLabel ( "", mw ); 280 lab = new QLabel ( "", mw );
273 mainLayout->addWidget( lab,0,++ii ); 281 mainLayout->addWidget( lab,0,++ii );
274 282
275 addBut = new QPushButton ( mw ); 283 addBut = new QPushButton ( mw );
276 addBut->setFocusPolicy(NoFocus); 284 addBut->setFocusPolicy(NoFocus);
277 mainLayout->addWidget( addBut,0,++ii ); 285 mainLayout->addWidget( addBut,0,++ii );
278 addBut->setPixmap ( SmallIcon("plus")); 286 addBut->setPixmap ( SmallIcon("plus"));
279 connect(addBut,SIGNAL(clicked()),SLOT(addCal())); 287 connect(addBut,SIGNAL(clicked()),SLOT(addCal()));
280 288
281 lab = new QLabel ( " ", mw ); 289 lab = new QLabel ( " ", mw );
282 mainLayout->addWidget( lab,0,++ii ); 290 mainLayout->addWidget( lab,0,++ii );
283 291
284 292
285 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 293 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
286 int row = 1; 294 int row = 1;
295 bool errorLoadStandard = false;
287 while ( kkf ) { 296 while ( kkf ) {
288 int iii = 0; 297 int iii = 0;
289 KOCalRadioButton* rb = new KOCalRadioButton( mw ); 298 KOCalRadioButton* rb = new KOCalRadioButton( mw );
290 mainLayout->addWidget( rb,row,0 );mStdandardB.append( rb ); 299 mainLayout->addWidget( rb,row,0 );mStdandardB.append( rb );
291 rb->setChecked( kkf->isStandard ); 300 rb->setChecked( kkf->isStandard );
301 if ( kkf->isStandard && ( kkf->mErrorOnLoad || kkf->isReadOnly ) )
302 errorLoadStandard = true;
292 rb->setNum( kkf->mCalNumber ); 303 rb->setNum( kkf->mCalNumber );
293 connect (rb, SIGNAL (selectNum(int,bool)), SLOT ( selectStdCal(int,bool) ) ); 304 connect (rb, SIGNAL (selectNum(int)), SLOT ( selectStdCal(int) ) );
294 if ( kkf->mErrorOnLoad || kkf->isReadOnly ) 305 if ( kkf->mErrorOnLoad || kkf->isReadOnly )
295 rb->setEnabled( false ); 306 rb->setEnabled( false );
296 KOCalCheckButton* cb = new KOCalCheckButton( mw ); 307 KOCalCheckButton* cb = new KOCalCheckButton( mw );
297 mainLayout->addWidget( cb,row,++iii );mEnabledB.append( cb ); 308 mainLayout->addWidget( cb,row,++iii );mEnabledB.append( cb );
298 cb->setChecked( kkf->isEnabled ); 309 cb->setChecked( kkf->isEnabled && !kkf->mErrorOnLoad );
299 cb->setNum( kkf->mCalNumber ); 310 cb->setNum( kkf->mCalNumber );
300 if ( kkf->mErrorOnLoad ) 311 if ( kkf->mErrorOnLoad )
301 cb->setEnabled( false ); 312 cb->setEnabled( false );
302 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) ); 313 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) );
303 KOCalButton* name = new KOCalButton( mw ); 314 KOCalButton* name = new KOCalButton( mw );
304 name->setNum( kkf->mCalNumber ); 315 name->setNum( kkf->mCalNumber );
305 name->setText( kkf->mName ); 316 name->setText( kkf->mName );
306 mainLayout->addWidget( name,row,++iii ); 317 mainLayout->addWidget( name,row,++iii );
307 connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) ); 318 connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) );
308 //lab = new QLabel (" ", mw ); 319 //lab = new QLabel (" ", mw );
309 //mainLayout->addWidget( lab,row,++iii ); 320 //mainLayout->addWidget( lab,row,++iii );
310 cb = new KOCalCheckButton( mw ); 321 cb = new KOCalCheckButton( mw );
311 mainLayout->addWidget( cb,row,++iii );mAlarmB.append( cb ); 322 mainLayout->addWidget( cb,row,++iii );mAlarmB.append( cb );
312 cb->setChecked( kkf->isAlarmEnabled ); 323 cb->setChecked( kkf->isAlarmEnabled && !kkf->mErrorOnLoad);
313 cb->setNum( kkf->mCalNumber ); 324 cb->setNum( kkf->mCalNumber );
314 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) ); 325 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) );
315 if ( kkf->mErrorOnLoad ) 326 if ( kkf->mErrorOnLoad )
316 cb->setEnabled( false ); 327 cb->setEnabled( false );
317 cb = new KOCalCheckButton( mw ); 328 cb = new KOCalCheckButton( mw );
318 mainLayout->addWidget( cb,row,++iii );mROB.append( cb ); 329 mainLayout->addWidget( cb,row,++iii );mROB.append( cb );
319 cb->setChecked( kkf->isReadOnly ); 330 cb->setChecked( kkf->isReadOnly );
320 cb->setNum( kkf->mCalNumber ); 331 cb->setNum( kkf->mCalNumber );
321 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) ); 332 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) );
322 if ( kkf->mErrorOnLoad ) 333 if ( kkf->mErrorOnLoad )
323 cb->setEnabled( false ); 334 cb->setEnabled( false );
324 if ( row > 1) { 335 if ( row > 1) {
325 KColorButton *colb = new KColorButton( mw ); 336 KColorButton *colb = new KColorButton( mw );
326 mainLayout->addWidget( colb,row,++iii ); 337 mainLayout->addWidget( colb,row,++iii );
327 colb->setID( kkf->mCalNumber ); 338 colb->setID( kkf->mCalNumber );
328 colb->setColor( kkf->mDefaultColor ); 339 colb->setColor( kkf->mDefaultColor );
329 connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) ); 340 connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) );
330 KOCalButton* calb = new KOCalButton( mw ); 341 KOCalButton* calb = new KOCalButton( mw );
331 mainLayout->addWidget( calb,row,++iii ); 342 mainLayout->addWidget( calb,row,++iii );
332 calb->setNum( kkf->mCalNumber ); 343 calb->setNum( kkf->mCalNumber );
333 calb->setPixmap ( SmallIcon("minus")); 344 calb->setPixmap ( SmallIcon("minus"));
334 connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) ); 345 connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) );
335 int hei = calb->sizeHint().height(); 346 int hei = calb->sizeHint().height();
336 //calb->setMaximumSize( hei*9/10, hei*9/10 ); 347 //calb->setMaximumSize( hei*9/10, hei*9/10 );
337 } 348 }
338 ++row; 349 ++row;
339 kkf = KOPrefs::instance()->mCalendars.next(); 350 kkf = KOPrefs::instance()->mCalendars.next();
340 } 351 }
352 if ( errorLoadStandard )
353 findNewStandard();
341 lab = new QLabel ( "", mw ); 354 lab = new QLabel ( "", mw );
342 mainLayout->addWidget( lab,row,0 ); 355 mainLayout->addWidget( lab,row,0 );
343 mw->show(); 356 mw->show();
344 357
345} 358}
346 359
347
348void KOCalEditView::defaultInfo() 360void KOCalEditView::defaultInfo()
349{ 361{
350 KMessageBox::information( this, i18n("Please choose the <b>default calendar</b> in this column. Newly created or imported items are added to the default calendar.") ); 362 KMessageBox::information( this, i18n("Please choose the <b>default calendar</b> in this column. Newly created or imported items are added to the default calendar.") );
351} 363}
352void KOCalEditView::addCal() 364void KOCalEditView::addCal()
353{ 365{
354 bool tryagain = true; 366 bool tryagain = true;
355 QString name, file; 367 QString name, file;
356 while ( tryagain ) { 368 while ( tryagain ) {
357 KONewCalPrefs prefs ( this ); 369 KONewCalPrefs prefs ( this );
358 prefs.nameE->setText( name ); 370 prefs.nameE->setText( name );
359 prefs.url->setURL( file ); 371 prefs.url->setURL( file );
360 if ( ! prefs.exec() ) 372 if ( ! prefs.exec() )
361 return; 373 return;
362 name = prefs.calName(); 374 name = prefs.calName();
363 file = prefs.calFileName(); 375 file = prefs.calFileName();
364 tryagain = false; 376 tryagain = false;
365 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 377 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
366 while ( kkf ) { 378 while ( kkf ) {
367 if ( kkf->mName == name ) { 379 if ( kkf->mName == name ) {
368 KMessageBox::information( this, i18n("Sorry, the calendar name \n%1\nalready exists!\nPlease choose another name!").arg( name ) ); 380 KMessageBox::information( this, i18n("Sorry, the calendar name \n%1\nalready exists!\nPlease choose another name!").arg( name ) );
369 name = ""; 381 name = "";
370 tryagain = true; 382 tryagain = true;
371 break; 383 break;
372 } 384 }
373 if ( kkf->mFileName == file ) { 385 if ( kkf->mFileName == file ) {
374 KMessageBox::information( this, i18n("Sorry, the file \n%1\nis already loaded!\nPlease choose another file!").arg( KGlobal::formatMessage (file, 0 )) ); 386 KMessageBox::information( this, i18n("Sorry, the file \n%1\nis already loaded!\nPlease choose another file!").arg( KGlobal::formatMessage (file, 0 )) );
375 tryagain = true; 387 tryagain = true;
376 file = ""; 388 file = "";
377 break; 389 break;
378 } 390 }
379 kkf = KOPrefs::instance()->mCalendars.next(); 391 kkf = KOPrefs::instance()->mCalendars.next();
380 } 392 }
381 } 393 }
382 addCalendar ( name, file ); 394 addCalendar ( name, file );
383 QTimer::singleShot( 100, this, SIGNAL ( checkCalendar() ) ); 395 QTimer::singleShot( 100, this, SIGNAL ( checkCalendar() ) );
384} 396}
385int KOCalEditView::addCalendar( QString name, QString file, bool ask ) 397int KOCalEditView::addCalendar( QString name, QString file, bool ask )
386{ 398{
387 399
388 QFileInfo fi ( file ); 400 QFileInfo fi ( file );
389 if (!fi.exists() ) { 401 if (!fi.exists() ) {
390 if ( ask ) 402 if ( ask )
391 if ( KMessageBox::questionYesNo(this, i18n("The file\n%1\ndoes not exist!\nShall I create it for you?").arg( file ) )== KMessageBox::No ) 403 if ( KMessageBox::questionYesNo(this, i18n("The file\n%1\ndoes not exist!\nShall I create it for you?").arg( file ) )== KMessageBox::No )
392 return 0; 404 return 0;
393 QFile fileIn( file ); 405 QFile fileIn( file );
394 if (!fileIn.open( IO_WriteOnly ) ) { 406 if (!fileIn.open( IO_WriteOnly ) ) {
395 KMessageBox::sorry( this, i18n("Sorry, cannot create the file\n%1!\nNo calendar added!").arg( file ) ); 407 KMessageBox::sorry( this, i18n("Sorry, cannot create the file\n%1!\nNo calendar added!").arg( file ) );
396 return 0; 408 return 0;
397 } 409 }
398 QTextStream tsIn( &fileIn ); 410 QTextStream tsIn( &fileIn );
399 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 411 tsIn.setCodec( QTextCodec::codecForName("utf8") );
400 tsIn << "BEGIN:VCALENDAR\nPRODID:-//KDE-Pim//Platform-independent 2.1.0\nVERSION:2.0\nEND:VCALENDAR\n"; 412 tsIn << "BEGIN:VCALENDAR\nPRODID:-//KDE-Pim//Platform-independent 2.1.0\nVERSION:2.0\nEND:VCALENDAR\n";
401 fileIn.close(); 413 fileIn.close();
402 } 414 }
403 KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar(); 415 KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar();
404 kkf->mName = name; 416 kkf->mName = name;
405 kkf->mFileName = file; 417 kkf->mFileName = file;
406 emit calendarAdded( kkf->mCalNumber ); 418 emit calendarAdded( kkf->mCalNumber );
407 if ( ask ) 419 if ( ask )
408 emit needsUpdate(); 420 emit needsUpdate();
409 QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); 421 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
410 return kkf->mCalNumber; 422 return kkf->mCalNumber;
411} 423}
412int KOCalEditView::getBirtdayID() 424int KOCalEditView::getBirtdayID()
413{ 425{
414 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 426 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
415 while ( kkf ) { 427 while ( kkf ) {
416 if ( kkf->mName == i18n("Birthdays") ) 428 if ( kkf->mName == i18n("Birthdays") )
417 return kkf->mCalNumber; 429 return kkf->mCalNumber;
418 kkf = KOPrefs::instance()->mCalendars.next(); 430 kkf = KOPrefs::instance()->mCalendars.next();
419 } 431 }
420 QString file = locateLocal( "data", "korganizer/birthdays.ics" ); 432 QString file = locateLocal( "data", "korganizer/birthdays.ics" );
421 return addCalendar( i18n("Birthdays"), file, false ); 433 return addCalendar( i18n("Birthdays"), file, false );
422} 434}
423 435
424void KOCalEditView::enableAll() 436void KOCalEditView::enableAll()
425{ 437{
426 toggleList( mEnabledB ); 438 toggleList( mEnabledB );
427} 439}
428void KOCalEditView::enableAlarm() 440void KOCalEditView::enableAlarm()
429{ 441{
430 toggleList( mAlarmB ); 442 toggleList( mAlarmB );
431} 443}
432void KOCalEditView::disableRO() 444void KOCalEditView::disableRO()
433{ 445{
434 toggleList( mROB ); 446 toggleList( mROB, false );
435} 447}
436void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list ) 448void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list , bool enable )
437{ 449{
438 bool dis = false; 450 bool dis = !enable;
439 KOCalCheckButton* it = list.first(); 451 KOCalCheckButton* it = list.first();
440 while ( it ) { 452 while ( it ) {
441 if ( !it->isChecked() ) { 453 if ( !it->isChecked() == enable && it->isEnabled() ) {
442 dis = true; 454 dis = !dis;
443 break; 455 break;
444 } 456 }
445 it = list.next(); 457 it = list.next();
446 } 458 }
447 it = list.first(); 459 it = list.first();
448 while ( it ) { 460 while ( it ) {
449 it->setChecked(dis); 461 if ( it->isEnabled() )
462 it->setChecked(dis);
450 it = list.next(); 463 it = list.next();
451 } 464 }
452} 465}
453void KOCalEditView::deleteAll() 466void KOCalEditView::deleteAll()
454{ 467{
455 qDebug("delteAll"); 468 qDebug("delteAll");
456} 469}
diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h
index 02107cf..874fc6a 100644
--- a/korganizer/kofilterview.h
+++ b/korganizer/kofilterview.h
@@ -1,250 +1,254 @@
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#ifndef KOFILTERVIEW_H 23#ifndef KOFILTERVIEW_H
24#define KOFILTERVIEW_H 24#define KOFILTERVIEW_H
25 25
26#include <qstring.h> 26#include <qstring.h>
27#include <qcheckbox.h> 27#include <qcheckbox.h>
28#include <qradiobutton.h> 28#include <qradiobutton.h>
29#include <qlayout.h> 29#include <qlayout.h>
30#include <qlabel.h> 30#include <qlabel.h>
31#include <qdialog.h> 31#include <qdialog.h>
32#include <qscrollview.h> 32#include <qscrollview.h>
33#include <qpushbutton.h> 33#include <qpushbutton.h>
34#include <kconfig.h> 34#include <kconfig.h>
35#include "kofilterview_base.h" 35#include "kofilterview_base.h"
36 36
37#include <libkcal/calfilter.h> 37#include <libkcal/calfilter.h>
38 38
39#include <kurlrequester.h> 39#include <kurlrequester.h>
40#include <klineedit.h> 40#include <klineedit.h>
41#include <kglobal.h> 41#include <kglobal.h>
42#include <kmessagebox.h> 42#include <kmessagebox.h>
43 43
44class QGridLayout; 44class QGridLayout;
45 45
46using namespace KCal; 46using namespace KCal;
47 47
48class KONewCalPrefs : public QDialog 48class KONewCalPrefs : public QDialog
49{ 49{
50 Q_OBJECT 50 Q_OBJECT
51 public: 51 public:
52 KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : 52 KONewCalPrefs( QWidget *parent=0, const char *name=0 ) :
53 QDialog( parent, name, true ) 53 QDialog( parent, name, true )
54 { 54 {
55 setCaption( i18n("Add new Calendar") ); 55 setCaption( i18n("Add new Calendar") );
56 QVBoxLayout* lay = new QVBoxLayout( this ); 56 QVBoxLayout* lay = new QVBoxLayout( this );
57 lay->setSpacing( 3 ); 57 lay->setSpacing( 3 );
58 lay->setMargin( 3 ); 58 lay->setMargin( 3 );
59 QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this ); 59 QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this );
60 lay->addWidget( lab ); 60 lay->addWidget( lab );
61 nameE = new KLineEdit( this ); 61 nameE = new KLineEdit( this );
62 lay->addWidget( nameE ); 62 lay->addWidget( nameE );
63 lab = new QLabel( i18n("<b>Local ical (*.ics) file:</b>"), this ); 63 lab = new QLabel( i18n("<b>Local ical (*.ics) file:</b>"), this );
64 lay->addWidget( lab ); 64 lay->addWidget( lab );
65 url = new KURLRequester ( this ); 65 url = new KURLRequester ( this );
66 lay->addWidget( url ); 66 lay->addWidget( url );
67 QPushButton * ok = new QPushButton( i18n("OK"), this ); 67 QPushButton * ok = new QPushButton( i18n("OK"), this );
68 lay->addWidget( ok ); 68 lay->addWidget( ok );
69 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 69 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
70 lay->addWidget( cancel ); 70 lay->addWidget( cancel );
71 connect ( ok,SIGNAL(clicked() ),this , SLOT ( checkValid() ) ); 71 connect ( ok,SIGNAL(clicked() ),this , SLOT ( checkValid() ) );
72 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 72 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
73 setMinimumWidth( 220 ); 73 int minwid = 220;
74 if ( QApplication::desktop()->width() >= 320 ) minwid = 300;
75 setMinimumWidth( minwid );
74 resize(sizeHint() ); 76 resize(sizeHint() );
75 } 77 }
76 78
77 QString calName() { return nameE->text(); } 79 QString calName() { return nameE->text(); }
78 QString calFileName() { return url->url(); } 80 QString calFileName() { return url->url(); }
79 81
80public slots: 82public slots:
81void checkValid() { 83void checkValid() {
82 if ( nameE->text().isEmpty() ) { 84 if ( nameE->text().isEmpty() ) {
83 KMessageBox::information( this, i18n("Sorry, the calendar name is empty!") ); 85 KMessageBox::information( this, i18n("Sorry, the calendar name is empty!") );
84 nameE->setText( "LPQJ_"+ QString::number( QTime::currentTime().msec () )); 86 nameE->setText( "LPQJ_"+ QString::number( QTime::currentTime().msec () ));
85 return; 87 return;
86 } 88 }
87 if ( url->url().isEmpty() ) { 89 if ( url->url().isEmpty() ) {
88 KMessageBox::information( this, i18n("Sorry, the file name is empty!") ); 90 KMessageBox::information( this, i18n("Sorry, the file name is empty!") );
89 return; 91 return;
90 } 92 }
91 accept(); 93 accept();
92} 94}
93 95
94public: 96public:
95 KLineEdit* nameE; 97 KLineEdit* nameE;
96 KURLRequester *url; 98 KURLRequester *url;
97}; 99};
98 100
99class KOCalButton : public QPushButton 101class KOCalButton : public QPushButton
100{ 102{
101 Q_OBJECT 103 Q_OBJECT
102 public: 104 public:
103 KOCalButton( QWidget *parent=0, const char *name=0 ) : 105 KOCalButton( QWidget *parent=0, const char *name=0 ) :
104 QPushButton( parent, name) 106 QPushButton( parent, name)
105 { 107 {
106 connect( this, SIGNAL( clicked() ), 108 connect( this, SIGNAL( clicked() ),
107 SLOT( bottonClicked() )); 109 SLOT( bottonClicked() ));
108 mNumber = -1; 110 mNumber = -1;
109 setFocusPolicy(NoFocus); 111 setFocusPolicy(NoFocus);
110 } 112 }
111 void setNum ( int num ) {mNumber = num; } 113 void setNum ( int num ) {mNumber = num; }
112 signals: 114 signals:
113 void selectNum ( int ); 115 void selectNum ( int );
114private: 116private:
115 int mNumber; 117 int mNumber;
116 void keyPressEvent ( QKeyEvent * e ) 118 void keyPressEvent ( QKeyEvent * e )
117 { 119 {
118 e->ignore(); 120 e->ignore();
119 } 121 }
120 122
121private slots : 123private slots :
122 void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); } 124 void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); }
123}; 125};
124class KOCalCheckButton : public QCheckBox 126class KOCalCheckButton : public QCheckBox
125{ 127{
126 Q_OBJECT 128 Q_OBJECT
127 public: 129 public:
128 KOCalCheckButton( QWidget *parent=0, const char *name=0 ) : 130 KOCalCheckButton( QWidget *parent=0, const char *name=0 ) :
129 QCheckBox( parent, name) 131 QCheckBox( parent, name)
130 { 132 {
131 connect( this, SIGNAL( toggled ( bool ) ), 133 connect( this, SIGNAL( toggled ( bool ) ),
132 SLOT( bottonClicked( bool ) )); 134 SLOT( bottonClicked( bool ) ));
133 mNumber = -1; 135 mNumber = -1;
134 setFocusPolicy(NoFocus); 136 setFocusPolicy(NoFocus);
135 //setMaximumWidth( 10 ); 137 //setMaximumWidth( 10 );
136 138
137 } 139 }
138 void setNum ( int num ) {mNumber = num; } 140 void setNum ( int num ) {mNumber = num; }
139 signals: 141 signals:
140 void selectNum ( int, bool ); 142 void selectNum ( int, bool );
141private: 143private:
142 int mNumber; 144 int mNumber;
143 void keyPressEvent ( QKeyEvent * e ) 145 void keyPressEvent ( QKeyEvent * e )
144 { 146 {
145 e->ignore(); 147 e->ignore();
146 } 148 }
147 149
148private slots : 150private slots :
149 void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); } 151 void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); }
150}; 152};
151 153
152class KOCalRadioButton : public QRadioButton 154class KOCalRadioButton : public QRadioButton
153{ 155{
154 Q_OBJECT 156 Q_OBJECT
155 public: 157 public:
156 KOCalRadioButton( QWidget *parent=0, const char *name=0 ) : 158 KOCalRadioButton( QWidget *parent=0, const char *name=0 ) :
157 QRadioButton( parent, name) 159 QRadioButton( parent, name)
158 { 160 {
159 connect( this, SIGNAL( toggled ( bool ) ), 161 connect( this, SIGNAL( toggled ( bool ) ),
160 SLOT( bottonClicked( bool ) )); 162 SLOT( bottonClicked( bool ) ));
161 mNumber = -1; 163 mNumber = -1;
162 setFocusPolicy(NoFocus); 164 setFocusPolicy(NoFocus);
163 //setMaximumWidth( 10 ); 165 //setMaximumWidth( 10 );
164 166
165 } 167 }
168 int num() { return mNumber;}
166 void setNum ( int num ) {mNumber = num; } 169 void setNum ( int num ) {mNumber = num; }
167 signals: 170 signals:
168 void selectNum ( int, bool ); 171 void selectNum ( int );
169private: 172private:
170 int mNumber; 173 int mNumber;
171 void keyPressEvent ( QKeyEvent * e ) 174 void keyPressEvent ( QKeyEvent * e )
172 { 175 {
173 e->ignore(); 176 e->ignore();
174 } 177 }
175 178
176private slots : 179private slots :
177 void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); } 180 void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber); }
178}; 181};
179 182
180 183
181 184
182class KOFilterView : public KOFilterView_base 185class KOFilterView : public KOFilterView_base
183{ 186{
184 Q_OBJECT 187 Q_OBJECT
185 public: 188 public:
186 KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent=0,const char* name=0, WFlags fl=0); 189 KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent=0,const char* name=0, WFlags fl=0);
187 ~KOFilterView(); 190 ~KOFilterView();
188 191
189 void updateFilters(); 192 void updateFilters();
190 193
191 bool filtersEnabled(); 194 bool filtersEnabled();
192 void setFiltersEnabled(bool); 195 void setFiltersEnabled(bool);
193 CalFilter *selectedFilter(); 196 CalFilter *selectedFilter();
194 void setSelectedFilter(QString); 197 void setSelectedFilter(QString);
195 void setSelectedFilter( int ); 198 void setSelectedFilter( int );
196 199
197 signals: 200 signals:
198 void filterChanged(); 201 void filterChanged();
199 void editFilters(); 202 void editFilters();
200 203
201 private: 204 private:
202 QPtrList<CalFilter> *mFilters; 205 QPtrList<CalFilter> *mFilters;
203}; 206};
204 207
205class KOCalEditView : public QScrollView 208class KOCalEditView : public QScrollView
206{ 209{
207 Q_OBJECT 210 Q_OBJECT
208 public: 211 public:
209 KOCalEditView( QWidget* parent=0,const char* name=0); 212 KOCalEditView( QWidget* parent=0,const char* name=0);
210 ~KOCalEditView(); 213 ~KOCalEditView();
211 int addCalendar( QString calName, QString fileName, bool ask = true ); 214 int addCalendar( QString calName, QString fileName, bool ask = true );
212 int getBirtdayID(); 215 int getBirtdayID();
213 public slots: 216 public slots:
214 void addCal(); 217 void addCal();
215 void enableAll(); 218 void enableAll();
216 void enableAlarm(); 219 void enableAlarm();
217 void disableRO(); 220 void disableRO();
218 void deleteAll(); 221 void deleteAll();
219 void selectStdCal(int,bool ); 222 void selectStdCal(int);
220 void selectCal(int,bool ); 223 void selectCal(int,bool );
221 void selectCalAlarm(int,bool ); 224 void selectCalAlarm(int,bool );
222 void selectReadOnly(int,bool ); 225 void selectReadOnly(int,bool );
223 void setColor(const QColor &,int) ; 226 void setColor(const QColor &,int) ;
224 void deleteCal(int) ; 227 void deleteCal(int) ;
225 void infoCal(int) ; 228 void infoCal(int) ;
226 void readConfig(); 229 void readConfig();
227 void defaultInfo(); 230 void defaultInfo();
231 void findNewStandard();
228 signals: 232 signals:
229 void alarmEnabled ( int cal, bool enable ); 233 void alarmEnabled ( int cal, bool enable );
230 void calendarEnabled ( int cal, bool enable ); 234 void calendarEnabled ( int cal, bool enable );
231 void calendarReadonly ( int cal, bool readonly ); 235 void calendarReadonly ( int cal, bool readonly );
232 void setCalendarDefault ( int cal ); 236 void setCalendarDefault ( int cal );
233 void removeCalendar ( int cal ); 237 void removeCalendar ( int cal );
234 void calendarAdded( int ); 238 void calendarAdded( int );
235 void needsUpdate(); 239 void needsUpdate();
236 void checkCalendar(); 240 void checkCalendar();
237 241
238 private: 242 private:
239 QWidget *mw; 243 QWidget *mw;
240 void toggleList ( QPtrList<KOCalCheckButton> ); 244 void toggleList ( QPtrList<KOCalCheckButton> , bool b = true );
241 QPtrList<KOCalRadioButton> mStdandardB; 245 QPtrList<KOCalRadioButton> mStdandardB;
242 QPtrList<KOCalCheckButton> mEnabledB; 246 QPtrList<KOCalCheckButton> mEnabledB;
243 QPtrList<KOCalCheckButton> mAlarmB; 247 QPtrList<KOCalCheckButton> mAlarmB;
244 QPtrList<KOCalCheckButton> mROB; 248 QPtrList<KOCalCheckButton> mROB;
245 QGridLayout* mainLayout; 249 QGridLayout* mainLayout;
246}; 250};
247 251
248 252
249 253
250#endif // KOFILTERVIEW_H 254#endif // KOFILTERVIEW_H