author | zautrix <zautrix> | 2005-09-18 13:50:46 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-09-18 13:50:46 (UTC) |
commit | c6e493d4e5b9eafcc3402c39e30c4283ce8cc8e5 (patch) (unidiff) | |
tree | 94e7bdc361b68a3a569eebe14f66458b3795dd6a | |
parent | e7cd095ea9e80e26c90cbc2d3bf36921b7541c19 (diff) | |
download | kdepimpi-c6e493d4e5b9eafcc3402c39e30c4283ce8cc8e5.zip kdepimpi-c6e493d4e5b9eafcc3402c39e30c4283ce8cc8e5.tar.gz kdepimpi-c6e493d4e5b9eafcc3402c39e30c4283ce8cc8e5.tar.bz2 |
delay
-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 9 | ||||
-rw-r--r-- | kalarmd/simplealarmdaemonimpl.cpp | 8 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 13 | ||||
-rw-r--r-- | korganizer/calendarview.h | 3 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 69 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 5 |
6 files changed, 74 insertions, 33 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index 2c0d626..6f76c7e 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -118,49 +118,49 @@ | |||
118 | { "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" }, | 118 | { "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" }, |
119 | { "day","Tag" }, | 119 | { "day","Tag" }, |
120 | { "Dec","Dez" }, | 120 | { "Dec","Dez" }, |
121 | { "December","Dezember" }, | 121 | { "December","Dezember" }, |
122 | { "Default alarm time:","Standard Alarmzeit:" }, | 122 | { "Default alarm time:","Standard Alarmzeit:" }, |
123 | { "Default appointment time:","Standard Termin Startzeit:" }, | 123 | { "Default appointment time:","Standard Termin Startzeit:" }, |
124 | { "Default event color:","Standard Terminfarbe:" }, | 124 | { "Default event color:","Standard Terminfarbe:" }, |
125 | { "Default","Standard" }, | 125 | { "Default","Standard" }, |
126 | { "Def. duration of new app.:","Standard Termin Länge:" }, | 126 | { "Def. duration of new app.:","Standard Termin Länge:" }, |
127 | { "Delete All","Lösche alles" }, | 127 | { "Delete All","Lösche alles" }, |
128 | { "Delete all selected","Lösche alle Selektierten" }, | 128 | { "Delete all selected","Lösche alle Selektierten" }, |
129 | { "Delete Current","Aktuellen löschen" }, | 129 | { "Delete Current","Aktuellen löschen" }, |
130 | { "Delete Event...","Lösche Termin..." }, | 130 | { "Delete Event...","Lösche Termin..." }, |
131 | { "Delete Event","Lösche Termin" }, | 131 | { "Delete Event","Lösche Termin" }, |
132 | { "&Delete...","Lösche..." }, | 132 | { "&Delete...","Lösche..." }, |
133 | { "Delete...","Lösche..." }, | 133 | { "Delete...","Lösche..." }, |
134 | { "Delete","Lösche" }, | 134 | { "Delete","Lösche" }, |
135 | { "Delete Todo...","Lösche Todo..." }, | 135 | { "Delete Todo...","Lösche Todo..." }, |
136 | { "Delete To-Do","Lösche Todo" }, | 136 | { "Delete To-Do","Lösche Todo" }, |
137 | { "Deleting item %d ...","Lösche Eintrag %d..." }, | 137 | { "Deleting item %d ...","Lösche Eintrag %d..." }, |
138 | { "Descriptions","Beschreibungen" }, | 138 | { "Descriptions","Beschreibungen" }, |
139 | { "Deselect all","Deselektiere Alle" }, | 139 | { "Deselect all","Deselektiere Alle" }, |
140 | { "Details","Details" }, | 140 | { "Details","Details" }, |
141 | { "Dinner","Abendessen" }, | 141 | { "Dinner","Abendessen" }, |
142 | { "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, | 142 | { "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI beenden?" }, |
143 | { "Due Date","Fällig am" }, | 143 | { "Due Date","Fällig am" }, |
144 | { "Due: ","Fällig: "}, | 144 | { "Due: ","Fällig: "}, |
145 | { "Due Time","Fällig um" }, | 145 | { "Due Time","Fällig um" }, |
146 | { "Due:","Fällig:"}, | 146 | { "Due:","Fällig:"}, |
147 | { "Duration: ","Dauer: " }, | 147 | { "Duration: ","Dauer: " }, |
148 | { "Edit...","Bearbeite..." }, | 148 | { "Edit...","Bearbeite..." }, |
149 | { "Edit Event...","Bearbeite Termin..." }, | 149 | { "Edit Event...","Bearbeite Termin..." }, |
150 | { "Edit Event","Bearbeite Termin" }, | 150 | { "Edit Event","Bearbeite Termin" }, |
151 | { "Edit exceptions","Bearbeite Ausnahmen" }, | 151 | { "Edit exceptions","Bearbeite Ausnahmen" }, |
152 | { "EditorBox:","Editor Fenster:" }, | 152 | { "EditorBox:","Editor Fenster:" }, |
153 | { "Edit Recurrence Range","Bearbeite Wiederholung" }, | 153 | { "Edit Recurrence Range","Bearbeite Wiederholung" }, |
154 | { "Edit Todo...","Berabeite Todo..." }, | 154 | { "Edit Todo...","Berabeite Todo..." }, |
155 | { "Edit To-Do","Todo bearbeiten" }, | 155 | { "Edit To-Do","Todo bearbeiten" }, |
156 | { "E&mail address:","E&mail Adresse:" }, | 156 | { "E&mail address:","E&mail Adresse:" }, |
157 | { "(EmptyEmail)","(KeineEmail)" }, | 157 | { "(EmptyEmail)","(KeineEmail)" }, |
158 | { "(EmptyName)","(KeinName)" }, | 158 | { "(EmptyName)","(KeinName)" }, |
159 | { "Enable Recurrence","Wiederholung anschalten" }, | 159 | { "Enable Recurrence","Wiederholung anschalten" }, |
160 | { "End after","Endet nach"}, | 160 | { "End after","Endet nach"}, |
161 | { "End by:","Endet am"}, | 161 | { "End by:","Endet am"}, |
162 | { "End/Due Date","Ende/Fällig am" }, | 162 | { "End/Due Date","Ende/Fällig am" }, |
163 | { "End:","Ende:" }, | 163 | { "End:","Ende:" }, |
164 | { "End/Due Time","Ende/Fällig um" }, | 164 | { "End/Due Time","Ende/Fällig um" }, |
165 | { "English","Englisch" }, | 165 | { "English","Englisch" }, |
166 | { "Event","Termin" }, | 166 | { "Event","Termin" }, |
@@ -748,48 +748,49 @@ | |||
748 | { "Default","Standard" }, | 748 | { "Default","Standard" }, |
749 | { " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, | 749 | { " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, |
750 | { " %d items?"," %d Einträge?" }, | 750 | { " %d items?"," %d Einträge?" }, |
751 | { "\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?" }, | 751 | { "\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?" }, |
752 | { " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, | 752 | { " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, |
753 | { "Current","Aktuelle" }, | 753 | { "Current","Aktuelle" }, |
754 | { "\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" }, | 754 | { "\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" }, |
755 | { "All","Alle" }, | 755 | { "All","Alle" }, |
756 | { "Data Loss Warning","Datenverlust Warnung" }, | 756 | { "Data Loss Warning","Datenverlust Warnung" }, |
757 | { "Proceed","Weitermachen" }, | 757 | { "Proceed","Weitermachen" }, |
758 | { "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, | 758 | { "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, |
759 | { "Filter disabled ","Filter abgeschaltet" }, | 759 | { "Filter disabled ","Filter abgeschaltet" }, |
760 | { "Filter selected: ","Gewählter Filter: " }, | 760 | { "Filter selected: ","Gewählter Filter: " }, |
761 | { "Toggle Cancel","Gecancelt ändern" }, | 761 | { "Toggle Cancel","Gecancelt ändern" }, |
762 | { "&Toggle Cancel","Gecancel&t ändern" }, | 762 | { "&Toggle Cancel","Gecancel&t ändern" }, |
763 | { "Configure Toolbar","Konfiguriere Toolbar" }, | 763 | { "Configure Toolbar","Konfiguriere Toolbar" }, |
764 | { "Stretched TB","Gedehnte TB" }, | 764 | { "Stretched TB","Gedehnte TB" }, |
765 | { "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, | 765 | { "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, |
766 | { "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, | 766 | { "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, |
767 | { "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" }, | 767 | { "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" }, |
768 | { "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, | 768 | { "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, |
769 | { "Imported file successfully","Datei erfolgreich importiert" }, | 769 | { "Imported file successfully","Datei erfolgreich importiert" }, |
770 | { "Error importing file","Fehler beim Importieren der Datei" }, | 770 | { "Error importing file","Fehler beim Importieren der Datei" }, |
771 | { "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, | 771 | { "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, |
772 | { "Export iCal filename(*.ics)","Export iCal Dateiname(*.ics)" }, | ||
772 | { "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" }, | 773 | { "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" }, |
773 | { "Overwrite!","Überschreiben!" }, | 774 | { "Overwrite!","Überschreiben!" }, |
774 | { "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" }, | 775 | { "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" }, |
775 | { "Load backup filename","Lade Backup Dateiname" }, | 776 | { "Load backup filename","Lade Backup Dateiname" }, |
776 | { "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, | 777 | { "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, |
777 | { "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, | 778 | { "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, |
778 | { "Save backup filename","Speichere Backup Dateiname" }, | 779 | { "Save backup filename","Speichere Backup Dateiname" }, |
779 | { "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" }, | 780 | { "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" }, |
780 | { "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, | 781 | { "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, |
781 | { "Details of attendee","Teilnehmerdetails" }, | 782 | { "Details of attendee","Teilnehmerdetails" }, |
782 | { "Work phone:\n","Telefon Arbeit:\n" }, | 783 | { "Work phone:\n","Telefon Arbeit:\n" }, |
783 | { "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, | 784 | { "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, |
784 | { "Home phone:\n","Telefon privat:\n" }, | 785 | { "Home phone:\n","Telefon privat:\n" }, |
785 | { "Mobile home phone:\n","Mobiltelefon privat:\n" }, | 786 | { "Mobile home phone:\n","Mobiltelefon privat:\n" }, |
786 | { "Email:\n","Email:\n" }, | 787 | { "Email:\n","Email:\n" }, |
787 | { "Alarm disabled for this item","Alarm deaktiviert für dieses Item" }, | 788 | { "Alarm disabled for this item","Alarm deaktiviert für dieses Item" }, |
788 | { "Audio Al.: ","Audio Al.: " }, | 789 | { "Audio Al.: ","Audio Al.: " }, |
789 | { "Proc.Al.: ","Proz.Al.: " }, | 790 | { "Proc.Al.: ","Proz.Al.: " }, |
790 | { "No sound set","Kein Sound definiert" }, | 791 | { "No sound set","Kein Sound definiert" }, |
791 | { "*.wav|Wav Files","*.wav|Wav Dateien" }, | 792 | { "*.wav|Wav Files","*.wav|Wav Dateien" }, |
792 | { "No program set","Kein Programm definiert" }, | 793 | { "No program set","Kein Programm definiert" }, |
793 | { "Running '%1'","Ausführen '%1'" }, | 794 | { "Running '%1'","Ausführen '%1'" }, |
794 | { "Playing '%1'","Abspielen '%1'" }, | 795 | { "Playing '%1'","Abspielen '%1'" }, |
795 | { "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" }, | 796 | { "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" }, |
@@ -1537,36 +1538,36 @@ | |||
1537 | { "Click this button to display all todos <b>closed</b>","Klicke diesen Knopf um alle Todos <b>geschlossen</b> darzustellen" }, | 1538 | { "Click this button to display all todos <b>closed</b>","Klicke diesen Knopf um alle Todos <b>geschlossen</b> darzustellen" }, |
1538 | { "Click this button to toggle show/hide <b>running</b> todos","Klicke diesen Knopf um <b>zeige Laufende</b> umzuschalten" }, | 1539 | { "Click this button to toggle show/hide <b>running</b> todos","Klicke diesen Knopf um <b>zeige Laufende</b> umzuschalten" }, |
1539 | { "Click this button to toggle show/hide <b>completed</b> todos","Klicke diesen Knopf um <b>zeige Erledigte</b> umzuschalten" }, | 1540 | { "Click this button to toggle show/hide <b>completed</b> todos","Klicke diesen Knopf um <b>zeige Erledigte</b> umzuschalten" }, |
1540 | { "Click this button to add a new subtodo to the currently selected todo","Klicke diesen Knopf um ein Untertodo zu dem gerade selektierten Todo hinzuzufügen" }, | 1541 | { "Click this button to add a new subtodo to the currently selected todo","Klicke diesen Knopf um ein Untertodo zu dem gerade selektierten Todo hinzuzufügen" }, |
1541 | { "In this column you can <b>set a calendar to be visible</b>. If a calendar is not visible its entries are not displayed in the views. You can add items to it and it is loaded/saved as usual.","In dieser Spalte kann man einen <b>Kalender auf sichtbar schalten</b>. Wenn ein Kalender nicht sichtbar ist werden seine Einträge nicht in den Ansichten angezeigt. Man kann Einträge hinzufügen und laden/speichern wie gewöhnlich." }, | 1542 | { "In this column you can <b>set a calendar to be visible</b>. If a calendar is not visible its entries are not displayed in the views. You can add items to it and it is loaded/saved as usual.","In dieser Spalte kann man einen <b>Kalender auf sichtbar schalten</b>. Wenn ein Kalender nicht sichtbar ist werden seine Einträge nicht in den Ansichten angezeigt. Man kann Einträge hinzufügen und laden/speichern wie gewöhnlich." }, |
1542 | { "In this column you can see the <b>name of the calendar</b>. If you click on the name button you will get an information box about the loaded calendar file. If the file was not loaded at startup you can try to load it here again.","In dieser Spalte wird der <b>Name des Kalenders</b> angezeigt. Wenn Sie auf den Namen klicken wird Information über die Kalenderdatei angezeigt. Wenn die Datei beim Start nicht geladen wurde können Sie hier erneut versuchen sie zu laden." }, | 1543 | { "In this column you can see the <b>name of the calendar</b>. If you click on the name button you will get an information box about the loaded calendar file. If the file was not loaded at startup you can try to load it here again.","In dieser Spalte wird der <b>Name des Kalenders</b> angezeigt. Wenn Sie auf den Namen klicken wird Information über die Kalenderdatei angezeigt. Wenn die Datei beim Start nicht geladen wurde können Sie hier erneut versuchen sie zu laden." }, |
1543 | { "In this column you can <b>disable the alarms of a calendar all together</b>. The alarm data in the calendar itself is not changed, the alarms are marked internally as "do not use". Useful if you load a calendar of another person but do not want to get notified about alarms of that person.","In dieser Spalte können die <b>Alarme eines Kalenders alle zusammen abgeschaltet werden</b>. Die Alarmdaten im Kalender selbst werden nicht verändert, es werde die Alarme intern als "nicht beachten" markiert. Nützlich wenn Sie den Kalender einer anderen Person laden aber nicht über dessen Alarme unterrichtet werden wollen." }, | 1544 | { "In this column you can <b>disable the alarms of a calendar all together</b>. The alarm data in the calendar itself is not changed, the alarms are marked internally as "do not use". Useful if you load a calendar of another person but do not want to get notified about alarms of that person.","In dieser Spalte können die <b>Alarme eines Kalenders alle zusammen abgeschaltet werden</b>. Die Alarmdaten im Kalender selbst werden nicht verändert, es werde die Alarme intern als "nicht beachten" markiert. Nützlich wenn Sie den Kalender einer anderen Person laden aber nicht über dessen Alarme unterrichtet werden wollen." }, |
1544 | { "In this column you can <b>set a calendar and all entries of the calendar to read only</b>. If a calendar is readonly the entries cannot be edited and no items can be added to the calendar. If you change a setting of a calendar to readonly in this column all data will be saved because the data of a readonly calendar is not saved later.","In dieser Spalte können Sie einen <b>Kalender und alle Einträge auf schreibgeschützt setzen</b>. Einträge eines schreibgeschützten Kalenders können nicht verändert werden und es können keine Einträge zum Kalender hinzugefügt werden. Wenn Sie die Einstellung eines Kalenders in dieser Spalte auf schreibgeschützt setzen werden alle Daten automatisch abgespeichert, da die Daten eines schreibgeschützten Kalenders später nicht mehr gespeichert werden." }, | 1545 | { "In this column you can <b>set a calendar and all entries of the calendar to read only</b>. If a calendar is readonly the entries cannot be edited and no items can be added to the calendar. If you change a setting of a calendar to readonly in this column all data will be saved because the data of a readonly calendar is not saved later.","In dieser Spalte können Sie einen <b>Kalender und alle Einträge auf schreibgeschützt setzen</b>. Einträge eines schreibgeschützten Kalenders können nicht verändert werden und es können keine Einträge zum Kalender hinzugefügt werden. Wenn Sie die Einstellung eines Kalenders in dieser Spalte auf schreibgeschützt setzen werden alle Daten automatisch abgespeichert, da die Daten eines schreibgeschützten Kalenders später nicht mehr gespeichert werden." }, |
1545 | { "Click this button to <b>add a calendar</b>. You can add an existing calendar file or you can add a new calendar and KO/Pi creates a new empty calendar file for you.","Klicken Sie diesen Knopf <b>um einen Kalender hinzuzufügen</b>. Sie können eine existierende Kalenderdatei hinzufügen oder einen neuen Kalender und KO/Pi legt dann eine neue leere Kalenderdatei für Sie an." }, | 1546 | { "Click this button to <b>add a calendar</b>. You can add an existing calendar file or you can add a new calendar and KO/Pi creates a new empty calendar file for you.","Klicken Sie diesen Knopf <b>um einen Kalender hinzuzufügen</b>. Sie können eine existierende Kalenderdatei hinzufügen oder einen neuen Kalender und KO/Pi legt dann eine neue leere Kalenderdatei für Sie an." }, |
1546 | { "<b>iCal (*.ics) file on disk:</b><br>(will be created, if not existing)","<b>iCal (*.ics) Datei:</b><br>(Datei wird angelegt, wenn sie nicht existiert)" }, | 1547 | { "<b>iCal (*.ics) file on disk:</b><br>(will be created, if not existing)","<b>iCal (*.ics) Datei:</b><br>(Datei wird angelegt, wenn sie nicht existiert)" }, |
1547 | { "Error saving data","Fehler beim Abspeichern" }, | 1548 | { "Error saving data","Fehler beim Abspeichern" }, |
1548 | { "Calendar(s) not saved:","Nicht gespeicherte Kalender:" }, | 1549 | { "Calendar(s) not saved:","Nicht gespeicherte Kalender:" }, |
1549 | { "Enable conflict detection","Schalte Konflikterkennung an" }, | 1550 | { "Enable conflict detection","Schalte Konflikterkennung an" }, |
1550 | { "Filter for the edited event","Filter für den bearbeiteten Termin" }, | 1551 | { "Filter for the edited event","Filter für den bearbeiteten Termin" }, |
1551 | { "Filter for other events","Filter für die anderen Termine" }, | 1552 | { "Filter for other events","Filter für die anderen Termine" }, |
1552 | { "Check Allday with Allday","Prüfe GanzTag mit GanzTag" }, | 1553 | { "Check Allday with Allday","Prüfe GanzTag mit GanzTag" }, |
1553 | { "Check Allday with NonAllday","Prüfe GanzTag mit NichtGanzTag" }, | 1554 | { "Check Allday with NonAllday","Prüfe GanzTag mit NichtGanzTag" }, |
1554 | { "Check NonAllday with Allday","Prüfe NichtGanzTag mit GanzTag" }, | 1555 | { "Check NonAllday with Allday","Prüfe NichtGanzTag mit GanzTag" }, |
1555 | { "Check NonAllday with NonAllday","Prüfe NichtGanzTag mit NichtGanzTag" }, | 1556 | { "Check NonAllday with NonAllday","Prüfe NichtGanzTag mit NichtGanzTag" }, |
1556 | { "Conflict detection","Konflikterkennung" }, | 1557 | { "Conflict detection","Konflikterkennung" }, |
1557 | { "Loading calendar files ... please wait","Lade Kalenderdateien ... bitte warten" }, | 1558 | { "Loading calendar files ... please wait","Lade Kalenderdateien ... bitte warten" }, |
1558 | { "Show multiday allday ev. in date nav.","Zeige Multi-Ganzt.Term.in Datums Nav." }, | 1559 | { "Show multiday allday ev. in date nav.","Zeige Multi-Ganzt.Term.in Datums Nav." }, |
1559 | { "Include events which "show as free"","Inklusive Termine mit "Zeige Zeit als frei"" }, | 1560 | { "Include events which "show as free"","Inklusive Termine mit "Zeige Zeit als frei"" }, |
1560 | { "Conflict detection checks an <b>edited event</b> with <b>other events</b> for overlapping.","Konflikterkennung prüft einen <b>bearbeiteten Termin</b> auf Überschneidungen mit <b>anderen Terminen</b>." }, | 1561 | { "Conflict detection checks an <b>edited event</b> with <b>other events</b> for overlapping.","Konflikterkennung prüft einen <b>bearbeiteten Termin</b> auf Überschneidungen mit <b>anderen Terminen</b>." }, |
1561 | { "","" }, | 1562 | { " Yes, close "," Ja, beenden " }, |
1562 | { "","" }, | 1563 | { "Export All Data","Exportiere alle Daten" }, |
1563 | { "","" }, | 1564 | { "You can save all data\nto another file via\nFile->Export->Export All Data","Sie können alle Daten in\neine andere Datei speichern unter\nDatei->Exportiere->Exportiere alle Daten" }, |
1564 | { "","" }, | 1565 | { "","" }, |
1565 | { "","" }, | 1566 | { "","" }, |
1566 | { "","" }, | 1567 | { "","" }, |
1567 | { "","" }, | 1568 | { "","" }, |
1568 | { "","" }, | 1569 | { "","" }, |
1569 | { "","" }, | 1570 | { "","" }, |
1570 | { "","" }, | 1571 | { "","" }, |
1571 | { "","" }, | 1572 | { "","" }, |
1572 | { "","" }, | 1573 | { "","" }, |
diff --git a/kalarmd/simplealarmdaemonimpl.cpp b/kalarmd/simplealarmdaemonimpl.cpp index 2acfacf..a0ac232 100644 --- a/kalarmd/simplealarmdaemonimpl.cpp +++ b/kalarmd/simplealarmdaemonimpl.cpp | |||
@@ -46,56 +46,48 @@ | |||
46 | #include <stdlib.h> | 46 | #include <stdlib.h> |
47 | #include <stdio.h> | 47 | #include <stdio.h> |
48 | #include <unistd.h> | 48 | #include <unistd.h> |
49 | 49 | ||
50 | 50 | ||
51 | SimpleAlarmDaemonImpl::SimpleAlarmDaemonImpl( QWidget *parent ) | 51 | SimpleAlarmDaemonImpl::SimpleAlarmDaemonImpl( QWidget *parent ) |
52 | : QLabel( parent ) | 52 | : QLabel( parent ) |
53 | { | 53 | { |
54 | mAlarmDialog = new AlarmDialog( 0 ); | 54 | mAlarmDialog = new AlarmDialog( 0 ); |
55 | mPopUp = new QPopupMenu( this ); | 55 | mPopUp = new QPopupMenu( this ); |
56 | mPopUp->insertItem( "What's Next?", this, SLOT ( showWN() ) ); | 56 | mPopUp->insertItem( "What's Next?", this, SLOT ( showWN() ) ); |
57 | mPopUp->insertItem( "Next Days!", this, SLOT ( showKO() ) ); | 57 | mPopUp->insertItem( "Next Days!", this, SLOT ( showKO() ) ); |
58 | mPopUp->insertSeparator(); | 58 | mPopUp->insertSeparator(); |
59 | mPopUp->insertItem( "Todo List", this, SLOT ( showTodo() ) ); | 59 | mPopUp->insertItem( "Todo List", this, SLOT ( showTodo() ) ); |
60 | mPopUp->insertSeparator(); | 60 | mPopUp->insertSeparator(); |
61 | mPopUp->insertItem( "Addresses", this, SLOT ( showAdd() ) ); | 61 | mPopUp->insertItem( "Addresses", this, SLOT ( showAdd() ) ); |
62 | mPopUp->insertSeparator(); | 62 | mPopUp->insertSeparator(); |
63 | mPopUp->insertItem( "Edit Journal", this, SLOT ( writeJournal() ) ); | 63 | mPopUp->insertItem( "Edit Journal", this, SLOT ( writeJournal() ) ); |
64 | mPopUp->insertItem( "New Event", this, SLOT ( newEvent() ) ); | 64 | mPopUp->insertItem( "New Event", this, SLOT ( newEvent() ) ); |
65 | mPopUp->insertItem( "New Todo", this, SLOT ( newTodo() ) ); | 65 | mPopUp->insertItem( "New Todo", this, SLOT ( newTodo() ) ); |
66 | mPopUp->insertItem( "New Mail", this, SLOT ( newMail() ) ); | 66 | mPopUp->insertItem( "New Mail", this, SLOT ( newMail() ) ); |
67 | mPopUp->insertSeparator(); | 67 | mPopUp->insertSeparator(); |
68 | mPopUp->insertItem( "Multi Sync", this, SLOT ( ringSync() ) ); | 68 | mPopUp->insertItem( "Multi Sync", this, SLOT ( ringSync() ) ); |
69 | mTimerPopUp = new QPopupMenu( this ); | 69 | mTimerPopUp = new QPopupMenu( this ); |
70 | QFont fon = mTimerPopUp->font(); | ||
71 | int points = 16; | ||
72 | if ( QApplication::desktop()->width() < 480 ) | ||
73 | points = 12; | ||
74 | fon.setPointSize( points ); | ||
75 | //qDebug("point s %d ", fon.pointSize()); | ||
76 | mTimerPopUp->setFont( fon ); | ||
77 | mPopUp->setFont( fon ); | ||
78 | mBeepPopUp = new QPopupMenu( this ); | 70 | mBeepPopUp = new QPopupMenu( this ); |
79 | mSoundPopUp = new QPopupMenu( this ); | 71 | mSoundPopUp = new QPopupMenu( this ); |
80 | mPausePopUp = new QPopupMenu( this ); | 72 | mPausePopUp = new QPopupMenu( this ); |
81 | QPopupMenu* savePopUp = new QPopupMenu( this ); | 73 | QPopupMenu* savePopUp = new QPopupMenu( this ); |
82 | savePopUp->insertItem( "Save", 0 ); | 74 | savePopUp->insertItem( "Save", 0 ); |
83 | savePopUp->insertItem( "Load", 1 ); | 75 | savePopUp->insertItem( "Load", 1 ); |
84 | mSoundPopUp->insertItem( "Buzzer", 0 ); | 76 | mSoundPopUp->insertItem( "Buzzer", 0 ); |
85 | mSoundPopUp->insertItem( "Wav file", 1 ); | 77 | mSoundPopUp->insertItem( "Wav file", 1 ); |
86 | mPausePopUp->insertItem( " 1 sec", 1 ); | 78 | mPausePopUp->insertItem( " 1 sec", 1 ); |
87 | mPausePopUp->insertItem( " 2 sec", 2 ); | 79 | mPausePopUp->insertItem( " 2 sec", 2 ); |
88 | mPausePopUp->insertItem( " 3 sec", 3 ); | 80 | mPausePopUp->insertItem( " 3 sec", 3 ); |
89 | mPausePopUp->insertItem( " 5 sec", 5 ); | 81 | mPausePopUp->insertItem( " 5 sec", 5 ); |
90 | mPausePopUp->insertItem( "10 sec", 10 ); | 82 | mPausePopUp->insertItem( "10 sec", 10 ); |
91 | mPausePopUp->insertItem( "30 sec", 30 ); | 83 | mPausePopUp->insertItem( "30 sec", 30 ); |
92 | mPausePopUp->insertItem( " 1 min", 60 ); | 84 | mPausePopUp->insertItem( " 1 min", 60 ); |
93 | mPausePopUp->insertItem( " 5 min", 300 ); | 85 | mPausePopUp->insertItem( " 5 min", 300 ); |
94 | mPausePopUp->insertItem( "10 min", 600 ); | 86 | mPausePopUp->insertItem( "10 min", 600 ); |
95 | mSuspendPopUp = new QPopupMenu( this ); | 87 | mSuspendPopUp = new QPopupMenu( this ); |
96 | mSuspendPopUp->insertItem( "Off", 0 ); | 88 | mSuspendPopUp->insertItem( "Off", 0 ); |
97 | mSuspendPopUp->insertItem( " 1x", 1 ); | 89 | mSuspendPopUp->insertItem( " 1x", 1 ); |
98 | mSuspendPopUp->insertItem( " 2x", 2 ); | 90 | mSuspendPopUp->insertItem( " 2x", 2 ); |
99 | mSuspendPopUp->insertItem( " 3x", 3 ); | 91 | mSuspendPopUp->insertItem( " 3x", 3 ); |
100 | mSuspendPopUp->insertItem( " 5x", 5 ); | 92 | mSuspendPopUp->insertItem( " 5x", 5 ); |
101 | mSuspendPopUp->insertItem( "10x", 10 ); | 93 | mSuspendPopUp->insertItem( "10x", 10 ); |
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 79fb727..2ba8528 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -2526,48 +2526,49 @@ bool CalendarView::checkFileVersion(QString fn) | |||
2526 | return true; | 2526 | return true; |
2527 | } | 2527 | } |
2528 | bool CalendarView::saveCalendars() | 2528 | bool CalendarView::saveCalendars() |
2529 | { | 2529 | { |
2530 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 2530 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
2531 | KopiCalendarFile * cal = calendars.first(); | 2531 | KopiCalendarFile * cal = calendars.first(); |
2532 | mCalendar->setDefaultCalendar( 1 ); | 2532 | mCalendar->setDefaultCalendar( 1 ); |
2533 | mCalendar->setDefaultCalendarEnabledOnly(); | 2533 | mCalendar->setDefaultCalendarEnabledOnly(); |
2534 | QString saveError; | 2534 | QString saveError; |
2535 | if ( !saveCalendar( MainWindow::defaultFileName() ) ) | 2535 | if ( !saveCalendar( MainWindow::defaultFileName() ) ) |
2536 | saveError = cal->mName +"\n"; | 2536 | saveError = cal->mName +"\n"; |
2537 | cal = calendars.next(); | 2537 | cal = calendars.next(); |
2538 | while ( cal ) { | 2538 | while ( cal ) { |
2539 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { | 2539 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { |
2540 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | 2540 | mCalendar->setDefaultCalendar( cal->mCalNumber ); |
2541 | mCalendar->setDefaultCalendarEnabledOnly(); | 2541 | mCalendar->setDefaultCalendarEnabledOnly(); |
2542 | if ( saveCalendar( cal->mFileName ) ) | 2542 | if ( saveCalendar( cal->mFileName ) ) |
2543 | cal->mLoadDt = QDateTime::currentDateTime(); | 2543 | cal->mLoadDt = QDateTime::currentDateTime(); |
2544 | else | 2544 | else |
2545 | saveError += cal->mName + "\n"; | 2545 | saveError += cal->mName + "\n"; |
2546 | } | 2546 | } |
2547 | cal = calendars.next(); | 2547 | cal = calendars.next(); |
2548 | } | 2548 | } |
2549 | restoreCalendarSettings(); | 2549 | restoreCalendarSettings(); |
2550 | //saveError = "test error"; | ||
2550 | if ( !saveError.isEmpty() ) { | 2551 | if ( !saveError.isEmpty() ) { |
2551 | saveError = KGlobal::formatMessage( i18n("Calendar(s) not saved:"),0 )+"\n" + saveError; | 2552 | saveError = KGlobal::formatMessage( i18n("Calendar(s) not saved:"),0 )+"\n" + saveError; |
2552 | KMessageBox::error(this, saveError, i18n("Error saving data")); | 2553 | KMessageBox::error(this, saveError, i18n("Error saving data")); |
2553 | return false; | 2554 | return false; |
2554 | } | 2555 | } |
2555 | return true; | 2556 | return true; |
2556 | } | 2557 | } |
2557 | bool CalendarView::saveCalendar( QString filename ) | 2558 | bool CalendarView::saveCalendar( QString filename ) |
2558 | { | 2559 | { |
2559 | 2560 | ||
2560 | // Store back all unsaved data into calendar object | 2561 | // Store back all unsaved data into calendar object |
2561 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); | 2562 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); |
2562 | if ( mViewManager->currentView() ) | 2563 | if ( mViewManager->currentView() ) |
2563 | mViewManager->currentView()->flushView(); | 2564 | mViewManager->currentView()->flushView(); |
2564 | 2565 | ||
2565 | 2566 | ||
2566 | QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); | 2567 | QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); |
2567 | mStorage->setSaveFormat( new ICalFormat() ); | 2568 | mStorage->setSaveFormat( new ICalFormat() ); |
2568 | mStorage->setFileName( filename ); | 2569 | mStorage->setFileName( filename ); |
2569 | bool success; | 2570 | bool success; |
2570 | success = mStorage->save(); | 2571 | success = mStorage->save(); |
2571 | if ( !success ) { | 2572 | if ( !success ) { |
2572 | return false; | 2573 | return false; |
2573 | } | 2574 | } |
@@ -4442,58 +4443,60 @@ void CalendarView::printSetup() | |||
4442 | void CalendarView::print() | 4443 | void CalendarView::print() |
4443 | { | 4444 | { |
4444 | #ifndef KORG_NOPRINTER | 4445 | #ifndef KORG_NOPRINTER |
4445 | createPrinter(); | 4446 | createPrinter(); |
4446 | 4447 | ||
4447 | DateList tmpDateList = mNavigator->selectedDates(); | 4448 | DateList tmpDateList = mNavigator->selectedDates(); |
4448 | mCalPrinter->print(CalPrinter::Month, | 4449 | mCalPrinter->print(CalPrinter::Month, |
4449 | tmpDateList.first(), tmpDateList.last()); | 4450 | tmpDateList.first(), tmpDateList.last()); |
4450 | #endif | 4451 | #endif |
4451 | } | 4452 | } |
4452 | 4453 | ||
4453 | void CalendarView::printPreview() | 4454 | void CalendarView::printPreview() |
4454 | { | 4455 | { |
4455 | #ifndef KORG_NOPRINTER | 4456 | #ifndef KORG_NOPRINTER |
4456 | kdDebug() << "CalendarView::printPreview()" << endl; | 4457 | kdDebug() << "CalendarView::printPreview()" << endl; |
4457 | 4458 | ||
4458 | createPrinter(); | 4459 | createPrinter(); |
4459 | 4460 | ||
4460 | DateList tmpDateList = mNavigator->selectedDates(); | 4461 | DateList tmpDateList = mNavigator->selectedDates(); |
4461 | 4462 | ||
4462 | mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(), | 4463 | mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(), |
4463 | tmpDateList.last()); | 4464 | tmpDateList.last()); |
4464 | #endif | 4465 | #endif |
4465 | } | 4466 | } |
4466 | 4467 | bool CalendarView::exportICalendar( QString filename ) | |
4467 | void CalendarView::exportICalendar() | ||
4468 | { | 4468 | { |
4469 | QString filename = KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this); | ||
4470 | |||
4471 | // Force correct extension | 4469 | // Force correct extension |
4472 | if (filename.right(4) != ".ics") filename += ".ics"; | 4470 | if (filename.right(4) != ".ics") filename += ".ics"; |
4473 | 4471 | ||
4474 | FileStorage storage( mCalendar, filename, new ICalFormat() ); | 4472 | FileStorage storage( mCalendar, filename, new ICalFormat() ); |
4475 | storage.save(); | 4473 | return storage.save(); |
4474 | } | ||
4475 | |||
4476 | bool CalendarView::exportICalendar() | ||
4477 | { | ||
4478 | return exportICalendar( KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this) ); | ||
4476 | } | 4479 | } |
4477 | 4480 | ||
4478 | bool CalendarView::exportVCalendar( QString filename ) | 4481 | bool CalendarView::exportVCalendar( QString filename ) |
4479 | { | 4482 | { |
4480 | if (mCalendar->journals().count() > 0) { | 4483 | if (mCalendar->journals().count() > 0) { |
4481 | int result = KMessageBox::warningContinueCancel(this, | 4484 | int result = KMessageBox::warningContinueCancel(this, |
4482 | i18n("The journal entries can not be\nexported to a vCalendar file."), | 4485 | i18n("The journal entries can not be\nexported to a vCalendar file."), |
4483 | i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), | 4486 | i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), |
4484 | true); | 4487 | true); |
4485 | if (result != KMessageBox::Continue) return false; | 4488 | if (result != KMessageBox::Continue) return false; |
4486 | } | 4489 | } |
4487 | 4490 | ||
4488 | //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this); | 4491 | //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this); |
4489 | 4492 | ||
4490 | // Force correct extension | 4493 | // Force correct extension |
4491 | if (filename.right(4) != ".vcs") filename += ".vcs"; | 4494 | if (filename.right(4) != ".vcs") filename += ".vcs"; |
4492 | 4495 | ||
4493 | FileStorage storage( mCalendar, filename, new VCalFormat ); | 4496 | FileStorage storage( mCalendar, filename, new VCalFormat ); |
4494 | return storage.save(); | 4497 | return storage.save(); |
4495 | 4498 | ||
4496 | } | 4499 | } |
4497 | 4500 | ||
4498 | void CalendarView::eventUpdated(Incidence *) | 4501 | void CalendarView::eventUpdated(Incidence *) |
4499 | { | 4502 | { |
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index b223315..8670832 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h | |||
@@ -355,49 +355,50 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
355 | 355 | ||
356 | void updateUnmanagedViews(); | 356 | void updateUnmanagedViews(); |
357 | 357 | ||
358 | /** cut the current appointment to the clipboard */ | 358 | /** cut the current appointment to the clipboard */ |
359 | void edit_cut(); | 359 | void edit_cut(); |
360 | 360 | ||
361 | /** copy the current appointment(s) to the clipboard */ | 361 | /** copy the current appointment(s) to the clipboard */ |
362 | void edit_copy(); | 362 | void edit_copy(); |
363 | 363 | ||
364 | /** paste the current vobject(s) in the clipboard buffer into calendar */ | 364 | /** paste the current vobject(s) in the clipboard buffer into calendar */ |
365 | void edit_paste(); | 365 | void edit_paste(); |
366 | 366 | ||
367 | /** edit viewing and configuration options. */ | 367 | /** edit viewing and configuration options. */ |
368 | void edit_options(); | 368 | void edit_options(); |
369 | void edit_global_options(); | 369 | void edit_global_options(); |
370 | /** | 370 | /** |
371 | Functions for printing, previewing a print, and setting up printing | 371 | Functions for printing, previewing a print, and setting up printing |
372 | parameters. | 372 | parameters. |
373 | */ | 373 | */ |
374 | void print(); | 374 | void print(); |
375 | void printSetup(); | 375 | void printSetup(); |
376 | void printPreview(); | 376 | void printPreview(); |
377 | 377 | ||
378 | /** Export as iCalendar file */ | 378 | /** Export as iCalendar file */ |
379 | void exportICalendar(); | 379 | bool exportICalendar(); |
380 | bool exportICalendar( QString fn ); | ||
380 | 381 | ||
381 | /** Export as vCalendar file */ | 382 | /** Export as vCalendar file */ |
382 | bool exportVCalendar( QString fn); | 383 | bool exportVCalendar( QString fn); |
383 | 384 | ||
384 | /** pop up a dialog to show an existing appointment. */ | 385 | /** pop up a dialog to show an existing appointment. */ |
385 | void appointment_show(); | 386 | void appointment_show(); |
386 | /** | 387 | /** |
387 | * pop up an Appointment Dialog to edit an existing appointment.Get | 388 | * pop up an Appointment Dialog to edit an existing appointment.Get |
388 | * information on the appointment from the list of unique IDs that is | 389 | * information on the appointment from the list of unique IDs that is |
389 | * currently in the View, called currIds. | 390 | * currently in the View, called currIds. |
390 | */ | 391 | */ |
391 | void appointment_edit(); | 392 | void appointment_edit(); |
392 | /** | 393 | /** |
393 | * pop up dialog confirming deletion of currently selected event in the | 394 | * pop up dialog confirming deletion of currently selected event in the |
394 | * View. | 395 | * View. |
395 | */ | 396 | */ |
396 | void appointment_delete(); | 397 | void appointment_delete(); |
397 | 398 | ||
398 | /** mails the currently selected event to a particular user as a vCalendar | 399 | /** mails the currently selected event to a particular user as a vCalendar |
399 | attachment. */ | 400 | attachment. */ |
400 | void action_mail(); | 401 | void action_mail(); |
401 | 402 | ||
402 | /* frees a subtodo from it's relation */ | 403 | /* frees a subtodo from it's relation */ |
403 | void todo_unsub( Todo * ); | 404 | void todo_unsub( Todo * ); |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 2af605f..98d3e35 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -502,72 +502,91 @@ void MainWindow::toggleBeamReceive() | |||
502 | #ifndef DESKTOP_VERSION | 502 | #ifndef DESKTOP_VERSION |
503 | if ( infrared ) { | 503 | if ( infrared ) { |
504 | qDebug("KO: Disable BeamReceive "); | 504 | qDebug("KO: Disable BeamReceive "); |
505 | delete infrared; | 505 | delete infrared; |
506 | infrared = 0; | 506 | infrared = 0; |
507 | brAction->setOn(false); | 507 | brAction->setOn(false); |
508 | return; | 508 | return; |
509 | } | 509 | } |
510 | qDebug("KO: Enable BeamReceive "); | 510 | qDebug("KO: Enable BeamReceive "); |
511 | brAction->setOn(true); | 511 | brAction->setOn(true); |
512 | infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; | 512 | infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; |
513 | QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); | 513 | QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); |
514 | #endif | 514 | #endif |
515 | } | 515 | } |
516 | void MainWindow::showMaximized () | 516 | void MainWindow::showMaximized () |
517 | { | 517 | { |
518 | #ifndef DESKTOP_VERSION | 518 | #ifndef DESKTOP_VERSION |
519 | if ( ! globalFlagBlockStartup ) | 519 | if ( ! globalFlagBlockStartup ) |
520 | if ( mClosed ) | 520 | if ( mClosed ) |
521 | mView->goToday(); | 521 | mView->goToday(); |
522 | #endif | 522 | #endif |
523 | QWidget::showMaximized () ; | 523 | QWidget::showMaximized () ; |
524 | mClosed = false; | 524 | mClosed = false; |
525 | } | 525 | } |
526 | |||
527 | bool MainWindow::askForQuitOnSaveError() | ||
528 | { | ||
529 | bool retval = false; | ||
530 | switch( QMessageBox::information( this, "KO/Pi", | ||
531 | i18n("Error saving data") + "!\n" + | ||
532 | i18n("You can save all data\nto another file via\nFile->Export->Export All Data") + "!\n" + | ||
533 | i18n("Do you really want\nto close KO/Pi?"), | ||
534 | i18n(" Yes, close "), i18n("No"), | ||
535 | 0, 1 ) ) { | ||
536 | case 0: | ||
537 | retval = true; | ||
538 | break; | ||
539 | default: | ||
540 | break; | ||
541 | } | ||
542 | return retval; | ||
543 | } | ||
544 | |||
526 | void MainWindow::closeEvent( QCloseEvent* ce ) | 545 | void MainWindow::closeEvent( QCloseEvent* ce ) |
527 | { | 546 | { |
528 | 547 | ||
529 | 548 | ||
530 | 549 | ||
531 | if ( ! KOPrefs::instance()->mAskForQuit ) { | 550 | if ( ! KOPrefs::instance()->mAskForQuit ) { |
532 | saveOnClose(); | 551 | saveOnClose(); |
533 | if ( mCalendarModifiedFlag ) { | 552 | if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) { |
534 | ce->ignore(); | 553 | ce->ignore(); |
535 | return; | 554 | return; |
536 | } | 555 | } |
537 | mClosed = true; | 556 | mClosed = true; |
538 | ce->accept(); | 557 | ce->accept(); |
539 | return; | 558 | return; |
540 | 559 | ||
541 | } | 560 | } |
542 | 561 | ||
543 | switch( QMessageBox::information( this, "KO/Pi", | 562 | switch( QMessageBox::information( this, "KO/Pi", |
544 | i18n("Do you really want\nto close KO/Pi?"), | 563 | i18n("Do you really want\nto close KO/Pi?"), |
545 | i18n("Close"), i18n("No"), | 564 | i18n("Close"), i18n("No"), |
546 | 0, 0 ) ) { | 565 | 0, 0 ) ) { |
547 | case 0: | 566 | case 0: |
548 | saveOnClose(); | 567 | saveOnClose(); |
549 | if ( mCalendarModifiedFlag ) { | 568 | if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) { |
550 | ce->ignore(); | 569 | ce->ignore(); |
551 | return; | 570 | return; |
552 | } | 571 | } |
553 | mClosed = true; | 572 | mClosed = true; |
554 | ce->accept(); | 573 | ce->accept(); |
555 | break; | 574 | break; |
556 | case 1: | 575 | case 1: |
557 | ce->ignore(); | 576 | ce->ignore(); |
558 | break; | 577 | break; |
559 | case 2: | 578 | case 2: |
560 | 579 | ||
561 | default: | 580 | default: |
562 | break; | 581 | break; |
563 | } | 582 | } |
564 | 583 | ||
565 | 584 | ||
566 | } | 585 | } |
567 | void MainWindow::receiveStart( const QCString& cmsg, const QByteArray& data ) | 586 | void MainWindow::receiveStart( const QCString& cmsg, const QByteArray& data ) |
568 | { | 587 | { |
569 | qDebug("KO: QCOP start message received: %s ", cmsg.data() ); | 588 | qDebug("KO: QCOP start message received: %s ", cmsg.data() ); |
570 | mCStringMess = cmsg; | 589 | mCStringMess = cmsg; |
571 | mByteData = data; | 590 | mByteData = data; |
572 | } | 591 | } |
573 | void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) | 592 | void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) |
@@ -1144,48 +1163,52 @@ void MainWindow::initActions() | |||
1144 | //#else | 1163 | //#else |
1145 | #ifdef _OL_IMPORT_ | 1164 | #ifdef _OL_IMPORT_ |
1146 | importMenu_X->insertSeparator(); | 1165 | importMenu_X->insertSeparator(); |
1147 | action = new QAction( "import_ol", i18n("Import from OL"), 0, | 1166 | action = new QAction( "import_ol", i18n("Import from OL"), 0, |
1148 | this ); | 1167 | this ); |
1149 | action->addTo( importMenu_X ); | 1168 | action->addTo( importMenu_X ); |
1150 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); | 1169 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); |
1151 | #endif | 1170 | #endif |
1152 | //#endif | 1171 | //#endif |
1153 | 1172 | ||
1154 | //importMenu->insertSeparator(); | 1173 | //importMenu->insertSeparator(); |
1155 | #if 0 | 1174 | #if 0 |
1156 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, | 1175 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, |
1157 | this ); | 1176 | this ); |
1158 | action->addTo( importMenu ); | 1177 | action->addTo( importMenu ); |
1159 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); | 1178 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); |
1160 | #endif | 1179 | #endif |
1161 | action = new QAction( "save_cal", i18n("Save Backup..."), 0, | 1180 | action = new QAction( "save_cal", i18n("Save Backup..."), 0, |
1162 | this ); | 1181 | this ); |
1163 | action->addTo( importMenu ); | 1182 | action->addTo( importMenu ); |
1164 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); | 1183 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); |
1165 | importMenu->insertSeparator(); | 1184 | importMenu->insertSeparator(); |
1166 | importMenu->insertItem( i18n("Import"), importMenu_X ); | 1185 | importMenu->insertItem( i18n("Import"), importMenu_X ); |
1167 | //importMenu->insertSeparator(); | 1186 | //importMenu->insertSeparator(); |
1187 | action = new QAction( "export ical", i18n("Export All Data"), 0, | ||
1188 | this ); | ||
1189 | action->addTo( exportMenu_X ); | ||
1190 | connect( action, SIGNAL( activated() ), SLOT( exportICalendar() ) ); | ||
1168 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, | 1191 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, |
1169 | this ); | 1192 | this ); |
1170 | action->addTo( exportMenu_X ); | 1193 | action->addTo( exportMenu_X ); |
1171 | connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); | 1194 | connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); |
1172 | 1195 | ||
1173 | 1196 | ||
1174 | //LR | 1197 | //LR |
1175 | QPopupMenu *ex2phone = new QPopupMenu( this ); | 1198 | QPopupMenu *ex2phone = new QPopupMenu( this ); |
1176 | ex2phone->insertItem(i18n("Complete calendar..."), 1 ); | 1199 | ex2phone->insertItem(i18n("Complete calendar..."), 1 ); |
1177 | ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); | 1200 | ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); |
1178 | connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); | 1201 | connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); |
1179 | exportMenu_X->insertItem( i18n("Export to phone"), ex2phone ); | 1202 | exportMenu_X->insertItem( i18n("Export to phone"), ex2phone ); |
1180 | 1203 | ||
1181 | importMenu->insertItem( i18n("Export"), exportMenu_X ); | 1204 | importMenu->insertItem( i18n("Export"), exportMenu_X ); |
1182 | mPrintSelAction = 0; | 1205 | mPrintSelAction = 0; |
1183 | #ifndef DESKTOP_VERSION | 1206 | #ifndef DESKTOP_VERSION |
1184 | //importMenu->insertSeparator(); | 1207 | //importMenu->insertSeparator(); |
1185 | brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, | 1208 | brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, |
1186 | this ); | 1209 | this ); |
1187 | brAction->addTo( beamMenu_X ); | 1210 | brAction->addTo( beamMenu_X ); |
1188 | brAction->setToggleAction (true ) ; | 1211 | brAction->setToggleAction (true ) ; |
1189 | connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); | 1212 | connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); |
1190 | 1213 | ||
1191 | action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, | 1214 | action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, |
@@ -1946,49 +1969,49 @@ void MainWindow::saveOnClose() | |||
1946 | p->mToolBarUpF = filterToolBar->x() > width()/2 ; | 1969 | p->mToolBarUpF = filterToolBar->x() > width()/2 ; |
1947 | } | 1970 | } |
1948 | #endif | 1971 | #endif |
1949 | save(); | 1972 | save(); |
1950 | mView->writeSettings(); | 1973 | mView->writeSettings(); |
1951 | mView->checkSuspendAlarm(); | 1974 | mView->checkSuspendAlarm(); |
1952 | } | 1975 | } |
1953 | void MainWindow::slotModifiedChanged( bool ) | 1976 | void MainWindow::slotModifiedChanged( bool ) |
1954 | { | 1977 | { |
1955 | if ( mBlockAtStartup ) | 1978 | if ( mBlockAtStartup ) |
1956 | return; | 1979 | return; |
1957 | 1980 | ||
1958 | int msec; | 1981 | int msec; |
1959 | if ( mCalendarModifiedFlag ) { | 1982 | if ( mCalendarModifiedFlag ) { |
1960 | //qDebug(" MainWindow timer is running "); | 1983 | //qDebug(" MainWindow timer is running "); |
1961 | return; | 1984 | return; |
1962 | } | 1985 | } |
1963 | // we store the changes after 1 minute, | 1986 | // we store the changes after 1 minute, |
1964 | // and for safety reasons after 10 minutes again | 1987 | // and for safety reasons after 10 minutes again |
1965 | if ( !mSyncManager->blockSave() ) | 1988 | if ( !mSyncManager->blockSave() ) |
1966 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; | 1989 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; |
1967 | else | 1990 | else |
1968 | msec = 1000 * 600; | 1991 | msec = 1000 * 600; |
1969 | mSaveTimer.start( msec, true ); // 1 minute | 1992 | mSaveTimer.start( msec, true ); // 1 minute |
1970 | mSaveTime.restart(); | 1993 | mSaveTimerStart = QDateTime::currentDateTime(); |
1971 | mSaveDelay = msec/1000; | 1994 | mSaveDelay = msec/1000; |
1972 | qDebug("KO: Saving File in %d secs!", msec/1000); | 1995 | qDebug("KO: Saving File in %d secs!", msec/1000); |
1973 | mCalendarModifiedFlag = true; | 1996 | mCalendarModifiedFlag = true; |
1974 | } | 1997 | } |
1975 | void MainWindow::saveStopTimer() | 1998 | void MainWindow::saveStopTimer() |
1976 | { | 1999 | { |
1977 | mSaveTimer.stop(); | 2000 | mSaveTimer.stop(); |
1978 | } | 2001 | } |
1979 | void MainWindow::backupAllFiles() | 2002 | void MainWindow::backupAllFiles() |
1980 | { | 2003 | { |
1981 | QDate reference ( 2000,1,1); | 2004 | QDate reference ( 2000,1,1); |
1982 | int daysTo = reference.daysTo ( QDate::currentDate() ); | 2005 | int daysTo = reference.daysTo ( QDate::currentDate() ); |
1983 | setCaption(i18n("Creating backup ... please wait ..." )); | 2006 | setCaption(i18n("Creating backup ... please wait ..." )); |
1984 | qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); | 2007 | qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); |
1985 | // we need the file path, the backup dir and the number of bups as param | 2008 | // we need the file path, the backup dir and the number of bups as param |
1986 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; | 2009 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; |
1987 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) | 2010 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) |
1988 | bupDir = KGlobalSettings::backupDataDir(); | 2011 | bupDir = KGlobalSettings::backupDataDir(); |
1989 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | 2012 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); |
1990 | if ( retval == 0 ) { | 2013 | if ( retval == 0 ) { |
1991 | setCaption(i18n("Backup cancelled" )); | 2014 | setCaption(i18n("Backup cancelled" )); |
1992 | qDebug("KO: Backup cancelled. Will try again tomorrow "); | 2015 | qDebug("KO: Backup cancelled. Will try again tomorrow "); |
1993 | // retval == 0 : backup skipped for today, try again tomorrow | 2016 | // retval == 0 : backup skipped for today, try again tomorrow |
1994 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; | 2017 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; |
@@ -1996,54 +2019,56 @@ void MainWindow::backupAllFiles() | |||
1996 | qDebug("KO: Backup created."); | 2019 | qDebug("KO: Backup created."); |
1997 | // backup ok | 2020 | // backup ok |
1998 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 2021 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
1999 | KopiCalendarFile * cal = calendars.first(); | 2022 | KopiCalendarFile * cal = calendars.first(); |
2000 | cal = calendars.next(); | 2023 | cal = calendars.next(); |
2001 | while ( cal ) { | 2024 | while ( cal ) { |
2002 | if ( !cal->mErrorOnLoad ) { | 2025 | if ( !cal->mErrorOnLoad ) { |
2003 | KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | 2026 | KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); |
2004 | } | 2027 | } |
2005 | cal = calendars.next(); | 2028 | cal = calendars.next(); |
2006 | } | 2029 | } |
2007 | KOPrefs::instance()->mLastBackupDate = daysTo; | 2030 | KOPrefs::instance()->mLastBackupDate = daysTo; |
2008 | setCaption(i18n("Backup succesfully finished" )); | 2031 | setCaption(i18n("Backup succesfully finished" )); |
2009 | } else if ( retval == 2 ){ | 2032 | } else if ( retval == 2 ){ |
2010 | setCaption(i18n("Backup globally disabled" )); | 2033 | setCaption(i18n("Backup globally disabled" )); |
2011 | qDebug("KO: Backup globally cancelled."); | 2034 | qDebug("KO: Backup globally cancelled."); |
2012 | // backup globally cancelled | 2035 | // backup globally cancelled |
2013 | KPimGlobalPrefs::instance()->mBackupEnabled = false; | 2036 | KPimGlobalPrefs::instance()->mBackupEnabled = false; |
2014 | } | 2037 | } |
2015 | // retval == 3: do nothing, try again later | 2038 | // retval == 3: do nothing, try again later |
2016 | } | 2039 | } |
2017 | void MainWindow::save() | 2040 | void MainWindow::save() |
2018 | { | 2041 | { |
2019 | if ( mSaveDelay ) { | 2042 | if ( mSaveDelay ) { |
2020 | if ( mSaveDelay + 60 < mSaveTime.elapsed()/1000 ) { | 2043 | int elapsed = mSaveTimerStart.secsTo( QDateTime::currentDateTime() ); |
2021 | qDebug("KO: Save delay %d. Elapsed save time %d ", mSaveDelay, mSaveTime.elapsed()/1000 ); | 2044 | if ( mSaveDelay < elapsed ) { |
2022 | qDebug("KO: Restarting save timer"); | 2045 | qDebug("KO: Pending save after wakeup from suspend detected."); |
2023 | int msec = 10000; | 2046 | qDebug("KO: Save delay %d sec. Elapsed save time %d sec.", mSaveDelay, elapsed ); |
2024 | mSaveTimer.start( msec, true ); // 1 minute | 2047 | qDebug("KO: Restarting save timer to save in 15 sec."); |
2025 | mSaveTime.restart(); | 2048 | int msec = 15000; |
2049 | mSaveTimer.start( msec, true ); | ||
2050 | mSaveTimerStart = QDateTime::currentDateTime(); | ||
2026 | mSaveDelay = msec/1000; | 2051 | mSaveDelay = msec/1000; |
2027 | return; | 2052 | return; |
2028 | } | 2053 | } |
2029 | } | 2054 | } |
2030 | 2055 | ||
2031 | if ( mView->viewManager()->journalView() ) | 2056 | if ( mView->viewManager()->journalView() ) |
2032 | mView->viewManager()->journalView()->checkModified(); | 2057 | mView->viewManager()->journalView()->checkModified(); |
2033 | if ( !mCalendarModifiedFlag ) { | 2058 | if ( !mCalendarModifiedFlag ) { |
2034 | qDebug("KO: Calendar not modified. Nothing saved."); | 2059 | qDebug("KO: Calendar not modified. Nothing saved."); |
2035 | return; | 2060 | return; |
2036 | } | 2061 | } |
2037 | if ( mSyncManager->blockSave() ) { | 2062 | if ( mSyncManager->blockSave() ) { |
2038 | slotModifiedChanged( true ); | 2063 | slotModifiedChanged( true ); |
2039 | return; | 2064 | return; |
2040 | } | 2065 | } |
2041 | mSaveDelay = 0; | 2066 | mSaveDelay = 0; |
2042 | mSyncManager->setBlockSave(true); | 2067 | mSyncManager->setBlockSave(true); |
2043 | if ( mView->checkAllFileVersions() ) { | 2068 | if ( mView->checkAllFileVersions() ) { |
2044 | if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ | 2069 | if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ |
2045 | QDate reference ( 2000,1,1); | 2070 | QDate reference ( 2000,1,1); |
2046 | int daysTo = reference.daysTo ( QDate::currentDate() ); | 2071 | int daysTo = reference.daysTo ( QDate::currentDate() ); |
2047 | if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { | 2072 | if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { |
2048 | backupAllFiles(); | 2073 | backupAllFiles(); |
2049 | } | 2074 | } |
@@ -2554,80 +2579,96 @@ void MainWindow::importFile( QString fn, bool quick ) | |||
2554 | 0, 1 ); | 2579 | 0, 1 ); |
2555 | } | 2580 | } |
2556 | if ( result == 0 ) { | 2581 | if ( result == 0 ) { |
2557 | if ( mView->openCalendar( fn, true )) { | 2582 | if ( mView->openCalendar( fn, true )) { |
2558 | KOPrefs::instance()->mLastImportFile = fn; | 2583 | KOPrefs::instance()->mLastImportFile = fn; |
2559 | setCaption(i18n("Imported file successfully")); | 2584 | setCaption(i18n("Imported file successfully")); |
2560 | } else { | 2585 | } else { |
2561 | setCaption(i18n("Error importing file")); | 2586 | setCaption(i18n("Error importing file")); |
2562 | } | 2587 | } |
2563 | mView->updateView(); | 2588 | mView->updateView(); |
2564 | } | 2589 | } |
2565 | } | 2590 | } |
2566 | 2591 | ||
2567 | void MainWindow::importIcal() | 2592 | void MainWindow::importIcal() |
2568 | { | 2593 | { |
2569 | 2594 | ||
2570 | QString fn =KOPrefs::instance()->mLastImportFile; | 2595 | QString fn =KOPrefs::instance()->mLastImportFile; |
2571 | 2596 | ||
2572 | fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); | 2597 | fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); |
2573 | if ( fn == "" ) | 2598 | if ( fn == "" ) |
2574 | return; | 2599 | return; |
2575 | importFile( fn, true ); | 2600 | importFile( fn, true ); |
2576 | 2601 | ||
2577 | } | 2602 | } |
2578 | 2603 | void MainWindow::exportCalendar( bool iCalFormat ) | |
2579 | void MainWindow::exportVCalendar() | ||
2580 | { | 2604 | { |
2581 | QString fn = KOPrefs::instance()->mLastVcalFile; | 2605 | QString fn = KOPrefs::instance()->mLastVcalFile; |
2582 | fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); | 2606 | if ( iCalFormat ) { |
2607 | fn = QDir::homeDirPath()+"/kopiexport.ics"; | ||
2608 | fn = KFileDialog::getSaveFileName( fn, i18n("Export iCal filename(*.ics)"), this ); | ||
2609 | } | ||
2610 | else | ||
2611 | fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); | ||
2583 | if ( fn == "" ) | 2612 | if ( fn == "" ) |
2584 | return; | 2613 | return; |
2585 | QFileInfo info; | 2614 | QFileInfo info; |
2586 | info.setFile( fn ); | 2615 | info.setFile( fn ); |
2587 | QString mes; | 2616 | QString mes; |
2588 | bool createbup = true; | 2617 | bool createbup = true; |
2589 | if ( info. exists() ) { | 2618 | if ( info. exists() ) { |
2590 | mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); | 2619 | mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); |
2591 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, | 2620 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, |
2592 | i18n("Overwrite!"), i18n("Cancel"), 0, | 2621 | i18n("Overwrite!"), i18n("Cancel"), 0, |
2593 | 0, 1 ); | 2622 | 0, 1 ); |
2594 | if ( result != 0 ) { | 2623 | if ( result != 0 ) { |
2595 | createbup = false; | 2624 | createbup = false; |
2596 | } | 2625 | } |
2597 | } | 2626 | } |
2598 | if ( createbup ) { | 2627 | if ( createbup ) { |
2599 | if ( mView->exportVCalendar( fn ) ) { | 2628 | bool success = false; |
2600 | KOPrefs::instance()->mLastVcalFile = fn; | 2629 | if ( iCalFormat ) |
2630 | success = mView->exportICalendar( fn ); | ||
2631 | else | ||
2632 | success = mView->exportVCalendar( fn ); | ||
2633 | if ( success ) { | ||
2601 | if ( fn.length() > 20 ) | 2634 | if ( fn.length() > 20 ) |
2602 | mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; | 2635 | mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; |
2603 | else | 2636 | else |
2604 | mes = i18n("KO/Pi:Exported to %1").arg(fn ); | 2637 | mes = i18n("KO/Pi:Exported to %1").arg(fn ); |
2605 | setCaption(mes); | 2638 | setCaption(mes); |
2606 | } | 2639 | } |
2607 | } | 2640 | } |
2608 | 2641 | ||
2609 | } | 2642 | } |
2643 | void MainWindow::exportICalendar() | ||
2644 | { | ||
2645 | exportCalendar( true ); | ||
2646 | } | ||
2647 | void MainWindow::exportVCalendar() | ||
2648 | { | ||
2649 | exportCalendar( false ); | ||
2650 | } | ||
2610 | QString MainWindow::sentSyncFile() | 2651 | QString MainWindow::sentSyncFile() |
2611 | { | 2652 | { |
2612 | #ifdef DESKTOP_VERSION | 2653 | #ifdef DESKTOP_VERSION |
2613 | return QDir::convertSeparators( locateLocal( "tmp", "copysynccal.ics" ) ); | 2654 | return QDir::convertSeparators( locateLocal( "tmp", "copysynccal.ics" ) ); |
2614 | #else | 2655 | #else |
2615 | return QString( "/tmp/copysynccal.ics" ); | 2656 | return QString( "/tmp/copysynccal.ics" ); |
2616 | #endif | 2657 | #endif |
2617 | } | 2658 | } |
2618 | 2659 | ||
2619 | void MainWindow::syncFileRequest() | 2660 | void MainWindow::syncFileRequest() |
2620 | { | 2661 | { |
2621 | while ( mSyncManager->blockSave() ) { | 2662 | while ( mSyncManager->blockSave() ) { |
2622 | qApp->processEvents(); | 2663 | qApp->processEvents(); |
2623 | } | 2664 | } |
2624 | mSyncManager->setBlockSave(true); | 2665 | mSyncManager->setBlockSave(true); |
2625 | 2666 | ||
2626 | if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { | 2667 | if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { |
2627 | mSyncManager->slotSyncMenu( 999 ); | 2668 | mSyncManager->slotSyncMenu( 999 ); |
2628 | } | 2669 | } |
2629 | 2670 | ||
2630 | setCaption(i18n("Saving Data to temp file ..." )); | 2671 | setCaption(i18n("Saving Data to temp file ..." )); |
2631 | mView->saveCalendar( sentSyncFile() ); | 2672 | mView->saveCalendar( sentSyncFile() ); |
2632 | setCaption(i18n("Data saved to temp file!" )); | 2673 | setCaption(i18n("Data saved to temp file!" )); |
2633 | mSyncManager->setBlockSave( false ); | 2674 | mSyncManager->setBlockSave( false ); |
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 657c0a8..71c069b 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h | |||
@@ -72,71 +72,74 @@ class MainWindow : public QMainWindow | |||
72 | void aboutAutoSaving();; | 72 | void aboutAutoSaving();; |
73 | void aboutKnownBugs(); | 73 | void aboutKnownBugs(); |
74 | 74 | ||
75 | void processIncidenceSelection( Incidence * ); | 75 | void processIncidenceSelection( Incidence * ); |
76 | 76 | ||
77 | void importQtopia(); | 77 | void importQtopia(); |
78 | void importBday(); | 78 | void importBday(); |
79 | void importOL(); | 79 | void importOL(); |
80 | void importIcal(); | 80 | void importIcal(); |
81 | void importFile( QString, bool ); | 81 | void importFile( QString, bool ); |
82 | void quickImportIcal(); | 82 | void quickImportIcal(); |
83 | 83 | ||
84 | void slotModifiedChanged( bool ); | 84 | void slotModifiedChanged( bool ); |
85 | 85 | ||
86 | void save(); | 86 | void save(); |
87 | void backupAllFiles(); | 87 | void backupAllFiles(); |
88 | void saveStopTimer(); | 88 | void saveStopTimer(); |
89 | void configureToolBar( int ); | 89 | void configureToolBar( int ); |
90 | void printSel(); | 90 | void printSel(); |
91 | void printCal(); | 91 | void printCal(); |
92 | void printListView(); | 92 | void printListView(); |
93 | void saveCalendar(); | 93 | void saveCalendar(); |
94 | void loadCalendar(); | 94 | void loadCalendar(); |
95 | void exportVCalendar(); | 95 | void exportVCalendar(); |
96 | void exportICalendar(); | ||
97 | void exportCalendar( bool ); | ||
96 | void fillFilterMenu(); | 98 | void fillFilterMenu(); |
97 | void fillFilterMenuTB(); | 99 | void fillFilterMenuTB(); |
98 | void selectFilter( int ); | 100 | void selectFilter( int ); |
99 | void fillFilterMenuPopup(); | 101 | void fillFilterMenuPopup(); |
100 | void selectFilterPopup( int ); | 102 | void selectFilterPopup( int ); |
101 | void exportToPhone( int ); | 103 | void exportToPhone( int ); |
102 | void toggleBeamReceive(); | 104 | void toggleBeamReceive(); |
103 | void disableBR(bool); | 105 | void disableBR(bool); |
104 | signals: | 106 | signals: |
105 | void selectWeek ( int ); | 107 | void selectWeek ( int ); |
106 | private slots: | 108 | private slots: |
107 | void slotResetFocus(); | 109 | void slotResetFocus(); |
108 | void slotResetFocusLoop(); | 110 | void slotResetFocusLoop(); |
109 | void showConfigureAgenda(); | 111 | void showConfigureAgenda(); |
110 | void getFile( bool ); | 112 | void getFile( bool ); |
111 | void syncFileRequest(); | 113 | void syncFileRequest(); |
112 | 114 | ||
113 | protected: | 115 | protected: |
114 | int mFocusLoop; | 116 | int mFocusLoop; |
115 | void hideEvent ( QHideEvent * ); | 117 | void hideEvent ( QHideEvent * ); |
116 | QString sentSyncFile(); | 118 | QString sentSyncFile(); |
117 | void displayText( QString, QString); | 119 | void displayText( QString, QString); |
118 | void enableIncidenceActions( bool ); | 120 | void enableIncidenceActions( bool ); |
121 | bool askForQuitOnSaveError(); | ||
119 | 122 | ||
120 | private: | 123 | private: |
121 | 124 | ||
122 | QCString mCStringMess; | 125 | QCString mCStringMess; |
123 | QByteArray mByteData; | 126 | QByteArray mByteData; |
124 | 127 | ||
125 | //void setMenuBar( QMenuBar * ); | 128 | //void setMenuBar( QMenuBar * ); |
126 | bool mBRdisabled; | 129 | bool mBRdisabled; |
127 | #ifndef DESKTOP_VERSION | 130 | #ifndef DESKTOP_VERSION |
128 | QCopChannel* infrared; | 131 | QCopChannel* infrared; |
129 | #endif | 132 | #endif |
130 | QAction* brAction; | 133 | QAction* brAction; |
131 | KSyncManager* mSyncManager; | 134 | KSyncManager* mSyncManager; |
132 | bool mClosed; | 135 | bool mClosed; |
133 | void saveOnClose(); | 136 | void saveOnClose(); |
134 | bool mFlagKeyPressed; | 137 | bool mFlagKeyPressed; |
135 | bool mBlockAtStartup; | 138 | bool mBlockAtStartup; |
136 | KMenuBar *menuBar1; | 139 | KMenuBar *menuBar1; |
137 | QPEToolBar *iconToolBar; | 140 | QPEToolBar *iconToolBar; |
138 | QPEToolBar *viewToolBar; | 141 | QPEToolBar *viewToolBar; |
139 | QPEToolBar *navigatorToolBar; | 142 | QPEToolBar *navigatorToolBar; |
140 | QPEToolBar *filterToolBar; | 143 | QPEToolBar *filterToolBar; |
141 | KMenuBar *filterMenubar; | 144 | KMenuBar *filterMenubar; |
142 | QPopupMenu * filterPopupMenu; | 145 | QPopupMenu * filterPopupMenu; |
@@ -153,34 +156,34 @@ class MainWindow : public QMainWindow | |||
153 | CalendarLocal *mCalendar; | 156 | CalendarLocal *mCalendar; |
154 | CalendarView *mView; | 157 | CalendarView *mView; |
155 | QAction *mNewSubTodoAction; | 158 | QAction *mNewSubTodoAction; |
156 | QAction *mWeekAction; | 159 | QAction *mWeekAction; |
157 | QFont mWeekFont; | 160 | QFont mWeekFont; |
158 | QPixmap mWeekPixmap; | 161 | QPixmap mWeekPixmap; |
159 | QColor mWeekBgColor; | 162 | QColor mWeekBgColor; |
160 | 163 | ||
161 | QAction *mShowAction; | 164 | QAction *mShowAction; |
162 | QAction *mEditAction; | 165 | QAction *mEditAction; |
163 | QAction *mDeleteAction; | 166 | QAction *mDeleteAction; |
164 | QAction *mCloneAction; | 167 | QAction *mCloneAction; |
165 | QAction *mMoveAction; | 168 | QAction *mMoveAction; |
166 | QAction *mBeamAction; | 169 | QAction *mBeamAction; |
167 | QAction *mCancelAction; | 170 | QAction *mCancelAction; |
168 | QAction *mPrintSelAction; | 171 | QAction *mPrintSelAction; |
169 | 172 | ||
170 | QAction *mToggleNav; | 173 | QAction *mToggleNav; |
171 | QAction *mToggleFilter; | 174 | QAction *mToggleFilter; |
172 | QAction *mToggleAllday; | 175 | QAction *mToggleAllday; |
173 | QAction *actionFilterMenuTB; | 176 | QAction *actionFilterMenuTB; |
174 | 177 | ||
175 | void closeEvent( QCloseEvent* ce ); | 178 | void closeEvent( QCloseEvent* ce ); |
176 | QTimer mSaveTimer; | 179 | QTimer mSaveTimer; |
177 | QTime mSaveTime; | 180 | QDateTime mSaveTimerStart; |
178 | int mSaveDelay; | 181 | int mSaveDelay; |
179 | //bool mBlockSaveFlag; | 182 | //bool mBlockSaveFlag; |
180 | bool mCalendarModifiedFlag; | 183 | bool mCalendarModifiedFlag; |
181 | QPixmap loadPixmap( QString ); | 184 | QPixmap loadPixmap( QString ); |
182 | QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80, journalPix; | 185 | QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80, journalPix; |
183 | }; | 186 | }; |
184 | 187 | ||
185 | 188 | ||
186 | #endif | 189 | #endif |