-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 6 | ||||
-rw-r--r-- | korganizer/kolistview.cpp | 79 | ||||
-rw-r--r-- | korganizer/kolistview.h | 135 |
3 files changed, 216 insertions, 4 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index ec08321..6abf802 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -45,193 +45,193 @@ | |||
45 | { "Access:","Zugriff:" }, | 45 | { "Access:","Zugriff:" }, |
46 | { "A corresponding event is missing in your calendar!","Ein zugehöriger Termin fehlt in ihrem Kalender!" }, | 46 | { "A corresponding event is missing in your calendar!","Ein zugehöriger Termin fehlt in ihrem Kalender!" }, |
47 | { "Actions","Aktionen" }, | 47 | { "Actions","Aktionen" }, |
48 | { "Add Filter","Filter Hinzufügen" }, | 48 | { "Add Filter","Filter Hinzufügen" }, |
49 | { "&Add","Hinzufügen" }, | 49 | { "&Add","Hinzufügen" }, |
50 | { "Add","Hinzufügen" }, | 50 | { "Add","Hinzufügen" }, |
51 | { "Additional email addresses:","Zusätzliche E-Mail Adressen:" }, | 51 | { "Additional email addresses:","Zusätzliche E-Mail Adressen:" }, |
52 | { "Additional email address:","Zusätzliche E-Mail Adresse:" }, | 52 | { "Additional email address:","Zusätzliche E-Mail Adresse:" }, |
53 | { "&Addressbook","&Adressbuch" }, | 53 | { "&Addressbook","&Adressbuch" }, |
54 | { "Address &Book...","Adress&buch..." }, | 54 | { "Address &Book...","Adress&buch..." }, |
55 | { "Agenda Size","Agende Größe" }, | 55 | { "Agenda Size","Agende Größe" }, |
56 | { "Agenda Size:","Größe der Agenda:" }, | 56 | { "Agenda Size:","Größe der Agenda:" }, |
57 | { "Agenda view:","Agenda Ansicht:" }, | 57 | { "Agenda view:","Agenda Ansicht:" }, |
58 | { "Agenda view background color:","Hintergrund der Agenda Ansicht:" }, | 58 | { "Agenda view background color:","Hintergrund der Agenda Ansicht:" }, |
59 | { "All attendees","Alle Teilnehmer" }, | 59 | { "All attendees","Alle Teilnehmer" }, |
60 | { "AllDayAgenda Height:","Höhe Ganztages Agenda:" }, | 60 | { "AllDayAgenda Height:","Höhe Ganztages Agenda:" }, |
61 | { "All day event","Ganztägig" }, | 61 | { "All day event","Ganztägig" }, |
62 | { "Anonymous","Anonym" }, | 62 | { "Anonymous","Anonym" }, |
63 | { "Apply","Anwenden" }, | 63 | { "Apply","Anwenden" }, |
64 | { "Apr","Apr" }, | 64 | { "Apr","Apr" }, |
65 | { "April","April" }, | 65 | { "April","April" }, |
66 | {"Ask for every entry on conflict","Frage bei Konflikten nach"}, | 66 | {"Ask for every entry on conflict","Frage bei Konflikten nach"}, |
67 | { "Ask for preferences before syncing","Vor dem Syncronisieren nachfragen" }, | 67 | { "Ask for preferences before syncing","Vor dem Syncronisieren nachfragen" }, |
68 | { "Ask for quit when closing KO/Pi","Vor dem Beenden von KO/Pi nachfragen" }, | 68 | { "Ask for quit when closing KO/Pi","Vor dem Beenden von KO/Pi nachfragen" }, |
69 | { "Attendees","Teilnehmer" }, | 69 | { "Attendees","Teilnehmer" }, |
70 | { "Aug","Aug" }, | 70 | { "Aug","Aug" }, |
71 | { "August","August" }, | 71 | { "August","August" }, |
72 | { "Auto-Save","Automatisches Abspeichern" }, | 72 | { "Auto-Save","Automatisches Abspeichern" }, |
73 | { "Auto save delay in minutes:","Verzög.autom.Speichern in Min" }, | 73 | { "Auto save delay in minutes:","Verzög.autom.Speichern in Min" }, |
74 | { "Auto saving...","Automatische Sicherung..." }, | 74 | { "Auto saving...","Automatische Sicherung..." }, |
75 | { "Begin on:","Starte mit:" }, | 75 | { "Begin on:","Starte mit:" }, |
76 | { "Begins on: %1","Starte mit: %1" }, | 76 | { "Begins on: %1","Starte mit: %1" }, |
77 | { "<b>From:</b> %1 <b>To:</b> %2","<b>Vom:</b> %1 <b>Zum:</b> %2" }, | 77 | { "<b>From:</b> %1 <b>To:</b> %2","<b>Vom:</b> %1 <b>Zum:</b> %2" }, |
78 | { "<b>On:</b> %1","<b>Am:</b> %1" }, | 78 | { "<b>On:</b> %1","<b>Am:</b> %1" }, |
79 | { "<b>On:</b> %1 <b>From:S</b> %2 <b>To:</b> %3","<b>Am:</b> %1 <b>Vom:S</b> %2 <b>Zum:</b> %3" }, | 79 | { "<b>On:</b> %1 <b>From:S</b> %2 <b>To:</b> %3","<b>Am:</b> %1 <b>Vom:S</b> %2 <b>Zum:</b> %3" }, |
80 | { "<b>Original event:</b><p>","<b>Original Termin:</b><p>" }, | 80 | { "<b>Original event:</b><p>","<b>Original Termin:</b><p>" }, |
81 | { " - both are modified after last sync"," - beide wurden nach der letzten Syncronisation verändert" }, | 81 | { " - both are modified after last sync"," - beide wurden nach der letzten Syncronisation verändert" }, |
82 | { "Busy","Belegt" }, | 82 | { "Busy","Belegt" }, |
83 | { "&Cancel","Abbre&chen" }, | 83 | { "&Cancel","Abbre&chen" }, |
84 | { "Cancel","Abbrechen" }, | 84 | { "Cancel","Abbrechen" }, |
85 | { "Cannot delete To-Do\nwhich has children.","Kann Todo nicht löschen,\n da noch Einträge vorhanden sind" }, | 85 | { "Cannot delete To-Do\nwhich has children.","Kann Todo nicht löschen,\n da noch Einträge vorhanden sind" }, |
86 | { "Can't generate mail:\nNo event selected.","Kann e-Mail nicht erstellen:\nKein Termin ausgewählt." }, | 86 | { "Can't generate mail:\nNo event selected.","Kann e-Mail nicht erstellen:\nKein Termin ausgewählt." }, |
87 | { "Categories...","Kategorien..." }, | 87 | { "Categories...","Kategorien..." }, |
88 | { "Categories","Kategorien" }, | 88 | { "Categories","Kategorien" }, |
89 | { "Category","Kategorie" }, | 89 | { "Category","Kategorie" }, |
90 | { "Center View","Zentriere Ansicht" }, | 90 | { "Center View","Zentriere Ansicht" }, |
91 | { "Change","Ändere" }, | 91 | { "Change","Ändere" }, |
92 | { "Cinema","Kino" }, | 92 | { "Cinema","Kino" }, |
93 | { "Click to add a new Todo","Hier klicken, um ein neues Todo anzulegen" }, | 93 | { "Click to add a new Todo","Hier klicken, um ein neues Todo anzulegen" }, |
94 | { "Clone Item","Klone Eintrag" }, | 94 | { "Clone Item","Klone Eintrag" }, |
95 | { "&Close","S&chließen" }, | 95 | { "&Close","S&chließen" }, |
96 | { "Close","Schließen" }, | 96 | { "Close","Schließen" }, |
97 | { "Close this dialog to abort deletion!","Zum Abbrechen des Löschvorganges Dialog schließen!" }, | 97 | { "Close this dialog to abort deletion!","Zum Abbrechen des Löschvorganges Dialog schließen!" }, |
98 | { "Colors","Farben" }, | 98 | { "Colors","Farben" }, |
99 | { "completed","erledigt" }, | 99 | { "completed","erledigt" }, |
100 | { "completed on %1","erledigt am %1" }, | 100 | { "completed on %1","erledigt am %1" }, |
101 | { "Complete","Erledigt" }, | 101 | { "Complete","Erledigt" }, |
102 | { "Confidential","Vertraulich" }, | 102 | { "Confidential","Vertraulich" }, |
103 | { "Configure...","Einstellungen..." }, | 103 | { "Configure...","Einstellungen..." }, |
104 | { "Confirm &deletes","Löschvogang bestätigen" }, | 104 | { "Confirm &deletes","Löschvogang bestätigen" }, |
105 | { "Couldn't load calendar\n '%1'.","Kann Kalender\n '%1' nicht laden." }, | 105 | { "Couldn't load calendar\n '%1'.","Kann Kalender\n '%1' nicht laden." }, |
106 | { "Counter-event Viewer","Terminzähler Ansicht" }, | 106 | { "Counter-event Viewer","Terminzähler Ansicht" }, |
107 | { "Daily ending hour:","Feierabend:" }, | 107 | { "Daily ending hour:","Feierabend:" }, |
108 | { "Daily starting hour:","Anfangszeit:" }, | 108 | { "Daily starting hour:","Anfangszeit:" }, |
109 | { "Daily","Täglich" }, | 109 | { "Daily","Täglich" }, |
110 | { "Date Format","Datums Format" }, | 110 | { "Date Format","Datums Format" }, |
111 | { "Date Format:","Datums Format:" }, | 111 | { "Date Format:","Datums Format:" }, |
112 | { "DateNavigator:(nr)","Datums Navigator" }, | 112 | { "DateNavigator:(nr)","Datums Navigator" }, |
113 | { "Dates: ","Datum: " }, | 113 | { "Dates: ","Datum: " }, |
114 | { "Date && Time","Datum && Zeit" }, | 114 | { "Date && Time","Datum && Zeit" }, |
115 | { "Day begins at:","Der Tag beginnt um:" }, | 115 | { "Day begins at:","Der Tag beginnt um:" }, |
116 | { "Days in Next-X-Days:","Tage in Nächste-X-Tage:" }, | 116 | { "Days in Next-X-Days:","Tage in Nächste-X-Tage:" }, |
117 | { "Days in What's Next:","Tage in What's Next:" }, | 117 | { "Days in What's Next:","Tage in What's Next:" }, |
118 | { "day(s)","Tag(e)" }, | 118 | { "day(s)","Tag(e)" }, |
119 | { "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" }, | 119 | { "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" }, |
120 | { "day","Tag" }, | 120 | { "day","Tag" }, |
121 | { "Dec","Dez" }, | 121 | { "Dec","Dez" }, |
122 | { "December","Dezember" }, | 122 | { "December","Dezember" }, |
123 | { "Default alarm time:","Standard Alarmzeit:" }, | 123 | { "Default alarm time:","Standard Alarmzeit:" }, |
124 | { "Default appointment time:","Standard Termin Startzeit:" }, | 124 | { "Default appointment time:","Standard Termin Startzeit:" }, |
125 | { "Default event color:","Standard Terminfarbe:" }, | 125 | { "Default event color:","Standard Terminfarbe:" }, |
126 | { "Default","Standard" }, | 126 | { "Default","Standard" }, |
127 | { "Def. duration of new app.:","Standard Termin Länge:" }, | 127 | { "Def. duration of new app.:","Standard Termin Länge:" }, |
128 | { "Delete all completed To-Dos?","Alle bereits erledigten Todos löschen?" }, | 128 | { "Delete all completed To-Dos?","Alle bereits erledigten Todos löschen?" }, |
129 | { "Delete All","Lösche alles" }, | 129 | { "Delete All","Lösche alles" }, |
130 | { "Delete all selected","Lösche alle Selektierten" }, | 130 | { "Delete all selected","Lösche alle Selektierten" }, |
131 | { "Delete Current","Aktuellen löschen" }, | 131 | { "Delete Current","Aktuellen löschen" }, |
132 | { "Delete Event...","Lösche Termin..." }, | 132 | { "Delete Event...","Lösche Termin..." }, |
133 | { "Delete Event","Lösche Termin" }, | 133 | { "Delete Event","Lösche Termin" }, |
134 | { "&Delete","Löschen" }, | 134 | { "&Delete","Löschen" }, |
135 | { "Delete...","Löschen..." }, | 135 | { "Delete...","Löschen..." }, |
136 | { "Delete","Löschen" }, | 136 | { "Delete","Löschen" }, |
137 | { "Delete Todo...","Lösche Todo..." }, | 137 | { "Delete Todo...","Lösche Todo..." }, |
138 | { "Delete To-Do","Lösche Todo" }, | 138 | { "Delete To-Do","Lösche Todo" }, |
139 | { "Deleting item %d ...","Lösche Eintrag %d..." }, | 139 | { "Deleting item %d ...","Lösche Eintrag %d..." }, |
140 | { "Descriptions","Beschreibungen" }, | 140 | { "Descriptions","Beschreibungen" }, |
141 | { "Deselect All","Deselektiere Alle" }, | 141 | { "Deselect all","Deselektiere Alle" }, |
142 | { "Details","Details" }, | 142 | { "Details","Details" }, |
143 | { "Dinner","Abendessen" }, | 143 | { "Dinner","Abendessen" }, |
144 | { "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, | 144 | { "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, |
145 | { "Due Date","Fällig am" }, | 145 | { "Due Date","Fällig am" }, |
146 | { "Due: ","Fällig: "}, | 146 | { "Due: ","Fällig: "}, |
147 | { "Due Time","Fällig um" }, | 147 | { "Due Time","Fällig um" }, |
148 | { "Due:","Fällig:"}, | 148 | { "Due:","Fällig:"}, |
149 | { "Duration: ","Dauer: " }, | 149 | { "Duration: ","Dauer: " }, |
150 | { "Edit...","Bearbeite..." }, | 150 | { "Edit...","Bearbeite..." }, |
151 | { "Edit","Bearbeite" }, | 151 | { "Edit","Bearbeite" }, |
152 | { "Edit Event...","Bearbeite Termin..." }, | 152 | { "Edit Event...","Bearbeite Termin..." }, |
153 | { "Edit Event","Bearbeite Termin" }, | 153 | { "Edit Event","Bearbeite Termin" }, |
154 | { "Edit exceptions","Bearbeite Ausnahmen" }, | 154 | { "Edit exceptions","Bearbeite Ausnahmen" }, |
155 | { "EditorBox:","Editor Fenster:" }, | 155 | { "EditorBox:","Editor Fenster:" }, |
156 | { "Edit Recurrence Range","Bearbeite Wiederholung" }, | 156 | { "Edit Recurrence Range","Bearbeite Wiederholung" }, |
157 | { "Edit Todo...","Berabeite Todo..." }, | 157 | { "Edit Todo...","Berabeite Todo..." }, |
158 | { "Edit To-Do","Todo bearbeiten" }, | 158 | { "Edit To-Do","Todo bearbeiten" }, |
159 | { "E&mail address:","E&mail Adresse:" }, | 159 | { "E&mail address:","E&mail Adresse:" }, |
160 | { "(EmptyEmail)","(KeineEmail)" }, | 160 | { "(EmptyEmail)","(KeineEmail)" }, |
161 | { "(EmptyName)","(KeinName)" }, | 161 | { "(EmptyName)","(KeinName)" }, |
162 | { "Enable Recurrence","Wiederholender Termin" }, | 162 | { "Enable Recurrence","Wiederholender Termin" }, |
163 | { "End after","Endet nach"}, | 163 | { "End after","Endet nach"}, |
164 | { "End by:","Endet am"}, | 164 | { "End by:","Endet am"}, |
165 | { "End Date","End Datum" }, | 165 | { "End Date","End Datum" }, |
166 | { "End:","Ende:" }, | 166 | { "End:","Ende:" }, |
167 | { "End Time","End Zeit" }, | 167 | { "End Time","End Zeit" }, |
168 | { "English","Englisch" }, | 168 | { "English","Englisch" }, |
169 | { "Event","Termin" }, | 169 | { "Event","Termin" }, |
170 | { "Event list","Termin Liste" }, | 170 | { "Event list","Termin Liste" }, |
171 | { "Events","Termine" }, | 171 | { "Events","Termine" }, |
172 | { "Event Viewer:","Termin Übersicht:" }, | 172 | { "Event Viewer:","Termin Übersicht:" }, |
173 | { "every","jede" }, | 173 | { "every","jede" }, |
174 | { "Exceptions...","Ausnahmen..." }, | 174 | { "Exceptions...","Ausnahmen..." }, |
175 | { "Exceptions","Ausnahmen" }, | 175 | { "Exceptions","Ausnahmen" }, |
176 | { "Exclude holidays","Ohne freie Tage" }, | 176 | { "Exclude holidays","Ohne freie Tage" }, |
177 | { "Exclude Saturdays","Ohne Samstage" }, | 177 | { "Exclude Saturdays","Ohne Samstage" }, |
178 | { "Feb","Feb" }, | 178 | { "Feb","Feb" }, |
179 | { "February","Februar" }, | 179 | { "February","Februar" }, |
180 | { "&Find","Suche!" }, | 180 | { "&Find","Suche!" }, |
181 | { "Fonts","Schriftart" }, | 181 | { "Fonts","Schriftart" }, |
182 | { "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" }, | 182 | { "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" }, |
183 | { "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"}, | 183 | { "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"}, |
184 | { "Free","Frei" }, | 184 | { "Free","Frei" }, |
185 | { "Friday","Freitag" }, | 185 | { "Friday","Freitag" }, |
186 | { "Fri","Fr" }, | 186 | { "Fri","Fr" }, |
187 | { "From:","Vom:" }, | 187 | { "From:","Vom:" }, |
188 | { "Full &name:","Vor- und &Nachname:" }, | 188 | { "Full &name:","Vor- und &Nachname:" }, |
189 | { "General","Allgemein" }, | 189 | { "General","Allgemein" }, |
190 | { "German","Deutsch" }, | 190 | { "German","Deutsch" }, |
191 | { "Gifts","Geschenke" }, | 191 | { "Gifts","Geschenke" }, |
192 | { "Go to Today","Heute anzeigen" }, | 192 | { "Go to Today","Heute anzeigen" }, |
193 | { "Help","Hilfe" }, | 193 | { "Help","Hilfe" }, |
194 | { "Hide Dates","Daten ausblenden" }, | 194 | { "Hide Dates","Daten ausblenden" }, |
195 | { "Highlight color:","Markierungen:" }, | 195 | { "Highlight color:","Markierungen:" }, |
196 | { "Holiday color:","Freie Tage:" }, | 196 | { "Holiday color:","Freie Tage:" }, |
197 | { "hour(s)","Stunde(n)" }, | 197 | { "hour(s)","Stunde(n)" }, |
198 | { "In %1 days: ","In %1 Tagen: " }, | 198 | { "In %1 days: ","In %1 Tagen: " }, |
199 | { "Incomplete Todo:","Unerledigte Aufgaben:" }, | 199 | { "Incomplete Todo:","Unerledigte Aufgaben:" }, |
200 | { "Information","Information" }, | 200 | { "Information","Information" }, |
201 | { "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" }, | 201 | { "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" }, |
202 | { "Jan","Jan" }, | 202 | { "Jan","Jan" }, |
203 | { "January","Januar" }, | 203 | { "January","Januar" }, |
204 | { "JournalView:","Journal Ansicht:" }, | 204 | { "JournalView:","Journal Ansicht:" }, |
205 | { "Journals","Journale" }, | 205 | { "Journals","Journale" }, |
206 | { "Jul","Jul" }, | 206 | { "Jul","Jul" }, |
207 | { "July","Juli" }, | 207 | { "July","Juli" }, |
208 | { "Jump to date","Springe zum Datum" }, | 208 | { "Jump to date","Springe zum Datum" }, |
209 | { "June","Juni" }, | 209 | { "June","Juni" }, |
210 | { "Jun","Jun" }, | 210 | { "Jun","Jun" }, |
211 | { "Key Bindings...","Tastenzuordnung..." }, | 211 | { "Key Bindings...","Tastenzuordnung..." }, |
212 | { "Kids","Kinder" }, | 212 | { "Kids","Kinder" }, |
213 | { "Known Problems...","Bekannte Probleme..." }, | 213 | { "Known Problems...","Bekannte Probleme..." }, |
214 | { "KO/Pi Find ","KO/Pi Suchdialog " }, | 214 | { "KO/Pi Find ","KO/Pi Suchdialog " }, |
215 | { "KO/Pi Find: ","KO/Pi Suchen: " }, | 215 | { "KO/Pi Find: ","KO/Pi Suchen: " }, |
216 | { "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." }, | 216 | { "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." }, |
217 | { "Language:(needs restart)","Sprache (Neustart!)" }, | 217 | { "Language:(needs restart)","Sprache (Neustart!)" }, |
218 | { "Language:","Sprache" }, | 218 | { "Language:","Sprache" }, |
219 | { "Large","Etwas mehr" }, | 219 | { "Large","Etwas mehr" }, |
220 | { "List View:","Listenansicht:" }, | 220 | { "List View:","Listenansicht:" }, |
221 | { "List View","Listenansicht" }, | 221 | { "List View","Listenansicht" }, |
222 | { "Load/Save","Laden/Speichern" }, | 222 | { "Load/Save","Laden/Speichern" }, |
223 | { "Load Template","Lade Vorlage" }, | 223 | { "Load Template","Lade Vorlage" }, |
224 | { "Locale","Localisation" }, | 224 | { "Locale","Localisation" }, |
225 | { "Local temp file:","Lokale temp. Datei:" }, | 225 | { "Local temp file:","Lokale temp. Datei:" }, |
226 | { "Location: ","Ort: " }, | 226 | { "Location: ","Ort: " }, |
227 | { "Location:","Ort:" }, | 227 | { "Location:","Ort:" }, |
228 | { "Mail client","Mail Programm" }, | 228 | { "Mail client","Mail Programm" }, |
229 | { "Mail Client","Mail Programm" }, | 229 | { "Mail Client","Mail Programm" }, |
230 | { "March","März" }, | 230 | { "March","März" }, |
231 | { "Mar","Mär" }, | 231 | { "Mar","Mär" }, |
232 | { "May","Mai" }, | 232 | { "May","Mai" }, |
233 | { "M. Bains line:","M. Bains Linie:" }, | 233 | { "M. Bains line:","M. Bains Linie:" }, |
234 | { "Medium","Medium" }, | 234 | { "Medium","Medium" }, |
235 | { "Method","Methode" }, | 235 | { "Method","Methode" }, |
236 | { "minute(s)","Minute(n)" }, | 236 | { "minute(s)","Minute(n)" }, |
237 | { "Monday","Montag" }, | 237 | { "Monday","Montag" }, |
@@ -1114,99 +1114,103 @@ | |||
1114 | { "Form2","Form2" }, | 1114 | { "Form2","Form2" }, |
1115 | { "Filter enabled","Filter angeschaltet" }, | 1115 | { "Filter enabled","Filter angeschaltet" }, |
1116 | { "Edit Filters","Ändere Filter" }, | 1116 | { "Edit Filters","Ändere Filter" }, |
1117 | { "Print What's Next View...","Drucke What's Next Ansicht..." }, | 1117 | { "Print What's Next View...","Drucke What's Next Ansicht..." }, |
1118 | { "Agenda","Agenda" }, | 1118 | { "Agenda","Agenda" }, |
1119 | { " ("," (" }, | 1119 | { " ("," (" }, |
1120 | { "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" }, | 1120 | { "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" }, |
1121 | { "Print","Print" }, | 1121 | { "Print","Print" }, |
1122 | { "&Setup Printer...","Drucker &Setup..." }, | 1122 | { "&Setup Printer...","Drucker &Setup..." }, |
1123 | { "View Type","Zeige Typ" }, | 1123 | { "View Type","Zeige Typ" }, |
1124 | { "Page &orientation:","Seiten Ausrichtung:" }, | 1124 | { "Page &orientation:","Seiten Ausrichtung:" }, |
1125 | { "Use Default of Selected Style","Default des selektierten Stils" }, | 1125 | { "Use Default of Selected Style","Default des selektierten Stils" }, |
1126 | { "Use Default Setting of Printer","Default Einstellung des Druckers" }, | 1126 | { "Use Default Setting of Printer","Default Einstellung des Druckers" }, |
1127 | { "Portrait","Portrait" }, | 1127 | { "Portrait","Portrait" }, |
1128 | { "Landscape","Landschaft" }, | 1128 | { "Landscape","Landschaft" }, |
1129 | { "Print day","Drucke Tag" }, | 1129 | { "Print day","Drucke Tag" }, |
1130 | { "CalPrintDay_Base","CalPrintDay_Base" }, | 1130 | { "CalPrintDay_Base","CalPrintDay_Base" }, |
1131 | { "Date && Time Range","Datum && Zeitspanne" }, | 1131 | { "Date && Time Range","Datum && Zeitspanne" }, |
1132 | { "&End date:","&Enddatum:" }, | 1132 | { "&End date:","&Enddatum:" }, |
1133 | { "&Start date:","&Startdatum:" }, | 1133 | { "&Start date:","&Startdatum:" }, |
1134 | { "Start &time:","Startzeit:" }, | 1134 | { "Start &time:","Startzeit:" }, |
1135 | { "End ti&me:","Endzeit:" }, | 1135 | { "End ti&me:","Endzeit:" }, |
1136 | { "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" }, | 1136 | { "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" }, |
1137 | { "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" }, | 1137 | { "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" }, |
1138 | { "Alt+D","Alt+D" }, | 1138 | { "Alt+D","Alt+D" }, |
1139 | { "&Use colors","Nutze Farben" }, | 1139 | { "&Use colors","Nutze Farben" }, |
1140 | { "Alt+U","Alt+U" }, | 1140 | { "Alt+U","Alt+U" }, |
1141 | { "Print week","Drucke Woche" }, | 1141 | { "Print week","Drucke Woche" }, |
1142 | { "CalPrintWeek_Base","CalPrintWeek_Base" }, | 1142 | { "CalPrintWeek_Base","CalPrintWeek_Base" }, |
1143 | { "Use &colors","Nutze Farben" }, | 1143 | { "Use &colors","Nutze Farben" }, |
1144 | { "Type of View","Typ der Ansicht" }, | 1144 | { "Type of View","Typ der Ansicht" }, |
1145 | { "Print as &Filofax page","Drucke als &Filofax Seite" }, | 1145 | { "Print as &Filofax page","Drucke als &Filofax Seite" }, |
1146 | { "Alt+F","Alt+F" }, | 1146 | { "Alt+F","Alt+F" }, |
1147 | { "Print as &timetable view:","Drucke als Zeittabelle:" }, | 1147 | { "Print as &timetable view:","Drucke als Zeittabelle:" }, |
1148 | { "Alt+T","Alt+T" }, | 1148 | { "Alt+T","Alt+T" }, |
1149 | { "Print as split week view","Drucke als gesplittete Wochenansicht" }, | 1149 | { "Print as split week view","Drucke als gesplittete Wochenansicht" }, |
1150 | { "Print month","Drucke Monat" }, | 1150 | { "Print month","Drucke Monat" }, |
1151 | { "CalPrintMonth_Base","CalPrintMonth_Base" }, | 1151 | { "CalPrintMonth_Base","CalPrintMonth_Base" }, |
1152 | { "&Start month:","&Startmonat:" }, | 1152 | { "&Start month:","&Startmonat:" }, |
1153 | { "&End month:","&Endmonat:" }, | 1153 | { "&End month:","&Endmonat:" }, |
1154 | { "Print week &numbers","Drucke Wochen Nummer(n)" }, | 1154 | { "Print week &numbers","Drucke Wochen Nummer(n)" }, |
1155 | { "Print todos","Drucke Todos" }, | 1155 | { "Print todos","Drucke Todos" }, |
1156 | { "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" }, | 1156 | { "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" }, |
1157 | { "Include &description of the item","Inclusive Itembeschreibung" }, | 1157 | { "Include &description of the item","Inclusive Itembeschreibung" }, |
1158 | { "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" }, | 1158 | { "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" }, |
1159 | { "Include &priority of the item","Inclusive Priorität des Items" }, | 1159 | { "Include &priority of the item","Inclusive Priorität des Items" }, |
1160 | { "Items to Print","Zu druckende Items" }, | 1160 | { "Items to Print","Zu druckende Items" }, |
1161 | { "&From:","Von:" }, | 1161 | { "&From:","Von:" }, |
1162 | { "&To:","Bis:" }, | 1162 | { "&To:","Bis:" }, |
1163 | { "Print &all todo items","Drucke alle Todo Items" }, | 1163 | { "Print &all todo items","Drucke alle Todo Items" }, |
1164 | { "Print only &uncompleted items","Drucke nur nicht erledigte Todos" }, | 1164 | { "Print only &uncompleted items","Drucke nur nicht erledigte Todos" }, |
1165 | { "Only items due in the &range:","Nur Items in dem Zeitraum:" }, | 1165 | { "Only items due in the &range:","Nur Items in dem Zeitraum:" }, |
1166 | { "Todo List","Todo Liste" }, | 1166 | { "Todo List","Todo Liste" }, |
1167 | { "&Title:","&Titel:" }, | 1167 | { "&Title:","&Titel:" }, |
1168 | { "Co&nnect subtodos with its parent","Verbinde Unter-Todos mit ihren Ober-Todos" }, | 1168 | { "Co&nnect subtodos with its parent","Verbinde Unter-Todos mit ihren Ober-Todos" }, |
1169 | { "Todo list","Todo Liste" }, | 1169 | { "Todo list","Todo Liste" }, |
1170 | { "&Print...","Drucke..." }, | 1170 | { "&Print...","Drucke..." }, |
1171 | { "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" }, | 1171 | { "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" }, |
1172 | { "[Unconfigured]","[Unkonfiguriert]" }, | 1172 | { "[Unconfigured]","[Unkonfiguriert]" }, |
1173 | { "OK","OK" }, | 1173 | { "OK","OK" }, |
1174 | { "FilterEditor","FilterEditor" }, | 1174 | { "FilterEditor","FilterEditor" }, |
1175 | { "Include","Inclusive" }, | 1175 | { "Include","Inclusive" }, |
1176 | { "Exclude","Exclusive" }, | 1176 | { "Exclude","Exclusive" }, |
1177 | { "Edit Selection...","Editiere Auswahl" }, | 1177 | { "Edit Selection...","Editiere Auswahl" }, |
1178 | { "recurring events","wiederholende Termine" }, | 1178 | { "recurring events","wiederholende Termine" }, |
1179 | { "recurr. events","wiederh.Termine" }, | 1179 | { "recurr. events","wiederh.Termine" }, |
1180 | { "completed to-dos","erledigte Todos" }, | 1180 | { "completed to-dos","erledigte Todos" }, |
1181 | { "events","Termine" }, | 1181 | { "events","Termine" }, |
1182 | { "todos","Todos" }, | 1182 | { "todos","Todos" }, |
1183 | { "journals","Journale" }, | 1183 | { "journals","Journale" }, |
1184 | { "public","öffentl." }, | 1184 | { "public","öffentl." }, |
1185 | { "private","privat" }, | 1185 | { "private","privat" }, |
1186 | { "confidential","vertraul." }, | 1186 | { "confidential","vertraul." }, |
1187 | { "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Unter-Todos.\nAlle erledigten Unter-Todos\nwerden auch gelöscht!" }, | 1187 | { "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Unter-Todos.\nAlle erledigten Unter-Todos\nwerden auch gelöscht!" }, |
1188 | { "Yesterday","Gestern" }, | 1188 | { "Yesterday","Gestern" }, |
1189 | { "Day after tomorrow","Übermorgen" }, | 1189 | { "Day after tomorrow","Übermorgen" }, |
1190 | { "Tomorrow","Morgen" }, | 1190 | { "Tomorrow","Morgen" }, |
1191 | { "Day before yesterday","Vorgestern" }, | 1191 | { "Day before yesterday","Vorgestern" }, |
1192 | { "Size %1","Größe %1" }, | 1192 | { "Size %1","Größe %1" }, |
1193 | { "New Agendasize: %1","Neue Agendagröße: %1" }, | 1193 | { "New Agendasize: %1","Neue Agendagröße: %1" }, |
1194 | { " (%1 y.)"," (%1 J.)" }, | 1194 | { " (%1 y.)"," (%1 J.)" }, |
1195 | { "Allday:","Ganztägig:" }, | 1195 | { "Allday:","Ganztägig:" }, |
1196 | { "compl.todos","erled.Todos" }, | 1196 | { "compl.todos","erled.Todos" }, |
1197 | { "Day view","Tagesansicht" }, | 1197 | { "Day view","Tagesansicht" }, |
1198 | { "Next days","Nächste Tage" }, | 1198 | { "Next days","Nächste Tage" }, |
1199 | { "Next week","Nächste Woche" }, | 1199 | { "Next week","Nächste Woche" }, |
1200 | { "Next two weeks","Nächste zwei Wochen" }, | 1200 | { "Next two weeks","Nächste zwei Wochen" }, |
1201 | { "Next month","Nächster Monat" }, | 1201 | { "Next month","Nächster Monat" }, |
1202 | { "Journal view","Journal" }, | 1202 | { "Journal view","Journal" }, |
1203 | { "Display all opened","Zeige alle geöffnet" }, | 1203 | { "Display all opened","Zeige alle geöffnet" }, |
1204 | { "Display all closed","Zeige alle geschlossen" }, | 1204 | { "Display all closed","Zeige alle geschlossen" }, |
1205 | { "Display all flat","Zeige alle flach" }, | 1205 | { "Display all flat","Zeige alle flach" }, |
1206 | { "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, | 1206 | { "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, |
1207 | { "Default todo done color:","Standard Todo erledigt Farbe" }, | 1207 | { "Default todo done color:","Standard Todo erledigt Farbe" }, |
1208 | { "Select week %1-%2","Selektiere Woche %1-%2" }, | 1208 | { "Select week %1-%2","Selektiere Woche %1-%2" }, |
1209 | { "Select Week","Selektiere Woche" }, | 1209 | { "Select Week","Selektiere Woche" }, |
1210 | { "Set alarm for selected...","Setze Alarm für Selekt..." }, | ||
1211 | { "Set reminder offset to:","Setze Alarm Offset auf:" }, | ||
1212 | { "Set Alarm!","Setze Alarm!" }, | ||
1213 | { "Canged alarm for %1 items","Alarm für %1 Items geändert" }, | ||
1210 | { "","" }, | 1214 | { "","" }, |
1211 | { "","" }, | 1215 | { "","" }, |
1212 | { "","" }, | 1216 | { "","" }, |
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index 732fc46..d4d9c0f 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp | |||
@@ -1,436 +1,509 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 1999 Preston Brown | 3 | Copyright (c) 1999 Preston Brown |
4 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> | 4 | Copyright (c) 2000,2001 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 | 24 | ||
25 | #include <qlistview.h> | 25 | #include <qlistview.h> |
26 | #include <qlayout.h> | 26 | #include <qlayout.h> |
27 | #include <qlabel.h> | 27 | #include <qlabel.h> |
28 | #include <qpopupmenu.h> | 28 | #include <qpopupmenu.h> |
29 | #include <qprogressbar.h> | 29 | #include <qprogressbar.h> |
30 | #include <qfileinfo.h> | 30 | #include <qfileinfo.h> |
31 | #include <qmessagebox.h> | 31 | #include <qmessagebox.h> |
32 | #include <qdialog.h> | 32 | #include <qdialog.h> |
33 | #include <qtextstream.h> | 33 | #include <qtextstream.h> |
34 | #include <qdir.h> | 34 | #include <qdir.h> |
35 | #include <qwhatsthis.h> | 35 | #include <qwhatsthis.h> |
36 | #include <qregexp.h> | 36 | #include <qregexp.h> |
37 | 37 | ||
38 | #include <klocale.h> | 38 | #include <klocale.h> |
39 | #include <kdebug.h> | 39 | #include <kdebug.h> |
40 | #include <kiconloader.h> | 40 | #include <kiconloader.h> |
41 | #include <kglobal.h> | 41 | #include <kglobal.h> |
42 | 42 | ||
43 | #include <libkdepim/kpimglobalprefs.h> | 43 | #include <libkdepim/kpimglobalprefs.h> |
44 | #include <libkcal/calendar.h> | 44 | #include <libkcal/calendar.h> |
45 | #include <libkcal/calendarlocal.h> | 45 | #include <libkcal/calendarlocal.h> |
46 | #include <libkcal/icalformat.h> | 46 | #include <libkcal/icalformat.h> |
47 | #include <libkcal/vcalformat.h> | 47 | #include <libkcal/vcalformat.h> |
48 | #include <libkcal/recurrence.h> | 48 | #include <libkcal/recurrence.h> |
49 | #include <libkcal/filestorage.h> | 49 | #include <libkcal/filestorage.h> |
50 | #include <libkdepim/categoryselectdialog.h> | 50 | #include <libkdepim/categoryselectdialog.h> |
51 | #include <libkcal/kincidenceformatter.h> | 51 | #include <libkcal/kincidenceformatter.h> |
52 | #ifndef DESKTOP_VERSION | 52 | #ifndef DESKTOP_VERSION |
53 | #include <qpe/qpeapplication.h> | 53 | #include <qpe/qpeapplication.h> |
54 | #else | 54 | #else |
55 | #include <qapplication.h> | 55 | #include <qapplication.h> |
56 | #endif | 56 | #endif |
57 | 57 | ||
58 | #ifndef KORG_NOPRINTER | 58 | #ifndef KORG_NOPRINTER |
59 | #include "calprinter.h" | 59 | #include "calprinter.h" |
60 | #endif | 60 | #endif |
61 | #include "koglobals.h" | 61 | #include "koglobals.h" |
62 | #include "koprefs.h" | 62 | #include "koprefs.h" |
63 | #include "kfiledialog.h" | 63 | #include "kfiledialog.h" |
64 | 64 | ||
65 | #include "kolistview.h" | 65 | #include "kolistview.h" |
66 | 66 | ||
67 | 67 | ||
68 | |||
69 | |||
68 | class KOListViewWhatsThis :public QWhatsThis | 70 | class KOListViewWhatsThis :public QWhatsThis |
69 | { | 71 | { |
70 | public: | 72 | public: |
71 | KOListViewWhatsThis( QWidget *wid, KOListView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; | 73 | KOListViewWhatsThis( QWidget *wid, KOListView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; |
72 | 74 | ||
73 | protected: | 75 | protected: |
74 | virtual QString text( const QPoint& p) | 76 | virtual QString text( const QPoint& p) |
75 | { | 77 | { |
76 | return _view->getWhatsThisText(p) ; | 78 | return _view->getWhatsThisText(p) ; |
77 | } | 79 | } |
78 | private: | 80 | private: |
79 | QWidget* _wid; | 81 | QWidget* _wid; |
80 | KOListView * _view; | 82 | KOListView * _view; |
81 | }; | 83 | }; |
82 | 84 | ||
83 | 85 | ||
84 | ListItemVisitor::ListItemVisitor(KOListViewItem *item, QDate date ) | 86 | ListItemVisitor::ListItemVisitor(KOListViewItem *item, QDate date ) |
85 | { | 87 | { |
86 | mItem = item; | 88 | mItem = item; |
87 | mDate = date; | 89 | mDate = date; |
88 | } | 90 | } |
89 | 91 | ||
90 | ListItemVisitor::~ListItemVisitor() | 92 | ListItemVisitor::~ListItemVisitor() |
91 | { | 93 | { |
92 | } | 94 | } |
93 | 95 | ||
94 | bool ListItemVisitor::visit(Event *e) | 96 | bool ListItemVisitor::visit(Event *e) |
95 | { | 97 | { |
96 | 98 | ||
97 | bool ok = false; | 99 | bool ok = false; |
98 | QString start, end; | 100 | QString start, end; |
99 | QDate ds, de; | 101 | QDate ds, de; |
100 | if ( e->doesRecur() ) { | 102 | if ( e->doesRecur() ) { |
101 | ds = e->getNextOccurence( QDateTime( mDate, QTime(0,0,0)), &ok ).date(); | 103 | ds = e->getNextOccurence( QDateTime( mDate, QTime(0,0,0)), &ok ).date(); |
102 | if ( ok ) { | 104 | if ( ok ) { |
103 | int days = e->dtStart().date().daysTo(e->dtEnd().date() ); | 105 | int days = e->dtStart().date().daysTo(e->dtEnd().date() ); |
104 | start = KGlobal::locale()->formatDate(ds,true); | 106 | start = KGlobal::locale()->formatDate(ds,true); |
105 | de = ds.addDays( days); | 107 | de = ds.addDays( days); |
106 | end = KGlobal::locale()->formatDate(de,true); | 108 | end = KGlobal::locale()->formatDate(de,true); |
107 | } | 109 | } |
108 | 110 | ||
109 | } | 111 | } |
110 | if ( ! ok ) { | 112 | if ( ! ok ) { |
111 | start =e->dtStartDateStr(); | 113 | start =e->dtStartDateStr(); |
112 | end = e->dtEndDateStr(); | 114 | end = e->dtEndDateStr(); |
113 | ds = e->dtStart().date(); | 115 | ds = e->dtStart().date(); |
114 | de = e->dtEnd().date(); | 116 | de = e->dtEnd().date(); |
115 | } | 117 | } |
116 | mItem->setText(0,e->summary()); | 118 | mItem->setText(0,e->summary()); |
117 | mItem->setText(1,start); | 119 | mItem->setText(1,start); |
118 | mItem->setText(2,e->dtStartTimeStr()); | 120 | mItem->setText(2,e->dtStartTimeStr()); |
119 | mItem->setText(3,end); | 121 | mItem->setText(3,end); |
120 | mItem->setText(4,e->dtEndTimeStr()); | 122 | mItem->setText(4,e->dtEndTimeStr()); |
121 | mItem->setText(5,e->isAlarmEnabled() ? i18n("Yes") : i18n("No")); | 123 | mItem->setText(5,e->isAlarmEnabled() ? i18n("Yes") : i18n("No")); |
122 | mItem->setText(6, e->recurrence()->recurrenceText()); | 124 | mItem->setText(6, e->recurrence()->recurrenceText()); |
123 | mItem->setText(7,"---"); | 125 | mItem->setText(7,"---"); |
124 | mItem->setText(8,"---"); | 126 | mItem->setText(8,"---"); |
125 | mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No")); | 127 | mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No")); |
126 | mItem->setText(10,e->categoriesStr()); | 128 | mItem->setText(10,e->categoriesStr()); |
127 | 129 | ||
128 | QString key; | 130 | QString key; |
129 | QTime t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); | 131 | QTime t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); |
130 | key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute()); | 132 | key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute()); |
131 | mItem->setSortKey(1,key); | 133 | mItem->setSortKey(1,key); |
132 | 134 | ||
133 | t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time(); | 135 | t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time(); |
134 | key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute()); | 136 | key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute()); |
135 | mItem->setSortKey(3,key); | 137 | mItem->setSortKey(3,key); |
136 | 138 | ||
137 | return true; | 139 | return true; |
138 | } | 140 | } |
139 | 141 | ||
140 | bool ListItemVisitor::visit(Todo *t) | 142 | bool ListItemVisitor::visit(Todo *t) |
141 | { | 143 | { |
142 | mItem->setText(0,i18n("To-Do: %1").arg(t->summary())); | 144 | mItem->setText(0,i18n("To-Do: %1").arg(t->summary())); |
143 | if (t->hasStartDate()) { | 145 | if (t->hasStartDate()) { |
144 | mItem->setText(1,t->dtStartDateStr()); | 146 | mItem->setText(1,t->dtStartDateStr()); |
145 | if (t->doesFloat()) { | 147 | if (t->doesFloat()) { |
146 | mItem->setText(2,"---"); | 148 | mItem->setText(2,"---"); |
147 | } else { | 149 | } else { |
148 | mItem->setText(2,t->dtStartTimeStr()); | 150 | mItem->setText(2,t->dtStartTimeStr()); |
149 | } | 151 | } |
150 | } else { | 152 | } else { |
151 | mItem->setText(1,"---"); | 153 | mItem->setText(1,"---"); |
152 | mItem->setText(2,"---"); | 154 | mItem->setText(2,"---"); |
153 | } | 155 | } |
154 | mItem->setText(3,"---"); | 156 | mItem->setText(3,"---"); |
155 | mItem->setText(4,"---"); | 157 | mItem->setText(4,"---"); |
156 | mItem->setText(5,t->isAlarmEnabled() ? i18n("Yes") : i18n("No")); | 158 | mItem->setText(5,t->isAlarmEnabled() ? i18n("Yes") : i18n("No")); |
157 | mItem->setText(6,"---"); | 159 | mItem->setText(6,"---"); |
158 | if (t->hasDueDate()) { | 160 | if (t->hasDueDate()) { |
159 | mItem->setText(7,t->dtDueDateStr()); | 161 | mItem->setText(7,t->dtDueDateStr()); |
160 | if (t->doesFloat()) { | 162 | if (t->doesFloat()) { |
161 | mItem->setText(8,"---"); | 163 | mItem->setText(8,"---"); |
162 | } else { | 164 | } else { |
163 | mItem->setText(8,t->dtDueTimeStr()); | 165 | mItem->setText(8,t->dtDueTimeStr()); |
164 | } | 166 | } |
165 | } else { | 167 | } else { |
166 | mItem->setText(7,"---"); | 168 | mItem->setText(7,"---"); |
167 | mItem->setText(8,"---"); | 169 | mItem->setText(8,"---"); |
168 | } | 170 | } |
169 | mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No")); | 171 | mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No")); |
170 | mItem->setText(10,t->categoriesStr()); | 172 | mItem->setText(10,t->categoriesStr()); |
171 | 173 | ||
172 | QString key; | 174 | QString key; |
173 | QDate d; | 175 | QDate d; |
174 | if (t->hasDueDate()) { | 176 | if (t->hasDueDate()) { |
175 | d = t->dtDue().date(); | 177 | d = t->dtDue().date(); |
176 | QTime tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time(); | 178 | QTime tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time(); |
177 | key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); | 179 | key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); |
178 | mItem->setSortKey(7,key); | 180 | mItem->setSortKey(7,key); |
179 | } | 181 | } |
180 | if ( t->hasStartDate() ) { | 182 | if ( t->hasStartDate() ) { |
181 | d = t->dtStart().date(); | 183 | d = t->dtStart().date(); |
182 | QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); | 184 | QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); |
183 | key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); | 185 | key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); |
184 | mItem->setSortKey(1,key); | 186 | mItem->setSortKey(1,key); |
185 | } | 187 | } |
186 | return true; | 188 | return true; |
187 | } | 189 | } |
188 | 190 | ||
189 | bool ListItemVisitor::visit(Journal * j) | 191 | bool ListItemVisitor::visit(Journal * j) |
190 | { | 192 | { |
191 | QString des = j->description().left(50); | 193 | QString des = j->description().left(50); |
192 | des = des.simplifyWhiteSpace (); | 194 | des = des.simplifyWhiteSpace (); |
193 | des.replace (QRegExp ("\\n"),"" ); | 195 | des.replace (QRegExp ("\\n"),"" ); |
194 | des.replace (QRegExp ("\\r"),"" ); | 196 | des.replace (QRegExp ("\\r"),"" ); |
195 | mItem->setText(0,i18n("Journal")+": "+des.left(25)); | 197 | mItem->setText(0,i18n("Journal")+": "+des.left(25)); |
196 | mItem->setText(1,j->dtStartDateStr()); | 198 | mItem->setText(1,j->dtStartDateStr()); |
197 | mItem->setText(2,"---"); | 199 | mItem->setText(2,"---"); |
198 | mItem->setText(3,"---"); | 200 | mItem->setText(3,"---"); |
199 | mItem->setText(4,"---"); | 201 | mItem->setText(4,"---"); |
200 | mItem->setText(5,"---"); | 202 | mItem->setText(5,"---"); |
201 | mItem->setText(6,"---"); | 203 | mItem->setText(6,"---"); |
202 | mItem->setText(7,j->dtStartDateStr()); | 204 | mItem->setText(7,j->dtStartDateStr()); |
203 | mItem->setText(8,"---"); | 205 | mItem->setText(8,"---"); |
204 | mItem->setText(9,"---"); | 206 | mItem->setText(9,"---"); |
205 | mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) ); | 207 | mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) ); |
206 | 208 | ||
207 | QString key; | 209 | QString key; |
208 | QDate d = j->dtStart().date(); | 210 | QDate d = j->dtStart().date(); |
209 | key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | 211 | key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); |
210 | mItem->setSortKey(1,key); | 212 | mItem->setSortKey(1,key); |
211 | mItem->setSortKey(7,key); | 213 | mItem->setSortKey(7,key); |
212 | 214 | ||
213 | return true; | 215 | return true; |
214 | } | 216 | } |
215 | 217 | ||
216 | KOListView::KOListView(Calendar *calendar, QWidget *parent, | 218 | KOListView::KOListView(Calendar *calendar, QWidget *parent, |
217 | const char *name) | 219 | const char *name) |
218 | : KOEventView(calendar, parent, name) | 220 | : KOEventView(calendar, parent, name) |
219 | { | 221 | { |
220 | mActiveItem = 0; | 222 | mActiveItem = 0; |
221 | mListView = new KOListViewListView(this); | 223 | mListView = new KOListViewListView(this); |
222 | mListView->addColumn(i18n("Summary")); | 224 | mListView->addColumn(i18n("Summary")); |
223 | mListView->addColumn(i18n("Start Date")); | 225 | mListView->addColumn(i18n("Start Date")); |
224 | mListView->addColumn(i18n("Start Time")); | 226 | mListView->addColumn(i18n("Start Time")); |
225 | mListView->addColumn(i18n("End Date")); | 227 | mListView->addColumn(i18n("End Date")); |
226 | mListView->addColumn(i18n("End Time")); | 228 | mListView->addColumn(i18n("End Time")); |
227 | mListView->addColumn(i18n("Alarm")); // alarm set? | 229 | mListView->addColumn(i18n("Alarm")); // alarm set? |
228 | mListView->addColumn(i18n("Recurs")); // recurs? | 230 | mListView->addColumn(i18n("Recurs")); // recurs? |
229 | mListView->addColumn(i18n("Due Date")); | 231 | mListView->addColumn(i18n("Due Date")); |
230 | mListView->addColumn(i18n("Due Time")); | 232 | mListView->addColumn(i18n("Due Time")); |
231 | mListView->addColumn(i18n("Cancelled")); | 233 | mListView->addColumn(i18n("Cancelled")); |
232 | mListView->addColumn(i18n("Categories")); | 234 | mListView->addColumn(i18n("Categories")); |
233 | 235 | ||
234 | mListView->setColumnAlignment(0,AlignLeft); | 236 | mListView->setColumnAlignment(0,AlignLeft); |
235 | mListView->setColumnAlignment(1,AlignLeft); | 237 | mListView->setColumnAlignment(1,AlignLeft); |
236 | mListView->setColumnAlignment(2,AlignHCenter); | 238 | mListView->setColumnAlignment(2,AlignHCenter); |
237 | mListView->setColumnAlignment(3,AlignLeft); | 239 | mListView->setColumnAlignment(3,AlignLeft); |
238 | mListView->setColumnAlignment(4,AlignHCenter); | 240 | mListView->setColumnAlignment(4,AlignHCenter); |
239 | mListView->setColumnAlignment(5,AlignLeft); | 241 | mListView->setColumnAlignment(5,AlignLeft); |
240 | mListView->setColumnAlignment(6,AlignLeft); | 242 | mListView->setColumnAlignment(6,AlignLeft); |
241 | mListView->setColumnAlignment(7,AlignLeft); | 243 | mListView->setColumnAlignment(7,AlignLeft); |
242 | mListView->setColumnAlignment(8,AlignLeft); | 244 | mListView->setColumnAlignment(8,AlignLeft); |
243 | mListView->setColumnAlignment(9,AlignLeft); | 245 | mListView->setColumnAlignment(9,AlignLeft); |
244 | mListView->setColumnAlignment(10,AlignLeft); | 246 | mListView->setColumnAlignment(10,AlignLeft); |
245 | mListView->setColumnWidthMode(10, QListView::Manual); | 247 | mListView->setColumnWidthMode(10, QListView::Manual); |
246 | new KOListViewWhatsThis(mListView->viewport(),this); | 248 | new KOListViewWhatsThis(mListView->viewport(),this); |
247 | 249 | ||
248 | int iii = 0; | 250 | int iii = 0; |
249 | for ( iii = 0; iii< 10 ; ++iii ) | 251 | for ( iii = 0; iii< 10 ; ++iii ) |
250 | mListView->setColumnWidthMode( iii, QListView::Manual ); | 252 | mListView->setColumnWidthMode( iii, QListView::Manual ); |
251 | 253 | ||
252 | QBoxLayout *layoutTop = new QVBoxLayout(this); | 254 | QBoxLayout *layoutTop = new QVBoxLayout(this); |
253 | layoutTop->addWidget(mListView); | 255 | layoutTop->addWidget(mListView); |
254 | mListView->setFont ( KOPrefs::instance()->mListViewFont ); | 256 | mListView->setFont ( KOPrefs::instance()->mListViewFont ); |
255 | mPopupMenu = eventPopup(); | 257 | mPopupMenu = eventPopup(); |
256 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 258 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
257 | i18n("Select all"),this, | 259 | i18n("Select all"),this, |
258 | SLOT(allSelection()),true); | 260 | SLOT(allSelection()),true); |
259 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 261 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
260 | i18n("Deselect All"),this, | 262 | i18n("Deselect all"),this, |
261 | SLOT(clearSelection()),true); | 263 | SLOT(clearSelection()),true); |
262 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 264 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
263 | i18n("Delete all selected"),this, | 265 | i18n("Delete all selected"),this, |
264 | SLOT(deleteAll()),true); | 266 | SLOT(deleteAll()),true); |
265 | mPopupMenu->insertSeparator(); | 267 | mPopupMenu->insertSeparator(); |
266 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 268 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
267 | i18n("Save selected to file..."),this, | 269 | i18n("Save selected to file..."),this, |
268 | SLOT(saveToFile()),true); | 270 | SLOT(saveToFile()),true); |
269 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 271 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
270 | i18n("Save Journal/Description..."),this, | 272 | i18n("Save Journal/Description..."),this, |
271 | SLOT(saveDescriptionToFile()),true); | 273 | SLOT(saveDescriptionToFile()),true); |
272 | mPopupMenu->insertSeparator(); | 274 | // mPopupMenu->insertSeparator(); |
273 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 275 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
274 | i18n("Add Categ. to selected..."),this, | 276 | i18n("Add Categ. to selected..."),this, |
275 | SLOT(addCat()),true); | 277 | SLOT(addCat()),true); |
276 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 278 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
277 | i18n("Set Categ. for selected..."),this, | 279 | i18n("Set Categ. for selected..."),this, |
278 | SLOT(setCat()),true); | 280 | SLOT(setCat()),true); |
279 | mPopupMenu->insertSeparator(); | 281 | //mPopupMenu->insertSeparator(); |
282 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | ||
283 | i18n("Set alarm for selected..."),this, | ||
284 | SLOT(setAlarm()),true); | ||
280 | 285 | ||
281 | 286 | ||
282 | #ifndef DESKTOP_VERSION | 287 | #ifndef DESKTOP_VERSION |
288 | mPopupMenu->insertSeparator(); | ||
283 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 289 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
284 | i18n("Beam selected via IR"),this, | 290 | i18n("Beam selected via IR"),this, |
285 | SLOT(beamSelected()),true); | 291 | SLOT(beamSelected()),true); |
286 | #endif | 292 | #endif |
287 | /* | 293 | /* |
288 | mPopupMenu = new QPopupMenu; | 294 | mPopupMenu = new QPopupMenu; |
289 | mPopupMenu->insertItem(i18n("Edit Event"), this, | 295 | mPopupMenu->insertItem(i18n("Edit Event"), this, |
290 | SLOT (editEvent())); | 296 | SLOT (editEvent())); |
291 | mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this, | 297 | mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this, |
292 | SLOT (deleteEvent())); | 298 | SLOT (deleteEvent())); |
293 | mPopupMenu->insertSeparator(); | 299 | mPopupMenu->insertSeparator(); |
294 | mPopupMenu->insertItem(i18n("Show Dates"), this, | 300 | mPopupMenu->insertItem(i18n("Show Dates"), this, |
295 | SLOT(showDates())); | 301 | SLOT(showDates())); |
296 | mPopupMenu->insertItem(i18n("Hide Dates"), this, | 302 | mPopupMenu->insertItem(i18n("Hide Dates"), this, |
297 | SLOT(hideDates())); | 303 | SLOT(hideDates())); |
298 | */ | 304 | */ |
299 | QObject::connect(mListView,SIGNAL( newEvent()), | 305 | QObject::connect(mListView,SIGNAL( newEvent()), |
300 | this,SIGNAL(signalNewEvent())); | 306 | this,SIGNAL(signalNewEvent())); |
301 | QObject::connect(mListView,SIGNAL(doubleClicked(QListViewItem *)), | 307 | QObject::connect(mListView,SIGNAL(doubleClicked(QListViewItem *)), |
302 | this,SLOT(defaultItemAction(QListViewItem *))); | 308 | this,SLOT(defaultItemAction(QListViewItem *))); |
303 | QObject::connect(mListView,SIGNAL(rightButtonClicked ( QListViewItem *, | 309 | QObject::connect(mListView,SIGNAL(rightButtonClicked ( QListViewItem *, |
304 | const QPoint &, int )), | 310 | const QPoint &, int )), |
305 | this,SLOT(popupMenu(QListViewItem *,const QPoint &,int))); | 311 | this,SLOT(popupMenu(QListViewItem *,const QPoint &,int))); |
306 | QObject::connect(mListView,SIGNAL(currentChanged(QListViewItem *)), | 312 | QObject::connect(mListView,SIGNAL(currentChanged(QListViewItem *)), |
307 | SLOT(processSelectionChange(QListViewItem *))); | 313 | SLOT(processSelectionChange(QListViewItem *))); |
308 | QObject::connect(mListView,SIGNAL(showIncidence(Incidence *)), | 314 | QObject::connect(mListView,SIGNAL(showIncidence(Incidence *)), |
309 | SIGNAL(showIncidenceSignal(Incidence *)) ); | 315 | SIGNAL(showIncidenceSignal(Incidence *)) ); |
310 | 316 | ||
311 | readSettings(KOGlobals::config(),"KOListView Layout"); | 317 | readSettings(KOGlobals::config(),"KOListView Layout"); |
312 | } | 318 | } |
313 | 319 | ||
314 | KOListView::~KOListView() | 320 | KOListView::~KOListView() |
315 | { | 321 | { |
316 | delete mPopupMenu; | 322 | delete mPopupMenu; |
317 | } | 323 | } |
318 | QString KOListView::getWhatsThisText(QPoint p) | 324 | QString KOListView::getWhatsThisText(QPoint p) |
319 | { | 325 | { |
320 | KOListViewItem* item = ( KOListViewItem* ) mListView->itemAt( p ); | 326 | KOListViewItem* item = ( KOListViewItem* ) mListView->itemAt( p ); |
321 | if ( item ) | 327 | if ( item ) |
322 | return KIncidenceFormatter::instance()->getFormattedText( item->data() ); | 328 | return KIncidenceFormatter::instance()->getFormattedText( item->data() ); |
323 | return i18n("That is the list view" ); | 329 | return i18n("That is the list view" ); |
324 | 330 | ||
325 | } | 331 | } |
326 | 332 | ||
327 | void KOListView::updateList() | 333 | void KOListView::updateList() |
328 | { | 334 | { |
329 | // qDebug(" KOListView::updateList() "); | 335 | // qDebug(" KOListView::updateList() "); |
330 | 336 | ||
331 | } | 337 | } |
332 | 338 | ||
333 | void KOListView::addCat( ) | 339 | void KOListView::addCat( ) |
334 | { | 340 | { |
335 | setCategories( false ); | 341 | setCategories( false ); |
336 | } | 342 | } |
337 | void KOListView::setCat() | 343 | void KOListView::setCat() |
338 | { | 344 | { |
339 | setCategories( true ); | 345 | setCategories( true ); |
340 | } | 346 | } |
347 | void KOListView::setAlarm() | ||
348 | { | ||
349 | KOAlarmPrefs kap( this); | ||
350 | if ( !kap.exec() ) | ||
351 | return; | ||
352 | |||
353 | |||
354 | QStringList itemList; | ||
355 | QPtrList<KOListViewItem> sel ; | ||
356 | QListViewItem *qitem = mListView->firstChild (); | ||
357 | while ( qitem ) { | ||
358 | if ( qitem->isSelected() ) { | ||
359 | sel.append(((KOListViewItem *)qitem)); | ||
360 | } | ||
361 | qitem = qitem->nextSibling(); | ||
362 | } | ||
363 | int count = 0; | ||
364 | KOListViewItem * item, *temp; | ||
365 | item = sel.first(); | ||
366 | Incidence* inc; | ||
367 | while ( item ) { | ||
368 | inc = item->data(); | ||
369 | if ( inc->type() != "Journal" ) { | ||
370 | ++count; | ||
371 | if (kap.mAlarmButton->isChecked()) { | ||
372 | if (inc->alarms().count() == 0) | ||
373 | inc->newAlarm(); | ||
374 | QPtrList<Alarm> alarms = inc->alarms(); | ||
375 | Alarm *alarm; | ||
376 | for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { | ||
377 | alarm->setEnabled(true); | ||
378 | int j = kap.mAlarmTimeEdit->value()* -60; | ||
379 | if (kap.mAlarmIncrCombo->currentItem() == 1) | ||
380 | j = j * 60; | ||
381 | else if (kap.mAlarmIncrCombo->currentItem() == 2) | ||
382 | j = j * (60 * 24); | ||
383 | alarm->setStartOffset( j ); | ||
384 | |||
385 | if (!kap.mAlarmProgram.isEmpty() && kap.mAlarmProgramButton->isOn()) { | ||
386 | alarm->setProcedureAlarm(kap.mAlarmProgram); | ||
387 | } | ||
388 | else if (!kap.mAlarmSound.isEmpty() && kap.mAlarmSoundButton->isOn()) | ||
389 | alarm->setAudioAlarm(kap.mAlarmSound); | ||
390 | else | ||
391 | alarm->setType(Alarm::Invalid); | ||
392 | //alarm->setAudioAlarm("default"); | ||
393 | // TODO: Deal with multiple alarms | ||
394 | break; // For now, stop after the first alarm | ||
395 | } | ||
396 | } else { | ||
397 | Alarm* alarm = inc->alarms().first(); | ||
398 | if ( alarm ) { | ||
399 | alarm->setEnabled(false); | ||
400 | alarm->setType(Alarm::Invalid); | ||
401 | } | ||
402 | } | ||
403 | } | ||
404 | temp = item; | ||
405 | item = sel.next(); | ||
406 | mUidDict.remove( inc->uid() ); | ||
407 | delete temp;; | ||
408 | addIncidence( inc ); | ||
409 | } | ||
410 | topLevelWidget()->setCaption( i18n("Canged alarm for %1 items").arg( count ) ); | ||
411 | qDebug("KO: Set alarm for %d items", count); | ||
412 | calendar()->reInitAlarmSettings(); | ||
413 | } | ||
341 | void KOListView::setCategories( bool removeOld ) | 414 | void KOListView::setCategories( bool removeOld ) |
342 | { | 415 | { |
343 | 416 | ||
344 | KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); | 417 | KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); |
345 | if (! csd->exec()) { | 418 | if (! csd->exec()) { |
346 | delete csd; | 419 | delete csd; |
347 | return; | 420 | return; |
348 | } | 421 | } |
349 | QStringList catList = csd->selectedCategories(); | 422 | QStringList catList = csd->selectedCategories(); |
350 | delete csd; | 423 | delete csd; |
351 | // if ( catList.count() == 0 ) | 424 | // if ( catList.count() == 0 ) |
352 | // return; | 425 | // return; |
353 | catList.sort(); | 426 | catList.sort(); |
354 | QString categoriesStr = catList.join(","); | 427 | QString categoriesStr = catList.join(","); |
355 | int i; | 428 | int i; |
356 | QStringList itemList; | 429 | QStringList itemList; |
357 | QPtrList<KOListViewItem> sel ; | 430 | QPtrList<KOListViewItem> sel ; |
358 | QListViewItem *qitem = mListView->firstChild (); | 431 | QListViewItem *qitem = mListView->firstChild (); |
359 | while ( qitem ) { | 432 | while ( qitem ) { |
360 | if ( qitem->isSelected() ) { | 433 | if ( qitem->isSelected() ) { |
361 | sel.append(((KOListViewItem *)qitem)); | 434 | sel.append(((KOListViewItem *)qitem)); |
362 | } | 435 | } |
363 | qitem = qitem->nextSibling(); | 436 | qitem = qitem->nextSibling(); |
364 | } | 437 | } |
365 | KOListViewItem * item, *temp; | 438 | KOListViewItem * item, *temp; |
366 | item = sel.first(); | 439 | item = sel.first(); |
367 | Incidence* inc; | 440 | Incidence* inc; |
368 | while ( item ) { | 441 | while ( item ) { |
369 | inc = item->data(); | 442 | inc = item->data(); |
370 | if ( removeOld ) { | 443 | if ( removeOld ) { |
371 | inc->setCategories( categoriesStr ); | 444 | inc->setCategories( categoriesStr ); |
372 | } else { | 445 | } else { |
373 | itemList = QStringList::split (",", inc->categoriesStr() ); | 446 | itemList = QStringList::split (",", inc->categoriesStr() ); |
374 | for( i = 0; i< catList.count(); ++i ) { | 447 | for( i = 0; i< catList.count(); ++i ) { |
375 | if ( !itemList.contains (catList[i])) | 448 | if ( !itemList.contains (catList[i])) |
376 | itemList.append( catList[i] ); | 449 | itemList.append( catList[i] ); |
377 | } | 450 | } |
378 | itemList.sort(); | 451 | itemList.sort(); |
379 | inc->setCategories( itemList.join(",") ); | 452 | inc->setCategories( itemList.join(",") ); |
380 | } | 453 | } |
381 | temp = item; | 454 | temp = item; |
382 | item = sel.next(); | 455 | item = sel.next(); |
383 | mUidDict.remove( inc->uid() ); | 456 | mUidDict.remove( inc->uid() ); |
384 | delete temp;; | 457 | delete temp;; |
385 | addIncidence( inc ); | 458 | addIncidence( inc ); |
386 | } | 459 | } |
387 | } | 460 | } |
388 | 461 | ||
389 | void KOListView::beamSelected() | 462 | void KOListView::beamSelected() |
390 | { | 463 | { |
391 | int icount = 0; | 464 | int icount = 0; |
392 | QPtrList<Incidence> delSel ; | 465 | QPtrList<Incidence> delSel ; |
393 | QListViewItem *item = mListView->firstChild (); | 466 | QListViewItem *item = mListView->firstChild (); |
394 | while ( item ) { | 467 | while ( item ) { |
395 | if ( item->isSelected() ) { | 468 | if ( item->isSelected() ) { |
396 | delSel.append(((KOListViewItem *)item)->data()); | 469 | delSel.append(((KOListViewItem *)item)->data()); |
397 | ++icount; | 470 | ++icount; |
398 | } | 471 | } |
399 | 472 | ||
400 | item = item->nextSibling(); | 473 | item = item->nextSibling(); |
401 | } | 474 | } |
402 | if ( icount ) { | 475 | if ( icount ) { |
403 | emit beamIncidenceList( delSel ); | 476 | emit beamIncidenceList( delSel ); |
404 | return; | 477 | return; |
405 | QString fn ; | 478 | QString fn ; |
406 | fn = QDir::homeDirPath()+"/kopitempbeamfile.vcs"; | 479 | fn = QDir::homeDirPath()+"/kopitempbeamfile.vcs"; |
407 | QString mes; | 480 | QString mes; |
408 | bool createbup = true; | 481 | bool createbup = true; |
409 | if ( createbup ) { | 482 | if ( createbup ) { |
410 | QString description = "\n"; | 483 | QString description = "\n"; |
411 | CalendarLocal* cal = new CalendarLocal(); | 484 | CalendarLocal* cal = new CalendarLocal(); |
412 | cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); | 485 | cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); |
413 | Incidence *incidence = delSel.first(); | 486 | Incidence *incidence = delSel.first(); |
414 | while ( incidence ) { | 487 | while ( incidence ) { |
415 | Incidence *in = incidence->clone(); | 488 | Incidence *in = incidence->clone(); |
416 | description += in->summary() + "\n"; | 489 | description += in->summary() + "\n"; |
417 | cal->addIncidence( in ); | 490 | cal->addIncidence( in ); |
418 | incidence = delSel.next(); | 491 | incidence = delSel.next(); |
419 | } | 492 | } |
420 | FileStorage storage( cal, fn, new VCalFormat ); | 493 | FileStorage storage( cal, fn, new VCalFormat ); |
421 | storage.save(); | 494 | storage.save(); |
422 | delete cal; | 495 | delete cal; |
423 | mes = i18n("KO/Pi: Ready for beaming"); | 496 | mes = i18n("KO/Pi: Ready for beaming"); |
424 | topLevelWidget()->setCaption(mes); | 497 | topLevelWidget()->setCaption(mes); |
425 | 498 | ||
426 | #ifndef DESKTOP_VERSION | 499 | #ifndef DESKTOP_VERSION |
427 | Ir *ir = new Ir( this ); | 500 | Ir *ir = new Ir( this ); |
428 | connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); | 501 | connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); |
429 | ir->send( fn, description, "text/x-vCalendar" ); | 502 | ir->send( fn, description, "text/x-vCalendar" ); |
430 | #endif | 503 | #endif |
431 | } | 504 | } |
432 | } | 505 | } |
433 | } | 506 | } |
434 | void KOListView::beamDone( Ir *ir ) | 507 | void KOListView::beamDone( Ir *ir ) |
435 | { | 508 | { |
436 | #ifndef DESKTOP_VERSION | 509 | #ifndef DESKTOP_VERSION |
diff --git a/korganizer/kolistview.h b/korganizer/kolistview.h index be9b09c..78004fe 100644 --- a/korganizer/kolistview.h +++ b/korganizer/kolistview.h | |||
@@ -1,168 +1,303 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 1999 Preston Brown | 3 | Copyright (c) 1999 Preston Brown |
4 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> | 4 | Copyright (c) 2000,2001 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 _KOLISTVIEW_H | 24 | #ifndef _KOLISTVIEW_H |
25 | #define _KOLISTVIEW_H | 25 | #define _KOLISTVIEW_H |
26 | 26 | ||
27 | #include <qlistview.h> | 27 | #include <qlistview.h> |
28 | #include <qmap.h> | 28 | #include <qmap.h> |
29 | #include <qdict.h> | 29 | #include <qdict.h> |
30 | 30 | ||
31 | #include <klistview.h> | 31 | #include <klistview.h> |
32 | 32 | ||
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/incidence.h> | 38 | #include <libkcal/incidence.h> |
39 | 39 | ||
40 | #include "koeventview.h" | 40 | #include "koeventview.h" |
41 | #include "customlistviewitem.h" | 41 | #include "customlistviewitem.h" |
42 | 42 | ||
43 | using namespace KCal; | 43 | using namespace KCal; |
44 | 44 | ||
45 | |||
46 | |||
47 | #include <qpushbutton.h> | ||
48 | #include <qlayout.h> | ||
49 | #include <qdialog.h> | ||
50 | #include <qcombobox.h> | ||
51 | #include <qspinbox.h> | ||
52 | #include <qtooltip.h> | ||
53 | #include <qcheckbox.h> | ||
54 | #include <qhbox.h> | ||
55 | #include <qlabel.h> | ||
56 | #include <kiconloader.h> | ||
57 | #include "kfiledialog.h" | ||
58 | #include "koprefs.h" | ||
59 | class KOAlarmPrefs : public QDialog | ||
60 | { | ||
61 | Q_OBJECT | ||
62 | public: | ||
63 | KOAlarmPrefs( QWidget *par=0, const char *name=0 ) : | ||
64 | QDialog( par, name, true ) | ||
65 | { | ||
66 | setCaption( i18n("Alarm Options") ); | ||
67 | QVBoxLayout* alarmLayout = new QVBoxLayout( this ); | ||
68 | alarmLayout->setSpacing( 3 ); | ||
69 | alarmLayout->setMargin( 3 ); | ||
70 | QWidget *parent = this; | ||
71 | mAlarmButton = new QCheckBox(i18n("Set reminder offset to:"),parent); | ||
72 | alarmLayout->addWidget(mAlarmButton); | ||
73 | mAlarmTimeEdit = new QSpinBox ( 0, 9999, 1, parent, "mAlarmTimeEdit " ) ; | ||
74 | mAlarmTimeEdit->setValue( 15 ); | ||
75 | alarmLayout->addWidget(mAlarmTimeEdit); | ||
76 | mAlarmIncrCombo = new QComboBox(false, parent); | ||
77 | mAlarmIncrCombo->insertItem(i18n("minute(s)")); | ||
78 | mAlarmIncrCombo->insertItem(i18n("hour(s)")); | ||
79 | mAlarmIncrCombo->insertItem(i18n("day(s)")); | ||
80 | alarmLayout->addWidget(mAlarmIncrCombo); | ||
81 | QHBox * hb = new QHBox ( parent ); | ||
82 | alarmLayout->addWidget(hb); | ||
83 | mAlarmSoundButton = new QPushButton(hb); | ||
84 | mAlarmSoundButton->setPixmap(SmallIcon("playsound")); | ||
85 | mAlarmSoundButton->setToggleButton(true); | ||
86 | connect(mAlarmSoundButton, SIGNAL(clicked()), SLOT(pickAlarmSound())); | ||
87 | mAlarmProgramButton = new QPushButton(hb); | ||
88 | mAlarmProgramButton->setPixmap(SmallIcon("run")); | ||
89 | mAlarmProgramButton->setToggleButton(true); | ||
90 | connect(mAlarmProgramButton, SIGNAL(clicked()), SLOT(pickAlarmProgram())); | ||
91 | mAlarmSoundButton->setMaximumWidth( mAlarmSoundButton->sizeHint().width() + 4 ); | ||
92 | mAlarmProgramButton->setMaximumWidth(mAlarmProgramButton->sizeHint().width() + 4 ); | ||
93 | mAlarmLabel = new QLabel( this ); | ||
94 | alarmLayout->addWidget( mAlarmLabel ); | ||
95 | mAlarmLabel->setText( "..."+KOPrefs::instance()->mDefaultAlarmFile.right( 30 ) ); | ||
96 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | ||
97 | mAlarmSoundButton->setOn( true ); | ||
98 | QPushButton * ok = new QPushButton( i18n("Set Alarm!"), this ); | ||
99 | alarmLayout->addWidget( ok ); | ||
100 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | ||
101 | alarmLayout->addWidget( cancel ); | ||
102 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | ||
103 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | ||
104 | resize( 200, 200 ); | ||
105 | |||
106 | } | ||
107 | |||
108 | |||
109 | |||
110 | QString mAlarmSound, mAlarmProgram ; | ||
111 | QCheckBox* mAlarmButton; | ||
112 | QSpinBox* mAlarmTimeEdit; | ||
113 | QLabel* mAlarmLabel; | ||
114 | QComboBox* mAlarmIncrCombo ; | ||
115 | QPushButton* mAlarmSoundButton ,*mAlarmProgramButton; | ||
116 | private slots: | ||
117 | |||
118 | void pickAlarmSound() | ||
119 | { | ||
120 | //QString prefix = mAlarmSound; | ||
121 | if (!mAlarmSoundButton->isOn()) { | ||
122 | //mAlarmSound = ""; | ||
123 | QToolTip::remove(mAlarmSoundButton); | ||
124 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); | ||
125 | mAlarmProgramButton->setOn(true); | ||
126 | mAlarmSoundButton->setOn(false); | ||
127 | } else { | ||
128 | QString fileName(KFileDialog::getOpenFileName(mAlarmSound, | ||
129 | i18n("*.wav|Wav Files"), 0)); | ||
130 | if (!fileName.isEmpty()) { | ||
131 | mAlarmSound = fileName; | ||
132 | mAlarmLabel->setText( "..."+fileName.right( 30 ) ); | ||
133 | QToolTip::remove(mAlarmSoundButton); | ||
134 | QString dispStr = i18n("Playing '%1'").arg(fileName); | ||
135 | QToolTip::add(mAlarmSoundButton, dispStr); | ||
136 | mAlarmProgramButton->setOn(false); | ||
137 | mAlarmSoundButton->setOn(true); | ||
138 | } else { | ||
139 | mAlarmProgramButton->setOn(true); | ||
140 | mAlarmSoundButton->setOn(false); | ||
141 | |||
142 | } | ||
143 | } | ||
144 | }; | ||
145 | |||
146 | void pickAlarmProgram() | ||
147 | { | ||
148 | if (!mAlarmProgramButton->isOn()) { | ||
149 | //mAlarmProgram = ""; | ||
150 | QToolTip::remove(mAlarmProgramButton); | ||
151 | QToolTip::add(mAlarmProgramButton, i18n("No program set")); | ||
152 | mAlarmProgramButton->setOn(false); | ||
153 | mAlarmSoundButton->setOn(true); | ||
154 | } else { | ||
155 | QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm.: ") , 0)); | ||
156 | if (!fileName.isEmpty()) { | ||
157 | mAlarmProgram = fileName; | ||
158 | mAlarmLabel->setText( "..."+fileName.right( 30 ) ); | ||
159 | QToolTip::remove(mAlarmProgramButton); | ||
160 | QString dispStr = i18n("Running '%1'").arg(fileName); | ||
161 | QToolTip::add(mAlarmProgramButton, dispStr); | ||
162 | mAlarmSoundButton->setOn(false); | ||
163 | mAlarmProgramButton->setOn(true); | ||
164 | } else { | ||
165 | mAlarmProgramButton->setOn(false); | ||
166 | mAlarmSoundButton->setOn(true); | ||
167 | } | ||
168 | } | ||
169 | }; | ||
170 | |||
171 | }; | ||
172 | |||
173 | |||
174 | |||
175 | |||
176 | |||
177 | |||
178 | |||
45 | typedef CustomListViewItem<Incidence *> KOListViewItem; | 179 | typedef CustomListViewItem<Incidence *> KOListViewItem; |
46 | 180 | ||
47 | /** | 181 | /** |
48 | This class provides the initialisation of a KOListViewItem for calendar | 182 | This class provides the initialisation of a KOListViewItem for calendar |
49 | components using the Incidence::Visitor. | 183 | components using the Incidence::Visitor. |
50 | */ | 184 | */ |
51 | class ListItemVisitor : public Incidence::Visitor | 185 | class ListItemVisitor : public Incidence::Visitor |
52 | { | 186 | { |
53 | public: | 187 | public: |
54 | ListItemVisitor(KOListViewItem *, QDate d); | 188 | ListItemVisitor(KOListViewItem *, QDate d); |
55 | ~ListItemVisitor(); | 189 | ~ListItemVisitor(); |
56 | 190 | ||
57 | bool visit(Event *); | 191 | bool visit(Event *); |
58 | bool visit(Todo *); | 192 | bool visit(Todo *); |
59 | bool visit(Journal *); | 193 | bool visit(Journal *); |
60 | 194 | ||
61 | private: | 195 | private: |
62 | KOListViewItem *mItem; | 196 | KOListViewItem *mItem; |
63 | QDate mDate; | 197 | QDate mDate; |
64 | }; | 198 | }; |
65 | 199 | ||
66 | /** | 200 | /** |
67 | This class provides a multi-column list view of events. It can | 201 | This class provides a multi-column list view of events. It can |
68 | display events from one particular day or several days, it doesn't | 202 | display events from one particular day or several days, it doesn't |
69 | matter. To use a view that only handles one day at a time, use | 203 | matter. To use a view that only handles one day at a time, use |
70 | KODayListView. | 204 | KODayListView. |
71 | 205 | ||
72 | @short multi-column list view of various events. | 206 | @short multi-column list view of various events. |
73 | @author Preston Brown <pbrown@kde.org> | 207 | @author Preston Brown <pbrown@kde.org> |
74 | @see KOBaseView, KODayListView | 208 | @see KOBaseView, KODayListView |
75 | */ | 209 | */ |
76 | class KOListView; | 210 | class KOListView; |
77 | 211 | ||
78 | class KOListViewListView : public KListView | 212 | class KOListViewListView : public KListView |
79 | { | 213 | { |
80 | Q_OBJECT | 214 | Q_OBJECT |
81 | public: | 215 | public: |
82 | KOListViewListView(KOListView * lv ); | 216 | KOListViewListView(KOListView * lv ); |
83 | signals: | 217 | signals: |
84 | void newEvent(); | 218 | void newEvent(); |
85 | void showIncidence( Incidence* ); | 219 | void showIncidence( Incidence* ); |
86 | private: | 220 | private: |
87 | void keyPressEvent ( QKeyEvent * ) ; | 221 | void keyPressEvent ( QKeyEvent * ) ; |
88 | void contentsMouseDoubleClickEvent(QMouseEvent *e); | 222 | void contentsMouseDoubleClickEvent(QMouseEvent *e); |
89 | void contentsMousePressEvent(QMouseEvent *e); | 223 | void contentsMousePressEvent(QMouseEvent *e); |
90 | void contentsMouseReleaseEvent(QMouseEvent *e); | 224 | void contentsMouseReleaseEvent(QMouseEvent *e); |
91 | void contentsMouseMoveEvent(QMouseEvent *e); | 225 | void contentsMouseMoveEvent(QMouseEvent *e); |
92 | bool mAllowPopupMenu; | 226 | bool mAllowPopupMenu; |
93 | bool mMouseDown; | 227 | bool mMouseDown; |
94 | int mYMousePos; | 228 | int mYMousePos; |
95 | }; | 229 | }; |
96 | 230 | ||
97 | class KOListView : public KOEventView | 231 | class KOListView : public KOEventView |
98 | { | 232 | { |
99 | Q_OBJECT | 233 | Q_OBJECT |
100 | public: | 234 | public: |
101 | KOListView(Calendar *calendar, QWidget *parent = 0, | 235 | KOListView(Calendar *calendar, QWidget *parent = 0, |
102 | const char *name = 0); | 236 | const char *name = 0); |
103 | ~KOListView(); | 237 | ~KOListView(); |
104 | 238 | ||
105 | virtual int maxDatesHint(); | 239 | virtual int maxDatesHint(); |
106 | virtual int currentDateCount(); | 240 | virtual int currentDateCount(); |
107 | virtual QPtrList<Incidence> selectedIncidences(); | 241 | virtual QPtrList<Incidence> selectedIncidences(); |
108 | virtual DateList selectedDates(); | 242 | virtual DateList selectedDates(); |
109 | 243 | ||
110 | void showDates(bool show); | 244 | void showDates(bool show); |
111 | Incidence* currentItem(); | 245 | Incidence* currentItem(); |
112 | void addTodos(QPtrList<Todo> eventList); | 246 | void addTodos(QPtrList<Todo> eventList); |
113 | void addJournals(QPtrList<Journal> eventList); | 247 | void addJournals(QPtrList<Journal> eventList); |
114 | virtual void printPreview(CalPrinter *calPrinter, | 248 | virtual void printPreview(CalPrinter *calPrinter, |
115 | const QDate &, const QDate &); | 249 | const QDate &, const QDate &); |
116 | 250 | ||
117 | void readSettings(KConfig *config, QString setting = "KOListView Layout"); | 251 | void readSettings(KConfig *config, QString setting = "KOListView Layout"); |
118 | void writeSettings(KConfig *config, QString setting = "KOListView Layout"); | 252 | void writeSettings(KConfig *config, QString setting = "KOListView Layout"); |
119 | void updateList(); | 253 | void updateList(); |
120 | void setStartDate(const QDate &start); | 254 | void setStartDate(const QDate &start); |
121 | int count(); | 255 | int count(); |
122 | QString getWhatsThisText(QPoint p); | 256 | QString getWhatsThisText(QPoint p); |
123 | signals: | 257 | signals: |
124 | void signalNewEvent(); | 258 | void signalNewEvent(); |
125 | void beamIncidenceList(QPtrList<Incidence>); | 259 | void beamIncidenceList(QPtrList<Incidence>); |
126 | 260 | ||
127 | public slots: | 261 | public slots: |
128 | virtual void updateView(); | 262 | virtual void updateView(); |
129 | virtual void showDates(const QDate &start, const QDate &end); | 263 | virtual void showDates(const QDate &start, const QDate &end); |
130 | virtual void showEvents(QPtrList<Event> eventList); | 264 | virtual void showEvents(QPtrList<Event> eventList); |
131 | void clearSelection(); | 265 | void clearSelection(); |
132 | void allSelection(); | 266 | void allSelection(); |
133 | 267 | ||
134 | void clear(); | 268 | void clear(); |
135 | void beamDone( Ir *ir ); | 269 | void beamDone( Ir *ir ); |
136 | void showDates(); | 270 | void showDates(); |
137 | void hideDates(); | 271 | void hideDates(); |
138 | void deleteAll(); | 272 | void deleteAll(); |
139 | void saveToFile(); | 273 | void saveToFile(); |
140 | void saveDescriptionToFile(); | 274 | void saveDescriptionToFile(); |
141 | void beamSelected(); | 275 | void beamSelected(); |
142 | void updateConfig(); | 276 | void updateConfig(); |
143 | void addCat(); | 277 | void addCat(); |
144 | void setCat(); | 278 | void setCat(); |
279 | void setAlarm(); | ||
145 | void setCategories( bool removeOld ); | 280 | void setCategories( bool removeOld ); |
146 | void changeEventDisplay(Event *, int); | 281 | void changeEventDisplay(Event *, int); |
147 | 282 | ||
148 | void defaultItemAction(QListViewItem *item); | 283 | void defaultItemAction(QListViewItem *item); |
149 | void popupMenu(QListViewItem *item,const QPoint &,int); | 284 | void popupMenu(QListViewItem *item,const QPoint &,int); |
150 | 285 | ||
151 | protected slots: | 286 | protected slots: |
152 | void processSelectionChange(QListViewItem *); | 287 | void processSelectionChange(QListViewItem *); |
153 | 288 | ||
154 | protected: | 289 | protected: |
155 | void addEvents(QPtrList<Event> eventList); | 290 | void addEvents(QPtrList<Event> eventList); |
156 | void addIncidence(Incidence *); | 291 | void addIncidence(Incidence *); |
157 | KOListViewItem *getItemForEvent(Event *event); | 292 | KOListViewItem *getItemForEvent(Event *event); |
158 | 293 | ||
159 | private: | 294 | private: |
160 | KOListViewListView *mListView; | 295 | KOListViewListView *mListView; |
161 | KOEventPopupMenu *mPopupMenu; | 296 | KOEventPopupMenu *mPopupMenu; |
162 | KOListViewItem *mActiveItem; | 297 | KOListViewItem *mActiveItem; |
163 | QDict<Incidence> mUidDict; | 298 | QDict<Incidence> mUidDict; |
164 | QDate mStartDate; | 299 | QDate mStartDate; |
165 | void keyPressEvent ( QKeyEvent * ) ; | 300 | void keyPressEvent ( QKeyEvent * ) ; |
166 | }; | 301 | }; |
167 | 302 | ||
168 | #endif | 303 | #endif |