summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-10 00:09:04 (UTC)
committer zautrix <zautrix>2005-07-10 00:09:04 (UTC)
commit2d1e1fe5d290503db8c0462fc294f5c04f58e95c (patch) (unidiff)
treeffb1ba581d7a766cb736d42d43dad88a54dabdfd
parent2aabde6c21d6dc4f9de8cf3ac17b98053961cc6b (diff)
downloadkdepimpi-2d1e1fe5d290503db8c0462fc294f5c04f58e95c.zip
kdepimpi-2d1e1fe5d290503db8c0462fc294f5c04f58e95c.tar.gz
kdepimpi-2d1e1fe5d290503db8c0462fc294f5c04f58e95c.tar.bz2
fixxx
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt2
-rw-r--r--korganizer/calendarview.cpp8
2 files changed, 5 insertions, 5 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 6723dc5..0b928ef 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1275,269 +1275,269 @@
1275{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" }, 1275{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" },
1276{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" }, 1276{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" },
1277{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" }, 1277{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" },
1278{ "Summary/Loc.","Titel/Ort" }, 1278{ "Summary/Loc.","Titel/Ort" },
1279{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." }, 1279{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." },
1280{ "Week Number","Wochennummer" }, 1280{ "Week Number","Wochennummer" },
1281{ "Import","Importiere" }, 1281{ "Import","Importiere" },
1282{ "Export","Exportiere" }, 1282{ "Export","Exportiere" },
1283{ "Beam","Beame" }, 1283{ "Beam","Beame" },
1284{ "Export","Exportiere" }, 1284{ "Export","Exportiere" },
1285{ "As iCal (ics) file...","Als iCal (ics) Datei..." }, 1285{ "As iCal (ics) file...","Als iCal (ics) Datei..." },
1286{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." }, 1286{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." },
1287{ "Journal/Details...","Journale/Details..." }, 1287{ "Journal/Details...","Journale/Details..." },
1288{ "Agenda View","Agenda Ansicht" }, 1288{ "Agenda View","Agenda Ansicht" },
1289{ "Show current time","Zeige aktuelle Zeit" }, 1289{ "Show current time","Zeige aktuelle Zeit" },
1290{ "Edit new item","Bearbeite neuen Eintrag" }, 1290{ "Edit new item","Bearbeite neuen Eintrag" },
1291{ "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" }, 1291{ "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" },
1292{ "There is no next alarm.","Es gibt keinen nächsten Alarm." }, 1292{ "There is no next alarm.","Es gibt keinen nächsten Alarm." },
1293{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" }, 1293{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" },
1294{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" }, 1294{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" },
1295{ "%1 days\n","%1 Tagen\n" }, 1295{ "%1 days\n","%1 Tagen\n" },
1296{ "1 day\n","1 Tag\n" }, 1296{ "1 day\n","1 Tag\n" },
1297{ "%1 hours\n","%1 Stunden\n" }, 1297{ "%1 hours\n","%1 Stunden\n" },
1298{ "1 hour\n","1 Stunde\n" }, 1298{ "1 hour\n","1 Stunde\n" },
1299{ "%1 minutes\n","%1 Minuten\n" }, 1299{ "%1 minutes\n","%1 Minuten\n" },
1300{ "1 minute\n","1 Minute\n" }, 1300{ "1 minute\n","1 Minute\n" },
1301{ "Only one toolbar","Nur eine Toolbar" }, 1301{ "Only one toolbar","Nur eine Toolbar" },
1302{ "Print","Drucke" }, 1302{ "Print","Drucke" },
1303{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." }, 1303{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." },
1304{ "There is nothing selected!","Es ist nichts ausgewählt!" }, 1304{ "There is nothing selected!","Es ist nichts ausgewählt!" },
1305{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " }, 1305{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " },
1306{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" }, 1306{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" },
1307{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.\n","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden.\n" }, 1307{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.\n","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden.\n" },
1308{ "KO/Pi Printout","KO/Pi Ausdruck" }, 1308{ "KO/Pi Printout","KO/Pi Ausdruck" },
1309{ "Print unscaled","Drucke unskaliert" }, 1309{ "Print unscaled","Drucke unskaliert" },
1310{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." }, 1310{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." },
1311{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." }, 1311{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." },
1312{ "Printout Mode","Druck Modus" }, 1312{ "Printout Mode","Druck Modus" },
1313{ "Filter menu icon","Filtermenu Icon" }, 1313{ "Filter menu icon","Filtermenu Icon" },
1314{ "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" }, 1314{ "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" },
1315{ "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" }, 1315{ "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" },
1316{ "%1d","%1t" }, 1316{ "%1d","%1t" },
1317{ "%1h","%1std" }, 1317{ "%1h","%1std" },
1318{ "%1min","%1min" }, 1318{ "%1min","%1min" },
1319{ "( %1 before )","( %1 vorher )" }, 1319{ "( %1 before )","( %1 vorher )" },
1320{ "The next alarm is in\nless than one minute!","Der nächste Alarm kommt in\nweniger als einer Minute!" }, 1320{ "The next alarm is in\nless than one minute!","Der nächste Alarm kommt in\nweniger als einer Minute!" },
1321{ "\nThe internal alarm notification is disabled!\n","\nDie interne Alarmbenachrichtigung ist ausgeschaltet!\n" }, 1321{ "\nThe internal alarm notification is disabled!\n","\nDie interne Alarmbenachrichtigung ist ausgeschaltet!\n" },
1322{ "Enable it in the settings menu, TAB alarm.","Schalten Sie sie an im Menu Einstellungen, TAB Alarm." }, 1322{ "Enable it in the settings menu, TAB alarm.","Schalten Sie sie an im Menu Einstellungen, TAB Alarm." },
1323{ "Show Sync Events","Zeige Sync-Ereignisse" }, 1323{ "Show Sync Events","Zeige Sync-Ereignisse" },
1324{ "Use short date in WN+Event view","Zeige Kurzdatum in WN+Terminanzeige" }, 1324{ "Use short date in WN+Event view","Zeige Kurzdatum in WN+Terminanzeige" },
1325{ "Number of max.displayed todo prios:","Anzahl max.angezeigter Todo-Prios:" }, 1325{ "Number of max.displayed todo prios:","Anzahl max.angezeigter Todo-Prios:" },
1326{ " on "," am " }, 1326{ " on "," am " },
1327{ "On: ","Am: " }, 1327{ "On: ","Am: " },
1328{ "<i>The recurrence is computed from the start datetime!</i>","<i>Die Wiederholung wird vom Startwert aus berechnet!</i>" }, 1328{ "<i>The recurrence is computed from the start datetime!</i>","<i>Die Wiederholung wird vom Startwert aus berechnet!</i>" },
1329{ "Start/Stop todo...","Starte/Stoppe Todo..." }, 1329{ "Start/Stop todo...","Starte/Stoppe Todo..." },
1330{ "Color for running todos:","Farbe für laufende Todos:" }, 1330{ "Color for running todos:","Farbe für laufende Todos:" },
1331{ "The todo\n%1\nis started.\nDo you want to set\nthe state to stopped?","Das Todo\n%1\nist gestartet.\nWollen Sie es\nauf gestoppt setzen?" }, 1331{ "The todo\n%1\nis started.\nDo you want to set\nthe state to stopped?","Das Todo\n%1\nist gestartet.\nWollen Sie es\nauf gestoppt setzen?" },
1332{ "Todo is started","Todo ist gestartet" }, 1332{ "Todo is started","Todo ist gestartet" },
1333{ "Stop todo","Stoppe Todo" }, 1333{ "Stop todo","Stoppe Todo" },
1334{ "Todo is stopped","Todo ist gestoppt" }, 1334{ "Todo is stopped","Todo ist gestoppt" },
1335{ "Start todo","Starte Todo" }, 1335{ "Start todo","Starte Todo" },
1336{ "The todo\n%1\nis stopped.\nDo you want to set\nthe state to started?","Das Todo\n%1\nist gestoppt.\nWollen Sie es auf\ngestartet setzen?" }, 1336{ "The todo\n%1\nis stopped.\nDo you want to set\nthe state to started?","Das Todo\n%1\nist gestoppt.\nWollen Sie es auf\ngestartet setzen?" },
1337{ "The todo\n%1\nwill be cloned!\nIt has subtodos!\nDo you want to clone\nall subtodos as well?","Das Todo\n%1\nwird geklont!\nEs hat Untertodos!\nMöchten Sie alle\nUntertodos auch klonen?" }, 1337{ "The todo\n%1\nwill be cloned!\nIt has subtodos!\nDo you want to clone\nall subtodos as well?","Das Todo\n%1\nwird geklont!\nEs hat Untertodos!\nMöchten Sie alle\nUntertodos auch klonen?" },
1338{ "Todo has subtodos","Todo hat Untertodos" }, 1338{ "Todo has subtodos","Todo hat Untertodos" },
1339{ "Block popup until mouse button release","Sperre Popup bis Mausknopf losgelassen" }, 1339{ "Block popup until mouse button release","Sperre Popup bis Mausknopf losgelassen" },
1340{ "Colors","Farben" }, 1340{ "Colors","Farben" },
1341{ "Click on new parent item","Klicke auf neues Übertodo" }, 1341{ "Click on new parent item","Klicke auf neues Übertodo" },
1342{ "Reparenting aborted!","Übertodo setzen abgebrochen" }, 1342{ "Reparenting aborted!","Übertodo setzen abgebrochen" },
1343{ "Cannot move Todo to itself\nor a child of itself","Kann nicht Todo auf\nsich selbst oder\nein Untertodo verschieben" }, 1343{ "Cannot move Todo to itself\nor a child of itself","Kann nicht Todo auf\nsich selbst oder\nein Untertodo verschieben" },
1344{ "Recursive reparenting not possible!","Rekursives Verschieben nicht möglich" }, 1344{ "Recursive reparenting not possible!","Rekursives Verschieben nicht möglich" },
1345{ "Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)","Entferne alle erledigten Todos?\n(Erledigte wiederholende Todos\nwerden nicht gelöscht!)" }, 1345{ "Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)","Entferne alle erledigten Todos?\n(Erledigte wiederholende Todos\nwerden nicht gelöscht!)" },
1346{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, 1346{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" },
1347{ "times","Zeiten" }, 1347{ "times","Zeiten" },
1348{ "The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?","Das Todo\n%1\nhat Untertodos!\nMöchten Sie die Kategorien\nauch für alle Untertodos setzen?" }, 1348{ "The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?","Das Todo\n%1\nhat Untertodos!\nMöchten Sie die Kategorien\nauch für alle Untertodos setzen?" },
1349{ "Backup enabled","Backup angeschaltet" }, 1349{ "Backup enabled","Backup angeschaltet" },
1350{ "Use standard backup dir","Standard Backupverzeichnis" }, 1350{ "Use standard backup dir","Standard Backupverzeichnis" },
1351{ "Number of Backups:","Anzahl der Backups" }, 1351{ "Number of Backups:","Anzahl der Backups" },
1352{ "Make backup every ","Mache ein Backup alle " }, 1352{ "Make backup every ","Mache ein Backup alle " },
1353{ " days"," Tage" }, 1353{ " days"," Tage" },
1354{ "Creating backup ... please wait ...","Erstelle Backup ... bitte warten ..." }, 1354{ "Creating backup ... please wait ...","Erstelle Backup ... bitte warten ..." },
1355{ "Backup Failed!","Backup Problem!" }, 1355{ "Backup Failed!","Backup Problem!" },
1356{ "Try again now","Versuche jetzt nochmal" }, 1356{ "Try again now","Versuche jetzt nochmal" },
1357{ "Try again later","Versuche später nochmal" }, 1357{ "Try again later","Versuche später nochmal" },
1358{ "Try again tomorrow","Versuche morgen nochmal" }, 1358{ "Try again tomorrow","Versuche morgen nochmal" },
1359{ "Disable backup","Schalte Backup ab" }, 1359{ "Disable backup","Schalte Backup ab" },
1360{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" }, 1360{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" },
1361{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" }, 1361{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" },
1362{ "Choose action","Wähle Aktion" }, 1362{ "Choose action","Wähle Aktion" },
1363{ "Comment for todo:","Kommentar zum Todo:" }, 1363{ "Comment for todo:","Kommentar zum Todo:" },
1364{ "Stop+note","Stop+Notiz" }, 1364{ "Stop+note","Stop+Notiz" },
1365{ "Agenda view shows completed todos","Agenda Ansicht zeigt erledigte Todos" }, 1365{ "Agenda view shows completed todos","Agenda Ansicht zeigt erledigte Todos" },
1366{ "KO/Pi: Missing alarms!","KO/Pi: Verpasste Alarme!" }, 1366{ "KO/Pi: Missing alarms!","KO/Pi: Verpasste Alarme!" },
1367{ "You missed the alarms for the following events or todos:","Sie verpassten die Alarme für folgende Termine oder Todos:" }, 1367{ "You missed the alarms for the following events or todos:","Sie verpassten die Alarme für folgende Termine oder Todos:" },
1368{ "Print complete list...","Drucke komplette Liste..." }, 1368{ "Print complete list...","Drucke komplette Liste..." },
1369{ "Hide all selected","Verstecke Ausgewählte" }, 1369{ "Hide all selected","Verstecke Ausgewählte" },
1370{ "Add items","hinzufügen" }, 1370{ "Add items","hinzufügen" },
1371{ "One (or more) selected\ntodo has subtodos!\nDo you want to select\nall subtodos of all\nselected todos as well?","Ein (oder mehrere) ausgewähltes\nTodo hat Untertodos!\nMöchten Sie der Auswahlliste\nalle Untertodos von allen\nausgewählten Todos hinzufügen?" }, 1371{ "One (or more) selected\ntodo has subtodos!\nDo you want to select\nall subtodos of all\nselected todos as well?","Ein (oder mehrere) ausgewähltes\nTodo hat Untertodos!\nMöchten Sie der Auswahlliste\nalle Untertodos von allen\nausgewählten Todos hinzufügen?" },
1372{ "Print List View...","Drucke Listenansicht..." }, 1372{ "Print List View...","Drucke Listenansicht..." },
1373{ "You can make a printout of the <b>List View</b> and the list view in the <b>Search Dialog</b>! To do this, please go to the <b>List View/Search Dialog</b>. Right click on the list. Select in the popup menu the entry <b>Print complete list</b>. That prints the list as you see it. You can remove items from the list before printing without deleting the corresponding event/todo! Simply select all items you do not want to print out. Then right click on one of the items and choose <b>Hide selected items</b>. After that you can print the list without these items.","Sie können die <b>Listenansicht</b> und die Listenansicht im <b>Suchdialog</b> ausdrucken! Um das zu machen gehen Sie bitte zur <b>Listenansicht</b> oder zum <b>Suchdialog</b>. Rechtsklicken Sie auf die Liste. Wählen Sie im Popupmenu den Eintrag <b>Drucke komplette Liste</b>. Das druckt die Liste so, wie man sie sieht. Sie können Listeneinträge entfernen ohne die korrespondierenden Ereignisse/Todos zu löschen! Selektieren sie einfach alle Einträge, die sie nicht ausdrucken möchten. Dann Rechtsklicken Sie auf einen Eintrag und wählen <b>Verstecke Selektierte</b>. Danach können Sie die Liste ohne diese Einträge ausdrucken." }, 1373{ "You can make a printout of the <b>List View</b> and the list view in the <b>Search Dialog</b>! To do this, please go to the <b>List View/Search Dialog</b>. Right click on the list. Select in the popup menu the entry <b>Print complete list</b>. That prints the list as you see it. You can remove items from the list before printing without deleting the corresponding event/todo! Simply select all items you do not want to print out. Then right click on one of the items and choose <b>Hide selected items</b>. After that you can print the list without these items.","Sie können die <b>Listenansicht</b> und die Listenansicht im <b>Suchdialog</b> ausdrucken! Um das zu machen gehen Sie bitte zur <b>Listenansicht</b> oder zum <b>Suchdialog</b>. Rechtsklicken Sie auf die Liste. Wählen Sie im Popupmenu den Eintrag <b>Drucke komplette Liste</b>. Das druckt die Liste so, wie man sie sieht. Sie können Listeneinträge entfernen ohne die korrespondierenden Ereignisse/Todos zu löschen! Selektieren sie einfach alle Einträge, die sie nicht ausdrucken möchten. Dann Rechtsklicken Sie auf einen Eintrag und wählen <b>Verstecke Selektierte</b>. Danach können Sie die Liste ohne diese Einträge ausdrucken." },
1374{ "Configure KO/Pi...","Konfiguriere KO/Pi..." }, 1374{ "Configure KO/Pi...","Konfiguriere KO/Pi..." },
1375{ "Global Settings...","Globale Einstellungen..." }, 1375{ "Global Settings...","Globale Einstellungen..." },
1376{ "<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n","<p><b>R</b>: Zeige Resource Ansicht | <b>F</b>: Editiere Filter </p>\n" }, 1376{ "<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n","<p><b>R</b>: Zeige Resource Ansicht | <b>F</b>: Editiere Filter </p>\n" },
1377{ "(disabled)","(abgeschaltet)" }, 1377{ "(disabled)","(abgeschaltet)" },
1378{ "New Calendar","Neuer Kalender" }, 1378{ "New Calendar","Neuer Kalender" },
1379{ "Calendar","Kalender" }, 1379{ "Calendar","Kalender" },
1380{ "Filter selector","Filterauswahl" }, 1380{ "Filter selector","Filterauswahl" },
1381{ "Filtermenu","Filtermenu" }, 1381{ "Filtermenu","Filtermenu" },
1382{ "Toggle Fullscreen","Vollbild umschalten" }, 1382{ "Toggle Fullscreen","Vollbild umschalten" },
1383{ "Toggle Resource View","Resourcenansicht umschalten" }, 1383{ "Toggle Resource View","Resourcenansicht umschalten" },
1384{ "Storage HowTo...","Speicherort HowTo..." }, 1384{ "Storage HowTo...","Speicherort HowTo..." },
1385{ "Timetracking HowTo...","Timetracking HowTo..." }, 1385{ "Timetracking HowTo...","Timetracking HowTo..." },
1386{ "Juni","Juni" }, 1386{ "Juni","Juni" },
1387{ "Juli","Juli" }, 1387{ "Juli","Juli" },
1388{ "ToDo:","ToDo:" }, 1388{ "ToDo:","ToDo:" },
1389{ "Set Calendar","Setze Kalender" }, 1389{ "Set Calendar","Setze Kalender" },
1390{ "Todo: %1","Todo: %1" }, 1390{ "Todo: %1","Todo: %1" },
1391{ ": (Prio ",": (Prio " }, 1391{ ": (Prio ",": (Prio " },
1392{ "Todos","Todos" }, 1392{ "Todos","Todos" },
1393{ "Todo Viewer","Todo Anzeige" }, 1393{ "Todo Viewer","Todo Anzeige" },
1394{ "Todo ","Todo " }, 1394{ "Todo ","Todo " },
1395{ " Calendar \n Resource "," Kalender \n Resource " }, 1395{ " Calendar \n Resource "," Kalender \n Resource " },
1396{ " Color "," Farbe " }, 1396{ " Color "," Farbe " },
1397{ "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!)" }, 1397{ "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!)" },
1398{ "The calendar <b>%1</b> is displaying file <b>%2</b>","Der Kalender <b>%1</b> zeigt die Datei <b>%2</b>" }, 1398{ "The calendar <b>%1</b> is displaying file <b>%2</b>","Der Kalender <b>%1</b> zeigt die Datei <b>%2</b>" },
1399{ "Add new Calendar","Füge Kalender hinzu" }, 1399{ "Add new Calendar","Füge Kalender hinzu" },
1400{ "<b>Name of new calendar:</b>","<b>Name des Kalenders:</b>" }, 1400{ "<b>Name of new calendar:</b>","<b>Name des Kalenders:</b>" },
1401{ "<b>Local ical (*.ics) file:</b>","<b>Lokale ical (*.ics) Datei:</b>" }, 1401{ "<b>Local ical (*.ics) file:</b>","<b>Lokale ical (*.ics) Datei:</b>" },
1402{ "Sorry, the calendar name is empty!","Sorry, der Kalendername ist leer!" }, 1402{ "Sorry, the calendar name is empty!","Sorry, der Kalendername ist leer!" },
1403{ "Sorry, the file name is empty!","Sorry, der Dateiname ist leer!" }, 1403{ "Sorry, the file name is empty!","Sorry, der Dateiname ist leer!" },
1404{ "Error loading calendar file\n%1.","Fehler beim Laden der Kalenderdatei\n%1." }, 1404{ "Error loading calendar file\n%1.","Fehler beim Laden der Kalenderdatei\n%1." },
1405{ "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>" }, 1405{ "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>" },
1406{ "Global application font for all apps:","Globale Schriftart:" }, 1406{ "Global application font for all apps:","Globale Schriftart:" },
1407{ "Application Font","Applikationsschriftart" }, 1407{ "Application Font","Applikationsschriftart" },
1408{ "Kx/Pi","Kx/Pi" }, 1408{ "Kx/Pi","Kx/Pi" },
1409{ "Backup","Backup" }, 1409{ "Backup","Backup" },
1410{ "KDE-Pim Global Settings","KDE-Pim Globale Einstellungen" }, 1410{ "KDE-Pim Global Settings","KDE-Pim Globale Einstellungen" },
1411{ "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!" }, 1411{ "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!" },
1412{ "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!" }, 1412{ "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!" },
1413{ "Choose Color","Wähle Farbe" }, 1413{ "Choose Color","Wähle Farbe" },
1414{ " OK "," OK " }, 1414{ " OK "," OK " },
1415{ " Cancel "," Abbrechen " }, 1415{ " Cancel "," Abbrechen " },
1416{ "Matching items will be added to list","Passende werden zur Liste hinzugefügt" }, 1416{ "Matching items will be added to list","Passende werden zur Liste hinzugefügt" },
1417{ "Matching items will be removed from list","Passende werden von der Liste entfernt" }, 1417{ "Matching items will be removed from list","Passende werden von der Liste entfernt" },
1418{ "Search on displayed list only","Suche auf der dargestellten Liste" }, 1418{ "Search on displayed list only","Suche auf der dargestellten Liste" },
1419{ "List will be cleared before search","Liste wird vor der Suche gelöscht" }, 1419{ "List will be cleared before search","Liste wird vor der Suche gelöscht" },
1420{ "<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>" }, 1420{ "<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>" },
1421{ "%1\nis running!","%1\nist am Laufen!" }, 1421{ "%1\nis running!","%1\nist am Laufen!" },
1422{ "Additional Comment:","Zusätzlicher Kommentar:" }, 1422{ "Additional Comment:","Zusätzlicher Kommentar:" },
1423{ "Stop and save","Stopp und Speichern" }, 1423{ "Stop and save","Stopp und Speichern" },
1424{ "Continue running","Weiter laufen lassen" }, 1424{ "Continue running","Weiter laufen lassen" },
1425{ "Stop - do not save","Stopp - nicht Speichern" }, 1425{ "Stop - do not save","Stopp - nicht Speichern" },
1426{ "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?" }, 1426{ "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?" },
1427{ "Time mismatch!","Zeiten stimmen nicht!" }, 1427{ "Time mismatch!","Zeiten stimmen nicht!" },
1428{ "The start time is\nafter the end time!","Die Startzeit ist\nhinter der Endzeit!" }, 1428{ "The start time is\nafter the end time!","Die Startzeit ist\nhinter der Endzeit!" },
1429{ "Yes, stop todo","Ja, stoppe Todo" }, 1429{ "Yes, stop todo","Ja, stoppe Todo" },
1430{ "Todo stopped - no data saved because runtime was < 15 sec!","Todo gestoppt - nichts gespeichert da Laufzeit < 15 sec!" }, 1430{ "Todo stopped - no data saved because runtime was < 15 sec!","Todo gestoppt - nichts gespeichert da Laufzeit < 15 sec!" },
1431{ "Todo started! Double click again to stop!","Todo gestartet! Doppelklicke um es zu stoppen!" }, 1431{ "Todo started! Double click again to stop!","Todo gestartet! Doppelklicke um es zu stoppen!" },
1432{ "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." }, 1432{ "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." },
1433{ "Spouse","Ehegatte" }, 1433{ "Spouse","Ehegatte" },
1434{ "Notes","Notizen" }, 1434{ "Notes","Notizen" },
1435{ "Messanger","Messanger" }, 1435{ "Messanger","Messanger" },
1436{ "Assistant","Assistent" }, 1436{ "Assistant","Assistent" },
1437{ "Manager","Manager" }, 1437{ "Manager","Manager" },
1438{ "Secrecy","Sichtbar" }, 1438{ "Secrecy","Sichtbar" },
1439{ "male","männlich" }, 1439{ "male","männlich" },
1440{ "female","weiblich" }, 1440{ "female","weiblich" },
1441{ "Hide!","Verbergen!" }, 1441{ "Hide!","Verbergen!" },
1442{ "Show!","Anzeigen!" }, 1442{ "Show!","Anzeigen!" },
1443{ "Details","Details" }, 1443{ "Details","Details" },
1444{ "Profession","Beruf" }, 1444{ "Profession","Beruf" },
1445{ "Children","Kinder" }, 1445{ "Children","Kinder" },
1446{ "Department","Abteilung" }, 1446{ "Department","Abteilung" },
1447{ "Backup cancelled","Backup abgebrochen" }, 1447{ "Backup cancelled","Backup abgebrochen" },
1448{ "Backup globally disabled","Backup global abgeschaltet" }, 1448{ "Backup globally disabled","Backup global abgeschaltet" },
1449{ "Backup succesfully finished","Backup erfolgreich beendet" }, 1449{ "Backup succesfully finished","Backup erfolgreich beendet" },
1450{ "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" }, 1450{ "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" },
1451{ "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" }, 1451{ "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" },
1452{ "Birthdays","Geburtstage" }, 1452{ "Birthdays","Geburtstage" },
1453{ "KO/Pi import information!","KO/Pi Import Information!" }, 1453{ "KO/Pi import information!","KO/Pi Import Information!" },
1454{ "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" }, 1454{ "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" },
1455{ "Cancel - do not start"," Abbrechen - Todo nicht starten" }, 1455{ "Cancel - do not start"," Abbrechen - Todo nicht starten" },
1456{ "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?"" }, 1456{ "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?"" },
1457{ "Reload","Neu laden" }, 1457{ "Reload","Neu laden" },
1458{ "Timezone settings","Zeitzoneneinstellung" }, 1458{ "Timezone settings","Zeitzoneneinstellung" },
1459{ "Title: ","Titel: " }, 1459{ "Title: ","Titel: " },
1460{ "Journal from: ","Journal vom: " }, 1460{ "Journal from: ","Journal vom: " },
1461{ "Journal: %1 from ","Journal: %1 vom " }, 1461{ "Journal: %1 from ","Journal: %1 vom " },
1462{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" }, 1462{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" },
1463{ "Selected Item","Ausgewähltes Item" }, 1463{ "Selected Item","Ausgewähltes Item" },
1464{ "Select Date...","Wähle Datum..." }, 1464{ "Select Date...","Wähle Datum..." },
1465{ "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{ "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:" },
1466{ "Change category list now!","Ändere Kategorieliste jetzt!" }, 1466{ "Change category list now!","Ändere Kategorieliste jetzt!" },
1467{ "Edit category list...","Ändere Kategorieliste..." }, 1467{ "Edit category list...","Ändere Kategorieliste..." },
1468{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" }, 1468{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" },
1469{ "Filepath: ","Dateipfad: " }, 1469{ "Filepath: ","Dateipfad: " },
1470{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" }, 1470{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" },
1471{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" }, 1471{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" },
1472{ "Pending Suspend Alarm","Laufender Suspend Alarm" }, 1472{ "Pending Suspend Alarm","Laufender Suspend Alarm" },
1473{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" }, 1473{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" },
1474{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" }, 1474{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" },
1475{ "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" }, 1475{ "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" },
1476{ "Alarm Options","Alarm Einstellungen" }, 1476{ "Alarm Options","Alarm Einstellungen" },
1477{ "Delete selected...","Lösche Ausgewählte..." }, 1477{ "Delete selected...","Lösche Ausgewählte..." },
1478{ "None","Nichts" }, 1478{ "None","Nichts" },
1479{ "Selection","Auswahl" }, 1479{ "Selection","Auswahl" },
1480{ "Set categories","Setze Kategorien" }, 1480{ "Set categories","Setze Kategorien" },
1481{ "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{ "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!" },
1482{ "Reset","Neu setzen" }, 1482{ "Reset","Neu setzen" },
1483{ "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{ "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)?" },
1484{ "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{ "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" },
1485{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" }, 1485{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" },
1486{ "\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{ "\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" },
1487{ "\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{ "\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" },
1488{ "Edit","Edit" }, 1488{ "Edit","Edit" },
1489{ "Last Modified","Zuletzt geändert" }, 1489{ "Last Modified","Zuletzt geändert" },
1490{ "Journal viewer","Journal Anzeige" }, 1490{ "Journal viewer","Journal Anzeige" },
1491{ "Configure Calendar Files...","Konfiguriere Kalenderdateien..." }, 1491{ "Configure Calendar Files...","Konfiguriere Kalenderdateien..." },
1492{ "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{ "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>." },
1493{ "Hide Completed","Verstecke erledigte Todos" }, 1493{ "Hide Completed","Verstecke erledigte Todos" },
1494{ "Show not Running","Zeige nicht Laufende" }, 1494{ "Show not Running","Zeige nicht Laufende" },
1495{ "Click to add new Todo","Klick für neues Todo!" }, 1495{ "Click to add new Todo","Klick für neues Todo!" },
1496{ "Show next conflict for","Zeige nächsten Konflikt für" }, 1496{ "Show next conflict for","Zeige nächsten Konflikt für" },
1497{ "All events","Alle Termine" }, 1497{ "All events","Alle Termine" },
1498{ "Allday events","Ganztagestermine" }, 1498{ "Allday events","Ganztagestermine" },
1499{ "Events with time","Termine mit Zeit" }, 1499{ "Events with time","Termine mit Zeit" },
1500{ "No conflict found","Kein Konflikt gefunden" }, 1500{ "No conflict found","Kein Konflikt gefunden" },
1501{ "Conflict %1 <-> %2","Konflikt %1 <-> %2" }, 1501{ "Conflict %1 <-> %2","Konflikt %1 <-> %2" },
1502{ "<p><b>Q</b>: Show next date with conflicting events\n ","<p><b>Q</b>: Zeige nächstes Datum mit Terminen im Konflikt\n " }, 1502{ "<p><b>Q</b>: Show next date with conflicting events\n ","<p><b>Q</b>: Zeige nächstes Datum mit Terminen im Konflikt\n " },
1503{ "Week view mode uses row layout","Wochenansicht Modus nutzt Reihenlayout" }, 1503{ "Week view mode uses row layout","Wochenansicht Modus nutzt Reihenlayout" },
1504{ "The event\n%1\nconflicts with event\n%2\nat date\n%3.\n","Der Termin\n%1\nist im Konflikt mit Termin\n%2\nam Datum\n%3.\n" }, 1504{ "The event\n%1\nconflicts with event\n%2\nat date\n%3.\n","Der Termin\n%1\nist im Konflikt mit Termin\n%2\nam Datum\n%3.\n" },
1505{ "KO/Pi Conflict delected","KO/Pi Konflikt erkannt" }, 1505{ "KO/Pi Conflict delected","KO/Pi Konflikt erkannt" },
1506{ "Show date","Zeige Datum" }, 1506{ "Show date","Zeige Datum" },
1507{ "No problem!","Null Problemo!" }, 1507{ "No problem!","Null Problemo!" },
1508{ "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" }, 1508{ "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" },
1509{ "Pi-Sync Port Error","Pi-Sync Port Fehler" }, 1509{ "Pi-Sync Port Error","Pi-Sync Port Fehler" },
1510{ "<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?","<b>Anschalten von Pi-Sync fehlgeschlagen!</b> Fehler beim Ansprechen des Ports %1! Ist bereits eine andere Anwendung dabei diesen Port zu nutzen?" }, 1510{ "<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?","<b>Anschalten von Pi-Sync fehlgeschlagen!</b> Fehler beim Ansprechen des Ports %1! Ist bereits eine andere Anwendung dabei diesen Port zu nutzen?" },
1511{ "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" }, 1511{ "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" },
1512{ "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" }, 1512{ "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" },
1513{ "Pi-Sync Error","Pi-Sync Fehler" }, 1513{ "Pi-Sync Error","Pi-Sync Fehler" },
1514{ "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" }, 1514{ "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" },
1515{ "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" }, 1515{ "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" },
1516{ "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." }, 1516{ "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." },
1517{ "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" }, 1517{ "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" },
1518{ "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" }, 1518{ "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" },
1519{ "Pi-Sync: Connected!","Pi-Sync: Verbunden!" }, 1519{ "Pi-Sync: Connected!","Pi-Sync: Verbunden!" },
1520{ "Receiving file from remote...","Empfange entfernte Datei..." }, 1520{ "Receiving file from remote...","Empfange entfernte Datei..." },
1521{ "Sending back synced file...","Sende synchronisierte Datei zurück..." }, 1521{ "Sending back synced file...","Sende synchronisierte Datei zurück..." },
1522{ "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" }, 1522{ "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" },
1523{ "Do you want to\nclear the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" }, 1523{ "Do you want to\nclear the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" },
1524{ "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." }, 1524{ "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." },
1525{ "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" }, 1525{ "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" },
1526{ "Writing back file ...","Schreibe Datei zurück..." }, 1526{ "Writing back file ...","Schreibe Datei zurück..." },
1527{ "Sending back file ...","Sende Datei zurück..." }, 1527{ "Sending back file ...","Sende Datei zurück..." },
1528{ "Eeek, there I am ticklish!","Hihi, da bin ich kitzlig!" }, 1528{ "Eeek, there I am ticklish!","Hihi, da bin ich kitzlig!" },
1529{ "Created","Angelegt" }, 1529{ "Created","Angelegt" },
1530{ "Last Modified Sub","Zuletzt geändertes Sub" }, 1530{ "Last Modified Sub","Zuletzt geändertes Sub" },
1531{ "","" }, 1531{ "Checking conflicts ... please wait","Überprüfe Konflikte ... bitte warten" },
1532{ "","" }, 1532{ "","" },
1533{ "","" }, 1533{ "","" },
1534{ "","" }, 1534{ "","" },
1535{ "","" }, 1535{ "","" },
1536{ "","" }, 1536{ "","" },
1537{ "","" }, 1537{ "","" },
1538{ "","" }, 1538{ "","" },
1539{ "","" }, 1539{ "","" },
1540{ "","" }, 1540{ "","" },
1541{ "","" }, 1541{ "","" },
1542{ "","" }, 1542{ "","" },
1543{ "","" }, 1543{ "","" },
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index f9685e9..ab69158 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -424,513 +424,515 @@ void CalendarView::init()
424 mRightFrame = new QWidgetStack( rightBox ); 424 mRightFrame = new QWidgetStack( rightBox );
425 rightLayout->addWidget( mRightFrame, 1 ); 425 rightLayout->addWidget( mRightFrame, 1 );
426 426
427 mLeftFrame = mLeftSplitter; 427 mLeftFrame = mLeftSplitter;
428#else 428#else
429 //QWidget *mainBox = new QWidget( this ); 429 //QWidget *mainBox = new QWidget( this );
430 //QWidget *leftFrame = new QWidget( mainBox ); 430 //QWidget *leftFrame = new QWidget( mainBox );
431 //QBoxLayout * mainBoxLayout; 431 //QBoxLayout * mainBoxLayout;
432 if ( KOPrefs::instance()->mVerticalScreen ) { 432 if ( KOPrefs::instance()->mVerticalScreen ) {
433 //mainBoxLayout = new QVBoxLayout(mainBox); 433 //mainBoxLayout = new QVBoxLayout(mainBox);
434 //leftFrameLayout = new QHBoxLayout(leftFrame ); 434 //leftFrameLayout = new QHBoxLayout(leftFrame );
435 mMainFrame = new KDGanttMinimizeSplitter( Qt::Vertical, this ); 435 mMainFrame = new KDGanttMinimizeSplitter( Qt::Vertical, this );
436 mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 436 mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
437 mLeftFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, mMainFrame);; 437 mLeftFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, mMainFrame);;
438 mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 438 mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
439 } else { 439 } else {
440 //mainBoxLayout = new QHBoxLayout(mainBox); 440 //mainBoxLayout = new QHBoxLayout(mainBox);
441 //leftFrameLayout = new QVBoxLayout(leftFrame ); 441 //leftFrameLayout = new QVBoxLayout(leftFrame );
442 mMainFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 442 mMainFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
443 mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Left); 443 mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Left);
444 mLeftFrame = new KDGanttMinimizeSplitter( Qt::Vertical, mMainFrame); 444 mLeftFrame = new KDGanttMinimizeSplitter( Qt::Vertical, mMainFrame);
445 mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 445 mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
446 } 446 }
447 mMainFrame->setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) ); 447 mMainFrame->setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) );
448 //QBoxLayout * leftFrameLayout; 448 //QBoxLayout * leftFrameLayout;
449 topLayout->addWidget( mMainFrame ); 449 topLayout->addWidget( mMainFrame );
450#ifdef DESKTOP_VERSION 450#ifdef DESKTOP_VERSION
451 mDateScrollBar = new QScrollBar ( 1, 365, 1,30, 200,QScrollBar::Horizontal, this ); 451 mDateScrollBar = new QScrollBar ( 1, 365, 1,30, 200,QScrollBar::Horizontal, this );
452 topLayout->addWidget( mDateScrollBar ); 452 topLayout->addWidget( mDateScrollBar );
453 connect( mDateScrollBar, SIGNAL( valueChanged ( int ) ),this, SLOT( scrollBarValue( int )) ); 453 connect( mDateScrollBar, SIGNAL( valueChanged ( int ) ),this, SLOT( scrollBarValue( int )) );
454 if ( QApplication::desktop()->width() < 800 ) 454 if ( QApplication::desktop()->width() < 800 )
455 mDateScrollBar->hide(); 455 mDateScrollBar->hide();
456#endif 456#endif
457 //mainBoxLayout->addWidget (mLeftFrame); 457 //mainBoxLayout->addWidget (mLeftFrame);
458 mDateNavigator = new DateNavigatorContainer( mLeftFrame, 458 mDateNavigator = new DateNavigatorContainer( mLeftFrame,
459 "CalendarView::DateNavigator" ); 459 "CalendarView::DateNavigator" );
460#if 0 460#if 0
461 // FIXME 461 // FIXME
462 mDateNavigator = new KDateNavigator(mLeftFrame, mCalendar, TRUE, 462 mDateNavigator = new KDateNavigator(mLeftFrame, mCalendar, TRUE,
463 "CalendarView::DateNavigator", QDate::currentDate()); 463 "CalendarView::DateNavigator", QDate::currentDate());
464#endif 464#endif
465 // mDateNavigator->blockSignals( true ); 465 // mDateNavigator->blockSignals( true );
466 //leftFrameLayout->addWidget( mDateNavigator ); 466 //leftFrameLayout->addWidget( mDateNavigator );
467 mTodoList = new KOTodoView(mCalendar, mLeftFrame, "todolistsmall"); 467 mTodoList = new KOTodoView(mCalendar, mLeftFrame, "todolistsmall");
468 mFilterView = new KOFilterView(&mFilters,mLeftFrame,"CalendarView::FilterView"); 468 mFilterView = new KOFilterView(&mFilters,mLeftFrame,"CalendarView::FilterView");
469 mCalEditView = new KOCalEditView(mLeftFrame,"CalendarView::CaleditView"); 469 mCalEditView = new KOCalEditView(mLeftFrame,"CalendarView::CaleditView");
470 connect( mCalEditView, SIGNAL( calendarEnabled (int,bool) ),mCalendar, SLOT( setCalendarEnabled(int,bool)) ); 470 connect( mCalEditView, SIGNAL( calendarEnabled (int,bool) ),mCalendar, SLOT( setCalendarEnabled(int,bool)) );
471 connect( mCalEditView, SIGNAL( alarmEnabled(int,bool) ),mCalendar, SLOT( setAlarmEnabled(int,bool)) ); 471 connect( mCalEditView, SIGNAL( alarmEnabled(int,bool) ),mCalendar, SLOT( setAlarmEnabled(int,bool)) );
472 connect( mCalEditView, SIGNAL( calendarReadonly(int,bool) ),this, SLOT( setCalReadOnly(int,bool)) ); 472 connect( mCalEditView, SIGNAL( calendarReadonly(int,bool) ),this, SLOT( setCalReadOnly(int,bool)) );
473 connect( mCalEditView, SIGNAL( setCalendarDefault(int) ),mCalendar, SLOT( setDefaultCalendar(int)) ); 473 connect( mCalEditView, SIGNAL( setCalendarDefault(int) ),mCalendar, SLOT( setDefaultCalendar(int)) );
474 connect( mCalEditView, SIGNAL( setCalendarDefault(int) ),mViewManager, SLOT( setDefaultCalendar(int)) ); 474 connect( mCalEditView, SIGNAL( setCalendarDefault(int) ),mViewManager, SLOT( setDefaultCalendar(int)) );
475 connect( mCalEditView, SIGNAL( removeCalendar(int) ),mCalendar, SLOT( setCalendarRemove(int)) ); 475 connect( mCalEditView, SIGNAL( removeCalendar(int) ),mCalendar, SLOT( setCalendarRemove(int)) );
476 connect( mCalEditView, SIGNAL( calendarAdded(int) ),this, SLOT( addCalendarId(int)) ); 476 connect( mCalEditView, SIGNAL( calendarAdded(int) ),this, SLOT( addCalendarId(int)) );
477 connect( mCalEditView, SIGNAL( needsUpdate() ),this, SLOT( updateView()) ); 477 connect( mCalEditView, SIGNAL( needsUpdate() ),this, SLOT( updateView()) );
478 connect( mCalEditView, SIGNAL( checkCalendar() ),this, SLOT( checkFiles() )); 478 connect( mCalEditView, SIGNAL( checkCalendar() ),this, SLOT( checkFiles() ));
479 connect( mCalEditView, SIGNAL( needsUpdate() ),this, SLOT( updateUnmanagedViews()) ); 479 connect( mCalEditView, SIGNAL( needsUpdate() ),this, SLOT( updateUnmanagedViews()) );
480 480
481 mTodoList->setNavigator( mNavigator ); 481 mTodoList->setNavigator( mNavigator );
482#if 0 482#if 0
483 if ( QApplication::desktop()->width() < 480 ) { 483 if ( QApplication::desktop()->width() < 480 ) {
484 leftFrameLayout->addWidget(mFilterView); 484 leftFrameLayout->addWidget(mFilterView);
485 leftFrameLayout->addWidget(mTodoList, 2 ); 485 leftFrameLayout->addWidget(mTodoList, 2 );
486 486
487 } else { 487 } else {
488 leftFrameLayout->addWidget(mTodoList,2 ); 488 leftFrameLayout->addWidget(mTodoList,2 );
489 leftFrameLayout->addWidget(mFilterView ); 489 leftFrameLayout->addWidget(mFilterView );
490 } 490 }
491#endif 491#endif
492 mFilterView->hide(); 492 mFilterView->hide();
493 mCalEditView->hide(); 493 mCalEditView->hide();
494 QWidget *rightBox = new QWidget( mMainFrame ); 494 QWidget *rightBox = new QWidget( mMainFrame );
495 //mainBoxLayout->addWidget ( rightBox, 10 ); 495 //mainBoxLayout->addWidget ( rightBox, 10 );
496 QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); 496 QBoxLayout *rightLayout = new QVBoxLayout( rightBox );
497 mRightFrame = new QWidgetStack( rightBox ); 497 mRightFrame = new QWidgetStack( rightBox );
498 rightLayout->addWidget( mRightFrame, 10 ); 498 rightLayout->addWidget( mRightFrame, 10 );
499 499
500 //mLeftFrame = (QWidget *)leftFrame; 500 //mLeftFrame = (QWidget *)leftFrame;
501 if ( KOPrefs::instance()->mVerticalScreen ) { 501 if ( KOPrefs::instance()->mVerticalScreen ) {
502 //mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() ); 502 //mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() );
503 //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() ); 503 //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() );
504 //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() ); 504 //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() );
505 //leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() ); 505 //leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() );
506 } else { 506 } else {
507 //mDateNavigator->setFixedWidth( mDateNavigator->sizeHint().width() ); 507 //mDateNavigator->setFixedWidth( mDateNavigator->sizeHint().width() );
508 //mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() ); 508 //mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() );
509 //leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() ); 509 //leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() );
510 } 510 }
511 if ( !KOPrefs::instance()->mShowDateNavigator) 511 if ( !KOPrefs::instance()->mShowDateNavigator)
512 mDateNavigator->hide(); 512 mDateNavigator->hide();
513 //qDebug("Calendarview Size %d %d ", width(), height()); 513 //qDebug("Calendarview Size %d %d ", width(), height());
514#endif 514#endif
515 515
516 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 516 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
517 SLOT( showDates( const KCal::DateList & ) ) ); 517 SLOT( showDates( const KCal::DateList & ) ) );
518 518
519 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 519 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
520 mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); 520 mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) );
521 521
522 522
523 523
524 connect( mDateNavigator, SIGNAL( showMonth( const QDate & ) ), 524 connect( mDateNavigator, SIGNAL( showMonth( const QDate & ) ),
525 mViewManager, SLOT( showMonth( const QDate & ) ) ); 525 mViewManager, SLOT( showMonth( const QDate & ) ) );
526 526
527 connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ), 527 connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ),
528 mNavigator, SLOT( selectWeek( const QDate & ) ) ); 528 mNavigator, SLOT( selectWeek( const QDate & ) ) );
529 529
530 connect( mDateNavigator, SIGNAL( goPrevYear() ), 530 connect( mDateNavigator, SIGNAL( goPrevYear() ),
531 mNavigator, SLOT( selectPreviousYear() ) ); 531 mNavigator, SLOT( selectPreviousYear() ) );
532 connect( mDateNavigator, SIGNAL( goNextYear() ), 532 connect( mDateNavigator, SIGNAL( goNextYear() ),
533 mNavigator, SLOT( selectNextYear() ) ); 533 mNavigator, SLOT( selectNextYear() ) );
534 connect( mDateNavigator, SIGNAL( goPrevMonth() ), 534 connect( mDateNavigator, SIGNAL( goPrevMonth() ),
535 mNavigator, SLOT( selectPreviousMonth() ) ); 535 mNavigator, SLOT( selectPreviousMonth() ) );
536 connect( mDateNavigator, SIGNAL( goNextMonth() ), 536 connect( mDateNavigator, SIGNAL( goNextMonth() ),
537 mNavigator, SLOT( selectNextMonth() ) ); 537 mNavigator, SLOT( selectNextMonth() ) );
538 538
539 connect( mDateNavigator, SIGNAL( goPrevious() ), 539 connect( mDateNavigator, SIGNAL( goPrevious() ),
540 mNavigator, SLOT( selectPrevious() ) ); 540 mNavigator, SLOT( selectPrevious() ) );
541 connect( mDateNavigator, SIGNAL( goNext() ), 541 connect( mDateNavigator, SIGNAL( goNext() ),
542 mNavigator, SLOT( selectNext() ) ); 542 mNavigator, SLOT( selectNext() ) );
543 connect( mDateNavigator, SIGNAL( monthSelected ( int ) ), 543 connect( mDateNavigator, SIGNAL( monthSelected ( int ) ),
544 mNavigator, SLOT( slotMonthSelect( int ) ) ); 544 mNavigator, SLOT( slotMonthSelect( int ) ) );
545 545
546 connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 546 connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
547 mNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); 547 mNavigator, SLOT( selectDates( const KCal::DateList & ) ) );
548#if 0 548#if 0
549 connect( mDateNavigator, SIGNAL( incidenceDropped( Incidence * ) ), 549 connect( mDateNavigator, SIGNAL( incidenceDropped( Incidence * ) ),
550 SLOT( incidenceAdded( Incidence *) ) ); 550 SLOT( incidenceAdded( Incidence *) ) );
551#endif 551#endif
552 // connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView())); 552 // connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView()));
553 553
554 connect( this, SIGNAL( configChanged() ), 554 connect( this, SIGNAL( configChanged() ),
555 mDateNavigator, SLOT( updateConfig() ) ); 555 mDateNavigator, SLOT( updateConfig() ) );
556 556
557 connect( mTodoList, SIGNAL( newTodoSignal() ), 557 connect( mTodoList, SIGNAL( newTodoSignal() ),
558 SLOT( newTodo() ) ); 558 SLOT( newTodo() ) );
559 connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ), 559 connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ),
560 SLOT( newSubTodo( Todo * ) ) ); 560 SLOT( newSubTodo( Todo * ) ) );
561 connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ), 561 connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ),
562 SLOT( editTodo( Todo * ) ) ); 562 SLOT( editTodo( Todo * ) ) );
563 connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ), 563 connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ),
564 SLOT( showTodo( Todo *) ) ); 564 SLOT( showTodo( Todo *) ) );
565 connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ), 565 connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ),
566 SLOT( deleteTodo( Todo *) ) ); 566 SLOT( deleteTodo( Todo *) ) );
567 connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) ); 567 connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) );
568 connect( mTodoList, SIGNAL( purgeCompletedSignal() ), 568 connect( mTodoList, SIGNAL( purgeCompletedSignal() ),
569 SLOT( purgeCompleted() ) ); 569 SLOT( purgeCompleted() ) );
570 connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ), 570 connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ),
571 SIGNAL( todoModified( Todo *, int ) ) ); 571 SIGNAL( todoModified( Todo *, int ) ) );
572 572
573 connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ), 573 connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ),
574 this, SLOT ( cloneIncidence( Incidence * ) ) ); 574 this, SLOT ( cloneIncidence( Incidence * ) ) );
575 connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ), 575 connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ),
576 this, SLOT (cancelIncidence( Incidence * ) ) ); 576 this, SLOT (cancelIncidence( Incidence * ) ) );
577 577
578 connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ), 578 connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ),
579 this, SLOT ( moveIncidence( Incidence * ) ) ); 579 this, SLOT ( moveIncidence( Incidence * ) ) );
580 connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ), 580 connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ),
581 this, SLOT ( beamIncidence( Incidence * ) ) ); 581 this, SLOT ( beamIncidence( Incidence * ) ) );
582 582
583 connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ), 583 connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ),
584 this, SLOT ( todo_unsub( Todo * ) ) ); 584 this, SLOT ( todo_unsub( Todo * ) ) );
585 585
586 connect( mTodoList, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), 586 connect( mTodoList, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ),
587 this, SLOT ( todo_resub( Todo *,Todo * ) ) ); 587 this, SLOT ( todo_resub( Todo *,Todo * ) ) );
588 connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList, 588 connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList,
589 SLOT( updateTodo( Todo *, int ) ) ); 589 SLOT( updateTodo( Todo *, int ) ) );
590 connect( this, SIGNAL( todoModified( Todo *, int )), this, 590 connect( this, SIGNAL( todoModified( Todo *, int )), this,
591 SLOT( changeTodoDisplay( Todo *, int ) ) ); 591 SLOT( changeTodoDisplay( Todo *, int ) ) );
592 592
593 593
594 connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) ); 594 connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) );
595 connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) ); 595 connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) );
596 connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) ); 596 connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) );
597 connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) ); 597 connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) );
598 598
599 599
600 600
601 601
602 602
603 connect(QApplication::clipboard(),SIGNAL(dataChanged()), 603 connect(QApplication::clipboard(),SIGNAL(dataChanged()),
604 SLOT(checkClipboard())); 604 SLOT(checkClipboard()));
605 connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ), 605 connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ),
606 SLOT( processTodoListSelection( Incidence * ) ) ); 606 SLOT( processTodoListSelection( Incidence * ) ) );
607 connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool))); 607 connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool)));
608 608
609 // kdDebug() << "CalendarView::CalendarView() done" << endl; 609 // kdDebug() << "CalendarView::CalendarView() done" << endl;
610 610
611 mDateFrame = new QVBox(0,0,WType_Popup); 611 mDateFrame = new QVBox(0,0,WType_Popup);
612 //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised); 612 //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised);
613 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised ); 613 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised );
614 mDateFrame->setLineWidth(3); 614 mDateFrame->setLineWidth(3);
615 mDateFrame->hide(); 615 mDateFrame->hide();
616 mDateFrame->setCaption( i18n( "Pick a date to display")); 616 mDateFrame->setCaption( i18n( "Pick a date to display"));
617 mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() ); 617 mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() );
618 618
619 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate))); 619 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate)));
620 620
621 mEventEditor = mDialogManager->getEventEditor(); 621 mEventEditor = mDialogManager->getEventEditor();
622 mTodoEditor = mDialogManager->getTodoEditor(); 622 mTodoEditor = mDialogManager->getTodoEditor();
623 623
624 mFlagEditDescription = false; 624 mFlagEditDescription = false;
625 625
626 mSuspendTimer = new QTimer( this ); 626 mSuspendTimer = new QTimer( this );
627 mAlarmTimer = new QTimer( this ); 627 mAlarmTimer = new QTimer( this );
628 mRecheckAlarmTimer = new QTimer( this ); 628 mRecheckAlarmTimer = new QTimer( this );
629 connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) ); 629 connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) );
630 connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) ); 630 connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) );
631 connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) ); 631 connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) );
632 mAlarmDialog = new AlarmDialog( this ); 632 mAlarmDialog = new AlarmDialog( this );
633 connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) ); 633 connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) );
634 mAlarmDialog->setServerNotification( false ); 634 mAlarmDialog->setServerNotification( false );
635 mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime ); 635 mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime );
636 636
637 637
638#ifndef DESKTOP_VERSION 638#ifndef DESKTOP_VERSION
639//US listen for arriving address resultsets 639//US listen for arriving address resultsets
640 connect(ExternalAppHandler::instance(), SIGNAL(receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)), 640 connect(ExternalAppHandler::instance(), SIGNAL(receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)),
641 this, SLOT(insertBirthdays(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&))); 641 this, SLOT(insertBirthdays(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)));
642#endif 642#endif
643 mDateNavigator->setCalendar( mCalendar ); 643 mDateNavigator->setCalendar( mCalendar );
644} 644}
645 645
646 646
647CalendarView::~CalendarView() 647CalendarView::~CalendarView()
648{ 648{
649 // kdDebug() << "~CalendarView()" << endl; 649 // kdDebug() << "~CalendarView()" << endl;
650 //qDebug("CalendarView::~CalendarView() "); 650 //qDebug("CalendarView::~CalendarView() ");
651 delete mDialogManager; 651 delete mDialogManager;
652 delete mViewManager; 652 delete mViewManager;
653 delete mStorage; 653 delete mStorage;
654 delete mDateFrame ; 654 delete mDateFrame ;
655 delete mEventViewerDialog; 655 delete mEventViewerDialog;
656 //kdDebug() << "~CalendarView() done" << endl; 656 //kdDebug() << "~CalendarView() done" << endl;
657} 657}
658void CalendarView::nextConflict( bool all, bool allday ) 658void CalendarView::nextConflict( bool all, bool allday )
659{ 659{
660 660
661 QPtrList<Event> testlist = mCalendar->events(); 661 QPtrList<Event> testlist = mCalendar->events();
662 Event * test = testlist.first(); 662 Event * test = testlist.first();
663 while ( test ) { 663 while ( test ) {
664 test->setTagged( false ); 664 test->setTagged( false );
665 test = testlist.next(); 665 test = testlist.next();
666 } 666 }
667 QTime st ( 0,0,0); 667 QTime st ( 0,0,0);
668 if ( mViewManager->currentView() == mViewManager->agendaView() ) 668 if ( mViewManager->currentView() == mViewManager->agendaView() )
669 st = mViewManager->agendaView()->agenda()->getEndTime(); 669 st = mViewManager->agendaView()->agenda()->getEndTime();
670 //qDebug("time %s ", st.toString().latin1()); 670 //qDebug("time %s ", st.toString().latin1());
671 QDateTime startDT = QDateTime (mNavigator->selectedDates().first(),st); 671 QDateTime startDT = QDateTime (mNavigator->selectedDates().first(),st);
672 QDateTime conflict; 672 QDateTime conflict;
673 QDateTime retVal; 673 QDateTime retVal;
674 bool found = false; 674 bool found = false;
675 Event * cE = 0; 675 Event * cE = 0;
676 Event * cE2 = 0; 676 Event * cE2 = 0;
677 QPtrList<Event> testlist2 = testlist; 677 QPtrList<Event> testlist2 = testlist;
678 test = testlist.first(); 678 test = testlist.first();
679 bool skip = false; 679 bool skip = false;
680 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") );
680 while ( test ) { 681 while ( test ) {
682 qApp->processEvents();
681 skip = false; 683 skip = false;
682 if ( !all ) skip = ( allday != test->doesFloat() ); 684 if ( !all ) skip = ( allday != test->doesFloat() );
683 if ( !skip ) { 685 if ( !skip ) {
684 Event * test2 = testlist2.first(); 686 Event * test2 = testlist2.first();
685 while ( test2 ) { 687 while ( test2 ) {
686 skip = false; 688 skip = false;
687 if ( !all ) skip = ( allday != test2->doesFloat() ); 689 if ( !all ) skip = ( allday != test2->doesFloat() );
688 if ( !skip ) { 690 if ( !skip ) {
689 if ( !test2->isTagged() ) { 691 if ( !test2->isTagged() ) {
690 if ( test->isOverlapping ( test2, &retVal, &startDT ) ) { 692 if ( test->isOverlapping ( test2, &retVal, &startDT ) ) {
691 //qDebug("overlap "); 693 //qDebug("overlap ");
692 if ( ! found ) { 694 if ( ! found ) {
693 if ( retVal >= startDT ) { 695 if ( retVal >= startDT ) {
694 conflict = retVal; 696 conflict = retVal;
695 cE = test; 697 cE = test;
696 cE2 = test2; 698 cE2 = test2;
697 found = true; 699 found = true;
698 } 700 }
699 } else { 701 } else {
700 if ( retVal >= startDT && retVal < conflict ) { 702 if ( retVal >= startDT && retVal < conflict ) {
701 conflict = retVal; 703 conflict = retVal;
702 cE = test; 704 cE = test;
703 cE2 = test2; 705 cE2 = test2;
704 } 706 }
705 } 707 }
706 } 708 }
707 } 709 }
708 } 710 }
709 test2 = testlist2.next(); 711 test2 = testlist2.next();
710 } 712 }
711 } 713 }
712 test->setTagged( true ); 714 test->setTagged( true );
713 test = testlist.next(); 715 test = testlist.next();
714 } 716 }
715 if ( found ) { 717 if ( found ) {
716 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) 718 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 )
717 mViewManager->showDayView(); 719 mViewManager->showDayView();
718 mNavigator->slotDaySelect( conflict.date() ); 720 mNavigator->slotDaySelect( conflict.date() );
719 int hour = conflict.time().hour(); 721 int hour = conflict.time().hour();
720 mViewManager->agendaView()->setStartHour( hour ); 722 mViewManager->agendaView()->setStartHour( hour );
721 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( cE->summary().left( 20 ) ).arg( cE2->summary().left( 20 ) ) ); 723 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( cE->summary().left( 20 ) ).arg( cE2->summary().left( 20 ) ) );
722 return; 724 return;
723 } 725 }
724 726
725 topLevelWidget()->setCaption( i18n("No conflict found") ); 727 topLevelWidget()->setCaption( i18n("No conflict found") );
726 qDebug("No conflict found "); 728 qDebug("No conflict found ");
727 return; 729 return;
728} 730}
729 731
730void CalendarView::conflictAll() 732void CalendarView::conflictAll()
731{ 733{
732 nextConflict ( true, true ); 734 nextConflict ( true, true );
733} 735}
734void CalendarView::conflictAllday() 736void CalendarView::conflictAllday()
735{ 737{
736 nextConflict ( false, true ); 738 nextConflict ( false, true );
737} 739}
738void CalendarView::conflictNotAll() 740void CalendarView::conflictNotAll()
739{ 741{
740 nextConflict ( false, false ); 742 nextConflict ( false, false );
741} 743}
742 744
743void CalendarView::setCalReadOnly( int id, bool readO ) 745void CalendarView::setCalReadOnly( int id, bool readO )
744{ 746{
745 if ( readO ) { 747 if ( readO ) {
746 emit save(); 748 emit save();
747 } 749 }
748 mCalendar->setReadOnly( id, readO ); 750 mCalendar->setReadOnly( id, readO );
749} 751}
750void CalendarView::setScrollBarStep(int val ) 752void CalendarView::setScrollBarStep(int val )
751{ 753{
752#ifdef DESKTOP_VERSION 754#ifdef DESKTOP_VERSION
753 mDateScrollBar->setLineStep ( val ); 755 mDateScrollBar->setLineStep ( val );
754#endif 756#endif
755} 757}
756void CalendarView::scrollBarValue(int val ) 758void CalendarView::scrollBarValue(int val )
757{ 759{
758#ifdef DESKTOP_VERSION 760#ifdef DESKTOP_VERSION
759 if ( QApplication::desktop()->width() < 800 ) return; 761 if ( QApplication::desktop()->width() < 800 ) return;
760 static bool block = false; 762 static bool block = false;
761 if ( block ) return; 763 if ( block ) return;
762 block = true; 764 block = true;
763 int count = mNavigator->selectedDates().count(); 765 int count = mNavigator->selectedDates().count();
764 int day = mNavigator->selectedDates().first().dayOfYear(); 766 int day = mNavigator->selectedDates().first().dayOfYear();
765 int stepdays = val; 767 int stepdays = val;
766 if ( mDateScrollBar->lineStep () <= count ) { 768 if ( mDateScrollBar->lineStep () <= count ) {
767 //val = val/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep(); 769 //val = val/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep();
768 //qDebug("VAL %d ",val ); 770 //qDebug("VAL %d ",val );
769 stepdays = (val-day)/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep(); 771 stepdays = (val-day)/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep();
770 stepdays = day+stepdays; 772 stepdays = day+stepdays;
771 if ( stepdays < 0 ) stepdays = 0; 773 if ( stepdays < 0 ) stepdays = 0;
772 } 774 }
773 if ( stepdays == day ) { 775 if ( stepdays == day ) {
774 block = false; 776 block = false;
775 return; 777 return;
776 } 778 }
777 int year = mNavigator->selectedDates().first().year(); 779 int year = mNavigator->selectedDates().first().year();
778 QDate d ( year,1,1 ); 780 QDate d ( year,1,1 );
779 mNavigator->selectDates( d.addDays( stepdays-1) , count ); 781 mNavigator->selectDates( d.addDays( stepdays-1) , count );
780 block = false; 782 block = false;
781#endif 783#endif
782 784
783} 785}
784void CalendarView::updateView(const QDate &start, const QDate &end) 786void CalendarView::updateView(const QDate &start, const QDate &end)
785{ 787{
786#ifdef DESKTOP_VERSION 788#ifdef DESKTOP_VERSION
787 if ( ! mDateScrollBar->draggingSlider () ) { 789 if ( ! mDateScrollBar->draggingSlider () ) {
788 int dof = start.dayOfYear(); 790 int dof = start.dayOfYear();
789 //qDebug("dof %d day %d val %d ", dof, start.dayOfYear(),mDateScrollBar->value() ); 791 //qDebug("dof %d day %d val %d ", dof, start.dayOfYear(),mDateScrollBar->value() );
790 if ( dof != mDateScrollBar->value() ) { 792 if ( dof != mDateScrollBar->value() ) {
791 mDateScrollBar->blockSignals( true ); 793 mDateScrollBar->blockSignals( true );
792 mDateScrollBar->setValue( start.dayOfYear()); 794 mDateScrollBar->setValue( start.dayOfYear());
793 mDateScrollBar->blockSignals( false ); 795 mDateScrollBar->blockSignals( false );
794 } 796 }
795 } 797 }
796#endif 798#endif
797 mTodoList->updateView(); 799 mTodoList->updateView();
798 mViewManager->updateView(start, end); 800 mViewManager->updateView(start, end);
799 //mDateNavigator->updateView(); 801 //mDateNavigator->updateView();
800} 802}
801 803
802 804
803 805
804void CalendarView::checkFiles() 806void CalendarView::checkFiles()
805{ 807{
806 QString message; 808 QString message;
807 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; 809 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
808 KopiCalendarFile * cal = calendars.first(); 810 KopiCalendarFile * cal = calendars.first();
809 while ( cal ) { 811 while ( cal ) {
810 if ( cal->mErrorOnLoad ) { 812 if ( cal->mErrorOnLoad ) {
811 message += cal->mName +"\n"+KGlobal::formatMessage ( "(" +i18n( "Filepath: ")+ cal->mFileName+")" ,0 )+"\n"; 813 message += cal->mName +"\n"+KGlobal::formatMessage ( "(" +i18n( "Filepath: ")+ cal->mFileName+")" ,0 )+"\n";
812 } 814 }
813 cal = calendars.next(); 815 cal = calendars.next();
814 } 816 }
815 if ( !message.isEmpty() ) { 817 if ( !message.isEmpty() ) {
816 message = KGlobal::formatMessage( i18n("Calendar(s) not loaded:"),0 )+"\n" + message +KGlobal::formatMessage(i18n("You can try to reload the calendar in the Resource View!"),0); 818 message = KGlobal::formatMessage( i18n("Calendar(s) not loaded:"),0 )+"\n" + message +KGlobal::formatMessage(i18n("You can try to reload the calendar in the Resource View!"),0);
817 KMessageBox::error(this,message, i18n("Loding of calendar(s) failed")); 819 KMessageBox::error(this,message, i18n("Loding of calendar(s) failed"));
818 } 820 }
819 QTimer::singleShot( 2000, this, SLOT ( checkAlarms() )); 821 QTimer::singleShot( 2000, this, SLOT ( checkAlarms() ));
820} 822}
821void CalendarView::checkAlarms() 823void CalendarView::checkAlarms()
822{ 824{
823 825
824 826
825 KConfig *config = KOGlobals::config(); 827 KConfig *config = KOGlobals::config();
826 config->setGroup( "AppRun" ); 828 config->setGroup( "AppRun" );
827 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) ); 829 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) );
828 int daysto = dt.daysTo( QDate::currentDate() ); 830 int daysto = dt.daysTo( QDate::currentDate() );
829 int days = config->readNumEntry( "LatestProgramStopDays" , daysto); 831 int days = config->readNumEntry( "LatestProgramStopDays" , daysto);
830 dt = dt.addDays( days ); 832 dt = dt.addDays( days );
831 int secto = dt.secsTo( QDateTime::currentDateTime() ); 833 int secto = dt.secsTo( QDateTime::currentDateTime() );
832 int secs = config->readNumEntry( "LatestProgramStopSecs" , secto) - 30; 834 int secs = config->readNumEntry( "LatestProgramStopSecs" , secto) - 30;
833 //qDebug("KO: Reading program stop %d ", secs); 835 //qDebug("KO: Reading program stop %d ", secs);
834 //secs -= ( 3600 * 24*3 ); // debug only 836 //secs -= ( 3600 * 24*3 ); // debug only
835 QDateTime latest = dt.addSecs ( secs ); 837 QDateTime latest = dt.addSecs ( secs );
836 qDebug("KO: Last termination on %s ", latest.toString().latin1()); 838 qDebug("KO: Last termination on %s ", latest.toString().latin1());
837 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() ); 839 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() );
838 QPtrList<Incidence> el = mCalendar->rawIncidences(); 840 QPtrList<Incidence> el = mCalendar->rawIncidences();
839 QPtrList<Incidence> al; 841 QPtrList<Incidence> al;
840 Incidence* inL = el.first(); 842 Incidence* inL = el.first();
841 QDateTime cur = QDateTime::currentDateTime().addSecs(-59); 843 QDateTime cur = QDateTime::currentDateTime().addSecs(-59);
842 qDebug("KO: Checking alarm until %s ", cur.toString().latin1()); 844 qDebug("KO: Checking alarm until %s ", cur.toString().latin1());
843 while ( inL ) { 845 while ( inL ) {
844 bool ok = false; 846 bool ok = false;
845 int offset = 0; 847 int offset = 0;
846 QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ; 848 QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ;
847 if ( ok ) { 849 if ( ok ) {
848 //qDebug("OK %s",next.toString().latin1()); 850 //qDebug("OK %s",next.toString().latin1());
849 if ( next < cur ) { 851 if ( next < cur ) {
850 al.append( inL ); 852 al.append( inL );
851 //qDebug("found missed alarm: %s ", inL->summary().latin1() ); 853 //qDebug("found missed alarm: %s ", inL->summary().latin1() );
852 } 854 }
853 } 855 }
854 inL = el.next(); 856 inL = el.next();
855 } 857 }
856 if ( al.count() ) { 858 if ( al.count() ) {
857 QDialog* dia = new QDialog( this, "huhu", false, WDestructiveClose | WStyle_StaysOnTop ); 859 QDialog* dia = new QDialog( this, "huhu", false, WDestructiveClose | WStyle_StaysOnTop );
858 dia->setCaption( i18n("KO/Pi: Missing alarms!") ); 860 dia->setCaption( i18n("KO/Pi: Missing alarms!") );
859 QVBoxLayout* lay = new QVBoxLayout( dia ); 861 QVBoxLayout* lay = new QVBoxLayout( dia );
860 lay->setSpacing( 0 ); 862 lay->setSpacing( 0 );
861 lay->setMargin( 0 ); 863 lay->setMargin( 0 );
862 MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest ); 864 MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest );
863 connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) )); 865 connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) ));
864 lay->addWidget( matb ); 866 lay->addWidget( matb );
865 if ( QApplication::desktop()->width() == 480 || QApplication::desktop()->width() == 640 ) { 867 if ( QApplication::desktop()->width() == 480 || QApplication::desktop()->width() == 640 ) {
866 int wid = 210; 868 int wid = 210;
867 int x = QApplication::desktop()->width() - wid - 7; 869 int x = QApplication::desktop()->width() - wid - 7;
868 int y = QApplication::desktop()->height() - wid - 70; 870 int y = QApplication::desktop()->height() - wid - 70;
869 dia->setGeometry ( x,y,wid,wid); 871 dia->setGeometry ( x,y,wid,wid);
870 } else { 872 } else {
871 int si = 220; 873 int si = 220;
872 if ( QApplication::desktop()->width() > 470 ) 874 if ( QApplication::desktop()->width() > 470 )
873 si = 400; 875 si = 400;
874 dia->resize(si,si/2); 876 dia->resize(si,si/2);
875 } 877 }
876 dia->setBackgroundColor( QColor( 255, 255, 255 ) ); 878 dia->setBackgroundColor( QColor( 255, 255, 255 ) );
877 dia->show(); 879 dia->show();
878 880
879 } 881 }
880} 882}
881void CalendarView::showDay( QDate d ) 883void CalendarView::showDay( QDate d )
882{ 884{
883 dateNavigator()->blockSignals( true ); 885 dateNavigator()->blockSignals( true );
884 dateNavigator()->selectDate( d ); 886 dateNavigator()->selectDate( d );
885 dateNavigator()->blockSignals( false ); 887 dateNavigator()->blockSignals( false );
886 mViewManager->showDayView(); 888 mViewManager->showDayView();
887 //dateNavigator()->selectDate( d ); 889 //dateNavigator()->selectDate( d );
888} 890}
889void CalendarView::timerAlarm() 891void CalendarView::timerAlarm()
890{ 892{
891 //qDebug("CalendarView::timerAlarm() "); 893 //qDebug("CalendarView::timerAlarm() ");
892 computeAlarm(mAlarmNotification ); 894 computeAlarm(mAlarmNotification );
893} 895}
894 896
895void CalendarView::suspendAlarm() 897void CalendarView::suspendAlarm()
896{ 898{
897 //qDebug(" CalendarView::suspendAlarm() "); 899 //qDebug(" CalendarView::suspendAlarm() ");
898 computeAlarm(mSuspendAlarmNotification ); 900 computeAlarm(mSuspendAlarmNotification );
899 901
900} 902}
901 903
902void CalendarView::startAlarm( QString mess , QString filename) 904void CalendarView::startAlarm( QString mess , QString filename)
903{ 905{
904 906
905 topLevelWidget()->showNormal(); 907 topLevelWidget()->showNormal();
906 topLevelWidget()->setActiveWindow(); 908 topLevelWidget()->setActiveWindow();
907 topLevelWidget()->raise(); 909 topLevelWidget()->raise();
908 910
909 mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount ); 911 mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount );
910 QTimer::singleShot( 2000, this, SLOT( checkNextTimerAlarm() ) ); 912 QTimer::singleShot( 2000, this, SLOT( checkNextTimerAlarm() ) );
911 913
912} 914}
913 915
914void CalendarView::checkNextTimerAlarm() 916void CalendarView::checkNextTimerAlarm()
915{ 917{
916 mCalendar->checkAlarmForIncidence( 0, true ); 918 mCalendar->checkAlarmForIncidence( 0, true );
917} 919}
918 920
919void CalendarView::computeAlarm( QString msg ) 921void CalendarView::computeAlarm( QString msg )
920{ 922{
921 923
922 QString mess = msg; 924 QString mess = msg;
923 QString mAlarmMessage = mess.mid( 9 ); 925 QString mAlarmMessage = mess.mid( 9 );
924 QString filename = MainWindow::resourcePath(); 926 QString filename = MainWindow::resourcePath();
925 filename += "koalarm.wav"; 927 filename += "koalarm.wav";
926 QString tempfilename; 928 QString tempfilename;
927 if ( mess.left( 13 ) == "suspend_alarm") { 929 if ( mess.left( 13 ) == "suspend_alarm") {
928 bool error = false; 930 bool error = false;
929 int len = mess.mid( 13 ).find("+++"); 931 int len = mess.mid( 13 ).find("+++");
930 if ( len < 2 ) 932 if ( len < 2 )
931 error = true; 933 error = true;
932 else { 934 else {
933 tempfilename = mess.mid( 13, len ); 935 tempfilename = mess.mid( 13, len );
934 if ( !QFile::exists( tempfilename ) ) 936 if ( !QFile::exists( tempfilename ) )
935 error = true; 937 error = true;
936 } 938 }
@@ -2515,524 +2517,522 @@ void CalendarView::writeSettings()
2515 QStringList list ;//= config->readListEntry("MainLayout"); 2517 QStringList list ;//= config->readListEntry("MainLayout");
2516 int x,y,w,h; 2518 int x,y,w,h;
2517 QWidget* wid; 2519 QWidget* wid;
2518 wid = topLevelWidget(); 2520 wid = topLevelWidget();
2519 x = wid->geometry().x(); 2521 x = wid->geometry().x();
2520 y = wid->geometry().y(); 2522 y = wid->geometry().y();
2521 w = wid->width(); 2523 w = wid->width();
2522 h = wid->height(); 2524 h = wid->height();
2523 list.clear(); 2525 list.clear();
2524 list << QString::number( x ); 2526 list << QString::number( x );
2525 list << QString::number( y ); 2527 list << QString::number( y );
2526 list << QString::number( w ); 2528 list << QString::number( w );
2527 list << QString::number( h ); 2529 list << QString::number( h );
2528 config->writeEntry("MainLayout",list ); 2530 config->writeEntry("MainLayout",list );
2529 2531
2530 wid = mEventEditor; 2532 wid = mEventEditor;
2531 x = wid->geometry().x(); 2533 x = wid->geometry().x();
2532 y = wid->geometry().y(); 2534 y = wid->geometry().y();
2533 w = wid->width(); 2535 w = wid->width();
2534 h = wid->height(); 2536 h = wid->height();
2535 list.clear(); 2537 list.clear();
2536 list << QString::number( x ); 2538 list << QString::number( x );
2537 list << QString::number( y ); 2539 list << QString::number( y );
2538 list << QString::number( w ); 2540 list << QString::number( w );
2539 list << QString::number( h ); 2541 list << QString::number( h );
2540 config->writeEntry("EditEventLayout",list ); 2542 config->writeEntry("EditEventLayout",list );
2541 2543
2542 wid = mTodoEditor; 2544 wid = mTodoEditor;
2543 x = wid->geometry().x(); 2545 x = wid->geometry().x();
2544 y = wid->geometry().y(); 2546 y = wid->geometry().y();
2545 w = wid->width(); 2547 w = wid->width();
2546 h = wid->height(); 2548 h = wid->height();
2547 list.clear(); 2549 list.clear();
2548 list << QString::number( x ); 2550 list << QString::number( x );
2549 list << QString::number( y ); 2551 list << QString::number( y );
2550 list << QString::number( w ); 2552 list << QString::number( w );
2551 list << QString::number( h ); 2553 list << QString::number( h );
2552 config->writeEntry("EditTodoLayout",list ); 2554 config->writeEntry("EditTodoLayout",list );
2553 wid = getEventViewerDialog(); 2555 wid = getEventViewerDialog();
2554 x = wid->geometry().x(); 2556 x = wid->geometry().x();
2555 y = wid->geometry().y(); 2557 y = wid->geometry().y();
2556 w = wid->width(); 2558 w = wid->width();
2557 h = wid->height(); 2559 h = wid->height();
2558 list.clear(); 2560 list.clear();
2559 list << QString::number( x ); 2561 list << QString::number( x );
2560 list << QString::number( y ); 2562 list << QString::number( y );
2561 list << QString::number( w ); 2563 list << QString::number( w );
2562 list << QString::number( h ); 2564 list << QString::number( h );
2563 config->writeEntry("ViewerLayout",list ); 2565 config->writeEntry("ViewerLayout",list );
2564 wid = mDialogManager->getSearchDialog(); 2566 wid = mDialogManager->getSearchDialog();
2565 if ( wid ) { 2567 if ( wid ) {
2566 x = wid->geometry().x(); 2568 x = wid->geometry().x();
2567 y = wid->geometry().y(); 2569 y = wid->geometry().y();
2568 w = wid->width(); 2570 w = wid->width();
2569 h = wid->height(); 2571 h = wid->height();
2570 list.clear(); 2572 list.clear();
2571 list << QString::number( x ); 2573 list << QString::number( x );
2572 list << QString::number( y ); 2574 list << QString::number( y );
2573 list << QString::number( w ); 2575 list << QString::number( w );
2574 list << QString::number( h ); 2576 list << QString::number( h );
2575 config->writeEntry("SearchLayout",list ); 2577 config->writeEntry("SearchLayout",list );
2576 } 2578 }
2577#endif 2579#endif
2578 2580
2579 2581
2580 config->sync(); 2582 config->sync();
2581} 2583}
2582 2584
2583void CalendarView::readFilterSettings(KConfig *config) 2585void CalendarView::readFilterSettings(KConfig *config)
2584{ 2586{
2585 // kdDebug() << "CalendarView::readFilterSettings()" << endl; 2587 // kdDebug() << "CalendarView::readFilterSettings()" << endl;
2586 2588
2587 mFilters.clear(); 2589 mFilters.clear();
2588 2590
2589 config->setGroup("General"); 2591 config->setGroup("General");
2590 QStringList filterList = config->readListEntry("CalendarFilters"); 2592 QStringList filterList = config->readListEntry("CalendarFilters");
2591 2593
2592 QStringList::ConstIterator it = filterList.begin(); 2594 QStringList::ConstIterator it = filterList.begin();
2593 QStringList::ConstIterator end = filterList.end(); 2595 QStringList::ConstIterator end = filterList.end();
2594 while(it != end) { 2596 while(it != end) {
2595 // kdDebug() << " filter: " << (*it) << endl; 2597 // kdDebug() << " filter: " << (*it) << endl;
2596 2598
2597 CalFilter *filter; 2599 CalFilter *filter;
2598 filter = new CalFilter(*it); 2600 filter = new CalFilter(*it);
2599 config->setGroup("Filter_" + (*it).utf8()); 2601 config->setGroup("Filter_" + (*it).utf8());
2600 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) ); 2602 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) );
2601 filter->setCriteria(config->readNumEntry("Criteria",0)); 2603 filter->setCriteria(config->readNumEntry("Criteria",0));
2602 filter->setCategoryList(config->readListEntry("CategoryList")); 2604 filter->setCategoryList(config->readListEntry("CategoryList"));
2603 mFilters.append(filter); 2605 mFilters.append(filter);
2604 2606
2605 ++it; 2607 ++it;
2606 } 2608 }
2607 2609
2608 if (mFilters.count() == 0) { 2610 if (mFilters.count() == 0) {
2609 CalFilter *filter = new CalFilter(i18n("Default")); 2611 CalFilter *filter = new CalFilter(i18n("Default"));
2610 mFilters.append(filter); 2612 mFilters.append(filter);
2611 } 2613 }
2612 mFilterView->updateFilters(); 2614 mFilterView->updateFilters();
2613 config->setGroup("FilterView"); 2615 config->setGroup("FilterView");
2614 2616
2615 mFilterView->blockSignals(true); 2617 mFilterView->blockSignals(true);
2616 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled")); 2618 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled"));
2617 mFilterView->setSelectedFilter(config->readEntry("Current Filter")); 2619 mFilterView->setSelectedFilter(config->readEntry("Current Filter"));
2618 mFilterView->blockSignals(false); 2620 mFilterView->blockSignals(false);
2619 // We do it manually to avoid it being done twice by the above calls 2621 // We do it manually to avoid it being done twice by the above calls
2620 updateFilter(); 2622 updateFilter();
2621} 2623}
2622 2624
2623void CalendarView::writeFilterSettings(KConfig *config) 2625void CalendarView::writeFilterSettings(KConfig *config)
2624{ 2626{
2625 // kdDebug() << "CalendarView::writeFilterSettings()" << endl; 2627 // kdDebug() << "CalendarView::writeFilterSettings()" << endl;
2626 2628
2627 QStringList filterList; 2629 QStringList filterList;
2628 2630
2629 CalFilter *filter = mFilters.first(); 2631 CalFilter *filter = mFilters.first();
2630 while(filter) { 2632 while(filter) {
2631 // kdDebug() << " fn: " << filter->name() << endl; 2633 // kdDebug() << " fn: " << filter->name() << endl;
2632 filterList << filter->name(); 2634 filterList << filter->name();
2633 config->setGroup("Filter_" + filter->name().utf8()); 2635 config->setGroup("Filter_" + filter->name().utf8());
2634 config->writeEntry("Criteria",filter->criteria()); 2636 config->writeEntry("Criteria",filter->criteria());
2635 config->writeEntry("CategoryList",filter->categoryList()); 2637 config->writeEntry("CategoryList",filter->categoryList());
2636 filter = mFilters.next(); 2638 filter = mFilters.next();
2637 } 2639 }
2638 config->setGroup("General"); 2640 config->setGroup("General");
2639 config->writeEntry("CalendarFilters",filterList); 2641 config->writeEntry("CalendarFilters",filterList);
2640 2642
2641 config->setGroup("FilterView"); 2643 config->setGroup("FilterView");
2642 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled()); 2644 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled());
2643 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name()); 2645 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name());
2644} 2646}
2645 2647
2646 2648
2647void CalendarView::goToday() 2649void CalendarView::goToday()
2648{ 2650{
2649 if ( mViewManager->currentView()->isMonthView() ) 2651 if ( mViewManager->currentView()->isMonthView() )
2650 mNavigator->selectTodayMonth(); 2652 mNavigator->selectTodayMonth();
2651 else 2653 else
2652 mNavigator->selectToday(); 2654 mNavigator->selectToday();
2653} 2655}
2654 2656
2655void CalendarView::goNext() 2657void CalendarView::goNext()
2656{ 2658{
2657 mNavigator->selectNext(); 2659 mNavigator->selectNext();
2658} 2660}
2659 2661
2660void CalendarView::goPrevious() 2662void CalendarView::goPrevious()
2661{ 2663{
2662 mNavigator->selectPrevious(); 2664 mNavigator->selectPrevious();
2663} 2665}
2664void CalendarView::goNextMonth() 2666void CalendarView::goNextMonth()
2665{ 2667{
2666 mNavigator->selectNextMonth(); 2668 mNavigator->selectNextMonth();
2667} 2669}
2668 2670
2669void CalendarView::goPreviousMonth() 2671void CalendarView::goPreviousMonth()
2670{ 2672{
2671 mNavigator->selectPreviousMonth(); 2673 mNavigator->selectPreviousMonth();
2672} 2674}
2673 2675
2674void CalendarView::updateConfig() 2676void CalendarView::updateConfig()
2675{ 2677{
2676 if ( KOPrefs::instance()->mUseAppColors ) 2678 if ( KOPrefs::instance()->mUseAppColors )
2677 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 2679 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
2678 emit configChanged(); 2680 emit configChanged();
2679 mTodoList->updateConfig(); 2681 mTodoList->updateConfig();
2680 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont); 2682 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont);
2681 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2683 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2682 // To make the "fill window" configurations work 2684 // To make the "fill window" configurations work
2683 //mViewManager->raiseCurrentView(); 2685 //mViewManager->raiseCurrentView();
2684} 2686}
2685 2687
2686 2688
2687void CalendarView::eventChanged(Event *event) 2689void CalendarView::eventChanged(Event *event)
2688{ 2690{
2689 changeEventDisplay(event,KOGlobals::EVENTEDITED); 2691 changeEventDisplay(event,KOGlobals::EVENTEDITED);
2690 //updateUnmanagedViews(); 2692 //updateUnmanagedViews();
2691} 2693}
2692 2694
2693void CalendarView::eventAdded(Event *event) 2695void CalendarView::eventAdded(Event *event)
2694{ 2696{
2695 changeEventDisplay(event,KOGlobals::EVENTADDED); 2697 changeEventDisplay(event,KOGlobals::EVENTADDED);
2696} 2698}
2697 2699
2698void CalendarView::eventToBeDeleted(Event *) 2700void CalendarView::eventToBeDeleted(Event *)
2699{ 2701{
2700 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; 2702 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl;
2701} 2703}
2702 2704
2703void CalendarView::eventDeleted() 2705void CalendarView::eventDeleted()
2704{ 2706{
2705 changeEventDisplay(0,KOGlobals::EVENTDELETED); 2707 changeEventDisplay(0,KOGlobals::EVENTDELETED);
2706} 2708}
2707void CalendarView::changeTodoDisplay(Todo *which, int action) 2709void CalendarView::changeTodoDisplay(Todo *which, int action)
2708{ 2710{
2709 changeIncidenceDisplay((Incidence *)which, action); 2711 changeIncidenceDisplay((Incidence *)which, action);
2710 mDateNavigator->updateView(); //LR 2712 mDateNavigator->updateView(); //LR
2711 //mDialogManager->updateSearchDialog(); 2713 //mDialogManager->updateSearchDialog();
2712 2714
2713 if (which) { 2715 if (which) {
2714 mViewManager->updateWNview(); 2716 mViewManager->updateWNview();
2715 //mTodoList->updateView(); 2717 //mTodoList->updateView();
2716 } 2718 }
2717 2719
2718} 2720}
2719 2721
2720void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 2722void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
2721{ 2723{
2722 updateUnmanagedViews(); 2724 updateUnmanagedViews();
2723 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); 2725 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action );
2724 if ( action == KOGlobals::EVENTDELETED ) { //delete 2726 if ( action == KOGlobals::EVENTDELETED ) { //delete
2725 mCalendar->checkAlarmForIncidence( 0, true ); 2727 mCalendar->checkAlarmForIncidence( 0, true );
2726 if ( mEventViewerDialog ) 2728 if ( mEventViewerDialog )
2727 mEventViewerDialog->hide(); 2729 mEventViewerDialog->hide();
2728 } 2730 }
2729 else 2731 else
2730 mCalendar->checkAlarmForIncidence( which , false ); 2732 mCalendar->checkAlarmForIncidence( which , false );
2731} 2733}
2732 2734
2733// most of the changeEventDisplays() right now just call the view's 2735// most of the changeEventDisplays() right now just call the view's
2734// total update mode, but they SHOULD be recoded to be more refresh-efficient. 2736// total update mode, but they SHOULD be recoded to be more refresh-efficient.
2735void CalendarView::changeEventDisplay(Event *which, int action) 2737void CalendarView::changeEventDisplay(Event *which, int action)
2736{ 2738{
2737 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 2739 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
2738 changeIncidenceDisplay((Incidence *)which, action); 2740 changeIncidenceDisplay((Incidence *)which, action);
2739 static bool clearallviews = false; 2741 static bool clearallviews = false;
2740 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 2742 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
2741 if ( clearallviews ) { 2743 if ( clearallviews ) {
2742 clearAllViews(); 2744 clearAllViews();
2743 clearallviews = false; 2745 clearallviews = false;
2744 } 2746 }
2745 return; 2747 return;
2746 } 2748 }
2747 clearallviews = true; 2749 clearallviews = true;
2748 mDateNavigator->updateView(); 2750 mDateNavigator->updateView();
2749 //mDialogManager->updateSearchDialog(); 2751 //mDialogManager->updateSearchDialog();
2750 if (which) { 2752 if (which) {
2751 // If there is an event view visible update the display 2753 // If there is an event view visible update the display
2752 mViewManager->currentView()->changeEventDisplay(which,action); 2754 mViewManager->currentView()->changeEventDisplay(which,action);
2753 // TODO: check, if update needed 2755 // TODO: check, if update needed
2754 // if (which->getTodoStatus()) { 2756 // if (which->getTodoStatus()) {
2755 mTodoList->updateView(); 2757 mTodoList->updateView();
2756 if ( action != KOGlobals::EVENTDELETED ) { 2758 if ( action != KOGlobals::EVENTDELETED ) {
2757 mConflictingEvent = which ; 2759 mConflictingEvent = which ;
2758 QTimer::singleShot( 1000, this, SLOT ( checkConflictForEvent() ) ); 2760 QTimer::singleShot( 1000, this, SLOT ( checkConflictForEvent() ) );
2759 } 2761 }
2760 // } 2762 // }
2761 } else { 2763 } else {
2762 mViewManager->currentView()->updateView(); 2764 mViewManager->currentView()->updateView();
2763 } 2765 }
2764} 2766}
2765void CalendarView::checkConflictForEvent() 2767void CalendarView::checkConflictForEvent()
2766{ 2768{
2767 2769
2768 if (!KOPrefs::instance()->mConfirm) 2770 if (!KOPrefs::instance()->mConfirm)
2769 return; 2771 return;
2770 if ( ! mConflictingEvent ) return; 2772 if ( ! mConflictingEvent ) return;
2771 if ( mConflictingEvent->isHoliday() || mConflictingEvent->isBirthday() || mConflictingEvent->isAnniversary() ) { 2773 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") );
2772 mConflictingEvent = 0;
2773 return;
2774 }
2775 QPtrList<Event> testlist = mCalendar->events(); 2774 QPtrList<Event> testlist = mCalendar->events();
2776 Event * test = testlist.first(); 2775 Event * test = testlist.first();
2777 QDateTime conflict; 2776 QDateTime conflict;
2778 QDateTime retVal; 2777 QDateTime retVal;
2779 bool found = false; 2778 bool found = false;
2780 Event * cE = 0; 2779 Event * cE = 0;
2781 QDateTime current = QDateTime::currentDateTime(); 2780 QDateTime current = QDateTime::currentDateTime();
2782 while ( test ) { 2781 while ( test ) {
2782 qApp->processEvents();
2783 if ( !test->doesFloat() ) { 2783 if ( !test->doesFloat() ) {
2784 if ( mConflictingEvent->isOverlapping ( test, &retVal, &current ) ) { 2784 if ( mConflictingEvent->isOverlapping ( test, &retVal, &current ) ) {
2785 if ( ! found ) { 2785 if ( ! found ) {
2786 conflict = retVal; 2786 conflict = retVal;
2787 cE = test; 2787 cE = test;
2788 } else { 2788 } else {
2789 if ( retVal < conflict ) { 2789 if ( retVal < conflict ) {
2790 conflict = retVal; 2790 conflict = retVal;
2791 cE = test; 2791 cE = test;
2792 } 2792 }
2793 } 2793 }
2794 found = true; 2794 found = true;
2795 } 2795 }
2796 } 2796 }
2797 test = testlist.next(); 2797 test = testlist.next();
2798 } 2798 }
2799 if ( found ) { 2799 if ( found ) {
2800 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( mConflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ; 2800 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( mConflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ;
2801 qApp->processEvents(); 2801 qApp->processEvents();
2802 int km = KMessageBox::warningContinueCancel(this,mess, 2802 int km = KMessageBox::warningContinueCancel(this,mess,
2803 i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!")); 2803 i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!"));
2804 if ( km != KMessageBox::Continue ) 2804 if ( km != KMessageBox::Continue )
2805 return; 2805 return;
2806 2806
2807 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) 2807 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 )
2808 mViewManager->showDayView(); 2808 mViewManager->showDayView();
2809 mNavigator->slotDaySelect( conflict.date() ); 2809 mNavigator->slotDaySelect( conflict.date() );
2810 int hour = conflict.time().hour(); 2810 int hour = conflict.time().hour();
2811 mViewManager->agendaView()->setStartHour( hour ); 2811 mViewManager->agendaView()->setStartHour( hour );
2812 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( mConflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) ); 2812 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( mConflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) );
2813 } 2813 }
2814 mConflictingEvent = 0; 2814 mConflictingEvent = 0;
2815 return; 2815 return;
2816 2816
2817} 2817}
2818 2818
2819void CalendarView::updateTodoViews() 2819void CalendarView::updateTodoViews()
2820{ 2820{
2821 mTodoList->updateView(); 2821 mTodoList->updateView();
2822 mViewManager->currentView()->updateView(); 2822 mViewManager->currentView()->updateView();
2823 2823
2824} 2824}
2825 2825
2826 2826
2827 2827
2828void CalendarView::clearAllViews() 2828void CalendarView::clearAllViews()
2829{ 2829{
2830 mTodoList->clearList(); 2830 mTodoList->clearList();
2831 mViewManager->clearAllViews(); 2831 mViewManager->clearAllViews();
2832 SearchDialog * sd = mDialogManager->getSearchDialog(); 2832 SearchDialog * sd = mDialogManager->getSearchDialog();
2833 if ( sd ) { 2833 if ( sd ) {
2834 KOListView* kol = sd->listview(); 2834 KOListView* kol = sd->listview();
2835 if ( kol ) 2835 if ( kol )
2836 kol->clearList(); 2836 kol->clearList();
2837 } 2837 }
2838} 2838}
2839void CalendarView::updateView() 2839void CalendarView::updateView()
2840{ 2840{
2841 static bool clearallviews = false; 2841 static bool clearallviews = false;
2842 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 2842 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
2843 if ( clearallviews ) { 2843 if ( clearallviews ) {
2844 clearAllViews(); 2844 clearAllViews();
2845 clearallviews = false; 2845 clearallviews = false;
2846 } 2846 }
2847 return; 2847 return;
2848 } 2848 }
2849 clearallviews = true; 2849 clearallviews = true;
2850 DateList tmpList = mNavigator->selectedDates(); 2850 DateList tmpList = mNavigator->selectedDates();
2851 2851
2852 if ( KOPrefs::instance()->mHideNonStartedTodos ) 2852 if ( KOPrefs::instance()->mHideNonStartedTodos )
2853 mTodoList->updateView(); 2853 mTodoList->updateView();
2854 // We assume that the navigator only selects consecutive days. 2854 // We assume that the navigator only selects consecutive days.
2855 updateView( tmpList.first(), tmpList.last() ); 2855 updateView( tmpList.first(), tmpList.last() );
2856} 2856}
2857 2857
2858void CalendarView::updateUnmanagedViews() 2858void CalendarView::updateUnmanagedViews()
2859{ 2859{
2860 mDateNavigator->updateDayMatrix(); 2860 mDateNavigator->updateDayMatrix();
2861} 2861}
2862 2862
2863int CalendarView::msgItemDelete(const QString name) 2863int CalendarView::msgItemDelete(const QString name)
2864{ 2864{
2865 return KMessageBox::warningContinueCancel(this,name +"\n\n"+ 2865 return KMessageBox::warningContinueCancel(this,name +"\n\n"+
2866 i18n("This item will be\npermanently deleted."), 2866 i18n("This item will be\npermanently deleted."),
2867 i18n("KO/Pi Confirmation"),i18n("Delete")); 2867 i18n("KO/Pi Confirmation"),i18n("Delete"));
2868} 2868}
2869 2869
2870 2870
2871void CalendarView::edit_cut() 2871void CalendarView::edit_cut()
2872{ 2872{
2873 Event *anEvent=0; 2873 Event *anEvent=0;
2874 2874
2875 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2875 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2876 2876
2877 if (mViewManager->currentView()->isEventView()) { 2877 if (mViewManager->currentView()->isEventView()) {
2878 if ( incidence && incidence->typeID() == eventID ) { 2878 if ( incidence && incidence->typeID() == eventID ) {
2879 anEvent = static_cast<Event *>(incidence); 2879 anEvent = static_cast<Event *>(incidence);
2880 } 2880 }
2881 } 2881 }
2882 2882
2883 if (!anEvent) { 2883 if (!anEvent) {
2884 KNotifyClient::beep(); 2884 KNotifyClient::beep();
2885 return; 2885 return;
2886 } 2886 }
2887 DndFactory factory( mCalendar ); 2887 DndFactory factory( mCalendar );
2888 factory.cutIncidence(anEvent); 2888 factory.cutIncidence(anEvent);
2889 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2889 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2890} 2890}
2891 2891
2892void CalendarView::edit_copy() 2892void CalendarView::edit_copy()
2893{ 2893{
2894 Event *anEvent=0; 2894 Event *anEvent=0;
2895 2895
2896 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2896 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2897 2897
2898 if (mViewManager->currentView()->isEventView()) { 2898 if (mViewManager->currentView()->isEventView()) {
2899 if ( incidence && incidence->typeID() == eventID ) { 2899 if ( incidence && incidence->typeID() == eventID ) {
2900 anEvent = static_cast<Event *>(incidence); 2900 anEvent = static_cast<Event *>(incidence);
2901 } 2901 }
2902 } 2902 }
2903 2903
2904 if (!anEvent) { 2904 if (!anEvent) {
2905 KNotifyClient::beep(); 2905 KNotifyClient::beep();
2906 return; 2906 return;
2907 } 2907 }
2908 DndFactory factory( mCalendar ); 2908 DndFactory factory( mCalendar );
2909 factory.copyIncidence(anEvent); 2909 factory.copyIncidence(anEvent);
2910} 2910}
2911 2911
2912void CalendarView::edit_paste() 2912void CalendarView::edit_paste()
2913{ 2913{
2914 QDate date = mNavigator->selectedDates().first(); 2914 QDate date = mNavigator->selectedDates().first();
2915 2915
2916 DndFactory factory( mCalendar ); 2916 DndFactory factory( mCalendar );
2917 Event *pastedEvent = (Event *)factory.pasteIncidence( date ); 2917 Event *pastedEvent = (Event *)factory.pasteIncidence( date );
2918 2918
2919 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); 2919 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED );
2920} 2920}
2921void CalendarView::edit_global_options() 2921void CalendarView::edit_global_options()
2922{ 2922{
2923 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId; 2923 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId;
2924 emit save(); 2924 emit save();
2925 emit saveStopTimer(); 2925 emit saveStopTimer();
2926 mDialogManager->showGlobalOptionsDialog(); 2926 mDialogManager->showGlobalOptionsDialog();
2927 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) { 2927 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) {
2928 emit saveStopTimer(); 2928 emit saveStopTimer();
2929 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, i18n("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!"), 2929 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, i18n("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!"),
2930 i18n("Timezone settings"),i18n("Reload"))) { 2930 i18n("Timezone settings"),i18n("Reload"))) {
2931 qDebug("KO: TZ reload cancelled "); 2931 qDebug("KO: TZ reload cancelled ");
2932 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2932 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2933 return; 2933 return;
2934 } 2934 }
2935 qDebug("KO: Timezone change "); 2935 qDebug("KO: Timezone change ");
2936 loadCalendars(); 2936 loadCalendars();
2937 setModified(true); 2937 setModified(true);
2938 } 2938 }
2939 else 2939 else
2940 qDebug("KO: No tz change "); 2940 qDebug("KO: No tz change ");
2941} 2941}
2942void CalendarView::edit_options() 2942void CalendarView::edit_options()
2943{ 2943{
2944 mDialogManager->showOptionsDialog(); 2944 mDialogManager->showOptionsDialog();
2945} 2945}
2946 2946
2947 2947
2948void CalendarView::slotSelectPickerDate( QDate d) 2948void CalendarView::slotSelectPickerDate( QDate d)
2949{ 2949{
2950 mDateFrame->hide(); 2950 mDateFrame->hide();
2951 if ( mDatePickerMode == 1 ) { 2951 if ( mDatePickerMode == 1 ) {
2952 mNavigator->slotDaySelect( d ); 2952 mNavigator->slotDaySelect( d );
2953 } else if ( mDatePickerMode == 2 ) { 2953 } else if ( mDatePickerMode == 2 ) {
2954 if ( mMoveIncidence->typeID() == todoID ) { 2954 if ( mMoveIncidence->typeID() == todoID ) {
2955 Todo * to = (Todo *) mMoveIncidence; 2955 Todo * to = (Todo *) mMoveIncidence;
2956 QTime tim; 2956 QTime tim;
2957 int len = 0; 2957 int len = 0;
2958 if ( to->hasStartDate() && to->hasDueDate() ) 2958 if ( to->hasStartDate() && to->hasDueDate() )
2959 len = to->dtStart().secsTo( to->dtDue()); 2959 len = to->dtStart().secsTo( to->dtDue());
2960 if ( to->hasDueDate() ) 2960 if ( to->hasDueDate() )
2961 tim = to->dtDue().time(); 2961 tim = to->dtDue().time();
2962 else { 2962 else {
2963 tim = QTime ( 0,0,0 ); 2963 tim = QTime ( 0,0,0 );
2964 to->setFloats( true ); 2964 to->setFloats( true );
2965 to->setHasDueDate( true ); 2965 to->setHasDueDate( true );
2966 } 2966 }
2967 QDateTime dt ( d,tim ); 2967 QDateTime dt ( d,tim );
2968 to->setDtDue( dt ); 2968 to->setDtDue( dt );
2969 2969
2970 if ( to->hasStartDate() ) { 2970 if ( to->hasStartDate() ) {
2971 if ( len>0 ) 2971 if ( len>0 )
2972 to->setDtStart(to->dtDue().addSecs( -len )); 2972 to->setDtStart(to->dtDue().addSecs( -len ));
2973 else 2973 else
2974 if (to->dtStart() > to->dtDue() ) 2974 if (to->dtStart() > to->dtDue() )
2975 to->setDtStart(to->dtDue().addDays( -3 )); 2975 to->setDtStart(to->dtDue().addDays( -3 ));
2976 } 2976 }
2977 2977
2978 todoChanged( to ); 2978 todoChanged( to );
2979 } else if ( mMoveIncidence->typeID() == eventID ) { 2979 } else if ( mMoveIncidence->typeID() == eventID ) {
2980 if ( mMoveIncidence->doesRecur() ) { 2980 if ( mMoveIncidence->doesRecur() ) {
2981#if 0 2981#if 0
2982 // PENDING implement this 2982 // PENDING implement this
2983 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate ); 2983 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate );
2984 mCalendar()->addIncidence( newInc ); 2984 mCalendar()->addIncidence( newInc );
2985 if ( mMoveIncidence->typeID() == todoID ) 2985 if ( mMoveIncidence->typeID() == todoID )
2986 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED ); 2986 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED );
2987 else 2987 else
2988 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED); 2988 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED);
2989 mMoveIncidence = newInc; 2989 mMoveIncidence = newInc;
2990 2990
2991#endif 2991#endif
2992 } 2992 }
2993 QTime tim = mMoveIncidence->dtStart().time(); 2993 QTime tim = mMoveIncidence->dtStart().time();
2994 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 2994 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
2995 QDateTime dt ( d,tim ); 2995 QDateTime dt ( d,tim );
2996 mMoveIncidence->setDtStart( dt ); 2996 mMoveIncidence->setDtStart( dt );
2997 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 2997 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
2998 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 2998 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
2999 } else if ( mMoveIncidence->typeID() == journalID ) { 2999 } else if ( mMoveIncidence->typeID() == journalID ) {
3000 QTime tim = mMoveIncidence->dtStart().time(); 3000 QTime tim = mMoveIncidence->dtStart().time();
3001 QDateTime dt ( d,tim ); 3001 QDateTime dt ( d,tim );
3002 mMoveIncidence->setDtStart( dt ); 3002 mMoveIncidence->setDtStart( dt );
3003 updateView(); 3003 updateView();
3004 } 3004 }
3005 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); 3005 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 );
3006 } 3006 }
3007} 3007}
3008 3008
3009void CalendarView::removeCategories() 3009void CalendarView::removeCategories()
3010{ 3010{
3011 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 3011 QPtrList<Incidence> incList = mCalendar->rawIncidences();
3012 QStringList catList = KOPrefs::instance()->mCustomCategories; 3012 QStringList catList = KOPrefs::instance()->mCustomCategories;
3013 QStringList catIncList; 3013 QStringList catIncList;
3014 QStringList newCatList; 3014 QStringList newCatList;
3015 Incidence* inc = incList.first(); 3015 Incidence* inc = incList.first();
3016 uint i; 3016 uint i;
3017 while ( inc ) { 3017 while ( inc ) {
3018 newCatList.clear(); 3018 newCatList.clear();
3019 catIncList = inc->categories() ; 3019 catIncList = inc->categories() ;
3020 for( i = 0; i< catIncList.count(); ++i ) { 3020 for( i = 0; i< catIncList.count(); ++i ) {
3021 if ( catList.contains (catIncList[i])) 3021 if ( catList.contains (catIncList[i]))
3022 newCatList.append( catIncList[i] ); 3022 newCatList.append( catIncList[i] );
3023 } 3023 }
3024 newCatList.sort(); 3024 newCatList.sort();
3025 inc->setCategories( newCatList.join(",") ); 3025 inc->setCategories( newCatList.join(",") );
3026 inc = incList.next(); 3026 inc = incList.next();
3027 } 3027 }
3028} 3028}
3029 3029
3030int CalendarView::addCategories() 3030int CalendarView::addCategories()
3031{ 3031{
3032 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 3032 QPtrList<Incidence> incList = mCalendar->rawIncidences();
3033 QStringList catList = KOPrefs::instance()->mCustomCategories; 3033 QStringList catList = KOPrefs::instance()->mCustomCategories;
3034 QStringList catIncList; 3034 QStringList catIncList;
3035 Incidence* inc = incList.first(); 3035 Incidence* inc = incList.first();
3036 uint i; 3036 uint i;
3037 int count = 0; 3037 int count = 0;
3038 while ( inc ) { 3038 while ( inc ) {