summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-06-04 09:25:09 (UTC)
committer zautrix <zautrix>2005-06-04 09:25:09 (UTC)
commitd40cf5135c640506011334364274b8ee5df9998b (patch) (unidiff)
tree56895a78e170856ff641dfa13f2f6eb4cc2b3488
parent0e0ac7a92ac2fe052b3e72d49e505a078b05e7f3 (diff)
downloadkdepimpi-d40cf5135c640506011334364274b8ee5df9998b.zip
kdepimpi-d40cf5135c640506011334364274b8ee5df9998b.tar.gz
kdepimpi-d40cf5135c640506011334364274b8ee5df9998b.tar.bz2
fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt2
-rw-r--r--korganizer/calendarview.cpp10
-rw-r--r--korganizer/calendarview.h1
-rw-r--r--korganizer/mainwindow.cpp7
4 files changed, 14 insertions, 6 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index cc8102c..5a27a10 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -605,777 +605,777 @@
605{"Breakfast","Frühstück" }, 605{"Breakfast","Frühstück" },
606{"Competition","Wettkampf" }, 606{"Competition","Wettkampf" },
607{"Dinner","Abendessen" }, 607{"Dinner","Abendessen" },
608{"Education","Erziehung" }, 608{"Education","Erziehung" },
609{"Family","Familie" }, 609{"Family","Familie" },
610{"Favorites","Favoriten" }, 610{"Favorites","Favoriten" },
611{"Festival","Festival" }, 611{"Festival","Festival" },
612{"Fishing","Angeln" }, 612{"Fishing","Angeln" },
613{"Flight","Flug" }, 613{"Flight","Flug" },
614{"Gifts","Geschenk" }, 614{"Gifts","Geschenk" },
615{"Holiday","Feiertag" }, 615{"Holiday","Feiertag" },
616{"Holiday Cards","Ansichtskarten" }, 616{"Holiday Cards","Ansichtskarten" },
617{"Hot Contacts","Heisse Kontakte" }, 617{"Hot Contacts","Heisse Kontakte" },
618{"Hiking","Wandern" }, 618{"Hiking","Wandern" },
619{"Hunting","Jagen" }, 619{"Hunting","Jagen" },
620{"Key Customer","Wichtiger Kunde" }, 620{"Key Customer","Wichtiger Kunde" },
621{"Kids","Kinder" }, 621{"Kids","Kinder" },
622{"Lunch","Mittagessen" }, 622{"Lunch","Mittagessen" },
623{"Meeting","Treffen" }, 623{"Meeting","Treffen" },
624{"Miscellaneous","Verschiedenes" }, 624{"Miscellaneous","Verschiedenes" },
625{"Partner","Partner" }, 625{"Partner","Partner" },
626{"Party","Partie" }, 626{"Party","Partie" },
627{"Personal","Privat" }, 627{"Personal","Privat" },
628{"Personal Travel","Privatreise"}, 628{"Personal Travel","Privatreise"},
629{"PHB","PHB" }, 629{"PHB","PHB" },
630{"Phone Calls","Telefonanruf" }, 630{"Phone Calls","Telefonanruf" },
631{"Projects","Projekt" }, 631{"Projects","Projekt" },
632{"Recurring","Wiederholend" }, 632{"Recurring","Wiederholend" },
633{"School","Schule" }, 633{"School","Schule" },
634{"Shopping","Einkaufen" }, 634{"Shopping","Einkaufen" },
635{"Speach","Rede" }, 635{"Speach","Rede" },
636{"Special Occasion","Spez.Gelegenheit" }, 636{"Special Occasion","Spez.Gelegenheit" },
637{"Sports","Sport" }, 637{"Sports","Sport" },
638{"Talk","Vortrag" }, 638{"Talk","Vortrag" },
639{"Travel","Reise" }, 639{"Travel","Reise" },
640{"TV","TV" }, 640{"TV","TV" },
641{"Germany","Deutschland" }, 641{"Germany","Deutschland" },
642{"Sweden","Schweden" }, 642{"Sweden","Schweden" },
643{"Forest","Wald" }, 643{"Forest","Wald" },
644{ "Desert","Wüste" }, 644{ "Desert","Wüste" },
645{ "Kitchen","Küche" }, 645{ "Kitchen","Küche" },
646{ "Lake","See" }, 646{ "Lake","See" },
647{"University","Universität"}, 647{"University","Universität"},
648{"Vacation","Urlaub" }, 648{"Vacation","Urlaub" },
649{"VIP","VIP" }, 649{"VIP","VIP" },
650{ "Import Sharp Calendar","Importiere Sharp Kalender" }, 650{ "Import Sharp Calendar","Importiere Sharp Kalender" },
651{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" }, 651{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" },
652{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" }, 652{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" },
653{ "Cancelled","Gecancelt" }, 653{ "Cancelled","Gecancelt" },
654{ "Multiple sync","Mehrfach Sync" }, 654{ "Multiple sync","Mehrfach Sync" },
655{ "Local file","Lokale Datei" }, 655{ "Local file","Lokale Datei" },
656{ "Last file","Letzte Datei" }, 656{ "Last file","Letzte Datei" },
657{ "Keys + Colors...","Tasten + Farben..." }, 657{ "Keys + Colors...","Tasten + Farben..." },
658{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" }, 658{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" },
659{ "Quick load/save (w/o Unicode)","Schnelles Laden/Speichern (o Unicode)" }, 659{ "Quick load/save (w/o Unicode)","Schnelles Laden/Speichern (o Unicode)" },
660{ "Choose...","Wähle..." }, 660{ "Choose...","Wähle..." },
661{ "Use colors for application:","Setze Farben für Programm:" }, 661{ "Use colors for application:","Setze Farben für Programm:" },
662{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" }, 662{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" },
663{ "Frames, labels, etc.:","Rahmen, Label, etc.:" }, 663{ "Frames, labels, etc.:","Rahmen, Label, etc.:" },
664{ "Show parent To-Do's","Zeige Ober-Todos" }, 664{ "Show parent To-Do's","Zeige Ober-Todos" },
665{ "Show location","Zeige Orte" }, 665{ "Show location","Zeige Orte" },
666{ "Show events that recur ","Zeige Termine, die sich wiederholen:" }, 666{ "Show events that recur ","Zeige Termine, die sich wiederholen:" },
667{ "Show in every cell ","Zeige in jeder Zelle " }, 667{ "Show in every cell ","Zeige in jeder Zelle " },
668{ "short month","kurzen Monat" }, 668{ "short month","kurzen Monat" },
669{ "icons","Icons" }, 669{ "icons","Icons" },
670{ "Show Sat/Sun together","Zeige Sam/Son zusammen" }, 670{ "Show Sat/Sun together","Zeige Sam/Son zusammen" },
671{ "Category colors are applied to text","Kategorie Farben färben Text" }, 671{ "Category colors are applied to text","Kategorie Farben färben Text" },
672{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" }, 672{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" },
673{ "Day color odd months","Tagesfarbe ungerade Monate" }, 673{ "Day color odd months","Tagesfarbe ungerade Monate" },
674{ "Day color even months","Tagesfarbe gerade Monate" }, 674{ "Day color even months","Tagesfarbe gerade Monate" },
675{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" }, 675{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" },
676{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" }, 676{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" },
677{ "Small To-do view uses smaller font","Kleine To-do Ansicht nutzt kleineren Font" }, 677{ "Small To-do view uses smaller font","Kleine To-do Ansicht nutzt kleineren Font" },
678{ "Colors are applied to text","Farben werden auf Text angewendet" }, 678{ "Colors are applied to text","Farben werden auf Text angewendet" },
679{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" }, 679{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" },
680{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" }, 680{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" },
681{ "Play beeps count:","Anzahl der Alarmpiepse: " }, 681{ "Play beeps count:","Anzahl der Alarmpiepse: " },
682{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " }, 682{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " },
683{ "Default suspend time in min:","Standard Supendierungs Zeit: " }, 683{ "Default suspend time in min:","Standard Supendierungs Zeit: " },
684{ "Auto suspend count:","Anzahl der auto Suspendierungen" }, 684{ "Auto suspend count:","Anzahl der auto Suspendierungen" },
685{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" }, 685{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" },
686{ "New profile","Neues Profil" }, 686{ "New profile","Neues Profil" },
687{ "Clone profile","Klone Profil" }, 687{ "Clone profile","Klone Profil" },
688{ "Delete profile","Lösche Profil" }, 688{ "Delete profile","Lösche Profil" },
689{ "Profile:","Profil:" }, 689{ "Profile:","Profil:" },
690{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" }, 690{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" },
691{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" }, 691{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" },
692{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" }, 692{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" },
693{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" }, 693{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" },
694{ "Write back file","Schreibe Datei zurück" }, 694{ "Write back file","Schreibe Datei zurück" },
695{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" }, 695{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" },
696{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" }, 696{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" },
697{ "Local device name:","Name dieses Gerätes:" }, 697{ "Local device name:","Name dieses Gerätes:" },
698{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" }, 698{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" },
699{ "Sync preferences","Synchronisations Einstellungen" }, 699{ "Sync preferences","Synchronisations Einstellungen" },
700{ "Profile kind","Profil Art" }, 700{ "Profile kind","Profil Art" },
701{ "Local file","Lokale Datei" }, 701{ "Local file","Lokale Datei" },
702{ "Local file:","Lokale Datei:" }, 702{ "Local file:","Lokale Datei:" },
703{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, 703{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" },
704{ "Fill in default values for:","Setze Beispiel Werte ein für:" }, 704{ "Fill in default values for:","Setze Beispiel Werte ein für:" },
705{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, 705{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" },
706{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, 706{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"},
707{ "Device","Gerät:" }, 707{ "Device","Gerät:" },
708{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, 708{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" },
709{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" }, 709{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" },
710{ "Synchronization successful","Synchronisation erfolgreich" }, 710{ "Synchronization successful","Synchronisation erfolgreich" },
711{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, 711{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." },
712{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, 712{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" },
713{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, 713{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" },
714{ "Enter password","Passwort eingeben" }, 714{ "Enter password","Passwort eingeben" },
715{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, 715{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" },
716{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, 716{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." },
717{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, 717{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" },
718{ "Writing back file result: ","Resultat des Dateizurückschreibens: " }, 718{ "Writing back file result: ","Resultat des Dateizurückschreibens: " },
719{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, 719{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" },
720{ "Edit Calendar Filters","Editiere Kalendar Filter" }, 720{ "Edit Calendar Filters","Editiere Kalendar Filter" },
721{ "Enter filter name:","Neuer Filter Name:" }, 721{ "Enter filter name:","Neuer Filter Name:" },
722{ "Add Filter","Filter hinzufügen" }, 722{ "Add Filter","Filter hinzufügen" },
723{ "Question","Frage" }, 723{ "Question","Frage" },
724{ "Filter position: ","Filter Position: " }, 724{ "Filter position: ","Filter Position: " },
725{ "Month View","Monatsansicht" }, 725{ "Month View","Monatsansicht" },
726{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" }, 726{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" },
727{ "KO/Pi config error","KO/Pi Konfig. Fehler" }, 727{ "KO/Pi config error","KO/Pi Konfig. Fehler" },
728{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, 728{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" },
729{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" }, 729{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" },
730{ "Access: ","Zugriff: " }, 730{ "Access: ","Zugriff: " },
731{ "Needs Action","Aktion notwendig" }, 731{ "Needs Action","Aktion notwendig" },
732{ "Accepted","Akzeptiert" }, 732{ "Accepted","Akzeptiert" },
733{ "Declined","Abgelehnt" }, 733{ "Declined","Abgelehnt" },
734{ "Tentative","Vorläufig" }, 734{ "Tentative","Vorläufig" },
735{ "Delegated","Beauftragt" }, 735{ "Delegated","Beauftragt" },
736{ "Completed","Vollständig" }, 736{ "Completed","Vollständig" },
737{ "In Process","In Bearbeitung" }, 737{ "In Process","In Bearbeitung" },
738{ "Participant","Teilnehmer" }, 738{ "Participant","Teilnehmer" },
739{ "Optional Participant","Möglicher Teilnehmer" }, 739{ "Optional Participant","Möglicher Teilnehmer" },
740{ "Observer","Beobachter" }, 740{ "Observer","Beobachter" },
741{ "Chair","Vorsitzender" }, 741{ "Chair","Vorsitzender" },
742{ "Not supported \non desktop!\n","" }, 742{ "Not supported \non desktop!\n","" },
743{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die vertikale Auswahl zum Drucken zu bestimmen,\nbitte einen vertikalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen.\n(Es wird danach direkt der Termin Dialog angezeigt\n - dort bitte auf Abbrechen klicken) " }, 743{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die vertikale Auswahl zum Drucken zu bestimmen,\nbitte einen vertikalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen.\n(Es wird danach direkt der Termin Dialog angezeigt\n - dort bitte auf Abbrechen klicken) " },
744{ "Date range: ","Datums Zeitspanne: " }, 744{ "Date range: ","Datums Zeitspanne: " },
745{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " }, 745{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " },
746{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." }, 746{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." },
747{ "Add / remove events","Add./entferne Termine" }, 747{ "Add / remove events","Add./entferne Termine" },
748{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." }, 748{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." },
749{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." }, 749{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." },
750{ "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, 750{ "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" },
751{ "Overwrite","Überschreiben" }, 751{ "Overwrite","Überschreiben" },
752{ "Sync+save","Syncen+speichern" }, 752{ "Sync+save","Syncen+speichern" },
753{ "Default","Standard" }, 753{ "Default","Standard" },
754{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, 754{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " },
755{ " %d items?"," %d Einträge?" }, 755{ " %d items?"," %d Einträge?" },
756{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" }, 756{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" },
757{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, 757{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" },
758{ "Current","Aktuelle" }, 758{ "Current","Aktuelle" },
759{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" }, 759{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" },
760{ "All","Alle" }, 760{ "All","Alle" },
761{ "Data Loss Warning","Datenverlust Warnung" }, 761{ "Data Loss Warning","Datenverlust Warnung" },
762{ "Proceed","Weitermachen" }, 762{ "Proceed","Weitermachen" },
763{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, 763{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" },
764{ "Filter disabled ","Filter abgeschaltet" }, 764{ "Filter disabled ","Filter abgeschaltet" },
765{ "Filter selected: ","Gewählter Filter: " }, 765{ "Filter selected: ","Gewählter Filter: " },
766{ "Toggle Cancel","Gecancelt ändern" }, 766{ "Toggle Cancel","Gecancelt ändern" },
767{ "&Toggle Cancel","Gecancel&t ändern" }, 767{ "&Toggle Cancel","Gecancel&t ändern" },
768{ "Configure Toolbar","Konfiguriere Toolbar" }, 768{ "Configure Toolbar","Konfiguriere Toolbar" },
769{ "Stretched TB","Gedehnte TB" }, 769{ "Stretched TB","Gedehnte TB" },
770{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, 770{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" },
771{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, 771{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" },
772{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" }, 772{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" },
773{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, 773{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" },
774{ "Imported file successfully","Datei erfolgreich importiert" }, 774{ "Imported file successfully","Datei erfolgreich importiert" },
775{ "Error importing file","Fehler beim Importieren der Datei" }, 775{ "Error importing file","Fehler beim Importieren der Datei" },
776{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, 776{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" },
777{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" }, 777{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" },
778{ "Overwrite!","Überschreiben!" }, 778{ "Overwrite!","Überschreiben!" },
779{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" }, 779{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" },
780{ "Load backup filename","Lade Backup Dateiname" }, 780{ "Load backup filename","Lade Backup Dateiname" },
781{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, 781{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" },
782{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, 782{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" },
783{ "Save backup filename","Speichere Backup Dateiname" }, 783{ "Save backup filename","Speichere Backup Dateiname" },
784{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" }, 784{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" },
785{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 785{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
786{ "Details of attendee","Teilnehmerdetails" }, 786{ "Details of attendee","Teilnehmerdetails" },
787{ "Work phone:\n","Telefon Arbeit:\n" }, 787{ "Work phone:\n","Telefon Arbeit:\n" },
788{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, 788{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" },
789{ "Home phone:\n","Telefon privat:\n" }, 789{ "Home phone:\n","Telefon privat:\n" },
790{ "Mobile home phone:\n","Mobiltelefon privat:\n" }, 790{ "Mobile home phone:\n","Mobiltelefon privat:\n" },
791{ "Email:\n","Email:\n" }, 791{ "Email:\n","Email:\n" },
792{ "Alarm disabled for this item","Alarm deaktiviert für dieses Item" }, 792{ "Alarm disabled for this item","Alarm deaktiviert für dieses Item" },
793{ "Audio Al.: ","Audio Al.: " }, 793{ "Audio Al.: ","Audio Al.: " },
794{ "Proc.Al.: ","Proz.Al.: " }, 794{ "Proc.Al.: ","Proz.Al.: " },
795{ "No sound set","Kein Sound definiert" }, 795{ "No sound set","Kein Sound definiert" },
796{ "*.wav|Wav Files","*.wav|Wav Dateien" }, 796{ "*.wav|Wav Files","*.wav|Wav Dateien" },
797{ "No program set","Kein Programm definiert" }, 797{ "No program set","Kein Programm definiert" },
798{ "Running '%1'","Ausführen '%1'" }, 798{ "Running '%1'","Ausführen '%1'" },
799{ "Playing '%1'","Abspielen '%1'" }, 799{ "Playing '%1'","Abspielen '%1'" },
800{ "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" }, 800{ "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" },
801{ "Load!","Laden!" }, 801{ "Load!","Laden!" },
802{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" }, 802{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" },
803{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" }, 803{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" },
804{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" }, 804{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" },
805{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" }, 805{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" },
806{ "Features + hints...","Eigenschaften + Tipps..." }, 806{ "Features + hints...","Eigenschaften + Tipps..." },
807{ "User translation...","Benutzer Übersetzung..." }, 807{ "User translation...","Benutzer Übersetzung..." },
808{ "Sync HowTo...","Synchronisation HowTo..." }, 808{ "Sync HowTo...","Synchronisation HowTo..." },
809{ "Print calendar...","Drucke Kalender..." }, 809{ "Print calendar...","Drucke Kalender..." },
810{ "Anniversary","Jahrestag" }, 810{ "Anniversary","Jahrestag" },
811{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" }, 811{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" },
812{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" }, 812{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" },
813{ "Next recurrence is on: ","Nächste Wiederholung ist am:" }, 813{ "Next recurrence is on: ","Nächste Wiederholung ist am:" },
814{ "<b>Alarm on: </b>","<b>Alarm am: </b>" }, 814{ "<b>Alarm on: </b>","<b>Alarm am: </b>" },
815{ "<b>Access: </b>","<b>Zugriff: </b>" }, 815{ "<b>Access: </b>","<b>Zugriff: </b>" },
816{ "(%1 min before)","(%1 min vorher)" }, 816{ "(%1 min before)","(%1 min vorher)" },
817{ "<b>Categories: </b>","<b>Kategorien: </b>" }, 817{ "<b>Categories: </b>","<b>Kategorien: </b>" },
818{ "Save Journal/Description...","Speichere Journal/Details..." }, 818{ "Save Journal/Description...","Speichere Journal/Details..." },
819{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." }, 819{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." },
820{ "Continue","Weitermachen" }, 820{ "Continue","Weitermachen" },
821{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" }, 821{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" },
822{ "Attendee:","Teilnehmer:" }, 822{ "Attendee:","Teilnehmer:" },
823{ "Click OK to search ->","Klicke zum Suchen auf OK ->" }, 823{ "Click OK to search ->","Klicke zum Suchen auf OK ->" },
824{ "On day ","Am Tag " }, 824{ "On day ","Am Tag " },
825{ "%1 of ","%1 des Monats" }, 825{ "%1 of ","%1 des Monats" },
826{ "%1 of the year","%1 des Jahres" }, 826{ "%1 of the year","%1 des Jahres" },
827{ "Anonymous","Anonymo" }, 827{ "Anonymous","Anonymo" },
828{ "nobody@nowhere","niemand@nirgendwo" }, 828{ "nobody@nowhere","niemand@nirgendwo" },
829{ "calendar.html","calendar.html" }, 829{ "calendar.html","calendar.html" },
830{ " Local Time"," Locale Zeit" }, 830{ " Local Time"," Locale Zeit" },
831{ "Unknown Name","Unbekannter Name" }, 831{ "Unknown Name","Unbekannter Name" },
832{ "unknown@nowhere","unbekannt@nirgendwo" }, 832{ "unknown@nowhere","unbekannt@nirgendwo" },
833{ "Beam via IR!","Beam via IR!" }, 833{ "Beam via IR!","Beam via IR!" },
834{ "Next Month","Nächster Monat" }, 834{ "Next Month","Nächster Monat" },
835{ "Prio","Prio" }, 835{ "Prio","Prio" },
836{ "Reparent Todo","Mache Sub-Todo" }, 836{ "Reparent Todo","Mache Sub-Todo" },
837{ "tomorrow","morgen" }, 837{ "tomorrow","morgen" },
838{ "today","heute" }, 838{ "today","heute" },
839{ "yesterday","gestern" }, 839{ "yesterday","gestern" },
840{ "Ok","Ok" }, 840{ "Ok","Ok" },
841{ "Ok+Agenda","Ok+Agenda" }, 841{ "Ok+Agenda","Ok+Agenda" },
842{ "Email","Email" }, 842{ "Email","Email" },
843{ "RSVP","RSVP" }, 843{ "RSVP","RSVP" },
844{ "Email:","Email:" }, 844{ "Email:","Email:" },
845{ "Appointment Time ","Termin Zeit " }, 845{ "Appointment Time ","Termin Zeit " },
846{ "2","2" }, 846{ "2","2" },
847{ "3","3" }, 847{ "3","3" },
848{ "4","4" }, 848{ "4","4" },
849{ " 0 %"," 0 %" }, 849{ " 0 %"," 0 %" },
850{ " 20 %"," 20 %" }, 850{ " 20 %"," 20 %" },
851{ " 40 %"," 40 %" }, 851{ " 40 %"," 40 %" },
852{ " 60 %"," 60 %" }, 852{ " 60 %"," 60 %" },
853{ " 80 %"," 80 %" }, 853{ " 80 %"," 80 %" },
854{ "100 %","100 %" }, 854{ "100 %","100 %" },
855{ "Filter","Filter" }, 855{ "Filter","Filter" },
856{ "Configure","Konfiguriere" }, 856{ "Configure","Konfiguriere" },
857{ "What's Next","What's Next" }, 857{ "What's Next","What's Next" },
858{ "Complete calendar...","Kompletten Kalender..." }, 858{ "Complete calendar...","Kompletten Kalender..." },
859{ "Filtered calendar...","Gefilterten Kalender..." }, 859{ "Filtered calendar...","Gefilterten Kalender..." },
860{ "Export to phone","Exportiere zum Handy" }, 860{ "Export to phone","Exportiere zum Handy" },
861{ "Beam receive enabled","Beam Empfang an" }, 861{ "Beam receive enabled","Beam Empfang an" },
862{ "What's new?","Was ist neu?" }, 862{ "What's new?","Was ist neu?" },
863{ "FAQ...","FAQ..." }, 863{ "FAQ...","FAQ..." },
864{ "Licence...","Licence..." }, 864{ "Licence...","Licence..." },
865{ "What's This?","What's This?" }, 865{ "What's This?","What's This?" },
866{ "&Edit...","&Editiere..." }, 866{ "&Edit...","&Editiere..." },
867{ "Oktober","Oktober" }, 867{ "Oktober","Oktober" },
868{ "Title","Titel" }, 868{ "Title","Titel" },
869{ "%1 %","%1 %" }, 869{ "%1 %","%1 %" },
870{ "Enable Pi-Sync","Schalte Pi-Sync an" }, 870{ "Enable Pi-Sync","Schalte Pi-Sync an" },
871{ "Import!","Importiere!" }, 871{ "Import!","Importiere!" },
872{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" }, 872{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" },
873{ "Export to phone options","Export ans Handy Optionen" }, 873{ "Export to phone options","Export ans Handy Optionen" },
874{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, 874{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." },
875{ "I/O device: ","I/O device: " }, 875{ "I/O device: ","I/O device: " },
876{ "Connection: ","Connection: " }, 876{ "Connection: ","Connection: " },
877{ "Model(opt.): ","Model(opt.): " }, 877{ "Model(opt.): ","Model(opt.): " },
878{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" }, 878{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" },
879{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " }, 879{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " },
880{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nTodo/Kalender Daten auf dem Handy!" }, 880{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nTodo/Kalender Daten auf dem Handy!" },
881{ "Export to mobile phone!","Exportiere auf das Handy!" }, 881{ "Export to mobile phone!","Exportiere auf das Handy!" },
882{ "Export complete calendar","Exportiere kompletten Kalender" }, 882{ "Export complete calendar","Exportiere kompletten Kalender" },
883{ "Writing to phone...","Sende Daten ans Handy..." }, 883{ "Writing to phone...","Sende Daten ans Handy..." },
884{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, 884{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" },
885{ "Retry","Nochmal versuchen" }, 885{ "Retry","Nochmal versuchen" },
886{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, 886{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" },
887{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, 887{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" },
888{ "Error exporting to phone!","Fehler beim Export auf das Handy!" }, 888{ "Error exporting to phone!","Fehler beim Export auf das Handy!" },
889{ "Export filtered calendar","Exportiere gefilterten Kalender" }, 889{ "Export filtered calendar","Exportiere gefilterten Kalender" },
890{ "Preferences","Vorlieben" }, 890{ "Preferences","Vorlieben" },
891{ "Global","Global" }, 891{ "Global","Global" },
892{ "Phone","Phone" }, 892{ "Phone","Phone" },
893{ "SMS","SMS" }, 893{ "SMS","SMS" },
894{ "Fax","Fax" }, 894{ "Fax","Fax" },
895{ "Pager","Pager" }, 895{ "Pager","Pager" },
896{ "SIP","SIP" }, 896{ "SIP","SIP" },
897{ "Italian","Italienisch" }, 897{ "Italian","Italienisch" },
898{ "24:00","24:00" }, 898{ "24:00","24:00" },
899{ "12:00am","12:00am" }, 899{ "12:00am","12:00am" },
900{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 900{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
901{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 901{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
902{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 902{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
903{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 903{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
904{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 904{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
905{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 905{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
906{ "Used Mail Client","Benutzter Mail Client" }, 906{ "Used Mail Client","Benutzter Mail Client" },
907{ "Channel:","Channel:" }, 907{ "Channel:","Channel:" },
908{ "Message:","Message:" }, 908{ "Message:","Message:" },
909{ "Parameters:","Parameter:" }, 909{ "Parameters:","Parameter:" },
910{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 910{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
911{ "extra Message:","extra Message:" }, 911{ "extra Message:","extra Message:" },
912{ "extra Parameters:","extra Parameter:" }, 912{ "extra Parameters:","extra Parameter:" },
913{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 913{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
914{ "External Apps.","Externe Appl." }, 914{ "External Apps.","Externe Appl." },
915{ "24 hours","24 Std." }, 915{ "24 hours","24 Std." },
916{ "3 hours","3 Std." }, 916{ "3 hours","3 Std." },
917{ "1 hour","1 Std." }, 917{ "1 hour","1 Std." },
918{ "15 minutes","15 Min." }, 918{ "15 minutes","15 Min." },
919{ "5 minutes","5 Min." }, 919{ "5 minutes","5 Min." },
920{ "1 minute","1 Min." }, 920{ "1 minute","1 Min." },
921{ "23","23" }, 921{ "23","23" },
922{ "Mon 15","Mon 15" }, 922{ "Mon 15","Mon 15" },
923{ "Configure KO","Konfiguriere KO" }, 923{ "Configure KO","Konfiguriere KO" },
924{ "Event text","Termin Text" }, 924{ "Event text","Termin Text" },
925{ "ToDo","Todo" }, 925{ "ToDo","Todo" },
926{ "Today","Heute" }, 926{ "Today","Heute" },
927{ "What's Next View","What's Next Ansicht" }, 927{ "What's Next View","What's Next Ansicht" },
928{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, 928{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" },
929{ "Alarm","Alarm" }, 929{ "Alarm","Alarm" },
930{ "Used %1 Client","Benutzter %1 Client" }, 930{ "Used %1 Client","Benutzter %1 Client" },
931{ "No email client installed","Kein Email Klient installiert" }, 931{ "No email client installed","Kein Email Klient installiert" },
932{ "Userdefined email client","Benutzerdef. Email Klient" }, 932{ "Userdefined email client","Benutzerdef. Email Klient" },
933{ "OM/Pi email client","OM/Pi Email Klient" }, 933{ "OM/Pi email client","OM/Pi Email Klient" },
934{ "Include in multiple ","Beziehe in multiple " }, 934{ "Include in multiple ","Beziehe in multiple " },
935{ "calendar ","Kalender " }, 935{ "calendar ","Kalender " },
936{ "addressbook ","Adressbuch " }, 936{ "addressbook ","Adressbuch " },
937{ "pwmanager","PWmanager" }, 937{ "pwmanager","PWmanager" },
938{ " sync"," Sync ein" }, 938{ " sync"," Sync ein" },
939{ "Write back synced data","Schreibe gesyncte Daten zurück" }, 939{ "Write back synced data","Schreibe gesyncte Daten zurück" },
940{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, 940{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" },
941{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, 941{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" },
942{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, 942{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " },
943{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, 943{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" },
944{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, 944{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" },
945{ "Help...","Hilfe..." }, 945{ "Help...","Hilfe..." },
946{ "Local file Cal:","Lokale Datei Kal:" }, 946{ "Local file Cal:","Lokale Datei Kal:" },
947{ "Local file ABook:","Lokale Datei ABuch:" }, 947{ "Local file ABook:","Lokale Datei ABuch:" },
948{ "Local file PWMgr:","Lokale Datei PWMgr:" }, 948{ "Local file PWMgr:","Lokale Datei PWMgr:" },
949{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, 949{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" },
950{ "Calendar:","Kalender:" }, 950{ "Calendar:","Kalender:" },
951{ "AddressBook:","AdressBuch:" }, 951{ "AddressBook:","AdressBuch:" },
952{ "PWManager:","PWManager:" }, 952{ "PWManager:","PWManager:" },
953{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, 953{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" },
954{ "ssh/scp","ssh/scp" }, 954{ "ssh/scp","ssh/scp" },
955{ "ftp","ftp" }, 955{ "ftp","ftp" },
956{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, 956{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" },
957{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, 957{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" },
958{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, 958{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" },
959{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, 959{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" },
960{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, 960{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" },
961{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, 961{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" },
962{ "KDE-Pim sync config","KDE-Pim sync Konfig" }, 962{ "KDE-Pim sync config","KDE-Pim sync Konfig" },
963{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, 963{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" },
964{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, 964{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" },
965{ "Port number (Default: %1)","Port Nummer (Default: %1)" }, 965{ "Port number (Default: %1)","Port Nummer (Default: %1)" },
966{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, 966{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" },
967{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, 967{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" },
968{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, 968{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" },
969{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, 969{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" },
970{ "Disable Pi-Sync","Schalte Pi-Sync aus" }, 970{ "Disable Pi-Sync","Schalte Pi-Sync aus" },
971{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, 971{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" },
972{ "KDE-Pim Sync","KDE-Pim Sync" }, 972{ "KDE-Pim Sync","KDE-Pim Sync" },
973{ "Multiple profiles","Multi-Sync Profile" }, 973{ "Multiple profiles","Multi-Sync Profile" },
974{ "Device: ","Gerät: " }, 974{ "Device: ","Gerät: " },
975{ "Multiple sync started.","Multi-Sync gestartet." }, 975{ "Multiple sync started.","Multi-Sync gestartet." },
976{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, 976{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" },
977{ "Turn filter on","Schalte Filter an" }, 977{ "Turn filter on","Schalte Filter an" },
978{ "Turn filter off","Schalte Filter aus" }, 978{ "Turn filter off","Schalte Filter aus" },
979{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, 979{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" },
980{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, 980{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" },
981{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, 981{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" },
982{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" }, 982{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" },
983{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" }, 983{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" },
984{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" }, 984{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" },
985{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" }, 985{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" },
986{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" }, 986{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" },
987{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" }, 987{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" },
988{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, 988{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" },
989{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, 989{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" },
990{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" }, 990{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" },
991{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, 991{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" },
992{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, 992{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" },
993{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" }, 993{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" },
994{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" }, 994{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" },
995{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, 995{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" },
996{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" }, 996{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" },
997{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, 997{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" },
998{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" }, 998{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" },
999{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" }, 999{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" },
1000{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" }, 1000{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" },
1001{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" }, 1001{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" },
1002{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, 1002{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" },
1003{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" }, 1003{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" },
1004{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, 1004{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" },
1005{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, 1005{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" },
1006{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, 1006{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" },
1007{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, 1007{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" },
1008{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, 1008{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" },
1009{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, 1009{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" },
1010{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, 1010{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" },
1011{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, 1011{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" },
1012{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, 1012{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" },
1013{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, 1013{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" },
1014{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, 1014{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" },
1015{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, 1015{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" },
1016{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" }, 1016{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" },
1017{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, 1017{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" },
1018{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, 1018{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" },
1019{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" }, 1019{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" },
1020{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" }, 1020{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" },
1021{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" }, 1021{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" },
1022{ "<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ","<p><b>X</b>: Nächste-X-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " }, 1022{ "<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ","<p><b>X</b>: Nächste-X-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " },
1023{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" }, 1023{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" },
1024{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" }, 1024{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" },
1025{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" }, 1025{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" },
1026{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" }, 1026{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" },
1027{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" }, 1027{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" },
1028{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" }, 1028{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" },
1029{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, 1029{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" },
1030{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" }, 1030{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" },
1031{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, 1031{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" },
1032{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, 1032{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" },
1033{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, 1033{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" },
1034{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" }, 1034{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" },
1035{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" }, 1035{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" },
1036{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" }, 1036{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" },
1037{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" }, 1037{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" },
1038{ "KO/Pi FAQ","KO/Pi FAQ" }, 1038{ "KO/Pi FAQ","KO/Pi FAQ" },
1039{ "PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n","PDA-Edition\nfür: Zaurus 5x00/7x0/860/3000/6000\n" }, 1039{ "PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n","PDA-Edition\nfür: Zaurus 5x00/7x0/860/3000/6000\n" },
1040{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" }, 1040{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" },
1041{ "About KOrganizer/Pi","Über KOrganizer/Pi" }, 1041{ "About KOrganizer/Pi","Über KOrganizer/Pi" },
1042{ "From: ","Von: " }, 1042{ "From: ","Von: " },
1043{ "Remove sync info","Entferne Sync Info" }, 1043{ "Remove sync info","Entferne Sync Info" },
1044{ "For all profiles","Für alle Profile" }, 1044{ "For all profiles","Für alle Profile" },
1045{ "Hide not Running","Verstecke nicht Laufende" }, 1045{ "Hide not Running","Verstecke nicht Laufende" },
1046{ "ME","ME" }, 1046{ "ME","ME" },
1047{ "Toolbar","Toolbar" }, 1047{ "Toolbar","Toolbar" },
1048{ "Undo Delete...","Löschen rückgängig machen..." }, 1048{ "Undo Delete...","Löschen rückgängig machen..." },
1049{ "Undo Delete","Löschen rückgängig machen" }, 1049{ "Undo Delete","Löschen rückgängig machen" },
1050{ "KDE Sync HowTo...","KDE Sync HowTo..." }, 1050{ "KDE Sync HowTo...","KDE Sync HowTo..." },
1051{ "Multi Sync HowTo...","Multi Sync HowTo..." }, 1051{ "Multi Sync HowTo...","Multi Sync HowTo..." },
1052{ "Januar","Januar" }, 1052{ "Januar","Januar" },
1053{ "KO/Pi Keys + Colors","KO/Pi Tasten + Farben" }, 1053{ "KO/Pi Keys + Colors","KO/Pi Tasten + Farben" },
1054{ "No Filter","Kein Filter" }, 1054{ "No Filter","Kein Filter" },
1055{ "Multiple Sync options","Multi Sync Optionen" }, 1055{ "Multiple Sync options","Multi Sync Optionen" },
1056{ "Sync algo options","Sync Ablauf Optionen" }, 1056{ "Sync algo options","Sync Ablauf Optionen" },
1057{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" }, 1057{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" },
1058{ "Incoming calendar filter:","Eingehender Kalender Filter:" }, 1058{ "Incoming calendar filter:","Eingehender Kalender Filter:" },
1059{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" }, 1059{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" },
1060{ "Write back options","Optionen zum Zurückschreiben" }, 1060{ "Write back options","Optionen zum Zurückschreiben" },
1061{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" }, 1061{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" },
1062{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" }, 1062{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" },
1063{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" }, 1063{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" },
1064{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" }, 1064{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" },
1065{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" }, 1065{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" },
1066{ "Time period","Zeitspanne" }, 1066{ "Time period","Zeitspanne" },
1067{ "From ","Von " }, 1067{ "From ","Von " },
1068{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " }, 1068{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " },
1069{ " weeks in the future "," Wochen in der Zukunft " }, 1069{ " weeks in the future "," Wochen in der Zukunft " },
1070{ "Profile kind specific settings","Profil Art abhängige Einstellungen" }, 1070{ "Profile kind specific settings","Profil Art abhängige Einstellungen" },
1071{ "Local temp file:","Lokale temp Datei:" }, 1071{ "Local temp file:","Lokale temp Datei:" },
1072{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" }, 1072{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" },
1073{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" }, 1073{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" },
1074{ "Language","Sprache" }, 1074{ "Language","Sprache" },
1075{ "Time Format","Zeit Format" }, 1075{ "Time Format","Zeit Format" },
1076{ "Time Zone","Zeit Zone" }, 1076{ "Time Zone","Zeit Zone" },
1077{ "%1 groups subscribed","%1 Guppen abboniert" }, 1077{ "%1 groups subscribed","%1 Guppen abboniert" },
1078{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Aktuelles Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverz.)/apps/kopiemail/localmail" }, 1078{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Aktuelles Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverz.)/apps/kopiemail/localmail" },
1079{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" }, 1079{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" },
1080{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" }, 1080{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" },
1081{ "Save settings","Speichere Einstellungen" }, 1081{ "Save settings","Speichere Einstellungen" },
1082{ "Save standard","Speichere Standard" }, 1082{ "Save standard","Speichere Standard" },
1083{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" }, 1083{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" },
1084{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" }, 1084{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" },
1085{ "Data storage path","Daten Speicherpfad" }, 1085{ "Data storage path","Daten Speicherpfad" },
1086{ "Language","Sprache" }, 1086{ "Language","Sprache" },
1087{ "Show time in agenda items","Zeige Zeit in Agenda Items" }, 1087{ "Show time in agenda items","Zeige Zeit in Agenda Items" },
1088{ "Color for Sundays + category "Holiday"","Farbe für Sonntags + Kategorie "Feiertag"" }, 1088{ "Color for Sundays + category "Holiday"","Farbe für Sonntags + Kategorie "Feiertag"" },
1089{ "Show events that are done","Zeige abgelaufene Termine" }, 1089{ "Show events that are done","Zeige abgelaufene Termine" },
1090{ "Hide not running Todos in To-do view","Verstecke nicht laufende Todos" }, 1090{ "Hide not running Todos in To-do view","Verstecke nicht laufende Todos" },
1091{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" }, 1091{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" },
1092{ "KO/Pi","KO/Pi" }, 1092{ "KO/Pi","KO/Pi" },
1093{ "There is nothing to undo!","Es gibt nichts zum\nRückgängigmachen!" }, 1093{ "There is nothing to undo!","Es gibt nichts zum\nRückgängigmachen!" },
1094{ "Recreating edit dialog. Please wait...","Recreating edit dialog. Please wait..." }, 1094{ "Recreating edit dialog. Please wait...","Recreating edit dialog. Please wait..." },
1095{ "Sound.Al.: ","Sound.Al.: " }, 1095{ "Sound.Al.: ","Sound.Al.: " },
1096{ "From: %1 To: %2 %3","Von: %1 Bis: %2 %3" }, 1096{ "From: %1 To: %2 %3","Von: %1 Bis: %2 %3" },
1097{ "Restore","Wiederherstellen" }, 1097{ "Restore","Wiederherstellen" },
1098{ "\nAre you sure you want\nto restore this?","\nMöchten Sie das wirklicht\nwiederherstellen?" }, 1098{ "\nAre you sure you want\nto restore this?","\nMöchten Sie das wirklicht\nwiederherstellen?" },
1099{ "% completed","% erledigt" }, 1099{ "% completed","% erledigt" },
1100{ "%d item(s) found.","%d Item(s) gefunden." }, 1100{ "%d item(s) found.","%d Item(s) gefunden." },
1101{ "Set complete","Setze auf erledigt" }, 1101{ "Set complete","Setze auf erledigt" },
1102{ "(cancelled)","(gecancelt)" }, 1102{ "(cancelled)","(gecancelt)" },
1103{ "Click on the week number to\nshow week in agenda view","Klicke auf die Wochennummer\num die Woche in der Agenda anzuzeigen" }, 1103{ "Click on the week number to\nshow week in agenda view","Klicke auf die Wochennummer\num die Woche in der Agenda anzuzeigen" },
1104{ " Local time "," Locale Zeit " }, 1104{ " Local time "," Locale Zeit " },
1105{ "Form2","Form2" }, 1105{ "Form2","Form2" },
1106{ "Filter enabled","Filter angeschaltet" }, 1106{ "Filter enabled","Filter angeschaltet" },
1107{ "Edit Filters","Ändere Filter" }, 1107{ "Edit Filters","Ändere Filter" },
1108{ "Print What's Next View...","Drucke What's Next Ansicht..." }, 1108{ "Print What's Next View...","Drucke What's Next Ansicht..." },
1109{ "Agenda","Agenda" }, 1109{ "Agenda","Agenda" },
1110{ " ("," (" }, 1110{ " ("," (" },
1111{ "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" }, 1111{ "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" },
1112{ "Print","Print" }, 1112{ "Print","Print" },
1113{ "&Setup Printer...","Drucker &Setup..." }, 1113{ "&Setup Printer...","Drucker &Setup..." },
1114{ "View Type","Zeige Typ" }, 1114{ "View Type","Zeige Typ" },
1115{ "Page &orientation:","Seiten Ausrichtung:" }, 1115{ "Page &orientation:","Seiten Ausrichtung:" },
1116{ "Use Default of Selected Style","Default des selektierten Stils" }, 1116{ "Use Default of Selected Style","Default des selektierten Stils" },
1117{ "Use Default Setting of Printer","Default Einstellung des Druckers" }, 1117{ "Use Default Setting of Printer","Default Einstellung des Druckers" },
1118{ "Portrait","Portrait" }, 1118{ "Portrait","Portrait" },
1119{ "Landscape","Landschaft" }, 1119{ "Landscape","Landschaft" },
1120{ "Print day","Drucke Tag" }, 1120{ "Print day","Drucke Tag" },
1121{ "CalPrintDay_Base","CalPrintDay_Base" }, 1121{ "CalPrintDay_Base","CalPrintDay_Base" },
1122{ "Date && Time Range","Datum && Zeitspanne" }, 1122{ "Date && Time Range","Datum && Zeitspanne" },
1123{ "&End date:","&Enddatum:" }, 1123{ "&End date:","&Enddatum:" },
1124{ "&Start date:","&Startdatum:" }, 1124{ "&Start date:","&Startdatum:" },
1125{ "Start &time:","Startzeit:" }, 1125{ "Start &time:","Startzeit:" },
1126{ "End ti&me:","Endzeit:" }, 1126{ "End ti&me:","Endzeit:" },
1127{ "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" }, 1127{ "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" },
1128{ "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" }, 1128{ "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" },
1129{ "Alt+D","Alt+D" }, 1129{ "Alt+D","Alt+D" },
1130{ "&Use colors","Nutze Farben" }, 1130{ "&Use colors","Nutze Farben" },
1131{ "Alt+U","Alt+U" }, 1131{ "Alt+U","Alt+U" },
1132{ "Print week","Drucke Woche" }, 1132{ "Print week","Drucke Woche" },
1133{ "CalPrintWeek_Base","CalPrintWeek_Base" }, 1133{ "CalPrintWeek_Base","CalPrintWeek_Base" },
1134{ "Use &colors","Nutze Farben" }, 1134{ "Use &colors","Nutze Farben" },
1135{ "Type of View","Typ der Ansicht" }, 1135{ "Type of View","Typ der Ansicht" },
1136{ "Print as &Filofax page","Drucke als &Filofax Seite" }, 1136{ "Print as &Filofax page","Drucke als &Filofax Seite" },
1137{ "Alt+F","Alt+F" }, 1137{ "Alt+F","Alt+F" },
1138{ "Print as &timetable view:","Drucke als Zeittabelle:" }, 1138{ "Print as &timetable view:","Drucke als Zeittabelle:" },
1139{ "Alt+T","Alt+T" }, 1139{ "Alt+T","Alt+T" },
1140{ "Print as split week view","Drucke als gesplittete Wochenansicht" }, 1140{ "Print as split week view","Drucke als gesplittete Wochenansicht" },
1141{ "Print month","Drucke Monat" }, 1141{ "Print month","Drucke Monat" },
1142{ "CalPrintMonth_Base","CalPrintMonth_Base" }, 1142{ "CalPrintMonth_Base","CalPrintMonth_Base" },
1143{ "&Start month:","&Startmonat:" }, 1143{ "&Start month:","&Startmonat:" },
1144{ "&End month:","&Endmonat:" }, 1144{ "&End month:","&Endmonat:" },
1145{ "Print week &numbers","Drucke Wochen Nummer(n)" }, 1145{ "Print week &numbers","Drucke Wochen Nummer(n)" },
1146{ "Print todos","Drucke Todos" }, 1146{ "Print todos","Drucke Todos" },
1147{ "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" }, 1147{ "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" },
1148{ "Include &description of the item","Inclusive Itembeschreibung" }, 1148{ "Include &description of the item","Inclusive Itembeschreibung" },
1149{ "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" }, 1149{ "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" },
1150{ "Include &priority of the item","Inclusive Priorität des Items" }, 1150{ "Include &priority of the item","Inclusive Priorität des Items" },
1151{ "Items to Print","Zu druckende Items" }, 1151{ "Items to Print","Zu druckende Items" },
1152{ "&From:","Von:" }, 1152{ "&From:","Von:" },
1153{ "&To:","Bis:" }, 1153{ "&To:","Bis:" },
1154{ "Print &all todo items","Drucke alle Todo Items" }, 1154{ "Print &all todo items","Drucke alle Todo Items" },
1155{ "Print only &uncompleted items","Drucke nur nicht erledigte Todos" }, 1155{ "Print only &uncompleted items","Drucke nur nicht erledigte Todos" },
1156{ "Only items due in the &range:","Nur Items in dem Zeitraum:" }, 1156{ "Only items due in the &range:","Nur Items in dem Zeitraum:" },
1157{ "Todo List","Todo Liste" }, 1157{ "Todo List","Todo Liste" },
1158{ "&Title:","&Titel:" }, 1158{ "&Title:","&Titel:" },
1159{ "Co&nnect subtodos with its parent","Verbinde Untertodos mit ihren Ober-Todos" }, 1159{ "Co&nnect subtodos with its parent","Verbinde Untertodos mit ihren Ober-Todos" },
1160{ "Todo list","Todo Liste" }, 1160{ "Todo list","Todo Liste" },
1161{ "&Print...","Drucke..." }, 1161{ "&Print...","Drucke..." },
1162{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" }, 1162{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" },
1163{ "[Unconfigured]","[Unkonfiguriert]" }, 1163{ "[Unconfigured]","[Unkonfiguriert]" },
1164{ "OK","OK" }, 1164{ "OK","OK" },
1165{ "FilterEditor","FilterEditor" }, 1165{ "FilterEditor","FilterEditor" },
1166{ "Include","Inclusive" }, 1166{ "Include","Inclusive" },
1167{ "Exclude","Exclusive" }, 1167{ "Exclude","Exclusive" },
1168{ "Edit Selection...","Editiere Auswahl" }, 1168{ "Edit Selection...","Editiere Auswahl" },
1169{ "recurring events","wiederholende Termine" }, 1169{ "recurring events","wiederholende Termine" },
1170{ "recurr. events","wiederh.Termine" }, 1170{ "recurr. events","wiederh.Termine" },
1171{ "completed to-dos","erledigte Todos" }, 1171{ "completed to-dos","erledigte Todos" },
1172{ "events","Termine" }, 1172{ "events","Termine" },
1173{ "todos","Todos" }, 1173{ "todos","Todos" },
1174{ "journals","Journale" }, 1174{ "journals","Journale" },
1175{ "public","öffentl." }, 1175{ "public","öffentl." },
1176{ "private","privat" }, 1176{ "private","privat" },
1177{ "confidential","vertraul." }, 1177{ "confidential","vertraul." },
1178{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Untertodos.\nAlle erledigten Untertodos\nwerden auch gelöscht!" }, 1178{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Untertodos.\nAlle erledigten Untertodos\nwerden auch gelöscht!" },
1179{ "Yesterday","Gestern" }, 1179{ "Yesterday","Gestern" },
1180{ "Day after tomorrow","Übermorgen" }, 1180{ "Day after tomorrow","Übermorgen" },
1181{ "Tomorrow","Morgen" }, 1181{ "Tomorrow","Morgen" },
1182{ "Day before yesterday","Vorgestern" }, 1182{ "Day before yesterday","Vorgestern" },
1183{ "Size %1","Größe %1" }, 1183{ "Size %1","Größe %1" },
1184{ "New Agendasize: %1","Neue Agendagröße: %1" }, 1184{ "New Agendasize: %1","Neue Agendagröße: %1" },
1185{ " (%1 y.)"," (%1 J.)" }, 1185{ " (%1 y.)"," (%1 J.)" },
1186{ "Allday:","Ganztägig:" }, 1186{ "Allday:","Ganztägig:" },
1187{ "compl.todos","erled.Todos" }, 1187{ "compl.todos","erled.Todos" },
1188{ "Day view","Tagesansicht" }, 1188{ "Day view","Tagesansicht" },
1189{ "Next days","Nächste Tage" }, 1189{ "Next days","Nächste Tage" },
1190{ "Next week","Nächste Woche" }, 1190{ "Next week","Nächste Woche" },
1191{ "Next two weeks","Nächste zwei Wochen" }, 1191{ "Next two weeks","Nächste zwei Wochen" },
1192{ "This month","Dieser Monat" }, 1192{ "This month","Dieser Monat" },
1193{ "Journal view","Journal" }, 1193{ "Journal view","Journal" },
1194{ "Display all opened","Zeige alle geöffnet" }, 1194{ "Display all opened","Zeige alle geöffnet" },
1195{ "Display all closed","Zeige alle geschlossen" }, 1195{ "Display all closed","Zeige alle geschlossen" },
1196{ "Display all flat","Zeige alle flach" }, 1196{ "Display all flat","Zeige alle flach" },
1197{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, 1197{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" },
1198{ "Default todo done color:","Standard Todo erledigt Farbe" }, 1198{ "Default todo done color:","Standard Todo erledigt Farbe" },
1199{ "Select week %1-%2","Wähle Woche %1-%2" }, 1199{ "Select week %1-%2","Wähle Woche %1-%2" },
1200{ "Select Week","Wähle Woche" }, 1200{ "Select Week","Wähle Woche" },
1201{ "Set alarm for selected...","Setze Alarm für Selekt..." }, 1201{ "Set alarm for selected...","Setze Alarm für Selekt..." },
1202{ "Set Alarm!","Setze Alarm!" }, 1202{ "Set Alarm!","Setze Alarm!" },
1203{ "Changed alarm for %1 items","Alarm für %1 Items geändert" }, 1203{ "Changed alarm for %1 items","Alarm für %1 Items geändert" },
1204{ " and "," und " }, 1204{ " and "," und " },
1205{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, 1205{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" },
1206{ "Mail to selected","Mail an Ausgewählte" }, 1206{ "Mail to selected","Mail an Ausgewählte" },
1207{ "Mail to all","Mail an Alle" }, 1207{ "Mail to all","Mail an Alle" },
1208{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, 1208{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" },
1209{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, 1209{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" },
1210{ " on"," am" }, 1210{ " on"," am" },
1211{ " completed on "," erledigt am " }, 1211{ " completed on "," erledigt am " },
1212{ "Save as Event template","Speichere als Vorlage" }, 1212{ "Save as Event template","Speichere als Vorlage" },
1213{ "Load Event template","Lade Termin Vorlage" }, 1213{ "Load Event template","Lade Termin Vorlage" },
1214{ "Save as Journal template","Speichere als Journal Vorlage" }, 1214{ "Save as Journal template","Speichere als Journal Vorlage" },
1215{ "Insert Journal template","Füge Journal Vorlage ein" }, 1215{ "Insert Journal template","Füge Journal Vorlage ein" },
1216{ "Sub todos:<br>","Unter Todos:<br>" }, 1216{ "Sub todos:<br>","Unter Todos:<br>" },
1217{ "Parent todo:<br>","Über Todo:<br>" }, 1217{ "Parent todo:<br>","Über Todo:<br>" },
1218{ "Set current as color category","Setze Gewählte als Farbkategorie" }, 1218{ "Set current as color category","Setze Gewählte als Farbkategorie" },
1219{ " completed"," erledigt" }, 1219{ " completed"," erledigt" },
1220{ "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" }, 1220{ "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" },
1221{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, 1221{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." },
1222{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, 1222{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." },
1223{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, 1223{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." },
1224{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" }, 1224{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" },
1225{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, 1225{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." },
1226{ "Error","Fehler" }, 1226{ "Error","Fehler" },
1227{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, 1227{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." },
1228{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, 1228{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." },
1229{ "Warning","Warnung" }, 1229{ "Warning","Warnung" },
1230{ "Select week number","Wähle Wochen Nummer" }, 1230{ "Select week number","Wähle Wochen Nummer" },
1231{ "Februar","Februar" }, 1231{ "Februar","Februar" },
1232{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" }, 1232{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" },
1233{ "W","W" }, 1233{ "W","W" },
1234{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" }, 1234{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" },
1235{ "T: %1","T: %1" }, 1235{ "T: %1","T: %1" },
1236{ "Start: ","Start: " }, 1236{ "Start: ","Start: " },
1237{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " }, 1237{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " },
1238{ "Password for remote access:","Passwort für fernen Zugriff:" }, 1238{ "Password for remote access:","Passwort für fernen Zugriff:" },
1239{ "Remote IP address:","Ferne IP Adresse:" }, 1239{ "Remote IP address:","Ferne IP Adresse:" },
1240{ "Remote port number:","Ferne Port Nummer:" }, 1240{ "Remote port number:","Ferne Port Nummer:" },
1241{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." }, 1241{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." },
1242{ "Remote from: ","Fern von: " }, 1242{ "Remote from: ","Fern von: " },
1243{ "Local from: ","Lokal von: " }, 1243{ "Local from: ","Lokal von: " },
1244{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" }, 1244{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" },
1245{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, 1245{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
1246{ "Write back","Schreibe zurück" }, 1246{ "Write back","Schreibe zurück" },
1247{ "KO/Pi Synchronization","KO/Pi Synchronisation" }, 1247{ "KO/Pi Synchronization","KO/Pi Synchronisation" },
1248{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, 1248{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
1249{ "Received sync request","Sync Anfrage erhalten" }, 1249{ "Received sync request","Sync Anfrage erhalten" },
1250{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." }, 1250{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." },
1251{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, 1251{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
1252{ "Data saved to temp file!","Daten in temp Datei gespeichert!" }, 1252{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
1253{ "Sending file...","Sende Datei..." }, 1253{ "Sending file...","Sende Datei..." },
1254{ "Waiting for synced file...","Warte auf gesyncte Daten..." }, 1254{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
1255{ "Receiving synced file...","Gesyncte Daten erhalten..." }, 1255{ "Receiving synced file...","Gesyncte Daten erhalten..." },
1256{ "Received %1 bytes","%1 Bytes erhalten" }, 1256{ "Received %1 bytes","%1 Bytes erhalten" },
1257{ "Writing file to disk...","Speichere Datei..." }, 1257{ "Writing file to disk...","Speichere Datei..." },
1258{ "Pi-Sync successful!","Pi-Sync erfolgreich!" }, 1258{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
1259{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, 1259{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
1260{ "Synchronize!","Synchronisiere!" }, 1260{ "Synchronize!","Synchronisiere!" },
1261{ "High clock skew!","Großer Uhrzeitunterschied!" }, 1261{ "High clock skew!","Großer Uhrzeitunterschied!" },
1262{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, 1262{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
1263{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, 1263{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" },
1264{ "This is a %1 recurring todo.","Das ist eine %1 wiederholende Aufgabe." }, 1264{ "This is a %1 recurring todo.","Das ist eine %1 wiederholende Aufgabe." },
1265{ "<p><b>Start on:</b> %1</p>","<p><b>Start am:</b> %1</p>" }, 1265{ "<p><b>Start on:</b> %1</p>","<p><b>Start am:</b> %1</p>" },
1266{ "List week view","Listenwochenansicht" }, 1266{ "List week view","Listenwochenansicht" },
1267{ "List week","Listenwochenansicht" }, 1267{ "List week","Listenwochenansicht" },
1268{ "Next Week","Nächste Woche" }, 1268{ "Next Week","Nächste Woche" },
1269{ "Previous Week","Vorherige Woche" }, 1269{ "Previous Week","Vorherige Woche" },
1270{ "No items were found matching\nyour search expression.\nUse the wildcard characters\n'*' and '?' where needed.","Keine Einträge gefunden die\ndem Suchausdruck entsprechen.\nBenutze Platzhalter Zeichen\n'*' und '?' wo benötigt." }, 1270{ "No items were found matching\nyour search expression.\nUse the wildcard characters\n'*' and '?' where needed.","Keine Einträge gefunden die\ndem Suchausdruck entsprechen.\nBenutze Platzhalter Zeichen\n'*' und '?' wo benötigt." },
1271{ "Show in todo/event viewer:","Zeige in Termin/Todo Anzeige:" }, 1271{ "Show in todo/event viewer:","Zeige in Termin/Todo Anzeige:" },
1272{ "Details","Details" }, 1272{ "Details","Details" },
1273{ "Created time","Erstellt Zeit" }, 1273{ "Created time","Erstellt Zeit" },
1274{ "Last modified time","Geändert Zeit" }, 1274{ "Last modified time","Geändert Zeit" },
1275{ "Show in What'sThis quick overview:","Zeige in What'sThis Schnellübersicht:" }, 1275{ "Show in What'sThis quick overview:","Zeige in What'sThis Schnellübersicht:" },
1276{ "View Options","Anzeige Optionen" }, 1276{ "View Options","Anzeige Optionen" },
1277{ "<b>Created: ","<b>Erstellt am: " }, 1277{ "<b>Created: ","<b>Erstellt am: " },
1278{ "<b>Last modified: ","<b>Zuletzt geändert am: " }, 1278{ "<b>Last modified: ","<b>Zuletzt geändert am: " },
1279{ "Journal: ","Journal: " }, 1279{ "Journal: ","Journal: " },
1280{ "yearly","jährlich" }, 1280{ "yearly","jährlich" },
1281{ "(%1) ","%1-" }, 1281{ "(%1) ","%1-" },
1282{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" }, 1282{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" },
1283{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" }, 1283{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" },
1284{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" }, 1284{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" },
1285{ "Summary/Loc.","Titel/Ort" }, 1285{ "Summary/Loc.","Titel/Ort" },
1286{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." }, 1286{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." },
1287{ "Week Number","Wochennummer" }, 1287{ "Week Number","Wochennummer" },
1288{ "Import","Importiere" }, 1288{ "Import","Importiere" },
1289{ "Export","Exportiere" }, 1289{ "Export","Exportiere" },
1290{ "Beam","Beame" }, 1290{ "Beam","Beame" },
1291{ "Export selected","Exportiere Selektierte" }, 1291{ "Export selected","Exportiere Selektierte" },
1292{ "As iCal (ics) file...","Als iCal (ics) Datei..." }, 1292{ "As iCal (ics) file...","Als iCal (ics) Datei..." },
1293{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." }, 1293{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." },
1294{ "Journal/Details...","Journale/Details..." }, 1294{ "Journal/Details...","Journale/Details..." },
1295{ "Agenda View","Agenda Ansicht" }, 1295{ "Agenda View","Agenda Ansicht" },
1296{ "Show current time","Zeige aktuelle Zeit" }, 1296{ "Show current time","Zeige aktuelle Zeit" },
1297{ "Edit new item","Bearbeite neuen Eintrag" }, 1297{ "Edit new item","Bearbeite neuen Eintrag" },
1298{ "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" }, 1298{ "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" },
1299{ "There is no next alarm.","Es gibt keinen nächsten Alarm." }, 1299{ "There is no next alarm.","Es gibt keinen nächsten Alarm." },
1300{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" }, 1300{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" },
1301{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" }, 1301{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" },
1302{ "%1 days\n","%1 Tagen\n" }, 1302{ "%1 days\n","%1 Tagen\n" },
1303{ "1 day\n","1 Tag\n" }, 1303{ "1 day\n","1 Tag\n" },
1304{ "%1 hours\n","%1 Stunden\n" }, 1304{ "%1 hours\n","%1 Stunden\n" },
1305{ "1 hour\n","1 Stunde\n" }, 1305{ "1 hour\n","1 Stunde\n" },
1306{ "%1 minutes\n","%1 Minuten\n" }, 1306{ "%1 minutes\n","%1 Minuten\n" },
1307{ "1 minute\n","1 Minute\n" }, 1307{ "1 minute\n","1 Minute\n" },
1308{ "Only one toolbar","Nur eine Toolbar" }, 1308{ "Only one toolbar","Nur eine Toolbar" },
1309{ "Print","Drucke" }, 1309{ "Print","Drucke" },
1310{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." }, 1310{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." },
1311{ "There is nothing selected!","Es ist nichts ausgewählt!" }, 1311{ "There is nothing selected!","Es ist nichts ausgewählt!" },
1312{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " }, 1312{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " },
1313{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" }, 1313{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" },
1314{ "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" }, 1314{ "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" },
1315{ "KO/Pi Printout","KO/Pi Ausdruck" }, 1315{ "KO/Pi Printout","KO/Pi Ausdruck" },
1316{ "Print unscaled","Drucke unskaliert" }, 1316{ "Print unscaled","Drucke unskaliert" },
1317{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." }, 1317{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." },
1318{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." }, 1318{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." },
1319{ "Printout Mode","Druck Modus" }, 1319{ "Printout Mode","Druck Modus" },
1320{ "Filter menu icon","Filtermenu Icon" }, 1320{ "Filter menu icon","Filtermenu Icon" },
1321{ "<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" }, 1321{ "<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" },
1322{ "<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" }, 1322{ "<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" },
1323{ "%1d","%1t" }, 1323{ "%1d","%1t" },
1324{ "%1h","%1std" }, 1324{ "%1h","%1std" },
1325{ "%1min","%1min" }, 1325{ "%1min","%1min" },
1326{ "( %1 before )","( %1 vorher )" }, 1326{ "( %1 before )","( %1 vorher )" },
1327{ "The next alarm is in\nless than one minute!","Der nächste Alarm kommt in\nweniger als einer Minute!" }, 1327{ "The next alarm is in\nless than one minute!","Der nächste Alarm kommt in\nweniger als einer Minute!" },
1328{ "\nThe internal alarm notification is disabled!\n","\nDie interne Alarmbenachrichtigung ist ausgeschaltet!\n" }, 1328{ "\nThe internal alarm notification is disabled!\n","\nDie interne Alarmbenachrichtigung ist ausgeschaltet!\n" },
1329{ "Enable it in the settings menu, TAB alarm.","Schalten Sie sie an im Menu Einstellungen, TAB Alarm." }, 1329{ "Enable it in the settings menu, TAB alarm.","Schalten Sie sie an im Menu Einstellungen, TAB Alarm." },
1330{ "Show Sync Events","Zeige Sync-Ereignisse" }, 1330{ "Show Sync Events","Zeige Sync-Ereignisse" },
1331{ "Use short date in WN+Event view","Zeige Kurzdatum in WN+Terminanzeige" }, 1331{ "Use short date in WN+Event view","Zeige Kurzdatum in WN+Terminanzeige" },
1332{ "Number of max.displayed todo prios:","Anzahl max.angezeigter Todo-Prios:" }, 1332{ "Number of max.displayed todo prios:","Anzahl max.angezeigter Todo-Prios:" },
1333{ " on "," am " }, 1333{ " on "," am " },
1334{ "On: ","Am: " }, 1334{ "On: ","Am: " },
1335{ "<i>The recurrence is computed from the start datetime!</i>","<i>Die Wiederholung wird vom Startwert aus berechnet!</i>" }, 1335{ "<i>The recurrence is computed from the start datetime!</i>","<i>Die Wiederholung wird vom Startwert aus berechnet!</i>" },
1336{ "Start/Stop todo...","Starte/Stoppe Todo..." }, 1336{ "Start/Stop todo...","Starte/Stoppe Todo..." },
1337{ "Color for running todos:","Farbe für laufende Todos:" }, 1337{ "Color for running todos:","Farbe für laufende Todos:" },
1338{ "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?" }, 1338{ "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?" },
1339{ "Todo is started","Todo ist gestartet" }, 1339{ "Todo is started","Todo ist gestartet" },
1340{ "Stop todo","Stoppe Todo" }, 1340{ "Stop todo","Stoppe Todo" },
1341{ "Todo is stopped","Todo ist gestoppt" }, 1341{ "Todo is stopped","Todo ist gestoppt" },
1342{ "Start todo","Starte Todo" }, 1342{ "Start todo","Starte Todo" },
1343{ "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?" }, 1343{ "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?" },
1344{ "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?" }, 1344{ "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?" },
1345{ "Todo has subtodos","Todo hat Untertodos" }, 1345{ "Todo has subtodos","Todo hat Untertodos" },
1346{ "Block popup until mouse button release","Sperre Popup bis Mausknopf losgelassen" }, 1346{ "Block popup until mouse button release","Sperre Popup bis Mausknopf losgelassen" },
1347{ "Colors","Farben" }, 1347{ "Colors","Farben" },
1348{ "Click on new parent item","Klicke auf neues Übertodo" }, 1348{ "Click on new parent item","Klicke auf neues Übertodo" },
1349{ "Reparenting aborted!","Übertodo setzen abgebrochen" }, 1349{ "Reparenting aborted!","Übertodo setzen abgebrochen" },
1350{ "Cannot move Todo to itself\nor a child of itself","Kann nicht Todo auf\nsich selbst oder\nein Untertodo verschieben" }, 1350{ "Cannot move Todo to itself\nor a child of itself","Kann nicht Todo auf\nsich selbst oder\nein Untertodo verschieben" },
1351{ "Recursive reparenting not possible!","Rekursives Verschieben nicht möglich" }, 1351{ "Recursive reparenting not possible!","Rekursives Verschieben nicht möglich" },
1352{ "Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)","Entferne alle erledigten Todos?\n(Erledigte wiederholende Todos\nwerden nicht gelöscht!)" }, 1352{ "Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)","Entferne alle erledigten Todos?\n(Erledigte wiederholende Todos\nwerden nicht gelöscht!)" },
1353{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, 1353{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" },
1354{ "times","Zeiten" }, 1354{ "times","Zeiten" },
1355{ "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?" }, 1355{ "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?" },
1356{ "Backup enabled","Backup angeschaltet" }, 1356{ "Backup enabled","Backup angeschaltet" },
1357{ "Use standard backup dir","Standard Backupverzeichnis" }, 1357{ "Use standard backup dir","Standard Backupverzeichnis" },
1358{ "Number of Backups:","Anzahl der Backups" }, 1358{ "Number of Backups:","Anzahl der Backups" },
1359{ "Make backup every ","Mache ein Backup alle " }, 1359{ "Make backup every ","Mache ein Backup alle " },
1360{ " days"," Tage" }, 1360{ " days"," Tage" },
1361{ "Creating backup ... please wait ...","Erzeuge Backup ... bitte warten ..." }, 1361{ "Creating backup ... please wait ...","Erzeuge Backup ... bitte warten ..." },
1362{ "Backup Failed!","Backup Problem!" }, 1362{ "Backup Failed!","Backup Problem!" },
1363{ "Try again now","Versuche jetzt nochmal" }, 1363{ "Try again now","Versuche jetzt nochmal" },
1364{ "Try again later","Versuche später nochmal" }, 1364{ "Try again later","Versuche später nochmal" },
1365{ "Try again tomorrow","Versuche morgen nochmal" }, 1365{ "Try again tomorrow","Versuche morgen nochmal" },
1366{ "Disable backup","Schalte Backup ab" }, 1366{ "Disable backup","Schalte Backup ab" },
1367{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" }, 1367{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" },
1368{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" }, 1368{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" },
1369{ "Choose action","Wähle Aktion" }, 1369{ "Choose action","Wähle Aktion" },
1370{ "Comment for todo:","Kommentar zum Todo:" }, 1370{ "Comment for todo:","Kommentar zum Todo:" },
1371{ "Stop+note","Stop+Notiz" }, 1371{ "Stop+note","Stop+Notiz" },
1372{ "Agenda view shows completed todos","Agenda Ansicht zeigt erledigte Todos" }, 1372{ "Agenda view shows completed todos","Agenda Ansicht zeigt erledigte Todos" },
1373{ "KO/Pi: Missing alarm notification!","KO/Pi: Benachrichtigung über verpasste Alarme!" }, 1373{ "KO/Pi: Missing alarms!","KO/Pi: Verpasste Alarme!" },
1374{ "You missed the alarms for the following events or todos:","Sie verpassten die Alarme für folgende Termine oder Todos:" }, 1374{ "You missed the alarms for the following events or todos:","Sie verpassten die Alarme für folgende Termine oder Todos:" },
1375{ "","" }, 1375{ "","" },
1376{ "","" }, 1376{ "","" },
1377{ "","" }, 1377{ "","" },
1378{ "","" }, 1378{ "","" },
1379{ "","" }, 1379{ "","" },
1380{ "","" }, 1380{ "","" },
1381{ "","" }, \ No newline at end of file 1381{ "","" }, \ No newline at end of file
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 5132f98..42166ab 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1,1422 +1,1426 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 3
4 Requires the Qt and KDE widget libraries, available at no cost at 4 Requires the Qt and KDE widget libraries, available at no cost at
5 http://www.troll.no and http://www.kde.org respectively 5 http://www.troll.no and http://www.kde.org respectively
6 6
7 Copyright (c) 1997, 1998, 1999 7 Copyright (c) 1997, 1998, 1999
8 Preston Brown (preton.brown@yale.edu) 8 Preston Brown (preton.brown@yale.edu)
9 Fester Zigterman (F.J.F.ZigtermanRustenburg@student.utwente.nl) 9 Fester Zigterman (F.J.F.ZigtermanRustenburg@student.utwente.nl)
10 Ian Dawes (iadawes@globalserve.net) 10 Ian Dawes (iadawes@globalserve.net)
11 Laszlo Boloni (boloni@cs.purdue.edu) 11 Laszlo Boloni (boloni@cs.purdue.edu)
12 12
13 Copyright (c) 2000, 2001, 2002 13 Copyright (c) 2000, 2001, 2002
14 Cornelius Schumacher <schumacher@kde.org> 14 Cornelius Schumacher <schumacher@kde.org>
15 15
16 This program is free software; you can redistribute it and/or modify 16 This program is free software; you can redistribute it and/or modify
17 it under the terms of the GNU General Public License as published by 17 it under the terms of the GNU General Public License as published by
18 the Free Software Foundation; either version 2 of the License, or 18 the Free Software Foundation; either version 2 of the License, or
19 (at your option) any later version. 19 (at your option) any later version.
20 20
21 This program is distributed in the hope that it will be useful, 21 This program is distributed in the hope that it will be useful,
22 but WITHOUT ANY WARRANTY; without even the implied warranty of 22 but WITHOUT ANY WARRANTY; without even the implied warranty of
23 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 23 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
24 GNU General Public License for more details. 24 GNU General Public License for more details.
25 25
26 You should have received a copy of the GNU General Public License 26 You should have received a copy of the GNU General Public License
27 along with this program; if not, write to the Free Software 27 along with this program; if not, write to the Free Software
28 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 28 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29*/ 29*/
30 30
31#include <stdlib.h> 31#include <stdlib.h>
32 32
33#include <qapplication.h> 33#include <qapplication.h>
34#include <qradiobutton.h> 34#include <qradiobutton.h>
35#include <qbuttongroup.h> 35#include <qbuttongroup.h>
36#include <qlayout.h> 36#include <qlayout.h>
37#include <qclipboard.h> 37#include <qclipboard.h>
38#include <qcursor.h> 38#include <qcursor.h>
39#include <qmessagebox.h> 39#include <qmessagebox.h>
40#include <qprogressbar.h> 40#include <qprogressbar.h>
41#include <qmultilineedit.h> 41#include <qmultilineedit.h>
42#include <qtimer.h> 42#include <qtimer.h>
43#include <qwidgetstack.h> 43#include <qwidgetstack.h>
44#include <qptrlist.h> 44#include <qptrlist.h>
45#include <qregexp.h> 45#include <qregexp.h>
46#include <qgroupbox.h> 46#include <qgroupbox.h>
47#include <qfile.h> 47#include <qfile.h>
48#include <qdir.h> 48#include <qdir.h>
49#ifndef KORG_NOSPLITTER 49#ifndef KORG_NOSPLITTER
50#include <qsplitter.h> 50#include <qsplitter.h>
51#endif 51#endif
52 52
53#include <kglobal.h> 53#include <kglobal.h>
54#include <kdebug.h> 54#include <kdebug.h>
55#include <kstandarddirs.h> 55#include <kstandarddirs.h>
56#include <kfiledialog.h> 56#include <kfiledialog.h>
57#include <kmessagebox.h> 57#include <kmessagebox.h>
58#include <knotifyclient.h> 58#include <knotifyclient.h>
59#include <kconfig.h> 59#include <kconfig.h>
60 60
61#include <libkdepim/ksyncprefsdialog.h> 61#include <libkdepim/ksyncprefsdialog.h>
62#include <krun.h> 62#include <krun.h>
63#include <kdirwatch.h> 63#include <kdirwatch.h>
64#include <libkdepim/kdatepicker.h> 64#include <libkdepim/kdatepicker.h>
65#include <libkdepim/ksyncprofile.h> 65#include <libkdepim/ksyncprofile.h>
66#include <libkdepim/kpimglobalprefs.h> 66#include <libkdepim/kpimglobalprefs.h>
67 67
68#include <libkcal/vcaldrag.h> 68#include <libkcal/vcaldrag.h>
69#include <libkcal/icaldrag.h> 69#include <libkcal/icaldrag.h>
70#include <libkcal/icalformat.h> 70#include <libkcal/icalformat.h>
71#include <libkcal/vcalformat.h> 71#include <libkcal/vcalformat.h>
72#include <libkcal/scheduler.h> 72#include <libkcal/scheduler.h>
73#include <libkcal/calendarlocal.h> 73#include <libkcal/calendarlocal.h>
74#include <libkcal/journal.h> 74#include <libkcal/journal.h>
75#include <libkcal/calfilter.h> 75#include <libkcal/calfilter.h>
76#include <libkcal/attendee.h> 76#include <libkcal/attendee.h>
77#include <libkcal/dndfactory.h> 77#include <libkcal/dndfactory.h>
78#include <libkcal/freebusy.h> 78#include <libkcal/freebusy.h>
79#include <libkcal/filestorage.h> 79#include <libkcal/filestorage.h>
80#include <libkcal/calendarresources.h> 80#include <libkcal/calendarresources.h>
81#include <libkcal/qtopiaformat.h> 81#include <libkcal/qtopiaformat.h>
82#include "../kalarmd/alarmdialog.h" 82#include "../kalarmd/alarmdialog.h"
83 83
84#ifndef DESKTOP_VERSION 84#ifndef DESKTOP_VERSION
85#include <libkcal/sharpformat.h> 85#include <libkcal/sharpformat.h>
86#include <externalapphandler.h> 86#include <externalapphandler.h>
87#endif 87#endif
88#include <libkcal/phoneformat.h> 88#include <libkcal/phoneformat.h>
89#ifndef KORG_NOMAIL 89#ifndef KORG_NOMAIL
90#include "komailclient.h" 90#include "komailclient.h"
91#endif 91#endif
92#ifndef KORG_NOPRINTER 92#ifndef KORG_NOPRINTER
93#include "calprinter.h" 93#include "calprinter.h"
94#endif 94#endif
95#ifndef KORG_NOPLUGINS 95#ifndef KORG_NOPLUGINS
96#include "kocore.h" 96#include "kocore.h"
97#endif 97#endif
98#include "koeventeditor.h" 98#include "koeventeditor.h"
99#include "kotodoeditor.h" 99#include "kotodoeditor.h"
100#include "koprefs.h" 100#include "koprefs.h"
101#include "koeventviewerdialog.h" 101#include "koeventviewerdialog.h"
102#include "publishdialog.h" 102#include "publishdialog.h"
103#include "kofilterview.h" 103#include "kofilterview.h"
104#include "koglobals.h" 104#include "koglobals.h"
105#include "koviewmanager.h" 105#include "koviewmanager.h"
106#include "koagendaview.h" 106#include "koagendaview.h"
107#include "kodialogmanager.h" 107#include "kodialogmanager.h"
108#include "outgoingdialog.h" 108#include "outgoingdialog.h"
109#include "incomingdialog.h" 109#include "incomingdialog.h"
110#include "datenavigatorcontainer.h" 110#include "datenavigatorcontainer.h"
111#include "statusdialog.h" 111#include "statusdialog.h"
112#include "kdatenavigator.h" 112#include "kdatenavigator.h"
113#include "kotodoview.h" 113#include "kotodoview.h"
114#include "datenavigator.h" 114#include "datenavigator.h"
115#include "resourceview.h" 115#include "resourceview.h"
116#include "navigatorbar.h" 116#include "navigatorbar.h"
117#include "searchdialog.h" 117#include "searchdialog.h"
118#include "mainwindow.h" 118#include "mainwindow.h"
119 119
120#include "calendarview.h" 120#include "calendarview.h"
121#ifndef DESKTOP_VERSION 121#ifndef DESKTOP_VERSION
122#include <qtopia/alarmserver.h> 122#include <qtopia/alarmserver.h>
123#endif 123#endif
124#ifndef _WIN32_ 124#ifndef _WIN32_
125#include <stdlib.h> 125#include <stdlib.h>
126#include <stdio.h> 126#include <stdio.h>
127#include <unistd.h> 127#include <unistd.h>
128#else 128#else
129#include <qprocess.h> 129#include <qprocess.h>
130#endif 130#endif
131 131
132#ifdef DESKTOP_VERSION 132#ifdef DESKTOP_VERSION
133#include <kabc/stdaddressbook.h> 133#include <kabc/stdaddressbook.h>
134#endif 134#endif
135using namespace KOrg; 135using namespace KOrg;
136using namespace KCal; 136using namespace KCal;
137extern int globalFlagBlockAgenda; 137extern int globalFlagBlockAgenda;
138extern int globalFlagBlockStartup; 138extern int globalFlagBlockStartup;
139 139
140 140
141MissedAlarmTextBrowser::MissedAlarmTextBrowser(QWidget *parent, QPtrList<Incidence> alarms,QDateTime start ) : QTextBrowser(parent) 141MissedAlarmTextBrowser::MissedAlarmTextBrowser(QWidget *parent, QPtrList<Incidence> alarms,QDateTime start ) : QTextBrowser(parent)
142 142
143{ 143{
144 mAlarms = alarms; 144 mAlarms = alarms;
145 setBackgroundColor( QColor( 86, 153, 205 ) ); 145 setBackgroundColor( QColor( 86, 153, 205 ) );
146 QString mText = "<table width=\"100%\">\n"; 146 QString mText = "<table width=\"100%\">\n";
147 //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; 147 //mText += "<tr bgcolor=\"#3679AD\"><td><h2>";
148#ifdef DESKTOP_VERSION 148#ifdef DESKTOP_VERSION
149 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h2>"; 149 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h2>";
150#else 150#else
151 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h3>"; 151 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h3>";
152#endif 152#endif
153 // mText += "<img src=\""; 153 // mText += "<img src=\"";
154 // mText += ipath; 154 // mText += ipath;
155 // mText += "\">"; 155 // mText += "\">";
156 //mEventDate = QDate::currentDate(); 156 //mEventDate = QDate::currentDate();
157#ifdef DESKTOP_VERSION 157#ifdef DESKTOP_VERSION
158 mText += "<font color=\"#FFFFFF\"> <em>" + i18n("You missed the alarms for the following events or todos:")+"</em></font></h2>"; 158 mText += "<font color=\"#FFFFFF\"> <em>" + i18n("You missed the alarms for the following events or todos:")+"</em></font></h2>";
159#else 159#else
160 mText += "<font color=\"#FFFFFF\"> <em>" + i18n("You missed the alarms for the following events or todos:")+"</em></font></h3>"; 160 mText += "<font color=\"#FFFFFF\"> <em>" + i18n("You missed the alarms for the following events or todos:")+"</em></font></h3>";
161#endif 161#endif
162 mText += "</td></tr>\n<tr bgcolor=\"#FF997D\"><td>"; 162 mText += "</td></tr>\n<tr bgcolor=\"#FF997D\"><td>";
163 163
164 Incidence * inc = getNextInc( start ); 164 Incidence * inc = getNextInc( start );
165 int time = 0; 165 int time = 0;
166 mText += "<table>"; 166 mText += "<table>";
167 while ( inc ) { 167 while ( inc ) {
168 QDateTime dt ; 168 QDateTime dt ;
169 QString tempText = "<a "; 169 QString tempText = "<a ";
170 bool ok; 170 bool ok;
171 dt = inc->getNextOccurence( start, &ok ); 171 dt = inc->getNextOccurence( start, &ok );
172 if ( !ok ) continue; 172 if ( !ok ) continue;
173 if ( inc->type() == "Event" ) { 173 if ( inc->type() == "Event" ) {
174 tempText += "href=\"event:"; 174 tempText += "href=\"event:";
175 } else if ( inc->type() == "Todo" ) { 175 } else if ( inc->type() == "Todo" ) {
176 tempText += "href=\"todo:"; 176 tempText += "href=\"todo:";
177 } 177 }
178 tempText += inc->uid() + "\">"; 178 tempText += inc->uid() + "\">";
179 if ( inc->type() == "Todo" ) 179 if ( inc->type() == "Todo" )
180 tempText += i18n("Todo: "); 180 tempText += i18n("Todo: ");
181 if ( inc->summary().length() > 0 ) 181 if ( inc->summary().length() > 0 )
182 tempText += inc->summary(); 182 tempText += inc->summary();
183 else 183 else
184 tempText += i18n("-no summary-"); 184 tempText += i18n("-no summary-");
185 QString timestr; 185 QString timestr;
186 if (!inc->doesFloat()) 186 if (!inc->doesFloat())
187 timestr = KGlobal::locale()->formatDateTime( dt, KOPrefs::instance()->mShortDateInViewer) +": "; 187 timestr = KGlobal::locale()->formatDateTime( dt, KOPrefs::instance()->mShortDateInViewer) +": ";
188 else 188 else
189 timestr = KGlobal::locale()->formatDate( dt.date() , KOPrefs::instance()->mShortDateInViewer) +": "; 189 timestr = KGlobal::locale()->formatDate( dt.date() , KOPrefs::instance()->mShortDateInViewer) +": ";
190 if ( dt.date() == QDate::currentDate() && time == 0 ) { 190 if ( dt.date() == QDate::currentDate() && time == 0 ) {
191 time = 1; 191 time = 1;
192 mText +="</table>"; 192 mText +="</table>";
193 mText += "</td></tr>\n<tr bgcolor=\"#FFDC64\"><td>"; 193 mText += "</td></tr>\n<tr bgcolor=\"#FFDC64\"><td>";
194 mText += "<table>"; 194 mText += "<table>";
195 195
196 } 196 }
197 if ( dt.date() > QDate::currentDate() && time != 2 ) { 197 if ( dt.date() > QDate::currentDate() && time != 2 ) {
198 time = 2; 198 time = 2;
199 mText +="</table>"; 199 mText +="</table>";
200 mText += "</td></tr>\n<tr bgcolor=\"#6AFF6A\"><td>"; 200 mText += "</td></tr>\n<tr bgcolor=\"#6AFF6A\"><td>";
201 mText += "<table>"; 201 mText += "<table>";
202 } 202 }
203 mText +="<tr><td><b>"; 203 mText +="<tr><td><b>";
204 mText += timestr; 204 mText += timestr;
205 mText += "</b></td><td>"; 205 mText += "</b></td><td>";
206 mText += tempText; 206 mText += tempText;
207 mText += "</td></tr>\n"; 207 mText += "</td></tr>\n";
208 inc = getNextInc( start ); 208 inc = getNextInc( start );
209 } 209 }
210 mText +="</table>"; 210 mText +="</table>";
211 setText( mText ); 211 setText( mText );
212} 212}
213 213
214MissedAlarmTextBrowser::~MissedAlarmTextBrowser()
215{
216 //qDebug("delete MissedAlarmTextBrowser::~MissedAlarmTextBrowser() ");
217}
214Incidence * MissedAlarmTextBrowser::getNextInc( QDateTime start ) 218Incidence * MissedAlarmTextBrowser::getNextInc( QDateTime start )
215{ 219{
216 QDateTime dt ; 220 QDateTime dt ;
217 Incidence * retInc; 221 Incidence * retInc;
218 Incidence * inc = mAlarms.first(); 222 Incidence * inc = mAlarms.first();
219 if ( inc == 0 ) 223 if ( inc == 0 )
220 return 0; 224 return 0;
221 bool ok; 225 bool ok;
222 dt = inc->getNextOccurence( start, &ok ); 226 dt = inc->getNextOccurence( start, &ok );
223 if ( ! ok ) return 0; 227 if ( ! ok ) return 0;
224 QDateTime dtn ; 228 QDateTime dtn ;
225 retInc = inc; 229 retInc = inc;
226 inc = mAlarms.next(); 230 inc = mAlarms.next();
227 while ( inc ) { 231 while ( inc ) {
228 dtn = inc->getNextOccurence( start, &ok ); 232 dtn = inc->getNextOccurence( start, &ok );
229 if ( ! ok ) return 0; 233 if ( ! ok ) return 0;
230 if ( dtn < dt ) { 234 if ( dtn < dt ) {
231 dt = dtn; 235 dt = dtn;
232 retInc = inc; 236 retInc = inc;
233 } 237 }
234 inc = mAlarms.next(); 238 inc = mAlarms.next();
235 } 239 }
236 mAlarms.remove( retInc ); 240 mAlarms.remove( retInc );
237 return retInc; 241 return retInc;
238 242
239} 243}
240void MissedAlarmTextBrowser::setSource(const QString & n) 244void MissedAlarmTextBrowser::setSource(const QString & n)
241{ 245{
242 if (n.startsWith("event:")) { 246 if (n.startsWith("event:")) {
243#ifdef DESKTOP_VERSION 247#ifdef DESKTOP_VERSION
244 emit showIncidence(n.mid(8)); 248 emit showIncidence(n.mid(8));
245#else 249#else
246 emit showIncidence(n.mid(6)); 250 emit showIncidence(n.mid(6));
247#endif 251#endif
248 return; 252 return;
249 } else if (n.startsWith("todo:")) { 253 } else if (n.startsWith("todo:")) {
250#ifdef DESKTOP_VERSION 254#ifdef DESKTOP_VERSION
251 emit showIncidence(n.mid(7)); 255 emit showIncidence(n.mid(7));
252#else 256#else
253 emit showIncidence(n.mid(5)); 257 emit showIncidence(n.mid(5));
254#endif 258#endif
255 return; 259 return;
256 } 260 }
257} 261}
258 262
259 263
260class KOBeamPrefs : public QDialog 264class KOBeamPrefs : public QDialog
261{ 265{
262 public: 266 public:
263 KOBeamPrefs( QWidget *parent=0, const char *name=0 ) : 267 KOBeamPrefs( QWidget *parent=0, const char *name=0 ) :
264 QDialog( parent, name, true ) 268 QDialog( parent, name, true )
265 { 269 {
266 setCaption( i18n("Beam Options") ); 270 setCaption( i18n("Beam Options") );
267 QVBoxLayout* lay = new QVBoxLayout( this ); 271 QVBoxLayout* lay = new QVBoxLayout( this );
268 lay->setSpacing( 3 ); 272 lay->setSpacing( 3 );
269 lay->setMargin( 3 ); 273 lay->setMargin( 3 );
270 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("File format"), this ); 274 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("File format"), this );
271 lay->addWidget( format ); 275 lay->addWidget( format );
272 format->setExclusive ( true ) ; 276 format->setExclusive ( true ) ;
273 QButtonGroup* time = new QButtonGroup(1, Horizontal, i18n("Time format"), this ); 277 QButtonGroup* time = new QButtonGroup(1, Horizontal, i18n("Time format"), this );
274 lay->addWidget( time ); time->setExclusive ( true ) ; 278 lay->addWidget( time ); time->setExclusive ( true ) ;
275 vcal = new QRadioButton(" vCalendar ", format ); 279 vcal = new QRadioButton(" vCalendar ", format );
276 ical = new QRadioButton(" iCalendar ", format ); 280 ical = new QRadioButton(" iCalendar ", format );
277 vcal->setChecked( true ); 281 vcal->setChecked( true );
278 tz = new QRadioButton(i18n(" With timezone "), time ); 282 tz = new QRadioButton(i18n(" With timezone "), time );
279 local = new QRadioButton(i18n(" Local time "), time ); 283 local = new QRadioButton(i18n(" Local time "), time );
280 tz->setChecked( true ); 284 tz->setChecked( true );
281 QPushButton * ok = new QPushButton( i18n("Beam via IR!"), this ); 285 QPushButton * ok = new QPushButton( i18n("Beam via IR!"), this );
282 lay->addWidget( ok ); 286 lay->addWidget( ok );
283 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 287 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
284 lay->addWidget( cancel ); 288 lay->addWidget( cancel );
285 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 289 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
286 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 290 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
287 resize( 200, 200 ); 291 resize( 200, 200 );
288 } 292 }
289 293
290 bool beamVcal() { return vcal->isChecked(); } 294 bool beamVcal() { return vcal->isChecked(); }
291 bool beamLocal() { return local->isChecked(); } 295 bool beamLocal() { return local->isChecked(); }
292private: 296private:
293 QRadioButton* vcal, *ical, *local, *tz; 297 QRadioButton* vcal, *ical, *local, *tz;
294}; 298};
295class KOCatPrefs : public QDialog 299class KOCatPrefs : public QDialog
296{ 300{
297 public: 301 public:
298 KOCatPrefs( QWidget *parent=0, const char *name=0 ) : 302 KOCatPrefs( QWidget *parent=0, const char *name=0 ) :
299 QDialog( parent, name, true ) 303 QDialog( parent, name, true )
300 { 304 {
301 setCaption( i18n("Manage new Categories") ); 305 setCaption( i18n("Manage new Categories") );
302 QVBoxLayout* lay = new QVBoxLayout( this ); 306 QVBoxLayout* lay = new QVBoxLayout( this );
303 lay->setSpacing( 3 ); 307 lay->setSpacing( 3 );
304 lay->setMargin( 3 ); 308 lay->setMargin( 3 );
305 QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n "), this ); 309 QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n "), this );
306 lay->addWidget( lab ); 310 lay->addWidget( lab );
307 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this ); 311 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this );
308 lay->addWidget( format ); 312 lay->addWidget( format );
309 format->setExclusive ( true ) ; 313 format->setExclusive ( true ) ;
310 addCatBut = new QRadioButton(i18n("Add to category list"), format ); 314 addCatBut = new QRadioButton(i18n("Add to category list"), format );
311 new QRadioButton(i18n("Remove from Events/Todos"), format ); 315 new QRadioButton(i18n("Remove from Events/Todos"), format );
312 addCatBut->setChecked( true ); 316 addCatBut->setChecked( true );
313 QPushButton * ok = new QPushButton( i18n("OK"), this ); 317 QPushButton * ok = new QPushButton( i18n("OK"), this );
314 lay->addWidget( ok ); 318 lay->addWidget( ok );
315 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 319 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
316 lay->addWidget( cancel ); 320 lay->addWidget( cancel );
317 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 321 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
318 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 322 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
319 resize( 200, 200 ); 323 resize( 200, 200 );
320 } 324 }
321 325
322 bool addCat() { return addCatBut->isChecked(); } 326 bool addCat() { return addCatBut->isChecked(); }
323private: 327private:
324 QRadioButton* addCatBut; 328 QRadioButton* addCatBut;
325}; 329};
326 330
327 331
328 332
329CalendarView::CalendarView( CalendarResources *calendar, 333CalendarView::CalendarView( CalendarResources *calendar,
330 QWidget *parent, const char *name ) 334 QWidget *parent, const char *name )
331 : CalendarViewBase( parent, name ), 335 : CalendarViewBase( parent, name ),
332 mCalendar( calendar ), 336 mCalendar( calendar ),
333 mResourceManager( calendar->resourceManager() ) 337 mResourceManager( calendar->resourceManager() )
334{ 338{
335 339
336 mEventEditor = 0; 340 mEventEditor = 0;
337 mTodoEditor = 0; 341 mTodoEditor = 0;
338 342
339 init(); 343 init();
340} 344}
341 345
342CalendarView::CalendarView( Calendar *calendar, 346CalendarView::CalendarView( Calendar *calendar,
343 QWidget *parent, const char *name ) 347 QWidget *parent, const char *name )
344 : CalendarViewBase( parent, name ), 348 : CalendarViewBase( parent, name ),
345 mCalendar( calendar ), 349 mCalendar( calendar ),
346 mResourceManager( 0 ) 350 mResourceManager( 0 )
347{ 351{
348 352
349 mEventEditor = 0; 353 mEventEditor = 0;
350 mTodoEditor = 0; 354 mTodoEditor = 0;
351 init(); 355 init();
352} 356}
353 357
354void CalendarView::init() 358void CalendarView::init()
355{ 359{
356 mNextAlarmDateTime = QDateTime::currentDateTime(); 360 mNextAlarmDateTime = QDateTime::currentDateTime();
357 setFocusPolicy ( NoFocus ); 361 setFocusPolicy ( NoFocus );
358 mViewerCallerIsSearchDialog = false; 362 mViewerCallerIsSearchDialog = false;
359 mBlockShowDates = false; 363 mBlockShowDates = false;
360 beamDialog = new KOBeamPrefs(); 364 beamDialog = new KOBeamPrefs();
361 mDatePickerMode = 0; 365 mDatePickerMode = 0;
362 mCurrentSyncDevice = ""; 366 mCurrentSyncDevice = "";
363 writeLocale(); 367 writeLocale();
364 mViewManager = new KOViewManager( this ); 368 mViewManager = new KOViewManager( this );
365 mDialogManager = new KODialogManager( this ); 369 mDialogManager = new KODialogManager( this );
366 mEventViewerDialog = 0; 370 mEventViewerDialog = 0;
367 mModified = false; 371 mModified = false;
368 mReadOnly = false; 372 mReadOnly = false;
369 mSelectedIncidence = 0; 373 mSelectedIncidence = 0;
370 mCalPrinter = 0; 374 mCalPrinter = 0;
371 mFilters.setAutoDelete(true); 375 mFilters.setAutoDelete(true);
372 376
373 mCalendar->registerObserver( this ); 377 mCalendar->registerObserver( this );
374 // TODO: Make sure that view is updated, when calendar is changed. 378 // TODO: Make sure that view is updated, when calendar is changed.
375 379
376 mStorage = new FileStorage( mCalendar ); 380 mStorage = new FileStorage( mCalendar );
377 mNavigator = new DateNavigator( this, "datevav", mViewManager ); 381 mNavigator = new DateNavigator( this, "datevav", mViewManager );
378 382
379 QBoxLayout *topLayout = (QBoxLayout*)layout(); 383 QBoxLayout *topLayout = (QBoxLayout*)layout();
380#ifndef KORG_NOSPLITTER 384#ifndef KORG_NOSPLITTER
381 // create the main layout frames. 385 // create the main layout frames.
382 mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner"); 386 mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner");
383 topLayout->addWidget(mPanner); 387 topLayout->addWidget(mPanner);
384 388
385 mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner, 389 mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner,
386 "CalendarView::LeftFrame"); 390 "CalendarView::LeftFrame");
387 mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize); 391 mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize);
388 392
389 mDateNavigator = new DateNavigatorContainer( mLeftSplitter, 393 mDateNavigator = new DateNavigatorContainer( mLeftSplitter,
390 "CalendarView::DateNavigator" ); 394 "CalendarView::DateNavigator" );
391 395
392 mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize); 396 mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize);
393 mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2"); 397 mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2");
394 mTodoList->setNavigator( mNavigator ); 398 mTodoList->setNavigator( mNavigator );
395 mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView"); 399 mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView");
396 400
397#ifdef KORG_NORESOURCEVIEW 401#ifdef KORG_NORESOURCEVIEW
398 mResourceView = 0; 402 mResourceView = 0;
399#else 403#else
400 if ( mResourceManager ) { 404 if ( mResourceManager ) {
401 mResourceView = new ResourceView( mResourceManager, mLeftSplitter ); 405 mResourceView = new ResourceView( mResourceManager, mLeftSplitter );
402 mResourceView->updateView(); 406 mResourceView->updateView();
403 connect( mResourceView, SIGNAL( resourcesChanged() ), 407 connect( mResourceView, SIGNAL( resourcesChanged() ),
404 SLOT( updateView() ) ); 408 SLOT( updateView() ) );
405 } else { 409 } else {
406 mResourceView = 0; 410 mResourceView = 0;
407 } 411 }
408#endif 412#endif
409 QWidget *rightBox = new QWidget( mPanner ); 413 QWidget *rightBox = new QWidget( mPanner );
410 QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); 414 QBoxLayout *rightLayout = new QVBoxLayout( rightBox );
411 415
412 mRightFrame = new QWidgetStack( rightBox ); 416 mRightFrame = new QWidgetStack( rightBox );
413 rightLayout->addWidget( mRightFrame, 1 ); 417 rightLayout->addWidget( mRightFrame, 1 );
414 418
415 mLeftFrame = mLeftSplitter; 419 mLeftFrame = mLeftSplitter;
416#else 420#else
417 //QWidget *mainBox = new QWidget( this ); 421 //QWidget *mainBox = new QWidget( this );
418 //QWidget *leftFrame = new QWidget( mainBox ); 422 //QWidget *leftFrame = new QWidget( mainBox );
419 //QBoxLayout * mainBoxLayout; 423 //QBoxLayout * mainBoxLayout;
420 if ( KOPrefs::instance()->mVerticalScreen ) { 424 if ( KOPrefs::instance()->mVerticalScreen ) {
421 //mainBoxLayout = new QVBoxLayout(mainBox); 425 //mainBoxLayout = new QVBoxLayout(mainBox);
422 //leftFrameLayout = new QHBoxLayout(leftFrame ); 426 //leftFrameLayout = new QHBoxLayout(leftFrame );
423 mMainFrame = new KDGanttMinimizeSplitter( Qt::Vertical, this ); 427 mMainFrame = new KDGanttMinimizeSplitter( Qt::Vertical, this );
424 mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 428 mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
425 mLeftFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, mMainFrame);; 429 mLeftFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, mMainFrame);;
426 mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 430 mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
427 } else { 431 } else {
428 //mainBoxLayout = new QHBoxLayout(mainBox); 432 //mainBoxLayout = new QHBoxLayout(mainBox);
429 //leftFrameLayout = new QVBoxLayout(leftFrame ); 433 //leftFrameLayout = new QVBoxLayout(leftFrame );
430 mMainFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 434 mMainFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
431 mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Left); 435 mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Left);
432 mLeftFrame = new KDGanttMinimizeSplitter( Qt::Vertical, mMainFrame); 436 mLeftFrame = new KDGanttMinimizeSplitter( Qt::Vertical, mMainFrame);
433 mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 437 mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
434 } 438 }
435 mMainFrame->setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) ); 439 mMainFrame->setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) );
436 //QBoxLayout * leftFrameLayout; 440 //QBoxLayout * leftFrameLayout;
437 topLayout->addWidget( mMainFrame ); 441 topLayout->addWidget( mMainFrame );
438 //mainBoxLayout->addWidget (mLeftFrame); 442 //mainBoxLayout->addWidget (mLeftFrame);
439 mDateNavigator = new DateNavigatorContainer( mLeftFrame, 443 mDateNavigator = new DateNavigatorContainer( mLeftFrame,
440 "CalendarView::DateNavigator" ); 444 "CalendarView::DateNavigator" );
441#if 0 445#if 0
442 // FIXME 446 // FIXME
443 mDateNavigator = new KDateNavigator(mLeftFrame, mCalendar, TRUE, 447 mDateNavigator = new KDateNavigator(mLeftFrame, mCalendar, TRUE,
444 "CalendarView::DateNavigator", QDate::currentDate()); 448 "CalendarView::DateNavigator", QDate::currentDate());
445#endif 449#endif
446 // mDateNavigator->blockSignals( true ); 450 // mDateNavigator->blockSignals( true );
447 //leftFrameLayout->addWidget( mDateNavigator ); 451 //leftFrameLayout->addWidget( mDateNavigator );
448 mTodoList = new KOTodoView(mCalendar, mLeftFrame, "todolistsmall"); 452 mTodoList = new KOTodoView(mCalendar, mLeftFrame, "todolistsmall");
449 mFilterView = new KOFilterView(&mFilters,mLeftFrame,"CalendarView::FilterView"); 453 mFilterView = new KOFilterView(&mFilters,mLeftFrame,"CalendarView::FilterView");
450 mTodoList->setNavigator( mNavigator ); 454 mTodoList->setNavigator( mNavigator );
451#if 0 455#if 0
452 if ( QApplication::desktop()->width() < 480 ) { 456 if ( QApplication::desktop()->width() < 480 ) {
453 leftFrameLayout->addWidget(mFilterView); 457 leftFrameLayout->addWidget(mFilterView);
454 leftFrameLayout->addWidget(mTodoList, 2 ); 458 leftFrameLayout->addWidget(mTodoList, 2 );
455 459
456 } else { 460 } else {
457 leftFrameLayout->addWidget(mTodoList,2 ); 461 leftFrameLayout->addWidget(mTodoList,2 );
458 leftFrameLayout->addWidget(mFilterView ); 462 leftFrameLayout->addWidget(mFilterView );
459 } 463 }
460#endif 464#endif
461 mFilterView->hide(); 465 mFilterView->hide();
462 QWidget *rightBox = new QWidget( mMainFrame ); 466 QWidget *rightBox = new QWidget( mMainFrame );
463 //mainBoxLayout->addWidget ( rightBox, 10 ); 467 //mainBoxLayout->addWidget ( rightBox, 10 );
464 QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); 468 QBoxLayout *rightLayout = new QVBoxLayout( rightBox );
465 mRightFrame = new QWidgetStack( rightBox ); 469 mRightFrame = new QWidgetStack( rightBox );
466 rightLayout->addWidget( mRightFrame, 10 ); 470 rightLayout->addWidget( mRightFrame, 10 );
467 471
468 //mLeftFrame = (QWidget *)leftFrame; 472 //mLeftFrame = (QWidget *)leftFrame;
469 if ( KOPrefs::instance()->mVerticalScreen ) { 473 if ( KOPrefs::instance()->mVerticalScreen ) {
470 //mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() ); 474 //mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() );
471 //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() ); 475 //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() );
472 //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() ); 476 //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() );
473 //leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() ); 477 //leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() );
474 } else { 478 } else {
475 //mDateNavigator->setFixedWidth( mDateNavigator->sizeHint().width() ); 479 //mDateNavigator->setFixedWidth( mDateNavigator->sizeHint().width() );
476 //mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() ); 480 //mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() );
477 //leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() ); 481 //leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() );
478 } 482 }
479 if ( !KOPrefs::instance()->mShowDateNavigator) 483 if ( !KOPrefs::instance()->mShowDateNavigator)
480 mDateNavigator->hide(); 484 mDateNavigator->hide();
481 //qDebug("Calendarview Size %d %d ", width(), height()); 485 //qDebug("Calendarview Size %d %d ", width(), height());
482#endif 486#endif
483 487
484 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 488 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
485 SLOT( showDates( const KCal::DateList & ) ) ); 489 SLOT( showDates( const KCal::DateList & ) ) );
486 490
487 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 491 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
488 mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); 492 mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) );
489 493
490 494
491 495
492 connect( mDateNavigator, SIGNAL( showMonth( const QDate & ) ), 496 connect( mDateNavigator, SIGNAL( showMonth( const QDate & ) ),
493 mViewManager, SLOT( showMonth( const QDate & ) ) ); 497 mViewManager, SLOT( showMonth( const QDate & ) ) );
494 498
495 connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ), 499 connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ),
496 mNavigator, SLOT( selectWeek( const QDate & ) ) ); 500 mNavigator, SLOT( selectWeek( const QDate & ) ) );
497 501
498 connect( mDateNavigator, SIGNAL( goPrevYear() ), 502 connect( mDateNavigator, SIGNAL( goPrevYear() ),
499 mNavigator, SLOT( selectPreviousYear() ) ); 503 mNavigator, SLOT( selectPreviousYear() ) );
500 connect( mDateNavigator, SIGNAL( goNextYear() ), 504 connect( mDateNavigator, SIGNAL( goNextYear() ),
501 mNavigator, SLOT( selectNextYear() ) ); 505 mNavigator, SLOT( selectNextYear() ) );
502 connect( mDateNavigator, SIGNAL( goPrevMonth() ), 506 connect( mDateNavigator, SIGNAL( goPrevMonth() ),
503 mNavigator, SLOT( selectPreviousMonth() ) ); 507 mNavigator, SLOT( selectPreviousMonth() ) );
504 connect( mDateNavigator, SIGNAL( goNextMonth() ), 508 connect( mDateNavigator, SIGNAL( goNextMonth() ),
505 mNavigator, SLOT( selectNextMonth() ) ); 509 mNavigator, SLOT( selectNextMonth() ) );
506 510
507 connect( mDateNavigator, SIGNAL( goPrevious() ), 511 connect( mDateNavigator, SIGNAL( goPrevious() ),
508 mNavigator, SLOT( selectPrevious() ) ); 512 mNavigator, SLOT( selectPrevious() ) );
509 connect( mDateNavigator, SIGNAL( goNext() ), 513 connect( mDateNavigator, SIGNAL( goNext() ),
510 mNavigator, SLOT( selectNext() ) ); 514 mNavigator, SLOT( selectNext() ) );
511 connect( mDateNavigator, SIGNAL( monthSelected ( int ) ), 515 connect( mDateNavigator, SIGNAL( monthSelected ( int ) ),
512 mNavigator, SLOT( slotMonthSelect( int ) ) ); 516 mNavigator, SLOT( slotMonthSelect( int ) ) );
513 517
514 connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 518 connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
515 mNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); 519 mNavigator, SLOT( selectDates( const KCal::DateList & ) ) );
516#if 0 520#if 0
517 connect( mDateNavigator, SIGNAL( incidenceDropped( Incidence * ) ), 521 connect( mDateNavigator, SIGNAL( incidenceDropped( Incidence * ) ),
518 SLOT( incidenceAdded( Incidence *) ) ); 522 SLOT( incidenceAdded( Incidence *) ) );
519#endif 523#endif
520 // connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView())); 524 // connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView()));
521 525
522 connect( this, SIGNAL( configChanged() ), 526 connect( this, SIGNAL( configChanged() ),
523 mDateNavigator, SLOT( updateConfig() ) ); 527 mDateNavigator, SLOT( updateConfig() ) );
524 528
525 connect( mTodoList, SIGNAL( newTodoSignal() ), 529 connect( mTodoList, SIGNAL( newTodoSignal() ),
526 SLOT( newTodo() ) ); 530 SLOT( newTodo() ) );
527 connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ), 531 connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ),
528 SLOT( newSubTodo( Todo * ) ) ); 532 SLOT( newSubTodo( Todo * ) ) );
529 connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ), 533 connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ),
530 SLOT( editTodo( Todo * ) ) ); 534 SLOT( editTodo( Todo * ) ) );
531 connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ), 535 connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ),
532 SLOT( showTodo( Todo *) ) ); 536 SLOT( showTodo( Todo *) ) );
533 connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ), 537 connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ),
534 SLOT( deleteTodo( Todo *) ) ); 538 SLOT( deleteTodo( Todo *) ) );
535 connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) ); 539 connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) );
536 connect( mTodoList, SIGNAL( purgeCompletedSignal() ), 540 connect( mTodoList, SIGNAL( purgeCompletedSignal() ),
537 SLOT( purgeCompleted() ) ); 541 SLOT( purgeCompleted() ) );
538 connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ), 542 connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ),
539 SIGNAL( todoModified( Todo *, int ) ) ); 543 SIGNAL( todoModified( Todo *, int ) ) );
540 544
541 connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ), 545 connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ),
542 this, SLOT ( cloneIncidence( Incidence * ) ) ); 546 this, SLOT ( cloneIncidence( Incidence * ) ) );
543 connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ), 547 connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ),
544 this, SLOT (cancelIncidence( Incidence * ) ) ); 548 this, SLOT (cancelIncidence( Incidence * ) ) );
545 549
546 connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ), 550 connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ),
547 this, SLOT ( moveIncidence( Incidence * ) ) ); 551 this, SLOT ( moveIncidence( Incidence * ) ) );
548 connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ), 552 connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ),
549 this, SLOT ( beamIncidence( Incidence * ) ) ); 553 this, SLOT ( beamIncidence( Incidence * ) ) );
550 554
551 connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ), 555 connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ),
552 this, SLOT ( todo_unsub( Todo * ) ) ); 556 this, SLOT ( todo_unsub( Todo * ) ) );
553 557
554 connect( mTodoList, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), 558 connect( mTodoList, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ),
555 this, SLOT ( todo_resub( Todo *,Todo * ) ) ); 559 this, SLOT ( todo_resub( Todo *,Todo * ) ) );
556 connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList, 560 connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList,
557 SLOT( updateTodo( Todo *, int ) ) ); 561 SLOT( updateTodo( Todo *, int ) ) );
558 connect( this, SIGNAL( todoModified( Todo *, int )), this, 562 connect( this, SIGNAL( todoModified( Todo *, int )), this,
559 SLOT( changeTodoDisplay( Todo *, int ) ) ); 563 SLOT( changeTodoDisplay( Todo *, int ) ) );
560 564
561 565
562 connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) ); 566 connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) );
563 connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) ); 567 connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) );
564 connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) ); 568 connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) );
565 connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) ); 569 connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) );
566 570
567 571
568 572
569 573
570 574
571 connect(QApplication::clipboard(),SIGNAL(dataChanged()), 575 connect(QApplication::clipboard(),SIGNAL(dataChanged()),
572 SLOT(checkClipboard())); 576 SLOT(checkClipboard()));
573 connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ), 577 connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ),
574 SLOT( processTodoListSelection( Incidence * ) ) ); 578 SLOT( processTodoListSelection( Incidence * ) ) );
575 connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool))); 579 connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool)));
576 580
577 // kdDebug() << "CalendarView::CalendarView() done" << endl; 581 // kdDebug() << "CalendarView::CalendarView() done" << endl;
578 582
579 mDateFrame = new QVBox(0,0,WType_Popup); 583 mDateFrame = new QVBox(0,0,WType_Popup);
580 //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised); 584 //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised);
581 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised ); 585 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised );
582 mDateFrame->setLineWidth(3); 586 mDateFrame->setLineWidth(3);
583 mDateFrame->hide(); 587 mDateFrame->hide();
584 mDateFrame->setCaption( i18n( "Pick a date to display")); 588 mDateFrame->setCaption( i18n( "Pick a date to display"));
585 mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() ); 589 mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() );
586 590
587 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate))); 591 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate)));
588 592
589 mEventEditor = mDialogManager->getEventEditor(); 593 mEventEditor = mDialogManager->getEventEditor();
590 mTodoEditor = mDialogManager->getTodoEditor(); 594 mTodoEditor = mDialogManager->getTodoEditor();
591 595
592 mFlagEditDescription = false; 596 mFlagEditDescription = false;
593 597
594 mSuspendTimer = new QTimer( this ); 598 mSuspendTimer = new QTimer( this );
595 mAlarmTimer = new QTimer( this ); 599 mAlarmTimer = new QTimer( this );
596 mRecheckAlarmTimer = new QTimer( this ); 600 mRecheckAlarmTimer = new QTimer( this );
597 connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) ); 601 connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) );
598 connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) ); 602 connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) );
599 connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) ); 603 connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) );
600 mAlarmDialog = new AlarmDialog( this ); 604 mAlarmDialog = new AlarmDialog( this );
601 connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) ); 605 connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) );
602 mAlarmDialog->setServerNotification( false ); 606 mAlarmDialog->setServerNotification( false );
603 mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime ); 607 mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime );
604 608
605 609
606#ifndef DESKTOP_VERSION 610#ifndef DESKTOP_VERSION
607//US listen for arriving address resultsets 611//US listen for arriving address resultsets
608 connect(ExternalAppHandler::instance(), SIGNAL(receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)), 612 connect(ExternalAppHandler::instance(), SIGNAL(receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)),
609 this, SLOT(insertBirthdays(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&))); 613 this, SLOT(insertBirthdays(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)));
610#endif 614#endif
611 mDateNavigator->setCalendar( mCalendar ); 615 mDateNavigator->setCalendar( mCalendar );
612} 616}
613 617
614 618
615CalendarView::~CalendarView() 619CalendarView::~CalendarView()
616{ 620{
617 // kdDebug() << "~CalendarView()" << endl; 621 // kdDebug() << "~CalendarView()" << endl;
618 //qDebug("CalendarView::~CalendarView() "); 622 //qDebug("CalendarView::~CalendarView() ");
619 delete mDialogManager; 623 delete mDialogManager;
620 delete mViewManager; 624 delete mViewManager;
621 delete mStorage; 625 delete mStorage;
622 delete mDateFrame ; 626 delete mDateFrame ;
623 delete beamDialog; 627 delete beamDialog;
624 delete mEventViewerDialog; 628 delete mEventViewerDialog;
625 //kdDebug() << "~CalendarView() done" << endl; 629 //kdDebug() << "~CalendarView() done" << endl;
626} 630}
627void CalendarView::checkAlarms() 631void CalendarView::checkAlarms()
628{ 632{
629 KConfig *config = KOGlobals::config(); 633 KConfig *config = KOGlobals::config();
630 config->setGroup( "AppRun" ); 634 config->setGroup( "AppRun" );
631 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) ); 635 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) );
632 int secs = config->readNumEntry( "LatestProgramStop" ) - 30; 636 int secs = config->readNumEntry( "LatestProgramStop" ) - 30;
633 secs -= ( 3600 * 24*3 ); // debug only 637 secs -= ( 3600 * 24*3 ); // debug only
634 QDateTime latest = dt.addSecs ( secs ); 638 QDateTime latest = dt.addSecs ( secs );
635 qDebug("KO: Last termination on %s ", latest.toString().latin1()); 639 qDebug("KO: Last termination on %s ", latest.toString().latin1());
636 QPtrList<Incidence> el = mCalendar->rawIncidences(); 640 QPtrList<Incidence> el = mCalendar->rawIncidences();
637 QPtrList<Incidence> al; 641 QPtrList<Incidence> al;
638 Incidence* inL = el.first(); 642 Incidence* inL = el.first();
639 while ( inL ) { 643 while ( inL ) {
640 bool ok = false; 644 bool ok = false;
641 int offset = 0; 645 int offset = 0;
642 QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ; 646 QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ;
643 if ( ok ) { 647 if ( ok ) {
644 //qDebug("OK %s",next.toString().latin1()); 648 //qDebug("OK %s",next.toString().latin1());
645 if ( next < QDateTime::currentDateTime() ) { 649 if ( next < QDateTime::currentDateTime() ) {
646 al.append( inL ); 650 al.append( inL );
647 qDebug("found missed alarm: %s ", inL->summary().latin1() ); 651 //qDebug("found missed alarm: %s ", inL->summary().latin1() );
648 } 652 }
649 } 653 }
650 inL = el.next(); 654 inL = el.next();
651 } 655 }
652 if ( al.count() ) { 656 if ( al.count() ) {
653 QDialog* dia = new QDialog( this, "huhu", false ); 657 QDialog* dia = new QDialog( this, "huhu", false, WDestructiveClose | WStyle_StaysOnTop );
654 dia->setCaption( i18n("KO/Pi: Missing alarm notification!") ); 658 dia->setCaption( i18n("KO/Pi: Missing alarms!") );
655 QVBoxLayout* lay = new QVBoxLayout( dia ); 659 QVBoxLayout* lay = new QVBoxLayout( dia );
656 lay->setSpacing( 0 ); 660 lay->setSpacing( 0 );
657 lay->setMargin( 0 ); 661 lay->setMargin( 0 );
658 MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest ); 662 MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest );
659 connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) )); 663 connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) ));
660 lay->addWidget( matb ); 664 lay->addWidget( matb );
661 int si = 220; 665 int si = 220;
662 if ( QApplication::desktop()->width() > 470 ) 666 if ( QApplication::desktop()->width() > 470 )
663 si = 400; 667 si = 400;
664 dia->resize(si,si/2); 668 dia->resize(si,si/2);
665 dia->setBackgroundColor( QColor( 255, 255, 255 ) ); 669 dia->setBackgroundColor( QColor( 255, 255, 255 ) );
666 dia->show(); 670 dia->show();
667 671
668 } 672 }
669} 673}
670void CalendarView::showDay( QDate d ) 674void CalendarView::showDay( QDate d )
671{ 675{
672 dateNavigator()->blockSignals( true ); 676 dateNavigator()->blockSignals( true );
673 dateNavigator()->selectDate( d ); 677 dateNavigator()->selectDate( d );
674 dateNavigator()->blockSignals( false ); 678 dateNavigator()->blockSignals( false );
675 mViewManager->showDayView(); 679 mViewManager->showDayView();
676 //dateNavigator()->selectDate( d ); 680 //dateNavigator()->selectDate( d );
677} 681}
678void CalendarView::timerAlarm() 682void CalendarView::timerAlarm()
679{ 683{
680 //qDebug("CalendarView::timerAlarm() "); 684 //qDebug("CalendarView::timerAlarm() ");
681 computeAlarm(mAlarmNotification ); 685 computeAlarm(mAlarmNotification );
682} 686}
683 687
684void CalendarView::suspendAlarm() 688void CalendarView::suspendAlarm()
685{ 689{
686 //qDebug(" CalendarView::suspendAlarm() "); 690 //qDebug(" CalendarView::suspendAlarm() ");
687 computeAlarm(mSuspendAlarmNotification ); 691 computeAlarm(mSuspendAlarmNotification );
688 692
689} 693}
690 694
691void CalendarView::startAlarm( QString mess , QString filename) 695void CalendarView::startAlarm( QString mess , QString filename)
692{ 696{
693 697
694 topLevelWidget()->showNormal(); 698 topLevelWidget()->showNormal();
695 topLevelWidget()->setActiveWindow(); 699 topLevelWidget()->setActiveWindow();
696 topLevelWidget()->raise(); 700 topLevelWidget()->raise();
697 701
698 mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount ); 702 mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount );
699 QTimer::singleShot( 3000, this, SLOT( checkNextTimerAlarm() ) ); 703 QTimer::singleShot( 3000, this, SLOT( checkNextTimerAlarm() ) );
700 704
701} 705}
702 706
703void CalendarView::checkNextTimerAlarm() 707void CalendarView::checkNextTimerAlarm()
704{ 708{
705 mCalendar->checkAlarmForIncidence( 0, true ); 709 mCalendar->checkAlarmForIncidence( 0, true );
706} 710}
707 711
708void CalendarView::computeAlarm( QString msg ) 712void CalendarView::computeAlarm( QString msg )
709{ 713{
710 714
711 QString mess = msg; 715 QString mess = msg;
712 QString mAlarmMessage = mess.mid( 9 ); 716 QString mAlarmMessage = mess.mid( 9 );
713 QString filename = MainWindow::resourcePath(); 717 QString filename = MainWindow::resourcePath();
714 filename += "koalarm.wav"; 718 filename += "koalarm.wav";
715 QString tempfilename; 719 QString tempfilename;
716 if ( mess.left( 13 ) == "suspend_alarm") { 720 if ( mess.left( 13 ) == "suspend_alarm") {
717 bool error = false; 721 bool error = false;
718 int len = mess.mid( 13 ).find("+++"); 722 int len = mess.mid( 13 ).find("+++");
719 if ( len < 2 ) 723 if ( len < 2 )
720 error = true; 724 error = true;
721 else { 725 else {
722 tempfilename = mess.mid( 13, len ); 726 tempfilename = mess.mid( 13, len );
723 if ( !QFile::exists( tempfilename ) ) 727 if ( !QFile::exists( tempfilename ) )
724 error = true; 728 error = true;
725 } 729 }
726 if ( ! error ) { 730 if ( ! error ) {
727 filename = tempfilename; 731 filename = tempfilename;
728 } 732 }
729 mAlarmMessage = mess.mid( 13+len+3 ); 733 mAlarmMessage = mess.mid( 13+len+3 );
730 //qDebug("suspend file %s ",tempfilename.latin1() ); 734 //qDebug("suspend file %s ",tempfilename.latin1() );
731 startAlarm( mAlarmMessage, filename); 735 startAlarm( mAlarmMessage, filename);
732 return; 736 return;
733 } 737 }
734 if ( mess.left( 11 ) == "timer_alarm") { 738 if ( mess.left( 11 ) == "timer_alarm") {
735 //mTimerTime = 0; 739 //mTimerTime = 0;
736 startAlarm( mess.mid( 11 ), filename ); 740 startAlarm( mess.mid( 11 ), filename );
737 return; 741 return;
738 } 742 }
739 if ( mess.left( 10 ) == "proc_alarm") { 743 if ( mess.left( 10 ) == "proc_alarm") {
740 bool error = false; 744 bool error = false;
741 int len = mess.mid( 10 ).find("+++"); 745 int len = mess.mid( 10 ).find("+++");
742 if ( len < 2 ) 746 if ( len < 2 )
743 error = true; 747 error = true;
744 else { 748 else {
745 tempfilename = mess.mid( 10, len ); 749 tempfilename = mess.mid( 10, len );
746 if ( !QFile::exists( tempfilename ) ) 750 if ( !QFile::exists( tempfilename ) )
747 error = true; 751 error = true;
748 } 752 }
749 if ( error ) { 753 if ( error ) {
750 mAlarmMessage = "Procedure Alarm\nError - File not found\n"; 754 mAlarmMessage = "Procedure Alarm\nError - File not found\n";
751 mAlarmMessage += mess.mid( 10+len+3+9 ); 755 mAlarmMessage += mess.mid( 10+len+3+9 );
752 } else { 756 } else {
753 //QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); 757 //QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent");
754 //qDebug("-----system command %s ",tempfilename.latin1() ); 758 //qDebug("-----system command %s ",tempfilename.latin1() );
755#ifndef _WIN32_ 759#ifndef _WIN32_
756 if ( vfork () == 0 ) { 760 if ( vfork () == 0 ) {
757 execl ( tempfilename.latin1(), 0 ); 761 execl ( tempfilename.latin1(), 0 );
758 return; 762 return;
759 } 763 }
760#else 764#else
761 QProcess* p = new QProcess(); 765 QProcess* p = new QProcess();
762 p->addArgument( tempfilename.latin1() ); 766 p->addArgument( tempfilename.latin1() );
763 p->start(); 767 p->start();
764 return; 768 return;
765#endif 769#endif
766 770
767 return; 771 return;
768 } 772 }
769 773
770 //qDebug("+++++++system command %s ",tempfilename.latin1() ); 774 //qDebug("+++++++system command %s ",tempfilename.latin1() );
771 } 775 }
772 if ( mess.left( 11 ) == "audio_alarm") { 776 if ( mess.left( 11 ) == "audio_alarm") {
773 bool error = false; 777 bool error = false;
774 int len = mess.mid( 11 ).find("+++"); 778 int len = mess.mid( 11 ).find("+++");
775 if ( len < 2 ) 779 if ( len < 2 )
776 error = true; 780 error = true;
777 else { 781 else {
778 tempfilename = mess.mid( 11, len ); 782 tempfilename = mess.mid( 11, len );
779 if ( !QFile::exists( tempfilename ) ) 783 if ( !QFile::exists( tempfilename ) )
780 error = true; 784 error = true;
781 } 785 }
782 if ( ! error ) { 786 if ( ! error ) {
783 filename = tempfilename; 787 filename = tempfilename;
784 } 788 }
785 mAlarmMessage = mess.mid( 11+len+3+9 ); 789 mAlarmMessage = mess.mid( 11+len+3+9 );
786 //qDebug("audio file command %s ",tempfilename.latin1() ); 790 //qDebug("audio file command %s ",tempfilename.latin1() );
787 } 791 }
788 if ( mess.left( 9 ) == "cal_alarm") { 792 if ( mess.left( 9 ) == "cal_alarm") {
789 mAlarmMessage = mess.mid( 9 ) ; 793 mAlarmMessage = mess.mid( 9 ) ;
790 } 794 }
791 795
792 startAlarm( mAlarmMessage, filename ); 796 startAlarm( mAlarmMessage, filename );
793 797
794 798
795} 799}
796 800
797void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString &noti ) 801void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString &noti )
798{ 802{
799 //qDebug("+++++addSUSPENDAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); 803 //qDebug("+++++addSUSPENDAlarm %s %s ", qdt.toString().latin1() , noti.latin1() );
800 804
801 mSuspendAlarmNotification = noti; 805 mSuspendAlarmNotification = noti;
802 int ms = QDateTime::currentDateTime().secsTo( qdt )*1000; 806 int ms = QDateTime::currentDateTime().secsTo( qdt )*1000;
803 //qDebug("Suspend Alarm timer started with secs: %d ", ms/1000); 807 //qDebug("Suspend Alarm timer started with secs: %d ", ms/1000);
804 mSuspendTimer->start( ms , true ); 808 mSuspendTimer->start( ms , true );
805 809
806} 810}
807 811
808void CalendarView::addAlarm(const QDateTime &qdt, const QString &noti ) 812void CalendarView::addAlarm(const QDateTime &qdt, const QString &noti )
809{ 813{
810 mNextAlarmDateTime = qdt; 814 mNextAlarmDateTime = qdt;
811 //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); 815 //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() );
812 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { 816 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) {
813#ifndef DESKTOP_VERSION 817#ifndef DESKTOP_VERSION
814 AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() ); 818 AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() );
815#endif 819#endif
816 return; 820 return;
817 } 821 }
818 int maxSec; 822 int maxSec;
819 //maxSec = 5; //testing only 823 //maxSec = 5; //testing only
820 maxSec = 86400+3600; // one day+1hour 824 maxSec = 86400+3600; // one day+1hour
821 mAlarmNotification = noti; 825 mAlarmNotification = noti;
822 int sec = QDateTime::currentDateTime().secsTo( qdt ); 826 int sec = QDateTime::currentDateTime().secsTo( qdt );
823 if ( sec > maxSec ) { 827 if ( sec > maxSec ) {
824 mRecheckAlarmTimer->start( maxSec * 1000 ); 828 mRecheckAlarmTimer->start( maxSec * 1000 );
825 // qDebug("recheck Alarm timer started with secs: %d next alarm in sec:%d", maxSec,sec ); 829 // qDebug("recheck Alarm timer started with secs: %d next alarm in sec:%d", maxSec,sec );
826 return; 830 return;
827 } else { 831 } else {
828 mRecheckAlarmTimer->stop(); 832 mRecheckAlarmTimer->stop();
829 } 833 }
830 //qDebug("Alarm timer started with secs: %d ", sec); 834 //qDebug("Alarm timer started with secs: %d ", sec);
831 mAlarmTimer->start( sec *1000 , true ); 835 mAlarmTimer->start( sec *1000 , true );
832 836
833} 837}
834// called by mRecheckAlarmTimer to get next alarm 838// called by mRecheckAlarmTimer to get next alarm
835// we need this, because a QTimer has only a max range of 25 days 839// we need this, because a QTimer has only a max range of 25 days
836void CalendarView::recheckTimerAlarm() 840void CalendarView::recheckTimerAlarm()
837{ 841{
838 mAlarmTimer->stop(); 842 mAlarmTimer->stop();
839 mRecheckAlarmTimer->stop(); 843 mRecheckAlarmTimer->stop();
840 mCalendar->checkAlarmForIncidence( 0, true ); 844 mCalendar->checkAlarmForIncidence( 0, true );
841} 845}
842void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti ) 846void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti )
843{ 847{
844 //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); 848 //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() );
845 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { 849 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) {
846#ifndef DESKTOP_VERSION 850#ifndef DESKTOP_VERSION
847 AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() ); 851 AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() );
848#endif 852#endif
849 return; 853 return;
850 } 854 }
851 mAlarmTimer->stop(); 855 mAlarmTimer->stop();
852} 856}
853void CalendarView::selectWeekNum ( int num ) 857void CalendarView::selectWeekNum ( int num )
854{ 858{
855 dateNavigator()->blockSignals( true ); 859 dateNavigator()->blockSignals( true );
856 dateNavigator()->selectWeek( num ); 860 dateNavigator()->selectWeek( num );
857 dateNavigator()->blockSignals( false ); 861 dateNavigator()->blockSignals( false );
858 mViewManager->showWeekView(); 862 mViewManager->showWeekView();
859} 863}
860KOViewManager *CalendarView::viewManager() 864KOViewManager *CalendarView::viewManager()
861{ 865{
862 return mViewManager; 866 return mViewManager;
863} 867}
864 868
865KODialogManager *CalendarView::dialogManager() 869KODialogManager *CalendarView::dialogManager()
866{ 870{
867 return mDialogManager; 871 return mDialogManager;
868} 872}
869 873
870QDate CalendarView::startDate() 874QDate CalendarView::startDate()
871{ 875{
872 DateList dates = mNavigator->selectedDates(); 876 DateList dates = mNavigator->selectedDates();
873 877
874 return dates.first(); 878 return dates.first();
875} 879}
876 880
877QDate CalendarView::endDate() 881QDate CalendarView::endDate()
878{ 882{
879 DateList dates = mNavigator->selectedDates(); 883 DateList dates = mNavigator->selectedDates();
880 884
881 return dates.last(); 885 return dates.last();
882} 886}
883 887
884 888
885void CalendarView::createPrinter() 889void CalendarView::createPrinter()
886{ 890{
887#ifndef KORG_NOPRINTER 891#ifndef KORG_NOPRINTER
888 if (!mCalPrinter) { 892 if (!mCalPrinter) {
889 mCalPrinter = new CalPrinter(this, mCalendar); 893 mCalPrinter = new CalPrinter(this, mCalendar);
890 connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig())); 894 connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig()));
891 } 895 }
892#endif 896#endif
893} 897}
894 898
895 899
896//KOPrefs::instance()->mWriteBackFile 900//KOPrefs::instance()->mWriteBackFile
897//KOPrefs::instance()->mWriteBackExistingOnly 901//KOPrefs::instance()->mWriteBackExistingOnly
898 902
899// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 903// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
900// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 904// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
901// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 905// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
902// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 906// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
903// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 907// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
904// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 908// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
905 909
906int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) 910int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full )
907{ 911{
908 912
909 // 0 equal 913 // 0 equal
910 // 1 take local 914 // 1 take local
911 // 2 take remote 915 // 2 take remote
912 // 3 cancel 916 // 3 cancel
913 QDateTime lastSync = mLastCalendarSync; 917 QDateTime lastSync = mLastCalendarSync;
914 QDateTime localMod = local->lastModified(); 918 QDateTime localMod = local->lastModified();
915 QDateTime remoteMod = remote->lastModified(); 919 QDateTime remoteMod = remote->lastModified();
916 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 920 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
917 bool remCh, locCh; 921 bool remCh, locCh;
918 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); 922 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
919 //if ( remCh ) 923 //if ( remCh )
920 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); 924 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
921 locCh = ( localMod > mLastCalendarSync ); 925 locCh = ( localMod > mLastCalendarSync );
922 if ( !remCh && ! locCh ) { 926 if ( !remCh && ! locCh ) {
923 //qDebug("both not changed "); 927 //qDebug("both not changed ");
924 lastSync = localMod.addDays(1); 928 lastSync = localMod.addDays(1);
925 if ( mode <= SYNC_PREF_ASK ) 929 if ( mode <= SYNC_PREF_ASK )
926 return 0; 930 return 0;
927 } else { 931 } else {
928 if ( locCh ) { 932 if ( locCh ) {
929 //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1()); 933 //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1());
930 lastSync = localMod.addDays( -1 ); 934 lastSync = localMod.addDays( -1 );
931 if ( !remCh ) 935 if ( !remCh )
932 remoteMod = ( lastSync.addDays( -1 ) ); 936 remoteMod = ( lastSync.addDays( -1 ) );
933 } else { 937 } else {
934 //qDebug(" not loc changed "); 938 //qDebug(" not loc changed ");
935 lastSync = localMod.addDays( 1 ); 939 lastSync = localMod.addDays( 1 );
936 if ( remCh ) 940 if ( remCh )
937 remoteMod =( lastSync.addDays( 1 ) ); 941 remoteMod =( lastSync.addDays( 1 ) );
938 942
939 } 943 }
940 } 944 }
941 full = true; 945 full = true;
942 if ( mode < SYNC_PREF_ASK ) 946 if ( mode < SYNC_PREF_ASK )
943 mode = SYNC_PREF_ASK; 947 mode = SYNC_PREF_ASK;
944 } else { 948 } else {
945 if ( localMod == remoteMod ) 949 if ( localMod == remoteMod )
946 // if ( local->revision() == remote->revision() ) 950 // if ( local->revision() == remote->revision() )
947 return 0; 951 return 0;
948 952
949 } 953 }
950 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() ); 954 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() );
951 955
952 //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision()); 956 //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision());
953 //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() ); 957 //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() );
954 //full = true; //debug only 958 //full = true; //debug only
955 if ( full ) { 959 if ( full ) {
956 bool equ = false; 960 bool equ = false;
957 if ( local->type() == "Event" ) { 961 if ( local->type() == "Event" ) {
958 equ = (*((Event*) local) == *((Event*) remote)); 962 equ = (*((Event*) local) == *((Event*) remote));
959 } 963 }
960 else if ( local->type() =="Todo" ) 964 else if ( local->type() =="Todo" )
961 equ = (*((Todo*) local) == (*(Todo*) remote)); 965 equ = (*((Todo*) local) == (*(Todo*) remote));
962 else if ( local->type() =="Journal" ) 966 else if ( local->type() =="Journal" )
963 equ = (*((Journal*) local) == *((Journal*) remote)); 967 equ = (*((Journal*) local) == *((Journal*) remote));
964 if ( equ ) { 968 if ( equ ) {
965 //qDebug("equal "); 969 //qDebug("equal ");
966 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 970 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
967 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); 971 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
968 } 972 }
969 if ( mode < SYNC_PREF_FORCE_LOCAL ) 973 if ( mode < SYNC_PREF_FORCE_LOCAL )
970 return 0; 974 return 0;
971 975
972 }//else //debug only 976 }//else //debug only
973 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); 977 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1());
974 } 978 }
975 int result; 979 int result;
976 bool localIsNew; 980 bool localIsNew;
977 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , localMod.toString().latin1() , remoteMod.toString().latin1() ); 981 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , localMod.toString().latin1() , remoteMod.toString().latin1() );
978 982
979 983
980 // ************************************************ 984 // ************************************************
981 // ************************************************ 985 // ************************************************
982 // ************************************************ 986 // ************************************************
983 // We may have that lastSync > remoteMod AND lastSync > localMod 987 // We may have that lastSync > remoteMod AND lastSync > localMod
984 // BUT remoteMod != localMod 988 // BUT remoteMod != localMod
985 989
986 990
987 if ( full && mode < SYNC_PREF_NEWEST ) 991 if ( full && mode < SYNC_PREF_NEWEST )
988 mode = SYNC_PREF_ASK; 992 mode = SYNC_PREF_ASK;
989 993
990 switch( mode ) { 994 switch( mode ) {
991 case SYNC_PREF_LOCAL: 995 case SYNC_PREF_LOCAL:
992 if ( lastSync > remoteMod ) 996 if ( lastSync > remoteMod )
993 return 1; 997 return 1;
994 if ( lastSync > localMod ) 998 if ( lastSync > localMod )
995 return 2; 999 return 2;
996 return 1; 1000 return 1;
997 break; 1001 break;
998 case SYNC_PREF_REMOTE: 1002 case SYNC_PREF_REMOTE:
999 if ( lastSync > localMod ) 1003 if ( lastSync > localMod )
1000 return 2; 1004 return 2;
1001 if ( lastSync > remoteMod ) 1005 if ( lastSync > remoteMod )
1002 return 1; 1006 return 1;
1003 return 2; 1007 return 2;
1004 break; 1008 break;
1005 case SYNC_PREF_NEWEST: 1009 case SYNC_PREF_NEWEST:
1006 if ( localMod >= remoteMod ) 1010 if ( localMod >= remoteMod )
1007 return 1; 1011 return 1;
1008 else 1012 else
1009 return 2; 1013 return 2;
1010 break; 1014 break;
1011 case SYNC_PREF_ASK: 1015 case SYNC_PREF_ASK:
1012 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 1016 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
1013 if ( lastSync > remoteMod && lastSync > localMod) 1017 if ( lastSync > remoteMod && lastSync > localMod)
1014 return 0; 1018 return 0;
1015 if ( lastSync > remoteMod ) 1019 if ( lastSync > remoteMod )
1016 return 1; 1020 return 1;
1017 if ( lastSync > localMod ) 1021 if ( lastSync > localMod )
1018 return 2; 1022 return 2;
1019 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 1023 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
1020 localIsNew = localMod >= remoteMod; 1024 localIsNew = localMod >= remoteMod;
1021 if ( localIsNew ) 1025 if ( localIsNew )
1022 getEventViewerDialog()->setColorMode( 1 ); 1026 getEventViewerDialog()->setColorMode( 1 );
1023 else 1027 else
1024 getEventViewerDialog()->setColorMode( 2 ); 1028 getEventViewerDialog()->setColorMode( 2 );
1025 getEventViewerDialog()->setIncidence(local); 1029 getEventViewerDialog()->setIncidence(local);
1026 if ( localIsNew ) 1030 if ( localIsNew )
1027 getEventViewerDialog()->setColorMode( 2 ); 1031 getEventViewerDialog()->setColorMode( 2 );
1028 else 1032 else
1029 getEventViewerDialog()->setColorMode( 1 ); 1033 getEventViewerDialog()->setColorMode( 1 );
1030 getEventViewerDialog()->addIncidence(remote); 1034 getEventViewerDialog()->addIncidence(remote);
1031 getEventViewerDialog()->setColorMode( 0 ); 1035 getEventViewerDialog()->setColorMode( 0 );
1032 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); 1036 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() );
1033 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); 1037 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!"));
1034 getEventViewerDialog()->showMe(); 1038 getEventViewerDialog()->showMe();
1035 result = getEventViewerDialog()->executeS( localIsNew ); 1039 result = getEventViewerDialog()->executeS( localIsNew );
1036 return result; 1040 return result;
1037 1041
1038 break; 1042 break;
1039 case SYNC_PREF_FORCE_LOCAL: 1043 case SYNC_PREF_FORCE_LOCAL:
1040 return 1; 1044 return 1;
1041 break; 1045 break;
1042 case SYNC_PREF_FORCE_REMOTE: 1046 case SYNC_PREF_FORCE_REMOTE:
1043 return 2; 1047 return 2;
1044 break; 1048 break;
1045 1049
1046 default: 1050 default:
1047 // SYNC_PREF_TAKE_BOTH not implemented 1051 // SYNC_PREF_TAKE_BOTH not implemented
1048 break; 1052 break;
1049 } 1053 }
1050 return 0; 1054 return 0;
1051} 1055}
1052Event* CalendarView::getLastSyncEvent() 1056Event* CalendarView::getLastSyncEvent()
1053{ 1057{
1054 Event* lse; 1058 Event* lse;
1055 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 1059 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
1056 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice ); 1060 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice );
1057 if (!lse) { 1061 if (!lse) {
1058 lse = new Event(); 1062 lse = new Event();
1059 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); 1063 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice );
1060 QString sum = ""; 1064 QString sum = "";
1061 if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) 1065 if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
1062 sum = "E: "; 1066 sum = "E: ";
1063 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); 1067 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
1064 lse->setDtStart( mLastCalendarSync ); 1068 lse->setDtStart( mLastCalendarSync );
1065 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 1069 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
1066 lse->setCategories( i18n("SyncEvent") ); 1070 lse->setCategories( i18n("SyncEvent") );
1067 lse->setReadOnly( true ); 1071 lse->setReadOnly( true );
1068 mCalendar->addEvent( lse ); 1072 mCalendar->addEvent( lse );
1069 } 1073 }
1070 1074
1071 return lse; 1075 return lse;
1072 1076
1073} 1077}
1074 1078
1075// we check, if the to delete event has a id for a profile 1079// we check, if the to delete event has a id for a profile
1076// if yes, we set this id in the profile to delete 1080// if yes, we set this id in the profile to delete
1077void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) 1081void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete )
1078{ 1082{
1079 if ( lastSync.count() == 0 ) { 1083 if ( lastSync.count() == 0 ) {
1080 //qDebug(" lastSync.count() == 0"); 1084 //qDebug(" lastSync.count() == 0");
1081 return; 1085 return;
1082 } 1086 }
1083 if ( toDelete->type() == "Journal" ) 1087 if ( toDelete->type() == "Journal" )
1084 return; 1088 return;
1085 1089
1086 Event* eve = lastSync.first(); 1090 Event* eve = lastSync.first();
1087 1091
1088 while ( eve ) { 1092 while ( eve ) {
1089 QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name 1093 QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
1090 if ( !id.isEmpty() ) { 1094 if ( !id.isEmpty() ) {
1091 QString des = eve->description(); 1095 QString des = eve->description();
1092 QString pref = "e"; 1096 QString pref = "e";
1093 if ( toDelete->type() == "Todo" ) 1097 if ( toDelete->type() == "Todo" )
1094 pref = "t"; 1098 pref = "t";
1095 des += pref+ id + ","; 1099 des += pref+ id + ",";
1096 eve->setReadOnly( false ); 1100 eve->setReadOnly( false );
1097 eve->setDescription( des ); 1101 eve->setDescription( des );
1098 //qDebug("setdes %s ", des.latin1()); 1102 //qDebug("setdes %s ", des.latin1());
1099 eve->setReadOnly( true ); 1103 eve->setReadOnly( true );
1100 } 1104 }
1101 eve = lastSync.next(); 1105 eve = lastSync.next();
1102 } 1106 }
1103 1107
1104} 1108}
1105void CalendarView::checkExternalId( Incidence * inc ) 1109void CalendarView::checkExternalId( Incidence * inc )
1106{ 1110{
1107 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; 1111 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ;
1108 checkExternSyncEvent( lastSync, inc ); 1112 checkExternSyncEvent( lastSync, inc );
1109 1113
1110} 1114}
1111bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) 1115bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
1112{ 1116{
1113 bool syncOK = true; 1117 bool syncOK = true;
1114 int addedEvent = 0; 1118 int addedEvent = 0;
1115 int addedEventR = 0; 1119 int addedEventR = 0;
1116 int deletedEventR = 0; 1120 int deletedEventR = 0;
1117 int deletedEventL = 0; 1121 int deletedEventL = 0;
1118 int changedLocal = 0; 1122 int changedLocal = 0;
1119 int changedRemote = 0; 1123 int changedRemote = 0;
1120 int filteredIN = 0; 1124 int filteredIN = 0;
1121 int filteredOUT = 0; 1125 int filteredOUT = 0;
1122 //QPtrList<Event> el = local->rawEvents(); 1126 //QPtrList<Event> el = local->rawEvents();
1123 Event* eventR; 1127 Event* eventR;
1124 QString uid; 1128 QString uid;
1125 int take; 1129 int take;
1126 Event* eventL; 1130 Event* eventL;
1127 Event* eventRSync; 1131 Event* eventRSync;
1128 Event* eventLSync; 1132 Event* eventLSync;
1129 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); 1133 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents();
1130 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); 1134 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
1131 bool fullDateRange = false; 1135 bool fullDateRange = false;
1132 local->resetTempSyncStat(); 1136 local->resetTempSyncStat();
1133 mLastCalendarSync = QDateTime::currentDateTime(); 1137 mLastCalendarSync = QDateTime::currentDateTime();
1134 if ( mSyncManager->syncWithDesktop() ) { 1138 if ( mSyncManager->syncWithDesktop() ) {
1135 remote->resetPilotStat(1); 1139 remote->resetPilotStat(1);
1136 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 1140 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
1137 mLastCalendarSync = KSyncManager::mRequestedSyncEvent; 1141 mLastCalendarSync = KSyncManager::mRequestedSyncEvent;
1138 qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() ); 1142 qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() );
1139 } else { 1143 } else {
1140 qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime "); 1144 qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime ");
1141 } 1145 }
1142 } 1146 }
1143 QDateTime modifiedCalendar = mLastCalendarSync; 1147 QDateTime modifiedCalendar = mLastCalendarSync;
1144 eventLSync = getLastSyncEvent(); 1148 eventLSync = getLastSyncEvent();
1145 eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); 1149 eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
1146 if ( eventR ) { 1150 if ( eventR ) {
1147 eventRSync = (Event*) eventR->clone(); 1151 eventRSync = (Event*) eventR->clone();
1148 remote->deleteEvent(eventR ); 1152 remote->deleteEvent(eventR );
1149 1153
1150 } else { 1154 } else {
1151 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) { 1155 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) {
1152 eventRSync = (Event*)eventLSync->clone(); 1156 eventRSync = (Event*)eventLSync->clone();
1153 } else { 1157 } else {
1154 fullDateRange = true; 1158 fullDateRange = true;
1155 eventRSync = new Event(); 1159 eventRSync = new Event();
1156 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); 1160 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
1157 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); 1161 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
1158 eventRSync->setDtStart( mLastCalendarSync ); 1162 eventRSync->setDtStart( mLastCalendarSync );
1159 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 1163 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
1160 eventRSync->setCategories( i18n("SyncEvent") ); 1164 eventRSync->setCategories( i18n("SyncEvent") );
1161 } 1165 }
1162 } 1166 }
1163 if ( eventLSync->dtStart() == mLastCalendarSync ) 1167 if ( eventLSync->dtStart() == mLastCalendarSync )
1164 fullDateRange = true; 1168 fullDateRange = true;
1165 1169
1166 if ( ! fullDateRange ) { 1170 if ( ! fullDateRange ) {
1167 if ( eventLSync->dtStart() != eventRSync->dtStart() ) { 1171 if ( eventLSync->dtStart() != eventRSync->dtStart() ) {
1168 1172
1169 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); 1173 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() );
1170 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); 1174 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec());
1171 fullDateRange = true; 1175 fullDateRange = true;
1172 } 1176 }
1173 } 1177 }
1174 if ( mSyncManager->syncWithDesktop() ) { 1178 if ( mSyncManager->syncWithDesktop() ) {
1175 fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync ); 1179 fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync );
1176 } 1180 }
1177 if ( fullDateRange ) 1181 if ( fullDateRange )
1178 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); 1182 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365);
1179 else 1183 else
1180 mLastCalendarSync = eventLSync->dtStart(); 1184 mLastCalendarSync = eventLSync->dtStart();
1181 // for resyncing if own file has changed 1185 // for resyncing if own file has changed
1182 if ( mCurrentSyncDevice == "deleteaftersync" ) { 1186 if ( mCurrentSyncDevice == "deleteaftersync" ) {
1183 mLastCalendarSync = loadedFileVersion; 1187 mLastCalendarSync = loadedFileVersion;
1184 //qDebug("setting mLastCalendarSync "); 1188 //qDebug("setting mLastCalendarSync ");
1185 } 1189 }
1186 //qDebug("*************************** "); 1190 //qDebug("*************************** ");
1187 qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange); 1191 qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange);
1188 QPtrList<Incidence> er = remote->rawIncidences(); 1192 QPtrList<Incidence> er = remote->rawIncidences();
1189 Incidence* inR = er.first(); 1193 Incidence* inR = er.first();
1190 Incidence* inL; 1194 Incidence* inL;
1191 QProgressBar bar( er.count(),0 ); 1195 QProgressBar bar( er.count(),0 );
1192 bar.setCaption (i18n("Syncing - close to abort!") ); 1196 bar.setCaption (i18n("Syncing - close to abort!") );
1193 1197
1194 // ************** setting up filter ************* 1198 // ************** setting up filter *************
1195 CalFilter *filterIN = 0; 1199 CalFilter *filterIN = 0;
1196 CalFilter *filterOUT = 0; 1200 CalFilter *filterOUT = 0;
1197 CalFilter *filter = mFilters.first(); 1201 CalFilter *filter = mFilters.first();
1198 while(filter) { 1202 while(filter) {
1199 if ( filter->name() == mSyncManager->mFilterInCal ) 1203 if ( filter->name() == mSyncManager->mFilterInCal )
1200 filterIN = filter; 1204 filterIN = filter;
1201 if ( filter->name() == mSyncManager->mFilterOutCal ) 1205 if ( filter->name() == mSyncManager->mFilterOutCal )
1202 filterOUT = filter; 1206 filterOUT = filter;
1203 filter = mFilters.next(); 1207 filter = mFilters.next();
1204 } 1208 }
1205 int w = 300; 1209 int w = 300;
1206 if ( QApplication::desktop()->width() < 320 ) 1210 if ( QApplication::desktop()->width() < 320 )
1207 w = 220; 1211 w = 220;
1208 int h = bar.sizeHint().height() ; 1212 int h = bar.sizeHint().height() ;
1209 int dw = QApplication::desktop()->width(); 1213 int dw = QApplication::desktop()->width();
1210 int dh = QApplication::desktop()->height(); 1214 int dh = QApplication::desktop()->height();
1211 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1215 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1212 bar.show(); 1216 bar.show();
1213 int modulo = (er.count()/10)+1; 1217 int modulo = (er.count()/10)+1;
1214 int incCounter = 0; 1218 int incCounter = 0;
1215 while ( inR ) { 1219 while ( inR ) {
1216 if ( ! bar.isVisible() ) 1220 if ( ! bar.isVisible() )
1217 return false; 1221 return false;
1218 if ( incCounter % modulo == 0 ) 1222 if ( incCounter % modulo == 0 )
1219 bar.setProgress( incCounter ); 1223 bar.setProgress( incCounter );
1220 ++incCounter; 1224 ++incCounter;
1221 uid = inR->uid(); 1225 uid = inR->uid();
1222 bool skipIncidence = false; 1226 bool skipIncidence = false;
1223 if ( uid.left(15) == QString("last-syncEvent-") ) 1227 if ( uid.left(15) == QString("last-syncEvent-") )
1224 skipIncidence = true; 1228 skipIncidence = true;
1225 QString idS; 1229 QString idS;
1226 qApp->processEvents(); 1230 qApp->processEvents();
1227 if ( !skipIncidence ) { 1231 if ( !skipIncidence ) {
1228 inL = local->incidence( uid ); 1232 inL = local->incidence( uid );
1229 if ( inL ) { // maybe conflict - same uid in both calendars 1233 if ( inL ) { // maybe conflict - same uid in both calendars
1230 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1234 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1231 //qDebug("take %d %s ", take, inL->summary().latin1()); 1235 //qDebug("take %d %s ", take, inL->summary().latin1());
1232 if ( take == 3 ) 1236 if ( take == 3 )
1233 return false; 1237 return false;
1234 if ( take == 1 ) {// take local ********************** 1238 if ( take == 1 ) {// take local **********************
1235 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 1239 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
1236 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1240 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1237 else 1241 else
1238 idS = inR->IDStr(); 1242 idS = inR->IDStr();
1239 remote->deleteIncidence( inR ); 1243 remote->deleteIncidence( inR );
1240 inR = inL->clone(); 1244 inR = inL->clone();
1241 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1245 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1242 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 1246 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
1243 inR->setIDStr( idS ); 1247 inR->setIDStr( idS );
1244 remote->addIncidence( inR ); 1248 remote->addIncidence( inR );
1245 if ( mSyncManager->syncWithDesktop() ) 1249 if ( mSyncManager->syncWithDesktop() )
1246 inR->setPilotId( 2 ); 1250 inR->setPilotId( 2 );
1247 ++changedRemote; 1251 ++changedRemote;
1248 } else {// take remote ********************** 1252 } else {// take remote **********************
1249 idS = inL->IDStr(); 1253 idS = inL->IDStr();
1250 int pid = inL->pilotId(); 1254 int pid = inL->pilotId();
1251 local->deleteIncidence( inL ); 1255 local->deleteIncidence( inL );
1252 inL = inR->clone(); 1256 inL = inR->clone();
1253 if ( mSyncManager->syncWithDesktop() ) 1257 if ( mSyncManager->syncWithDesktop() )
1254 inL->setPilotId( pid ); 1258 inL->setPilotId( pid );
1255 inL->setIDStr( idS ); 1259 inL->setIDStr( idS );
1256 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1260 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1257 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1261 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1258 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1262 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1259 } 1263 }
1260 local->addIncidence( inL ); 1264 local->addIncidence( inL );
1261 ++changedLocal; 1265 ++changedLocal;
1262 } 1266 }
1263 } 1267 }
1264 } else { // no conflict ********** add or delete remote 1268 } else { // no conflict ********** add or delete remote
1265 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ 1269 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){
1266 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1270 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1267 QString des = eventLSync->description(); 1271 QString des = eventLSync->description();
1268 QString pref = "e"; 1272 QString pref = "e";
1269 if ( inR->type() == "Todo" ) 1273 if ( inR->type() == "Todo" )
1270 pref = "t"; 1274 pref = "t";
1271 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1275 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
1272 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1276 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1273 //remote->deleteIncidence( inR ); 1277 //remote->deleteIncidence( inR );
1274 ++deletedEventR; 1278 ++deletedEventR;
1275 } else { 1279 } else {
1276 inR->setLastModified( modifiedCalendar ); 1280 inR->setLastModified( modifiedCalendar );
1277 inL = inR->clone(); 1281 inL = inR->clone();
1278 inL->setIDStr( ":" ); 1282 inL->setIDStr( ":" );
1279 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1283 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1280 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1284 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1281 local->addIncidence( inL ); 1285 local->addIncidence( inL );
1282 ++addedEvent; 1286 ++addedEvent;
1283 1287
1284 } 1288 }
1285 } else { 1289 } else {
1286 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1290 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1287 inR->setLastModified( modifiedCalendar ); 1291 inR->setLastModified( modifiedCalendar );
1288 inL = inR->clone(); 1292 inL = inR->clone();
1289 inL->setIDStr( ":" ); 1293 inL->setIDStr( ":" );
1290 local->addIncidence( inL ); 1294 local->addIncidence( inL );
1291 ++addedEvent; 1295 ++addedEvent;
1292 1296
1293 } else { 1297 } else {
1294 checkExternSyncEvent(eventRSyncSharp, inR); 1298 checkExternSyncEvent(eventRSyncSharp, inR);
1295 remote->deleteIncidence( inR ); 1299 remote->deleteIncidence( inR );
1296 ++deletedEventR; 1300 ++deletedEventR;
1297 } 1301 }
1298 } 1302 }
1299 } else { 1303 } else {
1300 ++filteredIN; 1304 ++filteredIN;
1301 } 1305 }
1302 } 1306 }
1303 } 1307 }
1304 inR = er.next(); 1308 inR = er.next();
1305 } 1309 }
1306 QPtrList<Incidence> el = local->rawIncidences(); 1310 QPtrList<Incidence> el = local->rawIncidences();
1307 inL = el.first(); 1311 inL = el.first();
1308 modulo = (el.count()/10)+1; 1312 modulo = (el.count()/10)+1;
1309 bar.setCaption (i18n("Add / remove events") ); 1313 bar.setCaption (i18n("Add / remove events") );
1310 bar.setTotalSteps ( el.count() ) ; 1314 bar.setTotalSteps ( el.count() ) ;
1311 bar.show(); 1315 bar.show();
1312 incCounter = 0; 1316 incCounter = 0;
1313 1317
1314 while ( inL ) { 1318 while ( inL ) {
1315 1319
1316 qApp->processEvents(); 1320 qApp->processEvents();
1317 if ( ! bar.isVisible() ) 1321 if ( ! bar.isVisible() )
1318 return false; 1322 return false;
1319 if ( incCounter % modulo == 0 ) 1323 if ( incCounter % modulo == 0 )
1320 bar.setProgress( incCounter ); 1324 bar.setProgress( incCounter );
1321 ++incCounter; 1325 ++incCounter;
1322 uid = inL->uid(); 1326 uid = inL->uid();
1323 bool skipIncidence = false; 1327 bool skipIncidence = false;
1324 if ( uid.left(15) == QString("last-syncEvent-") ) 1328 if ( uid.left(15) == QString("last-syncEvent-") )
1325 skipIncidence = true; 1329 skipIncidence = true;
1326 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) 1330 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
1327 skipIncidence = true; 1331 skipIncidence = true;
1328 if ( !skipIncidence ) { 1332 if ( !skipIncidence ) {
1329 inR = remote->incidence( uid ); 1333 inR = remote->incidence( uid );
1330 if ( ! inR ) { 1334 if ( ! inR ) {
1331 if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ 1335 if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){
1332 // no conflict ********** add or delete local 1336 // no conflict ********** add or delete local
1333 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1337 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1334 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 1338 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
1335 checkExternSyncEvent(eventLSyncSharp, inL); 1339 checkExternSyncEvent(eventLSyncSharp, inL);
1336 local->deleteIncidence( inL ); 1340 local->deleteIncidence( inL );
1337 ++deletedEventL; 1341 ++deletedEventL;
1338 } else { 1342 } else {
1339 if ( ! mSyncManager->mWriteBackExistingOnly ) { 1343 if ( ! mSyncManager->mWriteBackExistingOnly ) {
1340 inL->removeID(mCurrentSyncDevice ); 1344 inL->removeID(mCurrentSyncDevice );
1341 ++addedEventR; 1345 ++addedEventR;
1342 //qDebug("remote added Incidence %s ", inL->summary().latin1()); 1346 //qDebug("remote added Incidence %s ", inL->summary().latin1());
1343 inL->setLastModified( modifiedCalendar ); 1347 inL->setLastModified( modifiedCalendar );
1344 inR = inL->clone(); 1348 inR = inL->clone();
1345 inR->setIDStr( ":" ); 1349 inR->setIDStr( ":" );
1346 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1350 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1347 remote->addIncidence( inR ); 1351 remote->addIncidence( inR );
1348 } 1352 }
1349 } 1353 }
1350 } else { 1354 } else {
1351 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1355 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1352 checkExternSyncEvent(eventLSyncSharp, inL); 1356 checkExternSyncEvent(eventLSyncSharp, inL);
1353 local->deleteIncidence( inL ); 1357 local->deleteIncidence( inL );
1354 ++deletedEventL; 1358 ++deletedEventL;
1355 } else { 1359 } else {
1356 if ( ! mSyncManager->mWriteBackExistingOnly ) { 1360 if ( ! mSyncManager->mWriteBackExistingOnly ) {
1357 ++addedEventR; 1361 ++addedEventR;
1358 inL->setLastModified( modifiedCalendar ); 1362 inL->setLastModified( modifiedCalendar );
1359 inR = inL->clone(); 1363 inR = inL->clone();
1360 inR->setIDStr( ":" ); 1364 inR->setIDStr( ":" );
1361 remote->addIncidence( inR ); 1365 remote->addIncidence( inR );
1362 } 1366 }
1363 } 1367 }
1364 } 1368 }
1365 } else { 1369 } else {
1366 ++filteredOUT; 1370 ++filteredOUT;
1367 } 1371 }
1368 } 1372 }
1369 } 1373 }
1370 inL = el.next(); 1374 inL = el.next();
1371 } 1375 }
1372 int delFut = 0; 1376 int delFut = 0;
1373 int remRem = 0; 1377 int remRem = 0;
1374 if ( mSyncManager->mWriteBackInFuture ) { 1378 if ( mSyncManager->mWriteBackInFuture ) {
1375 er = remote->rawIncidences(); 1379 er = remote->rawIncidences();
1376 remRem = er.count(); 1380 remRem = er.count();
1377 inR = er.first(); 1381 inR = er.first();
1378 QDateTime dt; 1382 QDateTime dt;
1379 QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) ); 1383 QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) );
1380 QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 ); 1384 QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 );
1381 while ( inR ) { 1385 while ( inR ) {
1382 if ( inR->type() == "Todo" ) { 1386 if ( inR->type() == "Todo" ) {
1383 Todo * t = (Todo*)inR; 1387 Todo * t = (Todo*)inR;
1384 if ( t->hasDueDate() ) 1388 if ( t->hasDueDate() )
1385 dt = t->dtDue(); 1389 dt = t->dtDue();
1386 else 1390 else
1387 dt = cur.addSecs( 62 ); 1391 dt = cur.addSecs( 62 );
1388 } 1392 }
1389 else if (inR->type() == "Event" ) { 1393 else if (inR->type() == "Event" ) {
1390 bool ok; 1394 bool ok;
1391 dt = inR->getNextOccurence( cur, &ok ); 1395 dt = inR->getNextOccurence( cur, &ok );
1392 if ( !ok ) 1396 if ( !ok )
1393 dt = cur.addSecs( -62 ); 1397 dt = cur.addSecs( -62 );
1394 } 1398 }
1395 else 1399 else
1396 dt = inR->dtStart(); 1400 dt = inR->dtStart();
1397 if ( dt < cur || dt > end ) { 1401 if ( dt < cur || dt > end ) {
1398 remote->deleteIncidence( inR ); 1402 remote->deleteIncidence( inR );
1399 ++delFut; 1403 ++delFut;
1400 } 1404 }
1401 inR = er.next(); 1405 inR = er.next();
1402 } 1406 }
1403 } 1407 }
1404 bar.hide(); 1408 bar.hide();
1405 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1409 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1406 eventLSync->setReadOnly( false ); 1410 eventLSync->setReadOnly( false );
1407 eventLSync->setDtStart( mLastCalendarSync ); 1411 eventLSync->setDtStart( mLastCalendarSync );
1408 eventRSync->setDtStart( mLastCalendarSync ); 1412 eventRSync->setDtStart( mLastCalendarSync );
1409 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1413 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1410 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1414 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1411 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1415 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1412 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1416 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1413 eventLSync->setReadOnly( true ); 1417 eventLSync->setReadOnly( true );
1414 qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL ); 1418 qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL );
1415 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal... 1419 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal...
1416 remote->addEvent( eventRSync ); 1420 remote->addEvent( eventRSync );
1417 else 1421 else
1418 delete eventRSync; 1422 delete eventRSync;
1419 qDebug("KO: Sync with desktop %d ",mSyncManager->syncWithDesktop() ); 1423 qDebug("KO: Sync with desktop %d ",mSyncManager->syncWithDesktop() );
1420 QString mes; 1424 QString mes;
1421 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR, filteredIN, filteredOUT ); 1425 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR, filteredIN, filteredOUT );
1422 QString delmess; 1426 QString delmess;
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 1eca905..084b6db 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -1,640 +1,641 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000, 2001 3 Copyright (c) 2000, 2001
4 Cornelius Schumacher <schumacher@kde.org> 4 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 19
20 As a special exception, permission is given to link this program 20 As a special exception, permission is given to link this program
21 with any edition of Qt, and distribute the resulting executable, 21 with any edition of Qt, and distribute the resulting executable,
22 without including the source code for Qt in the source distribution. 22 without including the source code for Qt in the source distribution.
23*/ 23*/
24#ifndef CALENDARVIEW_H 24#ifndef CALENDARVIEW_H
25#define CALENDARVIEW_H 25#define CALENDARVIEW_H
26 26
27#include <qframe.h> 27#include <qframe.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qwidget.h> 29#include <qwidget.h>
30#include <qptrlist.h> 30#include <qptrlist.h>
31#include <qvbox.h> 31#include <qvbox.h>
32#include <qmap.h> 32#include <qmap.h>
33#ifndef DESKTOP_VERSION 33#ifndef DESKTOP_VERSION
34#include <qtopia/ir.h> 34#include <qtopia/ir.h>
35#else 35#else
36#define Ir char 36#define Ir char
37#endif 37#endif
38#include <libkcal/calendar.h> 38#include <libkcal/calendar.h>
39#include <libkcal/scheduler.h> 39#include <libkcal/scheduler.h>
40#include <libkcal/calendarresources.h> 40#include <libkcal/calendarresources.h>
41#include <libkcal/resourcecalendar.h> 41#include <libkcal/resourcecalendar.h>
42#include <KDGanttMinimizeSplitter.h> 42#include <KDGanttMinimizeSplitter.h>
43 43
44#include <korganizer/calendarviewbase.h> 44#include <korganizer/calendarviewbase.h>
45 45
46#include <ksyncmanager.h> 46#include <ksyncmanager.h>
47 47
48class QWidgetStack; 48class QWidgetStack;
49class QSplitter; 49class QSplitter;
50 50
51class CalPrinter; 51class CalPrinter;
52class KOFilterView; 52class KOFilterView;
53class KOViewManager; 53class KOViewManager;
54class KODialogManager; 54class KODialogManager;
55class KOTodoView; 55class KOTodoView;
56class KDateNavigator; 56class KDateNavigator;
57class DateNavigatorContainer; 57class DateNavigatorContainer;
58class DateNavigator; 58class DateNavigator;
59class KOIncidenceEditor; 59class KOIncidenceEditor;
60class KDatePicker; 60class KDatePicker;
61class ResourceView; 61class ResourceView;
62class KOEventEditor; 62class KOEventEditor;
63class KOTodoEditor ; 63class KOTodoEditor ;
64class KOEventViewerDialog; 64class KOEventViewerDialog;
65class KOBeamPrefs; 65class KOBeamPrefs;
66class KSyncProfile; 66class KSyncProfile;
67class AlarmDialog; 67class AlarmDialog;
68class KCal::Attendee; 68class KCal::Attendee;
69 69
70namespace KCal { class FileStorage; } 70namespace KCal { class FileStorage; }
71 71
72using namespace KCal; 72using namespace KCal;
73 73
74/** 74/**
75 This is the main calendar widget. It provides the different vies on t he 75 This is the main calendar widget. It provides the different vies on t he
76 calendar data as well as the date navigator. It also handles synchronisation 76 calendar data as well as the date navigator. It also handles synchronisation
77 of the different views and controls the different dialogs like preferences, 77 of the different views and controls the different dialogs like preferences,
78 event editor, search dialog etc. 78 event editor, search dialog etc.
79 79
80 @short main calendar view widget 80 @short main calendar view widget
81 @author Cornelius Schumacher 81 @author Cornelius Schumacher
82*/ 82*/
83 83
84#include <qtextbrowser.h> 84#include <qtextbrowser.h>
85#include <qtextcodec.h> 85#include <qtextcodec.h>
86 86
87class MissedAlarmTextBrowser : public QTextBrowser { 87class MissedAlarmTextBrowser : public QTextBrowser {
88 Q_OBJECT 88 Q_OBJECT
89 public: 89 public:
90 MissedAlarmTextBrowser(QWidget *parent, QPtrList<Incidence> alarms ,QDateTime start); 90 MissedAlarmTextBrowser(QWidget *parent, QPtrList<Incidence> alarms ,QDateTime start);
91 ~MissedAlarmTextBrowser();
91 void setSource(const QString & n); 92 void setSource(const QString & n);
92 93
93 private: 94 private:
94 Incidence * getNextInc(QDateTime start ); 95 Incidence * getNextInc(QDateTime start );
95 QPtrList<Incidence> mAlarms; 96 QPtrList<Incidence> mAlarms;
96 signals: 97 signals:
97 void showIncidence( QString uid); 98 void showIncidence( QString uid);
98}; 99};
99 100
100 101
101class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Observer, public KSyncInterface 102class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Observer, public KSyncInterface
102{ 103{
103 Q_OBJECT 104 Q_OBJECT
104 public: 105 public:
105 /** 106 /**
106 Constructs a new calendar view widget. 107 Constructs a new calendar view widget.
107 108
108 @param calendar calendar document 109 @param calendar calendar document
109 @param parent parent window 110 @param parent parent window
110 @param name Qt internal widget object name 111 @param name Qt internal widget object name
111 */ 112 */
112 CalendarView( CalendarResources *calendar, QWidget *parent = 0, 113 CalendarView( CalendarResources *calendar, QWidget *parent = 0,
113 const char *name = 0 ); 114 const char *name = 0 );
114 CalendarView( Calendar *calendar, QWidget *parent = 0, 115 CalendarView( Calendar *calendar, QWidget *parent = 0,
115 const char *name = 0 ); 116 const char *name = 0 );
116 virtual ~CalendarView(); 117 virtual ~CalendarView();
117 118
118 Calendar *calendar() { return mCalendar; } 119 Calendar *calendar() { return mCalendar; }
119 120
120 KOViewManager *viewManager(); 121 KOViewManager *viewManager();
121 KODialogManager *dialogManager(); 122 KODialogManager *dialogManager();
122 123
123 QDate startDate(); 124 QDate startDate();
124 QDate endDate(); 125 QDate endDate();
125 126
126 QWidgetStack *viewStack(); 127 QWidgetStack *viewStack();
127 QWidget *leftFrame(); 128 QWidget *leftFrame();
128 129
129 DateNavigator *dateNavigator(); 130 DateNavigator *dateNavigator();
130 KDateNavigator *dateNavigatorWidget(); 131 KDateNavigator *dateNavigatorWidget();
131 132
132 void addView(KOrg::BaseView *); 133 void addView(KOrg::BaseView *);
133 void showView(KOrg::BaseView *); 134 void showView(KOrg::BaseView *);
134 KOEventViewerDialog* getEventViewerDialog(); 135 KOEventViewerDialog* getEventViewerDialog();
135 Incidence *currentSelection(); 136 Incidence *currentSelection();
136 137
137 signals: 138 signals:
138 void save (); 139 void save ();
139 void saveStopTimer (); 140 void saveStopTimer ();
140 void tempDisableBR(bool); 141 void tempDisableBR(bool);
141 /** This todo has been modified */ 142 /** This todo has been modified */
142 void todoModified(Todo *, int); 143 void todoModified(Todo *, int);
143 144
144 /** when change is made to options dialog, the topwidget will catch this 145 /** when change is made to options dialog, the topwidget will catch this
145 * and emit this signal which notifies all widgets which have registered 146 * and emit this signal which notifies all widgets which have registered
146 * for notification to update their settings. */ 147 * for notification to update their settings. */
147 void configChanged(); 148 void configChanged();
148 /** emitted when the topwidget is closing down, so that any attached 149 /** emitted when the topwidget is closing down, so that any attached
149 child windows can also close. */ 150 child windows can also close. */
150 void closingDown(); 151 void closingDown();
151 /** emitted right before we die */ 152 /** emitted right before we die */
152 void closed(QWidget *); 153 void closed(QWidget *);
153 154
154 /** Emitted when state of modified flag changes */ 155 /** Emitted when state of modified flag changes */
155 void modifiedChanged(bool); 156 void modifiedChanged(bool);
156 void signalmodified(); 157 void signalmodified();
157 158
158 /** Emitted when state of read-only flag changes */ 159 /** Emitted when state of read-only flag changes */
159 void readOnlyChanged(bool); 160 void readOnlyChanged(bool);
160 161
161 /** Emitted when the unit of navigation changes */ 162 /** Emitted when the unit of navigation changes */
162 void changeNavStringPrev(const QString &); 163 void changeNavStringPrev(const QString &);
163 void changeNavStringNext(const QString &); 164 void changeNavStringNext(const QString &);
164 165
165 /** Emitted when state of events selection has changed and user is organizer*/ 166 /** Emitted when state of events selection has changed and user is organizer*/
166 void organizerEventsSelected(bool); 167 void organizerEventsSelected(bool);
167 /** Emitted when state of events selection has changed and user is attendee*/ 168 /** Emitted when state of events selection has changed and user is attendee*/
168 void groupEventsSelected(bool); 169 void groupEventsSelected(bool);
169 /** 170 /**
170 Emitted when an incidence gets selected. If the selection is cleared the 171 Emitted when an incidence gets selected. If the selection is cleared the
171 signal is emitted with 0 as argument. 172 signal is emitted with 0 as argument.
172 */ 173 */
173 void incidenceSelected( Incidence * ); 174 void incidenceSelected( Incidence * );
174 /** Emitted, when a todoitem is selected or deselected. */ 175 /** Emitted, when a todoitem is selected or deselected. */
175 void todoSelected( bool ); 176 void todoSelected( bool );
176 177
177 /** 178 /**
178 Emitted, when clipboard content changes. Parameter indicates if paste 179 Emitted, when clipboard content changes. Parameter indicates if paste
179 is possible or not. 180 is possible or not.
180 */ 181 */
181 void pasteEnabled(bool); 182 void pasteEnabled(bool);
182 183
183 /** Emitted, when the number of incoming messages has changed. */ 184 /** Emitted, when the number of incoming messages has changed. */
184 void numIncomingChanged(int); 185 void numIncomingChanged(int);
185 186
186 /** Emitted, when the number of outgoing messages has changed. */ 187 /** Emitted, when the number of outgoing messages has changed. */
187 void numOutgoingChanged(int); 188 void numOutgoingChanged(int);
188 189
189 /** Send status message, which can e.g. be displayed in the status bar. */ 190 /** Send status message, which can e.g. be displayed in the status bar. */
190 void statusMessage(const QString &); 191 void statusMessage(const QString &);
191 192
192 void calendarViewExpanded( bool ); 193 void calendarViewExpanded( bool );
193 void updateSearchDialog(); 194 void updateSearchDialog();
194 195
195 196
196 public slots: 197 public slots:
197 void checkAlarms(); 198 void checkAlarms();
198 void slotprintSelInc(); 199 void slotprintSelInc();
199 void showNextAlarms(); 200 void showNextAlarms();
200 void showOpenError(); 201 void showOpenError();
201 void watchSavedFile(); 202 void watchSavedFile();
202 void recheckTimerAlarm(); 203 void recheckTimerAlarm();
203 void checkNextTimerAlarm(); 204 void checkNextTimerAlarm();
204 void addAlarm(const QDateTime &qdt, const QString &noti ); 205 void addAlarm(const QDateTime &qdt, const QString &noti );
205 void addSuspendAlarm(const QDateTime &qdt, const QString &noti ); 206 void addSuspendAlarm(const QDateTime &qdt, const QString &noti );
206 void removeAlarm(const QDateTime &qdt, const QString &noti ); 207 void removeAlarm(const QDateTime &qdt, const QString &noti );
207 208
208 /** options dialog made a changed to the configuration. we catch this 209 /** options dialog made a changed to the configuration. we catch this
209 * and notify all widgets which need to update their configuration. */ 210 * and notify all widgets which need to update their configuration. */
210 void updateConfig(); 211 void updateConfig();
211 212
212 void insertBirthdays(const QString& uid, const QStringList& birthdayList, 213 void insertBirthdays(const QString& uid, const QStringList& birthdayList,
213 const QStringList& anniversaryList, const QStringList& realNameList, 214 const QStringList& anniversaryList, const QStringList& realNameList,
214 const QStringList& emailList, const QStringList& assembledNameList, 215 const QStringList& emailList, const QStringList& assembledNameList,
215 const QStringList& uidList); 216 const QStringList& uidList);
216 217
217 /** 218 /**
218 Load calendar from file \a filename. If \a merge is true, load 219 Load calendar from file \a filename. If \a merge is true, load
219 calendar into existing one, if it is false, clear calendar, before 220 calendar into existing one, if it is false, clear calendar, before
220 loading. Return true, if calendar could be successfully loaded. 221 loading. Return true, if calendar could be successfully loaded.
221 */ 222 */
222 bool openCalendar(QString filename, bool merge=false); 223 bool openCalendar(QString filename, bool merge=false);
223 bool syncCalendar(QString filename,int mode = 0 ); 224 bool syncCalendar(QString filename,int mode = 0 );
224 225
225 /** 226 /**
226 Save calendar data to file. Return true if calendar could be 227 Save calendar data to file. Return true if calendar could be
227 successfully saved. 228 successfully saved.
228 */ 229 */
229 bool saveCalendar(QString filename); 230 bool saveCalendar(QString filename);
230 231
231 /** 232 /**
232 Close calendar. Clear calendar data and reset views to display an empty 233 Close calendar. Clear calendar data and reset views to display an empty
233 calendar. 234 calendar.
234 */ 235 */
235 void closeCalendar(); 236 void closeCalendar();
236 237
237 /** Archive old events of calendar */ 238 /** Archive old events of calendar */
238 void archiveCalendar(); 239 void archiveCalendar();
239 240
240 void showIncidence(); 241 void showIncidence();
241 void editIncidence(); 242 void editIncidence();
242 void editIncidenceDescription(); 243 void editIncidenceDescription();
243 void deleteIncidence(); 244 void deleteIncidence();
244 void cloneIncidence(); 245 void cloneIncidence();
245 void moveIncidence(); 246 void moveIncidence();
246 void beamIncidence(); 247 void beamIncidence();
247 void toggleCancelIncidence(); 248 void toggleCancelIncidence();
248 249
249 /** create an editeventwin with supplied date/time, and if bool is true, 250 /** create an editeventwin with supplied date/time, and if bool is true,
250 * make the event take all day. */ 251 * make the event take all day. */
251 void newEvent(QDateTime, QDateTime, bool allDay ); 252 void newEvent(QDateTime, QDateTime, bool allDay );
252 void newEvent(QDateTime, QDateTime); 253 void newEvent(QDateTime, QDateTime);
253 void newEvent(QDateTime fh); 254 void newEvent(QDateTime fh);
254 void newEvent(QDate dt); 255 void newEvent(QDate dt);
255 /** create new event without having a date hint. Takes current date as 256 /** create new event without having a date hint. Takes current date as
256 default hint. */ 257 default hint. */
257 void newEvent(); 258 void newEvent();
258 void newFloatingEvent(); 259 void newFloatingEvent();
259 260
260 /** Create a read-only viewer dialog for the supplied incidence. It calls the correct showXXX method*/ 261 /** Create a read-only viewer dialog for the supplied incidence. It calls the correct showXXX method*/
261 void showIncidence(Incidence *); 262 void showIncidence(Incidence *);
262 void showIncidence(QString uid); 263 void showIncidence(QString uid);
263 /** Create an editor for the supplied incidence. It calls the correct editXXX method*/ 264 /** Create an editor for the supplied incidence. It calls the correct editXXX method*/
264 void editIncidence(Incidence *); 265 void editIncidence(Incidence *);
265 /** Delete the supplied incidence. It calls the correct deleteXXX method*/ 266 /** Delete the supplied incidence. It calls the correct deleteXXX method*/
266 void deleteIncidence(Incidence *); 267 void deleteIncidence(Incidence *);
267 void cloneIncidence(Incidence *); 268 void cloneIncidence(Incidence *);
268 void cancelIncidence(Incidence *); 269 void cancelIncidence(Incidence *);
269 /** Create an editor for the supplied event. */ 270 /** Create an editor for the supplied event. */
270 void editEvent(Event *); 271 void editEvent(Event *);
271 /** Delete the supplied event. */ 272 /** Delete the supplied event. */
272 void deleteEvent(Event *); 273 void deleteEvent(Event *);
273 /** Delete the event with the given unique ID. Returns false, if event wasn't 274 /** Delete the event with the given unique ID. Returns false, if event wasn't
274 found. */ 275 found. */
275 bool deleteEvent(const QString &uid); 276 bool deleteEvent(const QString &uid);
276 /** Create a read-only viewer dialog for the supplied event. */ 277 /** Create a read-only viewer dialog for the supplied event. */
277 void showEvent(Event *); 278 void showEvent(Event *);
278 279
279 void editJournal(Journal *); 280 void editJournal(Journal *);
280 void showJournal(Journal *); 281 void showJournal(Journal *);
281 void deleteJournal(Journal *); 282 void deleteJournal(Journal *);
282 /** Create an editor dialog for a todo */ 283 /** Create an editor dialog for a todo */
283 void editTodo(Todo *); 284 void editTodo(Todo *);
284 /** Create a read-only viewer dialog for the supplied todo */ 285 /** Create a read-only viewer dialog for the supplied todo */
285 void showTodo(Todo *); 286 void showTodo(Todo *);
286 /** create new todo */ 287 /** create new todo */
287 void newTodo(); 288 void newTodo();
288 void newTodoDateTime(QDateTime, bool allday); 289 void newTodoDateTime(QDateTime, bool allday);
289 /** create new todo with a parent todo */ 290 /** create new todo with a parent todo */
290 void newSubTodo(); 291 void newSubTodo();
291 /** create new todo with a parent todo */ 292 /** create new todo with a parent todo */
292 void newSubTodo(Todo *); 293 void newSubTodo(Todo *);
293 /** Delete todo */ 294 /** Delete todo */
294 void deleteTodo(Todo *); 295 void deleteTodo(Todo *);
295 296
296 297
297 /** Check if clipboard contains vCalendar event. The signal pasteEnabled() is 298 /** Check if clipboard contains vCalendar event. The signal pasteEnabled() is
298 * emitted as result. */ 299 * emitted as result. */
299 void checkClipboard(); 300 void checkClipboard();
300 301
301 /** using the KConfig associated with the kapp variable, read in the 302 /** using the KConfig associated with the kapp variable, read in the
302 * settings from the config file. 303 * settings from the config file.
303 */ 304 */
304 void readSettings(); 305 void readSettings();
305 306
306 /** write current state to config file. */ 307 /** write current state to config file. */
307 void writeSettings(); 308 void writeSettings();
308 309
309 /** read settings for calendar filters */ 310 /** read settings for calendar filters */
310 void readFilterSettings(KConfig *config); 311 void readFilterSettings(KConfig *config);
311 312
312 /** write settings for calendar filters */ 313 /** write settings for calendar filters */
313 void writeFilterSettings(KConfig *config); 314 void writeFilterSettings(KConfig *config);
314 315
315 /** passes on the message that an event has changed to the currently 316 /** passes on the message that an event has changed to the currently
316 * activated view so that it can make appropriate display changes. */ 317 * activated view so that it can make appropriate display changes. */
317 void changeEventDisplay(Event *, int); 318 void changeEventDisplay(Event *, int);
318 void changeIncidenceDisplay(Incidence *, int); 319 void changeIncidenceDisplay(Incidence *, int);
319 void changeTodoDisplay(Todo *, int); 320 void changeTodoDisplay(Todo *, int);
320 321
321 void eventAdded(Event *); 322 void eventAdded(Event *);
322 void eventChanged(Event *); 323 void eventChanged(Event *);
323 void eventToBeDeleted(Event *); 324 void eventToBeDeleted(Event *);
324 void eventDeleted(); 325 void eventDeleted();
325 326
326 void todoAdded(Todo *); 327 void todoAdded(Todo *);
327 void todoChanged(Todo *); 328 void todoChanged(Todo *);
328 void todoToBeDeleted(Todo *); 329 void todoToBeDeleted(Todo *);
329 void todoDeleted(); 330 void todoDeleted();
330 331
331 void updateView(const QDate &start, const QDate &end); 332 void updateView(const QDate &start, const QDate &end);
332 void updateView(); 333 void updateView();
333 334
334 /** Full update of visible todo views */ 335 /** Full update of visible todo views */
335 void updateTodoViews(); 336 void updateTodoViews();
336 337
337 void updateUnmanagedViews(); 338 void updateUnmanagedViews();
338 339
339 /** cut the current appointment to the clipboard */ 340 /** cut the current appointment to the clipboard */
340 void edit_cut(); 341 void edit_cut();
341 342
342 /** copy the current appointment(s) to the clipboard */ 343 /** copy the current appointment(s) to the clipboard */
343 void edit_copy(); 344 void edit_copy();
344 345
345 /** paste the current vobject(s) in the clipboard buffer into calendar */ 346 /** paste the current vobject(s) in the clipboard buffer into calendar */
346 void edit_paste(); 347 void edit_paste();
347 348
348 /** edit viewing and configuration options. */ 349 /** edit viewing and configuration options. */
349 void edit_options(); 350 void edit_options();
350 /** 351 /**
351 Functions for printing, previewing a print, and setting up printing 352 Functions for printing, previewing a print, and setting up printing
352 parameters. 353 parameters.
353 */ 354 */
354 void print(); 355 void print();
355 void printSetup(); 356 void printSetup();
356 void printPreview(); 357 void printPreview();
357 358
358 /** Export as iCalendar file */ 359 /** Export as iCalendar file */
359 void exportICalendar(); 360 void exportICalendar();
360 361
361 /** Export as vCalendar file */ 362 /** Export as vCalendar file */
362 bool exportVCalendar( QString fn); 363 bool exportVCalendar( QString fn);
363 364
364 /** pop up a dialog to show an existing appointment. */ 365 /** pop up a dialog to show an existing appointment. */
365 void appointment_show(); 366 void appointment_show();
366 /** 367 /**
367 * pop up an Appointment Dialog to edit an existing appointment.Get 368 * pop up an Appointment Dialog to edit an existing appointment.Get
368 * information on the appointment from the list of unique IDs that is 369 * information on the appointment from the list of unique IDs that is
369 * currently in the View, called currIds. 370 * currently in the View, called currIds.
370 */ 371 */
371 void appointment_edit(); 372 void appointment_edit();
372 /** 373 /**
373 * pop up dialog confirming deletion of currently selected event in the 374 * pop up dialog confirming deletion of currently selected event in the
374 * View. 375 * View.
375 */ 376 */
376 void appointment_delete(); 377 void appointment_delete();
377 378
378 /** mails the currently selected event to a particular user as a vCalendar 379 /** mails the currently selected event to a particular user as a vCalendar
379 attachment. */ 380 attachment. */
380 void action_mail(); 381 void action_mail();
381 382
382 /* frees a subtodo from it's relation */ 383 /* frees a subtodo from it's relation */
383 void todo_unsub( Todo * ); 384 void todo_unsub( Todo * );
384 void todo_resub( Todo * parent, Todo * sub ); 385 void todo_resub( Todo * parent, Todo * sub );
385 386
386 /** Take ownership of selected event. */ 387 /** Take ownership of selected event. */
387 void takeOverEvent(); 388 void takeOverEvent();
388 389
389 /** Take ownership of all events in calendar. */ 390 /** Take ownership of all events in calendar. */
390 void takeOverCalendar(); 391 void takeOverCalendar();
391 392
392 /** query whether or not the calendar is "dirty". */ 393 /** query whether or not the calendar is "dirty". */
393 bool isModified(); 394 bool isModified();
394 /** set the state of calendar. Modified means "dirty", i.e. needing a save. */ 395 /** set the state of calendar. Modified means "dirty", i.e. needing a save. */
395 void setModified(bool modified=true); 396 void setModified(bool modified=true);
396 397
397 /** query if the calendar is read-only. */ 398 /** query if the calendar is read-only. */
398 bool isReadOnly(); 399 bool isReadOnly();
399 /** set state of calendar to read-only */ 400 /** set state of calendar to read-only */
400 void setReadOnly(bool readOnly=true); 401 void setReadOnly(bool readOnly=true);
401 402
402 void eventUpdated(Incidence *); 403 void eventUpdated(Incidence *);
403 404
404 /* iTIP scheduling actions */ 405 /* iTIP scheduling actions */
405 void schedule_publish(Incidence *incidence = 0); 406 void schedule_publish(Incidence *incidence = 0);
406 void schedule_request(Incidence *incidence = 0); 407 void schedule_request(Incidence *incidence = 0);
407 void schedule_refresh(Incidence *incidence = 0); 408 void schedule_refresh(Incidence *incidence = 0);
408 void schedule_cancel(Incidence *incidence = 0); 409 void schedule_cancel(Incidence *incidence = 0);
409 void schedule_add(Incidence *incidence = 0); 410 void schedule_add(Incidence *incidence = 0);
410 void schedule_reply(Incidence *incidence = 0); 411 void schedule_reply(Incidence *incidence = 0);
411 void schedule_counter(Incidence *incidence = 0); 412 void schedule_counter(Incidence *incidence = 0);
412 void schedule_declinecounter(Incidence *incidence = 0); 413 void schedule_declinecounter(Incidence *incidence = 0);
413 void schedule_publish_freebusy(int daysToPublish = 30); 414 void schedule_publish_freebusy(int daysToPublish = 30);
414 415
415 void openAddressbook(); 416 void openAddressbook();
416 417
417 void editFilters(); 418 void editFilters();
418 void toggleFilerEnabled(); 419 void toggleFilerEnabled();
419 QPtrList<CalFilter> filters(); 420 QPtrList<CalFilter> filters();
420 void toggleFilter(); 421 void toggleFilter();
421 void showFilter(bool visible); 422 void showFilter(bool visible);
422 void updateFilter(); 423 void updateFilter();
423 void filterEdited(); 424 void filterEdited();
424 void selectFilter( int ); 425 void selectFilter( int );
425 KOFilterView *filterView(); 426 KOFilterView *filterView();
426 427
427 void showIntro(); 428 void showIntro();
428 429
429 /** Move the curdatepient view date to today */ 430 /** Move the curdatepient view date to today */
430 void goToday(); 431 void goToday();
431 432
432 /** Move to the next date(s) in the current view */ 433 /** Move to the next date(s) in the current view */
433 void goNext(); 434 void goNext();
434 435
435 /** Move to the previous date(s) in the current view */ 436 /** Move to the previous date(s) in the current view */
436 void goPrevious(); 437 void goPrevious();
437 /** Move to the next date(s) in the current view */ 438 /** Move to the next date(s) in the current view */
438 void goNextMonth(); 439 void goNextMonth();
439 440
440 /** Move to the previous date(s) in the current view */ 441 /** Move to the previous date(s) in the current view */
441 void goPreviousMonth(); 442 void goPreviousMonth();
442 443
443 void toggleExpand(); 444 void toggleExpand();
444 void toggleDateNavigatorWidget(); 445 void toggleDateNavigatorWidget();
445 void toggleAllDaySize(); 446 void toggleAllDaySize();
446 void dialogClosing(Incidence *); 447 void dialogClosing(Incidence *);
447 448
448 /** Look for new messages in the inbox */ 449 /** Look for new messages in the inbox */
449 void lookForIncomingMessages(); 450 void lookForIncomingMessages();
450 /** Look for new messages in the outbox */ 451 /** Look for new messages in the outbox */
451 void lookForOutgoingMessages(); 452 void lookForOutgoingMessages();
452 453
453 void processMainViewSelection( Incidence * ); 454 void processMainViewSelection( Incidence * );
454 void processTodoListSelection( Incidence * ); 455 void processTodoListSelection( Incidence * );
455 456
456 void processIncidenceSelection( Incidence * ); 457 void processIncidenceSelection( Incidence * );
457 458
458 void purgeCompleted(); 459 void purgeCompleted();
459 bool removeCompletedSubTodos( Todo* ); 460 bool removeCompletedSubTodos( Todo* );
460 void slotCalendarChanged(); 461 void slotCalendarChanged();
461 bool importBday(); 462 bool importBday();
462 bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday ); 463 bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday );
463 bool importQtopia( const QString &categoriesFile, 464 bool importQtopia( const QString &categoriesFile,
464 const QString &datebookFile, 465 const QString &datebookFile,
465 const QString &tasklistFile ); 466 const QString &tasklistFile );
466 void syncExternal( int mode ); 467 void syncExternal( int mode );
467 void slotSelectPickerDate( QDate ) ; 468 void slotSelectPickerDate( QDate ) ;
468 void showDatePicker() ; 469 void showDatePicker() ;
469 void showDatePickerPopup() ; 470 void showDatePickerPopup() ;
470 void moveIncidence(Incidence *) ; 471 void moveIncidence(Incidence *) ;
471 void beamIncidence(Incidence *) ; 472 void beamIncidence(Incidence *) ;
472 void beamCalendar() ; 473 void beamCalendar() ;
473 void beamFilteredCalendar() ; 474 void beamFilteredCalendar() ;
474 void beamIncidenceList(QPtrList<Incidence>) ; 475 void beamIncidenceList(QPtrList<Incidence>) ;
475 void manageCategories(); 476 void manageCategories();
476 int addCategories(); 477 int addCategories();
477 void removeCategories(); 478 void removeCategories();
478 void setSyncDevice( QString ); 479 void setSyncDevice( QString );
479 void setSyncName( QString ); 480 void setSyncName( QString );
480 void showDay( QDate ); 481 void showDay( QDate );
481 void undo_delete(); 482 void undo_delete();
482 protected slots: 483 protected slots:
483 void resetFocus(); 484 void resetFocus();
484 void slotViewerClosed(); 485 void slotViewerClosed();
485 void timerAlarm(); 486 void timerAlarm();
486 void suspendAlarm(); 487 void suspendAlarm();
487 void beamDone( Ir *ir ); 488 void beamDone( Ir *ir );
488 /** Select a view or adapt the current view to display the specified dates. */ 489 /** Select a view or adapt the current view to display the specified dates. */
489 void showDates( const KCal::DateList & ); 490 void showDates( const KCal::DateList & );
490 void selectWeekNum ( int ); 491 void selectWeekNum ( int );
491 492
492 public: 493 public:
493 // show a standard warning 494 // show a standard warning
494 // returns KMsgBox::yesNoCancel() 495 // returns KMsgBox::yesNoCancel()
495 int msgCalModified(); 496 int msgCalModified();
496 virtual bool sync(KSyncManager* manager, QString filename, int mode); 497 virtual bool sync(KSyncManager* manager, QString filename, int mode);
497 498
498 virtual bool syncExternal(KSyncManager* manager, QString resource); 499 virtual bool syncExternal(KSyncManager* manager, QString resource);
499 virtual void removeSyncInfo( QString syncProfile); 500 virtual void removeSyncInfo( QString syncProfile);
500 void setSyncManager(KSyncManager* manager); 501 void setSyncManager(KSyncManager* manager);
501 void setLoadedFileVersion(QDateTime); 502 void setLoadedFileVersion(QDateTime);
502 bool checkFileVersion(QString fn); 503 bool checkFileVersion(QString fn);
503 bool checkFileChanged(QString fn); 504 bool checkFileChanged(QString fn);
504 Event* getLastSyncEvent(); 505 Event* getLastSyncEvent();
505 /** Adapt navigation units correpsonding to step size of navigation of the 506 /** Adapt navigation units correpsonding to step size of navigation of the
506 * current view. 507 * current view.
507 */ 508 */
508 void adaptNavigationUnits(); 509 void adaptNavigationUnits();
509 bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); 510 bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode );
510 int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); 511 int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false );
511 //Attendee* getYourAttendee(Event *event); 512 //Attendee* getYourAttendee(Event *event);
512 void setBlockShowDates( bool b ) { mBlockShowDates = b ;} 513 void setBlockShowDates( bool b ) { mBlockShowDates = b ;}
513 protected: 514 protected:
514 void schedule(Scheduler::Method, Incidence *incidence = 0); 515 void schedule(Scheduler::Method, Incidence *incidence = 0);
515 516
516 // returns KMsgBox::OKCandel() 517 // returns KMsgBox::OKCandel()
517 int msgItemDelete(const QString name); 518 int msgItemDelete(const QString name);
518 void showEventEditor(); 519 void showEventEditor();
519 void showTodoEditor(); 520 void showTodoEditor();
520 void writeLocale(); 521 void writeLocale();
521 Todo *selectedTodo(); 522 Todo *selectedTodo();
522 523
523 private: 524 private:
524 QDateTime mNextAlarmDateTime; 525 QDateTime mNextAlarmDateTime;
525 bool mViewerCallerIsSearchDialog; 526 bool mViewerCallerIsSearchDialog;
526 bool mBlockShowDates; 527 bool mBlockShowDates;
527 KSyncManager* mSyncManager; 528 KSyncManager* mSyncManager;
528 AlarmDialog * mAlarmDialog; 529 AlarmDialog * mAlarmDialog;
529 QString mAlarmNotification; 530 QString mAlarmNotification;
530 QString mSuspendAlarmNotification; 531 QString mSuspendAlarmNotification;
531 QTimer* mSuspendTimer; 532 QTimer* mSuspendTimer;
532 QTimer* mAlarmTimer; 533 QTimer* mAlarmTimer;
533 QTimer* mRecheckAlarmTimer; 534 QTimer* mRecheckAlarmTimer;
534 void computeAlarm( QString ); 535 void computeAlarm( QString );
535 void startAlarm( QString, QString ); 536 void startAlarm( QString, QString );
536 void setSyncEventsReadOnly(); 537 void setSyncEventsReadOnly();
537 538
538 QDateTime loadedFileVersion; 539 QDateTime loadedFileVersion;
539 void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); 540 void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete );
540 void checkExternalId( Incidence * inc ); 541 void checkExternalId( Incidence * inc );
541 int mGlobalSyncMode; 542 int mGlobalSyncMode;
542 QString mCurrentSyncDevice; 543 QString mCurrentSyncDevice;
543 QString mCurrentSyncName; 544 QString mCurrentSyncName;
544 KOBeamPrefs* beamDialog; 545 KOBeamPrefs* beamDialog;
545 void init(); 546 void init();
546 int mDatePickerMode; 547 int mDatePickerMode;
547 bool mFlagEditDescription; 548 bool mFlagEditDescription;
548 QDateTime mLastCalendarSync; 549 QDateTime mLastCalendarSync;
549 void createPrinter(); 550 void createPrinter();
550 551
551 void calendarModified( bool, Calendar * ); 552 void calendarModified( bool, Calendar * );
552 553
553 CalPrinter *mCalPrinter; 554 CalPrinter *mCalPrinter;
554 555
555 QSplitter *mPanner; 556 QSplitter *mPanner;
556 QSplitter *mLeftSplitter; 557 QSplitter *mLeftSplitter;
557 KDGanttMinimizeSplitter *mLeftFrame, *mMainFrame; 558 KDGanttMinimizeSplitter *mLeftFrame, *mMainFrame;
558 QWidgetStack *mRightFrame; 559 QWidgetStack *mRightFrame;
559 560
560 KDatePicker* mDatePicker; 561 KDatePicker* mDatePicker;
561 QVBox* mDateFrame; 562 QVBox* mDateFrame;
562 563
563 DateNavigatorContainer *mDateNavigator; // widget showing small month view. 564 DateNavigatorContainer *mDateNavigator; // widget showing small month view.
564 565
565 KOFilterView *mFilterView; 566 KOFilterView *mFilterView;
566 567
567 ResourceView *mResourceView; 568 ResourceView *mResourceView;
568 569
569 // calendar object for this viewing instance 570 // calendar object for this viewing instance
570 Calendar *mCalendar; 571 Calendar *mCalendar;
571 572
572 CalendarResourceManager *mResourceManager; 573 CalendarResourceManager *mResourceManager;
573 574
574 FileStorage *mStorage; 575 FileStorage *mStorage;
575 576
576 DateNavigator *mNavigator; 577 DateNavigator *mNavigator;
577 578
578 KOViewManager *mViewManager; 579 KOViewManager *mViewManager;
579 KODialogManager *mDialogManager; 580 KODialogManager *mDialogManager;
580 581
581 // Calendar filters 582 // Calendar filters
582 QPtrList<CalFilter> mFilters; 583 QPtrList<CalFilter> mFilters;
583 584
584 // various housekeeping variables. 585 // various housekeeping variables.
585 bool mModified; // flag indicating if calendar is modified 586 bool mModified; // flag indicating if calendar is modified
586 bool mReadOnly; // flag indicating if calendar is read-only 587 bool mReadOnly; // flag indicating if calendar is read-only
587 QDate mSaveSingleDate; 588 QDate mSaveSingleDate;
588 589
589 Incidence *mSelectedIncidence; 590 Incidence *mSelectedIncidence;
590 Incidence *mMoveIncidence; 591 Incidence *mMoveIncidence;
591 QDate mMoveIncidenceOldDate; 592 QDate mMoveIncidenceOldDate;
592 KOTodoView *mTodoList; 593 KOTodoView *mTodoList;
593 KOEventEditor * mEventEditor; 594 KOEventEditor * mEventEditor;
594 KOTodoEditor * mTodoEditor; 595 KOTodoEditor * mTodoEditor;
595 KOEventViewerDialog * mEventViewerDialog; 596 KOEventViewerDialog * mEventViewerDialog;
596 void keyPressEvent ( QKeyEvent *e) ; 597 void keyPressEvent ( QKeyEvent *e) ;
597 //QMap<Incidence*,KOIncidenceEditor*> mDialogList; 598 //QMap<Incidence*,KOIncidenceEditor*> mDialogList;
598}; 599};
599 600
600 601
601class CalendarViewVisitor : public Incidence::Visitor 602class CalendarViewVisitor : public Incidence::Visitor
602{ 603{
603 public: 604 public:
604 CalendarViewVisitor() : mView( 0 ) {} 605 CalendarViewVisitor() : mView( 0 ) {}
605 606
606 bool act( Incidence *incidence, CalendarView *view ) 607 bool act( Incidence *incidence, CalendarView *view )
607 { 608 {
608 mView = view; 609 mView = view;
609 return incidence->accept( *this ); 610 return incidence->accept( *this );
610 } 611 }
611 612
612 protected: 613 protected:
613 CalendarView *mView; 614 CalendarView *mView;
614}; 615};
615 616
616class ShowIncidenceVisitor : public CalendarViewVisitor 617class ShowIncidenceVisitor : public CalendarViewVisitor
617{ 618{
618 protected: 619 protected:
619 bool visit( Event *event ) { mView->showEvent( event ); return true; } 620 bool visit( Event *event ) { mView->showEvent( event ); return true; }
620 bool visit( Todo *todo ) { mView->showTodo( todo ); return true; } 621 bool visit( Todo *todo ) { mView->showTodo( todo ); return true; }
621 bool visit( Journal * j ) { mView->showJournal( j );return true; } 622 bool visit( Journal * j ) { mView->showJournal( j );return true; }
622}; 623};
623 624
624class EditIncidenceVisitor : public CalendarViewVisitor 625class EditIncidenceVisitor : public CalendarViewVisitor
625{ 626{
626 protected: 627 protected:
627 bool visit( Event *event ) { mView->editEvent( event ); return true; } 628 bool visit( Event *event ) { mView->editEvent( event ); return true; }
628 bool visit( Todo *todo ) { mView->editTodo( todo ); return true; } 629 bool visit( Todo *todo ) { mView->editTodo( todo ); return true; }
629 bool visit( Journal *j ) { mView->editJournal( j); return true; } 630 bool visit( Journal *j ) { mView->editJournal( j); return true; }
630}; 631};
631 632
632class DeleteIncidenceVisitor : public CalendarViewVisitor 633class DeleteIncidenceVisitor : public CalendarViewVisitor
633{ 634{
634 protected: 635 protected:
635 bool visit( Event *event ) { mView->deleteEvent( event ); return true; } 636 bool visit( Event *event ) { mView->deleteEvent( event ); return true; }
636 bool visit( Todo *todo ) { mView->deleteTodo( todo ); return true; } 637 bool visit( Todo *todo ) { mView->deleteTodo( todo ); return true; }
637 bool visit( Journal * j) {mView->deleteJournal( j ); return true; } 638 bool visit( Journal * j) {mView->deleteJournal( j ); return true; }
638}; 639};
639 640
640#endif 641#endif
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 1320231..63053a5 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,1144 +1,1147 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "koagenda.h" 50#include "koagenda.h"
51#include "kodialogmanager.h" 51#include "kodialogmanager.h"
52#include "kdialogbase.h" 52#include "kdialogbase.h"
53#include "kapplication.h" 53#include "kapplication.h"
54#include "kofilterview.h" 54#include "kofilterview.h"
55#include "kstandarddirs.h" 55#include "kstandarddirs.h"
56#include "koprefs.h" 56#include "koprefs.h"
57#include "kfiledialog.h" 57#include "kfiledialog.h"
58#include "koglobals.h" 58#include "koglobals.h"
59#include "kglobal.h" 59#include "kglobal.h"
60#include "ktoolbar.h" 60#include "ktoolbar.h"
61#include "klocale.h" 61#include "klocale.h"
62#include "kconfig.h" 62#include "kconfig.h"
63#include "externalapphandler.h" 63#include "externalapphandler.h"
64#include <kglobalsettings.h> 64#include <kglobalsettings.h>
65 65
66using namespace KCal; 66using namespace KCal;
67#ifndef _WIN32_ 67#ifndef _WIN32_
68#include <unistd.h> 68#include <unistd.h>
69#else 69#else
70#ifdef _OL_IMPORT_ 70#ifdef _OL_IMPORT_
71#include "koimportoldialog.h" 71#include "koimportoldialog.h"
72#endif 72#endif
73#endif 73#endif
74#include "mainwindow.h" 74#include "mainwindow.h"
75 75
76 76
77class KOex2phonePrefs : public QDialog 77class KOex2phonePrefs : public QDialog
78{ 78{
79 public: 79 public:
80 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 80 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
81 QDialog( parent, name, true ) 81 QDialog( parent, name, true )
82 { 82 {
83 setCaption( i18n("Export to phone options") ); 83 setCaption( i18n("Export to phone options") );
84 QVBoxLayout* lay = new QVBoxLayout( this ); 84 QVBoxLayout* lay = new QVBoxLayout( this );
85 lay->setSpacing( 3 ); 85 lay->setSpacing( 3 );
86 lay->setMargin( 3 ); 86 lay->setMargin( 3 );
87 QLabel *lab; 87 QLabel *lab;
88 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 88 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
89 lab->setAlignment (AlignHCenter ); 89 lab->setAlignment (AlignHCenter );
90 QHBox* temphb; 90 QHBox* temphb;
91 temphb = new QHBox( this ); 91 temphb = new QHBox( this );
92 new QLabel( i18n("I/O device: "), temphb ); 92 new QLabel( i18n("I/O device: "), temphb );
93 mPhoneDevice = new QLineEdit( temphb); 93 mPhoneDevice = new QLineEdit( temphb);
94 lay->addWidget( temphb ); 94 lay->addWidget( temphb );
95 temphb = new QHBox( this ); 95 temphb = new QHBox( this );
96 new QLabel( i18n("Connection: "), temphb ); 96 new QLabel( i18n("Connection: "), temphb );
97 mPhoneConnection = new QLineEdit( temphb); 97 mPhoneConnection = new QLineEdit( temphb);
98 lay->addWidget( temphb ); 98 lay->addWidget( temphb );
99 temphb = new QHBox( this ); 99 temphb = new QHBox( this );
100 new QLabel( i18n("Model(opt.): "), temphb ); 100 new QLabel( i18n("Model(opt.): "), temphb );
101 mPhoneModel = new QLineEdit( temphb); 101 mPhoneModel = new QLineEdit( temphb);
102 lay->addWidget( temphb ); 102 lay->addWidget( temphb );
103 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 103 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
104 mWriteBackFuture->setChecked( true ); 104 mWriteBackFuture->setChecked( true );
105 lay->addWidget( mWriteBackFuture ); 105 lay->addWidget( mWriteBackFuture );
106 temphb = new QHBox( this ); 106 temphb = new QHBox( this );
107 new QLabel( i18n("Max. weeks in future: ") , temphb ); 107 new QLabel( i18n("Max. weeks in future: ") , temphb );
108 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 108 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
109 mWriteBackFutureWeeks->setValue( 8 ); 109 mWriteBackFutureWeeks->setValue( 8 );
110 lay->addWidget( temphb ); 110 lay->addWidget( temphb );
111 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 111 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
112 lab->setAlignment (AlignHCenter ); 112 lab->setAlignment (AlignHCenter );
113 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 113 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
114 lay->addWidget( ok ); 114 lay->addWidget( ok );
115 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 115 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
116 lay->addWidget( cancel ); 116 lay->addWidget( cancel );
117 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 117 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
118 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 118 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
119 resize( 220, 240 ); 119 resize( 220, 240 );
120 qApp->processEvents(); 120 qApp->processEvents();
121 int dw = QApplication::desktop()->width(); 121 int dw = QApplication::desktop()->width();
122 int dh = QApplication::desktop()->height(); 122 int dh = QApplication::desktop()->height();
123 move( (dw-width())/2, (dh - height() )/2 ); 123 move( (dw-width())/2, (dh - height() )/2 );
124 } 124 }
125 125
126public: 126public:
127 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 127 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
128 QCheckBox* mWriteBackFuture; 128 QCheckBox* mWriteBackFuture;
129 QSpinBox* mWriteBackFutureWeeks; 129 QSpinBox* mWriteBackFutureWeeks;
130}; 130};
131 131
132int globalFlagBlockStartup; 132int globalFlagBlockStartup;
133MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 133MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
134 QMainWindow( parent, name ) 134 QMainWindow( parent, name )
135{ 135{
136 136
137 mClosed = false; 137 mClosed = false;
138 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 138 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
139 QString confFile = locateLocal("config","korganizerrc"); 139 QString confFile = locateLocal("config","korganizerrc");
140 QFileInfo finf ( confFile ); 140 QFileInfo finf ( confFile );
141 bool showWarning = !finf.exists(); 141 bool showWarning = !finf.exists();
142 setIcon(SmallIcon( "ko24" ) ); 142 setIcon(SmallIcon( "ko24" ) );
143 mBlockAtStartup = true; 143 mBlockAtStartup = true;
144 mFlagKeyPressed = false; 144 mFlagKeyPressed = false;
145 setCaption("KO/Pi"); 145 setCaption("KO/Pi");
146 KOPrefs *p = KOPrefs::instance(); 146 KOPrefs *p = KOPrefs::instance();
147 KPimGlobalPrefs::instance()->setGlobalConfig(); 147 KPimGlobalPrefs::instance()->setGlobalConfig();
148 p->mCurrentDisplayedView = 0; 148 p->mCurrentDisplayedView = 0;
149 if ( p->mHourSize > 22 ) 149 if ( p->mHourSize > 22 )
150 p->mHourSize = 22; 150 p->mHourSize = 22;
151 QMainWindow::ToolBarDock tbd; 151 QMainWindow::ToolBarDock tbd;
152 if ( p->mToolBarHor ) { 152 if ( p->mToolBarHor ) {
153 if ( p->mToolBarUp ) 153 if ( p->mToolBarUp )
154 tbd = Bottom; 154 tbd = Bottom;
155 else 155 else
156 tbd = Top; 156 tbd = Top;
157 } 157 }
158 else { 158 else {
159 if ( p->mToolBarUp ) 159 if ( p->mToolBarUp )
160 tbd = Right; 160 tbd = Right;
161 else 161 else
162 tbd = Left; 162 tbd = Left;
163 } 163 }
164 if ( KOPrefs::instance()->mUseAppColors ) 164 if ( KOPrefs::instance()->mUseAppColors )
165 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 165 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
166 globalFlagBlockStartup = 1; 166 globalFlagBlockStartup = 1;
167 iconToolBar = new QPEToolBar( this ); 167 iconToolBar = new QPEToolBar( this );
168 addToolBar (iconToolBar , tbd ); 168 addToolBar (iconToolBar , tbd );
169 169
170#ifdef DESKTOP_VERSION 170#ifdef DESKTOP_VERSION
171 if ( KOPrefs::instance()->mShowIconFilter ) 171 if ( KOPrefs::instance()->mShowIconFilter )
172#else 172#else
173 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) 173 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar )
174#endif 174#endif
175 175
176{ 176{
177 if ( p->mToolBarHorF ) { 177 if ( p->mToolBarHorF ) {
178 if ( p->mToolBarUpF ) 178 if ( p->mToolBarUpF )
179 tbd = Bottom; 179 tbd = Bottom;
180 else 180 else
181 tbd = Top; 181 tbd = Top;
182 } 182 }
183 else { 183 else {
184 if ( p->mToolBarUpF ) 184 if ( p->mToolBarUpF )
185 tbd = Right; 185 tbd = Right;
186 else 186 else
187 tbd = Left; 187 tbd = Left;
188 } 188 }
189 filterToolBar = new QPEToolBar ( this ); 189 filterToolBar = new QPEToolBar ( this );
190 filterMenubar = new QMenuBar( 0 ); 190 filterMenubar = new QMenuBar( 0 );
191 QFontMetrics fm ( filterMenubar->font() ); 191 QFontMetrics fm ( filterMenubar->font() );
192 192
193 filterPopupMenu = new QPopupMenu( this ); 193 filterPopupMenu = new QPopupMenu( this );
194 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); 194 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
195 QString addTest = "A"; 195 QString addTest = "A";
196 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) ); 196 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) );
197#ifdef DESKTOP_VERSION 197#ifdef DESKTOP_VERSION
198 addTest = "AAABBBCCCx"; 198 addTest = "AAABBBCCCx";
199#else 199#else
200 addTest = "AAx"; 200 addTest = "AAx";
201#endif 201#endif
202 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) ); 202 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) );
203 addToolBar (filterToolBar , tbd ); 203 addToolBar (filterToolBar , tbd );
204 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); 204 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
205 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); 205 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
206 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) 206 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar )
207 filterToolBar->hide(); 207 filterToolBar->hide();
208 } else { 208 } else {
209 filterToolBar = 0; 209 filterToolBar = 0;
210 filterMenubar = 0; 210 filterMenubar = 0;
211 filterPopupMenu = 0; 211 filterPopupMenu = 0;
212 } 212 }
213 if ( p->mShowIconOnetoolbar ) { 213 if ( p->mShowIconOnetoolbar ) {
214 viewToolBar = iconToolBar ; 214 viewToolBar = iconToolBar ;
215 navigatorToolBar = iconToolBar ; 215 navigatorToolBar = iconToolBar ;
216 } else { 216 } else {
217#ifndef DESKTOP_VERSION 217#ifndef DESKTOP_VERSION
218 setToolBarsMovable( false ); 218 setToolBarsMovable( false );
219#endif 219#endif
220 if ( p->mToolBarHorV ) { 220 if ( p->mToolBarHorV ) {
221 if ( p->mToolBarUpV ) 221 if ( p->mToolBarUpV )
222 tbd = Bottom; 222 tbd = Bottom;
223 else 223 else
224 tbd = Top; 224 tbd = Top;
225 } 225 }
226 else { 226 else {
227 if ( p->mToolBarUpV ) 227 if ( p->mToolBarUpV )
228 tbd = Right; 228 tbd = Right;
229 else 229 else
230 tbd = Left; 230 tbd = Left;
231 } 231 }
232 viewToolBar = new QPEToolBar( this ); 232 viewToolBar = new QPEToolBar( this );
233 addToolBar (viewToolBar , tbd ); 233 addToolBar (viewToolBar , tbd );
234 if ( p->mToolBarHorN ) { 234 if ( p->mToolBarHorN ) {
235 if ( p->mToolBarUpN ) 235 if ( p->mToolBarUpN )
236 tbd = Bottom; 236 tbd = Bottom;
237 else 237 else
238 tbd = Top; 238 tbd = Top;
239 } 239 }
240 else { 240 else {
241 if ( p->mToolBarUpN ) 241 if ( p->mToolBarUpN )
242 tbd = Right; 242 tbd = Right;
243 else 243 else
244 tbd = Left; 244 tbd = Left;
245 } 245 }
246 navigatorToolBar = new QPEToolBar( this ); 246 navigatorToolBar = new QPEToolBar( this );
247 addToolBar (navigatorToolBar , tbd ); 247 addToolBar (navigatorToolBar , tbd );
248 } 248 }
249 249
250 250
251 251
252 mCalendarModifiedFlag = false; 252 mCalendarModifiedFlag = false;
253 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 253 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
254 splash->setAlignment ( AlignCenter ); 254 splash->setAlignment ( AlignCenter );
255 setCentralWidget( splash ); 255 setCentralWidget( splash );
256#ifndef DESKTOP_VERSION 256#ifndef DESKTOP_VERSION
257 showMaximized(); 257 showMaximized();
258#endif 258#endif
259 259
260 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 260 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
261 setDefaultPreferences(); 261 setDefaultPreferences();
262 mCalendar = new CalendarLocal(); 262 mCalendar = new CalendarLocal();
263 mView = new CalendarView( mCalendar, this,"mCalendar " ); 263 mView = new CalendarView( mCalendar, this,"mCalendar " );
264 mView->hide(); 264 mView->hide();
265 //mView->resize(splash->size() ); 265 //mView->resize(splash->size() );
266 initActions(); 266 initActions();
267 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 267 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
268 mSyncManager->setBlockSave(false); 268 mSyncManager->setBlockSave(false);
269 mView->setSyncManager(mSyncManager); 269 mView->setSyncManager(mSyncManager);
270#ifndef DESKTOP_VERSION 270#ifndef DESKTOP_VERSION
271 iconToolBar->show(); 271 iconToolBar->show();
272 qApp->processEvents(); 272 qApp->processEvents();
273#endif 273#endif
274 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 274 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
275 int vh = height() ; 275 int vh = height() ;
276 int vw = width(); 276 int vw = width();
277 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 277 //qDebug("Toolbar hei %d ",iconToolBar->height() );
278 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 278 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
279 vh -= iconToolBar->height(); 279 vh -= iconToolBar->height();
280 } else { 280 } else {
281 vw -= iconToolBar->height(); 281 vw -= iconToolBar->height();
282 } 282 }
283 //mView->setMaximumSize( splash->size() ); 283 //mView->setMaximumSize( splash->size() );
284 //mView->resize( splash->size() ); 284 //mView->resize( splash->size() );
285 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 285 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
286 mView->readSettings(); 286 mView->readSettings();
287 bool newFile = false; 287 bool newFile = false;
288 if( !QFile::exists( defaultFileName() ) ) { 288 if( !QFile::exists( defaultFileName() ) ) {
289 QFileInfo finfo ( defaultFileName() ); 289 QFileInfo finfo ( defaultFileName() );
290 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 290 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
291 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; 291 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n";
292 finfo.setFile( oldFile ); 292 finfo.setFile( oldFile );
293 if (finfo.exists() ) { 293 if (finfo.exists() ) {
294 KMessageBox::information( this, message); 294 KMessageBox::information( this, message);
295 mView->openCalendar( oldFile ); 295 mView->openCalendar( oldFile );
296 qApp->processEvents(); 296 qApp->processEvents();
297 } else { 297 } else {
298 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 298 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
299 finfo.setFile( oldFile ); 299 finfo.setFile( oldFile );
300 if (finfo.exists() ) { 300 if (finfo.exists() ) {
301 KMessageBox::information( this, message); 301 KMessageBox::information( this, message);
302 mView->openCalendar( oldFile ); 302 mView->openCalendar( oldFile );
303 qApp->processEvents(); 303 qApp->processEvents();
304 } 304 }
305 } 305 }
306 mView->saveCalendar( defaultFileName() ); 306 mView->saveCalendar( defaultFileName() );
307 newFile = true; 307 newFile = true;
308 } 308 }
309 309
310 QTime neededSaveTime = QDateTime::currentDateTime().time(); 310 QTime neededSaveTime = QDateTime::currentDateTime().time();
311 mView->openCalendar( defaultFileName() ); 311 mView->openCalendar( defaultFileName() );
312 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 312 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
313 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 313 qDebug("KO: Calendar loading time: %d ms",msNeeded );
314 314
315 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 315 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
316 KOPrefs::instance()->setAllDefaults(); 316 KOPrefs::instance()->setAllDefaults();
317 int count = mView->addCategories(); 317 int count = mView->addCategories();
318 } 318 }
319 processIncidenceSelection( 0 ); 319 processIncidenceSelection( 0 );
320 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 320 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
321 SLOT( processIncidenceSelection( Incidence * ) ) ); 321 SLOT( processIncidenceSelection( Incidence * ) ) );
322 connect( mView, SIGNAL( modifiedChanged( bool ) ), 322 connect( mView, SIGNAL( modifiedChanged( bool ) ),
323 SLOT( slotModifiedChanged( bool ) ) ); 323 SLOT( slotModifiedChanged( bool ) ) );
324 324
325 325
326 connect( mView, SIGNAL( tempDisableBR(bool) ), 326 connect( mView, SIGNAL( tempDisableBR(bool) ),
327 SLOT( disableBR(bool) ) ); 327 SLOT( disableBR(bool) ) );
328 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 328 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
329 mView->setModified( false ); 329 mView->setModified( false );
330 mBlockAtStartup = false; 330 mBlockAtStartup = false;
331 mView->setModified( false ); 331 mView->setModified( false );
332 setCentralWidget( mView ); 332 setCentralWidget( mView );
333 globalFlagBlockStartup = 0; 333 globalFlagBlockStartup = 0;
334 mView->show(); 334 mView->show();
335 delete splash; 335 delete splash;
336 if ( newFile ) 336 if ( newFile )
337 mView->updateConfig(); 337 mView->updateConfig();
338 // qApp->processEvents(); 338 // qApp->processEvents();
339 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 339 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
340 //fillSyncMenu(); 340 //fillSyncMenu();
341 341
342 342
343 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 343 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
344 connect(mView , SIGNAL( save() ), this, SLOT( save() ) ); 344 connect(mView , SIGNAL( save() ), this, SLOT( save() ) );
345 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); 345 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) );
346 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 346 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
347 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 347 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
348 mSyncManager->setDefaultFileName( sentSyncFile()); 348 mSyncManager->setDefaultFileName( sentSyncFile());
349 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 349 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
350 mSyncManager->fillSyncMenu(); 350 mSyncManager->fillSyncMenu();
351 351
352 352
353 353
354 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 354 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
355 if ( showWarning ) { 355 if ( showWarning ) {
356 KMessageBox::information( this, 356 KMessageBox::information( this,
357 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 357 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
358 qApp->processEvents(); 358 qApp->processEvents();
359 mView->dialogManager()->showSyncOptions(); 359 mView->dialogManager()->showSyncOptions();
360 } 360 }
361 361
362 //US listen for result adressed from Ka/Pi 362 //US listen for result adressed from Ka/Pi
363#ifndef DESKTOP_VERSION 363#ifndef DESKTOP_VERSION
364 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 364 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
365#endif 365#endif
366#ifndef DESKTOP_VERSION 366#ifndef DESKTOP_VERSION
367 infrared = 0; 367 infrared = 0;
368#endif 368#endif
369 updateFilterToolbar(); 369 updateFilterToolbar();
370 updateWeek( mView->startDate() ); 370 updateWeek( mView->startDate() );
371 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 371 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
372 SLOT( updateWeekNum( const KCal::DateList & ) ) ); 372 SLOT( updateWeekNum( const KCal::DateList & ) ) );
373 mBRdisabled = false; 373 mBRdisabled = false;
374 //toggleBeamReceive(); 374 //toggleBeamReceive();
375 375 int tiint= 3000;
376 QTimer::singleShot( 1000, mView, SLOT ( checkAlarms() )); 376#ifndef DESKTOP_VERSION
377 tiint = 5000;
378#endif
379 QTimer::singleShot( tiint, mView, SLOT ( checkAlarms() ));
377} 380}
378MainWindow::~MainWindow() 381MainWindow::~MainWindow()
379{ 382{
380 //qDebug("MainWindow::~MainWindow() "); 383 //qDebug("MainWindow::~MainWindow() ");
381 //save toolbar location 384 //save toolbar location
382 delete mCalendar; 385 delete mCalendar;
383 delete mSyncManager; 386 delete mSyncManager;
384#ifndef DESKTOP_VERSION 387#ifndef DESKTOP_VERSION
385 if ( infrared ) 388 if ( infrared )
386 delete infrared; 389 delete infrared;
387#endif 390#endif
388 391
389 392
390} 393}
391 394
392void MainWindow::disableBR(bool b) 395void MainWindow::disableBR(bool b)
393{ 396{
394#ifndef DESKTOP_VERSION 397#ifndef DESKTOP_VERSION
395 if ( b ) { 398 if ( b ) {
396 if ( infrared ) { 399 if ( infrared ) {
397 toggleBeamReceive(); 400 toggleBeamReceive();
398 mBRdisabled = true; 401 mBRdisabled = true;
399 } 402 }
400 mBRdisabled = true; 403 mBRdisabled = true;
401 } else { 404 } else {
402 if ( mBRdisabled ) { 405 if ( mBRdisabled ) {
403 mBRdisabled = false; 406 mBRdisabled = false;
404 //makes no sense,because other cal ap is probably running 407 //makes no sense,because other cal ap is probably running
405 // toggleBeamReceive(); 408 // toggleBeamReceive();
406 } 409 }
407 } 410 }
408#endif 411#endif
409 412
410} 413}
411bool MainWindow::beamReceiveEnabled() 414bool MainWindow::beamReceiveEnabled()
412{ 415{
413#ifndef DESKTOP_VERSION 416#ifndef DESKTOP_VERSION
414 return ( infrared != 0 ); 417 return ( infrared != 0 );
415#endif 418#endif
416 return false; 419 return false;
417} 420}
418 421
419void MainWindow::toggleBeamReceive() 422void MainWindow::toggleBeamReceive()
420{ 423{
421 if ( mBRdisabled ) 424 if ( mBRdisabled )
422 return; 425 return;
423#ifndef DESKTOP_VERSION 426#ifndef DESKTOP_VERSION
424 if ( infrared ) { 427 if ( infrared ) {
425 qDebug("KO: Disable BeamReceive "); 428 qDebug("KO: Disable BeamReceive ");
426 delete infrared; 429 delete infrared;
427 infrared = 0; 430 infrared = 0;
428 brAction->setOn(false); 431 brAction->setOn(false);
429 return; 432 return;
430 } 433 }
431 qDebug("KO: Enable BeamReceive "); 434 qDebug("KO: Enable BeamReceive ");
432 brAction->setOn(true); 435 brAction->setOn(true);
433 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 436 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
434 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 437 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
435#endif 438#endif
436} 439}
437void MainWindow::showMaximized () 440void MainWindow::showMaximized ()
438{ 441{
439#ifndef DESKTOP_VERSION 442#ifndef DESKTOP_VERSION
440 if ( ! globalFlagBlockStartup ) 443 if ( ! globalFlagBlockStartup )
441 if ( mClosed ) 444 if ( mClosed )
442 mView->goToday(); 445 mView->goToday();
443#endif 446#endif
444 QWidget::showMaximized () ; 447 QWidget::showMaximized () ;
445 mClosed = false; 448 mClosed = false;
446} 449}
447void MainWindow::closeEvent( QCloseEvent* ce ) 450void MainWindow::closeEvent( QCloseEvent* ce )
448{ 451{
449 452
450 453
451 454
452 if ( ! KOPrefs::instance()->mAskForQuit ) { 455 if ( ! KOPrefs::instance()->mAskForQuit ) {
453 saveOnClose(); 456 saveOnClose();
454 mClosed = true; 457 mClosed = true;
455 ce->accept(); 458 ce->accept();
456 return; 459 return;
457 460
458 } 461 }
459 462
460 switch( QMessageBox::information( this, "KO/Pi", 463 switch( QMessageBox::information( this, "KO/Pi",
461 i18n("Do you really want\nto close KO/Pi?"), 464 i18n("Do you really want\nto close KO/Pi?"),
462 i18n("Close"), i18n("No"), 465 i18n("Close"), i18n("No"),
463 0, 0 ) ) { 466 0, 0 ) ) {
464 case 0: 467 case 0:
465 saveOnClose(); 468 saveOnClose();
466 mClosed = true; 469 mClosed = true;
467 ce->accept(); 470 ce->accept();
468 break; 471 break;
469 case 1: 472 case 1:
470 ce->ignore(); 473 ce->ignore();
471 break; 474 break;
472 case 2: 475 case 2:
473 476
474 default: 477 default:
475 break; 478 break;
476 } 479 }
477 480
478 481
479} 482}
480 483
481void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 484void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
482{ 485{
483 QDataStream stream( data, IO_ReadOnly ); 486 QDataStream stream( data, IO_ReadOnly );
484 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 487 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
485 //QString datamess; 488 //QString datamess;
486 //qDebug("message "); 489 //qDebug("message ");
487 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 490 qDebug("KO: QCOP message received: %s ", cmsg.data() );
488 491
489 if ( cmsg == "setDocument(QString)" ) { 492 if ( cmsg == "setDocument(QString)" ) {
490 QDataStream stream( data, IO_ReadOnly ); 493 QDataStream stream( data, IO_ReadOnly );
491 QString fileName; 494 QString fileName;
492 stream >> fileName; 495 stream >> fileName;
493 //qDebug("filename %s ", fileName.latin1()); 496 //qDebug("filename %s ", fileName.latin1());
494 showMaximized(); 497 showMaximized();
495 raise(); 498 raise();
496 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 499 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
497 mSyncManager->slotSyncMenu( 1002 ); 500 mSyncManager->slotSyncMenu( 1002 );
498 return; 501 return;
499 } 502 }
500 503
501 if ( cmsg == "-writeFile" ) { 504 if ( cmsg == "-writeFile" ) {
502 // I made from the "-writeFile" an "-writeAlarm" 505 // I made from the "-writeFile" an "-writeAlarm"
503 mView->viewManager()->showWhatsNextView(); 506 mView->viewManager()->showWhatsNextView();
504 mCalendar->checkAlarmForIncidence( 0, true); 507 mCalendar->checkAlarmForIncidence( 0, true);
505 showMaximized(); 508 showMaximized();
506 raise(); 509 raise();
507 return; 510 return;
508 511
509 } 512 }
510 if ( cmsg == "-writeFileSilent" ) { 513 if ( cmsg == "-writeFileSilent" ) {
511 // I made from the "-writeFile" an "-writeAlarm" 514 // I made from the "-writeFile" an "-writeAlarm"
512 // mView->viewManager()->showWhatsNextView(); 515 // mView->viewManager()->showWhatsNextView();
513 mCalendar->checkAlarmForIncidence( 0, true); 516 mCalendar->checkAlarmForIncidence( 0, true);
514 //showMaximized(); 517 //showMaximized();
515 //raise(); 518 //raise();
516 hide(); 519 hide();
517 return; 520 return;
518 } 521 }
519 if ( cmsg == "-newCountdown" ) { 522 if ( cmsg == "-newCountdown" ) {
520 qDebug("newCountdown "); 523 qDebug("newCountdown ");
521 524
522 } 525 }
523 QString msg ; 526 QString msg ;
524 QString allmsg = cmsg; 527 QString allmsg = cmsg;
525 while ( allmsg.length() > 0 ) { 528 while ( allmsg.length() > 0 ) {
526 int nextC = allmsg.find( "-", 1 ); 529 int nextC = allmsg.find( "-", 1 );
527 if ( nextC == -1 ) { 530 if ( nextC == -1 ) {
528 msg = allmsg; 531 msg = allmsg;
529 allmsg = ""; 532 allmsg = "";
530 } else{ 533 } else{
531 msg = allmsg.left( nextC ); 534 msg = allmsg.left( nextC );
532 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 535 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
533 } 536 }
534 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 537 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
535 if ( msg == "-newEvent" ) { 538 if ( msg == "-newEvent" ) {
536 mView->newEvent(); 539 mView->newEvent();
537 } 540 }
538 if ( msg == "-newTodo" ) { 541 if ( msg == "-newTodo" ) {
539 mView->newTodo(); 542 mView->newTodo();
540 543
541 } 544 }
542 if ( msg == "-showWN" ) { 545 if ( msg == "-showWN" ) {
543 mView->viewManager()->showWhatsNextView(); 546 mView->viewManager()->showWhatsNextView();
544 } 547 }
545 if ( msg == "-showTodo" ) { 548 if ( msg == "-showTodo" ) {
546 mView->viewManager()->showTodoView(); 549 mView->viewManager()->showTodoView();
547 } 550 }
548 if ( msg == "-showList" ) { 551 if ( msg == "-showList" ) {
549 mView->viewManager()->showListView(); 552 mView->viewManager()->showListView();
550 } 553 }
551 else if ( msg == "-showDay" ) { 554 else if ( msg == "-showDay" ) {
552 mView->viewManager()->showDayView(); 555 mView->viewManager()->showDayView();
553 } 556 }
554 else if ( msg == "-showWWeek" ) { 557 else if ( msg == "-showWWeek" ) {
555 mView->viewManager()->showWorkWeekView(); 558 mView->viewManager()->showWorkWeekView();
556 } 559 }
557 else if ( msg == "-ringSync" ) { 560 else if ( msg == "-ringSync" ) {
558 mSyncManager->multiSync( false ); 561 mSyncManager->multiSync( false );
559 } 562 }
560 else if ( msg == "-showWeek" ) { 563 else if ( msg == "-showWeek" ) {
561 mView->viewManager()->showWeekView(); 564 mView->viewManager()->showWeekView();
562 } 565 }
563 else if ( msg == "-showTodo" ) { 566 else if ( msg == "-showTodo" ) {
564 mView->viewManager()->showTodoView(); 567 mView->viewManager()->showTodoView();
565 } 568 }
566 else if ( msg == "-showJournal" ) { 569 else if ( msg == "-showJournal" ) {
567 mView->dateNavigator()->selectDates( 1 ); 570 mView->dateNavigator()->selectDates( 1 );
568 mView->dateNavigator()->selectToday(); 571 mView->dateNavigator()->selectToday();
569 mView->viewManager()->showJournalView(); 572 mView->viewManager()->showJournalView();
570 } 573 }
571 else if ( msg == "-showKO" ) { 574 else if ( msg == "-showKO" ) {
572 mView->viewManager()->showNextXView(); 575 mView->viewManager()->showNextXView();
573 } 576 }
574 else if ( msg == "-showWNext" ) { 577 else if ( msg == "-showWNext" ) {
575 mView->viewManager()->showWhatsNextView(); 578 mView->viewManager()->showWhatsNextView();
576 } 579 }
577 else if ( msg == "nextView()" ) { 580 else if ( msg == "nextView()" ) {
578 mView->viewManager()->showNextView(); 581 mView->viewManager()->showNextView();
579 } 582 }
580 else if ( msg == "-showNextXView" ) { 583 else if ( msg == "-showNextXView" ) {
581 mView->viewManager()->showNextXView(); 584 mView->viewManager()->showNextXView();
582 } 585 }
583 586
584 587
585 } 588 }
586 589
587 showMaximized(); 590 showMaximized();
588 raise(); 591 raise();
589} 592}
590 593
591QPixmap MainWindow::loadPixmap( QString name ) 594QPixmap MainWindow::loadPixmap( QString name )
592{ 595{
593 return SmallIcon( name ); 596 return SmallIcon( name );
594 597
595} 598}
596void MainWindow::setUsesBigPixmaps ( bool b ) 599void MainWindow::setUsesBigPixmaps ( bool b )
597{ 600{
598 qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b); 601 qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b);
599 if ( b ) 602 if ( b )
600 qDebug("KO: BigPixmaps are not supported "); 603 qDebug("KO: BigPixmaps are not supported ");
601} 604}
602void MainWindow::initActions() 605void MainWindow::initActions()
603{ 606{
604 //KOPrefs::instance()->mShowFullMenu 607 //KOPrefs::instance()->mShowFullMenu
605 iconToolBar->clear(); 608 iconToolBar->clear();
606 KOPrefs *p = KOPrefs::instance(); 609 KOPrefs *p = KOPrefs::instance();
607 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 610 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
608 611
609 QPopupMenu *viewMenu = new QPopupMenu( this ); 612 QPopupMenu *viewMenu = new QPopupMenu( this );
610 QPopupMenu *actionMenu = new QPopupMenu( this ); 613 QPopupMenu *actionMenu = new QPopupMenu( this );
611 QPopupMenu *importMenu = new QPopupMenu( this ); 614 QPopupMenu *importMenu = new QPopupMenu( this );
612 QPopupMenu *importMenu_X = new QPopupMenu( this ); 615 QPopupMenu *importMenu_X = new QPopupMenu( this );
613 QPopupMenu *exportMenu_X = new QPopupMenu( this ); 616 QPopupMenu *exportMenu_X = new QPopupMenu( this );
614 QPopupMenu *beamMenu_X = new QPopupMenu( this ); 617 QPopupMenu *beamMenu_X = new QPopupMenu( this );
615 selectFilterMenu = new QPopupMenu( this ); 618 selectFilterMenu = new QPopupMenu( this );
616 selectFilterMenu->setCheckable( true ); 619 selectFilterMenu->setCheckable( true );
617 syncMenu = new QPopupMenu( this ); 620 syncMenu = new QPopupMenu( this );
618 configureAgendaMenu = new QPopupMenu( this ); 621 configureAgendaMenu = new QPopupMenu( this );
619 configureToolBarMenu = new QPopupMenu( this ); 622 configureToolBarMenu = new QPopupMenu( this );
620 QPopupMenu *helpMenu = new QPopupMenu( this ); 623 QPopupMenu *helpMenu = new QPopupMenu( this );
621 QIconSet icon; 624 QIconSet icon;
622 int pixWid = 22, pixHei = 22; 625 int pixWid = 22, pixHei = 22;
623 QString pathString = ""; 626 QString pathString = "";
624 if ( !p->mToolBarMiniIcons ) { 627 if ( !p->mToolBarMiniIcons ) {
625 if ( QApplication::desktop()->width() < 480 ) { 628 if ( QApplication::desktop()->width() < 480 ) {
626 pathString += "icons16/"; 629 pathString += "icons16/";
627 pixWid = 18; pixHei = 16; 630 pixWid = 18; pixHei = 16;
628 } 631 }
629 } else { 632 } else {
630 pathString += "iconsmini/"; 633 pathString += "iconsmini/";
631 pixWid = 18; pixHei = 16; 634 pixWid = 18; pixHei = 16;
632 } 635 }
633 if ( KOPrefs::instance()->mShowFullMenu ) { 636 if ( KOPrefs::instance()->mShowFullMenu ) {
634 QMenuBar *menuBar1; 637 QMenuBar *menuBar1;
635 menuBar1 = menuBar(); 638 menuBar1 = menuBar();
636 menuBar1->insertItem( i18n("File"), importMenu ); 639 menuBar1->insertItem( i18n("File"), importMenu );
637 menuBar1->insertItem( i18n("View"), viewMenu ); 640 menuBar1->insertItem( i18n("View"), viewMenu );
638 menuBar1->insertItem( i18n("Actions"), actionMenu ); 641 menuBar1->insertItem( i18n("Actions"), actionMenu );
639#ifdef DESKTOP_VERSION 642#ifdef DESKTOP_VERSION
640 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 643 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
641 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 644 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
642#else 645#else
643 menuBar1->insertItem( i18n("Sync"), syncMenu ); 646 menuBar1->insertItem( i18n("Sync"), syncMenu );
644 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu ); 647 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu );
645#endif 648#endif
646 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 649 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
647 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 650 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
648 menuBar1->insertItem( i18n("Help"), helpMenu ); 651 menuBar1->insertItem( i18n("Help"), helpMenu );
649 } else { 652 } else {
650 QPEMenuBar *menuBar1; 653 QPEMenuBar *menuBar1;
651 menuBar1 = new QPEMenuBar( iconToolBar ); 654 menuBar1 = new QPEMenuBar( iconToolBar );
652 QPopupMenu *menuBar = new QPopupMenu( this ); 655 QPopupMenu *menuBar = new QPopupMenu( this );
653 icon = loadPixmap( pathString + "z_menu" ); 656 icon = loadPixmap( pathString + "z_menu" );
654 menuBar1->insertItem( icon.pixmap(), menuBar); 657 menuBar1->insertItem( icon.pixmap(), menuBar);
655 //menuBar1->insertItem( i18n("ME"), menuBar); 658 //menuBar1->insertItem( i18n("ME"), menuBar);
656 menuBar->insertItem( i18n("File"), importMenu ); 659 menuBar->insertItem( i18n("File"), importMenu );
657 menuBar->insertItem( i18n("View"), viewMenu ); 660 menuBar->insertItem( i18n("View"), viewMenu );
658 menuBar->insertItem( i18n("Actions"), actionMenu ); 661 menuBar->insertItem( i18n("Actions"), actionMenu );
659 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 662 menuBar->insertItem( i18n("Synchronize"), syncMenu );
660 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 663 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
661 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 664 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
662 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 665 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
663 menuBar->insertItem( i18n("Help"), helpMenu ); 666 menuBar->insertItem( i18n("Help"), helpMenu );
664 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 667 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
665 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 668 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
666 } 669 }
667 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 670 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
668 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) ); 671 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) );
669 672
670 673
671 mWeekBgColor = iconToolBar->backgroundColor(); 674 mWeekBgColor = iconToolBar->backgroundColor();
672 mWeekPixmap.resize( pixWid , pixHei ); 675 mWeekPixmap.resize( pixWid , pixHei );
673 mWeekPixmap.fill( mWeekBgColor ); 676 mWeekPixmap.fill( mWeekBgColor );
674 icon = mWeekPixmap; 677 icon = mWeekPixmap;
675 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this ); 678 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this );
676 if ( p-> mShowIconWeekNum ) 679 if ( p-> mShowIconWeekNum )
677 mWeekAction->addTo( iconToolBar ); 680 mWeekAction->addTo( iconToolBar );
678 mWeekFont = font(); 681 mWeekFont = font();
679 682
680 int fontPoint = mWeekFont.pointSize(); 683 int fontPoint = mWeekFont.pointSize();
681 QFontMetrics f( mWeekFont ); 684 QFontMetrics f( mWeekFont );
682 int fontWid = f.width( "30" ); 685 int fontWid = f.width( "30" );
683 while ( fontWid > pixWid ) { 686 while ( fontWid > pixWid ) {
684 --fontPoint; 687 --fontPoint;
685 mWeekFont.setPointSize( fontPoint ); 688 mWeekFont.setPointSize( fontPoint );
686 QFontMetrics f( mWeekFont ); 689 QFontMetrics f( mWeekFont );
687 fontWid = f.width( "30" ); 690 fontWid = f.width( "30" );
688 //qDebug("dec-- "); 691 //qDebug("dec-- ");
689 } 692 }
690 693
691 connect( mWeekAction, SIGNAL( activated() ), 694 connect( mWeekAction, SIGNAL( activated() ),
692 this, SLOT( weekAction() ) ); 695 this, SLOT( weekAction() ) );
693 696
694 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) ); 697 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) );
695 if ( p->mShowIconFilterview ) { 698 if ( p->mShowIconFilterview ) {
696 icon = loadPixmap( pathString + "filter" ); 699 icon = loadPixmap( pathString + "filter" );
697 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this ); 700 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this );
698 connect( actionFilterMenuTB, SIGNAL( activated() ), 701 connect( actionFilterMenuTB, SIGNAL( activated() ),
699 this, SLOT( fillFilterMenuTB() ) ); 702 this, SLOT( fillFilterMenuTB() ) );
700 actionFilterMenuTB->addTo( iconToolBar ); 703 actionFilterMenuTB->addTo( iconToolBar );
701 selectFilterMenuTB = new QPopupMenu( this ); 704 selectFilterMenuTB = new QPopupMenu( this );
702 selectFilterMenuTB->setCheckable( true ); 705 selectFilterMenuTB->setCheckable( true );
703 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 706 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
704 } 707 }
705 708
706 //#endif 709 //#endif
707 // ****************** 710 // ******************
708 QAction *action; 711 QAction *action;
709 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 712 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
710 configureToolBarMenu->setCheckable( true ); 713 configureToolBarMenu->setCheckable( true );
711 714
712 715
713 configureAgendaMenu->setCheckable( true ); 716 configureAgendaMenu->setCheckable( true );
714 int iii ; 717 int iii ;
715 for ( iii = 1;iii<= 10 ;++iii ){ 718 for ( iii = 1;iii<= 10 ;++iii ){
716 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 ); 719 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 );
717 } 720 }
718 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 721 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
719 722
720 connect( configureAgendaMenu, SIGNAL( aboutToShow()), 723 connect( configureAgendaMenu, SIGNAL( aboutToShow()),
721 this, SLOT( showConfigureAgenda( ) ) ); 724 this, SLOT( showConfigureAgenda( ) ) );
722 725
723 icon = loadPixmap( pathString + "configure" ); 726 icon = loadPixmap( pathString + "configure" );
724 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 727 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
725 action->addTo( actionMenu ); 728 action->addTo( actionMenu );
726 connect( action, SIGNAL( activated() ), 729 connect( action, SIGNAL( activated() ),
727 mView, SLOT( edit_options() ) ); 730 mView, SLOT( edit_options() ) );
728 actionMenu->insertSeparator(); 731 actionMenu->insertSeparator();
729 732
730 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this ); 733 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
731 action->addTo( actionMenu ); 734 action->addTo( actionMenu );
732 connect( action, SIGNAL( activated() ), 735 connect( action, SIGNAL( activated() ),
733 mView, SLOT( undo_delete() ) ); 736 mView, SLOT( undo_delete() ) );
734 actionMenu->insertSeparator(); 737 actionMenu->insertSeparator();
735 738
736 icon = loadPixmap( pathString + "newevent" ); 739 icon = loadPixmap( pathString + "newevent" );
737 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 740 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
738 configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 ); 741 configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 );
739 configureToolBarMenu->insertSeparator(); 742 configureToolBarMenu->insertSeparator();
740 configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 ); 743 configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 );
741 configureToolBarMenu->insertSeparator(); 744 configureToolBarMenu->insertSeparator();
742 configureToolBarMenu->insertItem(i18n("Week Number"), 400); 745 configureToolBarMenu->insertItem(i18n("Week Number"), 400);
743 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 746 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
744 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 747 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
745 ne_action->addTo( actionMenu ); 748 ne_action->addTo( actionMenu );
746 connect( ne_action, SIGNAL( activated() ), 749 connect( ne_action, SIGNAL( activated() ),
747 mView, SLOT( newEvent() ) ); 750 mView, SLOT( newEvent() ) );
748 icon = loadPixmap( pathString + "newtodo" ); 751 icon = loadPixmap( pathString + "newtodo" );
749 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 752 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
750 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 753 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
751 nt_action->addTo( actionMenu ); 754 nt_action->addTo( actionMenu );
752 connect( nt_action, SIGNAL( activated() ), 755 connect( nt_action, SIGNAL( activated() ),
753 mView, SLOT( newTodo() ) ); 756 mView, SLOT( newTodo() ) );
754 757
755 icon = loadPixmap( pathString + "today" ); 758 icon = loadPixmap( pathString + "today" );
756 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 759 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
757 today_action->addTo( viewMenu ); 760 today_action->addTo( viewMenu );
758 connect( today_action, SIGNAL( activated() ), 761 connect( today_action, SIGNAL( activated() ),
759 mView, SLOT( goToday() ) ); 762 mView, SLOT( goToday() ) );
760 viewMenu->insertSeparator(); 763 viewMenu->insertSeparator();
761 764
762 // *********************** 765 // ***********************
763 if ( KOPrefs::instance()->mVerticalScreen ) { 766 if ( KOPrefs::instance()->mVerticalScreen ) {
764 icon = SmallIcon( "1updownarrow" ); 767 icon = SmallIcon( "1updownarrow" );
765 } else { 768 } else {
766 icon = SmallIcon("1leftrightarrow" ); 769 icon = SmallIcon("1leftrightarrow" );
767 } 770 }
768 configureToolBarMenu->insertItem(icon, i18n("Toggle Fullscreen"), 28 ); 771 configureToolBarMenu->insertItem(icon, i18n("Toggle Fullscreen"), 28 );
769 QAction* FSaction = new QAction( i18n("Toggle Fullscreen"), icon, i18n("Toggle Fullscreen"), 0, this ); 772 QAction* FSaction = new QAction( i18n("Toggle Fullscreen"), icon, i18n("Toggle Fullscreen"), 0, this );
770 FSaction->addTo( viewMenu ); 773 FSaction->addTo( viewMenu );
771 connect( FSaction, SIGNAL( activated() ), mView, SLOT( toggleExpand() )); 774 connect( FSaction, SIGNAL( activated() ), mView, SLOT( toggleExpand() ));
772 775
773 icon = loadPixmap( pathString + "navi" ); 776 icon = loadPixmap( pathString + "navi" );
774 configureToolBarMenu->insertItem(icon, i18n("Toggle DateNavigator"), 22 ); 777 configureToolBarMenu->insertItem(icon, i18n("Toggle DateNavigator"), 22 );
775 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 778 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
776 action->addTo( viewMenu ); 779 action->addTo( viewMenu );
777 connect( action, SIGNAL( activated() ), 780 connect( action, SIGNAL( activated() ),
778 mView, SLOT( toggleDateNavigatorWidget() ) ); 781 mView, SLOT( toggleDateNavigatorWidget() ) );
779 mToggleNav = action ; 782 mToggleNav = action ;
780 icon = loadPixmap( pathString + "filter" ); 783 icon = loadPixmap( pathString + "filter" );
781 configureToolBarMenu->insertItem(icon, i18n("Filter menu icon"), 26 ); 784 configureToolBarMenu->insertItem(icon, i18n("Filter menu icon"), 26 );
782 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 785 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this );
783 action->addTo( viewMenu ); 786 action->addTo( viewMenu );
784 connect( action, SIGNAL( activated() ), 787 connect( action, SIGNAL( activated() ),
785 mView, SLOT( toggleFilter() ) ); 788 mView, SLOT( toggleFilter() ) );
786 mToggleFilter = action; 789 mToggleFilter = action;
787 icon = loadPixmap( pathString + "allday" ); 790 icon = loadPixmap( pathString + "allday" );
788 configureToolBarMenu->insertItem(icon, i18n("Toggle Allday"), 24 ); 791 configureToolBarMenu->insertItem(icon, i18n("Toggle Allday"), 24 );
789 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this ); 792 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this );
790 action->addTo( viewMenu ); 793 action->addTo( viewMenu );
791 connect( action, SIGNAL( activated() ), 794 connect( action, SIGNAL( activated() ),
792 mView, SLOT( toggleAllDaySize() ) ); 795 mView, SLOT( toggleAllDaySize() ) );
793 mToggleAllday = action; 796 mToggleAllday = action;
794 797
795 798
796 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 799 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
797 mToggleNav, SLOT( setEnabled ( bool ) ) ); 800 mToggleNav, SLOT( setEnabled ( bool ) ) );
798 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 801 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
799 mToggleFilter, SLOT( setEnabled ( bool ) ) ); 802 mToggleFilter, SLOT( setEnabled ( bool ) ) );
800 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 803 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
801 mToggleAllday, SLOT( setEnabled ( bool ) ) ); 804 mToggleAllday, SLOT( setEnabled ( bool ) ) );
802 // connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 805 // connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
803 // configureAgendaMenu, SLOT( setEnabled ( bool ) ) ); 806 // configureAgendaMenu, SLOT( setEnabled ( bool ) ) );
804 807
805 viewMenu->insertSeparator(); 808 viewMenu->insertSeparator();
806 icon = loadPixmap( pathString + "picker" ); 809 icon = loadPixmap( pathString + "picker" );
807 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 810 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
808 action->addTo( viewMenu ); 811 action->addTo( viewMenu );
809 connect( action, SIGNAL( activated() ), 812 connect( action, SIGNAL( activated() ),
810 mView, SLOT( showDatePicker() ) ); 813 mView, SLOT( showDatePicker() ) );
811 action->addTo( iconToolBar ); 814 action->addTo( iconToolBar );
812 viewMenu->insertSeparator(); 815 viewMenu->insertSeparator();
813 816
814 if ( p-> mShowIconToggleFull ) 817 if ( p-> mShowIconToggleFull )
815 FSaction->addTo( iconToolBar ); 818 FSaction->addTo( iconToolBar );
816 if ( p->mShowIconNavigator ) mToggleNav ->addTo( iconToolBar ); 819 if ( p->mShowIconNavigator ) mToggleNav ->addTo( iconToolBar );
817 820
818 //******************** 821 //********************
819 if ( p->mShowIconAllday ) mToggleAllday->addTo( iconToolBar ); 822 if ( p->mShowIconAllday ) mToggleAllday->addTo( iconToolBar );
820 823
821 824
822 icon = loadPixmap( pathString + "whatsnext" ); 825 icon = loadPixmap( pathString + "whatsnext" );
823 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110 ); 826 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110 );
824 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 827 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
825 whatsnext_action->addTo( viewMenu ); 828 whatsnext_action->addTo( viewMenu );
826 connect( whatsnext_action, SIGNAL( activated() ), 829 connect( whatsnext_action, SIGNAL( activated() ),
827 mView->viewManager(), SLOT( showWhatsNextView() ) ); 830 mView->viewManager(), SLOT( showWhatsNextView() ) );
828 831
829 icon = loadPixmap( pathString + "xdays" ); 832 icon = loadPixmap( pathString + "xdays" );
830 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100 ); 833 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100 );
831 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 834 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
832 xdays_action->addTo( viewMenu ); 835 xdays_action->addTo( viewMenu );
833 connect( xdays_action, SIGNAL( activated() ), 836 connect( xdays_action, SIGNAL( activated() ),
834 mView->viewManager(), SLOT( showNextXView() ) ); 837 mView->viewManager(), SLOT( showNextXView() ) );
835 838
836 839
837 icon = loadPixmap( pathString + "journal" ); 840 icon = loadPixmap( pathString + "journal" );
838 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 841 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
839 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 842 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
840 viewjournal_action->addTo( viewMenu ); 843 viewjournal_action->addTo( viewMenu );
841 connect( viewjournal_action, SIGNAL( activated() ), 844 connect( viewjournal_action, SIGNAL( activated() ),
842 mView->viewManager(), SLOT( showJournalView() ) ); 845 mView->viewManager(), SLOT( showJournalView() ) );
843 846
844 847
845 icon = loadPixmap( pathString + "day" ); 848 icon = loadPixmap( pathString + "day" );
846 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 849 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
847 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 850 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
848 day1_action->addTo( viewMenu ); 851 day1_action->addTo( viewMenu );
849 // action->addTo( toolBar ); 852 // action->addTo( toolBar );
850 connect( day1_action, SIGNAL( activated() ), 853 connect( day1_action, SIGNAL( activated() ),
851 mView->viewManager(), SLOT( showDayView() ) ); 854 mView->viewManager(), SLOT( showDayView() ) );
852 855
853 icon = loadPixmap( pathString + "workweek" ); 856 icon = loadPixmap( pathString + "workweek" );
854 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 857 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
855 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 858 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
856 day5_action->addTo( viewMenu ); 859 day5_action->addTo( viewMenu );
857 connect( day5_action, SIGNAL( activated() ), 860 connect( day5_action, SIGNAL( activated() ),
858 mView->viewManager(), SLOT( showWorkWeekView() ) ); 861 mView->viewManager(), SLOT( showWorkWeekView() ) );
859 862
860 icon = loadPixmap( pathString + "week" ); 863 icon = loadPixmap( pathString + "week" );
861 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 864 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
862 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 865 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
863 day7_action->addTo( viewMenu ); 866 day7_action->addTo( viewMenu );
864 connect( day7_action, SIGNAL( activated() ), 867 connect( day7_action, SIGNAL( activated() ),
865 mView->viewManager(), SLOT( showWeekView() ) ); 868 mView->viewManager(), SLOT( showWeekView() ) );
866 869
867 icon = loadPixmap( pathString + "workweek2" ); 870 icon = loadPixmap( pathString + "workweek2" );
868 configureToolBarMenu->insertItem(icon, i18n("List week view"), 75 ); 871 configureToolBarMenu->insertItem(icon, i18n("List week view"), 75 );
869 QAction* day6_action = new QAction( i18n("List week"), icon, i18n("List week"), 0, this ); 872 QAction* day6_action = new QAction( i18n("List week"), icon, i18n("List week"), 0, this );
870 day6_action->addTo( viewMenu ); 873 day6_action->addTo( viewMenu );
871 connect( day6_action, SIGNAL( activated() ), 874 connect( day6_action, SIGNAL( activated() ),
872 mView->viewManager(), SLOT( showMonthViewWeek() ) ); 875 mView->viewManager(), SLOT( showMonthViewWeek() ) );
873 876
874 icon = loadPixmap( pathString + "month" ); 877 icon = loadPixmap( pathString + "month" );
875 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 878 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
876 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 879 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
877 month_action->addTo( viewMenu ); 880 month_action->addTo( viewMenu );
878 connect( month_action, SIGNAL( activated() ), 881 connect( month_action, SIGNAL( activated() ),
879 mView->viewManager(), SLOT( showMonthView() ) ); 882 mView->viewManager(), SLOT( showMonthView() ) );
880 883
881 icon = loadPixmap( pathString + "list" ); 884 icon = loadPixmap( pathString + "list" );
882 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 885 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
883 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 886 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
884 showlist_action->addTo( viewMenu ); 887 showlist_action->addTo( viewMenu );
885 connect( showlist_action, SIGNAL( activated() ), 888 connect( showlist_action, SIGNAL( activated() ),
886 mView->viewManager(), SLOT( showListView() ) ); 889 mView->viewManager(), SLOT( showListView() ) );
887 890
888 icon = loadPixmap( pathString + "todo" ); 891 icon = loadPixmap( pathString + "todo" );
889 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 892 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
890 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 893 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
891 todoview_action->addTo( viewMenu ); 894 todoview_action->addTo( viewMenu );
892 connect( todoview_action, SIGNAL( activated() ), 895 connect( todoview_action, SIGNAL( activated() ),
893 mView->viewManager(), SLOT( showTodoView() ) ); 896 mView->viewManager(), SLOT( showTodoView() ) );
894 897
895 898
896 899
897#if 0 900#if 0
898 action = new QAction( "view_timespan", "Time Span", 0, this ); 901 action = new QAction( "view_timespan", "Time Span", 0, this );
899 action->addTo( viewMenu ); 902 action->addTo( viewMenu );
900 connect( action, SIGNAL( activated() ), 903 connect( action, SIGNAL( activated() ),
901 mView->viewManager(), SLOT( showTimeSpanView() ) ); 904 mView->viewManager(), SLOT( showTimeSpanView() ) );
902#endif 905#endif
903 906
904 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 907 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
905 this ); 908 this );
906 mNewSubTodoAction->addTo( actionMenu ); 909 mNewSubTodoAction->addTo( actionMenu );
907 connect( mNewSubTodoAction, SIGNAL( activated() ), 910 connect( mNewSubTodoAction, SIGNAL( activated() ),
908 mView, SLOT( newSubTodo() ) ); 911 mView, SLOT( newSubTodo() ) );
909 912
910 actionMenu->insertSeparator(); 913 actionMenu->insertSeparator();
911 914
912 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); 915 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
913 mShowAction->addTo( actionMenu ); 916 mShowAction->addTo( actionMenu );
914 connect( mShowAction, SIGNAL( activated() ), 917 connect( mShowAction, SIGNAL( activated() ),
915 mView, SLOT( showIncidence() ) ); 918 mView, SLOT( showIncidence() ) );
916 919
917 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 920 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
918 mEditAction->addTo( actionMenu ); 921 mEditAction->addTo( actionMenu );
919 connect( mEditAction, SIGNAL( activated() ), 922 connect( mEditAction, SIGNAL( activated() ),
920 mView, SLOT( editIncidence() ) ); 923 mView, SLOT( editIncidence() ) );
921 924
922 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 925 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
923 mDeleteAction->addTo( actionMenu ); 926 mDeleteAction->addTo( actionMenu );
924 connect( mDeleteAction, SIGNAL( activated() ), 927 connect( mDeleteAction, SIGNAL( activated() ),
925 mView, SLOT( deleteIncidence() ) ); 928 mView, SLOT( deleteIncidence() ) );
926 929
927 930
928 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this ); 931 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
929 mCloneAction->addTo( actionMenu ); 932 mCloneAction->addTo( actionMenu );
930 connect( mCloneAction, SIGNAL( activated() ), 933 connect( mCloneAction, SIGNAL( activated() ),
931 mView, SLOT( cloneIncidence() ) ); 934 mView, SLOT( cloneIncidence() ) );
932 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this ); 935 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
933 mMoveAction->addTo( actionMenu ); 936 mMoveAction->addTo( actionMenu );
934 connect( mMoveAction, SIGNAL( activated() ), 937 connect( mMoveAction, SIGNAL( activated() ),
935 mView, SLOT( moveIncidence() ) ); 938 mView, SLOT( moveIncidence() ) );
936 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this ); 939 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
937 mBeamAction->addTo( actionMenu ); 940 mBeamAction->addTo( actionMenu );
938 connect( mBeamAction, SIGNAL( activated() ), 941 connect( mBeamAction, SIGNAL( activated() ),
939 mView, SLOT( beamIncidence() ) ); 942 mView, SLOT( beamIncidence() ) );
940 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this ); 943 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
941 mCancelAction->addTo( actionMenu ); 944 mCancelAction->addTo( actionMenu );
942 connect( mCancelAction, SIGNAL( activated() ), 945 connect( mCancelAction, SIGNAL( activated() ),
943 mView, SLOT( toggleCancelIncidence() ) ); 946 mView, SLOT( toggleCancelIncidence() ) );
944 947
945 actionMenu->insertSeparator(); 948 actionMenu->insertSeparator();
946 949
947 action = new QAction( "purge_completed", i18n("Purge Completed"), 0, 950 action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
948 this ); 951 this );
949 action->addTo( actionMenu ); 952 action->addTo( actionMenu );
950 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 953 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
951 954
952 icon = loadPixmap( pathString + "search" ); 955 icon = loadPixmap( pathString + "search" );
953 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 956 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
954 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5); 957 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5);
955 search_action->addTo( actionMenu ); 958 search_action->addTo( actionMenu );
956 connect( search_action, SIGNAL( activated() ), 959 connect( search_action, SIGNAL( activated() ),
957 mView->dialogManager(), SLOT( showSearchDialog() ) ); 960 mView->dialogManager(), SLOT( showSearchDialog() ) );
958 961
959 962
960 963
961 if ( KOPrefs::instance()->mShowFullMenu ) { 964 if ( KOPrefs::instance()->mShowFullMenu ) {
962 actionMenu->insertSeparator(); 965 actionMenu->insertSeparator();
963 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 966 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
964 967
965 } 968 }
966 // actionMenu->insertSeparator(); 969 // actionMenu->insertSeparator();
967 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 970 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
968 this ); 971 this );
969 action->addTo( importMenu_X ); 972 action->addTo( importMenu_X );
970 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 973 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
971 action = new QAction( "import_quick", i18n("Import last file"), 0, 974 action = new QAction( "import_quick", i18n("Import last file"), 0,
972 this ); 975 this );
973 action->addTo( importMenu_X ); 976 action->addTo( importMenu_X );
974 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 977 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
975 importMenu_X->insertSeparator(); 978 importMenu_X->insertSeparator();
976 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 979 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
977 this ); 980 this );
978 action->addTo( importMenu_X ); 981 action->addTo( importMenu_X );
979 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 982 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
980 //#ifndef DESKTOP_VERSION 983 //#ifndef DESKTOP_VERSION
981 importMenu_X->insertSeparator(); 984 importMenu_X->insertSeparator();
982 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 985 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
983 this ); 986 this );
984 action->addTo( importMenu_X ); 987 action->addTo( importMenu_X );
985 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 988 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
986 //#else 989 //#else
987#ifdef _OL_IMPORT_ 990#ifdef _OL_IMPORT_
988 importMenu_X->insertSeparator(); 991 importMenu_X->insertSeparator();
989 action = new QAction( "import_ol", i18n("Import from OL"), 0, 992 action = new QAction( "import_ol", i18n("Import from OL"), 0,
990 this ); 993 this );
991 action->addTo( importMenu_X ); 994 action->addTo( importMenu_X );
992 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 995 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
993#endif 996#endif
994 //#endif 997 //#endif
995 998
996 //importMenu->insertSeparator(); 999 //importMenu->insertSeparator();
997 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 1000 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
998 this ); 1001 this );
999 action->addTo( importMenu ); 1002 action->addTo( importMenu );
1000 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 1003 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
1001 1004
1002 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, 1005 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0,
1003 this ); 1006 this );
1004 action->addTo( importMenu ); 1007 action->addTo( importMenu );
1005 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 1008 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
1006 importMenu->insertSeparator(); 1009 importMenu->insertSeparator();
1007 importMenu->insertItem( i18n("Import"), importMenu_X ); 1010 importMenu->insertItem( i18n("Import"), importMenu_X );
1008 //importMenu->insertSeparator(); 1011 //importMenu->insertSeparator();
1009 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 1012 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
1010 this ); 1013 this );
1011 action->addTo( exportMenu_X ); 1014 action->addTo( exportMenu_X );
1012 connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 1015 connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
1013 1016
1014 1017
1015 //LR 1018 //LR
1016 QPopupMenu *ex2phone = new QPopupMenu( this ); 1019 QPopupMenu *ex2phone = new QPopupMenu( this );
1017 ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1020 ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1018 ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1021 ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1019 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); 1022 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) );
1020 exportMenu_X->insertItem( i18n("Export to phone"), ex2phone ); 1023 exportMenu_X->insertItem( i18n("Export to phone"), ex2phone );
1021 1024
1022 importMenu->insertItem( i18n("Export"), exportMenu_X ); 1025 importMenu->insertItem( i18n("Export"), exportMenu_X );
1023#ifndef DESKTOP_VERSION 1026#ifndef DESKTOP_VERSION
1024 //importMenu->insertSeparator(); 1027 //importMenu->insertSeparator();
1025 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, 1028 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0,
1026 this ); 1029 this );
1027 brAction->addTo( beamMenu_X ); 1030 brAction->addTo( beamMenu_X );
1028 brAction->setToggleAction (true ) ; 1031 brAction->setToggleAction (true ) ;
1029 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); 1032 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) );
1030 1033
1031 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 1034 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
1032 this ); 1035 this );
1033 action->addTo( beamMenu_X ); 1036 action->addTo( beamMenu_X );
1034 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 1037 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
1035 1038
1036 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 1039 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
1037 this ); 1040 this );
1038 action->addTo( beamMenu_X ); 1041 action->addTo( beamMenu_X );
1039 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 1042 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
1040 importMenu->insertItem( i18n("Beam"), beamMenu_X ); 1043 importMenu->insertItem( i18n("Beam"), beamMenu_X );
1041#else 1044#else
1042 //importMenu->insertSeparator(); 1045 //importMenu->insertSeparator();
1043 icon = loadPixmap( pathString + "print" ); 1046 icon = loadPixmap( pathString + "print" );
1044 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 1047 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
1045 action->addTo( beamMenu_X ); 1048 action->addTo( beamMenu_X );
1046 connect( action, SIGNAL( activated() ), 1049 connect( action, SIGNAL( activated() ),
1047 this, SLOT( printCal() ) ); 1050 this, SLOT( printCal() ) );
1048 1051
1049 icon = loadPixmap( pathString + "print" ); 1052 icon = loadPixmap( pathString + "print" );
1050 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 1053 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
1051 action->addTo( beamMenu_X ); 1054 action->addTo( beamMenu_X );
1052 connect( action, SIGNAL( activated() ), 1055 connect( action, SIGNAL( activated() ),
1053 this, SLOT( printSel() ) ); 1056 this, SLOT( printSel() ) );
1054 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this ); 1057 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this );
1055 action->addTo( beamMenu_X ); 1058 action->addTo( beamMenu_X );
1056 connect( action, SIGNAL( activated() ), 1059 connect( action, SIGNAL( activated() ),
1057 mView->viewManager(), SLOT( slotprintWNV() ) ); 1060 mView->viewManager(), SLOT( slotprintWNV() ) );
1058 1061
1059 action = new QAction( i18n("Print selected event / todo..."),icon,i18n("Print selected event / todo..."), 0, this ); 1062 action = new QAction( i18n("Print selected event / todo..."),icon,i18n("Print selected event / todo..."), 0, this );
1060 action->addTo( beamMenu_X ); 1063 action->addTo( beamMenu_X );
1061 connect( action, SIGNAL( activated() ), 1064 connect( action, SIGNAL( activated() ),
1062 mView, SLOT( slotprintSelInc() ) ); 1065 mView, SLOT( slotprintSelInc() ) );
1063 1066
1064 1067
1065 importMenu->insertItem( i18n("Print"), beamMenu_X ); 1068 importMenu->insertItem( i18n("Print"), beamMenu_X );
1066#endif 1069#endif
1067 importMenu->insertSeparator(); 1070 importMenu->insertSeparator();
1068 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 1071 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
1069 this ); 1072 this );
1070 action->addTo( importMenu ); 1073 action->addTo( importMenu );
1071 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 1074 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
1072 importMenu->insertSeparator(); 1075 importMenu->insertSeparator();
1073 action = new QAction( "beam all", i18n("Save"), 0, 1076 action = new QAction( "beam all", i18n("Save"), 0,
1074 this ); 1077 this );
1075 action->addTo( importMenu ); 1078 action->addTo( importMenu );
1076 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 1079 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
1077 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 1080 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
1078 this ); 1081 this );
1079 action->addTo( importMenu ); 1082 action->addTo( importMenu );
1080 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 1083 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
1081 1084
1082 //menuBar->insertItem( "Configure",configureMenu ); 1085 //menuBar->insertItem( "Configure",configureMenu );
1083 //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); 1086 //configureMenu->insertItem( "Toolbar",configureToolBarMenu );
1084 icon = loadPixmap( "korganizer/korganizer" ); 1087 icon = loadPixmap( "korganizer/korganizer" );
1085 1088
1086 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 1089 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
1087 action->addTo( helpMenu ); 1090 action->addTo( helpMenu );
1088 connect( action, SIGNAL( activated() ), 1091 connect( action, SIGNAL( activated() ),
1089 SLOT( whatsNew() ) ); 1092 SLOT( whatsNew() ) );
1090 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); 1093 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this );
1091 action->addTo( helpMenu ); 1094 action->addTo( helpMenu );
1092 connect( action, SIGNAL( activated() ), 1095 connect( action, SIGNAL( activated() ),
1093 SLOT( features() ) ); 1096 SLOT( features() ) );
1094 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); 1097 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this );
1095 action->addTo( helpMenu ); 1098 action->addTo( helpMenu );
1096 connect( action, SIGNAL( activated() ), 1099 connect( action, SIGNAL( activated() ),
1097 SLOT( keyBindings() ) ); 1100 SLOT( keyBindings() ) );
1098 action = new QAction( "Storage Howto", i18n("Storage HowTo..."), 0,this ); 1101 action = new QAction( "Storage Howto", i18n("Storage HowTo..."), 0,this );
1099 action->addTo( helpMenu ); 1102 action->addTo( helpMenu );
1100 connect( action, SIGNAL( activated() ), 1103 connect( action, SIGNAL( activated() ),
1101 SLOT( storagehowto() ) ); 1104 SLOT( storagehowto() ) );
1102 action = new QAction( "Timetracking Howto", i18n("Timetracking HowTo..."), 0,this ); 1105 action = new QAction( "Timetracking Howto", i18n("Timetracking HowTo..."), 0,this );
1103 action->addTo( helpMenu ); 1106 action->addTo( helpMenu );
1104 connect( action, SIGNAL( activated() ), 1107 connect( action, SIGNAL( activated() ),
1105 SLOT( timetrackinghowto() ) ); 1108 SLOT( timetrackinghowto() ) );
1106 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 1109 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
1107 action->addTo( helpMenu ); 1110 action->addTo( helpMenu );
1108 connect( action, SIGNAL( activated() ), 1111 connect( action, SIGNAL( activated() ),
1109 SLOT( synchowto() ) ); 1112 SLOT( synchowto() ) );
1110 action = new QAction( "KDE Sync Howto", i18n("KDE Sync HowTo..."), 0,this ); 1113 action = new QAction( "KDE Sync Howto", i18n("KDE Sync HowTo..."), 0,this );
1111 action->addTo( helpMenu ); 1114 action->addTo( helpMenu );
1112 connect( action, SIGNAL( activated() ), 1115 connect( action, SIGNAL( activated() ),
1113 SLOT( kdesynchowto() ) ); 1116 SLOT( kdesynchowto() ) );
1114 action = new QAction( "Multi Sync Howto", i18n("Multi Sync HowTo..."), 0,this ); 1117 action = new QAction( "Multi Sync Howto", i18n("Multi Sync HowTo..."), 0,this );
1115 action->addTo( helpMenu ); 1118 action->addTo( helpMenu );
1116 connect( action, SIGNAL( activated() ), 1119 connect( action, SIGNAL( activated() ),
1117 SLOT( multisynchowto() ) ); 1120 SLOT( multisynchowto() ) );
1118 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); 1121 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this );
1119 action->addTo( helpMenu ); 1122 action->addTo( helpMenu );
1120 connect( action, SIGNAL( activated() ), 1123 connect( action, SIGNAL( activated() ),
1121 SLOT( aboutAutoSaving() ) ); 1124 SLOT( aboutAutoSaving() ) );
1122 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); 1125 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this );
1123 action->addTo( helpMenu ); 1126 action->addTo( helpMenu );
1124 connect( action, SIGNAL( activated() ), 1127 connect( action, SIGNAL( activated() ),
1125 SLOT( aboutKnownBugs() ) ); 1128 SLOT( aboutKnownBugs() ) );
1126 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 1129 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
1127 action->addTo( helpMenu ); 1130 action->addTo( helpMenu );
1128 connect( action, SIGNAL( activated() ), 1131 connect( action, SIGNAL( activated() ),
1129 SLOT( usertrans() ) ); 1132 SLOT( usertrans() ) );
1130 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 1133 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
1131 action->addTo( helpMenu ); 1134 action->addTo( helpMenu );
1132 connect( action, SIGNAL( activated() ), 1135 connect( action, SIGNAL( activated() ),
1133 SLOT( faq() ) ); 1136 SLOT( faq() ) );
1134 action = new QAction( "licence", i18n("Licence..."), 0, this ); 1137 action = new QAction( "licence", i18n("Licence..."), 0, this );
1135 action->addTo( helpMenu ); 1138 action->addTo( helpMenu );
1136 connect( action, SIGNAL( activated() ), 1139 connect( action, SIGNAL( activated() ),
1137 SLOT( licence() ) ); 1140 SLOT( licence() ) );
1138 action = new QAction( "about", i18n("About..."), 0, this ); 1141 action = new QAction( "about", i18n("About..."), 0, this );
1139 action->addTo( helpMenu ); 1142 action->addTo( helpMenu );
1140 connect( action, SIGNAL( activated() ), 1143 connect( action, SIGNAL( activated() ),
1141 SLOT( about() ) ); 1144 SLOT( about() ) );
1142 //menuBar->insertSeparator(); 1145 //menuBar->insertSeparator();
1143 1146
1144 // ****************************************************** 1147 // ******************************************************