summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt14
-rw-r--r--korganizer/calendarview.cpp73
-rw-r--r--korganizer/koprefs.cpp10
-rw-r--r--korganizer/koprefs.h9
-rw-r--r--korganizer/koprefsdialog.cpp52
-rw-r--r--korganizer/koprefsdialog.h2
6 files changed, 138 insertions, 22 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 1a1fd0e..fcfa282 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1456,101 +1456,107 @@
1456{ "Reload","Neu laden" }, 1456{ "Reload","Neu laden" },
1457{ "Timezone settings","Zeitzoneneinstellung" }, 1457{ "Timezone settings","Zeitzoneneinstellung" },
1458{ "Title: ","Titel: " }, 1458{ "Title: ","Titel: " },
1459{ "Journal from: ","Journal vom: " }, 1459{ "Journal from: ","Journal vom: " },
1460{ "Journal: %1 from ","Journal: %1 vom " }, 1460{ "Journal: %1 from ","Journal: %1 vom " },
1461{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" }, 1461{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" },
1462{ "Selected Item","Ausgewähltes Item" }, 1462{ "Selected Item","Ausgewähltes Item" },
1463{ "Select Date...","Wähle Datum..." }, 1463{ "Select Date...","Wähle Datum..." },
1464{ "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:" }, 1464{ "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:" },
1465{ "Change category list now!","Ändere Kategorieliste jetzt!" }, 1465{ "Change category list now!","Ändere Kategorieliste jetzt!" },
1466{ "Edit category list...","Ändere Kategorieliste..." }, 1466{ "Edit category list...","Ändere Kategorieliste..." },
1467{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" }, 1467{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" },
1468{ "Filepath: ","Dateipfad: " }, 1468{ "Filepath: ","Dateipfad: " },
1469{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" }, 1469{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" },
1470{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" }, 1470{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" },
1471{ "Pending Suspend Alarm","Laufender Suspend Alarm" }, 1471{ "Pending Suspend Alarm","Laufender Suspend Alarm" },
1472{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" }, 1472{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" },
1473{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" }, 1473{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" },
1474{ "Loading of calendar(s) failed","Laden von Kalendern fehlgeschlagen" }, 1474{ "Loading of calendar(s) failed","Laden von Kalendern fehlgeschlagen" },
1475{ "Alarm Options","Alarm Einstellungen" }, 1475{ "Alarm Options","Alarm Einstellungen" },
1476{ "Delete selected...","Lösche Ausgewählte..." }, 1476{ "Delete selected...","Lösche Ausgewählte..." },
1477{ "None","Nichts" }, 1477{ "None","Nichts" },
1478{ "Selection","Auswahl" }, 1478{ "Selection","Auswahl" },
1479{ "Set categories","Setze Kategorien" }, 1479{ "Set categories","Setze Kategorien" },
1480{ "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!" }, 1480{ "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!" },
1481{ "Reset","Neu setzen" }, 1481{ "Reset","Neu setzen" },
1482{ "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)?" }, 1482{ "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)?" },
1483{ "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" }, 1483{ "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" },
1484{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" }, 1484{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" },
1485{ "\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" }, 1485{ "\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" },
1486{ "\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie Datei\n%1\nwurde verändert!\nDatei Grösse: %2 Bytes.\nZuletzt geändert: %3\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, 1486{ "\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie Datei\n%1\nwurde verändert!\nDatei Grösse: %2 Bytes.\nZuletzt geändert: %3\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" },
1487{ "Edit","Edit" }, 1487{ "Edit","Edit" },
1488{ "Last Modified","Zuletzt geändert" }, 1488{ "Last Modified","Zuletzt geändert" },
1489{ "Journal viewer","Journal Anzeige" }, 1489{ "Journal viewer","Journal Anzeige" },
1490{ "Configure Calendar Files...","Konfiguriere Kalenderdateien..." }, 1490{ "Configure Calendar Files...","Konfiguriere Kalenderdateien..." },
1491{ "You can use and display <b>more than one</b> calendar file in KO/Pi. A calendar file is called a <b>resource</b>. To add a calendar or change calendar settings please use menu: <b>View -> Toggle Resource View</b>.","Sie können <b>mehr als eine</b> Kalenderdatei in KO/Pi darstellen und benutzen. Eine Kalenderdatei wird <b>Resource</b> genannt. Um einen Kalender hinzuzufügen oder die Kalendereinstellungen zu ändern benutzen Sie bitte das Menu: <b>Ansicht -> Resourcenansicht umschalten</b>." }, 1491{ "You can use and display <b>more than one</b> calendar file in KO/Pi. A calendar file is called a <b>resource</b>. To add a calendar or change calendar settings please use menu: <b>View -> Toggle Resource View</b>.","Sie können <b>mehr als eine</b> Kalenderdatei in KO/Pi darstellen und benutzen. Eine Kalenderdatei wird <b>Resource</b> genannt. Um einen Kalender hinzuzufügen oder die Kalendereinstellungen zu ändern benutzen Sie bitte das Menu: <b>Ansicht -> Resourcenansicht umschalten</b>." },
1492{ "Hide Completed","Verstecke erledigte Todos" }, 1492{ "Hide Completed","Verstecke erledigte Todos" },
1493{ "Show not Running","Zeige nicht Laufende" }, 1493{ "Show not Running","Zeige nicht Laufende" },
1494{ "Click to add new Todo","Klick für neues Todo!" }, 1494{ "Click to add new Todo","Klick für neues Todo!" },
1495{ "Show next conflict for","Zeige nächsten Konflikt für" }, 1495{ "Show next conflict for","Zeige nächsten Konflikt für" },
1496{ "All events","Alle Termine" }, 1496{ "All events","Alle Termine" },
1497{ "Allday events","Ganztagestermine" }, 1497{ "Allday events","Ganztagestermine" },
1498{ "Events with time","Termine mit Zeit" }, 1498{ "Events with time","Termine mit Zeit" },
1499{ "No conflict found","Kein Konflikt gefunden" }, 1499{ "No conflict found","Kein Konflikt gefunden" },
1500{ "Conflict %1 <-> %2","Konflikt %1 <-> %2" }, 1500{ "Conflict %1 <-> %2","Konflikt %1 <-> %2" },
1501{ "<p><b>Q</b>: Show next date with conflicting events\n ","<p><b>Q</b>: Zeige nächstes Datum mit Terminen im Konflikt\n " }, 1501{ "<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{ "Week view mode uses row layout","Wochenansicht Modus nutzt Reihenlayout" }, 1502{ "Week view mode uses row layout","Wochenansicht Modus nutzt Reihenlayout" },
1503{ "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" }, 1503{ "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{ "KO/Pi Conflict delected","KO/Pi Konflikt erkannt" }, 1504{ "KO/Pi Conflict detected","KO/Pi Konflikt erkannt" },
1505{ "Show date","Zeige Datum" }, 1505{ "Show date","Zeige Datum" },
1506{ "No problem!","Null Problemo!" }, 1506{ "No problem!","Null Problemo!" },
1507{ "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" }, 1507{ "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" },
1508{ "Pi-Sync Port Error","Pi-Sync Port Fehler" }, 1508{ "Pi-Sync Port Error","Pi-Sync Port Fehler" },
1509{ "<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?" }, 1509{ "<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{ "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" }, 1510{ "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" },
1511{ "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" }, 1511{ "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" },
1512{ "Pi-Sync Error","Pi-Sync Fehler" }, 1512{ "Pi-Sync Error","Pi-Sync Fehler" },
1513{ "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" }, 1513{ "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" },
1514{ "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" }, 1514{ "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" },
1515{ "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." }, 1515{ "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." },
1516{ "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" }, 1516{ "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" },
1517{ "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" }, 1517{ "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" },
1518{ "Pi-Sync: Connected!","Pi-Sync: Verbunden!" }, 1518{ "Pi-Sync: Connected!","Pi-Sync: Verbunden!" },
1519{ "Receiving file from remote...","Empfange entfernte Datei..." }, 1519{ "Receiving file from remote...","Empfange entfernte Datei..." },
1520{ "Sending back synced file...","Sende synchronisierte Datei zurück..." }, 1520{ "Sending back synced file...","Sende synchronisierte Datei zurück..." },
1521{ "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" }, 1521{ "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 the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" }, 1522{ "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{ "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." }, 1523{ "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." },
1524{ "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" }, 1524{ "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" },
1525{ "Writing back file ...","Schreibe Datei zurück..." }, 1525{ "Writing back file ...","Schreibe Datei zurück..." },
1526{ "Sending back file ...","Sende Datei zurück..." }, 1526{ "Sending back file ...","Sende Datei zurück..." },
1527{ "Eeek, there I am ticklish!","Hihi, da bin ich kitzlig!" }, 1527{ "Eeek, there I am ticklish!","Hihi, da bin ich kitzlig!" },
1528{ "Created","Angelegt" }, 1528{ "Created","Angelegt" },
1529{ "Last Modified Sub","Zuletzt geändertes Sub" }, 1529{ "Last Modified Sub","Zuletzt geändertes Sub" },
1530{ "Checking conflicts ... please wait","Überprüfe Konflikte ... bitte warten" }, 1530{ "Checking conflicts ... please wait","Überprüfe Konflikte ... bitte warten" },
1531{ "Show times on two lines","Zeige Zeiten auf zwei Zeilen" }, 1531{ "Show times on two lines","Zeige Zeiten auf zwei Zeilen" },
1532{ "Save using LOCAL storage","Speichere nutze LOCAL Pfad" }, 1532{ "Save using LOCAL storage","Speichere nutze LOCAL Pfad" },
1533{ "Duration","Dauer" }, 1533{ "Duration","Dauer" },
1534{ " day"," Tag" }, 1534{ " day"," Tag" },
1535{ "Click this button to display all todos in a <b>flat</b> hierarchy","Klicke diesen Knopf um alle Todos in einer <b>flachen</b> Hierarchie darzustellen" }, 1535{ "Click this button to display all todos in a <b>flat</b> hierarchy","Klicke diesen Knopf um alle Todos in einer <b>flachen</b> Hierarchie darzustellen" },
1536{ "Click this button to display all todos <b>openend</b>","Klicke diesen Knopf um alle Todos <b>geöffnet</b> darzustellen" }, 1536{ "Click this button to display all todos <b>openend</b>","Klicke diesen Knopf um alle Todos <b>geöffnet</b> darzustellen" },
1537{ "Click this button to display all todos <b>closed</b>","Klicke diesen Knopf um alle Todos <b>geschlossen</b> darzustellen" }, 1537{ "Click this button to display all todos <b>closed</b>","Klicke diesen Knopf um alle Todos <b>geschlossen</b> darzustellen" },
1538{ "Click this button to toggle show/hide <b>running</b> todos","Klicke diesen Knopf um <b>zeige Laufende</b> umzuschalten" }, 1538{ "Click this button to toggle show/hide <b>running</b> todos","Klicke diesen Knopf um <b>zeige Laufende</b> umzuschalten" },
1539{ "Click this button to toggle show/hide <b>completed</b> todos","Klicke diesen Knopf um <b>zeige Erledigte</b> umzuschalten" }, 1539{ "Click this button to toggle show/hide <b>completed</b> todos","Klicke diesen Knopf um <b>zeige Erledigte</b> umzuschalten" },
1540{ "Click this button to add a new subtodo to the currently selected todo","Klicke diesen Knopf um ein Untertodo zu dem gerade selektierten Todo hinzuzufügen" }, 1540{ "Click this button to add a new subtodo to the currently selected todo","Klicke diesen Knopf um ein Untertodo zu dem gerade selektierten Todo hinzuzufügen" },
1541{ "In this column you can <b>set a calendar to be visible</b>. If a calendar is not visible its entries are not displayed in the views. You can add items to it and it is loaded/saved as usual.","In dieser Spalte kann man einen <b>Kalender auf sichtbar schalten</b>. Wenn ein Kalender nicht sichtbar ist werden seine Einträge nicht in den Ansichten angezeigt. Man kann Einträge hinzufügen und laden/speichern wie gewöhnlich." }, 1541{ "In this column you can <b>set a calendar to be visible</b>. If a calendar is not visible its entries are not displayed in the views. You can add items to it and it is loaded/saved as usual.","In dieser Spalte kann man einen <b>Kalender auf sichtbar schalten</b>. Wenn ein Kalender nicht sichtbar ist werden seine Einträge nicht in den Ansichten angezeigt. Man kann Einträge hinzufügen und laden/speichern wie gewöhnlich." },
1542{ "In this column you can see the <b>name of the calendar</b>. If you click on the name button you will get an information box about the loaded calendar file. If the file was not loaded at startup you can try to load it here again.","In dieser Spalte wird der <b>Name des Kalenders</b> angezeigt. Wenn Sie auf den Namen klicken wird Information über die Kalenderdatei angezeigt. Wenn die Datei beim Start nicht geladen wurde können Sie hier erneut versuchen sie zu laden." }, 1542{ "In this column you can see the <b>name of the calendar</b>. If you click on the name button you will get an information box about the loaded calendar file. If the file was not loaded at startup you can try to load it here again.","In dieser Spalte wird der <b>Name des Kalenders</b> angezeigt. Wenn Sie auf den Namen klicken wird Information über die Kalenderdatei angezeigt. Wenn die Datei beim Start nicht geladen wurde können Sie hier erneut versuchen sie zu laden." },
1543{ "In this column you can <b>disable the alarms of a calendar all together</b>. The alarm data in the calendar itself is not changed, the alarms are marked internally as "do not use". Useful if you load a calendar of another person but do not want to get notified about alarms of that person.","In dieser Spalte können die <b>Alarme eines Kalenders alle zusammen abgeschaltet werden</b>. Die Alarmdaten im Kalender selbst werden nicht verändert, es werde die Alarme intern als "nicht beachten" markiert. Nützlich wenn Sie den Kalender einer anderen Person laden aber nicht über dessen Alarme unterrichtet werden wollen." }, 1543{ "In this column you can <b>disable the alarms of a calendar all together</b>. The alarm data in the calendar itself is not changed, the alarms are marked internally as "do not use". Useful if you load a calendar of another person but do not want to get notified about alarms of that person.","In dieser Spalte können die <b>Alarme eines Kalenders alle zusammen abgeschaltet werden</b>. Die Alarmdaten im Kalender selbst werden nicht verändert, es werde die Alarme intern als "nicht beachten" markiert. Nützlich wenn Sie den Kalender einer anderen Person laden aber nicht über dessen Alarme unterrichtet werden wollen." },
1544{ "In this column you can <b>set a calendar and all entries of the calendar to read only</b>. If a calendar is readonly the entries cannot be edited and no items can be added to the calendar. If you change a setting of a calendar to readonly in this column all data will be saved because the data of a readonly calendar is not saved later.","In dieser Spalte können Sie einen <b>Kalender und alle Einträge auf schreibgeschützt setzen</b>. Einträge eines schreibgeschützten Kalenders können nicht verändert werden und es können keine Einträge zum Kalender hinzugefügt werden. Wenn Sie die Einstellung eines Kalenders in dieser Spalte auf schreibgeschützt setzen werden alle Daten automatisch abgespeichert, da die Daten eines schreibgeschützten Kalenders später nicht mehr gespeichert werden." }, 1544{ "In this column you can <b>set a calendar and all entries of the calendar to read only</b>. If a calendar is readonly the entries cannot be edited and no items can be added to the calendar. If you change a setting of a calendar to readonly in this column all data will be saved because the data of a readonly calendar is not saved later.","In dieser Spalte können Sie einen <b>Kalender und alle Einträge auf schreibgeschützt setzen</b>. Einträge eines schreibgeschützten Kalenders können nicht verändert werden und es können keine Einträge zum Kalender hinzugefügt werden. Wenn Sie die Einstellung eines Kalenders in dieser Spalte auf schreibgeschützt setzen werden alle Daten automatisch abgespeichert, da die Daten eines schreibgeschützten Kalenders später nicht mehr gespeichert werden." },
1545{ "Click this button to <b>add a calendar</b>. You can add an existing calendar file or you can add a new calendar and KO/Pi creates a new empty calendar file for you.","Klicken Sie diesen Knopf <b>um einen Kalender hinzuzufügen</b>. Sie können eine existierende Kalenderdatei hinzufügen oder einen neuen Kalender und KO/Pi legt dann eine neue leere Kalenderdatei für Sie an." }, 1545{ "Click this button to <b>add a calendar</b>. You can add an existing calendar file or you can add a new calendar and KO/Pi creates a new empty calendar file for you.","Klicken Sie diesen Knopf <b>um einen Kalender hinzuzufügen</b>. Sie können eine existierende Kalenderdatei hinzufügen oder einen neuen Kalender und KO/Pi legt dann eine neue leere Kalenderdatei für Sie an." },
1546{ "<b>iCal (*.ics) file on disk:</b><br>(will be created, if not existing)","<b>iCal (*.ics) Datei:</b><br>(Datei wird angelegt, wenn sie nicht existiert)" }, 1546{ "<b>iCal (*.ics) file on disk:</b><br>(will be created, if not existing)","<b>iCal (*.ics) Datei:</b><br>(Datei wird angelegt, wenn sie nicht existiert)" },
1547{ "Error saving data","Fehler beim Abspeichern" }, 1547{ "Error saving data","Fehler beim Abspeichern" },
1548{ "Calendar(s) not saved:","Nicht gespeicherte Kalender:" }, 1548{ "Calendar(s) not saved:","Nicht gespeicherte Kalender:" },
1549{ "","" }, 1549{ "Enable conflict detection","Schalte Konflikterkennung an" },
1550{ "","" }, 1550{ "Conflict detection checks an <b>edited event</b> with other <b>existing events</b> for overlapping. You can define which events are checked:","Konflikterkennung prüft einen <b>bearbeiteten Termin</b> auf Überschneidungen mit <b>anderen Terminen</b>. Sie können einstellen welche Termine überprüft werden:" },
1551{ "","" }, 1551{ "Filter for the edited event","Filter für den bearbeiteten Termin" },
1552{ "Filter for other existing events","Filter für die anderen Termine" },
1553{ "Check Allday with Allday","Prüfe GanzTag mit GanzTag" },
1554{ "Check Allday with NonAllday","Prüfe GanzTag mit NichtGanzTag" },
1555{ "Check NonAllday with Allday","Prüfe NichtGanzTag mit GanzTag" },
1556{ "Check NonAllday with NonAllday","Prüfe NichtGanzTag mit NichtGanzTag" },
1557{ "Conflict detection","Konflikterkennung" },
1552{ "","" }, 1558{ "","" },
1553{ "","" }, 1559{ "","" },
1554{ "","" }, 1560{ "","" },
1555{ "","" }, 1561{ "","" },
1556{ "","" }, 1562{ "","" },
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 26323b1..898da6c 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -2991,151 +2991,190 @@ void CalendarView::changeTodoDisplay(Todo *which, int action)
2991 mViewManager->updateWNview(); 2991 mViewManager->updateWNview();
2992 //mTodoList->updateView(); 2992 //mTodoList->updateView();
2993 } 2993 }
2994 2994
2995} 2995}
2996 2996
2997void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 2997void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
2998{ 2998{
2999 updateUnmanagedViews(); 2999 updateUnmanagedViews();
3000 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); 3000 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action );
3001 if ( action == KOGlobals::EVENTDELETED ) { //delete 3001 if ( action == KOGlobals::EVENTDELETED ) { //delete
3002 mCalendar->checkAlarmForIncidence( 0, true ); 3002 mCalendar->checkAlarmForIncidence( 0, true );
3003 if ( mEventViewerDialog ) 3003 if ( mEventViewerDialog )
3004 mEventViewerDialog->hide(); 3004 mEventViewerDialog->hide();
3005 } 3005 }
3006 else 3006 else
3007 mCalendar->checkAlarmForIncidence( which , false ); 3007 mCalendar->checkAlarmForIncidence( which , false );
3008} 3008}
3009 3009
3010// most of the changeEventDisplays() right now just call the view's 3010// most of the changeEventDisplays() right now just call the view's
3011// total update mode, but they SHOULD be recoded to be more refresh-efficient. 3011// total update mode, but they SHOULD be recoded to be more refresh-efficient.
3012void CalendarView::changeEventDisplay(Event *which, int action) 3012void CalendarView::changeEventDisplay(Event *which, int action)
3013{ 3013{
3014 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 3014 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
3015 changeIncidenceDisplay((Incidence *)which, action); 3015 changeIncidenceDisplay((Incidence *)which, action);
3016 static bool clearallviews = false; 3016 static bool clearallviews = false;
3017 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 3017 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
3018 if ( clearallviews ) { 3018 if ( clearallviews ) {
3019 clearAllViews(); 3019 clearAllViews();
3020 clearallviews = false; 3020 clearallviews = false;
3021 } 3021 }
3022 return; 3022 return;
3023 } 3023 }
3024 clearallviews = true; 3024 clearallviews = true;
3025 mDateNavigator->updateView(); 3025 mDateNavigator->updateView();
3026 //mDialogManager->updateSearchDialog(); 3026 //mDialogManager->updateSearchDialog();
3027 if (which) { 3027 if (which) {
3028 // If there is an event view visible update the display 3028 // If there is an event view visible update the display
3029 mViewManager->currentView()->changeEventDisplay(which,action); 3029 mViewManager->currentView()->changeEventDisplay(which,action);
3030 // TODO: check, if update needed 3030 // TODO: check, if update needed
3031 // if (which->getTodoStatus()) { 3031 // if (which->getTodoStatus()) {
3032 mTodoList->updateView(); 3032 mTodoList->updateView();
3033 if ( action != KOGlobals::EVENTDELETED ) { 3033 if ( action != KOGlobals::EVENTDELETED ) {
3034 mConflictingEvent = which ; 3034 mConflictingEvent = which ;
3035 int time = 1000; 3035 int time = 1000;
3036#ifdef DESKTOP_VERSION 3036#ifdef DESKTOP_VERSION
3037 time = 500; 3037 time = 500;
3038#endif 3038#endif
3039 QTimer::singleShot( time, this, SLOT ( checkConflictForEvent() ) ); 3039 bool checkC = false;
3040 if ( mConflictingEvent->doesFloat() ) {
3041 checkC = KOPrefs::instance()->mCheckConflictsAllDayAllDay
3042 || KOPrefs::instance()->mCheckConflictsAllDayNonAD;
3043 } else {
3044 checkC = KOPrefs::instance()->mCheckConflictsNonADAllDay
3045 || KOPrefs::instance()->mCheckConflictsNonADNonAD;
3046 }
3047 if ( checkC )
3048 QTimer::singleShot( time, this, SLOT ( checkConflictForEvent() ) );
3040 } 3049 }
3041 // } 3050 // }
3042 } else { 3051 } else {
3043 mViewManager->currentView()->updateView(); 3052 mViewManager->currentView()->updateView();
3044 } 3053 }
3045} 3054}
3046void CalendarView::checkConflictForEvent() 3055void CalendarView::checkConflictForEvent()
3047{ 3056{
3048 3057
3049 if (!KOPrefs::instance()->mConfirm) 3058 if (!KOPrefs::instance()->mConfirm)
3050 return; 3059 return;
3051 if ( ! mConflictingEvent ) return; 3060 if ( ! mConflictingEvent ) return;
3052 Event * conflictingEvent = mConflictingEvent; 3061 Event * conflictingEvent = mConflictingEvent;
3053 mConflictingEvent = 0; 3062 mConflictingEvent = 0;
3054 QDateTime current = QDateTime::currentDateTime(); 3063 QDateTime current = QDateTime::currentDateTime();
3055 if ( ! conflictingEvent->matchTime( &current, 0 ) ) { 3064 if ( ! conflictingEvent->matchTime( &current, 0 ) ) {
3056 return; 3065 return;
3057 } 3066 }
3067 CalFilter *filterIN = 0;
3068 CalFilter *filterALL = 0;
3069 CalFilter *filter = mFilters.first();
3070 while(filter) {
3071 if ( filter->name() == KOPrefs::instance()->mFilterConflictEditItem)
3072 filterIN = filter;
3073 if ( filter->name() == KOPrefs::instance()->mFilterConflictAllItem )
3074 filterALL = filter;
3075 filter = mFilters.next();
3076 }
3077 if ( filterIN ) {
3078 if ( !filterIN->filterCalendarItem( conflictingEvent ) ) {
3079 return;
3080 }
3081 }
3058 QPtrList<Event> testlist = mCalendar->events(); 3082 QPtrList<Event> testlist = mCalendar->events();
3059 Event * test = testlist.first(); 3083 Event * test = testlist.first();
3060 QDateTime conflict; 3084 QDateTime conflict;
3061 QDateTime retVal; 3085 QDateTime retVal;
3062 bool found = false; 3086 bool found = false;
3063 Event * cE = 0; 3087 Event * cE = 0;
3088 bool chAD = KOPrefs::instance()->mCheckConflictsAllDayAllDay;
3089 bool chNad = KOPrefs::instance()->mCheckConflictsAllDayNonAD;
3090 if ( !conflictingEvent->doesFloat() ) {
3091 chAD = KOPrefs::instance()->mCheckConflictsNonADAllDay;
3092 chNad = KOPrefs::instance()->mCheckConflictsNonADNonAD;
3093 }
3064 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") ); 3094 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") );
3065 while ( test ) { 3095 while ( test ) {
3066 qApp->processEvents(); 3096 qApp->processEvents();
3067 bool skip = false; 3097 bool skip = ( test->doesFloat() && !chAD ) || ( !test->doesFloat() && !chNad );
3068 if ( found ) 3098 if ( !skip ) {
3069 skip = !test->matchTime( &current, &conflict ); 3099 if ( filterALL ) {
3070 else 3100 if ( !filterALL->filterCalendarItem( test ) ) {
3071 skip = !test->matchTime( &current, 0 ); 3101 skip = true;
3072 if ( !skip && !test->doesFloat() ) { 3102 }
3073 if ( conflictingEvent->isOverlapping ( test, &retVal, &current ) ) { 3103 }
3074 if ( ! found ) { 3104 if ( !skip ) {
3075 conflict = retVal; 3105 if ( found )
3076 cE = test; 3106 skip = !test->matchTime( &current, &conflict );
3077 } else { 3107 else
3078 if ( retVal < conflict ) { 3108 skip = !test->matchTime( &current, 0 );
3079 conflict = retVal; 3109 if ( !skip ) {
3080 cE = test; 3110 if ( conflictingEvent->isOverlapping ( test, &retVal, &current ) ) {
3111 if ( ! found ) {
3112 conflict = retVal;
3113 cE = test;
3114 } else {
3115 if ( retVal < conflict ) {
3116 conflict = retVal;
3117 cE = test;
3118 }
3119 }
3120 found = true;
3081 } 3121 }
3082 } 3122 }
3083 found = true;
3084 } 3123 }
3085 } 3124 }
3086 test = testlist.next(); 3125 test = testlist.next();
3087 } 3126 }
3088 topLevelWidget()->setCaption( i18n("KO/Pi") ); 3127 topLevelWidget()->setCaption( i18n("KO/Pi") );
3089 if ( found ) { 3128 if ( found ) {
3090 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( conflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ; 3129 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( conflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ;
3091 qApp->processEvents(); 3130 qApp->processEvents();
3092 int km = KMessageBox::warningContinueCancel(this,mess, 3131 int km = KMessageBox::warningContinueCancel(this,mess,
3093 i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!")); 3132 i18n("KO/Pi Conflict detected"),i18n("Show date"),i18n("No problem!"));
3094 if ( km != KMessageBox::Continue ) { 3133 if ( km != KMessageBox::Continue ) {
3095 return; 3134 return;
3096 } 3135 }
3097 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) 3136 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 )
3098 mViewManager->showDayView(); 3137 mViewManager->showDayView();
3099 mNavigator->slotDaySelect( conflict.date() ); 3138 mNavigator->slotDaySelect( conflict.date() );
3100 int hour = conflict.time().hour(); 3139 int hour = conflict.time().hour();
3101 mViewManager->agendaView()->setStartHour( hour ); 3140 mViewManager->agendaView()->setStartHour( hour );
3102 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( conflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) ); 3141 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( conflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) );
3103 } else 3142 } else
3104 topLevelWidget()->setCaption( i18n("No conflict found") ); 3143 topLevelWidget()->setCaption( i18n("No conflict found") );
3105 return; 3144 return;
3106 3145
3107} 3146}
3108 3147
3109void CalendarView::updateTodoViews() 3148void CalendarView::updateTodoViews()
3110{ 3149{
3111 mTodoList->updateView(); 3150 mTodoList->updateView();
3112 mViewManager->currentView()->updateView(); 3151 mViewManager->currentView()->updateView();
3113 3152
3114} 3153}
3115 3154
3116 3155
3117 3156
3118void CalendarView::clearAllViews() 3157void CalendarView::clearAllViews()
3119{ 3158{
3120 mTodoList->clearList(); 3159 mTodoList->clearList();
3121 mViewManager->clearAllViews(); 3160 mViewManager->clearAllViews();
3122 SearchDialog * sd = mDialogManager->getSearchDialog(); 3161 SearchDialog * sd = mDialogManager->getSearchDialog();
3123 if ( sd ) { 3162 if ( sd ) {
3124 KOListView* kol = sd->listview(); 3163 KOListView* kol = sd->listview();
3125 if ( kol ) 3164 if ( kol )
3126 kol->clearList(); 3165 kol->clearList();
3127 } 3166 }
3128} 3167}
3129void CalendarView::updateView() 3168void CalendarView::updateView()
3130{ 3169{
3131 static bool clearallviews = false; 3170 static bool clearallviews = false;
3132 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 3171 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
3133 if ( clearallviews ) { 3172 if ( clearallviews ) {
3134 clearAllViews(); 3173 clearAllViews();
3135 clearallviews = false; 3174 clearallviews = false;
3136 } 3175 }
3137 return; 3176 return;
3138 } 3177 }
3139 clearallviews = true; 3178 clearallviews = true;
3140 DateList tmpList = mNavigator->selectedDates(); 3179 DateList tmpList = mNavigator->selectedDates();
3141 3180
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 77f572c..571ca11 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -185,97 +185,105 @@ KOPrefs::KOPrefs() :
185 addItemFont("EventView Font",&mEventViewFont,fon); 185 addItemFont("EventView Font",&mEventViewFont,fon);
186 186
187 KPrefs::setCurrentGroup("RemoteSyncing"); 187 KPrefs::setCurrentGroup("RemoteSyncing");
188 addItemString("ActiveSyncPort",&mActiveSyncPort,"9197" ); 188 addItemString("ActiveSyncPort",&mActiveSyncPort,"9197" );
189 addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" ); 189 addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" );
190 addItemBool("ShowSyncEvents",&mShowSyncEvents,false); 190 addItemBool("ShowSyncEvents",&mShowSyncEvents,false);
191 addItemInt("LastSyncTime",&mLastSyncTime,0); 191 addItemInt("LastSyncTime",&mLastSyncTime,0);
192 192
193#ifdef _WIN32_ 193#ifdef _WIN32_
194 QString hdp= locateLocal("data","korganizer")+"\\\\"; 194 QString hdp= locateLocal("data","korganizer")+"\\\\";
195#else 195#else
196 QString hdp= locateLocal("data","korganizer")+"/"; 196 QString hdp= locateLocal("data","korganizer")+"/";
197#endif 197#endif
198 198
199 KPrefs::setCurrentGroup("LoadSaveFileNames"); 199 KPrefs::setCurrentGroup("LoadSaveFileNames");
200 200
201 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); 201 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" );
202 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); 202 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" );
203 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); 203 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" );
204 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); 204 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" );
205 205
206 206
207 KPrefs::setCurrentGroup("Locale"); 207 KPrefs::setCurrentGroup("Locale");
208 addItemBool("ShortDateInViewer",&mShortDateInViewer,false); 208 addItemBool("ShortDateInViewer",&mShortDateInViewer,false);
209 209
210 210
211 KPrefs::setCurrentGroup("Colors"); 211 KPrefs::setCurrentGroup("Colors");
212 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor); 212 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor);
213 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor); 213 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor);
214 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor); 214 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor);
215 addItemColor("Todo done Color",&mTodoDoneColor,QColor(111,255,115) ); 215 addItemColor("Todo done Color",&mTodoDoneColor,QColor(111,255,115) );
216 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor); 216 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor);
217 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor); 217 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor);
218 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor); 218 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor);
219 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); 219 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor);
220 addItemColor("Todo running Color",&mTodoRunColor,defaultTodoRunColor); 220 addItemColor("Todo running Color",&mTodoRunColor,defaultTodoRunColor);
221 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); 221 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 ));
222 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); 222 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 ));
223 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); 223 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 ));
224 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true); 224 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true);
225 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true); 225 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true);
226 addItemBool("MonthViewWeek",&mMonthViewWeek,false); 226 addItemBool("MonthViewWeek",&mMonthViewWeek,false);
227 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); 227 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false);
228 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); 228 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 ));
229 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); 229 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 ));
230 addItemBool("UseAppColors",&mUseAppColors,false); 230 addItemBool("UseAppColors",&mUseAppColors,false);
231 231
232 232
233 233 KPrefs::setCurrentGroup("Conflicts");
234 addItemBool("EnableAutoDetect",&mDetectConflicts,true);
235 addItemBool("CheckConflictsAllDayAllDay",&mCheckConflictsAllDayAllDay,false);
236 addItemBool("CheckConflictsAllDayNonAD",&mCheckConflictsAllDayNonAD,false);
237 addItemBool("CheckConflictsNonADAllDay",&mCheckConflictsNonADAllDay,false);
238 addItemBool("CheckConflictsNonADNonAD",&mCheckConflictsNonADNonAD,true);
239 addItemString("FilterConflictEditItem", &mFilterConflictEditItem ,"nofilter" );
240 addItemString("FilterConflictAllItem", &mFilterConflictAllItem ,"nofilter" );
241
234 KPrefs::setCurrentGroup("Views"); 242 KPrefs::setCurrentGroup("Views");
235 addItemBool("Block Popup Menu",&mBlockPopupMenu,false); 243 addItemBool("Block Popup Menu",&mBlockPopupMenu,false);
236 addItemBool("Show Date Navigator",&mShowDateNavigator,true); 244 addItemBool("Show Date Navigator",&mShowDateNavigator,true);
237 addItemInt("Hour Size",&mHourSize,8); 245 addItemInt("Hour Size",&mHourSize,8);
238 addItemBool("Show Daily Recurrences",&mDailyRecur,true); 246 addItemBool("Show Daily Recurrences",&mDailyRecur,true);
239 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true); 247 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true);
240 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true); 248 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true);
241 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true); 249 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true);
242 addItemBool("ShowShortMonthName",&mMonthShowShort,false); 250 addItemBool("ShowShortMonthName",&mMonthShowShort,false);
243 addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true); 251 addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true);
244 addItemBool("ShowTimesInMonthCell",&mMonthShowTimes,true); 252 addItemBool("ShowTimesInMonthCell",&mMonthShowTimes,true);
245#ifdef DESKTOP_VERION 253#ifdef DESKTOP_VERION
246 addItemBool("Enable ToolTips",&mEnableToolTips,true); 254 addItemBool("Enable ToolTips",&mEnableToolTips,true);
247#else 255#else
248 addItemBool("Enable ToolTips",&mEnableToolTips,false); 256 addItemBool("Enable ToolTips",&mEnableToolTips,false);
249#endif 257#endif
250 addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false); 258 addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false);
251 addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false); 259 addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false);
252 addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true); 260 addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true);
253 addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true); 261 addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true);
254 addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,true); 262 addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,true);
255 addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false); 263 addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false);
256 addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false); 264 addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false);
257 addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true); 265 addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true);
258 addItemBool("HighlightCurrentDay",&mHighlightCurrentDay,true); 266 addItemBool("HighlightCurrentDay",&mHighlightCurrentDay,true);
259 addItemBool("WNViewShowsParents",&mWNViewShowsParents,true);; 267 addItemBool("WNViewShowsParents",&mWNViewShowsParents,true);;
260 addItemBool("WNViewShowsPast",&mWNViewShowsPast,true); 268 addItemBool("WNViewShowsPast",&mWNViewShowsPast,true);
261 addItemBool("WNViewShowLocation",&mWNViewShowLocation,false); 269 addItemBool("WNViewShowLocation",&mWNViewShowLocation,false);
262 addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false); 270 addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false);
263 addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true); 271 addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true);
264 addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false); 272 addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false);
265 addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false); 273 addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false);
266 addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,true); 274 addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,true);
267 addItemBool("MonthViewUsesBigFont",&mMonthViewUsesBigFont,true); 275 addItemBool("MonthViewUsesBigFont",&mMonthViewUsesBigFont,true);
268 addItemBool("MonthViewWeekRowlayout",&mMonthViewWeekRowlayout,false); 276 addItemBool("MonthViewWeekRowlayout",&mMonthViewWeekRowlayout,false);
269 addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false); 277 addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false);
270 addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false); 278 addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false);
271#ifdef DESKTOP_VERSION 279#ifdef DESKTOP_VERSION
272 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true); 280 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true);
273#else 281#else
274 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false); 282 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false);
275#endif 283#endif
276 addItemInt("Day Begins",&mDayBegins,7); 284 addItemInt("Day Begins",&mDayBegins,7);
277 addItemInt("Working Hours Start",&mWorkingHoursStart,8); 285 addItemInt("Working Hours Start",&mWorkingHoursStart,8);
278 addItemInt("Working Hours End",&mWorkingHoursEnd,17); 286 addItemInt("Working Hours End",&mWorkingHoursEnd,17);
279 addItemBool("Exclude Holidays",&mExcludeHolidays,true); 287 addItemBool("Exclude Holidays",&mExcludeHolidays,true);
280 addItemBool("Exclude Saturdays",&mExcludeSaturdays,true); 288 addItemBool("Exclude Saturdays",&mExcludeSaturdays,true);
281 289
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 9749ba3..576edf9 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -304,62 +304,71 @@ class KOPrefs : public KPimPrefs
304 bool mHighlightCurrentDay; 304 bool mHighlightCurrentDay;
305 bool mUseHighlightLightColor; 305 bool mUseHighlightLightColor;
306 bool mListViewMonthTimespan; 306 bool mListViewMonthTimespan;
307 bool mWNViewShowsParents; 307 bool mWNViewShowsParents;
308 bool mWNViewShowsPast; 308 bool mWNViewShowsPast;
309 bool mWNViewShowLocation; 309 bool mWNViewShowLocation;
310 bool mTodoViewShowsPercentage; 310 bool mTodoViewShowsPercentage;
311 bool mTodoViewUsesCatColors; 311 bool mTodoViewUsesCatColors;
312 bool mMonthViewUsesBigFont; 312 bool mMonthViewUsesBigFont;
313 bool mTodoViewUsesSmallFont; 313 bool mTodoViewUsesSmallFont;
314 bool mTodoViewUsesForegroundColor; 314 bool mTodoViewUsesForegroundColor;
315 bool mMonthViewUsesForegroundColor; 315 bool mMonthViewUsesForegroundColor;
316 316
317 bool mHightlightDateTimeEdit; 317 bool mHightlightDateTimeEdit;
318 bool mShortDateInViewer; 318 bool mShortDateInViewer;
319 319
320 bool mShowDateNavigator; 320 bool mShowDateNavigator;
321 321
322 QStringList mLocationDefaults; 322 QStringList mLocationDefaults;
323 QStringList mEventSummaryUser; 323 QStringList mEventSummaryUser;
324 QStringList mTodoSummaryUser; 324 QStringList mTodoSummaryUser;
325 QStringList mJournalSummaryUser; 325 QStringList mJournalSummaryUser;
326 326
327 bool mUseInternalAlarmNotification; 327 bool mUseInternalAlarmNotification;
328 int mAlarmPlayBeeps; 328 int mAlarmPlayBeeps;
329 int mAlarmSuspendTime; 329 int mAlarmSuspendTime;
330 int mAlarmSuspendCount; 330 int mAlarmSuspendCount;
331 int mAlarmBeepInterval; 331 int mAlarmBeepInterval;
332 int mOldLanguage; 332 int mOldLanguage;
333 int mOldLoadedLanguage; 333 int mOldLoadedLanguage;
334 334
335 335
336 QString mActiveSyncPort; 336 QString mActiveSyncPort;
337 QString mActiveSyncIP; 337 QString mActiveSyncIP;
338 338
339 // settings for eventviewer 339 // settings for eventviewer
340 bool mEVshowDetails; 340 bool mEVshowDetails;
341 bool mEVshowCreated; 341 bool mEVshowCreated;
342 bool mEVshowChanged; 342 bool mEVshowChanged;
343 bool mWTshowDetails; 343 bool mWTshowDetails;
344 bool mWTshowCreated; 344 bool mWTshowCreated;
345 bool mWTshowChanged; 345 bool mWTshowChanged;
346 346
347 int mCurrentDisplayedView; 347 int mCurrentDisplayedView;
348 QPtrList<KopiCalendarFile> mCalendars; 348 QPtrList<KopiCalendarFile> mCalendars;
349 int mNextAvailableCalendar; 349 int mNextAvailableCalendar;
350 bool mGlobalUpdateDisabled; 350 bool mGlobalUpdateDisabled;
351 351
352
353 bool mDetectConflicts;
354 bool mCheckConflictsAllDayAllDay;
355 bool mCheckConflictsAllDayNonAD;
356 bool mCheckConflictsNonADAllDay;
357 bool mCheckConflictsNonADNonAD;
358 QString mFilterConflictEditItem;
359 QString mFilterConflictAllItem;
360
352 private: 361 private:
353 QDict<QColor> mCategoryColors; 362 QDict<QColor> mCategoryColors;
354 QArray<KopiCalendarFile*> mDefCalColors; 363 QArray<KopiCalendarFile*> mDefCalColors;
355 QColor mDefaultCategoryColor; 364 QColor mDefaultCategoryColor;
356 365
357 QFont mDefaultTimeBarFont; 366 QFont mDefaultTimeBarFont;
358 QFont mDefaultViewFont; 367 QFont mDefaultViewFont;
359 QFont mDefaultMonthViewFont; 368 QFont mDefaultMonthViewFont;
360 369
361 QString mName; 370 QString mName;
362 QString mEmail; 371 QString mEmail;
363}; 372};
364 373
365#endif 374#endif
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index 9e2378a..bbdf508 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -877,96 +877,131 @@ dummy =
877 topLayout->addWidget(wid,ii++,0); 877 topLayout->addWidget(wid,ii++,0);
878 878
879 dummy = 879 dummy =
880 addWidBool(i18n("Colors are applied to text"), 880 addWidBool(i18n("Colors are applied to text"),
881 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame); 881 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame);
882 topLayout->addWidget(dummy->checkBox(),ii++,0); 882 topLayout->addWidget(dummy->checkBox(),ii++,0);
883 883
884 884
885 885
886 topFrame = addPage(i18n("View Options"),0,0); 886 topFrame = addPage(i18n("View Options"),0,0);
887 887
888 topLayout = new QGridLayout(topFrame,4,1); 888 topLayout = new QGridLayout(topFrame,4,1);
889 topLayout->setSpacing(mSpacingHint); 889 topLayout->setSpacing(mSpacingHint);
890 topLayout->setMargin(mMarginHint); 890 topLayout->setMargin(mMarginHint);
891 ii = 0; 891 ii = 0;
892 892
893 dummy = 893 dummy =
894 addWidBool(i18n("Show Sync Events"), 894 addWidBool(i18n("Show Sync Events"),
895 &(KOPrefs::instance()->mShowSyncEvents),topFrame); 895 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
896 topLayout->addWidget(dummy->checkBox(), ii++,0); 896 topLayout->addWidget(dummy->checkBox(), ii++,0);
897 897
898 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame); 898 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame);
899 topLayout->addWidget(lab ,ii++,0); 899 topLayout->addWidget(lab ,ii++,0);
900 900
901 dummy = addWidBool(i18n("Details"), 901 dummy = addWidBool(i18n("Details"),
902 &(KOPrefs::instance()->mEVshowDetails),topFrame); 902 &(KOPrefs::instance()->mEVshowDetails),topFrame);
903 topLayout->addWidget(dummy->checkBox(),ii++,0); 903 topLayout->addWidget(dummy->checkBox(),ii++,0);
904 dummy = addWidBool(i18n("Created time"), 904 dummy = addWidBool(i18n("Created time"),
905 &(KOPrefs::instance()->mEVshowCreated),topFrame); 905 &(KOPrefs::instance()->mEVshowCreated),topFrame);
906 topLayout->addWidget(dummy->checkBox(),ii++,0); 906 topLayout->addWidget(dummy->checkBox(),ii++,0);
907 dummy = addWidBool(i18n("Last modified time"), 907 dummy = addWidBool(i18n("Last modified time"),
908 &(KOPrefs::instance()->mEVshowChanged),topFrame); 908 &(KOPrefs::instance()->mEVshowChanged),topFrame);
909 topLayout->addWidget(dummy->checkBox(),ii++,0); 909 topLayout->addWidget(dummy->checkBox(),ii++,0);
910 910
911 911
912 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame); 912 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame);
913 topLayout->addWidget(lab ,ii++,0); 913 topLayout->addWidget(lab ,ii++,0);
914 914
915 dummy = addWidBool(i18n("Details"), 915 dummy = addWidBool(i18n("Details"),
916 &(KOPrefs::instance()->mWTshowDetails),topFrame); 916 &(KOPrefs::instance()->mWTshowDetails),topFrame);
917 topLayout->addWidget(dummy->checkBox(),ii++,0); 917 topLayout->addWidget(dummy->checkBox(),ii++,0);
918 dummy = addWidBool(i18n("Created time"), 918 dummy = addWidBool(i18n("Created time"),
919 &(KOPrefs::instance()->mWTshowCreated),topFrame); 919 &(KOPrefs::instance()->mWTshowCreated),topFrame);
920 topLayout->addWidget(dummy->checkBox(),ii++,0); 920 topLayout->addWidget(dummy->checkBox(),ii++,0);
921 dummy = addWidBool(i18n("Last modified time"), 921 dummy = addWidBool(i18n("Last modified time"),
922 &(KOPrefs::instance()->mWTshowChanged),topFrame); 922 &(KOPrefs::instance()->mWTshowChanged),topFrame);
923 topLayout->addWidget(dummy->checkBox(),ii++,0); 923 topLayout->addWidget(dummy->checkBox(),ii++,0);
924 924
925 topFrame = addPage(i18n("Conflict detection"),0,0);
926
927 topLayout = new QGridLayout(topFrame,2,1);
928 topLayout->setSpacing(mSpacingHint);
929 topLayout->setMargin(mMarginHint);
930 ii = 0;
931 dummy = addWidBool(i18n("Enable conflict detection"),
932 &(KOPrefs::instance()->mDetectConflicts),topFrame);
933 topLayout->addWidget(dummy->checkBox(), ii++,0);
934 topFrame = new QFrame( topFrame );
935 topLayout->addWidget(topFrame ,ii++,0);
936 topLayout = new QGridLayout(topFrame,4,1);
937 connect ( dummy->checkBox(), SIGNAL( toggled( bool ) ), topFrame, SLOT ( setEnabled( bool ) ) );
938 topLayout->addWidget( new QLabel ( i18n("Conflict detection checks an <b>edited event</b> with other <b>existing events</b> for overlapping. You can define which events are checked:"), topFrame ) , ii++,0);
939 topLayout->addWidget( new QLabel ( i18n("Filter for the edited event"), topFrame ) , ii++,0);
940 mFilterEditItem = new QComboBox( topFrame );
941 topLayout->addWidget(mFilterEditItem,ii++,0);
942 topLayout->addWidget( new QLabel ( i18n("Filter for other existing events"), topFrame ) , ii++,0);
943 mFilterAllItem = new QComboBox( topFrame );
944 topLayout->addWidget(mFilterAllItem,ii++,0);
945 dummy = addWidBool(i18n("Check Allday with Allday"),
946 &(KOPrefs::instance()->mCheckConflictsAllDayAllDay),topFrame);
947 topLayout->addWidget(dummy->checkBox(), ii++,0);
948 dummy = addWidBool(i18n("Check Allday with NonAllday"),
949 &(KOPrefs::instance()->mCheckConflictsAllDayNonAD),topFrame);
950 topLayout->addWidget(dummy->checkBox(), ii++,0);
951 dummy = addWidBool(i18n("Check NonAllday with Allday"),
952 &(KOPrefs::instance()->mCheckConflictsNonADAllDay),topFrame);
953 topLayout->addWidget(dummy->checkBox(), ii++,0);
954 dummy = addWidBool(i18n("Check NonAllday with NonAllday"),
955 &(KOPrefs::instance()->mCheckConflictsNonADNonAD),topFrame);
956 topLayout->addWidget(dummy->checkBox(), ii++,0);
957
958
959
925 960
926 topFrame = addPage(i18n("Alarm"),0,0); 961 topFrame = addPage(i18n("Alarm"),0,0);
927 // DesktopIcon("viewmag",KIcon::SizeMedium)); 962 // DesktopIcon("viewmag",KIcon::SizeMedium));
928 963
929 topLayout = new QGridLayout(topFrame,2,1); 964 topLayout = new QGridLayout(topFrame,2,1);
930 topLayout->setSpacing(mSpacingHint); 965 topLayout->setSpacing(mSpacingHint);
931 topLayout->setMargin(mMarginHint); 966 topLayout->setMargin(mMarginHint);
932 int iii = 0; 967 int iii = 0;
933 968
934 dummy = 969 dummy =
935 addWidBool(i18n("Use internal alarm notification"), 970 addWidBool(i18n("Use internal alarm notification"),
936 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 971 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
937 topLayout->addWidget(dummy->checkBox(),iii++,0); 972 topLayout->addWidget(dummy->checkBox(),iii++,0);
938 973
939 if ( QApplication::desktop()->height() > 240 ) { 974 if ( QApplication::desktop()->height() > 240 ) {
940 975
941 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame); 976 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame);
942 977
943 topLayout->addWidget(lab ,iii++,0); 978 topLayout->addWidget(lab ,iii++,0);
944 } 979 }
945#ifndef DESKTOP_VERSION 980#ifndef DESKTOP_VERSION
946 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 981 lab->setAlignment( AlignLeft|WordBreak|AlignTop);
947#else 982#else
948 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 983 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
949 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 984 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
950#endif 985#endif
951 986
952 QHBox* dummyBox = new QHBox(topFrame); 987 QHBox* dummyBox = new QHBox(topFrame);
953 new QLabel(i18n("Play beeps count:"),dummyBox); 988 new QLabel(i18n("Play beeps count:"),dummyBox);
954 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox); 989 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox);
955 topLayout->addWidget(dummyBox,iii++,0); 990 topLayout->addWidget(dummyBox,iii++,0);
956 991
957 dummyBox = new QHBox(topFrame); 992 dummyBox = new QHBox(topFrame);
958 new QLabel(i18n("Beeps interval in sec:"),dummyBox); 993 new QLabel(i18n("Beeps interval in sec:"),dummyBox);
959 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox); 994 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox);
960 topLayout->addWidget(dummyBox,iii++,0); 995 topLayout->addWidget(dummyBox,iii++,0);
961 996
962 dummyBox = new QHBox(topFrame); 997 dummyBox = new QHBox(topFrame);
963 new QLabel(i18n("Default suspend time in min:"),dummyBox); 998 new QLabel(i18n("Default suspend time in min:"),dummyBox);
964 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox); 999 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox);
965 topLayout->addWidget(dummyBox,iii++,0); 1000 topLayout->addWidget(dummyBox,iii++,0);
966 1001
967 dummyBox = new QHBox(topFrame); 1002 dummyBox = new QHBox(topFrame);
968 new QLabel(i18n("Auto suspend count:"),dummyBox); 1003 new QLabel(i18n("Auto suspend count:"),dummyBox);
969 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox); 1004 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox);
970 topLayout->addWidget(dummyBox,iii++,0); 1005 topLayout->addWidget(dummyBox,iii++,0);
971 1006
972 1007
@@ -1390,140 +1425,157 @@ void KOPrefsDialog::showPrinterTab()
1390 1425
1391void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text, 1426void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text,
1392 const QStringList *tags) 1427 const QStringList *tags)
1393{ 1428{
1394 if (tags) { 1429 if (tags) {
1395 int i = tags->findIndex(text); 1430 int i = tags->findIndex(text);
1396 if (i > 0) combo->setCurrentItem(i); 1431 if (i > 0) combo->setCurrentItem(i);
1397 } else { 1432 } else {
1398 for(int i=0;i<combo->count();++i) { 1433 for(int i=0;i<combo->count();++i) {
1399 if (combo->text(i) == text) { 1434 if (combo->text(i) == text) {
1400 combo->setCurrentItem(i); 1435 combo->setCurrentItem(i);
1401 break; 1436 break;
1402 } 1437 }
1403 } 1438 }
1404 } 1439 }
1405} 1440}
1406 1441
1407void KOPrefsDialog::usrReadConfig() 1442void KOPrefsDialog::usrReadConfig()
1408{ 1443{
1409 1444
1410 mNameEdit->setText(KOPrefs::instance()->fullName()); 1445 mNameEdit->setText(KOPrefs::instance()->fullName());
1411 mEmailEdit->setText(KOPrefs::instance()->email()); 1446 mEmailEdit->setText(KOPrefs::instance()->email());
1412 1447
1413 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval); 1448 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval);
1414 1449
1415 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime); 1450 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime);
1416 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration); 1451 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration);
1417 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime); 1452 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime);
1418 1453
1419 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays); 1454 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays);
1420 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays); 1455 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays);
1421 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios); 1456 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios);
1422 // mAMails->clear(); 1457 // mAMails->clear();
1423 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin(); 1458 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin();
1424// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) { 1459// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) {
1425// QListViewItem *item = new QListViewItem(mAMails); 1460// QListViewItem *item = new QListViewItem(mAMails);
1426// item->setText(0,*it); 1461// item->setText(0,*it);
1427// mAMails->insertItem(item); 1462// mAMails->insertItem(item);
1428// } 1463// }
1429 1464
1430 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile); 1465 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile);
1431 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile); 1466 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile);
1432 updateCategories(); 1467 updateCategories();
1433 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps ); 1468 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps );
1434 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime ); 1469 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime );
1435 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount ); 1470 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount );
1436 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval ); 1471 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval );
1437 mCatDefaultColor = KOPrefs::instance()->mEventColor; 1472 mCatDefaultColor = KOPrefs::instance()->mEventColor;
1473
1474
1475 KConfig cfgko(locateLocal("config","korganizerrc"));
1476 cfgko.setGroup("General");
1477 QStringList temp = cfgko.readListEntry("CalendarFilters");
1478 temp.prepend(i18n("No Filter") );
1479 mFilterEditItem->insertStringList( temp );
1480 mFilterAllItem->insertStringList( temp );
1481 int index = temp.findIndex( KOPrefs::instance()->mFilterConflictEditItem );
1482 if ( index >= 0 )
1483 mFilterEditItem->setCurrentItem( index );
1484 index = temp.findIndex( KOPrefs::instance()->mFilterConflictAllItem );
1485 if ( index >= 0 )
1486 mFilterAllItem->setCurrentItem( index );
1438} 1487}
1439 1488
1440 1489
1441void KOPrefsDialog::usrWriteConfig() 1490void KOPrefsDialog::usrWriteConfig()
1442{ 1491{
1443 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text(); 1492 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text();
1444 KOPrefs::instance()->setFullName(mNameEdit->text()); 1493 KOPrefs::instance()->setFullName(mNameEdit->text());
1445 KOPrefs::instance()->setEmail(mEmailEdit->text()); 1494 KOPrefs::instance()->setEmail(mEmailEdit->text());
1446 1495
1447 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value(); 1496 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value();
1448 KOPrefs::instance()->mStartTime = mStartTimeSpin->value(); 1497 KOPrefs::instance()->mStartTime = mStartTimeSpin->value();
1449 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value(); 1498 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value();
1450 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem(); 1499 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem();
1451 if ( mCatDefaultColor != KOPrefs::instance()->mEventColor ) { 1500 if ( mCatDefaultColor != KOPrefs::instance()->mEventColor ) {
1452 QStringList cat = KOPrefs::instance()->mCustomCategories; 1501 QStringList cat = KOPrefs::instance()->mCustomCategories;
1453 int iii = 0; 1502 int iii = 0;
1454 while ( iii < cat.count() ) { 1503 while ( iii < cat.count() ) {
1455 if ( *KOPrefs::instance()->categoryColor( cat[ iii ] ) == mCatDefaultColor ) 1504 if ( *KOPrefs::instance()->categoryColor( cat[ iii ] ) == mCatDefaultColor )
1456 KOPrefs::instance()->setCategoryColor( cat[ iii ], KOPrefs::instance()->mEventColor ); 1505 KOPrefs::instance()->setCategoryColor( cat[ iii ], KOPrefs::instance()->mEventColor );
1457 ++iii; 1506 ++iii;
1458 } 1507 }
1459 } 1508 }
1460 QDictIterator<QColor> it(mCategoryDict); 1509 QDictIterator<QColor> it(mCategoryDict);
1461 while (it.current()) { 1510 while (it.current()) {
1462 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current()); 1511 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current());
1463 ++it; 1512 ++it;
1464 } 1513 }
1465 1514
1466 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value(); 1515 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value();
1467 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value(); 1516 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value();
1468 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value(); 1517 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value();
1469 1518
1470 KOPrefs::instance()->mAdditionalMails.clear(); 1519 KOPrefs::instance()->mAdditionalMails.clear();
1471 // QListViewItem *item; 1520 // QListViewItem *item;
1472 // item = mAMails->firstChild(); 1521 // item = mAMails->firstChild();
1473 // while (item) 1522 // while (item)
1474 // { 1523 // {
1475 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) ); 1524 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) );
1476 // item = item->nextSibling(); 1525 // item = item->nextSibling();
1477 // } 1526 // }
1478 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value(); 1527 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value();
1479 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ; 1528 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ;
1480 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ; 1529 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ;
1481 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ; 1530 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ;
1531
1532 KOPrefs::instance()->mFilterConflictEditItem = mFilterEditItem->currentText();
1533 KOPrefs::instance()->mFilterConflictAllItem = mFilterAllItem->currentText();
1482} 1534}
1483 1535
1484void KOPrefsDialog::updateCategories() 1536void KOPrefsDialog::updateCategories()
1485{ 1537{
1486 mCategoryCombo->clear(); 1538 mCategoryCombo->clear();
1487 mCategoryDict.clear(); 1539 mCategoryDict.clear();
1488 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1540 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1489 updateCategoryColor(); 1541 updateCategoryColor();
1490} 1542}
1491 1543
1492void KOPrefsDialog::toggleEmailSettings(bool on) 1544void KOPrefsDialog::toggleEmailSettings(bool on)
1493{ 1545{
1494 if (on) { 1546 if (on) {
1495 mEmailEdit->setEnabled(false); 1547 mEmailEdit->setEnabled(false);
1496 mNameEdit->setEnabled(false); 1548 mNameEdit->setEnabled(false);
1497 mEmailLabel->setEnabled(false); 1549 mEmailLabel->setEnabled(false);
1498 mNameLabel->setEnabled(false); 1550 mNameLabel->setEnabled(false);
1499 1551
1500 KEMailSettings settings; 1552 KEMailSettings settings;
1501 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName)); 1553 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName));
1502 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress)); 1554 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress));
1503 } else { 1555 } else {
1504 mEmailEdit->setEnabled(true); 1556 mEmailEdit->setEnabled(true);
1505 mNameEdit->setEnabled(true); 1557 mNameEdit->setEnabled(true);
1506 mEmailLabel->setEnabled(true); 1558 mEmailLabel->setEnabled(true);
1507 mNameLabel->setEnabled(true); 1559 mNameLabel->setEnabled(true);
1508 } 1560 }
1509} 1561}
1510 1562
1511void KOPrefsDialog::addItem() 1563void KOPrefsDialog::addItem()
1512{ 1564{
1513 // aEmailsEdit->setEnabled(true); 1565 // aEmailsEdit->setEnabled(true);
1514// QListViewItem *item = new QListViewItem(mAMails); 1566// QListViewItem *item = new QListViewItem(mAMails);
1515// mAMails->insertItem(item); 1567// mAMails->insertItem(item);
1516// mAMails->setSelected(item,true); 1568// mAMails->setSelected(item,true);
1517// aEmailsEdit->setText(i18n("(EmptyEmail)")); 1569// aEmailsEdit->setText(i18n("(EmptyEmail)"));
1518} 1570}
1519 1571
1520void KOPrefsDialog::removeItem() 1572void KOPrefsDialog::removeItem()
1521{ 1573{
1522// QListViewItem *item; 1574// QListViewItem *item;
1523// item = mAMails->selectedItem(); 1575// item = mAMails->selectedItem();
1524// if (!item) return; 1576// if (!item) return;
1525// mAMails->takeItem(item); 1577// mAMails->takeItem(item);
1526// item = mAMails->selectedItem(); 1578// item = mAMails->selectedItem();
1527// if (!item) { 1579// if (!item) {
1528// aEmailsEdit->setText(""); 1580// aEmailsEdit->setText("");
1529// aEmailsEdit->setEnabled(false); 1581// aEmailsEdit->setEnabled(false);
diff --git a/korganizer/koprefsdialog.h b/korganizer/koprefsdialog.h
index baa6cf9..ee7a7aa 100644
--- a/korganizer/koprefsdialog.h
+++ b/korganizer/koprefsdialog.h
@@ -102,54 +102,56 @@ class KOPrefsDialog : public KPrefsDialog
102 QComboBox *timeCombo; 102 QComboBox *timeCombo;
103 QComboBox *tzCombo; 103 QComboBox *tzCombo;
104 104
105 // widgets holding preferences data 105 // widgets holding preferences data
106 QLineEdit *mNameEdit; 106 QLineEdit *mNameEdit;
107 QLineEdit *mEmailEdit; 107 QLineEdit *mEmailEdit;
108 QLabel *mNameLabel; 108 QLabel *mNameLabel;
109 QLabel *mEmailLabel; 109 QLabel *mEmailLabel;
110 QLineEdit *mAdditionalEdit; 110 QLineEdit *mAdditionalEdit;
111 QSpinBox *mAutoSaveIntervalSpin; 111 QSpinBox *mAutoSaveIntervalSpin;
112 QSpinBox *mPrioSpin; 112 QSpinBox *mPrioSpin;
113 // QListView *mAMails; 113 // QListView *mAMails;
114 QLineEdit *aEmailsEdit; 114 QLineEdit *aEmailsEdit;
115 115
116 QComboBox *mTimeZoneCombo; 116 QComboBox *mTimeZoneCombo;
117 QStringList tzonenames; 117 QStringList tzonenames;
118 QSpinBox *mStartTimeSpin; 118 QSpinBox *mStartTimeSpin;
119 QSpinBox *mDefaultDurationSpin; 119 QSpinBox *mDefaultDurationSpin;
120 QComboBox *mAlarmTimeCombo; 120 QComboBox *mAlarmTimeCombo;
121 121
122 QComboBox *mCategoryCombo; 122 QComboBox *mCategoryCombo;
123 KColorButton *mCategoryButton; 123 KColorButton *mCategoryButton;
124 QDict<QColor> mCategoryDict; 124 QDict<QColor> mCategoryDict;
125 125
126 QSlider *mHourSizeSlider; 126 QSlider *mHourSizeSlider;
127 127
128 QSpinBox *mNextXDaysSpin; 128 QSpinBox *mNextXDaysSpin;
129 QSpinBox *mWhatsNextSpin; 129 QSpinBox *mWhatsNextSpin;
130 130
131 QLineEdit * mRemoteIPEdit; 131 QLineEdit * mRemoteIPEdit;
132 QLineEdit * mRemoteUser; 132 QLineEdit * mRemoteUser;
133 QLineEdit * mRemotePassWd; 133 QLineEdit * mRemotePassWd;
134 QLineEdit * mRemoteFile; 134 QLineEdit * mRemoteFile;
135 QLineEdit * mLocalTempFile; 135 QLineEdit * mLocalTempFile;
136 QWidget* mSetupSyncAlgTab; 136 QWidget* mSetupSyncAlgTab;
137 QLineEdit * mUserDateFormatLong; 137 QLineEdit * mUserDateFormatLong;
138 QLineEdit * mUserDateFormatShort; 138 QLineEdit * mUserDateFormatShort;
139 139
140 QSpinBox *mTimezoneOffsetSpin; 140 QSpinBox *mTimezoneOffsetSpin;
141 QSpinBox *mDaylightsavingStart; 141 QSpinBox *mDaylightsavingStart;
142 QSpinBox *mDaylightsavingEnd; 142 QSpinBox *mDaylightsavingEnd;
143 KDateEdit* mStartDateSavingEdit; 143 KDateEdit* mStartDateSavingEdit;
144 KDateEdit* mEndDateSavingEdit; 144 KDateEdit* mEndDateSavingEdit;
145 QSpinBox * mAlarmPlayBeeps; 145 QSpinBox * mAlarmPlayBeeps;
146 QSpinBox * mAlarmSuspendTime; 146 QSpinBox * mAlarmSuspendTime;
147 QSpinBox * mAlarmSuspendCount; 147 QSpinBox * mAlarmSuspendCount;
148 QSpinBox * mAlarmBeepInterval; 148 QSpinBox * mAlarmBeepInterval;
149 149
150 QComboBox * mFilterEditItem, *mFilterAllItem;
151
150 QLineEdit * mDefaultAlarmFile; 152 QLineEdit * mDefaultAlarmFile;
151 int mSpacingHint; 153 int mSpacingHint;
152 int mMarginHint; 154 int mMarginHint;
153}; 155};
154 156
155#endif 157#endif