summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-04-19 19:32:54 (UTC)
committer zautrix <zautrix>2005-04-19 19:32:54 (UTC)
commitcdcb0e0d0163695c56cf7cf9bd3f046ac63173ee (patch) (unidiff)
tree70cb7e2db9d7075a7c7e7c38adbad0c50e5d8dc4
parentb36bdf88fbf3cc78e4bf072b5eb3ec16bd8ec235 (diff)
downloadkdepimpi-cdcb0e0d0163695c56cf7cf9bd3f046ac63173ee.zip
kdepimpi-cdcb0e0d0163695c56cf7cf9bd3f046ac63173ee.tar.gz
kdepimpi-cdcb0e0d0163695c56cf7cf9bd3f046ac63173ee.tar.bz2
fixes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ReleaseNotes.txt18
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt4
-rw-r--r--korganizer/kodaymatrix.cpp87
-rw-r--r--korganizer/kodaymatrix.h1
-rw-r--r--korganizer/komonthview.cpp3
-rw-r--r--korganizer/koprefsdialog.cpp13
-rw-r--r--korganizer/koviewmanager.cpp9
-rw-r--r--korganizer/mainwindow.cpp13
-rw-r--r--korganizer/mainwindow.h2
9 files changed, 105 insertions, 45 deletions
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
index 01c34cc..f2adfc8 100644
--- a/ReleaseNotes.txt
+++ b/ReleaseNotes.txt
@@ -1,290 +1,294 @@
1 1
2KDE-Pim/Pi is available for four platforms: 2KDE-Pim/Pi is available for four platforms:
3 3
41) Windows 32 (not available for all releases) 41) Windows 32 (not available for all releases)
52) Zaurus Sharp ROM, gcc 2.95 compiled 52) Zaurus Sharp ROM, gcc 2.95 compiled
63) OpenZaurus ROM, gcc 3.xx compiled (not available for all releases) 63) OpenZaurus ROM, gcc 3.xx compiled (not available for all releases)
74) Linux Desktop (SuSE 9.2) (not available for all releases) 74) Linux Desktop (SuSE 9.2) (not available for all releases)
8 8
9Contents of the packages and how to install: 9Contents of the packages and how to install:
10 10
11 11
12***************************************************** 12*****************************************************
131) Windows 32 131) Windows 32
14***************************************************** 14*****************************************************
15NOTE: 15NOTE:
16There are two version for Windows available: 16There are two version for Windows available:
17The file 17The file
18kdepim_2.0.8_for_Windows.exe.zip, wich is for Windows 2000/XP 18kdepim_2.1.2_for_Windows.exe.zip, wich is for Windows 2000/XP
19and the file 19and the file
20kdepim_2.0.8_for_Windows_98-ME.exe.zip, wich is for Windows 98/ME. 20kdepim_2.1.2_for_Windows_98-ME.exe.zip, wich is for Windows 98/ME.
21The functionality is almost the same, but in the version for Windows 98/ME 21The functionality is almost the same, but in the version for Windows 98/ME
22is "Import from Outlook" disabled to make it running on Windows 98/ME. 22is "Import from Outlook" disabled to make it running on Windows 98/ME.
23 23
24Filename: kdepim_2.0.8_for_Windows.exe.zip 24Filename: kdepim_2.1.2_for_Windows.exe.zip
25Package contains: 25Package contains:
26KO/Pi 26KO/Pi
27KA/Pi 27KA/Pi
28Phone access(kammu.exe) 28Phone access(kammu.exe)
29Libs for file, dir, qtopia resources. 29Libs for file, dir, qtopia resources.
30 30
31Download file. 31Download file.
32Unzip the file, then you are almost done. 32Unzip the file, then you are almost done.
33When installing these package for the first time, 33When installing these package for the first time,
34you will need to install some needed dlls which are 34you will need to install some needed dlls which are
35available in an extra package "kdepim334.dll". This additional package contains 35available in an extra package "kdepim334.dll". This additional package contains
36the Qt3 library qt-mt334.dll and the MSVC library msvcr71.dll 36the Qt3 library qt-mt334.dll and the MSVC library msvcr71.dll
37and the MSVC library mfc71u.dll. 37and the MSVC library mfc71u.dll.
38You can download the "kdepim334.dll" package at: 38You can download the "kdepim334.dll" package at:
39http://sourceforge.net/projects/kdepimpi/ 39http://sourceforge.net/projects/kdepimpi/
40Please choose there package/project/file: 40Please choose there package/project/file:
41general Files for KDE/Pim 41general Files for KDE/Pim
42Needed Windows Dlls 42Needed Windows Dlls
43kdepim334dll.zip 43kdepim334dll.zip
44 44
45For details read the file 45For details read the file
46Migration-Howto.txt in the package. 46Migration-Howto.txt in the package.
47 47
48 48
49***************************************************** 49*****************************************************
502) Zaurus Sharp ROM, gcc 2.95 compiled 502) Zaurus Sharp ROM, gcc 2.95 compiled
51***************************************************** 51*****************************************************
52Filename: kdepim_X.X.X_for_SharpROM.ipk.zip 52Filename: kdepim_X.X.X_for_SharpROM.ipk.zip
53Package contains: 53Package contains:
54kaddressbook_X.X.X_arm.ipk 54kaddressbook_X.X.X_arm.ipk
55korganizer-alarm_X.X.X_arm.ipk 55korganizer-alarm_X.X.X_arm.ipk
56kmicrokdelibs_X.X.X_arm.ipk 56kmicrokdelibs_X.X.X_arm.ipk
57kmobilephoneaccess_X.X.X_arm.ipk 57kmobilephoneaccess_X.X.X_arm.ipk
58ksharpPIM-DTMaccess_X.X.X_arm.ipk 58ksharpPIM-DTMaccess_X.X.X_arm.ipk
59kopiemail_X.X.X_arm.ipk 59kopiemail_X.X.X_arm.ipk
60pimTABicon_X.X.X_arm.ipk 60pimTABicon_X.X.X_arm.ipk
61korganizer_X.X.X_arm.ipk 61korganizer_X.X.X_arm.ipk
62pwmanager_X.X.X_arm.ipk 62pwmanager_X.X.X_arm.ipk
63 63
64This package is for users of the Sharp ROM and clones. 64This package is for users of the Sharp ROM and clones.
65Users of old OpenZaurus releases, which are gcc2.95 65Users of old OpenZaurus releases, which are gcc2.95
66compiled can use it as well. 66compiled can use it as well.
67 67
68CONTENT: 68CONTENT:
69 69
70File kmicrokdelibs_X.X.X_arm.ipk: 70File kmicrokdelibs_X.X.X_arm.ipk:
71The libs in this file are needed to run 71The libs in this file are needed to run
72any of the included programs. 72any of the included programs.
73Install it. 73Install it.
74 74
75File kaddressbook_X.X.X_arm.ipk: 75File kaddressbook_X.X.X_arm.ipk:
76Contains KA/Pi addressbook program and needed additional libs. 76Contains KA/Pi addressbook program and needed additional libs.
77 77
78File korganizer-alarm_X.X.X_arm.ipk: 78File korganizer-alarm_X.X.X_arm.ipk:
79Contains KO/Pi calendar program and needed additional libs. 79Contains KO/Pi calendar program and needed additional libs.
80 80
81File kopiemail_X.X.X_arm.ipk: 81File kopiemail_X.X.X_arm.ipk:
82Contains OM/Pi email program and needed additional libs. 82Contains OM/Pi email program and needed additional libs.
83You need external lib openssl to run OM/Pi.
83 84
84File pwmanager_X.X.X_arm.ipk: 85File pwmanager_X.X.X_arm.ipk:
85Contains PwM/Pi password manager program. 86Contains PwM/Pi password manager program.
86 87
87File ksharpPIM-DTMaccess_X.X.X_arm.ipk: 88File ksharpPIM-DTMaccess_X.X.X_arm.ipk:
88Contains needed program/lib to sync KA/Pi and KO/Pi 89Contains needed program/lib to sync KA/Pi and KO/Pi
89with the Sharp PIM applications on the Zaurus, 90with the Sharp PIM applications on the Zaurus,
90which use the new Sharp DMT Pim format. 91which use the new Sharp DMT Pim format.
91 92
92File korganizer-alarm_X.X.X_arm.ipk: 93File korganizer-alarm_X.X.X_arm.ipk:
93Provides an alarm applet to get informed about alarms. 94Provides an alarm applet to get informed about alarms.
94The Zaurus will wake up from suspend 95The Zaurus will wake up from suspend
95if an event triggers an alarm. 96if an event triggers an alarm.
96 97
97File kmobilephoneaccess_X.X.X_arm.ipk: 98File kmobilephoneaccess_X.X.X_arm.ipk:
98Contains a command line tool for accessing mobile phones. 99Contains a command line tool for accessing mobile phones.
99It is used from Kx/Pi to sync with / export to 100It is used from Kx/Pi to sync with / export to
100mobile phones. It is not working very well, please do not 101mobile phones. It is not working very well, please do not
101expect too much. 102expect too much.
102 103
103File pimTABicon_X.X.X_arm.ipk: 104File pimTABicon_X.X.X_arm.ipk:
104If you insatll a program of the package, you may get 105If you insatll a program of the package, you may get
105a new TAB wchich is called Pim. 106a new TAB wchich is called Pim.
106If you did not have had this TAB on your Z, that 107If you did not have had this TAB on your Z, that
107TAB will not display an icon. 108TAB will not display an icon.
108Install this small package to assihn an icon to 109Install this small package to assihn an icon to
109the new Pim TAB. 110the new Pim TAB.
110 111
111 112
112Unzip package and install the apps in the usual way. 113Unzip package and install the apps in the usual way.
114You need external lib openssl to run OM/Pi.
113 115
114To get the character conversion in OM/Pi working, please download 116To get the character conversion in OM/Pi working, please download
115at the sourceforge project site the package 117at the sourceforge project site the package
116sr-character-conversion_SharpROM_arm.ipk.zip 118sr-character-conversion_SharpROM_arm.ipk.zip
117from the section "general files for KDE/Pim" 119from the section "general files for KDE/Pim"
118Instructions how to install this package are in a ReadMe in this file. 120Instructions how to install this package are in a ReadMe in this file.
119 121
120***************************************************** 122*****************************************************
1213) OpenZaurus ROM, gcc 3.xx compiled 1233) OpenZaurus ROM, gcc 3.xx compiled
122***************************************************** 124*****************************************************
123Filename: kdepim_X.X.X_for_OZ-gcc3xx.ipk.zip 125Filename: kdepim_X.X.X_for_OZ-gcc3xx.ipk.zip
124Package contains: 126Package contains:
125kaddressbook_OZ-gcc3xx_X.X.X_arm.ipk 127kaddressbook_OZ-gcc3xx_X.X.X_arm.ipk
126kmicrokdelibs_OZ-gcc3xx_X.X.X_arm.ipk 128kmicrokdelibs_OZ-gcc3xx_X.X.X_arm.ipk
127kopiemail_OZ-gcc3xx_X.X.X_arm.ipk 129kopiemail_OZ-gcc3xx_X.X.X_arm.ipk
128korganizer-alarm_OZ-gcc3xx_X.X.X_arm.ipk 130korganizer-alarm_OZ-gcc3xx_X.X.X_arm.ipk
129korganizer_OZ-gcc3xx_X.X.X_arm.ipk 131korganizer_OZ-gcc3xx_X.X.X_arm.ipk
130kmobilephoneaccess_OZ-gcc3xx_X.X.X_arm.ipk 132kmobilephoneaccess_OZ-gcc3xx_X.X.X_arm.ipk
131pimTABicon_OZ-gcc3xx_X.X.X_arm.ipk 133pimTABicon_OZ-gcc3xx_X.X.X_arm.ipk
132pwmanager_OZ-gcc3xx_X.X.X_arm.ipk 134pwmanager_OZ-gcc3xx_X.X.X_arm.ipk
133 135
134 136
135This package is for users of the Open Zaurus ROM 3.3.6, 137This package is for users of the Open Zaurus ROM 3.3.6,
136compiled by coredump (aka known as Hentges-Rom). 138compiled by coredump (aka known as Hentges-Rom).
137The programs may run on the new 139The programs may run on the new
138Open Zaurus Release 3.5.1 as well, but 140Open Zaurus Release 3.5.1 as well, but
139they cannot be installed there properly, 141they cannot be installed there properly,
140because the package manager of OZ needs more 142because the package manager of OZ needs more
141information in the ipk files to install them properly. 143information in the ipk files to install them properly.
142 144
143If you have Open Zaurus 3.5.1, you should use 145If you have Open Zaurus 3.5.1, you should use
144the packages of the OZ 3.5.1 feed, 146the packages of the OZ 3.5.1 feed,
145compiled and maintained by Hrw. 147compiled and maintained by Hrw.
146Do not ask the OZ people about problems with these 148Do not ask the OZ people about problems with these
147packages, they cannot help you. 149packages, they cannot help you.
148 150
149CONTENT: 151CONTENT:
150 152
151By the way, I cannot help you as well, because I 153By the way, I cannot help you as well, because I
152am not using OZ. 154am not using OZ.
153 155
154File kmicrokdelibs_OZ-gcc3xx_X.X.X_arm.ipk: 156File kmicrokdelibs_OZ-gcc3xx_X.X.X_arm.ipk:
155The libs in this file are needed to run 157The libs in this file are needed to run
156any of the included programs. 158any of the included programs.
157Install it. 159Install it.
158 160
159File kaddressbook_OZ-gcc3xx_X.X.X_arm.ipk: 161File kaddressbook_OZ-gcc3xx_X.X.X_arm.ipk:
160Contains KA/Pi addressbook program and needed additional libs. 162Contains KA/Pi addressbook program and needed additional libs.
161 163
162File korganizer-alarm_OZ-gcc3xx_X.X.X_arm.ipk: 164File korganizer-alarm_OZ-gcc3xx_X.X.X_arm.ipk:
163Contains KO/Pi calendar program and needed additional libs. 165Contains KO/Pi calendar program and needed additional libs.
164 166
165File kopiemail_OZ-gcc3xx_X.X.X_arm.ipk: 167File kopiemail_OZ-gcc3xx_X.X.X_arm.ipk:
166Contains OM/Pi email program and needed additional libs. 168Contains OM/Pi email program and needed additional libs.
169You need external lib openssl to run OM/Pi.
167 170
168File pwmanager_OZ-gcc3xx_X.X.X_arm.ipk: 171File pwmanager_OZ-gcc3xx_X.X.X_arm.ipk:
169Contains PwM/Pi password manager program. 172Contains PwM/Pi password manager program.
170 173
171File korganizer-alarm_OZ-gcc3xx_X.X.X_arm.ipk: 174File korganizer-alarm_OZ-gcc3xx_X.X.X_arm.ipk:
172Provides an alarm applet to get informed about alarms. 175Provides an alarm applet to get informed about alarms.
173The Zaurus will wake up from suspend 176The Zaurus will wake up from suspend
174if an event triggers an alarm. 177if an event triggers an alarm.
175 178
176File kmobilephoneaccess_OZ-gcc3xx_X.X.X_arm.ipk: 179File kmobilephoneaccess_OZ-gcc3xx_X.X.X_arm.ipk:
177Contains a command line tool for accessing mobile phones. 180Contains a command line tool for accessing mobile phones.
178It is used from Kx/Pi to sync with / export to 181It is used from Kx/Pi to sync with / export to
179mobile phones. It is not working very well, please do not 182mobile phones. It is not working very well, please do not
180expect too much. 183expect too much.
181 184
182File pimTABicon_OZ-gcc3xx_X.X.X_arm.ipk: 185File pimTABicon_OZ-gcc3xx_X.X.X_arm.ipk:
183If you insatll a program of the package, you may get 186If you insatll a program of the package, you may get
184a new TAB wchich is called Pim. 187a new TAB wchich is called Pim.
185If you did not have had this TAB on your Z, that 188If you did not have had this TAB on your Z, that
186TAB will not display an icon. 189TAB will not display an icon.
187Install this small package to assihn an icon to 190Install this small package to assihn an icon to
188the new Pim TAB. 191the new Pim TAB.
189 192
190Unzip package and install the apps in the usual way. 193Unzip package and install the apps in the usual way.
194You need external lib openssl to run OM/Pi.
191 195
192To get the character conversion in OM/Pi working, please download 196To get the character conversion in OM/Pi working, please download
193at the sourceforge project site the package 197at the sourceforge project site the package
194oz-character-conversion_OZ-gcc3xx_arm.ipk.zip 198oz-character-conversion_OZ-gcc3xx_arm.ipk.zip
195from the section "general files for KDE/Pim" 199from the section "general files for KDE/Pim"
196Instructions how to install this package are in a ReadMe in this file. 200Instructions how to install this package are in a ReadMe in this file.
197 201
198 202
199***************************************************** 203*****************************************************
2004) Linux Desktop (SuSE 9.2) 2044) Linux Desktop (SuSE 9.2)
201***************************************************** 205*****************************************************
202Filename: KDE-Pim-Pi-2.0.8-SuSE_9.2.i586.rpm 206Filename: KDE-Pim-Pi-2.1.2-SuSE_9.2.i586.rpm
203Package contains: 207Package contains:
204KAddessbook/Pi 208KAddessbook/Pi
205KOrganizer/Pi 209KOrganizer/Pi
206PasswordManager/Pi 210PasswordManager/Pi
207KPhone/Pi 211KPhone/Pi
208KTimeTracker/Pi 212KTimeTracker/Pi
209KOPieMail/Pi 213KOPieMail/Pi
210and the needed microkde libs. 214and the needed microkde libs.
211 215
212Download file and install it on console with 216Download file and install it on console with
213su 217su
214rpm -ihv KDE-Pim-Pi-2.0.8-SuSE_9.2.i586.rpm 218rpm -ihv KDE-Pim-Pi-2.1.2-SuSE_9.2.i586.rpm
215Note: 219Note:
216If you want to update, please do it with 220If you want to update, please do it with
217rpm -Uhv KDE-Pim-Pi-2.0.8-SuSE_9.2.i586.rpm 221rpm -Uhv KDE-Pim-Pi-2.1.2-SuSE_9.2.i586.rpm
218(Uninstall with rpm -e KDE-Pim-Pi-2.0.8-SuSE_9.2) 222(Uninstall with rpm -e KDE-Pim-Pi-2.1.2-SuSE_9.2)
219 223
220Here is the information, 224Here is the information,
221provided in the rpm file about the content: 225provided in the rpm file about the content:
222 226
223This package contains the platform-independent PIM programs from 227This package contains the platform-independent PIM programs from
224www.pi-sync.info, compiled for SuSE 9.2: 228www.pi-sync.info, compiled for SuSE 9.2:
225KTimeTacker/Pi 229KTimeTacker/Pi
226KPhone/Pi 230KPhone/Pi
227KAddressbook/Pi 231KAddressbook/Pi
228KOrganizer/Pi 232KOrganizer/Pi
229PasswordManager/Pi 233PasswordManager/Pi
230KOPieMail/Pi 234KOPieMail/Pi
231 235
232These applications do not need anything from the KDE-desktop 236These applications do not need anything from the KDE-desktop
233at all to run on Linux. However, there is a dependency from 237at all to run on Linux. However, there is a dependency from
234two KDE libs, because a small command line program is included 238two KDE libs, because a small command line program is included
235to make it possible to sync with the KDE-desktop applications. 239to make it possible to sync with the KDE-desktop applications.
236 240
237These applications are independent from the KDE-desktop 241These applications are independent from the KDE-desktop
238environment. That means, nothing of your existing 242environment. That means, nothing of your existing
239KDE-desktop setup will be changed, or any data 243KDE-desktop setup will be changed, or any data
240(calendar-addressbook) used by the KDE-desktop 244(calendar-addressbook) used by the KDE-desktop
241applications will be changed or accessed. 245applications will be changed or accessed.
242These applications stores their data and config in 246These applications stores their data and config in
243$HOME/kdepim/ 247$HOME/kdepim/
244However, because the same file format is used, 248However, because the same file format is used,
245an easy exchange of data with the KDE-desktop 249an easy exchange of data with the KDE-desktop
246is possible. 250is possible.
247A small command line program is included 251A small command line program is included
248to make it possible to sync with the KDE-desktop applications. 252to make it possible to sync with the KDE-desktop applications.
249You do not need to call this program from the commandline, 253You do not need to call this program from the commandline,
250it is called from the KDE-Pim/Pi apps when you choose there: 254it is called from the KDE-Pim/Pi apps when you choose there:
251Sync with KDE_Desktop. 255Sync with KDE_Desktop.
252If something is going wrong, please start the 256If something is going wrong, please start the
253KDE-Pim/Pi program itself from the console to get detailed output. 257KDE-Pim/Pi program itself from the console to get detailed output.
254 258
255After installation, you should have a 259After installation, you should have a
256PIM-pi 260PIM-pi
257folder in your KDE start menu, where you can 261folder in your KDE start menu, where you can
258start the applications from. 262start the applications from.
259 263
260These programs makes it possible to sync your Zaurus easily 264These programs makes it possible to sync your Zaurus easily
261(with the KDE-Pim/Pi programs running on the Zaurus) 265(with the KDE-Pim/Pi programs running on the Zaurus)
262with the KDE-desktop calendar/addressbook data. 266with the KDE-desktop calendar/addressbook data.
263If you want to use that, you have to update your 267If you want to use that, you have to update your
264KDE-desktop to version 3.3.0 or higher. 268KDE-desktop to version 3.3.0 or higher.
265SuSE 9.2 contains KDE 3.3.0 such that no update is needed. 269SuSE 9.2 contains KDE 3.3.0 such that no update is needed.
266Actually - after the (non difficult) configuration is set up - 270Actually - after the (non difficult) configuration is set up -
267with two mouseklicks on the Zaurus, 271with two mouseklicks on the Zaurus,
268the Zaurus syncs with the corresponding KDE-Pim/Pi 272the Zaurus syncs with the corresponding KDE-Pim/Pi
269program on the Linux Desktop which syncs automatically 273program on the Linux Desktop which syncs automatically
270with the KDE-desktop data. 274with the KDE-desktop data.
271 275
272If you want to use the KDE-desktop calendar/addressbook applications, 276If you want to use the KDE-desktop calendar/addressbook applications,
273just install these apps in this package and use them as a syncing tool for the 277just install these apps in this package and use them as a syncing tool for the
274Zaurus <-> KDE-desktop sync. 278Zaurus <-> KDE-desktop sync.
275The sync requires a network connection from your Zaurus to 279The sync requires a network connection from your Zaurus to
276the PC. A detailed Sync HowTo is available in the 280the PC. A detailed Sync HowTo is available in the
277Help menu of the applications. 281Help menu of the applications.
278 282
279These applications makes it also possible, that you can sync 283These applications makes it also possible, that you can sync
280(or just export the data to) your mobile phone with your 284(or just export the data to) your mobile phone with your
281data of the KDE-desktop calendar/addressbook applications. 285data of the KDE-desktop calendar/addressbook applications.
282This is tested and working for Nokia mobile phones, 286This is tested and working for Nokia mobile phones,
283it may work with others as well. 287it may work with others as well.
284(More info about that: -> Sync HowTo) 288(More info about that: -> Sync HowTo)
285 289
286NOTE: 290NOTE:
287When using SuSE 9.1 you have to update your KDE to 3.3.x 291When using SuSE 9.1 you have to update your KDE to 3.3.x
288and you have to make an online update in SuSE 9.1 to make it 292and you have to make an online update in SuSE 9.1 to make it
289possible to get the infrared connection working, such that 293possible to get the infrared connection working, such that
290you can sync your (Nokia) mobile phone via infrared. \ No newline at end of file 294you can sync your (Nokia) mobile phone via infrared. \ No newline at end of file
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 7fa92bf..5693112 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1,1360 +1,1360 @@
1{ "10 minutes","10 Minuten" }, 1{ "10 minutes","10 Minuten" },
2{ "10th","10." }, 2{ "10th","10." },
3{ "11th","11." }, 3{ "11th","11." },
4{ "12 pm Format","12 AM/PM Format" }, 4{ "12 pm Format","12 AM/PM Format" },
5{ "12th","12." }, 5{ "12th","12." },
6{ "13th","13." }, 6{ "13th","13." },
7{ "14th","14." }, 7{ "14th","14." },
8{ "15th","15." }, 8{ "15th","15." },
9{ "16th","16." }, 9{ "16th","16." },
10{ "17th","17." }, 10{ "17th","17." },
11{ "18th","18." }, 11{ "18th","18." },
12{ "19th","19." }, 12{ "19th","19." },
13{ "1 Day","1 Tag" }, 13{ "1 Day","1 Tag" },
14{ "1 h","1 Std" }, 14{ "1 h","1 Std" },
15{ "1 (high)","1 (hoch)" }, 15{ "1 (high)","1 (hoch)" },
16{ "5 (low)","5" }, 16{ "5 (low)","5" },
17{ "1st","1." }, 17{ "1st","1." },
18{ "20th","20." }, 18{ "20th","20." },
19{ "21st","21." }, 19{ "21st","21." },
20{ "22nd","22." }, 20{ "22nd","22." },
21{ "23rd","23." }, 21{ "23rd","23." },
22{ "24:00 Hour Format","24:00 Stunden Format" }, 22{ "24:00 Hour Format","24:00 Stunden Format" },
23{ "24th","24." }, 23{ "24th","24." },
24{ "25th","25." }, 24{ "25th","25." },
25{ "26th","26." }, 25{ "26th","26." },
26{ "27th","27." }, 26{ "27th","27." },
27{ "28th","28." }, 27{ "28th","28." },
28{ "29th","29." }, 28{ "29th","29." },
29{ "2nd","2." }, 29{ "2nd","2." },
30{ "30 minutes","30 Minuten" }, 30{ "30 minutes","30 Minuten" },
31{ "30th","30." }, 31{ "30th","30." },
32{ "31st","31." }, 32{ "31st","31." },
33{ "3rd","3." }, 33{ "3rd","3." },
34{ "4th","4." }, 34{ "4th","4." },
35{ "5 (lowest)","5 (Niedrigster)" }, 35{ "5 (lowest)","5 (Niedrigster)" },
36{ "5th","5." }, 36{ "5th","5." },
37{ "6th","6." }, 37{ "6th","6." },
38{ "7th","7." }, 38{ "7th","7." },
39{ "8th","8." }, 39{ "8th","8." },
40{ "9th","9." }, 40{ "9th","9." },
41{ "About...","Über..." }, 41{ "About...","Über..." },
42{ "&Accept","&Akzeptieren" }, 42{ "&Accept","&Akzeptieren" },
43{ "Accept","Akzeptieren" }, 43{ "Accept","Akzeptieren" },
44{ "Accept A&ll","A&lles Akzepieren" }, 44{ "Accept A&ll","A&lles Akzepieren" },
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","Lösche alles" }, 128{ "Delete All","Lösche alles" },
129{ "Delete all selected","Lösche alle Selektierten" }, 129{ "Delete all selected","Lösche alle Selektierten" },
130{ "Delete Current","Aktuellen löschen" }, 130{ "Delete Current","Aktuellen löschen" },
131{ "Delete Event...","Lösche Termin..." }, 131{ "Delete Event...","Lösche Termin..." },
132{ "Delete Event","Lösche Termin" }, 132{ "Delete Event","Lösche Termin" },
133{ "&Delete","Löschen" }, 133{ "&Delete","Löschen" },
134{ "Delete...","Löschen..." }, 134{ "Delete...","Löschen..." },
135{ "Delete","Löschen" }, 135{ "Delete","Löschen" },
136{ "Delete Todo...","Lösche Todo..." }, 136{ "Delete Todo...","Lösche Todo..." },
137{ "Delete To-Do","Lösche Todo" }, 137{ "Delete To-Do","Lösche Todo" },
138{ "Deleting item %d ...","Lösche Eintrag %d..." }, 138{ "Deleting item %d ...","Lösche Eintrag %d..." },
139{ "Descriptions","Beschreibungen" }, 139{ "Descriptions","Beschreibungen" },
140{ "Deselect all","Deselektiere Alle" }, 140{ "Deselect all","Deselektiere Alle" },
141{ "Details","Details" }, 141{ "Details","Details" },
142{ "Dinner","Abendessen" }, 142{ "Dinner","Abendessen" },
143{ "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, 143{ "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" },
144{ "Due Date","Fällig am" }, 144{ "Due Date","Fällig am" },
145{ "Due: ","Fällig: "}, 145{ "Due: ","Fällig: "},
146{ "Due Time","Fällig um" }, 146{ "Due Time","Fällig um" },
147{ "Due:","Fällig:"}, 147{ "Due:","Fällig:"},
148{ "Duration: ","Dauer: " }, 148{ "Duration: ","Dauer: " },
149{ "Edit...","Bearbeite..." }, 149{ "Edit...","Bearbeite..." },
150{ "Edit","Bearbeite" }, 150{ "Edit","Bearbeite" },
151{ "Edit Event...","Bearbeite Termin..." }, 151{ "Edit Event...","Bearbeite Termin..." },
152{ "Edit Event","Bearbeite Termin" }, 152{ "Edit Event","Bearbeite Termin" },
153{ "Edit exceptions","Bearbeite Ausnahmen" }, 153{ "Edit exceptions","Bearbeite Ausnahmen" },
154{ "EditorBox:","Editor Fenster:" }, 154{ "EditorBox:","Editor Fenster:" },
155{ "Edit Recurrence Range","Bearbeite Wiederholung" }, 155{ "Edit Recurrence Range","Bearbeite Wiederholung" },
156{ "Edit Todo...","Berabeite Todo..." }, 156{ "Edit Todo...","Berabeite Todo..." },
157{ "Edit To-Do","Todo bearbeiten" }, 157{ "Edit To-Do","Todo bearbeiten" },
158{ "E&mail address:","E&mail Adresse:" }, 158{ "E&mail address:","E&mail Adresse:" },
159{ "(EmptyEmail)","(KeineEmail)" }, 159{ "(EmptyEmail)","(KeineEmail)" },
160{ "(EmptyName)","(KeinName)" }, 160{ "(EmptyName)","(KeinName)" },
161{ "Enable Recurrence","Wiederholung anschalten" }, 161{ "Enable Recurrence","Wiederholung anschalten" },
162{ "End after","Endet nach"}, 162{ "End after","Endet nach"},
163{ "End by:","Endet am"}, 163{ "End by:","Endet am"},
164{ "End Date","End Datum" }, 164{ "End Date","End Datum" },
165{ "End:","Ende:" }, 165{ "End:","Ende:" },
166{ "End Time","End Zeit" }, 166{ "End Time","End Zeit" },
167{ "English","Englisch" }, 167{ "English","Englisch" },
168{ "Event","Termin" }, 168{ "Event","Termin" },
169{ "Event list","Termin Liste" }, 169{ "Event list","Termin Liste" },
170{ "Events","Termine" }, 170{ "Events","Termine" },
171{ "Event Viewer:","Termin Übersicht:" }, 171{ "Event Viewer:","Termin Übersicht:" },
172{ "every","jede" }, 172{ "every","jede" },
173{ "Exceptions...","Ausnahmen..." }, 173{ "Exceptions...","Ausnahmen..." },
174{ "Exceptions","Ausnahmen" }, 174{ "Exceptions","Ausnahmen" },
175{ "Exclude holidays","Ohne freie Tage" }, 175{ "Exclude holidays","Ohne freie Tage" },
176{ "Exclude Saturdays","Ohne Samstage" }, 176{ "Exclude Saturdays","Ohne Samstage" },
177{ "Feb","Feb" }, 177{ "Feb","Feb" },
178{ "February","Februar" }, 178{ "February","Februar" },
179{ "&Find","Suche!" }, 179{ "&Find","Suche!" },
180{ "Fonts","Schriftart" }, 180{ "Fonts","Schriftart" },
181{ "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" }, 181{ "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" },
182{ "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"}, 182{ "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"},
183{ "Free","Frei" }, 183{ "Free","Frei" },
184{ "Friday","Freitag" }, 184{ "Friday","Freitag" },
185{ "Fri","Fr" }, 185{ "Fri","Fr" },
186{ "From:","Vom:" }, 186{ "From:","Vom:" },
187{ "Full &name:","Vor- und &Nachname:" }, 187{ "Full &name:","Vor- und &Nachname:" },
188{ "General","Allgemein" }, 188{ "General","Allgemein" },
189{ "German","Deutsch" }, 189{ "German","Deutsch" },
190{ "Gifts","Geschenke" }, 190{ "Gifts","Geschenke" },
191{ "Go to Today","Heute anzeigen" }, 191{ "Go to Today","Heute anzeigen" },
192{ "Help","Hilfe" }, 192{ "Help","Hilfe" },
193{ "Hide Dates","Daten ausblenden" }, 193{ "Hide Dates","Daten ausblenden" },
194{ "Highlight color:","Markierungen:" }, 194{ "Highlight color:","Markierungen:" },
195{ "Holiday color:","Freie Tage:" }, 195{ "Holiday color:","Freie Tage:" },
196{ "hour(s)","Stunde(n)" }, 196{ "hour(s)","Stunde(n)" },
197{ "In %1 days: ","In %1 Tagen: " }, 197{ "In %1 days: ","In %1 Tagen: " },
198{ "Incomplete Todo:","Unerledigte Aufgaben:" }, 198{ "Incomplete Todo:","Unerledigte Aufgaben:" },
199{ "Information","Information" }, 199{ "Information","Information" },
200{ "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" }, 200{ "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" },
201{ "Jan","Jan" }, 201{ "Jan","Jan" },
202{ "January","Januar" }, 202{ "January","Januar" },
203{ "JournalView:","Journal Ansicht:" }, 203{ "JournalView:","Journal Ansicht:" },
204{ "Journals","Journale" }, 204{ "Journals","Journale" },
205{ "Jul","Jul" }, 205{ "Jul","Jul" },
206{ "July","Juli" }, 206{ "July","Juli" },
207{ "Jump to date","Springe zum Datum" }, 207{ "Jump to date","Springe zum Datum" },
208{ "June","Juni" }, 208{ "June","Juni" },
209{ "Jun","Jun" }, 209{ "Jun","Jun" },
210{ "Key Bindings...","Tastenzuordnung..." }, 210{ "Key Bindings...","Tastenzuordnung..." },
211{ "Kids","Kinder" }, 211{ "Kids","Kinder" },
212{ "Known Problems...","Bekannte Probleme..." }, 212{ "Known Problems...","Bekannte Probleme..." },
213{ "KO/Pi Find ","KO/Pi Suchdialog " }, 213{ "KO/Pi Find ","KO/Pi Suchdialog " },
214{ "KO/Pi Find: ","KO/Pi Suchen: " }, 214{ "KO/Pi Find: ","KO/Pi Suchen: " },
215{ "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." }, 215{ "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." },
216{ "Language:(needs restart)","Sprache (Neustart!)" }, 216{ "Language:(needs restart)","Sprache (Neustart!)" },
217{ "Language:","Sprache" }, 217{ "Language:","Sprache" },
218{ "Large","Etwas mehr" }, 218{ "Large","Etwas mehr" },
219{ "List View:","Listenansicht:" }, 219{ "List View:","Listenansicht:" },
220{ "List View","Listenansicht" }, 220{ "List View","Listenansicht" },
221{ "Load/Save","Laden/Speichern" }, 221{ "Load/Save","Laden/Speichern" },
222{ "Load Template","Lade Vorlage" }, 222{ "Load Template","Lade Vorlage" },
223{ "Locale","Localisation" }, 223{ "Locale","Localisation" },
224{ "Local temp file:","Lokale temp. Datei:" }, 224{ "Local temp file:","Lokale temp. Datei:" },
225{ "Location: ","Ort: " }, 225{ "Location: ","Ort: " },
226{ "Location:","Ort:" }, 226{ "Location:","Ort:" },
227{ "Mail client","Mail Programm" }, 227{ "Mail client","Mail Programm" },
228{ "Mail Client","Mail Programm" }, 228{ "Mail Client","Mail Programm" },
229{ "March","März" }, 229{ "March","März" },
230{ "Mar","Mär" }, 230{ "Mar","Mär" },
231{ "May","Mai" }, 231{ "May","Mai" },
232{ "M. Bains line:","M. Bains Linie:" }, 232{ "M. Bains line:","M. Bains Linie:" },
233{ "Medium","Medium" }, 233{ "Medium","Medium" },
234{ "Method","Methode" }, 234{ "Method","Methode" },
235{ "minute(s)","Minute(n)" }, 235{ "minute(s)","Minute(n)" },
236{ "Monday","Montag" }, 236{ "Monday","Montag" },
237{ "Mon","Mo" }, 237{ "Mon","Mo" },
238{ "Monthly","Monatlich" }, 238{ "Monthly","Monatlich" },
239{ "Month not long enough","Monat ist nicht lang genug" }, 239{ "Month not long enough","Monat ist nicht lang genug" },
240{ "month(s)","Monat(e)" }, 240{ "month(s)","Monat(e)" },
241{ "Month view:","Monatsansicht:" }, 241{ "Month view:","Monatsansicht:" },
242{ "Month view uses category colors","Monatsansicht zeigt Kategorie Farben" }, 242{ "Month view uses category colors","Monatsansicht zeigt Kategorie Farben" },
243{ "Todo view uses category colors","To-Do Ansicht zeigt Kategorie Farben" }, 243{ "Todo view uses category colors","To-Do Ansicht zeigt Kategorie Farben" },
244{ "Move &Down","Nach unten verschieben" }, 244{ "Move &Down","Nach unten verschieben" },
245{ "Move &Up","Nach oben verschieben" }, 245{ "Move &Up","Nach oben verschieben" },
246{ "Name:","Name:" }, 246{ "Name:","Name:" },
247{ "Name","Name" }, 247{ "Name","Name" },
248{ "\nAre you sure you want\nto delete this event?","\nSind Sie sicher, dass Sie\nden Termin löschen möchten?" }, 248{ "\nAre you sure you want\nto delete this event?","\nSind Sie sicher, dass Sie\nden Termin löschen möchten?" },
249{ "%n Days","%n Tage" }, 249{ "%n Days","%n Tage" },
250{ "Never","Nie" }, 250{ "Never","Nie" },
251{ "New event...","Neuer Termin..." }, 251{ "New event...","Neuer Termin..." },
252{ "New event","Neuer Termin" }, 252{ "New event","Neuer Termin" },
253{ "New Event...","Neuer Termin..." }, 253{ "New Event...","Neuer Termin..." },
254{ "New Events/Todos should","Neue Termine/Todos sollten" }, 254{ "New Events/Todos should","Neue Termine/Todos sollten" },
255{ "&New","&Neu" }, 255{ "&New","&Neu" },
256{ "New","Neu", }, 256{ "New","Neu", },
257{ "New Sub-Todo...","Neues Sub-Todo..." }, 257{ "New Sub-Todo...","Neues Sub-Todo..." },
258{ "New Todo...","Neues Todo..." }, 258{ "New Todo...","Neues Todo..." },
259{ "Next Alarm: ","Nächster Alarm: ", }, 259{ "Next Alarm: ","Nächster Alarm: ", },
260{ "&Next Day","&Nächster Tag", }, 260{ "&Next Day","&Nächster Tag", },
261{ "Next days view uses full window","Nächste-X-Tage nutzt Vollbild" }, 261{ "Next days view uses full window","Nächste-X-Tage nutzt Vollbild" },
262{ "Next month","Nächster Monat" }, 262{ "Next month","Nächster Monat" },
263{ "&Next Week","&Nächste Woche" }, 263{ "&Next Week","&Nächste Woche" },
264{ "Next year","Nächstes Jahr" }, 264{ "Next year","Nächstes Jahr" },
265{ "Next Year","Nächstes Jahr" }, 265{ "Next Year","Nächstes Jahr" },
266{ "%n h","%n Std" }, 266{ "%n h","%n Std" },
267{ "No ending date","Kein End-Datum", }, 267{ "No ending date","Kein End-Datum", },
268{ "No event, nothing to do.","Kein Termin, nichts zu tun.", }, 268{ "No event, nothing to do.","Kein Termin, nichts zu tun.", },
269{ "No event selected.","Kein Termin selektiert" }, 269{ "No event selected.","Kein Termin selektiert" },
270{ "No","Nein" }, 270{ "No","Nein" },
271{ "No program set","Kein Programm ausgewählt", }, 271{ "No program set","Kein Programm ausgewählt", },
272{ "Normal","Normal" }, 272{ "Normal","Normal" },
273{ "[No selection]","Keine Selektion", }, 273{ "[No selection]","Keine Selektion", },
274{ "No sound set","Kein Sound ausgewählt", }, 274{ "No sound set","Kein Sound ausgewählt", },
275{ "no time ","keine Zeit ", }, 275{ "no time ","keine Zeit ", },
276{ "no time","keine Zeit", }, 276{ "no time","keine Zeit", },
277{ "No Time","Keine Zeit" }, 277{ "No Time","Keine Zeit" },
278{ "November","November" }, 278{ "November","November" },
279{ "Nov","Nov", }, 279{ "Nov","Nov", },
280{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" }, 280{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" },
281{ "occurrence(s)","Vorkommen" }, 281{ "occurrence(s)","Vorkommen" },
282{ "October","Oktober" }, 282{ "October","Oktober" },
283{ "Oct","Okt", }, 283{ "Oct","Okt", },
284{ "O-due!","Ü-fällig! " }, 284{ "O-due!","Ü-fällig! " },
285{ "&OK","&OK" }, 285{ "&OK","&OK" },
286{ "Ok+Show!","Ok+Anzeigen" }, 286{ "Ok+Show!","Ok+Anzeigen" },
287{ "Organizer: %1","Organisator %1" }, 287{ "Organizer: %1","Organisator %1" },
288{ "Organizer","Organisator" }, 288{ "Organizer","Organisator" },
289{ "Owner: ","Besitzer: " }, 289{ "Owner: ","Besitzer: " },
290{ "Owner:","Besitzer:" }, 290{ "Owner:","Besitzer:" },
291{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 291{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
292{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" }, 292{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" },
293{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."}, 293{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."},
294{ "Please specify a valid end date,\nfor example '%1'.","Bitte gültiges Enddatum angeben,\nz.B.'%1'." }, 294{ "Please specify a valid end date,\nfor example '%1'.","Bitte gültiges Enddatum angeben,\nz.B.'%1'." },
295{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." }, 295{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." },
296{ "Please specify a valid start date,\nfor example '%1'.","Bitte gültiges Startdatum angeben,\nz.B. '%1'." }, 296{ "Please specify a valid start date,\nfor example '%1'.","Bitte gültiges Startdatum angeben,\nz.B. '%1'." },
297{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."}, 297{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."},
298{ "Please specify a valid start time,\nfor example '%1'.","Bitte gültige Startzeit angeben,\nz.B. '%1'." }, 298{ "Please specify a valid start time,\nfor example '%1'.","Bitte gültige Startzeit angeben,\nz.B. '%1'." },
299{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" }, 299{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" },
300{ "&Previous Day","Vorheriger Tag" }, 300{ "&Previous Day","Vorheriger Tag" },
301{ "Previous month","Vorheriger Monat" }, 301{ "Previous month","Vorheriger Monat" },
302{ "Previous Month","Vorheriger Monat" }, 302{ "Previous Month","Vorheriger Monat" },
303{ "&Previous Week","Vorherige Woche" }, 303{ "&Previous Week","Vorherige Woche" },
304{ "Previous year","Vorheriges Jahr" }, 304{ "Previous year","Vorheriges Jahr" },
305{ "Previous Year","Vorheriges Jahr" }, 305{ "Previous Year","Vorheriges Jahr" },
306{ "Printing","Drucken" }, 306{ "Printing","Drucken" },
307{ "Priority:","Priorität:" }, 307{ "Priority:","Priorität:" },
308{ "Private","Privat" }, 308{ "Private","Privat" },
309{ "Proceed","Weiter" }, 309{ "Proceed","Weiter" },
310{ "Public","Öffentlich" }, 310{ "Public","Öffentlich" },
311{ "Purge","Entferne" }, 311{ "Purge","Entferne" },
312{ "Purge Completed","Entferne erledigte Todos" }, 312{ "Purge Completed","Entferne erledigte Todos" },
313{ "Purge Todos","Todos bereinigen" }, 313{ "Purge Todos","Todos bereinigen" },
314{ "read-only","schreibgeschützt" }, 314{ "read-only","schreibgeschützt" },
315{ "Recur every","Wiederh. alle" }, 315{ "Recur every","Wiederh. alle" },
316{ "Recur in the month of","Wiederh. im Monat" }, 316{ "Recur in the month of","Wiederh. im Monat" },
317{ "Recur on the","Wiederh. am" }, 317{ "Recur on the","Wiederh. am" },
318{ "Recur on this day","Wiederh. am diesen Tag" }, 318{ "Recur on this day","Wiederh. am diesen Tag" },
319{ "Recurrence Range...","Wiederholungs Zeitraum..." }, 319{ "Recurrence Range...","Wiederholungs Zeitraum..." },
320{ "Recurrence Range","Wiederholungs Zeitraum" }, 320{ "Recurrence Range","Wiederholungs Zeitraum" },
321{ "Recurrence Rule","Wiederholungs Regel" }, 321{ "Recurrence Rule","Wiederholungs Regel" },
322{ "Recurrence","Wiederholung" }, 322{ "Recurrence","Wiederholung" },
323{ "Recurs","Wiederholung" }, 323{ "Recurs","Wiederholung" },
324{"&Reject","Abweisen"}, 324{"&Reject","Abweisen"},
325{ "Reminder:","Alarm:" }, 325{ "Reminder:","Alarm:" },
326{ "Rem.:","Alarm:" }, 326{ "Rem.:","Alarm:" },
327{ "Rem.","Alarm:" }, 327{ "Rem.","Alarm:" },
328{ "Remote file:","Remote Datei:"}, 328{ "Remote file:","Remote Datei:"},
329{ "Remote IP:","Remote (ferne) IP:" }, 329{ "Remote IP:","Remote (ferne) IP:" },
330{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " }, 330{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " },
331{ "Remote user:","Remote Benutzer"}, 331{ "Remote user:","Remote Benutzer"},
332{ "&Remove","Entfe&rnen" }, 332{ "&Remove","Entfe&rnen" },
333{ "Remove","Entfernen" }, 333{ "Remove","Entfernen" },
334{ "Request response","Bemerkung anfordern" }, 334{ "Request response","Bemerkung anfordern" },
335{ "Role:","Rolle:" }, 335{ "Role:","Rolle:" },
336{ "Role","Rolle" }, 336{ "Role","Rolle" },
337{ "Sat","Sa" }, 337{ "Sat","Sa" },
338{ "Saturday","Samstag" }, 338{ "Saturday","Samstag" },
339{ "Search for:","Suche nach:" }, 339{ "Search for:","Suche nach:" },
340{ "Search In","Suche in" }, 340{ "Search In","Suche in" },
341{ "Search...","Suche..." }, 341{ "Search...","Suche..." },
342{ "Search","Suche" }, 342{ "Search","Suche" },
343{ "Select Addresses","Wähle Adressen" }, 343{ "Select Addresses","Wähle Adressen" },
344{ "Select all","Selektiere Alle" }, 344{ "Select all","Selektiere Alle" },
345{ "Select a month","Wähle Monat" }, 345{ "Select a month","Wähle Monat" },
346{ "Select a week","Wähle Woche" }, 346{ "Select a week","Wähle Woche" },
347{ "Select a year","Wähle Jahr" }, 347{ "Select a year","Wähle Jahr" },
348{ "Send directly","Sende direkt" }, 348{ "Send directly","Sende direkt" },
349{ "&Send Messages","&Sende Nachrichten", }, 349{ "&Send Messages","&Sende Nachrichten", },
350{ "Sep","Sep" }, 350{ "Sep","Sep" },
351{ "September","September" }, 351{ "September","September" },
352{ "Shopping","Einkaufen" }, 352{ "Shopping","Einkaufen" },
353{ "Show Dates","Zeige Daten" }, 353{ "Show Dates","Zeige Daten" },
354{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." }, 354{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." },
355{ "Show Event...","Zeige Termin..." }, 355{ "Show Event...","Zeige Termin..." },
356{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." }, 356{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." },
357{ "Show Marcus Bains line","Zeige Marcus Bains Linie" }, 357{ "Show Marcus Bains line","Zeige Marcus Bains Linie" },
358{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." }, 358{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." },
359{ "Show time as:","Zeige Zeit als" }, 359{ "Show time as:","Zeige Zeit als" },
360{ "Show Todo...","Zeige To-Do" }, 360{ "Show Todo...","Zeige To-Do" },
361{ "Show vertical screen (Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" }, 361{ "Show vertical screen (Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" },
362{ "&Show","Zeige" }, 362{ "&Show","Zeige" },
363{ "Show...","Zeige..." }, 363{ "Show...","Zeige..." },
364{ "Show","Zeige" }, 364{ "Show","Zeige" },
365{ "Small","Klein" }, 365{ "Small","Klein" },
366{ "Sorry","Entschuldigung" }, 366{ "Sorry","Entschuldigung" },
367{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"}, 367{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"},
368{ "Start:","Start:" }, 368{ "Start:","Start:" },
369{ "Start Date","Start Datum" }, 369{ "Start Date","Start Datum" },
370{ "Start date: %1","Start Datum: %1" }, 370{ "Start date: %1","Start Datum: %1" },
371{ "Start Time","Start Zeit" }, 371{ "Start Time","Start Zeit" },
372{ "Status:","Status:" }, 372{ "Status:","Status:" },
373{ "Status","Status:" }, 373{ "Status","Status:" },
374{ "Summaries","Titel" }, 374{ "Summaries","Titel" },
375{ "Summary:","Titel:" }, 375{ "Summary:","Titel:" },
376{ "Summary","Titel" }, 376{ "Summary","Titel" },
377{ "Sunday","Sonntag" }, 377{ "Sunday","Sonntag" },
378{ "Sun","So" }, 378{ "Sun","So" },
379{ "Sync preferences:","Sync Einstellungen" }, 379{ "Sync preferences:","Sync Einstellungen" },
380{ "Sync Prefs","Sync Einstellungen" }, 380{ "Sync Prefs","Sync Einstellungen" },
381{ "Syncronize","Daten abgleich" }, 381{ "Syncronize","Daten abgleich" },
382{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, 382{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" },
383{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, 383{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" },
384{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, 384{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" },
385{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" }, 385{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" },
386{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" }, 386{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" },
387{ "Template...","Vorlage..." }, 387{ "Template...","Vorlage..." },
388{ "This day","Dieser Tag" }, 388{ "This day","Dieser Tag" },
389{ "This is an experimental feature. ","Dieses Feature ist experimentel" }, 389{ "This is an experimental feature. ","Dieses Feature ist experimentel" },
390{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." }, 390{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." },
391{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." }, 391{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." },
392{ "Thu","Do" }, 392{ "Thu","Do" },
393{ "Thursday","Donnerstag" }, 393{ "Thursday","Donnerstag" },
394{ "Time associated","Mit Zeit" }, 394{ "Time associated","Mit Zeit" },
395{ "Time bar:","Uhrzeit Zeile:" }, 395{ "Time bar:","Uhrzeit Zeile:" },
396{ "Time && Date","Zeit und Datum" }, 396{ "Time && Date","Zeit und Datum" },
397{ "Time Format","Zeit Format" }, 397{ "Time Format","Zeit Format" },
398{ "Time Format(nr):","Zeit Format(Neustart!)" }, 398{ "Time Format(nr):","Zeit Format(Neustart!)" },
399{ "Date Labels:","Datumsleiste:" }, 399{ "Date Labels:","Datumsleiste:" },
400{ "Time: ","Zeit: " }, 400{ "Time: ","Zeit: " },
401{ "Timezone:","Zeitzone:" }, 401{ "Timezone:","Zeitzone:" },
402{ "To: ","Bis: " }, 402{ "To: ","Bis: " },
403{ "To:","Bis:" }, 403{ "To:","Bis:" },
404{ "Today: ","Heute: " }, 404{ "Today: ","Heute: " },
405{ "Todo due today color:","Heute fällige To-Do's" }, 405{ "Todo due today color:","Heute fällige To-Do's" },
406{ "To-do items:","To-Do items:" }, 406{ "To-do items:","To-Do items:" },
407{ "Todo overdue color:","Überfällige To-Do's" }, 407{ "Todo overdue color:","Überfällige To-Do's" },
408{ "Todo","Todo" }, 408{ "Todo","Todo" },
409{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" }, 409{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" },
410{ "ToDoView:","Todo Ansicht:" }, 410{ "ToDoView:","Todo Ansicht:" },
411{ "Toggle Alarm","Wechsle Alarm" }, 411{ "Toggle Alarm","Wechsle Alarm" },
412{ "Toggle Allday","Umschalten Ganztag" }, 412{ "Toggle Allday","Umschalten Ganztag" },
413{ "Tomorrow: ","Morgen: " }, 413{ "Tomorrow: ","Morgen: " },
414{ "Tue","Di" }, 414{ "Tue","Di" },
415{ "Tuesday","Dienstag" }, 415{ "Tuesday","Dienstag" },
416{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" }, 416{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" },
417{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." }, 417{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." },
418{ "Unknown","Unbekannt" }, 418{ "Unknown","Unbekannt" },
419{ "Up","Hinauf" }, 419{ "Up","Hinauf" },
420{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" }, 420{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" },
421{ "User defined","Benutzerdefiniert" }, 421{ "User defined","Benutzerdefiniert" },
422{ "User long date:","Format langes Datum:" }, 422{ "User long date:","Format langes Datum:" },
423{ "User short date:","Forma kurzes Datum:" }, 423{ "User short date:","Forma kurzes Datum:" },
424{ "View","Ansicht" }, 424{ "View","Ansicht" },
425{ "View Fonts","Schriftarten Ansichten" }, 425{ "View Fonts","Schriftarten Ansichten" },
426{ "Views","Ansichten" }, 426{ "Views","Ansichten" },
427{ "Wed","Mi" }, 427{ "Wed","Mi" },
428{ "Wednesday","Mittwoch" }, 428{ "Wednesday","Mittwoch" },
429{ "Week %1","Woche %1" }, 429{ "Week %1","Woche %1" },
430{ "Weekly","Wöchentlich" }, 430{ "Weekly","Wöchentlich" },
431{ "Week starts on Sunday","Woche beginnt Sonntags" }, 431{ "Week starts on Sunday","Woche beginnt Sonntags" },
432{ "What's Next View:","What's Next Anz." }, 432{ "What's Next View:","What's Next Anz." },
433{ "What's next ?","Was kommt als nächstes?(What's Next)" }, 433{ "What's next ?","Was kommt als nächstes?(What's Next)" },
434{ "Working Hours","Tägliche Arbeitszeit" }, 434{ "Working Hours","Tägliche Arbeitszeit" },
435{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" }, 435{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" },
436{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" }, 436{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" },
437{ "Write back synced file","Syncronisierte Datei zurückschreiben" }, 437{ "Write back synced file","Syncronisierte Datei zurückschreiben" },
438{ "Yearly","Jährlich" }, 438{ "Yearly","Jährlich" },
439{ "year(s)","Jahr(e)" }, 439{ "year(s)","Jahr(e)" },
440{ "Yes","Ja" }, 440{ "Yes","Ja" },
441{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" }, 441{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" },
442{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." }, 442{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." },
443{ "week(s) on:","Woche(n) am: " }, 443{ "week(s) on:","Woche(n) am: " },
444{ "Full menu bar(nr)","Volle Menuleiste(bn)" }, 444{ "Full menu bar(nr)","Volle Menuleiste(bn)" },
445{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 445{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
446{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 446{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
447{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 447{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
448{ "Daylight start:","Sommerzeit Beginn:" }, 448{ "Daylight start:","Sommerzeit Beginn:" },
449{ "Daylight end:","Sommerzeit Ende:" }, 449{ "Daylight end:","Sommerzeit Ende:" },
450{ "Time Zone","Zeitzone" }, 450{ "Time Zone","Zeitzone" },
451{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" }, 451{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" },
452{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" }, 452{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" },
453{ "minutely","minütlich" }, 453{ "minutely","minütlich" },
454{ "hourly","stündlich" }, 454{ "hourly","stündlich" },
455{ "daily","täglich" }, 455{ "daily","täglich" },
456{ "weekly","wöchentlich" }, 456{ "weekly","wöchentlich" },
457{ "monthly","monatlich" }, 457{ "monthly","monatlich" },
458{ "day-monthly","tag-monatlich" }, 458{ "day-monthly","tag-monatlich" },
459{ "month-yearly","monat-jährlich" }, 459{ "month-yearly","monat-jährlich" },
460{ "day-yearly","tag-jährlich" }, 460{ "day-yearly","tag-jährlich" },
461{ "position-yearly","pos-jährlich" }, 461{ "position-yearly","pos-jährlich" },
462{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" }, 462{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" },
463{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" }, 463{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" },
464{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" }, 464{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" },
465{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" }, 465{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" },
466{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" }, 466{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" },
467{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." }, 467{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." },
468{ "Event list view uses full window","Listenansicht nutzt Vollbild" }, 468{ "Event list view uses full window","Listenansicht nutzt Vollbild" },
469{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" }, 469{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" },
470{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" }, 470{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" },
471{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" }, 471{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" },
472{ "ViewChange","Ansichtswechsel" }, 472{ "ViewChange","Ansichtswechsel" },
473{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" }, 473{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" },
474{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" }, 474{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" },
475{ "File","Datei" }, 475{ "File","Datei" },
476{ "Clone...","Dupliziere.." }, 476{ "Clone...","Dupliziere.." },
477{ "Move...","Bewege..." }, 477{ "Move...","Bewege..." },
478{ "Beam...","Sende via IR..." }, 478{ "Beam...","Sende via IR..." },
479{ "&Clone...","Dupliziere.." }, 479{ "&Clone...","Dupliziere.." },
480{ "&Move...","Bewege..." }, 480{ "&Move...","Bewege..." },
481{ "&Beam...","Sende via IR..." }, 481{ "&Beam...","Sende via IR..." },
482{ "Show Completed","Zeige erledigte Todos" }, 482{ "Show Completed","Zeige erledigte Todos" },
483{ "Show Quick Todo","Zeige Quick Todo" }, 483{ "Show Quick Todo","Zeige Quick Todo" },
484{ "Unparent Todo","Un-sub Todo" }, 484{ "Unparent Todo","Un-sub Todo" },
485{ "Save selected to file...","Speichere Selektierte..." }, 485{ "Save selected to file...","Speichere Selektierte..." },
486{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." }, 486{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." },
487{ "Set Categ. for selected...","Setze Kateg. für Selekt." }, 487{ "Set Categ. for selected...","Setze Kateg. für Selekt." },
488{ "Beam selected via IR","Sende Selekt. via IR..." }, 488{ "Beam selected via IR","Sende Selekt. via IR..." },
489{ "Search","Suchen" }, 489{ "Search","Suchen" },
490{ "Date Picker","Datum auswählen" }, 490{ "Date Picker","Datum auswählen" },
491{ "Day View","Tagesansicht" }, 491{ "Day View","Tagesansicht" },
492{ "Work Week","Arbeitswoche" }, 492{ "Work Week","Arbeitswoche" },
493{ "Week","Wochenansicht" }, 493{ "Week","Wochenansicht" },
494{ "Month","Monatsansicht" }, 494{ "Month","Monatsansicht" },
495{ "Todo View","Todo Liste" }, 495{ "Todo View","Todo Liste" },
496{ "Journal","Journal Ansicht" }, 496{ "Journal","Journal" },
497{ "Next days","Nächste Tage" }, 497{ "Next days","Nächste Tage" },
498{ "Print agenda selection...","Drucke Agendaselektion..." }, 498{ "Print agenda selection...","Drucke Agendaselektion..." },
499{ "Toggle DateNavigator","Navigator umschalten" }, 499{ "Toggle DateNavigator","Navigator umschalten" },
500{ "Toggle FilterView","Filteransicht umschalten" }, 500{ "Toggle FilterView","Filteransicht umschalten" },
501{ "Prev. month","Vorheriger Monat" }, 501{ "Prev. month","Vorheriger Monat" },
502{ "Go backward","Gehe zurück" }, 502{ "Go backward","Gehe zurück" },
503{ "Go forward","Gehe weiter" }, 503{ "Go forward","Gehe weiter" },
504{ "Synchronize","Synchronisieren" }, 504{ "Synchronize","Synchronisieren" },
505{ "AgendaSize","Agendagröße" }, 505{ "AgendaSize","Agendagröße" },
506{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" }, 506{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" },
507{ "Import last file","Importiere letzte Datei" }, 507{ "Import last file","Importiere letzte Datei" },
508{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." }, 508{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." },
509{ "Load Calendar Backup","Lade Kalender Backup" }, 509{ "Load Calendar Backup","Lade Kalender Backup" },
510{ "Save Calendar Backup","Speichere Kalender Backup" }, 510{ "Save Calendar Backup","Speichere Kalender Backup" },
511{ "Export VCalendar","Exportiere VCalendar" }, 511{ "Export VCalendar","Exportiere VCalendar" },
512{ "Manage new categories...","Verwalte neue Kategorien..." }, 512{ "Manage new categories...","Verwalte neue Kategorien..." },
513{ "Beam complete calendar...","Sende kompletten Kalender via IR" }, 513{ "Beam complete calendar...","Sende kompletten Kalender via IR" },
514{ "Beam filtered calendar...","Sende gefilterten Kalender via IR" }, 514{ "Beam filtered calendar...","Sende gefilterten Kalender via IR" },
515{ "Remote via ssh","Über Netzwerk via ssh" }, 515{ "Remote via ssh","Über Netzwerk via ssh" },
516{ "With local file","Mit lokaler Datei" }, 516{ "With local file","Mit lokaler Datei" },
517{ "With last file","Mit letzter Datei" }, 517{ "With last file","Mit letzter Datei" },
518{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" }, 518{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" },
519{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" }, 519{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" },
520{ "Save filename","Speichern: Dateinamen wählen" }, 520{ "Save filename","Speichern: Dateinamen wählen" },
521{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" }, 521{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" },
522{ "KO/Pi: Warning!","KO/Pi: Warnung!" }, 522{ "KO/Pi: Warning!","KO/Pi: Warnung!" },
523{ "Overwrite!","Überschreibe!" }, 523{ "Overwrite!","Überschreibe!" },
524{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 524{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
525{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" }, 525{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" },
526{ "KO/Pi Confirmation","KO/Pi Bestätigung" }, 526{ "KO/Pi Confirmation","KO/Pi Bestätigung" },
527{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" }, 527{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" },
528{ "Deleting item %d ...","Lösche Eintrag %d ..." }, 528{ "Deleting item %d ...","Lösche Eintrag %d ..." },
529{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." }, 529{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." },
530{ "Size","Größe" }, 530{ "Size","Größe" },
531{ "Date","Datum" }, 531{ "Date","Datum" },
532{ "Mime Type","Datei Typ" }, 532{ "Mime Type","Datei Typ" },
533{ "All Files","Alle Dateien" }, 533{ "All Files","Alle Dateien" },
534{ "Files","Dateien" }, 534{ "Files","Dateien" },
535{ "Documents","DoKumente" }, 535{ "Documents","DoKumente" },
536{ "Select Categories","Selektiere Kategorien" }, 536{ "Select Categories","Selektiere Kategorien" },
537{ " &Deselect All "," Auswahl aufheben " }, 537{ " &Deselect All "," Auswahl aufheben " },
538{ "A&dd","Hinzu" }, 538{ "A&dd","Hinzu" },
539{ "&Modify","Ändern" }, 539{ "&Modify","Ändern" },
540{ "Edit Categories","Editiere Kategorien" }, 540{ "Edit Categories","Editiere Kategorien" },
541{ " &Edit Categories "," &Editiere Kategorien " }, 541{ " &Edit Categories "," &Editiere Kategorien " },
542{ "Beam Options","Beam Einstellungen" }, 542{ "Beam Options","Beam Einstellungen" },
543{ " With timezone "," Mit Zeitzone " }, 543{ " With timezone "," Mit Zeitzone " },
544{ " Local time ", " Lokale Zeit " }, 544{ " Local time ", " Lokale Zeit " },
545{ "Manage new Categories","Verwalte neue Kategorien" }, 545{ "Manage new Categories","Verwalte neue Kategorien" },
546{ "Add to category list","Füge zur Kategorieliste hinzu" }, 546{ "Add to category list","Füge zur Kategorieliste hinzu" },
547{ "Remove from Events/Todos","Entferne von Terminen/Todos" }, 547{ "Remove from Events/Todos","Entferne von Terminen/Todos" },
548{ "After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nTerminen oder Todos geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " }, 548{ "After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nTerminen oder Todos geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " },
549{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" }, 549{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" },
550{ "File format","Datei Format" }, 550{ "File format","Datei Format" },
551{ "Time format","Zeit Format" }, 551{ "Time format","Zeit Format" },
552{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." }, 552{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." },
553{ "KO/Pi:File Saved. Needed %d sec, %d ms","KO/Pi: Abgespeichert in %d sec, %d ms" }, 553{ "KO/Pi:File Saved. Needed %d sec, %d ms","KO/Pi: Abgespeichert in %d sec, %d ms" },
554{ "h","Std" }, 554{ "h","Std" },
555{ "min","Min" }, 555{ "min","Min" },
556{ "hou","Std" }, 556{ "hou","Std" },
557{ "day","Tag" }, 557{ "day","Tag" },
558{ "French","Französich" }, 558{ "French","Französich" },
559{ "Time","Zeit" }, 559{ "Time","Zeit" },
560{ "Event Viewer","Termin Ansicht" }, 560{ "Event Viewer","Termin Ansicht" },
561{ "Cancel Sync","Sync Abbrechen" }, 561{ "Cancel Sync","Sync Abbrechen" },
562{ "Remote","Fern" }, 562{ "Remote","Fern" },
563{ "Local","Lokal" }, 563{ "Local","Lokal" },
564{ "Conflict! Please choose entry","Konflikt! Bitte Eintrag wählen" }, 564{ "Conflict! Please choose entry","Konflikt! Bitte Eintrag wählen" },
565{ "Local: ","Lokal: " }, 565{ "Local: ","Lokal: " },
566{ "Remote: ","Fern: " }, 566{ "Remote: ","Fern: " },
567{ "Last modified: ","Zuletzt geändert: " }, 567{ "Last modified: ","Zuletzt geändert: " },
568{ "Location: ","Ort: " }, 568{ "Location: ","Ort: " },
569{ "<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>","<p><b>Von:</b> %1 </p><p><b>Bis:</b> %2</p>" }, 569{ "<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>","<p><b>Von:</b> %1 </p><p><b>Bis:</b> %2</p>" },
570{ "<p><b>On:</b> %1</p>","<p><b>Am:</b> %1</p>" }, 570{ "<p><b>On:</b> %1</p>","<p><b>Am:</b> %1</p>" },
571{ "<p><b>From:</b> %1</p> ","<p><b>Von:</b> %1</p> " }, 571{ "<p><b>From:</b> %1</p> ","<p><b>Von:</b> %1</p> " },
572{ "<p><b>To:</b> %1</p>","<p><b>Bis:</b> %1</p>" }, 572{ "<p><b>To:</b> %1</p>","<p><b>Bis:</b> %1</p>" },
573{ "<p><b>On:</b> %1</p> ","<p><b>Am:</b> %1</p> " }, 573{ "<p><b>On:</b> %1</p> ","<p><b>Am:</b> %1</p> " },
574{ "<p><b>From:</b> %1 <b>To:</b> %2</p>","<p><b>Von:</b> %1 <b>Bis:</b> %2</p>" }, 574{ "<p><b>From:</b> %1 <b>To:</b> %2</p>","<p><b>Von:</b> %1 <b>Bis:</b> %2</p>" },
575{ "This is a %1 recurring event.","Das ist ein %1 wiederholender Termin." }, 575{ "This is a %1 recurring event.","Das ist ein %1 wiederholender Termin." },
576{ "<b>Next recurrence is on:</b>","<b>Nächste Wiederholung ist am:</b>" }, 576{ "<b>Next recurrence is on:</b>","<b>Nächste Wiederholung ist am:</b>" },
577{ "<b>Last recurrence was on:</b>","<b>Letzte Wiederholung war am:</b>" }, 577{ "<b>Last recurrence was on:</b>","<b>Letzte Wiederholung war am:</b>" },
578{ "( %1 min before )","( %1 min vorher )" }, 578{ "( %1 min before )","( %1 min vorher )" },
579{ "<b>Alarm on: ","<b>Alarm am: " }, 579{ "<b>Alarm on: ","<b>Alarm am: " },
580{ "<b>Details: </b>","<b>Details: </b>" }, 580{ "<b>Details: </b>","<b>Details: </b>" },
581{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 581{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
582{ "<p><i>%1 % completed</i></p>","<p><i>%1 % erledigt</i></p>" }, 582{ "<p><i>%1 % completed</i></p>","<p><i>%1 % erledigt</i></p>" },
583{ "Organizer","Organisator" }, 583{ "Organizer","Organisator" },
584{ "Save","Speichern" }, 584{ "Save","Speichern" },
585{ "Exit (+save)","Beenden (+ speichern)" }, 585{ "Exit (+save)","Beenden (+ speichern)" },
586{ "Home","Zuhause" }, 586{ "Home","Zuhause" },
587{ "Office","Büro" }, 587{ "Office","Büro" },
588{ "Libary","Bücherei" }, 588{ "Libary","Bücherei" },
589{ "Doctor","Arzt" }, 589{ "Doctor","Arzt" },
590{ "Beach","Strand" }, 590{ "Beach","Strand" },
591{ "Conference room","Konferenzraum" }, 591{ "Conference room","Konferenzraum" },
592{ "Drive Home","Heimfahrt" }, 592{ "Drive Home","Heimfahrt" },
593{ "Watch TV","Tv gucken" }, 593{ "Watch TV","Tv gucken" },
594{ "Phone call","Telefonanruf" }, 594{ "Phone call","Telefonanruf" },
595{ "Pay bill","Rechnung bezahlen" }, 595{ "Pay bill","Rechnung bezahlen" },
596{ "Read book","Buch lesen" }, 596{ "Read book","Buch lesen" },
597{ "Watering plants","Pflanzen giessen" }, 597{ "Watering plants","Pflanzen giessen" },
598{"Appointment","Verabredung" }, 598{"Appointment","Verabredung" },
599{"Birthday","Geburtstag" }, 599{"Birthday","Geburtstag" },
600{"Business","Geschäft" }, 600{"Business","Geschäft" },
601{"Business Travel","Geschäftsreise" }, 601{"Business Travel","Geschäftsreise" },
602{"Cinema","Kino" }, 602{"Cinema","Kino" },
603{"Customer","Kunde" }, 603{"Customer","Kunde" },
604{"Break","Pause" }, 604{"Break","Pause" },
605{"Breakfast","Frühstück" }, 605{"Breakfast","Frühstück" },
606{"Competition","Wettkampf" }, 606{"Competition","Wettkampf" },
607{"Dinner","Abendessen" }, 607{"Dinner","Abendessen" },
608{"Education","Erziehung" }, 608{"Education","Erziehung" },
609{"Family","Familie" }, 609{"Family","Familie" },
610{"Favorites","Favoriten" }, 610{"Favorites","Favoriten" },
611{"Festival","Festival" }, 611{"Festival","Festival" },
612{"Fishing","Angeln" }, 612{"Fishing","Angeln" },
613{"Flight","Flug" }, 613{"Flight","Flug" },
614{"Gifts","Geschenk" }, 614{"Gifts","Geschenk" },
615{"Holiday","Feiertag" }, 615{"Holiday","Feiertag" },
616{"Holiday Cards","Ansichtskarten" }, 616{"Holiday Cards","Ansichtskarten" },
617{"Hot Contacts","Heisse Kontakte" }, 617{"Hot Contacts","Heisse Kontakte" },
618{"Hiking","Wandern" }, 618{"Hiking","Wandern" },
619{"Hunting","Jagen" }, 619{"Hunting","Jagen" },
620{"Key Customer","Wichtiger Kunde" }, 620{"Key Customer","Wichtiger Kunde" },
621{"Kids","Kinder" }, 621{"Kids","Kinder" },
622{"Lunch","Mittagessen" }, 622{"Lunch","Mittagessen" },
623{"Meeting","Treffen" }, 623{"Meeting","Treffen" },
624{"Miscellaneous","Verschiedenes" }, 624{"Miscellaneous","Verschiedenes" },
625{"Partner","Partner" }, 625{"Partner","Partner" },
626{"Party","Partie" }, 626{"Party","Partie" },
627{"Personal","Privat" }, 627{"Personal","Privat" },
628{"Personal Travel","Privatreise"}, 628{"Personal Travel","Privatreise"},
629{"PHB","PHB" }, 629{"PHB","PHB" },
630{"Phone Calls","Telefonanruf" }, 630{"Phone Calls","Telefonanruf" },
631{"Projects","Projekt" }, 631{"Projects","Projekt" },
632{"Recurring","Wiederholend" }, 632{"Recurring","Wiederholend" },
633{"School","Schule" }, 633{"School","Schule" },
634{"Shopping","Einkaufen" }, 634{"Shopping","Einkaufen" },
635{"Speach","Rede" }, 635{"Speach","Rede" },
636{"Special Occasion","Spez.Gelegenheit" }, 636{"Special Occasion","Spez.Gelegenheit" },
637{"Sports","Sport" }, 637{"Sports","Sport" },
638{"Talk","Vortrag" }, 638{"Talk","Vortrag" },
639{"Travel","Reise" }, 639{"Travel","Reise" },
640{"TV","TV" }, 640{"TV","TV" },
641{"Germany","Deutschland" }, 641{"Germany","Deutschland" },
642{"Sweden","Schweden" }, 642{"Sweden","Schweden" },
643{"Forest","Wald" }, 643{"Forest","Wald" },
644{ "Desert","Wüste" }, 644{ "Desert","Wüste" },
645{ "Kitchen","Küche" }, 645{ "Kitchen","Küche" },
646{ "Lake","See" }, 646{ "Lake","See" },
647{"University","Universität"}, 647{"University","Universität"},
648{"Vacation","Urlaub" }, 648{"Vacation","Urlaub" },
649{"VIP","VIP" }, 649{"VIP","VIP" },
650{ "Import Sharp Calendar","Importiere Sharp Kalender" }, 650{ "Import Sharp Calendar","Importiere Sharp Kalender" },
651{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" }, 651{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" },
652{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" }, 652{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" },
653{ "Cancelled","Gecancelt" }, 653{ "Cancelled","Gecancelt" },
654{ "Multiple sync","Mehrfach Sync" }, 654{ "Multiple sync","Mehrfach Sync" },
655{ "Local file","Lokale Datei" }, 655{ "Local file","Lokale Datei" },
656{ "Last file","Letzte Datei" }, 656{ "Last file","Letzte Datei" },
657{ "Keys + Colors...","Tasten + Farben..." }, 657{ "Keys + Colors...","Tasten + Farben..." },
658{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" }, 658{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" },
659{ "Quick load/save (w/o Unicode)","Schnelles Laden/Speichern (o Unicode)" }, 659{ "Quick load/save (w/o Unicode)","Schnelles Laden/Speichern (o Unicode)" },
660{ "Choose...","Wähle..." }, 660{ "Choose...","Wähle..." },
661{ "Use colors for application:","Setze Farben für Programm:" }, 661{ "Use colors for application:","Setze Farben für Programm:" },
662{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" }, 662{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" },
663{ "Frames, labels, etc.:","Rahmen, Label, etc.:" }, 663{ "Frames, labels, etc.:","Rahmen, Label, etc.:" },
664{ "Show parent To-Do's","Zeige Ober-Todos" }, 664{ "Show parent To-Do's","Zeige Ober-Todos" },
665{ "Show location","Zeige Orte" }, 665{ "Show location","Zeige Orte" },
666{ "Show events that recur ","Zeige Termine, die sich wiederholen:" }, 666{ "Show events that recur ","Zeige Termine, die sich wiederholen:" },
667{ "Show in every cell ","Zeige in jeder Zelle " }, 667{ "Show in every cell ","Zeige in jeder Zelle " },
668{ "short month","kurzen Monat" }, 668{ "short month","kurzen Monat" },
669{ "icons","Icons" }, 669{ "icons","Icons" },
670{ "Show Sat/Sun together","Zeige Sam/Son zusammen" }, 670{ "Show Sat/Sun together","Zeige Sam/Son zusammen" },
671{ "Categorie colors are applied to text","Kategorie Farben färben Text" }, 671{ "Categorie colors are applied to text","Kategorie Farben färben Text" },
672{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" }, 672{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" },
673{ "Day color odd months","Tagesfarbe ungerade Monate" }, 673{ "Day color odd months","Tagesfarbe ungerade Monate" },
674{ "Day color even months","Tagesfarbe gerade Monate" }, 674{ "Day color even months","Tagesfarbe gerade Monate" },
675{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" }, 675{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" },
676{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" }, 676{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" },
677{ "Small To-do view uses smaller font","Kleine To-do Ansicht nutzt kleineren Font" }, 677{ "Small To-do view uses smaller font","Kleine To-do Ansicht nutzt kleineren Font" },
678{ "Colors are applied to text","Farben werden auf Text angewendet" }, 678{ "Colors are applied to text","Farben werden auf Text angewendet" },
679{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" }, 679{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" },
680{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" }, 680{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" },
681{ "Play beeps count:","Anzahl der Alarmpiepse: " }, 681{ "Play beeps count:","Anzahl der Alarmpiepse: " },
682{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " }, 682{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " },
683{ "Default suspend time in min:","Standard Supendierungs Zeit: " }, 683{ "Default suspend time in min:","Standard Supendierungs Zeit: " },
684{ "Auto suspend count:","Anzahl der auto Suspendierungen" }, 684{ "Auto suspend count:","Anzahl der auto Suspendierungen" },
685{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" }, 685{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" },
686{ "New profile","Neues Profil" }, 686{ "New profile","Neues Profil" },
687{ "Clone profile","Klone Profil" }, 687{ "Clone profile","Klone Profil" },
688{ "Delete profile","Lösche Profil" }, 688{ "Delete profile","Lösche Profil" },
689{ "Profile:","Profil:" }, 689{ "Profile:","Profil:" },
690{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" }, 690{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" },
691{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" }, 691{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" },
692{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" }, 692{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" },
693{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" }, 693{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" },
694{ "Write back file","Schreibe Datei zurück" }, 694{ "Write back file","Schreibe Datei zurück" },
695{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" }, 695{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" },
696{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" }, 696{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" },
697{ "Local device name:","Name dieses Gerätes:" }, 697{ "Local device name:","Name dieses Gerätes:" },
698{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" }, 698{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" },
699{ "Sync preferences","Synchronisations Einstellungen" }, 699{ "Sync preferences","Synchronisations Einstellungen" },
700{ "Profile kind","Profil Art" }, 700{ "Profile kind","Profil Art" },
701{ "Local file","Lokale Datei" }, 701{ "Local file","Lokale Datei" },
702{ "Local file:","Lokale Datei:" }, 702{ "Local file:","Lokale Datei:" },
703{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, 703{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" },
704{ "Fill in default values for:","Setze Beispiel Werte ein für:" }, 704{ "Fill in default values for:","Setze Beispiel Werte ein für:" },
705{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, 705{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" },
706{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, 706{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"},
707{ "Device","Gerät:" }, 707{ "Device","Gerät:" },
708{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, 708{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" },
709{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" }, 709{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" },
710{ "Synchronization successful","Synchronisation erfolgreich" }, 710{ "Synchronization successful","Synchronisation erfolgreich" },
711{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, 711{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." },
712{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, 712{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" },
713{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, 713{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" },
714{ "Enter password","Passwort eingeben" }, 714{ "Enter password","Passwort eingeben" },
715{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, 715{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" },
716{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, 716{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." },
717{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, 717{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" },
718{ "Writing back file result: ","Resultat des Dateizurückschreibens: " }, 718{ "Writing back file result: ","Resultat des Dateizurückschreibens: " },
719{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, 719{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" },
720{ "Edit Calendar Filters","Editiere Kalendar Filter" }, 720{ "Edit Calendar Filters","Editiere Kalendar Filter" },
721{ "Enter filter name:","Neuer Filter Name:" }, 721{ "Enter filter name:","Neuer Filter Name:" },
722{ "Add Filter","Filter hinzufügen" }, 722{ "Add Filter","Filter hinzufügen" },
723{ "Question","Frage" }, 723{ "Question","Frage" },
724{ "Filter position: ","Filter Position: " }, 724{ "Filter position: ","Filter Position: " },
725{ "Month View","Monatsansicht" }, 725{ "Month View","Monatsansicht" },
726{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" }, 726{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" },
727{ "KO/Pi config error","KO/Pi Konfig. Fehler" }, 727{ "KO/Pi config error","KO/Pi Konfig. Fehler" },
728{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, 728{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" },
729{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" }, 729{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" },
730{ "Access: ","Zugriff: " }, 730{ "Access: ","Zugriff: " },
731{ "Needs Action","Aktion notwendig" }, 731{ "Needs Action","Aktion notwendig" },
732{ "Accepted","Akzeptiert" }, 732{ "Accepted","Akzeptiert" },
733{ "Declined","Abgelehnt" }, 733{ "Declined","Abgelehnt" },
734{ "Tentative","Vorläufig" }, 734{ "Tentative","Vorläufig" },
735{ "Delegated","Beauftragt" }, 735{ "Delegated","Beauftragt" },
736{ "Completed","Vollständig" }, 736{ "Completed","Vollständig" },
737{ "In Process","In Bearbeitung" }, 737{ "In Process","In Bearbeitung" },
738{ "Participant","Teilnehmer" }, 738{ "Participant","Teilnehmer" },
739{ "Optional Participant","Möglicher Teilnehmer" }, 739{ "Optional Participant","Möglicher Teilnehmer" },
740{ "Observer","Beobachter" }, 740{ "Observer","Beobachter" },
741{ "Chair","Vorsitzender" }, 741{ "Chair","Vorsitzender" },
742{ "Not supported \non desktop!\n","" }, 742{ "Not supported \non desktop!\n","" },
743{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die vertikale Auswahl zum Drucken zu bestimmen,\nbitte einen vertikalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen.\n(Es wird danach direkt der Termin Dialog angezeigt\n - dort bitte auf Abbrechen klicken) " }, 743{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die vertikale Auswahl zum Drucken zu bestimmen,\nbitte einen vertikalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen.\n(Es wird danach direkt der Termin Dialog angezeigt\n - dort bitte auf Abbrechen klicken) " },
744{ "Date range: ","Datums Zeitspanne: " }, 744{ "Date range: ","Datums Zeitspanne: " },
745{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " }, 745{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " },
746{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." }, 746{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." },
747{ "Add / remove events","Add./entferne Termine" }, 747{ "Add / remove events","Add./entferne Termine" },
748{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." }, 748{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." },
749{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." }, 749{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." },
750{ "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, 750{ "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" },
751{ "Overwrite","Überschreiben" }, 751{ "Overwrite","Überschreiben" },
752{ "Sync+save","Syncen+speichern" }, 752{ "Sync+save","Syncen+speichern" },
753{ "Default","Standard" }, 753{ "Default","Standard" },
754{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, 754{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " },
755{ " %d items?"," %d Einträge?" }, 755{ " %d items?"," %d Einträge?" },
756{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" }, 756{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" },
757{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, 757{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" },
758{ "Current","Aktuelle" }, 758{ "Current","Aktuelle" },
759{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" }, 759{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" },
760{ "All","Alle" }, 760{ "All","Alle" },
761{ "Data Loss Warning","Datenverlust Warnung" }, 761{ "Data Loss Warning","Datenverlust Warnung" },
762{ "Proceed","Weitermachen" }, 762{ "Proceed","Weitermachen" },
763{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, 763{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" },
764{ "Filter disabled ","Filter abgeschaltet" }, 764{ "Filter disabled ","Filter abgeschaltet" },
765{ "Filter selected: ","Gewählter Filter: " }, 765{ "Filter selected: ","Gewählter Filter: " },
766{ "Toggle Cancel","Gecancelt ändern" }, 766{ "Toggle Cancel","Gecancelt ändern" },
767{ "&Toggle Cancel","Gecancel&t ändern" }, 767{ "&Toggle Cancel","Gecancel&t ändern" },
768{ "Configure Toolbar","Konfiguriere Toolbar" }, 768{ "Configure Toolbar","Konfiguriere Toolbar" },
769{ "Stretched TB","Gedehnte TB" }, 769{ "Stretched TB","Gedehnte TB" },
770{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, 770{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" },
771{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, 771{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" },
772{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" }, 772{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" },
773{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, 773{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" },
774{ "Imported file successfully","Datei erfolgreich importiert" }, 774{ "Imported file successfully","Datei erfolgreich importiert" },
775{ "Error importing file","Fehler beim Importieren der Datei" }, 775{ "Error importing file","Fehler beim Importieren der Datei" },
776{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, 776{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" },
777{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" }, 777{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" },
778{ "Overwrite!","Überschreiben!" }, 778{ "Overwrite!","Überschreiben!" },
779{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" }, 779{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" },
780{ "Load backup filename","Lade Backup Dateiname" }, 780{ "Load backup filename","Lade Backup Dateiname" },
781{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, 781{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" },
782{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, 782{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" },
783{ "Save backup filename","Speichere Backup Dateiname" }, 783{ "Save backup filename","Speichere Backup Dateiname" },
784{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" }, 784{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" },
785{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 785{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
786{ "Details of attendee","Teilnehmerdetails" }, 786{ "Details of attendee","Teilnehmerdetails" },
787{ "Work phone:\n","Telefon Arbeit:\n" }, 787{ "Work phone:\n","Telefon Arbeit:\n" },
788{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, 788{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" },
789{ "Home phone:\n","Telefon privat:\n" }, 789{ "Home phone:\n","Telefon privat:\n" },
790{ "Mobile home phone:\n","Mobiltelefon privat:\n" }, 790{ "Mobile home phone:\n","Mobiltelefon privat:\n" },
791{ "Email:\n","Email:\n" }, 791{ "Email:\n","Email:\n" },
792{ "Alarm disabled for this item","Alarm deaktiviert für dieses Item" }, 792{ "Alarm disabled for this item","Alarm deaktiviert für dieses Item" },
793{ "Audio Al.: ","Audio Al.: " }, 793{ "Audio Al.: ","Audio Al.: " },
794{ "Proc.Al.: ","Proz.Al.: " }, 794{ "Proc.Al.: ","Proz.Al.: " },
795{ "No sound set","Kein Sound definiert" }, 795{ "No sound set","Kein Sound definiert" },
796{ "*.wav|Wav Files","*.wav|Wav Dateien" }, 796{ "*.wav|Wav Files","*.wav|Wav Dateien" },
797{ "No program set","Kein Programm definiert" }, 797{ "No program set","Kein Programm definiert" },
798{ "Running '%1'","Ausführen '%1'" }, 798{ "Running '%1'","Ausführen '%1'" },
799{ "Playing '%1'","Abspielen '%1'" }, 799{ "Playing '%1'","Abspielen '%1'" },
800{ "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" }, 800{ "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" },
801{ "Load!","Laden!" }, 801{ "Load!","Laden!" },
802{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" }, 802{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" },
803{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" }, 803{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" },
804{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" }, 804{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" },
805{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" }, 805{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" },
806{ "Features + hints...","Eigenschaften + Tipps..." }, 806{ "Features + hints...","Eigenschaften + Tipps..." },
807{ "User translation...","Benutzer Übersetzung..." }, 807{ "User translation...","Benutzer Übersetzung..." },
808{ "Sync HowTo...","Synchronisation HowTo..." }, 808{ "Sync HowTo...","Synchronisation HowTo..." },
809{ "Print calendar...","Drucke Kalender..." }, 809{ "Print calendar...","Drucke Kalender..." },
810{ "Anniversary","Jahrestag" }, 810{ "Anniversary","Jahrestag" },
811{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" }, 811{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" },
812{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" }, 812{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" },
813{ "Next recurrence is on: ","Nächste Wiederholung ist am:" }, 813{ "Next recurrence is on: ","Nächste Wiederholung ist am:" },
814{ "<b>Alarm on: </b>","<b>Alarm am: </b>" }, 814{ "<b>Alarm on: </b>","<b>Alarm am: </b>" },
815{ "<b>Access: </b>","<b>Zugriff: </b>" }, 815{ "<b>Access: </b>","<b>Zugriff: </b>" },
816{ "(%1 min before)","(%1 min vorher)" }, 816{ "(%1 min before)","(%1 min vorher)" },
817{ "<b>Categories: </b>","<b>Kategorien: </b>" }, 817{ "<b>Categories: </b>","<b>Kategorien: </b>" },
818{ "Save Journal/Description...","Speichere Journal/Details..." }, 818{ "Save Journal/Description...","Speichere Journal/Details..." },
819{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." }, 819{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." },
820{ "Continue","Weitermachen" }, 820{ "Continue","Weitermachen" },
821{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" }, 821{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" },
822{ "Attendee:","Teilnehmer:" }, 822{ "Attendee:","Teilnehmer:" },
823{ "Click OK to search ->","Klicke zum Suchen auf OK ->" }, 823{ "Click OK to search ->","Klicke zum Suchen auf OK ->" },
824{ "On day ","Am Tag " }, 824{ "On day ","Am Tag " },
825{ "%1 of ","%1 des Monats" }, 825{ "%1 of ","%1 des Monats" },
826{ "%1 of the year","%1 des Jahres" }, 826{ "%1 of the year","%1 des Jahres" },
827{ "Anonymous","Anonymo" }, 827{ "Anonymous","Anonymo" },
828{ "nobody@nowhere","niemand@nirgendwo" }, 828{ "nobody@nowhere","niemand@nirgendwo" },
829{ "calendar.html","calendar.html" }, 829{ "calendar.html","calendar.html" },
830{ " Local Time"," Locale Zeit" }, 830{ " Local Time"," Locale Zeit" },
831{ "Unknown Name","Unbekannter Name" }, 831{ "Unknown Name","Unbekannter Name" },
832{ "unknown@nowhere","unbekannt@nirgendwo" }, 832{ "unknown@nowhere","unbekannt@nirgendwo" },
833{ "Beam via IR!","Beam via IR!" }, 833{ "Beam via IR!","Beam via IR!" },
834{ "Next Month","Nächster Monat" }, 834{ "Next Month","Nächster Monat" },
835{ "Prio","Prio" }, 835{ "Prio","Prio" },
836{ "Reparent Todo","Mache Sub-Todo" }, 836{ "Reparent Todo","Mache Sub-Todo" },
837{ "tomorrow","morgen" }, 837{ "tomorrow","morgen" },
838{ "today","heute" }, 838{ "today","heute" },
839{ "yesterday","gestern" }, 839{ "yesterday","gestern" },
840{ "Ok","Ok" }, 840{ "Ok","Ok" },
841{ "Ok+Agenda","Ok+Agenda" }, 841{ "Ok+Agenda","Ok+Agenda" },
842{ "Email","Email" }, 842{ "Email","Email" },
843{ "RSVP","RSVP" }, 843{ "RSVP","RSVP" },
844{ "Email:","Email:" }, 844{ "Email:","Email:" },
845{ "Appointment Time ","Termin Zeit " }, 845{ "Appointment Time ","Termin Zeit " },
846{ "2","2" }, 846{ "2","2" },
847{ "3","3" }, 847{ "3","3" },
848{ "4","4" }, 848{ "4","4" },
849{ " 0 %"," 0 %" }, 849{ " 0 %"," 0 %" },
850{ " 20 %"," 20 %" }, 850{ " 20 %"," 20 %" },
851{ " 40 %"," 40 %" }, 851{ " 40 %"," 40 %" },
852{ " 60 %"," 60 %" }, 852{ " 60 %"," 60 %" },
853{ " 80 %"," 80 %" }, 853{ " 80 %"," 80 %" },
854{ "100 %","100 %" }, 854{ "100 %","100 %" },
855{ "Filter","Filter" }, 855{ "Filter","Filter" },
856{ "Configure","Konfiguriere" }, 856{ "Configure","Konfiguriere" },
857{ "What's Next","What's Next" }, 857{ "What's Next","What's Next" },
858{ "Complete calendar...","Kompletten Kalender..." }, 858{ "Complete calendar...","Kompletten Kalender..." },
859{ "Filtered calendar...","Gefilterten Kalender..." }, 859{ "Filtered calendar...","Gefilterten Kalender..." },
860{ "Export to phone","Exportiere zum Handy" }, 860{ "Export to phone","Exportiere zum Handy" },
861{ "Beam receive enabled","Beam Empfang an" }, 861{ "Beam receive enabled","Beam Empfang an" },
862{ "What's new?","Was ist neu?" }, 862{ "What's new?","Was ist neu?" },
863{ "FAQ...","FAQ..." }, 863{ "FAQ...","FAQ..." },
864{ "Licence...","Licence..." }, 864{ "Licence...","Licence..." },
865{ "What's This?","What's This?" }, 865{ "What's This?","What's This?" },
866{ "&Edit...","&Editiere..." }, 866{ "&Edit...","&Editiere..." },
867{ "Oktober","Oktober" }, 867{ "Oktober","Oktober" },
868{ "Title","Titel" }, 868{ "Title","Titel" },
869{ "%1 %","%1 %" }, 869{ "%1 %","%1 %" },
870{ "Enable Pi-Sync","Schalte Pi-Sync an" }, 870{ "Enable Pi-Sync","Schalte Pi-Sync an" },
871{ "Import!","Importiere!" }, 871{ "Import!","Importiere!" },
872{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" }, 872{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" },
873{ "Export to phone options","Export ans Handy Optionen" }, 873{ "Export to phone options","Export ans Handy Optionen" },
874{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, 874{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." },
875{ "I/O device: ","I/O device: " }, 875{ "I/O device: ","I/O device: " },
876{ "Connection: ","Connection: " }, 876{ "Connection: ","Connection: " },
877{ "Model(opt.): ","Model(opt.): " }, 877{ "Model(opt.): ","Model(opt.): " },
878{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" }, 878{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" },
879{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " }, 879{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " },
880{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nTodo/Kalender Daten auf dem Handy!" }, 880{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nTodo/Kalender Daten auf dem Handy!" },
881{ "Export to mobile phone!","Exportiere auf das Handy!" }, 881{ "Export to mobile phone!","Exportiere auf das Handy!" },
882{ "Export complete calendar","Exportiere kompletten Kalender" }, 882{ "Export complete calendar","Exportiere kompletten Kalender" },
883{ "Writing to phone...","Sende Daten ans Handy..." }, 883{ "Writing to phone...","Sende Daten ans Handy..." },
884{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, 884{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" },
885{ "Retry","Nochmal versuchen" }, 885{ "Retry","Nochmal versuchen" },
886{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, 886{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" },
887{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, 887{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" },
888{ "Error exporting to phone!","Fehler beim Export auf das Handy!" }, 888{ "Error exporting to phone!","Fehler beim Export auf das Handy!" },
889{ "Export filtered calendar","Exportiere gefilterten Kalender" }, 889{ "Export filtered calendar","Exportiere gefilterten Kalender" },
890{ "Preferences","Vorlieben" }, 890{ "Preferences","Vorlieben" },
891{ "Global","Global" }, 891{ "Global","Global" },
892{ "Phone","Phone" }, 892{ "Phone","Phone" },
893{ "SMS","SMS" }, 893{ "SMS","SMS" },
894{ "Fax","Fax" }, 894{ "Fax","Fax" },
895{ "Pager","Pager" }, 895{ "Pager","Pager" },
896{ "SIP","SIP" }, 896{ "SIP","SIP" },
897{ "Italian","Italienisch" }, 897{ "Italian","Italienisch" },
898{ "24:00","24:00" }, 898{ "24:00","24:00" },
899{ "12:00am","12:00am" }, 899{ "12:00am","12:00am" },
900{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 900{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
901{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 901{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
902{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 902{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
903{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 903{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
904{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 904{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
905{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 905{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
906{ "Used Mail Client","Benutzter Mail Client" }, 906{ "Used Mail Client","Benutzter Mail Client" },
907{ "Channel:","Channel:" }, 907{ "Channel:","Channel:" },
908{ "Message:","Message:" }, 908{ "Message:","Message:" },
909{ "Parameters:","Parameter:" }, 909{ "Parameters:","Parameter:" },
910{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 910{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
911{ "extra Message:","extra Message:" }, 911{ "extra Message:","extra Message:" },
912{ "extra Parameters:","extra Parameter:" }, 912{ "extra Parameters:","extra Parameter:" },
913{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 913{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
914{ "External Apps.","Externe Appl." }, 914{ "External Apps.","Externe Appl." },
915{ "24 hours","24 Std." }, 915{ "24 hours","24 Std." },
916{ "3 hours","3 Std." }, 916{ "3 hours","3 Std." },
917{ "1 hour","1 Std." }, 917{ "1 hour","1 Std." },
918{ "15 minutes","15 Min." }, 918{ "15 minutes","15 Min." },
919{ "5 minutes","5 Min." }, 919{ "5 minutes","5 Min." },
920{ "1 minute","1 Min." }, 920{ "1 minute","1 Min." },
921{ "23","23" }, 921{ "23","23" },
922{ "Mon 15","Mon 15" }, 922{ "Mon 15","Mon 15" },
923{ "Configure KO","Konfiguriere KO" }, 923{ "Configure KO","Konfiguriere KO" },
924{ "Event text","Termin Text" }, 924{ "Event text","Termin Text" },
925{ "ToDo","Todo" }, 925{ "ToDo","Todo" },
926{ "Today","Heute" }, 926{ "Today","Heute" },
927{ "What's Next View","What's Next Ansicht" }, 927{ "What's Next View","What's Next Ansicht" },
928{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, 928{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" },
929{ "Alarm","Alarm" }, 929{ "Alarm","Alarm" },
930{ "Used %1 Client","Benutzter %1 Client" }, 930{ "Used %1 Client","Benutzter %1 Client" },
931{ "No email client installed","Kein Email Klient installiert" }, 931{ "No email client installed","Kein Email Klient installiert" },
932{ "Userdefined email client","Benutzerdef. Email Klient" }, 932{ "Userdefined email client","Benutzerdef. Email Klient" },
933{ "OM/Pi email client","OM/Pi Email Klient" }, 933{ "OM/Pi email client","OM/Pi Email Klient" },
934{ "Include in multiple ","Beziehe in multiple " }, 934{ "Include in multiple ","Beziehe in multiple " },
935{ "calendar ","Kalender " }, 935{ "calendar ","Kalender " },
936{ "addressbook ","Adressbuch " }, 936{ "addressbook ","Adressbuch " },
937{ "pwmanager","PWmanager" }, 937{ "pwmanager","PWmanager" },
938{ " sync"," Sync ein" }, 938{ " sync"," Sync ein" },
939{ "Write back synced data","Schreibe gesyncte Daten zurück" }, 939{ "Write back synced data","Schreibe gesyncte Daten zurück" },
940{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, 940{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" },
941{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, 941{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" },
942{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, 942{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " },
943{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, 943{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" },
944{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, 944{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" },
945{ "Help...","Hilfe..." }, 945{ "Help...","Hilfe..." },
946{ "Local file Cal:","Lokale Datei Kal:" }, 946{ "Local file Cal:","Lokale Datei Kal:" },
947{ "Local file ABook:","Lokale Datei ABuch:" }, 947{ "Local file ABook:","Lokale Datei ABuch:" },
948{ "Local file PWMgr:","Lokale Datei PWMgr:" }, 948{ "Local file PWMgr:","Lokale Datei PWMgr:" },
949{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, 949{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" },
950{ "Calendar:","Kalender:" }, 950{ "Calendar:","Kalender:" },
951{ "AddressBook:","AdressBuch:" }, 951{ "AddressBook:","AdressBuch:" },
952{ "PWManager:","PWManager:" }, 952{ "PWManager:","PWManager:" },
953{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, 953{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" },
954{ "ssh/scp","ssh/scp" }, 954{ "ssh/scp","ssh/scp" },
955{ "ftp","ftp" }, 955{ "ftp","ftp" },
956{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, 956{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" },
957{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, 957{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" },
958{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, 958{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" },
959{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, 959{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" },
960{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, 960{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" },
961{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, 961{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" },
962{ "KDE-Pim sync config","KDE-Pim sync Konfig" }, 962{ "KDE-Pim sync config","KDE-Pim sync Konfig" },
963{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, 963{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" },
964{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, 964{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" },
965{ "Port number (Default: %1)","Port Nummer (Default: %1)" }, 965{ "Port number (Default: %1)","Port Nummer (Default: %1)" },
966{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, 966{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" },
967{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, 967{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" },
968{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, 968{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" },
969{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, 969{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" },
970{ "Disable Pi-Sync","Schalte Pi-Sync aus" }, 970{ "Disable Pi-Sync","Schalte Pi-Sync aus" },
971{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, 971{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" },
972{ "KDE-Pim Sync","KDE-Pim Sync" }, 972{ "KDE-Pim Sync","KDE-Pim Sync" },
973{ "Multiple profiles","Multi-Sync Profile" }, 973{ "Multiple profiles","Multi-Sync Profile" },
974{ "Device: ","Gerät: " }, 974{ "Device: ","Gerät: " },
975{ "Multiple sync started.","Multi-Sync gestartet." }, 975{ "Multiple sync started.","Multi-Sync gestartet." },
976{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, 976{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" },
977{ "Turn filter on","Schalte Filter an" }, 977{ "Turn filter on","Schalte Filter an" },
978{ "Turn filter off","Schalte Filter aus" }, 978{ "Turn filter off","Schalte Filter aus" },
979{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, 979{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" },
980{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, 980{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" },
981{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, 981{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" },
982{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" }, 982{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" },
983{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" }, 983{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" },
984{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" }, 984{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" },
985{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" }, 985{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" },
986{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" }, 986{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" },
987{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" }, 987{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" },
988{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, 988{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" },
989{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, 989{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" },
990{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" }, 990{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" },
991{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, 991{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" },
992{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, 992{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" },
993{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" }, 993{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" },
994{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" }, 994{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" },
995{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, 995{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" },
996{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" }, 996{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" },
997{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, 997{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" },
998{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" }, 998{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" },
999{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" }, 999{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" },
1000{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" }, 1000{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" },
1001{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" }, 1001{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" },
1002{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, 1002{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" },
1003{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" }, 1003{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" },
1004{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, 1004{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" },
1005{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, 1005{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" },
1006{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, 1006{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" },
1007{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, 1007{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" },
1008{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, 1008{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" },
1009{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, 1009{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" },
1010{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, 1010{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" },
1011{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, 1011{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" },
1012{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, 1012{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" },
1013{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, 1013{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" },
1014{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, 1014{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" },
1015{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, 1015{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" },
1016{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" }, 1016{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" },
1017{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, 1017{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" },
1018{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, 1018{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" },
1019{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" }, 1019{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" },
1020{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" }, 1020{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" },
1021{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" }, 1021{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" },
1022{ "<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ","<p><b>X</b>: Nächste-X-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " }, 1022{ "<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ","<p><b>X</b>: Nächste-X-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " },
1023{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" }, 1023{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" },
1024{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" }, 1024{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" },
1025{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" }, 1025{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" },
1026{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" }, 1026{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" },
1027{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" }, 1027{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" },
1028{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" }, 1028{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" },
1029{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, 1029{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" },
1030{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" }, 1030{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" },
1031{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, 1031{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" },
1032{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, 1032{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" },
1033{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, 1033{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" },
1034{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" }, 1034{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" },
1035{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" }, 1035{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" },
1036{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" }, 1036{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" },
1037{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" }, 1037{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" },
1038{ "KO/Pi FAQ","KO/Pi FAQ" }, 1038{ "KO/Pi FAQ","KO/Pi FAQ" },
1039{ "PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n","PDA-Edition\nfür: Zaurus 5x00/7x0/860/3000/6000\n" }, 1039{ "PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n","PDA-Edition\nfür: Zaurus 5x00/7x0/860/3000/6000\n" },
1040{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" }, 1040{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" },
1041{ "About KOrganizer/Pi","Über KOrganizer/Pi" }, 1041{ "About KOrganizer/Pi","Über KOrganizer/Pi" },
1042{ "From: ","Von: " }, 1042{ "From: ","Von: " },
1043{ "Remove sync info","Entferne Sync Info" }, 1043{ "Remove sync info","Entferne Sync Info" },
1044{ "For all profiles","Für alle Profile" }, 1044{ "For all profiles","Für alle Profile" },
1045{ "Hide not Running","Verstecke nicht Laufende" }, 1045{ "Hide not Running","Verstecke nicht Laufende" },
1046{ "ME","ME" }, 1046{ "ME","ME" },
1047{ "Toolbar","Toolbar" }, 1047{ "Toolbar","Toolbar" },
1048{ "Undo Delete...","Löschen rückgängig machen..." }, 1048{ "Undo Delete...","Löschen rückgängig machen..." },
1049{ "Undo Delete","Löschen rückgängig machen" }, 1049{ "Undo Delete","Löschen rückgängig machen" },
1050{ "KDE Sync HowTo...","KDE Sync HowTo..." }, 1050{ "KDE Sync HowTo...","KDE Sync HowTo..." },
1051{ "Multi Sync HowTo...","Multi Sync HowTo..." }, 1051{ "Multi Sync HowTo...","Multi Sync HowTo..." },
1052{ "Januar","Januar" }, 1052{ "Januar","Januar" },
1053{ "KO/Pi Keys + Colors","KO/Pi Tasten + Farben" }, 1053{ "KO/Pi Keys + Colors","KO/Pi Tasten + Farben" },
1054{ "No Filter","Kein Filter" }, 1054{ "No Filter","Kein Filter" },
1055{ "Multiple Sync options","Multi Sync Optionen" }, 1055{ "Multiple Sync options","Multi Sync Optionen" },
1056{ "Sync algo options","Sync Ablauf Optionen" }, 1056{ "Sync algo options","Sync Ablauf Optionen" },
1057{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" }, 1057{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" },
1058{ "Incoming calendar filter:","Eingehender Kalender Filter:" }, 1058{ "Incoming calendar filter:","Eingehender Kalender Filter:" },
1059{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" }, 1059{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" },
1060{ "Write back options","Optionen zum Zurückschreiben" }, 1060{ "Write back options","Optionen zum Zurückschreiben" },
1061{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" }, 1061{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" },
1062{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" }, 1062{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" },
1063{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" }, 1063{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" },
1064{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" }, 1064{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" },
1065{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" }, 1065{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" },
1066{ "Time period","Zeitspanne" }, 1066{ "Time period","Zeitspanne" },
1067{ "From ","Von " }, 1067{ "From ","Von " },
1068{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " }, 1068{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " },
1069{ " weeks in the future "," Wochen in der Zukunft " }, 1069{ " weeks in the future "," Wochen in der Zukunft " },
1070{ "Profile kind specific settings","Profil Art abhängige Einstellungen" }, 1070{ "Profile kind specific settings","Profil Art abhängige Einstellungen" },
1071{ "Local temp file:","Lokale temp Datei:" }, 1071{ "Local temp file:","Lokale temp Datei:" },
1072{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" }, 1072{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" },
1073{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" }, 1073{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" },
1074{ "Language","Sprache" }, 1074{ "Language","Sprache" },
1075{ "Time Format","Zeit Format" }, 1075{ "Time Format","Zeit Format" },
1076{ "Time Zone","Zeit Zone" }, 1076{ "Time Zone","Zeit Zone" },
1077{ "%1 groups subscribed","%1 Guppen abboniert" }, 1077{ "%1 groups subscribed","%1 Guppen abboniert" },
1078{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Aktuelles Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverz.)/apps/kopiemail/localmail" }, 1078{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Aktuelles Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverz.)/apps/kopiemail/localmail" },
1079{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" }, 1079{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" },
1080{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" }, 1080{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" },
1081{ "Save settings","Speichere Einstellungen" }, 1081{ "Save settings","Speichere Einstellungen" },
1082{ "Save standard","Speichere Standard" }, 1082{ "Save standard","Speichere Standard" },
1083{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" }, 1083{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" },
1084{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" }, 1084{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" },
1085{ "Data storage path","Daten Speicherpfad" }, 1085{ "Data storage path","Daten Speicherpfad" },
1086{ "Language","Sprache" }, 1086{ "Language","Sprache" },
1087{ "Show time in agenda items","Zeige Zeit in Agenda Items" }, 1087{ "Show time in agenda items","Zeige Zeit in Agenda Items" },
1088{ "Color for Sundays + category "Holiday"","Farbe für Sonntags + Kategorie "Feiertag"" }, 1088{ "Color for Sundays + category "Holiday"","Farbe für Sonntags + Kategorie "Feiertag"" },
1089{ "Show events, that are done","Zeige abgelaufene Termine" }, 1089{ "Show events, that are done","Zeige abgelaufene Termine" },
1090{ "Hide not running Todos in To-do view","Verstecke nicht laufende Todos" }, 1090{ "Hide not running Todos in To-do view","Verstecke nicht laufende Todos" },
1091{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" }, 1091{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" },
1092{ "KO/Pi","KO/Pi" }, 1092{ "KO/Pi","KO/Pi" },
1093{ "There is nothing to undo!","Es gibt nichts zum\nRückgängigmachen!" }, 1093{ "There is nothing to undo!","Es gibt nichts zum\nRückgängigmachen!" },
1094{ "Recreating edit dialog. Please wait...","Recreating edit dialog. Please wait..." }, 1094{ "Recreating edit dialog. Please wait...","Recreating edit dialog. Please wait..." },
1095{ "Sound.Al.: ","Sound.Al.: " }, 1095{ "Sound.Al.: ","Sound.Al.: " },
1096{ "From: %1 To: %2 %3","Von: %1 Bis: %2 %3" }, 1096{ "From: %1 To: %2 %3","Von: %1 Bis: %2 %3" },
1097{ "Restore","Wiederherstellen" }, 1097{ "Restore","Wiederherstellen" },
1098{ "\nAre you sure you want\nto restore this?","\nMöchten Sie das wirklicht\nwiederherstellen?" }, 1098{ "\nAre you sure you want\nto restore this?","\nMöchten Sie das wirklicht\nwiederherstellen?" },
1099{ "% completed","% erledigt" }, 1099{ "% completed","% erledigt" },
1100{ "%d item(s) found.","%d Item(s) gefunden." }, 1100{ "%d item(s) found.","%d Item(s) gefunden." },
1101{ "Set complete","Setze auf erledigt" }, 1101{ "Set complete","Setze auf erledigt" },
1102{ "(cancelled)","(gecancelt)" }, 1102{ "(cancelled)","(gecancelt)" },
1103{ "Click on the week number to\nshow week in agenda view","Klicke auf die Wochennummer\num die Woche in der Agenda anzuzeigen" }, 1103{ "Click on the week number to\nshow week in agenda view","Klicke auf die Wochennummer\num die Woche in der Agenda anzuzeigen" },
1104{ " Local time "," Locale Zeit " }, 1104{ " Local time "," Locale Zeit " },
1105{ "Form2","Form2" }, 1105{ "Form2","Form2" },
1106{ "Filter enabled","Filter angeschaltet" }, 1106{ "Filter enabled","Filter angeschaltet" },
1107{ "Edit Filters","Ändere Filter" }, 1107{ "Edit Filters","Ändere Filter" },
1108{ "Print What's Next View...","Drucke What's Next Ansicht..." }, 1108{ "Print What's Next View...","Drucke What's Next Ansicht..." },
1109{ "Agenda","Agenda" }, 1109{ "Agenda","Agenda" },
1110{ " ("," (" }, 1110{ " ("," (" },
1111{ "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" }, 1111{ "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" },
1112{ "Print","Print" }, 1112{ "Print","Print" },
1113{ "&Setup Printer...","Drucker &Setup..." }, 1113{ "&Setup Printer...","Drucker &Setup..." },
1114{ "View Type","Zeige Typ" }, 1114{ "View Type","Zeige Typ" },
1115{ "Page &orientation:","Seiten Ausrichtung:" }, 1115{ "Page &orientation:","Seiten Ausrichtung:" },
1116{ "Use Default of Selected Style","Default des selektierten Stils" }, 1116{ "Use Default of Selected Style","Default des selektierten Stils" },
1117{ "Use Default Setting of Printer","Default Einstellung des Druckers" }, 1117{ "Use Default Setting of Printer","Default Einstellung des Druckers" },
1118{ "Portrait","Portrait" }, 1118{ "Portrait","Portrait" },
1119{ "Landscape","Landschaft" }, 1119{ "Landscape","Landschaft" },
1120{ "Print day","Drucke Tag" }, 1120{ "Print day","Drucke Tag" },
1121{ "CalPrintDay_Base","CalPrintDay_Base" }, 1121{ "CalPrintDay_Base","CalPrintDay_Base" },
1122{ "Date && Time Range","Datum && Zeitspanne" }, 1122{ "Date && Time Range","Datum && Zeitspanne" },
1123{ "&End date:","&Enddatum:" }, 1123{ "&End date:","&Enddatum:" },
1124{ "&Start date:","&Startdatum:" }, 1124{ "&Start date:","&Startdatum:" },
1125{ "Start &time:","Startzeit:" }, 1125{ "Start &time:","Startzeit:" },
1126{ "End ti&me:","Endzeit:" }, 1126{ "End ti&me:","Endzeit:" },
1127{ "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" }, 1127{ "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" },
1128{ "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" }, 1128{ "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" },
1129{ "Alt+D","Alt+D" }, 1129{ "Alt+D","Alt+D" },
1130{ "&Use colors","Nutze Farben" }, 1130{ "&Use colors","Nutze Farben" },
1131{ "Alt+U","Alt+U" }, 1131{ "Alt+U","Alt+U" },
1132{ "Print week","Drucke Woche" }, 1132{ "Print week","Drucke Woche" },
1133{ "CalPrintWeek_Base","CalPrintWeek_Base" }, 1133{ "CalPrintWeek_Base","CalPrintWeek_Base" },
1134{ "Use &colors","Nutze Farben" }, 1134{ "Use &colors","Nutze Farben" },
1135{ "Type of View","Typ der Ansicht" }, 1135{ "Type of View","Typ der Ansicht" },
1136{ "Print as &Filofax page","Drucke als &Filofax Seite" }, 1136{ "Print as &Filofax page","Drucke als &Filofax Seite" },
1137{ "Alt+F","Alt+F" }, 1137{ "Alt+F","Alt+F" },
1138{ "Print as &timetable view:","Drucke als Zeittabelle:" }, 1138{ "Print as &timetable view:","Drucke als Zeittabelle:" },
1139{ "Alt+T","Alt+T" }, 1139{ "Alt+T","Alt+T" },
1140{ "Print as split week view","Drucke als gesplittete Wochenansicht" }, 1140{ "Print as split week view","Drucke als gesplittete Wochenansicht" },
1141{ "Print month","Drucke Monat" }, 1141{ "Print month","Drucke Monat" },
1142{ "CalPrintMonth_Base","CalPrintMonth_Base" }, 1142{ "CalPrintMonth_Base","CalPrintMonth_Base" },
1143{ "&Start month:","&Startmonat:" }, 1143{ "&Start month:","&Startmonat:" },
1144{ "&End month:","&Endmonat:" }, 1144{ "&End month:","&Endmonat:" },
1145{ "Print week &numbers","Drucke Wochen Nummer(n)" }, 1145{ "Print week &numbers","Drucke Wochen Nummer(n)" },
1146{ "Print todos","Drucke Todos" }, 1146{ "Print todos","Drucke Todos" },
1147{ "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" }, 1147{ "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" },
1148{ "Include &description of the item","Inclusive Itembeschreibung" }, 1148{ "Include &description of the item","Inclusive Itembeschreibung" },
1149{ "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" }, 1149{ "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" },
1150{ "Include &priority of the item","Inclusive Priorität des Items" }, 1150{ "Include &priority of the item","Inclusive Priorität des Items" },
1151{ "Items to Print","Zu druckende Items" }, 1151{ "Items to Print","Zu druckende Items" },
1152{ "&From:","Von:" }, 1152{ "&From:","Von:" },
1153{ "&To:","Bis:" }, 1153{ "&To:","Bis:" },
1154{ "Print &all todo items","Drucke alle Todo Items" }, 1154{ "Print &all todo items","Drucke alle Todo Items" },
1155{ "Print only &uncompleted items","Drucke nur nicht erledigte Todos" }, 1155{ "Print only &uncompleted items","Drucke nur nicht erledigte Todos" },
1156{ "Only items due in the &range:","Nur Items in dem Zeitraum:" }, 1156{ "Only items due in the &range:","Nur Items in dem Zeitraum:" },
1157{ "Todo List","Todo Liste" }, 1157{ "Todo List","Todo Liste" },
1158{ "&Title:","&Titel:" }, 1158{ "&Title:","&Titel:" },
1159{ "Co&nnect subtodos with its parent","Verbinde Untertodos mit ihren Ober-Todos" }, 1159{ "Co&nnect subtodos with its parent","Verbinde Untertodos mit ihren Ober-Todos" },
1160{ "Todo list","Todo Liste" }, 1160{ "Todo list","Todo Liste" },
1161{ "&Print...","Drucke..." }, 1161{ "&Print...","Drucke..." },
1162{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" }, 1162{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" },
1163{ "[Unconfigured]","[Unkonfiguriert]" }, 1163{ "[Unconfigured]","[Unkonfiguriert]" },
1164{ "OK","OK" }, 1164{ "OK","OK" },
1165{ "FilterEditor","FilterEditor" }, 1165{ "FilterEditor","FilterEditor" },
1166{ "Include","Inclusive" }, 1166{ "Include","Inclusive" },
1167{ "Exclude","Exclusive" }, 1167{ "Exclude","Exclusive" },
1168{ "Edit Selection...","Editiere Auswahl" }, 1168{ "Edit Selection...","Editiere Auswahl" },
1169{ "recurring events","wiederholende Termine" }, 1169{ "recurring events","wiederholende Termine" },
1170{ "recurr. events","wiederh.Termine" }, 1170{ "recurr. events","wiederh.Termine" },
1171{ "completed to-dos","erledigte Todos" }, 1171{ "completed to-dos","erledigte Todos" },
1172{ "events","Termine" }, 1172{ "events","Termine" },
1173{ "todos","Todos" }, 1173{ "todos","Todos" },
1174{ "journals","Journale" }, 1174{ "journals","Journale" },
1175{ "public","öffentl." }, 1175{ "public","öffentl." },
1176{ "private","privat" }, 1176{ "private","privat" },
1177{ "confidential","vertraul." }, 1177{ "confidential","vertraul." },
1178{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Untertodos.\nAlle erledigten Untertodos\nwerden auch gelöscht!" }, 1178{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Untertodos.\nAlle erledigten Untertodos\nwerden auch gelöscht!" },
1179{ "Yesterday","Gestern" }, 1179{ "Yesterday","Gestern" },
1180{ "Day after tomorrow","Übermorgen" }, 1180{ "Day after tomorrow","Übermorgen" },
1181{ "Tomorrow","Morgen" }, 1181{ "Tomorrow","Morgen" },
1182{ "Day before yesterday","Vorgestern" }, 1182{ "Day before yesterday","Vorgestern" },
1183{ "Size %1","Größe %1" }, 1183{ "Size %1","Größe %1" },
1184{ "New Agendasize: %1","Neue Agendagröße: %1" }, 1184{ "New Agendasize: %1","Neue Agendagröße: %1" },
1185{ " (%1 y.)"," (%1 J.)" }, 1185{ " (%1 y.)"," (%1 J.)" },
1186{ "Allday:","Ganztägig:" }, 1186{ "Allday:","Ganztägig:" },
1187{ "compl.todos","erled.Todos" }, 1187{ "compl.todos","erled.Todos" },
1188{ "Day view","Tagesansicht" }, 1188{ "Day view","Tagesansicht" },
1189{ "Next days","Nächste Tage" }, 1189{ "Next days","Nächste Tage" },
1190{ "Next week","Nächste Woche" }, 1190{ "Next week","Nächste Woche" },
1191{ "Next two weeks","Nächste zwei Wochen" }, 1191{ "Next two weeks","Nächste zwei Wochen" },
1192{ "This month","Dieser Monat" }, 1192{ "This month","Dieser Monat" },
1193{ "Journal view","Journal" }, 1193{ "Journal view","Journal" },
1194{ "Display all opened","Zeige alle geöffnet" }, 1194{ "Display all opened","Zeige alle geöffnet" },
1195{ "Display all closed","Zeige alle geschlossen" }, 1195{ "Display all closed","Zeige alle geschlossen" },
1196{ "Display all flat","Zeige alle flach" }, 1196{ "Display all flat","Zeige alle flach" },
1197{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, 1197{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" },
1198{ "Default todo done color:","Standard Todo erledigt Farbe" }, 1198{ "Default todo done color:","Standard Todo erledigt Farbe" },
1199{ "Select week %1-%2","Wähle Woche %1-%2" }, 1199{ "Select week %1-%2","Wähle Woche %1-%2" },
1200{ "Select Week","Wähle Woche" }, 1200{ "Select Week","Wähle Woche" },
1201{ "Set alarm for selected...","Setze Alarm für Selekt..." }, 1201{ "Set alarm for selected...","Setze Alarm für Selekt..." },
1202{ "Set Alarm!","Setze Alarm!" }, 1202{ "Set Alarm!","Setze Alarm!" },
1203{ "Canged alarm for %1 items","Alarm für %1 Items geändert" }, 1203{ "Canged alarm for %1 items","Alarm für %1 Items geändert" },
1204{ " and "," und " }, 1204{ " and "," und " },
1205{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, 1205{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" },
1206{ "Mail to selected","Mail an Ausgewählte" }, 1206{ "Mail to selected","Mail an Ausgewählte" },
1207{ "Mail to all","Mail an Alle" }, 1207{ "Mail to all","Mail an Alle" },
1208{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, 1208{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" },
1209{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, 1209{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" },
1210{ " on"," am" }, 1210{ " on"," am" },
1211{ " completed on "," erledigt am " }, 1211{ " completed on "," erledigt am " },
1212{ "Save as Event template","Speichere als Vorlage" }, 1212{ "Save as Event template","Speichere als Vorlage" },
1213{ "Load Event template","Lade Termin Vorlage" }, 1213{ "Load Event template","Lade Termin Vorlage" },
1214{ "Save as Journal template","Speichere als Journal Vorlage" }, 1214{ "Save as Journal template","Speichere als Journal Vorlage" },
1215{ "Insert Journal template","Füge Journal Vorlage ein" }, 1215{ "Insert Journal template","Füge Journal Vorlage ein" },
1216{ "Sub todos:<br>","Unter Todos:<br>" }, 1216{ "Sub todos:<br>","Unter Todos:<br>" },
1217{ "Parent todo:<br>","Über Todo:<br>" }, 1217{ "Parent todo:<br>","Über Todo:<br>" },
1218{ "Set current as color category","Setze Gewählte als Farbkategorie" }, 1218{ "Set current as color category","Setze Gewählte als Farbkategorie" },
1219{ " completed"," erledigt" }, 1219{ " completed"," erledigt" },
1220{ "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" }, 1220{ "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" },
1221{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, 1221{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." },
1222{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, 1222{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." },
1223{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, 1223{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." },
1224{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" }, 1224{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" },
1225{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, 1225{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." },
1226{ "Error","Fehler" }, 1226{ "Error","Fehler" },
1227{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, 1227{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." },
1228{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, 1228{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." },
1229{ "Warning","Warnung" }, 1229{ "Warning","Warnung" },
1230{ "Select week number","Wähle Wochen Nummer" }, 1230{ "Select week number","Wähle Wochen Nummer" },
1231{ "Februar","Februar" }, 1231{ "Februar","Februar" },
1232{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" }, 1232{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" },
1233{ "W","W" }, 1233{ "W","W" },
1234{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" }, 1234{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" },
1235{ "T: %1","T: %1" }, 1235{ "T: %1","T: %1" },
1236{ "Start: ","Start: " }, 1236{ "Start: ","Start: " },
1237{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " }, 1237{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " },
1238{ "Password for remote access:","Passwort für fernen Zugriff:" }, 1238{ "Password for remote access:","Passwort für fernen Zugriff:" },
1239{ "Remote IP address:","Ferne IP Adresse:" }, 1239{ "Remote IP address:","Ferne IP Adresse:" },
1240{ "Remote port number:","Ferne Port Nummer:" }, 1240{ "Remote port number:","Ferne Port Nummer:" },
1241{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." }, 1241{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." },
1242{ "Remote from: ","Fern von: " }, 1242{ "Remote from: ","Fern von: " },
1243{ "Local from: ","Lokal von: " }, 1243{ "Local from: ","Lokal von: " },
1244{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" }, 1244{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" },
1245{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, 1245{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
1246{ "Write back","Schreibe zurück" }, 1246{ "Write back","Schreibe zurück" },
1247{ "KO/Pi Synchronization","KO/Pi Synchronisation" }, 1247{ "KO/Pi Synchronization","KO/Pi Synchronisation" },
1248{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, 1248{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
1249{ "Received sync request","Sync Anfrage erhalten" }, 1249{ "Received sync request","Sync Anfrage erhalten" },
1250{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." }, 1250{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." },
1251{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, 1251{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
1252{ "Data saved to temp file!","Daten in temp Datei gespeichert!" }, 1252{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
1253{ "Sending file...","Sende Datei..." }, 1253{ "Sending file...","Sende Datei..." },
1254{ "Waiting for synced file...","Warte auf gesyncte Daten..." }, 1254{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
1255{ "Receiving synced file...","Gesyncte Daten erhalten..." }, 1255{ "Receiving synced file...","Gesyncte Daten erhalten..." },
1256{ "Received %1 bytes","%1 Bytes erhalten" }, 1256{ "Received %1 bytes","%1 Bytes erhalten" },
1257{ "Writing file to disk...","Speichere Datei..." }, 1257{ "Writing file to disk...","Speichere Datei..." },
1258{ "Pi-Sync successful!","Pi-Sync erfolgreich!" }, 1258{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
1259{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, 1259{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
1260{ "Synchronize!","Synchronisiere!" }, 1260{ "Synchronize!","Synchronisiere!" },
1261{ "High clock skew!","Großer Uhrzeitunterschied!" }, 1261{ "High clock skew!","Großer Uhrzeitunterschied!" },
1262{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, 1262{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
1263{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, 1263{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" },
1264{ "This is a %1 recurring todo.","Das ist eine %1 wiederholende Aufgabe." }, 1264{ "This is a %1 recurring todo.","Das ist eine %1 wiederholende Aufgabe." },
1265{ "<p><b>Start on:</b> %1</p>","<p><b>Start am:</b> %1</p>" }, 1265{ "<p><b>Start on:</b> %1</p>","<p><b>Start am:</b> %1</p>" },
1266{ "List week view","Listenwochenansicht" }, 1266{ "List week view","Listenwochenansicht" },
1267{ "List week","Listenwochenansicht" }, 1267{ "List week","Listenwochenansicht" },
1268{ "Next Week","Nächste Woche" }, 1268{ "Next Week","Nächste Woche" },
1269{ "Previous Week","Vorherige Woche" }, 1269{ "Previous Week","Vorherige Woche" },
1270{ "No items were found matching\nyour search expression.\nUse the wildcard characters\n'*' and '?' where needed.","Keine Einträge gefunden die\ndem Suchausdruck entsprechen.\nBenutze Platzhalter Zeichen\n'*' und '?' wo benötigt." }, 1270{ "No items were found matching\nyour search expression.\nUse the wildcard characters\n'*' and '?' where needed.","Keine Einträge gefunden die\ndem Suchausdruck entsprechen.\nBenutze Platzhalter Zeichen\n'*' und '?' wo benötigt." },
1271{ "Show in todo/event viewer:","Zeige in Termin/Todo Anzeige:" }, 1271{ "Show in todo/event viewer:","Zeige in Termin/Todo Anzeige:" },
1272{ "Details","Details" }, 1272{ "Details","Details" },
1273{ "Created time","Erstellt Zeit" }, 1273{ "Created time","Erstellt Zeit" },
1274{ "Last modified time","Geändert Zeit" }, 1274{ "Last modified time","Geändert Zeit" },
1275{ "Show in What'sThis quick overview:","Zeige in What'sThis Schnellübersicht:" }, 1275{ "Show in What'sThis quick overview:","Zeige in What'sThis Schnellübersicht:" },
1276{ "View Options","Anzeige Optionen" }, 1276{ "View Options","Anzeige Optionen" },
1277{ "<b>Created: ","<b>Erstellt am: " }, 1277{ "<b>Created: ","<b>Erstellt am: " },
1278{ "<b>Last modified: ","<b>Zuletzt geändert am: " }, 1278{ "<b>Last modified: ","<b>Zuletzt geändert am: " },
1279{ "Journal: ","Journal: " }, 1279{ "Journal: ","Journal: " },
1280{ "yearly","jährlich" }, 1280{ "yearly","jährlich" },
1281{ "(%1) ","%1-" }, 1281{ "(%1) ","%1-" },
1282{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" }, 1282{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" },
1283{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" }, 1283{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" },
1284{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" }, 1284{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" },
1285{ "Summary/Loc.","Titel/Ort" }, 1285{ "Summary/Loc.","Titel/Ort" },
1286{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." }, 1286{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." },
1287{ "Week Number","Wochennummer" }, 1287{ "Week Number","Wochennummer" },
1288{ "Import","Importiere" }, 1288{ "Import","Importiere" },
1289{ "Export","Exportiere" }, 1289{ "Export","Exportiere" },
1290{ "Beam","Beame" }, 1290{ "Beam","Beame" },
1291{ "Export selected","Exportiere Selektierte" }, 1291{ "Export selected","Exportiere Selektierte" },
1292{ "As iCal (ics) file...","Als iCal (ics) Datei..." }, 1292{ "As iCal (ics) file...","Als iCal (ics) Datei..." },
1293{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." }, 1293{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." },
1294{ "Journal/Details...","Journale/Details..." }, 1294{ "Journal/Details...","Journale/Details..." },
1295{ "Agenda View","Agenda Ansicht" }, 1295{ "Agenda View","Agenda Ansicht" },
1296{ "Show current time","Zeige aktuelle Zeit" }, 1296{ "Show current time","Zeige aktuelle Zeit" },
1297{ "Edit new item","Bearbeite neuen Eintrag" }, 1297{ "Edit new item","Bearbeite neuen Eintrag" },
1298{ "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" }, 1298{ "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" },
1299{ "There is no next alarm.","Es gibt keinen nächsten Alarm." }, 1299{ "There is no next alarm.","Es gibt keinen nächsten Alarm." },
1300{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" }, 1300{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" },
1301{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" }, 1301{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" },
1302{ "%1 days\n","%1 Tagen\n" }, 1302{ "%1 days\n","%1 Tagen\n" },
1303{ "1 day\n","1 Tag\n" }, 1303{ "1 day\n","1 Tag\n" },
1304{ "%1 hours\n","%1 Stunden\n" }, 1304{ "%1 hours\n","%1 Stunden\n" },
1305{ "1 hour\n","1 Stunde\n" }, 1305{ "1 hour\n","1 Stunde\n" },
1306{ "%1 minutes\n","%1 Minuten\n" }, 1306{ "%1 minutes\n","%1 Minuten\n" },
1307{ "1 minute\n","1 Minute\n" }, 1307{ "1 minute\n","1 Minute\n" },
1308{ "Only one toolbar","Nur eine Toolbar" }, 1308{ "Only one toolbar","Nur eine Toolbar" },
1309{ "Print","Drucke" }, 1309{ "Print","Drucke" },
1310{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." }, 1310{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." },
1311{ "There is nothing selected!","Es ist nichts ausgewählt!" }, 1311{ "There is nothing selected!","Es ist nichts ausgewählt!" },
1312{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " }, 1312{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " },
1313{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" }, 1313{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" },
1314{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.\n","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden.\n" }, 1314{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.\n","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden.\n" },
1315{ "KO/Pi Printout","KO/Pi Ausdruck" }, 1315{ "KO/Pi Printout","KO/Pi Ausdruck" },
1316{ "Print unscaled","Drucke unskaliert" }, 1316{ "Print unscaled","Drucke unskaliert" },
1317{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." }, 1317{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." },
1318{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." }, 1318{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." },
1319{ "Printout Mode","Druck Modus" }, 1319{ "Printout Mode","Druck Modus" },
1320{ "Filter menu icon","Filtermenu Icon" }, 1320{ "Filter menu icon","Filtermenu Icon" },
1321{ "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" }, 1321{ "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" },
1322{ "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" }, 1322{ "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" },
1323{ "%1d","%1t" }, 1323{ "%1d","%1t" },
1324{ "%1h","%1std" }, 1324{ "%1h","%1std" },
1325{ "%1min","%1min" }, 1325{ "%1min","%1min" },
1326{ "( %1 before )","( %1 vorher )" }, 1326{ "( %1 before )","( %1 vorher )" },
1327{ "The next alarm is in\nless than one minute!","Der nächste Alarm kommt in\nweniger als einer Minute!" }, 1327{ "The next alarm is in\nless than one minute!","Der nächste Alarm kommt in\nweniger als einer Minute!" },
1328{ "\nThe internal alarm notification is disabled!\n","\nDie interne Alarmbenachrichtigung ist ausgeschaltet!\n" }, 1328{ "\nThe internal alarm notification is disabled!\n","\nDie interne Alarmbenachrichtigung ist ausgeschaltet!\n" },
1329{ "Enable it in the settings menu, TAB alarm.","Schalten Sie sie an im Menu Einstellungen, TAB Alarm." }, 1329{ "Enable it in the settings menu, TAB alarm.","Schalten Sie sie an im Menu Einstellungen, TAB Alarm." },
1330{ "Show Sync Events in WN+Agenda","Zeige Sync-Ereignisse in WN+Agenda" }, 1330{ "Show Sync Events","Zeige Sync-Ereignisse" },
1331{ "Use short date in WN+Event view","Zeige Kurzdatum in WN+Terminanzeige" }, 1331{ "Use short date in WN+Event view","Zeige Kurzdatum in WN+Terminanzeige" },
1332{ "Number of max.displayed todo prios:","Anzahl max.angezeigter Todo-Prios:" }, 1332{ "Number of max.displayed todo prios:","Anzahl max.angezeigter Todo-Prios:" },
1333{ " on "," am " }, 1333{ " on "," am " },
1334{ "On: ","Am: " }, 1334{ "On: ","Am: " },
1335{ "<i>The recurrence is computed from the start datetime!</i>","<i>Die Wiederholung wird vom Startwert aus berechnet!</i>" }, 1335{ "<i>The recurrence is computed from the start datetime!</i>","<i>Die Wiederholung wird vom Startwert aus berechnet!</i>" },
1336{ "Start/Stop todo...","Starte/Stoppe Todo..." }, 1336{ "Start/Stop todo...","Starte/Stoppe Todo..." },
1337{ "Color for running todos:","Farbe für laufende Todos:" }, 1337{ "Color for running todos:","Farbe für laufende Todos:" },
1338{ "The todo\n%1\nis started.\nDo you want to set\nthe state to stopped?","Das Todo\n%1\nist gestartet.\nWollen Sie es\nauf gestoppt setzen?" }, 1338{ "The todo\n%1\nis started.\nDo you want to set\nthe state to stopped?","Das Todo\n%1\nist gestartet.\nWollen Sie es\nauf gestoppt setzen?" },
1339{ "Todo is started","Todo is gestarted" }, 1339{ "Todo is started","Todo is gestarted" },
1340{ "Stop todo","Stoppe Todo" }, 1340{ "Stop todo","Stoppe Todo" },
1341{ "Todo is stopped","Todo ist gestoppt" }, 1341{ "Todo is stopped","Todo ist gestoppt" },
1342{ "Start todo","Starte Todo" }, 1342{ "Start todo","Starte Todo" },
1343{ "The todo\n%1\nis stopped.\nDo you want to set\nthe state to started?","Das Todo\n%1\nist gestoppt.\nWollen Sie es auf\ngestartet setzen?" }, 1343{ "The todo\n%1\nis stopped.\nDo you want to set\nthe state to started?","Das Todo\n%1\nist gestoppt.\nWollen Sie es auf\ngestartet setzen?" },
1344{ "The todo\n%1\nwill be cloned!\nIt has subtodos!\nDo you want to clone\nall subtodos as well?","Das Todo\n%1\nwird geklont!\nEs hat Untertodos!\nMöchten Sie alle\nUntertodos auch klonen?" }, 1344{ "The todo\n%1\nwill be cloned!\nIt has subtodos!\nDo you want to clone\nall subtodos as well?","Das Todo\n%1\nwird geklont!\nEs hat Untertodos!\nMöchten Sie alle\nUntertodos auch klonen?" },
1345{ "Todo has subtodos","Todo hat Untertodos" }, 1345{ "Todo has subtodos","Todo hat Untertodos" },
1346{ "Block popup until mouse button release","Sperre Popup bis Mausknopf losgelassen" }, 1346{ "Block popup until mouse button release","Sperre Popup bis Mausknopf losgelassen" },
1347{ "Colors","Farben" }, 1347{ "Colors","Farben" },
1348{ "Click on new parent item","Klicke auf neues Übertodo" }, 1348{ "Click on new parent item","Klicke auf neues Übertodo" },
1349{ "Reparenting aborted!","Übertodo setzen abgebrochen" }, 1349{ "Reparenting aborted!","Übertodo setzen abgebrochen" },
1350{ "Cannot move Todo to itself\nor a child of itself","Kann nicht Todo auf\nsich selbst oder\nein Untertodo verschieben" }, 1350{ "Cannot move Todo to itself\nor a child of itself","Kann nicht Todo auf\nsich selbst oder\nein Untertodo verschieben" },
1351{ "Recursive reparenting not possible!","Rekursives Verschieben nicht möglich" }, 1351{ "Recursive reparenting not possible!","Rekursives Verschieben nicht möglich" },
1352{ "Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)","Entferne alle erledigten Todos?\n(Erledigte wiederholende Todos\nwerden nicht gelöscht!)" }, 1352{ "Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)","Entferne alle erledigten Todos?\n(Erledigte wiederholende Todos\nwerden nicht gelöscht!)" },
1353{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, 1353{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" },
1354{ "times","Zeiten" }, 1354{ "times","Zeiten" },
1355{ "The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?","Das Todo\n%1\nhat Untertodos!\nMöchten Sie die Kategorien\nauch für alle Untertodos setzen?" }, 1355{ "The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?","Das Todo\n%1\nhat Untertodos!\nMöchten Sie die Kategorien\nauch für alle Untertodos setzen?" },
1356{ "","" }, 1356{ "","" },
1357{ "","" }, 1357{ "","" },
1358{ "","" }, 1358{ "","" },
1359{ "","" }, 1359{ "","" },
1360{ "","" }, 1360{ "","" },
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 17a1d13..df606d0 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -1,1129 +1,1166 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at> 3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at>
4 Parts of the source code have been copied from kdpdatebutton.cpp 4 Parts of the source code have been copied from kdpdatebutton.cpp
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 ode for Qt in the source distribution. 22 without including the source ode for Qt in the source distribution.
23*/ 23*/
24 24
25#include <qevent.h> 25#include <qevent.h>
26#include <qpainter.h> 26#include <qpainter.h>
27#include <qptrlist.h> 27#include <qptrlist.h>
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qwhatsthis.h> 29#include <qwhatsthis.h>
30 30
31#include <kglobal.h> 31#include <kglobal.h>
32#include <kdebug.h> 32#include <kdebug.h>
33#include <klocale.h> 33#include <klocale.h>
34 34
35#include <libkcal/vcaldrag.h> 35#include <libkcal/vcaldrag.h>
36#include <libkcal/icaldrag.h> 36#include <libkcal/icaldrag.h>
37#include <libkcal/dndfactory.h> 37#include <libkcal/dndfactory.h>
38#include <libkcal/calendarresources.h> 38#include <libkcal/calendarresources.h>
39#include <libkcal/resourcecalendar.h> 39#include <libkcal/resourcecalendar.h>
40#include <kresources/resourceselectdialog.h> 40#include <kresources/resourceselectdialog.h>
41 41
42#include <kcalendarsystem.h> 42#include <kcalendarsystem.h>
43 43
44#ifndef KORG_NOPLUGINS 44#ifndef KORG_NOPLUGINS
45#include "kocore.h" 45#include "kocore.h"
46#endif 46#endif
47#include "koprefs.h" 47#include "koprefs.h"
48#include "koglobals.h" 48#include "koglobals.h"
49 49
50#include "kodaymatrix.h" 50#include "kodaymatrix.h"
51 51
52// ============================================================================ 52// ============================================================================
53// D Y N A M I C T I P 53// D Y N A M I C T I P
54// ============================================================================ 54// ============================================================================
55 55
56DynamicTip::DynamicTip( QWidget * parent ) 56DynamicTip::DynamicTip( QWidget * parent )
57 : QToolTip( parent ) 57 : QToolTip( parent )
58{ 58{
59 matrix = (KODayMatrix*)parent; 59 matrix = (KODayMatrix*)parent;
60} 60}
61 61
62class KODaymatrixWhatsThis :public QWhatsThis 62class KODaymatrixWhatsThis :public QWhatsThis
63{ 63{
64public: 64public:
65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;}; 65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;};
66 ~KODaymatrixWhatsThis() { ; }; 66 ~KODaymatrixWhatsThis() { ; };
67 67
68protected: 68protected:
69 virtual QString text( const QPoint& p ) 69 virtual QString text( const QPoint& p )
70 { 70 {
71 return _view->getWhatsThisText( p ) ; 71 return _view->getWhatsThisText( p ) ;
72 } 72 }
73private: 73private:
74 KODayMatrix * _view; 74 KODayMatrix * _view;
75}; 75};
76 76
77void DynamicTip::maybeTip( const QPoint &pos ) 77void DynamicTip::maybeTip( const QPoint &pos )
78{ 78{
79 //calculate which cell of the matrix the mouse is in 79 //calculate which cell of the matrix the mouse is in
80 QRect sz = matrix->frameRect(); 80 QRect sz = matrix->frameRect();
81 int dheight = sz.height()*7 / 42; 81 int dheight = sz.height()*7 / 42;
82 int dwidth = sz.width() / 7; 82 int dwidth = sz.width() / 7;
83 int row = pos.y()/dheight; 83 int row = pos.y()/dheight;
84 int col = pos.x()/dwidth; 84 int col = pos.x()/dwidth;
85 85
86 QRect rct(col*dwidth, row*dheight, dwidth, dheight); 86 QRect rct(col*dwidth, row*dheight, dwidth, dheight);
87 87
88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" << 88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" <<
89// col << "][" << row << "] => " <<(col+row*7) << endl; 89// col << "][" << row << "] => " <<(col+row*7) << endl;
90 90
91 //show holiday names only 91 //show holiday names only
92 QString str = matrix->getHolidayLabel(col+row*7); 92 QString str = matrix->getHolidayLabel(col+row*7);
93 if (str.isEmpty()) return; 93 if (str.isEmpty()) return;
94 tip(rct, str); 94 tip(rct, str);
95} 95}
96 96
97 97
98// ============================================================================ 98// ============================================================================
99// K O D A Y M A T R I X 99// K O D A Y M A T R I X
100// ============================================================================ 100// ============================================================================
101 101
102const int KODayMatrix::NOSELECTION = -1000; 102const int KODayMatrix::NOSELECTION = -1000;
103const int KODayMatrix::NUMDAYS = 42; 103const int KODayMatrix::NUMDAYS = 42;
104 104
105KODayMatrix::KODayMatrix( QWidget *parent, const char *name ) 105KODayMatrix::KODayMatrix( QWidget *parent, const char *name )
106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 ) 106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 )
107 107
108#if 0 108#if 0
109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) : 109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) :
110 QFrame(parent, name) 110 QFrame(parent, name)
111#endif 111#endif
112{ 112{
113 oldW = 0; 113 oldW = 0;
114 oldH = 0; 114 oldH = 0;
115 myPix.resize( 150, 120 ); 115 myPix.resize( 150, 120 );
116 mRedrawNeeded = true; 116 mRedrawNeeded = true;
117 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this); 117 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this);
118 mPendingUpdateBeforeRepaint = false; 118 mPendingUpdateBeforeRepaint = false;
119 mouseDown = false; 119 mouseDown = false;
120 // initialize dynamic arrays 120 // initialize dynamic arrays
121 bDays.resize ( NUMDAYS ); 121 bDays.resize ( NUMDAYS );
122 pDays.resize ( NUMDAYS ); 122 pDays.resize ( NUMDAYS );
123 hDays.resize ( NUMDAYS ); 123 hDays.resize ( NUMDAYS );
124 eDays.resize ( NUMDAYS ); 124 eDays.resize ( NUMDAYS );
125 days = new QDate[NUMDAYS]; 125 days = new QDate[NUMDAYS];
126 daylbls = new QString[NUMDAYS]; 126 daylbls = new QString[NUMDAYS];
127 //events = new int[NUMDAYS]; 127 //events = new int[NUMDAYS];
128 mToolTip = new DynamicTip(this); 128 mToolTip = new DynamicTip(this);
129 129
130 // set default values used for drawing the matrix 130 // set default values used for drawing the matrix
131 mDefaultBackColor = palette().active().base(); 131 mDefaultBackColor = palette().active().base();
132 mDefaultTextColor = palette().active().foreground(); 132 mDefaultTextColor = palette().active().foreground();
133 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); 133 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor);
134 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor); 134 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor);
135 mSelectedDaysColor = QColor("white"); 135 mSelectedDaysColor = QColor("white");
136 mTodayMarginWidth = 2; 136 mTodayMarginWidth = 2;
137 mSelEnd = mSelStart = NOSELECTION; 137 mSelEnd = mSelStart = NOSELECTION;
138 138
139 setAcceptDrops(true); 139 setAcceptDrops(true);
140 //setFont( QFont("Arial", 10) ); 140 //setFont( QFont("Arial", 10) );
141 141
142 mUpdateTimer = new QTimer( this ); 142 mUpdateTimer = new QTimer( this );
143 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() )); 143 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() ));
144 mRepaintTimer = new QTimer( this ); 144 mRepaintTimer = new QTimer( this );
145 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() )); 145 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() ));
146 mDayChanged = false; 146 mDayChanged = false;
147 updateView(); 147 updateView();
148} 148}
149QString KODayMatrix::getWhatsThisText( QPoint p ) 149QString KODayMatrix::getWhatsThisText( QPoint p )
150{ 150{
151 151
152 int tmp = getDayIndexFrom(p.x(), p.y()); 152 int tmp = getDayIndexFrom(p.x(), p.y());
153 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar ) 153 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar )
154 return QString(); 154 return QString();
155 QDate mDate = days[tmp]; 155 QDate mDate = days[tmp];
156 QPtrList<Event> eventlist = mCalendar->events(mDate); 156 QPtrList<Event> eventlist = mCalendar->events(mDate);
157 Event *event; 157 Event *event;
158 QStringList mToolTip; 158 QStringList mToolTip;
159 for(event=eventlist.first();event != 0;event=eventlist.next()) { 159 for(event=eventlist.first();event != 0;event=eventlist.next()) {
160 QString mToolTipText; 160 QString mToolTipText;
161 QString text; 161 QString text;
162 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day 162 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
163 if (event->isMultiDay()) { 163 if (event->isMultiDay()) {
164 QString prefix = "<->";multiday = 2; 164 QString prefix = "<->";multiday = 2;
165 QString time; 165 QString time;
166 if ( event->doesRecur() ) { 166 if ( event->doesRecur() ) {
167 if ( event->recursOn( mDate) ) { 167 if ( event->recursOn( mDate) ) {
168 prefix ="->" ;multiday = 1; 168 prefix ="->" ;multiday = 1;
169 } 169 }
170 else { 170 else {
171 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 171 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
172 if ( event->recursOn( mDate.addDays( -days)) ) { 172 if ( event->recursOn( mDate.addDays( -days)) ) {
173 prefix ="<-" ;multiday = 3; 173 prefix ="<-" ;multiday = 3;
174 } 174 }
175 } 175 }
176 } else { 176 } else {
177 if (mDate == event->dtStart().date()) { 177 if (mDate == event->dtStart().date()) {
178 prefix ="->" ;multiday = 1; 178 prefix ="->" ;multiday = 1;
179 } else if (mDate == event->dtEnd().date()) { 179 } else if (mDate == event->dtEnd().date()) {
180 prefix ="<-" ;multiday = 3; 180 prefix ="<-" ;multiday = 3;
181 } 181 }
182 } 182 }
183 if ( !event->doesFloat() ) { 183 if ( !event->doesFloat() ) {
184 if ( mDate == event->dtStart().date () ) 184 if ( mDate == event->dtStart().date () )
185 time = KGlobal::locale()->formatTime(event->dtStart().time())+" "; 185 time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
186 else if ( mDate == event->dtEnd().date () ) 186 else if ( mDate == event->dtEnd().date () )
187 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 187 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
188 188
189 } 189 }
190 text = time + event->summary(); 190 text = time + event->summary();
191 mToolTipText += prefix + text; 191 mToolTipText += prefix + text;
192 } else { 192 } else {
193 if (event->doesFloat()) { 193 if (event->doesFloat()) {
194 text = event->summary(); 194 text = event->summary();
195 mToolTipText += text; 195 mToolTipText += text;
196 } 196 }
197 else { 197 else {
198 text = KGlobal::locale()->formatTime(event->dtStart().time()); 198 text = KGlobal::locale()->formatTime(event->dtStart().time());
199 text += " " + event->summary(); 199 text += " " + event->summary();
200 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 200 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
201 } 201 }
202 } 202 }
203 if ( !event->location().isEmpty() ) 203 if ( !event->location().isEmpty() )
204 mToolTipText += " (" + event->location() + ")"; 204 mToolTipText += " (" + event->location() + ")";
205#if QT_VERSION >= 0x030000 205#if QT_VERSION >= 0x030000
206 mToolTipText.replace( '<' , "&lt;" ); 206 mToolTipText.replace( '<' , "&lt;" );
207 mToolTipText.replace( '>' , "&gt;" ); 207 mToolTipText.replace( '>' , "&gt;" );
208#else 208#else
209 if ( mToolTipText.find ('<') >= 0 ) { 209 if ( mToolTipText.find ('<') >= 0 ) {
210 mToolTipText.replace( QRegExp("<") , "&lt;" ); 210 mToolTipText.replace( QRegExp("<") , "&lt;" );
211 } 211 }
212 if ( mToolTipText.find ('>') >= 0 ) { 212 if ( mToolTipText.find ('>') >= 0 ) {
213 mToolTipText.replace( QRegExp(">") , "&gt;" ); 213 mToolTipText.replace( QRegExp(">") , "&gt;" );
214 } 214 }
215#endif 215#endif
216 //qDebug("TTT: %s ", mToolTipText.latin1()); 216 //qDebug("TTT: %s ", mToolTipText.latin1());
217 mToolTip.append( mToolTipText ); 217 mToolTip.append( mToolTipText );
218 } 218 }
219 mToolTip.sort(); 219 mToolTip.sort();
220 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>"); 220 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>");
221} 221}
222void KODayMatrix::setCalendar( Calendar *cal ) 222void KODayMatrix::setCalendar( Calendar *cal )
223{ 223{
224 mCalendar = cal; 224 mCalendar = cal;
225 225
226 setAcceptDrops( mCalendar ); 226 setAcceptDrops( mCalendar );
227 227
228 updateEvents(); 228 updateEvents();
229} 229}
230 230
231QColor KODayMatrix::getShadedColor(QColor color) 231QColor KODayMatrix::getShadedColor(QColor color)
232{ 232{
233 QColor shaded; 233 QColor shaded;
234 int h=0; 234 int h=0;
235 int s=0; 235 int s=0;
236 int v=0; 236 int v=0;
237 color.hsv(&h,&s,&v); 237 color.hsv(&h,&s,&v);
238 s = s/4; 238 s = s/4;
239 v = 192+v/4; 239 v = 192+v/4;
240 shaded.setHsv(h,s,v); 240 shaded.setHsv(h,s,v);
241 241
242 return shaded; 242 return shaded;
243} 243}
244 244
245KODayMatrix::~KODayMatrix() 245KODayMatrix::~KODayMatrix()
246{ 246{
247 // delete mKODaymatrixWhatsThis; 247 // delete mKODaymatrixWhatsThis;
248 delete [] days; 248 delete [] days;
249 delete [] daylbls; 249 delete [] daylbls;
250 //delete [] events; 250 //delete [] events;
251 delete mToolTip; 251 delete mToolTip;
252} 252}
253 253
254/* 254/*
255void KODayMatrix::setStartDate(QDate start) 255void KODayMatrix::setStartDate(QDate start)
256{ 256{
257 updateView(start); 257 updateView(start);
258} 258}
259*/ 259*/
260 260
261void KODayMatrix::addSelectedDaysTo(DateList& selDays) 261void KODayMatrix::addSelectedDaysTo(DateList& selDays)
262{ 262{
263 263
264 if (mSelStart == NOSELECTION) { 264 if (mSelStart == NOSELECTION) {
265 return; 265 return;
266 } 266 }
267 267
268 //cope with selection being out of matrix limits at top (< 0) 268 //cope with selection being out of matrix limits at top (< 0)
269 int i0 = mSelStart; 269 int i0 = mSelStart;
270 if (i0 < 0) { 270 if (i0 < 0) {
271 for (int i = i0; i < 0; i++) { 271 for (int i = i0; i < 0; i++) {
272 selDays.append(days[0].addDays(i)); 272 selDays.append(days[0].addDays(i));
273 } 273 }
274 i0 = 0; 274 i0 = 0;
275 } 275 }
276 276
277 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1) 277 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1)
278 if (mSelEnd > NUMDAYS-1) { 278 if (mSelEnd > NUMDAYS-1) {
279 for (int i = i0; i <= NUMDAYS-1; i++) { 279 for (int i = i0; i <= NUMDAYS-1; i++) {
280 selDays.append(days[i]); 280 selDays.append(days[i]);
281 } 281 }
282 for (int i = NUMDAYS; i < mSelEnd; i++) { 282 for (int i = NUMDAYS; i < mSelEnd; i++) {
283 selDays.append(days[0].addDays(i)); 283 selDays.append(days[0].addDays(i));
284 } 284 }
285 285
286 // apply normal routine to selection being entirely within matrix limits 286 // apply normal routine to selection being entirely within matrix limits
287 } else { 287 } else {
288 for (int i = i0; i <= mSelEnd; i++) { 288 for (int i = i0; i <= mSelEnd; i++) {
289 selDays.append(days[i]); 289 selDays.append(days[i]);
290 } 290 }
291 } 291 }
292} 292}
293 293
294bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) 294bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end)
295{ 295{
296 mRedrawNeeded = true; 296 mRedrawNeeded = true;
297 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION ); 297 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION );
298 mSelStart = startdate.daysTo(start); 298 mSelStart = startdate.daysTo(start);
299 if ( mSelStart < 0 ) 299 if ( mSelStart < 0 )
300 mSelStart = 0; 300 mSelStart = 0;
301 mSelEnd = startdate.daysTo(end); 301 mSelEnd = startdate.daysTo(end);
302 if ( mSelEnd > NUMDAYS-1 ) 302 if ( mSelEnd > NUMDAYS-1 )
303 mSelEnd = NUMDAYS-1; 303 mSelEnd = NUMDAYS-1;
304 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) { 304 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) {
305 clearSelection(); 305 clearSelection();
306 if ( noSel ) 306 if ( noSel )
307 return false; 307 return false;
308 } 308 }
309 309
310 return true; 310 return true;
311} 311}
312void KODayMatrix::clearSelection() 312void KODayMatrix::clearSelection()
313{ 313{
314 mSelEnd = mSelStart = NOSELECTION; 314 mSelEnd = mSelStart = NOSELECTION;
315} 315}
316 316
317 317
318void KODayMatrix::recalculateToday() 318void KODayMatrix::recalculateToday()
319{ 319{
320 today = -1; 320 today = -1;
321 for (int i=0; i<NUMDAYS; i++) { 321 for (int i=0; i<NUMDAYS; i++) {
322 //events[i] = 0; 322 //events[i] = 0;
323 days[i] = startdate.addDays(i); 323 days[i] = startdate.addDays(i);
324 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); 324 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] ));
325 325
326 // if today is in the currently displayed month, hilight today 326 // if today is in the currently displayed month, hilight today
327 if (days[i].year() == QDate::currentDate().year() && 327 if (days[i].year() == QDate::currentDate().year() &&
328 days[i].month() == QDate::currentDate().month() && 328 days[i].month() == QDate::currentDate().month() &&
329 days[i].day() == QDate::currentDate().day()) { 329 days[i].day() == QDate::currentDate().day()) {
330 today = i; 330 today = i;
331 } 331 }
332 } 332 }
333 // qDebug(QString("Today is visible at %1.").arg(today)); 333 // qDebug(QString("Today is visible at %1.").arg(today));
334} 334}
335 335
336void KODayMatrix::updateView() 336void KODayMatrix::updateView()
337{ 337{
338 updateView(startdate); 338 updateView(startdate);
339} 339}
340void KODayMatrix::repaintViewTimed() 340void KODayMatrix::repaintViewTimed()
341{ 341{
342 mRedrawNeeded = true; 342 mRedrawNeeded = true;
343 // bDays.fill( false); 343 // bDays.fill( false);
344 //pDays.fill( false); 344 //pDays.fill( false);
345 //hDays.fill( false); 345 //hDays.fill( false);
346 //eDays.fill( false); 346 //eDays.fill( false);
347 mRepaintTimer->stop(); 347 mRepaintTimer->stop();
348 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday 348 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday
349 int i; 349 int i;
350 for(i = 0; i < NUMDAYS; i++) { 350 for(i = 0; i < NUMDAYS; i++) {
351 if ( ( (i+startDay) % 7 == 0 ) ) { 351 if ( ( (i+startDay) % 7 == 0 ) ) {
352 pDays.setBit(i); 352 pDays.setBit(i);
353 } 353 }
354 } 354 }
355 repaint(false); 355 repaint(false);
356} 356}
357void KODayMatrix::computeEvent(Event *event, int i ) 357void KODayMatrix::computeEvent(Event *event, int i )
358{ 358{
359 QString holiStr = mHolidays[i]; 359 QString holiStr = mHolidays[i];
360 if ( event->isHoliday()) { 360 if ( event->isHoliday()) {
361 pDays.setBit(i); 361 pDays.setBit(i);
362 hDays.setBit(i); 362 hDays.setBit(i);
363 if ( !holiStr.isEmpty() ) 363 if ( !holiStr.isEmpty() )
364 holiStr += "\n"; 364 holiStr += "\n";
365 holiStr += event->summary(); 365 holiStr += event->summary();
366 if ( !event->location().isEmpty() ) 366 if ( !event->location().isEmpty() )
367 holiStr += " (" + event->location() + ")"; 367 holiStr += " (" + event->location() + ")";
368 mHolidays[i] =holiStr ; 368 mHolidays[i] =holiStr ;
369 eDays.setBit(i);
369 } 370 }
370 if ( event->isBirthday()) { 371 if ( KOPrefs::instance()->mCurrentDisplayedView != VIEW_T_VIEW && KOPrefs::instance()->mCurrentDisplayedView != VIEW_J_VIEW ) {
371 pDays.setBit(i); 372 if ( event->isBirthday()) {
372 if ( !holiStr.isEmpty() ) 373 pDays.setBit(i);
373 holiStr += "\n"; 374 if ( !holiStr.isEmpty() )
374 holiStr += i18n("Birthday") + ": "+event->summary(); 375 holiStr += "\n";
375 if ( !event->location().isEmpty() ) 376 holiStr += i18n("Birthday") + ": "+event->summary();
376 holiStr += " (" + event->location() + ")"; 377 if ( !event->location().isEmpty() )
377 bDays.setBit(i); 378 holiStr += " (" + event->location() + ")";
378 mHolidays[i] =holiStr ; 379 bDays.setBit(i);
380 mHolidays[i] =holiStr ;
381 }
379 } 382 }
380 eDays.setBit(i); 383 if ( KOPrefs::instance()->mCurrentDisplayedView != VIEW_J_VIEW )
384 eDays.setBit(i);
381} 385}
382void KODayMatrix::updateViewTimed() 386void KODayMatrix::updateViewTimed()
383{ 387{
384 mUpdateTimer->stop(); 388 mUpdateTimer->stop();
385 if ( !mCalendar ) { 389 if ( !mCalendar ) {
386 qDebug("NOT CAL "); 390 qDebug("NOT CAL ");
387 return; 391 return;
388 } 392 }
389#if 1 393#if 1
390 394
395
391 int i; 396 int i;
392 int timeSpan = NUMDAYS-1; 397 int timeSpan = NUMDAYS-1;
393 QPtrList<Event> events = mCalendar->events(); 398 QPtrList<Event> events = mCalendar->events();
394 Event *event; 399 Event *event;
395 QDateTime dt; 400 QDateTime dt;
396 bool ok; 401 bool ok;
397 bDays.fill( false); 402 bDays.fill( false);
398 pDays.fill( false); 403 pDays.fill( false);
399 hDays.fill( false); 404 hDays.fill( false);
400 eDays.fill( false); 405 eDays.fill( false);
401 mHolidays.clear(); 406 mHolidays.clear();
402 QDate mStartDate = days[0]; 407 QDate mStartDate = days[0];
403 QDate endDate = mStartDate.addDays( timeSpan ); 408 QDate endDate = mStartDate.addDays( timeSpan );
404 for( event = events.first(); event; event = events.next() ) { // for event 409 for( event = events.first(); event; event = events.next() ) { // for event
405 ushort recurType = event->recurrence()->doesRecur(); 410 ushort recurType = event->recurrence()->doesRecur();
406 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 411 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
407 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 412 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
408 continue; 413 continue;
409 } 414 }
410 if ( event->doesRecur() ) { 415 if ( event->doesRecur() ) {
411 bool last; 416 bool last;
412 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 417 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
413 QDateTime incidenceEnd; 418 QDateTime incidenceEnd;
414 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 419 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
415 bool invalid = false; 420 bool invalid = false;
416 while( true ) { 421 while( true ) {
417 if ( incidenceStart.isValid() ) { 422 if ( incidenceStart.isValid() ) {
418 incidenceEnd = incidenceStart.addDays( eventlen ); 423 incidenceEnd = incidenceStart.addDays( eventlen );
419 int st = incidenceStart.date().daysTo( endDate ); 424 int st = incidenceStart.date().daysTo( endDate );
420 if ( st >= 0 ) { // start before timeend 425 if ( st >= 0 ) { // start before timeend
421 int end = mStartDate.daysTo( incidenceEnd.date() ); 426 int end = mStartDate.daysTo( incidenceEnd.date() );
422 if ( end >= 0 ) { // end after timestart --- got one! 427 if ( end >= 0 ) { // end after timestart --- got one!
423 //normalize 428 //normalize
424 st = timeSpan - st; 429 st = timeSpan - st;
425 if ( st < 0 ) st = 0; 430 if ( st < 0 ) st = 0;
426 if ( end > timeSpan ) end = timeSpan; 431 if ( end > timeSpan ) end = timeSpan;
427 int iii; 432 int iii;
428 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 433 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
429 for ( iii = st;iii<= end;++iii) { 434 for ( iii = st;iii<= end;++iii) {
430 computeEvent( event, iii ); 435 computeEvent( event, iii );
431 } 436 }
432 } 437 }
433 } 438 }
434 } else { 439 } else {
435 if ( invalid ) 440 if ( invalid )
436 break; 441 break;
437 invalid = true; 442 invalid = true;
438 //qDebug("invalid %s", event->summary().latin1()); 443 //qDebug("invalid %s", event->summary().latin1());
439 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 444 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
440 } 445 }
441 if ( last ) 446 if ( last )
442 break; 447 break;
443 bool ok; 448 bool ok;
444 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 449 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
445 if ( ! ok ) 450 if ( ! ok )
446 break; 451 break;
447 if ( incidenceStart.date() > endDate ) 452 if ( incidenceStart.date() > endDate )
448 break; 453 break;
449 } 454 }
450 } else { // no recur 455 } else { // no recur
451 int st = event->dtStart().date().daysTo( endDate ); 456 int st = event->dtStart().date().daysTo( endDate );
452 if ( st >= 0 ) { // start before timeend 457 if ( st >= 0 ) { // start before timeend
453 int end = mStartDate.daysTo( event->dtEnd().date() ); 458 int end = mStartDate.daysTo( event->dtEnd().date() );
454 if ( end >= 0 ) { // end after timestart --- got one! 459 if ( end >= 0 ) { // end after timestart --- got one!
455 //normalize 460 //normalize
456 st = timeSpan - st; 461 st = timeSpan - st;
457 if ( st < 0 ) st = 0; 462 if ( st < 0 ) st = 0;
458 if ( end > timeSpan ) end = timeSpan; 463 if ( end > timeSpan ) end = timeSpan;
459 int iii; 464 int iii;
460 for ( iii = st;iii<= end;++iii) 465 for ( iii = st;iii<= end;++iii)
461 computeEvent( event, iii ); 466 computeEvent( event, iii );
462 } 467 }
463 } 468 }
464 } 469 }
465 } 470 }
466 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday 471 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday
467 for(i = 0; i < NUMDAYS; i++) { 472 for(i = 0; i < NUMDAYS; i++) {
468 if ( ( (i+startDay) % 7 == 0 ) ) { 473 if ( ( (i+startDay) % 7 == 0 ) ) {
469 pDays.setBit(i); 474 pDays.setBit(i);
470 } 475 }
471 } 476 }
472 477 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) {
473#if 0 478 bDays.fill( false);
474 // insert due todos 479 // insert due todos
475 QPtrList<Todo> todos = calendar()->todos( ); 480 QPtrList<Todo> todos = mCalendar->todos( );
476 Todo *todo; 481 Todo *todo;
477 for(todo = todos.first(); todo; todo = todos.next()) { 482 for(todo = todos.first(); todo; todo = todos.next()) {
478 //insertTodo( todo ); 483 //insertTodo( todo );
479 if ( todo->hasDueDate() ) { 484 if ( todo->hasDueDate() ) {
480 int day = mStartDate.daysTo( todo->dtDue().date() ); 485 int day = mStartDate.daysTo( todo->dtDue().date() );
486 if ( day >= 0 && day < timeSpan + 1) {
487 int i = day;
488 QString holiStr = mHolidays[i];
489 pDays.setBit(i);
490 if ( !holiStr.isEmpty() )
491 holiStr += "\n";
492 holiStr += i18n("Todo") + ": "+todo->summary();
493 if ( !todo->location().isEmpty() )
494 holiStr += " (" + todo->location() + ")";
495 bDays.setBit(i);
496 mHolidays[i] =holiStr ;
497 eDays.setBit(i);
498 }
499 }
500 }
501 }
502 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) {
503 bDays.fill( false);
504 // insert due todos
505 QPtrList<Journal> todos = mCalendar->journals( );
506 Journal *todo;
507 for(todo = todos.first(); todo; todo = todos.next()) {
508 int day = mStartDate.daysTo( todo->dtStart().date() );
481 if ( day >= 0 && day < timeSpan + 1) { 509 if ( day >= 0 && day < timeSpan + 1) {
482 (*cells)[day]->insertTodo( todo ); 510 int i = day;
511 QString holiStr = mHolidays[i];
512 pDays.setBit(i);
513 if ( !holiStr.isEmpty() )
514 holiStr += "\n";
515 holiStr += i18n("Journal");
516 bDays.setBit(i);
517 mHolidays[i] =holiStr ;
518 eDays.setBit(i);
519
483 } 520 }
484 } 521 }
485 } 522 }
486#endif
487
488#else 523#else
489 //qDebug("KODayMatrix::updateViewTimed "); 524 //qDebug("KODayMatrix::updateViewTimed ");
490 for(int i = 0; i < NUMDAYS; i++) { 525 for(int i = 0; i < NUMDAYS; i++) {
491 // if events are set for the day then remember to draw it bold 526 // if events are set for the day then remember to draw it bold
492 QPtrList<Event> eventlist = mCalendar->events(days[i]); 527 QPtrList<Event> eventlist = mCalendar->events(days[i]);
493 Event *event; 528 Event *event;
494 int numEvents = eventlist.count(); 529 int numEvents = eventlist.count();
495 QString holiStr = ""; 530 QString holiStr = "";
496 bDays.clearBit(i); 531 bDays.clearBit(i);
497 hDays.clearBit(i); 532 hDays.clearBit(i);
498 eDays.clearBit(i); 533 eDays.clearBit(i);
499 for(event=eventlist.first();event != 0;event=eventlist.next()) { 534 for(event=eventlist.first();event != 0;event=eventlist.next()) {
500 ushort recurType = event->recurrence()->doesRecur(); 535 ushort recurType = event->recurrence()->doesRecur();
501 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 536 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
502 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 537 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
503 numEvents--; 538 numEvents--;
504 } 539 }
505 if ( event->isHoliday()) { 540 if ( event->isHoliday()) {
506 hDays.setBit(i); 541 hDays.setBit(i);
507 if ( !holiStr.isEmpty() ) 542 if ( !holiStr.isEmpty() )
508 holiStr += "\n"; 543 holiStr += "\n";
509 holiStr += event->summary(); 544 holiStr += event->summary();
510 if ( !event->location().isEmpty() ) 545 if ( !event->location().isEmpty() )
511 holiStr += " (" + event->location() + ")"; 546 holiStr += " (" + event->location() + ")";
512 } 547 }
513 if ( event->isBirthday()) { 548 if ( event->isBirthday()) {
514 if ( !holiStr.isEmpty() ) 549 if ( !holiStr.isEmpty() )
515 holiStr += "\n"; 550 holiStr += "\n";
516 holiStr += i18n("Birthday") + ": "+event->summary(); 551 holiStr += i18n("Birthday") + ": "+event->summary();
517 if ( !event->location().isEmpty() ) 552 if ( !event->location().isEmpty() )
518 holiStr += " (" + event->location() + ")"; 553 holiStr += " (" + event->location() + ")";
519 bDays.setBit(i); 554 bDays.setBit(i);
520 } 555 }
521 } 556 }
522 if ( numEvents ) 557 if ( numEvents )
523 eDays.setBit(i); 558 eDays.setBit(i);
524 //if it is a holy day then draw it red. Sundays are consider holidays, too 559 //if it is a holy day then draw it red. Sundays are consider holidays, too
525 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) || 560 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) ||
526 !holiStr.isEmpty()) { 561 !holiStr.isEmpty()) {
527 mHolidays[i] = holiStr; 562 mHolidays[i] = holiStr;
528 } else { 563 } else {
529 mHolidays[i] = QString::null; 564 mHolidays[i] = QString::null;
530 } 565 }
531 } 566 }
532#endif 567#endif
533 mRedrawNeeded = true; 568 mRedrawNeeded = true;
534 if ( ! mPendingUpdateBeforeRepaint ) 569 if ( ! mPendingUpdateBeforeRepaint )
535 repaint(false); 570 repaint(false);
536} 571}
537void KODayMatrix::updateView(QDate actdate) 572void KODayMatrix::updateView(QDate actdate)
538{ 573{
539 574 if ( mLastView != KOPrefs::instance()->mCurrentDisplayedView )
575 mRedrawNeeded = true;
576 mLastView = KOPrefs::instance()->mCurrentDisplayedView;
540 if ( ! actdate.isValid() ) { 577 if ( ! actdate.isValid() ) {
541 //qDebug("date not valid "); 578 //qDebug("date not valid ");
542 return; 579 return;
543 } 580 }
544 mDayChanged = false; 581 mDayChanged = false;
545 //flag to indicate if the starting day of the matrix has changed by this call 582 //flag to indicate if the starting day of the matrix has changed by this call
546 //mDayChanged = false; 583 //mDayChanged = false;
547 // if a new startdate is to be set then apply Cornelius's calculation 584 // if a new startdate is to be set then apply Cornelius's calculation
548 // of the first day to be shown 585 // of the first day to be shown
549 if (actdate != startdate) { 586 if (actdate != startdate) {
550 // reset index of selection according to shift of starting date from startdate to actdate 587 // reset index of selection according to shift of starting date from startdate to actdate
551 if (mSelStart != NOSELECTION) { 588 if (mSelStart != NOSELECTION) {
552 int tmp = actdate.daysTo(startdate); 589 int tmp = actdate.daysTo(startdate);
553 //kdDebug() << "Shift of Selection1: " << mSelStart << " - " << mSelEnd << " -> " << tmp << "(" << offset << ")" << endl; 590 //kdDebug() << "Shift of Selection1: " << mSelStart << " - " << mSelEnd << " -> " << tmp << "(" << offset << ")" << endl;
554 // shift selection if new one would be visible at least partly ! 591 // shift selection if new one would be visible at least partly !
555 592
556 if (mSelStart+tmp < NUMDAYS && mSelEnd+tmp >= 0) { 593 if (mSelStart+tmp < NUMDAYS && mSelEnd+tmp >= 0) {
557 // nested if is required for next X display pushed from a different month - correction required 594 // nested if is required for next X display pushed from a different month - correction required
558 // otherwise, for month forward and backward, it must be avoided 595 // otherwise, for month forward and backward, it must be avoided
559 if( mSelStart > NUMDAYS || mSelStart < 0 ) 596 if( mSelStart > NUMDAYS || mSelStart < 0 )
560 mSelStart = mSelStart + tmp; 597 mSelStart = mSelStart + tmp;
561 if( mSelEnd > NUMDAYS || mSelEnd < 0 ) 598 if( mSelEnd > NUMDAYS || mSelEnd < 0 )
562 mSelEnd = mSelEnd + tmp; 599 mSelEnd = mSelEnd + tmp;
563 } 600 }
564 } 601 }
565 startdate = actdate; 602 startdate = actdate;
566 mDayChanged = true; 603 mDayChanged = true;
567 recalculateToday(); 604 recalculateToday();
568 mRedrawNeeded = true; 605 mRedrawNeeded = true;
569 } 606 }
570 //qDebug("restart Timer %d vis: %d", mDayChanged, isVisible() ); 607 //qDebug("restart Timer %d vis: %d", mDayChanged, isVisible() );
571 if ( !isVisible() ) { 608 if ( !isVisible() ) {
572 mPendingUpdateBeforeRepaint = true; 609 mPendingUpdateBeforeRepaint = true;
573 } else { 610 } else {
574#ifdef DESKTOP_VERSION 611#ifdef DESKTOP_VERSION
575 //mRepaintTimer->start( 100 ); 612 //mRepaintTimer->start( 100 );
576 //updateViewTimed(); 613 //updateViewTimed();
577 mUpdateTimer->start( 50 ); 614 mUpdateTimer->start( 50 );
578#else 615#else
579 mRepaintTimer->start( 350 ); 616 mRepaintTimer->start( 350 );
580 mUpdateTimer->start( 800 ); 617 mUpdateTimer->start( 800 );
581#endif 618#endif
582 } 619 }
583} 620}
584void KODayMatrix::updateEvents() 621void KODayMatrix::updateEvents()
585{ 622{
586 if ( !mCalendar ) return; 623 if ( !mCalendar ) return;
587 624
588 for( int i = 0; i < NUMDAYS; i++ ) { 625 for( int i = 0; i < NUMDAYS; i++ ) {
589 // if events are set for the day then remember to draw it bold 626 // if events are set for the day then remember to draw it bold
590 QPtrList<Event> eventlist = mCalendar->events( days[ i ] ); 627 QPtrList<Event> eventlist = mCalendar->events( days[ i ] );
591 int numEvents = eventlist.count(); 628 int numEvents = eventlist.count();
592 Event *event; 629 Event *event;
593 for( event = eventlist.first(); event != 0;event=eventlist.next()) { 630 for( event = eventlist.first(); event != 0;event=eventlist.next()) {
594 ushort recurType = event->doesRecur(); 631 ushort recurType = event->doesRecur();
595 632
596 if ( ( recurType == Recurrence::rDaily && 633 if ( ( recurType == Recurrence::rDaily &&
597 !KOPrefs::instance()->mDailyRecur ) || 634 !KOPrefs::instance()->mDailyRecur ) ||
598 ( recurType == Recurrence::rWeekly && 635 ( recurType == Recurrence::rWeekly &&
599 !KOPrefs::instance()->mWeeklyRecur ) ) { 636 !KOPrefs::instance()->mWeeklyRecur ) ) {
600 numEvents--; 637 numEvents--;
601 } 638 }
602 } 639 }
603 if ( numEvents ) 640 if ( numEvents )
604 eDays.setBit(i); 641 eDays.setBit(i);
605 else 642 else
606 eDays.clearBit(i); 643 eDays.clearBit(i);
607 } 644 }
608} 645}
609 646
610const QDate& KODayMatrix::getDate(int offset) 647const QDate& KODayMatrix::getDate(int offset)
611{ 648{
612 if (offset < 0 || offset > NUMDAYS-1) { 649 if (offset < 0 || offset > NUMDAYS-1) {
613 qDebug("Wrong offset2 %d", offset); 650 qDebug("Wrong offset2 %d", offset);
614 return days[0]; 651 return days[0];
615 } 652 }
616 return days[offset]; 653 return days[offset];
617} 654}
618 655
619QString KODayMatrix::getHolidayLabel(int offset) 656QString KODayMatrix::getHolidayLabel(int offset)
620{ 657{
621 if (offset < 0 || offset > NUMDAYS-1) { 658 if (offset < 0 || offset > NUMDAYS-1) {
622 qDebug("Wrong offset1 %d", offset); 659 qDebug("Wrong offset1 %d", offset);
623 return QString(); 660 return QString();
624 } 661 }
625 return mHolidays[offset]; 662 return mHolidays[offset];
626} 663}
627 664
628int KODayMatrix::getDayIndexFrom(int x, int y) 665int KODayMatrix::getDayIndexFrom(int x, int y)
629{ 666{
630 int colModulo = (width()-2) % 7; 667 int colModulo = (width()-2) % 7;
631 int rowModulo = (height()-2) % 6; 668 int rowModulo = (height()-2) % 6;
632#if 0 669#if 0
633 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ? 670 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ?
634 6 - x/daysize.width() : x/daysize.width()); 671 6 - x/daysize.width() : x/daysize.width());
635#endif 672#endif
636 int xVal = (x-colModulo/2-2)/daysize.width(); 673 int xVal = (x-colModulo/2-2)/daysize.width();
637 int yVal = (y-rowModulo/2-2)/daysize.height(); 674 int yVal = (y-rowModulo/2-2)/daysize.height();
638 675
639 676
640 return 7*(yVal) + xVal; 677 return 7*(yVal) + xVal;
641 678
642} 679}
643 680
644// ---------------------------------------------------------------------------- 681// ----------------------------------------------------------------------------
645// M O U S E E V E N T H A N D L I N G 682// M O U S E E V E N T H A N D L I N G
646// ---------------------------------------------------------------------------- 683// ----------------------------------------------------------------------------
647 684
648void KODayMatrix::mousePressEvent (QMouseEvent* e) 685void KODayMatrix::mousePressEvent (QMouseEvent* e)
649{ 686{
650 687
651 if ( e->button() == LeftButton ) 688 if ( e->button() == LeftButton )
652 mouseDown = true; 689 mouseDown = true;
653 mSelStart = getDayIndexFrom(e->x(), e->y()); 690 mSelStart = getDayIndexFrom(e->x(), e->y());
654 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1; 691 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1;
655 mSelInit = mSelStart; 692 mSelInit = mSelStart;
656 mSelEnd = mSelStart; 693 mSelEnd = mSelStart;
657 mRedrawNeeded = true; 694 mRedrawNeeded = true;
658 repaint(false); 695 repaint(false);
659} 696}
660 697
661void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) 698void KODayMatrix::mouseReleaseEvent (QMouseEvent* e)
662{ 699{
663 mRedrawNeeded = true; 700 mRedrawNeeded = true;
664 if ( e->button() == LeftButton ) 701 if ( e->button() == LeftButton )
665 if ( ! mouseDown ) { 702 if ( ! mouseDown ) {
666 return; 703 return;
667 } 704 }
668 else 705 else
669 mouseDown = false; 706 mouseDown = false;
670 int tmp = getDayIndexFrom(e->x(), e->y()); 707 int tmp = getDayIndexFrom(e->x(), e->y());
671 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 708 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
672 709
673 if (mSelInit > tmp) { 710 if (mSelInit > tmp) {
674 mSelEnd = mSelInit; 711 mSelEnd = mSelInit;
675 if (tmp != mSelStart) { 712 if (tmp != mSelStart) {
676 mSelStart = tmp; 713 mSelStart = tmp;
677 repaint(false); 714 repaint(false);
678 } 715 }
679 } else { 716 } else {
680 mSelStart = mSelInit; 717 mSelStart = mSelInit;
681 718
682 //repaint only if selection has changed 719 //repaint only if selection has changed
683 if (tmp != mSelEnd) { 720 if (tmp != mSelEnd) {
684 mSelEnd = tmp; 721 mSelEnd = tmp;
685 repaint(false); 722 repaint(false);
686 } 723 }
687 } 724 }
688 725
689 DateList daylist; 726 DateList daylist;
690 if ( mSelStart < 0 ) 727 if ( mSelStart < 0 )
691 mSelStart = 0; 728 mSelStart = 0;
692 for (int i = mSelStart; i <= mSelEnd; i++) { 729 for (int i = mSelStart; i <= mSelEnd; i++) {
693 daylist.append(days[i]); 730 daylist.append(days[i]);
694 } 731 }
695 emit selected((const DateList)daylist); 732 emit selected((const DateList)daylist);
696 733
697} 734}
698 735
699void KODayMatrix::mouseMoveEvent (QMouseEvent* e) 736void KODayMatrix::mouseMoveEvent (QMouseEvent* e)
700{ 737{
701 if ( ! mouseDown ) { 738 if ( ! mouseDown ) {
702 return; 739 return;
703 } 740 }
704 mRedrawNeeded = true; 741 mRedrawNeeded = true;
705 int tmp = getDayIndexFrom(e->x(), e->y()); 742 int tmp = getDayIndexFrom(e->x(), e->y());
706 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 743 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
707 744
708 if (mSelInit > tmp) { 745 if (mSelInit > tmp) {
709 mSelEnd = mSelInit; 746 mSelEnd = mSelInit;
710 if (tmp != mSelStart) { 747 if (tmp != mSelStart) {
711 mSelStart = tmp; 748 mSelStart = tmp;
712 repaint(false); 749 repaint(false);
713 } 750 }
714 } else { 751 } else {
715 mSelStart = mSelInit; 752 mSelStart = mSelInit;
716 753
717 //repaint only if selection has changed 754 //repaint only if selection has changed
718 if (tmp != mSelEnd) { 755 if (tmp != mSelEnd) {
719 mSelEnd = tmp; 756 mSelEnd = tmp;
720 repaint(false); 757 repaint(false);
721 } 758 }
722 } 759 }
723} 760}
724 761
725// ---------------------------------------------------------------------------- 762// ----------------------------------------------------------------------------
726// D R A G ' N D R O P H A N D L I N G 763// D R A G ' N D R O P H A N D L I N G
727// ---------------------------------------------------------------------------- 764// ----------------------------------------------------------------------------
728 765
729void KODayMatrix::dragEnterEvent(QDragEnterEvent *e) 766void KODayMatrix::dragEnterEvent(QDragEnterEvent *e)
730{ 767{
731#ifndef KORG_NODND 768#ifndef KORG_NODND
732 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 769 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
733 e->ignore(); 770 e->ignore();
734 return; 771 return;
735 } 772 }
736 773
737 // some visual feedback 774 // some visual feedback
738// oldPalette = palette(); 775// oldPalette = palette();
739// setPalette(my_HilitePalette); 776// setPalette(my_HilitePalette);
740// update(); 777// update();
741#endif 778#endif
742} 779}
743 780
744void KODayMatrix::dragMoveEvent(QDragMoveEvent *e) 781void KODayMatrix::dragMoveEvent(QDragMoveEvent *e)
745{ 782{
746#ifndef KORG_NODND 783#ifndef KORG_NODND
747 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 784 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
748 e->ignore(); 785 e->ignore();
749 return; 786 return;
750 } 787 }
751 788
752 e->accept(); 789 e->accept();
753#endif 790#endif
754} 791}
755 792
756void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/) 793void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/)
757{ 794{
758#ifndef KORG_NODND 795#ifndef KORG_NODND
759// setPalette(oldPalette); 796// setPalette(oldPalette);
760// update(); 797// update();
761#endif 798#endif
762} 799}
763 800
764void KODayMatrix::dropEvent(QDropEvent *e) 801void KODayMatrix::dropEvent(QDropEvent *e)
765{ 802{
766#ifndef KORG_NODND 803#ifndef KORG_NODND
767// kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl; 804// kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl;
768 805
769 if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 806 if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
770 e->ignore(); 807 e->ignore();
771 return; 808 return;
772 } 809 }
773 810
774 DndFactory factory( mCalendar ); 811 DndFactory factory( mCalendar );
775 Event *event = factory.createDrop(e); 812 Event *event = factory.createDrop(e);
776 813
777 if (event) { 814 if (event) {
778 e->acceptAction(); 815 e->acceptAction();
779 816
780 Event *existingEvent = mCalendar->event(event->uid()); 817 Event *existingEvent = mCalendar->event(event->uid());
781 818
782 if(existingEvent) { 819 if(existingEvent) {
783 // uniquify event 820 // uniquify event
784 event->recreate(); 821 event->recreate();
785/* 822/*
786 KMessageBox::sorry(this, 823 KMessageBox::sorry(this,
787 i18n("Event already exists in this calendar."), 824 i18n("Event already exists in this calendar."),
788 i18n("Drop Event")); 825 i18n("Drop Event"));
789 delete event; 826 delete event;
790 return; 827 return;
791*/ 828*/
792 } 829 }
793// kdDebug() << "Drop new Event" << endl; 830// kdDebug() << "Drop new Event" << endl;
794 // Adjust date 831 // Adjust date
795 QDateTime start = event->dtStart(); 832 QDateTime start = event->dtStart();
796 QDateTime end = event->dtEnd(); 833 QDateTime end = event->dtEnd();
797 int duration = start.daysTo(end); 834 int duration = start.daysTo(end);
798 int idx = getDayIndexFrom(e->pos().x(), e->pos().y()); 835 int idx = getDayIndexFrom(e->pos().x(), e->pos().y());
799 836
800 start.setDate(days[idx]); 837 start.setDate(days[idx]);
801 end.setDate(days[idx].addDays(duration)); 838 end.setDate(days[idx].addDays(duration));
802 839
803 event->setDtStart(start); 840 event->setDtStart(start);
804 event->setDtEnd(end); 841 event->setDtEnd(end);
805 mCalendar->addEvent(event); 842 mCalendar->addEvent(event);
806 843
807 emit eventDropped(event); 844 emit eventDropped(event);
808 } else { 845 } else {
809// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl; 846// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl;
810 e->ignore(); 847 e->ignore();
811 } 848 }
812#endif 849#endif
813} 850}
814 851
815// ---------------------------------------------------------------------------- 852// ----------------------------------------------------------------------------
816// P A I N T E V E N T H A N D L I N G 853// P A I N T E V E N T H A N D L I N G
817// ---------------------------------------------------------------------------- 854// ----------------------------------------------------------------------------
818 855
819void KODayMatrix::paintEvent(QPaintEvent * pevent) 856void KODayMatrix::paintEvent(QPaintEvent * pevent)
820{ 857{
821 858
822 if ( width() <= 0 || height() <= 0 ) 859 if ( width() <= 0 || height() <= 0 )
823 return; 860 return;
824 if ( mPendingUpdateBeforeRepaint ) { 861 if ( mPendingUpdateBeforeRepaint ) {
825 updateViewTimed(); 862 updateViewTimed();
826 mPendingUpdateBeforeRepaint = false; 863 mPendingUpdateBeforeRepaint = false;
827 } 864 }
828#if 0 865#if 0
829 if ( myPix.width() != width() || myPix.height()!=height() ) { 866 if ( myPix.width() != width() || myPix.height()!=height() ) {
830 myPix.resize(size() ); 867 myPix.resize(size() );
831 mRedrawNeeded = true; 868 mRedrawNeeded = true;
832 } 869 }
833#endif 870#endif
834 if ( oldW != width() || oldH !=height() ) 871 if ( oldW != width() || oldH !=height() )
835 mRedrawNeeded = true; 872 mRedrawNeeded = true;
836 873
837 oldH = height() ; 874 oldH = height() ;
838 oldW = width(); 875 oldW = width();
839 if ( myPix.width() < width() || myPix.height() < height() ) { 876 if ( myPix.width() < width() || myPix.height() < height() ) {
840 myPix.resize(size() ); 877 myPix.resize(size() );
841 mRedrawNeeded = true; 878 mRedrawNeeded = true;
842 879
843 } 880 }
844 881
845 if ( mRedrawNeeded ) { 882 if ( mRedrawNeeded ) {
846 //qDebug("REDRAW "); 883 //qDebug("REDRAW ");
847 QPainter p(&myPix); 884 QPainter p(&myPix);
848 p.setFont(font()); 885 p.setFont(font());
849 886
850 887
851 int dheight = daysize.height(); 888 int dheight = daysize.height();
852 int dwidth = daysize.width(); 889 int dwidth = daysize.width();
853 int row,col; 890 int row,col;
854 int selw, selh; 891 int selw, selh;
855 int xyOff = frameWidth(); 892 int xyOff = frameWidth();
856 int colModulo = (width()-2) % 7; 893 int colModulo = (width()-2) % 7;
857 int rowModulo = (height()-2) % 6; 894 int rowModulo = (height()-2) % 6;
858 //qDebug("col %d row %d ",colModulo,rowModulo ); 895 //qDebug("col %d row %d ",colModulo,rowModulo );
859 896
860 bool isRTL = KOGlobals::self()->reverseLayout(); 897 bool isRTL = KOGlobals::self()->reverseLayout();
861 898
862 // draw background and topleft frame 899 // draw background and topleft frame
863 p.fillRect(0,0,width(),height(), mDefaultBackColor); 900 p.fillRect(0,0,width(),height(), mDefaultBackColor);
864 p.setPen(mDefaultTextColor); 901 p.setPen(mDefaultTextColor);
865 p.drawRect(0, 0, width(), height()); 902 p.drawRect(0, 0, width(), height());
866 int mSelStartT = mSelStart; 903 int mSelStartT = mSelStart;
867 int mSelEndT = mSelEnd; 904 int mSelEndT = mSelEnd;
868 if ( mSelEndT >= NUMDAYS ) 905 if ( mSelEndT >= NUMDAYS )
869 mSelEndT = NUMDAYS-1; 906 mSelEndT = NUMDAYS-1;
870 // draw selected days with highlighted background color 907 // draw selected days with highlighted background color
871 if (mSelStart != NOSELECTION) { 908 if (mSelStart != NOSELECTION) {
872 bool skip = false; 909 bool skip = false;
873 if ( ! mouseDown ) { 910 if ( ! mouseDown ) {
874 int mo = days[20].month(); 911 int mo = days[20].month();
875 //qDebug("-- %d %d ", mSelStartT, mSelEndT); 912 //qDebug("-- %d %d ", mSelStartT, mSelEndT);
876 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() ); 913 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() );
877 int startMo = days[mSelStartT].month(); 914 int startMo = days[mSelStartT].month();
878 int endMo = days[mSelEndT].month(); 915 int endMo = days[mSelEndT].month();
879 if ( startMo == 12 && mo == 1 && endMo <= 2 ) 916 if ( startMo == 12 && mo == 1 && endMo <= 2 )
880 startMo = 1; 917 startMo = 1;
881 if ( endMo == 1 && mo == 12 ) 918 if ( endMo == 1 && mo == 12 )
882 endMo = 12; 919 endMo = 12;
883 if ( mo == 12 && startMo == 1 ) 920 if ( mo == 12 && startMo == 1 )
884 startMo = 13; 921 startMo = 13;
885 if ( (startMo > mo || endMo < mo) ) { 922 if ( (startMo > mo || endMo < mo) ) {
886 skip = true; 923 skip = true;
887 } else { 924 } else {
888 if ( days[mSelStartT].month() != mo ) { 925 if ( days[mSelStartT].month() != mo ) {
889 int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day(); 926 int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day();
890 mSelStartT += add +1; 927 mSelStartT += add +1;
891 } 928 }
892 if ( days[mSelEndT].month() != mo ) { 929 if ( days[mSelEndT].month() != mo ) {
893 int sub = days[mSelEndT].day(); 930 int sub = days[mSelEndT].day();
894 mSelEndT -= sub ; 931 mSelEndT -= sub ;
895 } 932 }
896 } 933 }
897 } 934 }
898 //qDebug("SKIP %d ", skip); 935 //qDebug("SKIP %d ", skip);
899 if ( ! skip ) { 936 if ( ! skip ) {
900 row = mSelStartT/7; 937 row = mSelStartT/7;
901 col = mSelStartT -row*7; 938 col = mSelStartT -row*7;
902 QColor selcol = KOPrefs::instance()->mHighlightColor; 939 QColor selcol = KOPrefs::instance()->mHighlightColor;
903 int addCol = 0; 940 int addCol = 0;
904 int addRow = 0; 941 int addRow = 0;
905 int addRow2 = 0; 942 int addRow2 = 0;
906 int addCol2 = 0; 943 int addCol2 = 0;
907 if (row == mSelEndT/7) { 944 if (row == mSelEndT/7) {
908 if ( rowModulo ) { 945 if ( rowModulo ) {
909 if ( row >= 6 - rowModulo ) 946 if ( row >= 6 - rowModulo )
910 addRow = row - 5 + rowModulo; 947 addRow = row - 5 + rowModulo;
911 } 948 }
912 if ( colModulo ) { 949 if ( colModulo ) {
913 int colt1 = mSelEndT%7; 950 int colt1 = mSelEndT%7;
914 //qDebug("colt1 %d ", colt1 ); 951 //qDebug("colt1 %d ", colt1 );
915 if ( colt1 >= 7 - colModulo ) 952 if ( colt1 >= 7 - colModulo )
916 addCol = colt1 - 7 + colModulo+1; 953 addCol = colt1 - 7 + colModulo+1;
917 int colt = mSelStartT%7; 954 int colt = mSelStartT%7;
918 if ( colt >= 7 - colModulo ) 955 if ( colt >= 7 - colModulo )
919 addCol2 = colt - 7 + colModulo; 956 addCol2 = colt - 7 + colModulo;
920 addCol -= addCol2; 957 addCol -= addCol2;
921 //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 ); 958 //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 );
922 } 959 }
923 // Single row selection 960 // Single row selection
924 //if ( row == 0) 961 //if ( row == 0)
925 // addRow = 1; 962 // addRow = 1;
926 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2, 963 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2,
927 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol); 964 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol);
928 } else { 965 } else {
929 // draw first row to the right 966 // draw first row to the right
930 if ( colModulo ) { 967 if ( colModulo ) {
931 if ( col >= 7 - colModulo ) 968 if ( col >= 7 - colModulo )
932 addCol2 = col - 7 + colModulo; 969 addCol2 = col - 7 + colModulo;
933 } 970 }
934 if ( rowModulo ) { 971 if ( rowModulo ) {
935 if ( row >= 6 - rowModulo ) 972 if ( row >= 6 - rowModulo )
936 addRow = row - 5 + rowModulo; 973 addRow = row - 5 + rowModulo;
937 } 974 }
938 //if ( row == 0) 975 //if ( row == 0)
939 // addRow = 1; 976 // addRow = 1;
940 int drawWid = width()-(col*dwidth+1+addCol2)-1; 977 int drawWid = width()-(col*dwidth+1+addCol2)-1;
941 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, drawWid, 978 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, drawWid,
942 dheight+1, selcol); 979 dheight+1, selcol);
943 // draw full block till last line 980 // draw full block till last line
944 selh = mSelEndT/7-row; 981 selh = mSelEndT/7-row;
945 addRow = 0; 982 addRow = 0;
946 if ( rowModulo ) { 983 if ( rowModulo ) {
947 if ( mSelEndT/7 >= 6 - rowModulo ) 984 if ( mSelEndT/7 >= 6 - rowModulo )
948 addRow = mSelEndT/7 - 5 + rowModulo; 985 addRow = mSelEndT/7 - 5 + rowModulo;
949 } 986 }
950 //qDebug("%d %d %d ",selh, row, addRow ); 987 //qDebug("%d %d %d ",selh, row, addRow );
951 int addrow2 = addRow-selh+1; 988 int addrow2 = addRow-selh+1;
952 if ( addrow2 < 0 ) 989 if ( addrow2 < 0 )
953 addrow2 = 0; 990 addrow2 = 0;
954 if (selh > 1) { 991 if (selh > 1) {
955 p.fillRect(1, (row+1)*dheight+addrow2, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol); 992 p.fillRect(1, (row+1)*dheight+addrow2, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol);
956 } 993 }
957 // draw last block from left to mSelEndT 994 // draw last block from left to mSelEndT
958 selw = mSelEndT-7*(mSelEndT/7)+1; 995 selw = mSelEndT-7*(mSelEndT/7)+1;
959 //qDebug("esl %d ",selw ); 996 //qDebug("esl %d ",selw );
960 int add = 0; 997 int add = 0;
961 if ( colModulo ) { 998 if ( colModulo ) {
962 add = 7 - colModulo; 999 add = 7 - colModulo;
963 if ( selw > add ) 1000 if ( selw > add )
964 add = selw - add; 1001 add = selw - add;
965 else 1002 else
966 add = 0; 1003 add = 0;
967 } 1004 }
968 //qDebug("add %d ", add); 1005 //qDebug("add %d ", add);
969 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow, 1006 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow,
970 selw*dwidth+add, dheight+1, selcol); 1007 selw*dwidth+add, dheight+1, selcol);
971 } 1008 }
972 } 1009 }
973 } 1010 }
974 1011
975 // iterate over all days in the matrix and draw the day label in appropriate colors 1012 // iterate over all days in the matrix and draw the day label in appropriate colors
976 QColor actcol = mDefaultTextColorShaded; 1013 QColor actcol = mDefaultTextColorShaded;
977 p.setPen(actcol); 1014 p.setPen(actcol);
978 QPen tmppen; 1015 QPen tmppen;
979 for(int i = 0; i < NUMDAYS; i++) { 1016 for(int i = 0; i < NUMDAYS; i++) {
980 row = i/7; 1017 row = i/7;
981 col = isRTL ? 6-(i-row*7) : i-row*7; 1018 col = isRTL ? 6-(i-row*7) : i-row*7;
982 1019
983 // if it is the first day of a month switch color from normal to shaded and vice versa 1020 // if it is the first day of a month switch color from normal to shaded and vice versa
984 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) { 1021 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) {
985 if (actcol == mDefaultTextColorShaded) { 1022 if (actcol == mDefaultTextColorShaded) {
986 actcol = mDefaultTextColor; 1023 actcol = mDefaultTextColor;
987 } else { 1024 } else {
988 actcol = mDefaultTextColorShaded; 1025 actcol = mDefaultTextColorShaded;
989 } 1026 }
990 p.setPen(actcol); 1027 p.setPen(actcol);
991 } 1028 }
992 if (actcol == mDefaultTextColorShaded) { 1029 if (actcol == mDefaultTextColorShaded) {
993 if ( ! mouseDown ) { 1030 if ( ! mouseDown ) {
994 continue; 1031 continue;
995 } 1032 }
996 } 1033 }
997 //Reset pen color after selected days block 1034 //Reset pen color after selected days block
998 if (i == mSelEndT+1) { 1035 if (i == mSelEndT+1) {
999 p.setPen(actcol); 1036 p.setPen(actcol);
1000 } 1037 }
1001 1038
1002 // if today then draw rectangle around day 1039 // if today then draw rectangle around day
1003 if (today == i) { 1040 if (today == i) {
1004 tmppen = p.pen(); 1041 tmppen = p.pen();
1005 QPen mTodayPen(p.pen()); 1042 QPen mTodayPen(p.pen());
1006 if ( daysize.width() < 20 ) 1043 if ( daysize.width() < 20 )
1007 mTodayPen.setWidth(1); 1044 mTodayPen.setWidth(1);
1008 else 1045 else
1009 mTodayPen.setWidth(mTodayMarginWidth); 1046 mTodayPen.setWidth(mTodayMarginWidth);
1010 //draw red rectangle for holidays 1047 //draw red rectangle for holidays
1011 if (pDays.testBit(i)) { 1048 if (pDays.testBit(i)) {
1012 if (actcol == mDefaultTextColor) { 1049 if (actcol == mDefaultTextColor) {
1013 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor); 1050 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor);
1014 } else { 1051 } else {
1015 mTodayPen.setColor(mHolidayColorShaded); 1052 mTodayPen.setColor(mHolidayColorShaded);
1016 } 1053 }
1017 } 1054 }
1018 //draw gray rectangle for today if in selection 1055 //draw gray rectangle for today if in selection
1019 if (i >= mSelStartT && i <= mSelEndT) { 1056 if (i >= mSelStartT && i <= mSelEndT) {
1020 QColor grey("grey"); 1057 QColor grey("grey");
1021 mTodayPen.setColor(grey); 1058 mTodayPen.setColor(grey);
1022 } 1059 }
1023 p.setPen(mTodayPen); 1060 p.setPen(mTodayPen);
1024 1061
1025 1062
1026 int addCol = 0; 1063 int addCol = 0;
1027 int addRow = 0; 1064 int addRow = 0;
1028 if (rowModulo) { 1065 if (rowModulo) {
1029 if ( row >= 6 - rowModulo ) 1066 if ( row >= 6 - rowModulo )
1030 addRow = row - 5 + rowModulo; 1067 addRow = row - 5 + rowModulo;
1031 } 1068 }
1032 if ( colModulo ) { 1069 if ( colModulo ) {
1033 if ( col >= 7 - colModulo ) 1070 if ( col >= 7 - colModulo )
1034 addCol = col - 6 + colModulo-1; 1071 addCol = col - 6 + colModulo-1;
1035 } 1072 }
1036 1073
1037 addCol += 1; 1074 addCol += 1;
1038 if ( row == 0 ) 1075 if ( row == 0 )
1039 addRow = 1; 1076 addRow = 1;
1040 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth+1, dheight+1); 1077 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth+1, dheight+1);
1041 p.setPen(tmppen); 1078 p.setPen(tmppen);
1042 } 1079 }
1043 1080
1044 // if any events are on that day then draw it using a bold font 1081 // if any events are on that day then draw it using a bold font
1045 if ( eDays.testBit(i) ) { 1082 if ( eDays.testBit(i) ) {
1046 QFont myFont = font(); 1083 QFont myFont = font();
1047 myFont.setBold(true); 1084 myFont.setBold(true);
1048 p.setFont(myFont); 1085 p.setFont(myFont);
1049 } 1086 }
1050 1087
1051 // if it is a holiday then use the default holiday color 1088 // if it is a holiday then use the default holiday color
1052 if ( pDays.testBit(i)) { 1089 if ( pDays.testBit(i)) {
1053 if ( bDays.testBit(i) ) { 1090 if ( bDays.testBit(i) ) {
1054 if ( hDays.testBit(i) ) 1091 if ( hDays.testBit(i) )
1055 p.setPen(QColor(Qt::green)); 1092 p.setPen(QColor(0,200,0));
1056 else 1093 else
1057 p.setPen(QColor(Qt::green).dark()); 1094 p.setPen(QColor(Qt::blue));
1058 } else { 1095 } else {
1059 if (actcol == mDefaultTextColor ) { 1096 if (actcol == mDefaultTextColor ) {
1060 p.setPen(KOPrefs::instance()->mHolidayColor); 1097 p.setPen(KOPrefs::instance()->mHolidayColor);
1061 } else { 1098 } else {
1062 p.setPen(mHolidayColorShaded); 1099 p.setPen(mHolidayColorShaded);
1063 } 1100 }
1064 } 1101 }
1065 } 1102 }
1066 1103
1067 // draw selected days with special color 1104 // draw selected days with special color
1068 // DO NOT specially highlight holidays in selection ! 1105 // DO NOT specially highlight holidays in selection !
1069 if (i >= mSelStartT && i <= mSelEndT) { 1106 if (i >= mSelStartT && i <= mSelEndT) {
1070 ;//p.setPen(mSelectedDaysColor); 1107 ;//p.setPen(mSelectedDaysColor);
1071 } 1108 }
1072 1109
1073 int addCol = 0; 1110 int addCol = 0;
1074 int addRow = 0; 1111 int addRow = 0;
1075 if ( colModulo ) { 1112 if ( colModulo ) {
1076 if ( col >= 7 - colModulo ) 1113 if ( col >= 7 - colModulo )
1077 addCol = col - 7 + colModulo; 1114 addCol = col - 7 + colModulo;
1078 } 1115 }
1079 if ( rowModulo ) { 1116 if ( rowModulo ) {
1080 if ( row >= 6 - rowModulo ) 1117 if ( row >= 6 - rowModulo )
1081 addRow = row - 5 + rowModulo; 1118 addRow = row - 5 + rowModulo;
1082 } 1119 }
1083 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow); 1120 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow);
1084 ++addCol;//++addCol; 1121 ++addCol;//++addCol;
1085 if ( row == 0) 1122 if ( row == 0)
1086 addRow = 1; 1123 addRow = 1;
1087 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight, 1124 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight,
1088 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]); 1125 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]);
1089 1126
1090 // reset color to actual color 1127 // reset color to actual color
1091 if (pDays.testBit(i)) { 1128 if (pDays.testBit(i)) {
1092 p.setPen(actcol); 1129 p.setPen(actcol);
1093 } 1130 }
1094 // reset bold font to plain font 1131 // reset bold font to plain font
1095 if ( eDays.testBit(i)) { 1132 if ( eDays.testBit(i)) {
1096 QFont myFont = font(); 1133 QFont myFont = font();
1097 myFont.setBold(false); 1134 myFont.setBold(false);
1098 p.setFont(myFont); 1135 p.setFont(myFont);
1099 } 1136 }
1100 } 1137 }
1101 } else { 1138 } else {
1102 //qDebug("NO redraw "); 1139 //qDebug("NO redraw ");
1103 } 1140 }
1104 1141
1105 bitBlt (this, pevent->rect().topLeft(), &myPix , pevent->rect() ,CopyROP); 1142 bitBlt (this, pevent->rect().topLeft(), &myPix , pevent->rect() ,CopyROP);
1106 mRedrawNeeded = false; 1143 mRedrawNeeded = false;
1107} 1144}
1108 1145
1109// ---------------------------------------------------------------------------- 1146// ----------------------------------------------------------------------------
1110// R E SI Z E E V E N T H A N D L I N G 1147// R E SI Z E E V E N T H A N D L I N G
1111// ---------------------------------------------------------------------------- 1148// ----------------------------------------------------------------------------
1112 1149
1113void KODayMatrix::resizeEvent(QResizeEvent *) 1150void KODayMatrix::resizeEvent(QResizeEvent *)
1114{ 1151{
1115 QRect sz = frameRect(); 1152 QRect sz = frameRect();
1116 daysize.setHeight(sz.height()*7 / NUMDAYS); 1153 daysize.setHeight(sz.height()*7 / NUMDAYS);
1117 daysize.setWidth(sz.width() / 7); 1154 daysize.setWidth(sz.width() / 7);
1118} 1155}
1119 1156
1120QSize KODayMatrix::sizeHint() const 1157QSize KODayMatrix::sizeHint() const
1121{ 1158{
1122 1159
1123 QFontMetrics fm ( font() ); 1160 QFontMetrics fm ( font() );
1124 int wid = fm.width( "30") *7+3; 1161 int wid = fm.width( "30") *7+3;
1125 int hei = fm.height() * 6+3; 1162 int hei = fm.height() * 6+3;
1126 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei); 1163 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei);
1127 return QSize ( wid, hei ); 1164 return QSize ( wid, hei );
1128 1165
1129} 1166}
diff --git a/korganizer/kodaymatrix.h b/korganizer/kodaymatrix.h
index b686bd7..a3216d6 100644
--- a/korganizer/kodaymatrix.h
+++ b/korganizer/kodaymatrix.h
@@ -1,330 +1,331 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at> 3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef _KODAYMAT_H 23#ifndef _KODAYMAT_H
24#define _KODAYMAT_H 24#define _KODAYMAT_H
25 25
26#include <libkcal/calendar.h> 26#include <libkcal/calendar.h>
27 27
28#include <qstring.h> 28#include <qstring.h>
29#include <qframe.h> 29#include <qframe.h>
30#include <qcolor.h> 30#include <qcolor.h>
31#include <qpen.h> 31#include <qpen.h>
32#include <qdatetime.h> 32#include <qdatetime.h>
33#include <qtooltip.h> 33#include <qtooltip.h>
34#include <qpixmap.h> 34#include <qpixmap.h>
35#include <qbitarray.h> 35#include <qbitarray.h>
36#include <qmap.h> 36#include <qmap.h>
37 37
38class QDragEnterEvent; 38class QDragEnterEvent;
39class QDragMoveEvent; 39class QDragMoveEvent;
40class QDragLeaveEvent; 40class QDragLeaveEvent;
41class QDropEvent; 41class QDropEvent;
42 42
43class KODayMatrix; 43class KODayMatrix;
44class KODaymatrixWhatsThis; 44class KODaymatrixWhatsThis;
45 45
46using namespace KCal; 46using namespace KCal;
47 47
48 48
49/** 49/**
50 * small helper class to dynamically show tooltips inside the day matrix. 50 * small helper class to dynamically show tooltips inside the day matrix.
51 * This class asks the day matrix object for a appropriate label which 51 * This class asks the day matrix object for a appropriate label which
52 * is in our special case the name of the holiday or null if this day is no holiday. 52 * is in our special case the name of the holiday or null if this day is no holiday.
53 */ 53 */
54class DynamicTip : public QToolTip 54class DynamicTip : public QToolTip
55{ 55{
56public: 56public:
57 57
58 /** 58 /**
59 * Constructor that expects a KODayMatrix object as parent. 59 * Constructor that expects a KODayMatrix object as parent.
60 * 60 *
61 * @param parent the parent KODayMatrix control. 61 * @param parent the parent KODayMatrix control.
62 */ 62 */
63 DynamicTip(QWidget* parent ); 63 DynamicTip(QWidget* parent );
64 64
65protected: 65protected:
66 66
67 /** 67 /**
68 * Qt's callback to ask the object to provide an approrpiate text for the 68 * Qt's callback to ask the object to provide an approrpiate text for the
69 * tooltip to be shown. 69 * tooltip to be shown.
70 * 70 *
71 * @param pos coordinates of the mouse. 71 * @param pos coordinates of the mouse.
72 */ 72 */
73 void maybeTip( const QPoint & pos); 73 void maybeTip( const QPoint & pos);
74 74
75private: 75private:
76 76
77 /** the parent control this tooltip is designed for. */ 77 /** the parent control this tooltip is designed for. */
78 KODayMatrix* matrix; 78 KODayMatrix* matrix;
79}; 79};
80 80
81/** 81/**
82 * replacement for kdpdatebuton.cpp that used 42 widgets for the day matrix to be displayed. 82 * replacement for kdpdatebuton.cpp that used 42 widgets for the day matrix to be displayed.
83 * Cornelius thought this was a waste of memory and a lot of overhead. 83 * Cornelius thought this was a waste of memory and a lot of overhead.
84 * In addition the selection was not very intuitive so I decided to rewrite it using a QFrame 84 * In addition the selection was not very intuitive so I decided to rewrite it using a QFrame
85 * that draws the labels and allows for dragging selection while maintaining nearly full 85 * that draws the labels and allows for dragging selection while maintaining nearly full
86 * compatibility in behaviour with its predecessor. 86 * compatibility in behaviour with its predecessor.
87 * 87 *
88 * The following functionality has been changed: 88 * The following functionality has been changed:
89 * 89 *
90 * o when shifting events in the agenda view from one day to another the day matrix is updated now 90 * o when shifting events in the agenda view from one day to another the day matrix is updated now
91 * o TODO ET dragging an event to the matrix will MOVE not COPY the event to the new date. 91 * o TODO ET dragging an event to the matrix will MOVE not COPY the event to the new date.
92 * o no support for Ctrl+click to create groups of dates 92 * o no support for Ctrl+click to create groups of dates
93 * (This has not really been supported in the predecessor. It was not very intuitive nor was it 93 * (This has not really been supported in the predecessor. It was not very intuitive nor was it
94 * user friendly.) 94 * user friendly.)
95 * This feature has been replaced with dragging a selection on the matrix. The matrix will 95 * This feature has been replaced with dragging a selection on the matrix. The matrix will
96 * automatically choose the appropriate selection (e.g. you are not any longer able to select 96 * automatically choose the appropriate selection (e.g. you are not any longer able to select
97 * two distinct groups of date selections as in the old class) 97 * two distinct groups of date selections as in the old class)
98 * o now that you can select more then a week it can happen that not all selected days are 98 * o now that you can select more then a week it can happen that not all selected days are
99 * displayed in the matrix. However this is preferred to the alternative which would mean to 99 * displayed in the matrix. However this is preferred to the alternative which would mean to
100 * adjust the selection and leave some days undisplayed while scrolling through the months 100 * adjust the selection and leave some days undisplayed while scrolling through the months
101 * 101 *
102 * @short day matrix widget of the KDateNavigator 102 * @short day matrix widget of the KDateNavigator
103 * 103 *
104 * @author Eitzenberger Thomas 104 * @author Eitzenberger Thomas
105 */ 105 */
106class KODayMatrix: public QFrame { 106class KODayMatrix: public QFrame {
107 107
108 Q_OBJECT 108 Q_OBJECT
109 109
110public: 110public:
111 111
112 /** constructor to create a day matrix widget. 112 /** constructor to create a day matrix widget.
113 * 113 *
114 * @param parent widget that is the parent of the day matrix. Normally this should 114 * @param parent widget that is the parent of the day matrix. Normally this should
115 * be a KDateNavigator 115 * be a KDateNavigator
116 * @param calendar instance of a calendar on which all calculations are based 116 * @param calendar instance of a calendar on which all calculations are based
117 * @param date start date of the matrix (is expected to be already fixed). It is 117 * @param date start date of the matrix (is expected to be already fixed). It is
118 * assumed that this date is the first week day to be shown in the matrix. 118 * assumed that this date is the first week day to be shown in the matrix.
119 * @param name name of the widget 119 * @param name name of the widget
120 */ 120 */
121 KODayMatrix( QWidget *parent, const char *name ); 121 KODayMatrix( QWidget *parent, const char *name );
122 //KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name ); 122 //KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name );
123 123
124 /** destructor that deallocates all dynamically allocated private members. 124 /** destructor that deallocates all dynamically allocated private members.
125 */ 125 */
126 ~KODayMatrix(); 126 ~KODayMatrix();
127 127
128 /** updates the day matrix to start with the given date. Does all the necessary 128 /** updates the day matrix to start with the given date. Does all the necessary
129 * checks for holidays or events on a day and stores them for display later on. 129 * checks for holidays or events on a day and stores them for display later on.
130 * Does NOT update the view visually. Call repaint() for this. 130 * Does NOT update the view visually. Call repaint() for this.
131 * 131 *
132 * @param actdate recalculates the day matrix to show NUMDAYS starting from this 132 * @param actdate recalculates the day matrix to show NUMDAYS starting from this
133 * date. 133 * date.
134 */ 134 */
135 void updateView(QDate actdate); 135 void updateView(QDate actdate);
136 void updateEvents(); 136 void updateEvents();
137 137
138 /** returns the QDate object associated with day indexed by the 138 /** returns the QDate object associated with day indexed by the
139 * supplied offset. 139 * supplied offset.
140 */ 140 */
141 const QDate& getDate(int offset); 141 const QDate& getDate(int offset);
142 void setCalendar( Calendar * ); 142 void setCalendar( Calendar * );
143 /** returns the official name of this holy day or 0 if there is no label 143 /** returns the official name of this holy day or 0 if there is no label
144 * for this day. 144 * for this day.
145 */ 145 */
146 QString getHolidayLabel(int offset); 146 QString getHolidayLabel(int offset);
147 147
148 /** adds all actual selected days from mSelStart to mSelEnd to the supplied 148 /** adds all actual selected days from mSelStart to mSelEnd to the supplied
149 * DateList. 149 * DateList.
150 */ 150 */
151 void addSelectedDaysTo(DateList&); 151 void addSelectedDaysTo(DateList&);
152 152
153 /** sets the actual to be displayed selection in the day matrix starting from 153 /** sets the actual to be displayed selection in the day matrix starting from
154 * start and ending with end. Theview must be manually updated by calling 154 * start and ending with end. Theview must be manually updated by calling
155 * repaint. (?) 155 * repaint. (?)
156 */ 156 */
157 bool setSelectedDaysFrom(const QDate& start, const QDate& end); 157 bool setSelectedDaysFrom(const QDate& start, const QDate& end);
158 void clearSelection(); 158 void clearSelection();
159 159
160 /** Is today visible in the view? Keep this in sync with 160 /** Is today visible in the view? Keep this in sync with
161 * the values today (below) can take. 161 * the values today (below) can take.
162 */ 162 */
163 bool isTodayVisible() const { return today>=0; } ; 163 bool isTodayVisible() const { return today>=0; } ;
164 164
165 /** If today is visible, then we can find out if today is 165 /** If today is visible, then we can find out if today is
166 * near the beginning or the end of the month. 166 * near the beginning or the end of the month.
167 * This is dependent on today remaining the index 167 * This is dependent on today remaining the index
168 * in the array of visible dates and going from 168 * in the array of visible dates and going from
169 * top left (0) to bottom right (41). 169 * top left (0) to bottom right (41).
170 */ 170 */
171 bool isBeginningOfMonth() const { return today<=8; } ; 171 bool isBeginningOfMonth() const { return today<=8; } ;
172 bool isEndOfMonth() const { return today>=27; } ; 172 bool isEndOfMonth() const { return today>=27; } ;
173 QString getWhatsThisText( QPoint ) ; 173 QString getWhatsThisText( QPoint ) ;
174 QSize sizeHint() const; 174 QSize sizeHint() const;
175 QRect frameRect () const { int wid = frameWidth(); return QRect(0+wid,0+wid,width()-wid-wid,height()-wid-wid);} 175 QRect frameRect () const { int wid = frameWidth(); return QRect(0+wid,0+wid,width()-wid-wid,height()-wid-wid);}
176public slots: 176public slots:
177 /** Recalculates all the flags of the days in the matrix like holidays or events 177 /** Recalculates all the flags of the days in the matrix like holidays or events
178 * on a day (Actually calls above method with the actual startdate). 178 * on a day (Actually calls above method with the actual startdate).
179 */ 179 */
180 void updateView(); 180 void updateView();
181 void updateViewTimed(); 181 void updateViewTimed();
182 void repaintViewTimed(); 182 void repaintViewTimed();
183 183
184 /** 184 /**
185 * Calculate which square in the matrix should be 185 * Calculate which square in the matrix should be
186 * hilighted to indicate it's today. 186 * hilighted to indicate it's today.
187 */ 187 */
188 void recalculateToday(); 188 void recalculateToday();
189 189
190/* 190/*
191 void setStartDate(QDate); 191 void setStartDate(QDate);
192*/ 192*/
193 193
194signals: 194signals:
195 195
196 /** emitted if the user selects a block of days with the mouse by dragging a rectangle 196 /** emitted if the user selects a block of days with the mouse by dragging a rectangle
197 * inside the matrix 197 * inside the matrix
198 * 198 *
199 * @param daylist list of days that have been selected by the user 199 * @param daylist list of days that have been selected by the user
200 */ 200 */
201 void selected( const KCal::DateList &daylist ); 201 void selected( const KCal::DateList &daylist );
202 202
203 /** emitted if the user has dropped an event inside the matrix 203 /** emitted if the user has dropped an event inside the matrix
204 * 204 *
205 * @param event the dropped calendar event 205 * @param event the dropped calendar event
206 */ 206 */
207 void eventDropped(Event *event); 207 void eventDropped(Event *event);
208 208
209protected: 209protected:
210 210
211 void paintEvent(QPaintEvent *ev); 211 void paintEvent(QPaintEvent *ev);
212 212
213 void mousePressEvent (QMouseEvent* e); 213 void mousePressEvent (QMouseEvent* e);
214 214
215 void mouseReleaseEvent (QMouseEvent* e); 215 void mouseReleaseEvent (QMouseEvent* e);
216 216
217 void mouseMoveEvent (QMouseEvent* e); 217 void mouseMoveEvent (QMouseEvent* e);
218 218
219 void dragEnterEvent(QDragEnterEvent *); 219 void dragEnterEvent(QDragEnterEvent *);
220 220
221 void dragMoveEvent(QDragMoveEvent *); 221 void dragMoveEvent(QDragMoveEvent *);
222 222
223 void dragLeaveEvent(QDragLeaveEvent *); 223 void dragLeaveEvent(QDragLeaveEvent *);
224 224
225 void dropEvent(QDropEvent *); 225 void dropEvent(QDropEvent *);
226 226
227 void resizeEvent(QResizeEvent *); 227 void resizeEvent(QResizeEvent *);
228 228
229private: 229private:
230 int mLastView;
230 void computeEvent(Event *even, int dayindex ); 231 void computeEvent(Event *even, int dayindex );
231 int oldW, oldH; 232 int oldW, oldH;
232 bool mRedrawNeeded; 233 bool mRedrawNeeded;
233 KODaymatrixWhatsThis* mKODaymatrixWhatsThis; 234 KODaymatrixWhatsThis* mKODaymatrixWhatsThis;
234 bool mouseDown; 235 bool mouseDown;
235 QBitArray bDays; 236 QBitArray bDays;
236 QBitArray hDays; 237 QBitArray hDays;
237 QBitArray eDays; 238 QBitArray eDays;
238 QBitArray pDays; 239 QBitArray pDays;
239 QPixmap myPix; 240 QPixmap myPix;
240 QTimer* mUpdateTimer; 241 QTimer* mUpdateTimer;
241 QTimer* mRepaintTimer; 242 QTimer* mRepaintTimer;
242 bool mDayChanged; 243 bool mDayChanged;
243 bool mPendingUpdateBeforeRepaint; 244 bool mPendingUpdateBeforeRepaint;
244 245
245 /** returns the index of the day located at the matrix's widget (x,y) position. 246 /** returns the index of the day located at the matrix's widget (x,y) position.
246 * 247 *
247 * @param x horizontal coordinate 248 * @param x horizontal coordinate
248 * @param y vertical coordinate 249 * @param y vertical coordinate
249 */ 250 */
250 int getDayIndexFrom(int x, int y); 251 int getDayIndexFrom(int x, int y);
251 252
252 /** calculates a "shaded" color from the supplied color object. 253 /** calculates a "shaded" color from the supplied color object.
253 * (Copied from Cornelius's kdpdatebutton.cpp) 254 * (Copied from Cornelius's kdpdatebutton.cpp)
254 * 255 *
255 * @param color source based on which a shaded color should be calculated. 256 * @param color source based on which a shaded color should be calculated.
256 */ 257 */
257 QColor getShadedColor(QColor color); 258 QColor getShadedColor(QColor color);
258 259
259 /** number of days to be displayed. For now there is no support for any other number then 42. 260 /** number of days to be displayed. For now there is no support for any other number then 42.
260 so change it at your own risk :o) */ 261 so change it at your own risk :o) */
261 static const int NUMDAYS; 262 static const int NUMDAYS;
262 263
263 /** calendar instance to be queried for holidays, events, ... */ 264 /** calendar instance to be queried for holidays, events, ... */
264 Calendar *mCalendar; 265 Calendar *mCalendar;
265 266
266 /** starting date of the matrix */ 267 /** starting date of the matrix */
267 QDate startdate; 268 QDate startdate;
268 269
269 /** array of day labels to optimeize drawing performance. */ 270 /** array of day labels to optimeize drawing performance. */
270 QString *daylbls; 271 QString *daylbls;
271 272
272 /** array of days displayed to reduce memory consumption by 273 /** array of days displayed to reduce memory consumption by
273 subsequently calling QDate::addDays(). */ 274 subsequently calling QDate::addDays(). */
274 QDate *days; 275 QDate *days;
275 276
276 /** array of storing the number of events on a given day. 277 /** array of storing the number of events on a given day.
277 * used for drawing a bold font if there is at least one event on that day. 278 * used for drawing a bold font if there is at least one event on that day.
278 */ 279 */
279 //int *events; 280 //int *events;
280 281
281 /** stores holiday names of the days shown in the matrix. */ 282 /** stores holiday names of the days shown in the matrix. */
282 QMap<int,QString> mHolidays; 283 QMap<int,QString> mHolidays;
283 284
284 /** indey of today or -1 if today is not visible in the matrix. */ 285 /** indey of today or -1 if today is not visible in the matrix. */
285 int today; 286 int today;
286 287
287 /** index of day where dragged selection was initiated. 288 /** index of day where dragged selection was initiated.
288 used to detect "negative" timely selections */ 289 used to detect "negative" timely selections */
289 int mSelInit; 290 int mSelInit;
290 291
291 /** if mSelStart has this value it indicates that there is no 292 /** if mSelStart has this value it indicates that there is no
292 actual selection in the matrix. */ 293 actual selection in the matrix. */
293 static const int NOSELECTION; 294 static const int NOSELECTION;
294 295
295 /** index of first selected day. */ 296 /** index of first selected day. */
296 int mSelStart; 297 int mSelStart;
297 298
298 /** index of last selected day. */ 299 /** index of last selected day. */
299 int mSelEnd; 300 int mSelEnd;
300 301
301 /** dynamic tooltip to handle mouse dependent tips for each day in the matrix. */ 302 /** dynamic tooltip to handle mouse dependent tips for each day in the matrix. */
302 DynamicTip* mToolTip; 303 DynamicTip* mToolTip;
303 304
304 305
305 /** default background colour of the matrix. */ 306 /** default background colour of the matrix. */
306 QColor mDefaultBackColor; 307 QColor mDefaultBackColor;
307 308
308 /** default text color of the matrix. */ 309 /** default text color of the matrix. */
309 QColor mDefaultTextColor; 310 QColor mDefaultTextColor;
310 311
311 /** default text color for days not in the actual month. */ 312 /** default text color for days not in the actual month. */
312 QColor mDefaultTextColorShaded; 313 QColor mDefaultTextColorShaded;
313 314
314 /** default text color for holidays not in the actual month. */ 315 /** default text color for holidays not in the actual month. */
315 QColor mHolidayColorShaded; 316 QColor mHolidayColorShaded;
316 317
317 /** text color for selected days. */ 318 /** text color for selected days. */
318 QColor mSelectedDaysColor; 319 QColor mSelectedDaysColor;
319 320
320 /** default width of the frame drawn around today if it is visible in the matrix. */ 321 /** default width of the frame drawn around today if it is visible in the matrix. */
321 int mTodayMarginWidth; 322 int mTodayMarginWidth;
322 323
323 /** stores actual size of each day in the widget so that I dont need to ask this data 324 /** stores actual size of each day in the widget so that I dont need to ask this data
324 * on every repaint. 325 * on every repaint.
325 */ 326 */
326 QRect daysize; 327 QRect daysize;
327 328
328}; 329};
329 330
330#endif 331#endif
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 843526d..ae61db6 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -1048,1024 +1048,1027 @@ void MonthViewCell::cellClicked( QListBoxItem *item )
1048 return; 1048 return;
1049 } 1049 }
1050 1050
1051} 1051}
1052 1052
1053void MonthViewCell::contextMenu( QListBoxItem *item ) 1053void MonthViewCell::contextMenu( QListBoxItem *item )
1054{ 1054{
1055 mMonthView->setPopupCell( this ); 1055 mMonthView->setPopupCell( this );
1056 if ( !item ) { 1056 if ( !item ) {
1057 mMonthView->showContextMenu( 0 ); 1057 mMonthView->showContextMenu( 0 );
1058 return; 1058 return;
1059 } 1059 }
1060 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 1060 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
1061 Incidence *incidence = eventItem->incidence(); 1061 Incidence *incidence = eventItem->incidence();
1062 if ( incidence ) mMonthView->showContextMenu( incidence ); 1062 if ( incidence ) mMonthView->showContextMenu( incidence );
1063} 1063}
1064 1064
1065void MonthViewCell::selection( QListBoxItem *item ) 1065void MonthViewCell::selection( QListBoxItem *item )
1066{ 1066{
1067 if ( !item ) return; 1067 if ( !item ) return;
1068 1068
1069 mMonthView->setSelectedCell( this ); 1069 mMonthView->setSelectedCell( this );
1070} 1070}
1071 1071
1072 1072
1073// ******************************************************************************* 1073// *******************************************************************************
1074// ******************************************************************************* 1074// *******************************************************************************
1075// ******************************************************************************* 1075// *******************************************************************************
1076 1076
1077 1077
1078KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) 1078KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
1079 : KOEventView( calendar, parent, name ), 1079 : KOEventView( calendar, parent, name ),
1080 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), 1080 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ),
1081 mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) 1081 mWidthLongDayLabel( 0 ), mSelectedCell( 0 )
1082{ 1082{
1083 mFlagKeyPressed = false; 1083 mFlagKeyPressed = false;
1084 mShortDayLabelsM = false; 1084 mShortDayLabelsM = false;
1085 mShortDayLabelsW = false; 1085 mShortDayLabelsW = false;
1086 skipResize = false; 1086 skipResize = false;
1087 clPending = true; 1087 clPending = true;
1088 mPopupCell = 0; 1088 mPopupCell = 0;
1089 mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" ); 1089 mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" );
1090 mWidStack = new QWidgetStack( this ); 1090 mWidStack = new QWidgetStack( this );
1091 QVBoxLayout* hb = new QVBoxLayout( this ); 1091 QVBoxLayout* hb = new QVBoxLayout( this );
1092 mMonthView = new QWidget( mWidStack ); 1092 mMonthView = new QWidget( mWidStack );
1093 mWeekView = new QWidget( mWidStack ); 1093 mWeekView = new QWidget( mWidStack );
1094#if QT_VERSION >= 0x030000 1094#if QT_VERSION >= 0x030000
1095 mWidStack->addWidget(mMonthView ); 1095 mWidStack->addWidget(mMonthView );
1096 mWidStack->addWidget(mWeekView ); 1096 mWidStack->addWidget(mWeekView );
1097#else 1097#else
1098 mWidStack->addWidget( mMonthView, 1 ); 1098 mWidStack->addWidget( mMonthView, 1 );
1099 mWidStack->addWidget( mWeekView , 1 ); 1099 mWidStack->addWidget( mWeekView , 1 );
1100#endif 1100#endif
1101 hb->addWidget( mNavigatorBar ); 1101 hb->addWidget( mNavigatorBar );
1102 hb->addWidget( mWidStack ); 1102 hb->addWidget( mWidStack );
1103 mShowWeekView = KOPrefs::instance()->mMonthViewWeek; 1103 mShowWeekView = KOPrefs::instance()->mMonthViewWeek;
1104 updatePossible = false; 1104 updatePossible = false;
1105 //updatePossible = true; 1105 //updatePossible = true;
1106 mCells.setAutoDelete( true ); 1106 mCells.setAutoDelete( true );
1107 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 1107 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1108 mDayLabels.resize( mDaysPerWeek ); 1108 mDayLabels.resize( mDaysPerWeek );
1109 mDayLabelsW.resize( mDaysPerWeek ); 1109 mDayLabelsW.resize( mDaysPerWeek );
1110 QFont bfont = font(); 1110 QFont bfont = font();
1111 if ( QApplication::desktop()->width() < 650 ) { 1111 if ( QApplication::desktop()->width() < 650 ) {
1112 bfont.setPointSize( bfont.pointSize() - 2 ); 1112 bfont.setPointSize( bfont.pointSize() - 2 );
1113 } 1113 }
1114 bfont.setBold( true ); 1114 bfont.setBold( true );
1115 int i; 1115 int i;
1116 1116
1117 for( i = 0; i < mDaysPerWeek; i++ ) { 1117 for( i = 0; i < mDaysPerWeek; i++ ) {
1118 QLabel *label = new QLabel( mMonthView ); 1118 QLabel *label = new QLabel( mMonthView );
1119 label->setFont(bfont); 1119 label->setFont(bfont);
1120 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1120 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1121 label->setLineWidth(1); 1121 label->setLineWidth(1);
1122 label->setAlignment(AlignCenter); 1122 label->setAlignment(AlignCenter);
1123 mDayLabels.insert( i, label ); 1123 mDayLabels.insert( i, label );
1124 label = new QLabel( mWeekView ); 1124 label = new QLabel( mWeekView );
1125 label->setFont(bfont); 1125 label->setFont(bfont);
1126 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1126 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1127 label->setLineWidth(1); 1127 label->setLineWidth(1);
1128 label->setAlignment(AlignCenter); 1128 label->setAlignment(AlignCenter);
1129 mDayLabelsW.insert( i, label ); 1129 mDayLabelsW.insert( i, label );
1130 } 1130 }
1131 1131
1132 bfont.setBold( false ); 1132 bfont.setBold( false );
1133 mWeekLabels.resize( mNumWeeks+1 ); 1133 mWeekLabels.resize( mNumWeeks+1 );
1134 mWeekLabelsW.resize( 2 ); 1134 mWeekLabelsW.resize( 2 );
1135 for( i = 0; i < mNumWeeks+1; i++ ) { 1135 for( i = 0; i < mNumWeeks+1; i++ ) {
1136 KOWeekButton *label = new KOWeekButton( mMonthView ); 1136 KOWeekButton *label = new KOWeekButton( mMonthView );
1137 label->setFocusPolicy(NoFocus); 1137 label->setFocusPolicy(NoFocus);
1138 label->setFont(bfont); 1138 label->setFont(bfont);
1139 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 1139 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
1140 label->setFlat(true); 1140 label->setFlat(true);
1141 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 1141 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
1142 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1142 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1143 //label->setLineWidth(1); 1143 //label->setLineWidth(1);
1144 //label->setAlignment(AlignCenter); 1144 //label->setAlignment(AlignCenter);
1145 mWeekLabels.insert( i, label ); 1145 mWeekLabels.insert( i, label );
1146 } 1146 }
1147 mWeekLabels[mNumWeeks]->setText( i18n("W")); 1147 mWeekLabels[mNumWeeks]->setText( i18n("W"));
1148 mWeekLabels[mNumWeeks]->setFocusPolicy(WheelFocus); 1148 mWeekLabels[mNumWeeks]->setFocusPolicy(WheelFocus);
1149 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number")); 1149 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number"));
1150 1150
1151 for( i = 0; i < 1+1; i++ ) { 1151 for( i = 0; i < 1+1; i++ ) {
1152 KOWeekButton *label = new KOWeekButton( mWeekView ); 1152 KOWeekButton *label = new KOWeekButton( mWeekView );
1153 label->setFocusPolicy(NoFocus); 1153 label->setFocusPolicy(NoFocus);
1154 label->setFont(bfont); 1154 label->setFont(bfont);
1155 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 1155 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
1156 label->setFlat(true); 1156 label->setFlat(true);
1157 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 1157 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
1158 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1158 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1159 //label->setLineWidth(1); 1159 //label->setLineWidth(1);
1160 //label->setAlignment(AlignCenter); 1160 //label->setAlignment(AlignCenter);
1161 mWeekLabelsW.insert( i, label ); 1161 mWeekLabelsW.insert( i, label );
1162 } 1162 }
1163 mWeekLabelsW[1]->setText( i18n("W")); 1163 mWeekLabelsW[1]->setText( i18n("W"));
1164 mWeekLabelsW[1]->setFocusPolicy(WheelFocus); 1164 mWeekLabelsW[1]->setFocusPolicy(WheelFocus);
1165 1165
1166 1166
1167 int row, col; 1167 int row, col;
1168 mCells.resize( mNumCells ); 1168 mCells.resize( mNumCells );
1169 for( row = 0; row < mNumWeeks; ++row ) { 1169 for( row = 0; row < mNumWeeks; ++row ) {
1170 for( col = 0; col < mDaysPerWeek; ++col ) { 1170 for( col = 0; col < mDaysPerWeek; ++col ) {
1171 MonthViewCell *cell = new MonthViewCell( this, mMonthView ); 1171 MonthViewCell *cell = new MonthViewCell( this, mMonthView );
1172 mCells.insert( row * mDaysPerWeek + col, cell ); 1172 mCells.insert( row * mDaysPerWeek + col, cell );
1173 1173
1174 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1174 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1175 SLOT( defaultAction( Incidence * ) ) ); 1175 SLOT( defaultAction( Incidence * ) ) );
1176 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1176 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1177 SIGNAL( newEventSignal( QDateTime ) ) ); 1177 SIGNAL( newEventSignal( QDateTime ) ) );
1178 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1178 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1179 SIGNAL( showDaySignal( QDate ) ) ); 1179 SIGNAL( showDaySignal( QDate ) ) );
1180 connect( cell, SIGNAL( nextCell() ), 1180 connect( cell, SIGNAL( nextCell() ),
1181 SLOT( nextCell() ) ); 1181 SLOT( nextCell() ) );
1182 connect( cell, SIGNAL( prevCell() ), 1182 connect( cell, SIGNAL( prevCell() ),
1183 SLOT( prevCell() ) ); 1183 SLOT( prevCell() ) );
1184 } 1184 }
1185 } 1185 }
1186 mCellsW.resize( mDaysPerWeek ); 1186 mCellsW.resize( mDaysPerWeek );
1187 for( col = 0; col < mDaysPerWeek; ++col ) { 1187 for( col = 0; col < mDaysPerWeek; ++col ) {
1188 MonthViewCell *cell = new MonthViewCell( this, mWeekView ); 1188 MonthViewCell *cell = new MonthViewCell( this, mWeekView );
1189 mCellsW.insert( col, cell ); 1189 mCellsW.insert( col, cell );
1190 1190
1191 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1191 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1192 SLOT( defaultAction( Incidence * ) ) ); 1192 SLOT( defaultAction( Incidence * ) ) );
1193 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1193 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1194 SIGNAL( newEventSignal( QDateTime ) ) ); 1194 SIGNAL( newEventSignal( QDateTime ) ) );
1195 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1195 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1196 SIGNAL( showDaySignal( QDate ) ) ); 1196 SIGNAL( showDaySignal( QDate ) ) );
1197 connect( cell, SIGNAL( nextCell() ), 1197 connect( cell, SIGNAL( nextCell() ),
1198 SLOT( nextCell() ) ); 1198 SLOT( nextCell() ) );
1199 connect( cell, SIGNAL( prevCell() ), 1199 connect( cell, SIGNAL( prevCell() ),
1200 SLOT( prevCell() ) ); 1200 SLOT( prevCell() ) );
1201 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); 1201 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont );
1202 } 1202 }
1203 1203
1204 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 1204 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
1205 mContextMenu = eventPopup(); 1205 mContextMenu = eventPopup();
1206 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1206 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1207 i18n("New Event..."),this, 1207 i18n("New Event..."),this,
1208 SLOT(slotNewEvent()),false); 1208 SLOT(slotNewEvent()),false);
1209 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1209 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1210 i18n("New Todo..."),this, 1210 i18n("New Todo..."),this,
1211 SLOT(slotNewTodo()),false); 1211 SLOT(slotNewTodo()),false);
1212 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1212 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1213 i18n("Journal"),this, 1213 i18n("Journal"),this,
1214 SLOT(slotEditJournal()),false); 1214 SLOT(slotEditJournal()),false);
1215 1215
1216 1216
1217 1217
1218 QString pathString = ""; 1218 QString pathString = "";
1219 if ( !KOPrefs::instance()->mToolBarMiniIcons ) { 1219 if ( !KOPrefs::instance()->mToolBarMiniIcons ) {
1220 if ( QApplication::desktop()->width() < 480 ) 1220 if ( QApplication::desktop()->width() < 480 )
1221 pathString += "icons16/"; 1221 pathString += "icons16/";
1222 } else 1222 } else
1223 pathString += "iconsmini/"; 1223 pathString += "iconsmini/";
1224 mNewItemMenu = new QPopupMenu( this ); 1224 mNewItemMenu = new QPopupMenu( this );
1225 mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent())); 1225 mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent()));
1226 mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false); 1226 mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false);
1227 mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false); 1227 mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false);
1228 1228
1229 // updateConfig(); //useless here... 1229 // updateConfig(); //useless here...
1230 // ... but we need mWidthLongDayLabel computed 1230 // ... but we need mWidthLongDayLabel computed
1231 QFontMetrics fontmetric(mDayLabels[0]->font()); 1231 QFontMetrics fontmetric(mDayLabels[0]->font());
1232 mWidthLongDayLabel = 0; 1232 mWidthLongDayLabel = 0;
1233 for (int i = 0; i < 7; i++) { 1233 for (int i = 0; i < 7; i++) {
1234 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1234 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1235 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1235 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1236 } 1236 }
1237 1237
1238 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1238 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1239 1239
1240#if 0 1240#if 0
1241 if ( mShowWeekView ) 1241 if ( mShowWeekView )
1242 mWidStack->raiseWidget( mWeekView ); 1242 mWidStack->raiseWidget( mWeekView );
1243 else 1243 else
1244 mWidStack->raiseWidget( mMonthView ); 1244 mWidStack->raiseWidget( mMonthView );
1245#endif 1245#endif
1246 1246
1247 emit incidenceSelected( 0 ); 1247 emit incidenceSelected( 0 );
1248 1248
1249 mComputeLayoutTimer = new QTimer( this ); 1249 mComputeLayoutTimer = new QTimer( this );
1250 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout())); 1250 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout()));
1251 1251
1252 1252
1253#ifndef DESKTOP_VERSION 1253#ifndef DESKTOP_VERSION
1254 resize( QApplication::desktop()->size() ); 1254 resize( QApplication::desktop()->size() );
1255#else 1255#else
1256 resize(640, 480 ); 1256 resize(640, 480 );
1257 updatePossible = true; 1257 updatePossible = true;
1258#endif 1258#endif
1259 computeLayout(); 1259 computeLayout();
1260 1260
1261 if ( mShowWeekView ) 1261 if ( mShowWeekView )
1262 mWidStack->raiseWidget( mWeekView ); 1262 mWidStack->raiseWidget( mWeekView );
1263 else 1263 else
1264 mWidStack->raiseWidget( mMonthView ); 1264 mWidStack->raiseWidget( mMonthView );
1265} 1265}
1266 1266
1267KOMonthView::~KOMonthView() 1267KOMonthView::~KOMonthView()
1268{ 1268{
1269 delete mContextMenu; 1269 delete mContextMenu;
1270} 1270}
1271 1271
1272void KOMonthView::selectInternalWeekNum ( int n ) 1272void KOMonthView::selectInternalWeekNum ( int n )
1273{ 1273{
1274 switchView(); 1274 switchView();
1275 if ( !KOPrefs::instance()->mMonthViewWeek ) 1275 if ( !KOPrefs::instance()->mMonthViewWeek )
1276 emit selectMonth (); 1276 emit selectMonth ();
1277 else 1277 else
1278 emit selectWeekNum ( n ); 1278 emit selectWeekNum ( n );
1279} 1279}
1280 1280
1281int KOMonthView::currentWeek() 1281int KOMonthView::currentWeek()
1282{ 1282{
1283 if ( mShowWeekView ) 1283 if ( mShowWeekView )
1284 return mWeekLabelsW[0]->getWeekNum(); 1284 return mWeekLabelsW[0]->getWeekNum();
1285 return mWeekLabels[0]->getWeekNum(); 1285 return mWeekLabels[0]->getWeekNum();
1286} 1286}
1287void KOMonthView::switchView() 1287void KOMonthView::switchView()
1288{ 1288{
1289 if ( selectedCell( ) ) 1289 if ( selectedCell( ) )
1290 selectedCell()->deselect(); 1290 selectedCell()->deselect();
1291 mShowWeekView = !mShowWeekView; 1291 mShowWeekView = !mShowWeekView;
1292 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 1292 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
1293 if ( clPending ) { 1293 if ( clPending ) {
1294 computeLayout(); 1294 computeLayout();
1295 updateConfig(); 1295 updateConfig();
1296 } 1296 }
1297 if ( mShowWeekView ) 1297 if ( mShowWeekView )
1298 mWidStack->raiseWidget( mWeekView ); 1298 mWidStack->raiseWidget( mWeekView );
1299 else 1299 else
1300 mWidStack->raiseWidget( mMonthView ); 1300 mWidStack->raiseWidget( mMonthView );
1301 clPending = false; 1301 clPending = false;
1302} 1302}
1303 1303
1304int KOMonthView::maxDatesHint() 1304int KOMonthView::maxDatesHint()
1305{ 1305{
1306 return mNumCells; 1306 return mNumCells;
1307} 1307}
1308 1308
1309int KOMonthView::currentDateCount() 1309int KOMonthView::currentDateCount()
1310{ 1310{
1311 return mNumCells; 1311 return mNumCells;
1312} 1312}
1313 1313
1314QPtrList<Incidence> KOMonthView::selectedIncidences() 1314QPtrList<Incidence> KOMonthView::selectedIncidences()
1315{ 1315{
1316 QPtrList<Incidence> selected; 1316 QPtrList<Incidence> selected;
1317 1317
1318 if ( mSelectedCell ) { 1318 if ( mSelectedCell ) {
1319 Incidence *incidence = mSelectedCell->selectedIncidence(); 1319 Incidence *incidence = mSelectedCell->selectedIncidence();
1320 if ( incidence ) selected.append( incidence ); 1320 if ( incidence ) selected.append( incidence );
1321 } 1321 }
1322 1322
1323 return selected; 1323 return selected;
1324} 1324}
1325 1325
1326DateList KOMonthView::selectedDates() 1326DateList KOMonthView::selectedDates()
1327{ 1327{
1328 DateList selected; 1328 DateList selected;
1329 1329
1330 if ( mSelectedCell ) { 1330 if ( mSelectedCell ) {
1331 QDate qd = mSelectedCell->selectedIncidenceDate(); 1331 QDate qd = mSelectedCell->selectedIncidenceDate();
1332 if ( qd.isValid() ) selected.append( qd ); 1332 if ( qd.isValid() ) selected.append( qd );
1333 } 1333 }
1334 1334
1335 return selected; 1335 return selected;
1336} 1336}
1337 1337
1338void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1338void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1339 const QDate &td) 1339 const QDate &td)
1340{ 1340{
1341#ifndef KORG_NOPRINTER 1341#ifndef KORG_NOPRINTER
1342 calPrinter->preview(CalPrinter::Month, fd, td); 1342 calPrinter->preview(CalPrinter::Month, fd, td);
1343#endif 1343#endif
1344} 1344}
1345 1345
1346void KOMonthView::updateConfig() 1346void KOMonthView::updateConfig()
1347{ 1347{
1348 1348
1349 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1349 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1350 1350
1351 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { 1351 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1352 mWeekStartsMonday = true; 1352 mWeekStartsMonday = true;
1353 } 1353 }
1354 QFontMetrics fontmetric(mDayLabels[0]->font()); 1354 QFontMetrics fontmetric(mDayLabels[0]->font());
1355 mWidthLongDayLabel = 0; 1355 mWidthLongDayLabel = 0;
1356 1356
1357 for (int i = 0; i < 7; i++) { 1357 for (int i = 0; i < 7; i++) {
1358 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1358 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1359 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1359 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1360 } 1360 }
1361 bool temp = mShowSatSunComp ; 1361 bool temp = mShowSatSunComp ;
1362 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 1362 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1363 if ( ! mShowWeekView ) { 1363 if ( ! mShowWeekView ) {
1364 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) 1364 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
1365 computeLayout(); 1365 computeLayout();
1366 } 1366 }
1367 updateDayLabels(); 1367 updateDayLabels();
1368 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 1368 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
1369 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 1369 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
1370 //resizeEvent( 0 ); 1370 //resizeEvent( 0 );
1371 for (uint i = 0; i < mCells.count(); ++i) { 1371 for (uint i = 0; i < mCells.count(); ++i) {
1372 mCells[i]->updateConfig(); 1372 mCells[i]->updateConfig();
1373 } 1373 }
1374 1374
1375 for (uint i = 0; i < mCellsW.count(); ++i) { 1375 for (uint i = 0; i < mCellsW.count(); ++i) {
1376 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont); 1376 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont);
1377 } 1377 }
1378#ifdef DESKTOP_VERSION 1378#ifdef DESKTOP_VERSION
1379 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips); 1379 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips);
1380#endif 1380#endif
1381 updateView(); 1381 updateView();
1382} 1382}
1383 1383
1384void KOMonthView::updateDayLabels() 1384void KOMonthView::updateDayLabels()
1385{ 1385{
1386 1386
1387 QPtrVector<QLabel> *mDayLabelsT; 1387 QPtrVector<QLabel> *mDayLabelsT;
1388 1388
1389 mDayLabelsT = &mDayLabelsW; 1389 mDayLabelsT = &mDayLabelsW;
1390 for (int i = 0; i < 7; i++) { 1390 for (int i = 0; i < 7; i++) {
1391 { 1391 {
1392 bool show = mShortDayLabelsW; 1392 bool show = mShortDayLabelsW;
1393 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1393 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1394 show = true; 1394 show = true;
1395 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1395 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1396 } 1396 }
1397 } 1397 }
1398 mDayLabelsT = &mDayLabels; 1398 mDayLabelsT = &mDayLabels;
1399 for (int i = 0; i < 7; i++) { 1399 for (int i = 0; i < 7; i++) {
1400 if (KGlobal::locale()->weekStartsMonday() || KOPrefs::instance()->mMonthViewSatSunTog ) { 1400 if (KGlobal::locale()->weekStartsMonday() || KOPrefs::instance()->mMonthViewSatSunTog ) {
1401 bool show = mShortDayLabelsM; 1401 bool show = mShortDayLabelsM;
1402 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1402 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1403 show = true; 1403 show = true;
1404 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1404 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1405 } else { 1405 } else {
1406 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM)); 1406 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM));
1407 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM)); 1407 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM));
1408 1408
1409 } 1409 }
1410 } 1410 }
1411 1411
1412} 1412}
1413 1413
1414void KOMonthView::showDates(const QDate &start, const QDate &) 1414void KOMonthView::showDates(const QDate &start, const QDate &)
1415{ 1415{
1416 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl; 1416 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl;
1417 1417
1418 QPtrVector<MonthViewCell> *cells; 1418 QPtrVector<MonthViewCell> *cells;
1419 QPtrVector<QLabel> *dayLabels; 1419 QPtrVector<QLabel> *dayLabels;
1420 QPtrVector<KOWeekButton> *weekLabels; 1420 QPtrVector<KOWeekButton> *weekLabels;
1421 int weekNum = 6; 1421 int weekNum = 6;
1422 mStartDate = start; 1422 mStartDate = start;
1423 if ( mShowWeekView ) { 1423 if ( mShowWeekView ) {
1424 weekNum = 1; 1424 weekNum = 1;
1425 cells = &mCellsW; 1425 cells = &mCellsW;
1426 dayLabels = &mDayLabelsW; 1426 dayLabels = &mDayLabelsW;
1427 weekLabels = &mWeekLabelsW; 1427 weekLabels = &mWeekLabelsW;
1428 if ( !KGlobal::locale()->weekStartsMonday() ) { 1428 if ( !KGlobal::locale()->weekStartsMonday() ) {
1429 mStartDate = mStartDate.addDays( 1 ); 1429 mStartDate = mStartDate.addDays( 1 );
1430 } 1430 }
1431 } else { 1431 } else {
1432 cells = &mCells; 1432 cells = &mCells;
1433 dayLabels = &mDayLabels; 1433 dayLabels = &mDayLabels;
1434 weekLabels = &mWeekLabels; 1434 weekLabels = &mWeekLabels;
1435 } 1435 }
1436 1436
1437 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1437 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1438 1438
1439 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { 1439 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1440 mWeekStartsMonday = true; 1440 mWeekStartsMonday = true;
1441 } 1441 }
1442 int startWeekDay = mWeekStartsMonday ? 1 : 7; 1442 int startWeekDay = mWeekStartsMonday ? 1 : 7;
1443 1443
1444 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) { 1444 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) {
1445 mStartDate = mStartDate.addDays( -1 ); 1445 mStartDate = mStartDate.addDays( -1 );
1446 } 1446 }
1447 bool primary = false; 1447 bool primary = false;
1448 uint i; 1448 uint i;
1449 for( i = 0; i < (*cells).size(); ++i ) { 1449 for( i = 0; i < (*cells).size(); ++i ) {
1450 QDate date = mStartDate.addDays( i ); 1450 QDate date = mStartDate.addDays( i );
1451 (*cells)[i]->setDate( date ); 1451 (*cells)[i]->setDate( date );
1452 1452
1453#ifndef KORG_NOPLUGINS 1453#ifndef KORG_NOPLUGINS
1454 // add holiday, if present 1454 // add holiday, if present
1455 QString hstring(KOCore::self()->holiday(date)); 1455 QString hstring(KOCore::self()->holiday(date));
1456 (*cells)[i]->setHoliday( hstring ); 1456 (*cells)[i]->setHoliday( hstring );
1457#endif 1457#endif
1458 1458
1459 } 1459 }
1460 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 ); 1460 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 );
1461 for( i = 0; i < weekNum; ++i ) { 1461 for( i = 0; i < weekNum; ++i ) {
1462 int wno; 1462 int wno;
1463 // remember, according to ISO 8601, the first week of the year is the 1463 // remember, according to ISO 8601, the first week of the year is the
1464 // first week that contains a thursday. Thus we must subtract off 4, 1464 // first week that contains a thursday. Thus we must subtract off 4,
1465 // not just 1. 1465 // not just 1.
1466 int dayOfYear = date.dayOfYear(); 1466 int dayOfYear = date.dayOfYear();
1467 if (dayOfYear % 7 != 0) 1467 if (dayOfYear % 7 != 0)
1468 wno = dayOfYear / 7 + 1; 1468 wno = dayOfYear / 7 + 1;
1469 else 1469 else
1470 wno =dayOfYear / 7; 1470 wno =dayOfYear / 7;
1471 (*weekLabels)[i]->setWeekNum( wno ); 1471 (*weekLabels)[i]->setWeekNum( wno );
1472 date = date.addDays( 7 ); 1472 date = date.addDays( 7 );
1473 } 1473 }
1474 updateView(); 1474 updateView();
1475} 1475}
1476 1476
1477void KOMonthView::showEvents(QPtrList<Event>) 1477void KOMonthView::showEvents(QPtrList<Event>)
1478{ 1478{
1479 qDebug("KOMonthView::selectEvents is not implemented yet. "); 1479 qDebug("KOMonthView::selectEvents is not implemented yet. ");
1480} 1480}
1481 1481
1482void KOMonthView::changeEventDisplay(Event *, int) 1482void KOMonthView::changeEventDisplay(Event *, int)
1483{ 1483{
1484 // this should be re-written to be much more efficient, but this 1484 // this should be re-written to be much more efficient, but this
1485 // quick-and-dirty-hack gets the job done for right now. 1485 // quick-and-dirty-hack gets the job done for right now.
1486 //qDebug("KOMonthView::changeEventDisplay "); 1486 //qDebug("KOMonthView::changeEventDisplay ");
1487 updateView(); 1487 updateView();
1488} 1488}
1489 1489
1490void KOMonthView::updateView() 1490void KOMonthView::updateView()
1491{ 1491{
1492 1492
1493 if ( !updatePossible ) 1493 if ( !updatePossible )
1494 return; 1494 return;
1495 //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU "); 1495 //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ");
1496 //QTime ti; 1496 //QTime ti;
1497 //ti.start(); 1497 //ti.start();
1498 clearSelection(); 1498 clearSelection();
1499 QPtrVector<MonthViewCell> *cells; 1499 QPtrVector<MonthViewCell> *cells;
1500 if ( mShowWeekView ) { 1500 if ( mShowWeekView ) {
1501 cells = &mCellsW; 1501 cells = &mCellsW;
1502 } else { 1502 } else {
1503 cells = &mCells; 1503 cells = &mCells;
1504 } 1504 }
1505#if 1 1505#if 1
1506 int i; 1506 int i;
1507 int timeSpan = (*cells).size()-1; 1507 int timeSpan = (*cells).size()-1;
1508 if ( KOPrefs::instance()->mMonthViewWeek ) 1508 if ( KOPrefs::instance()->mMonthViewWeek )
1509 timeSpan = 6; 1509 timeSpan = 6;
1510 for( i = 0; i < timeSpan + 1; ++i ) { 1510 for( i = 0; i < timeSpan + 1; ++i ) {
1511 (*cells)[i]->startUpdateCell(); 1511 (*cells)[i]->startUpdateCell();
1512 } 1512 }
1513 1513
1514 QPtrList<Event> events = calendar()->events(); 1514 QPtrList<Event> events = calendar()->events();
1515 Event *event; 1515 Event *event;
1516 QDateTime dt; 1516 QDateTime dt;
1517 bool ok; 1517 bool ok;
1518 QDate endDate = mStartDate.addDays( timeSpan ); 1518 QDate endDate = mStartDate.addDays( timeSpan );
1519 for( event = events.first(); event; event = events.next() ) { // for event 1519 for( event = events.first(); event; event = events.next() ) { // for event
1520 if ( event->doesRecur() ) { 1520 if ( event->doesRecur() ) {
1521 bool last; 1521 bool last;
1522 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 1522 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
1523 QDateTime incidenceEnd; 1523 QDateTime incidenceEnd;
1524 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 1524 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
1525 bool invalid = false; 1525 bool invalid = false;
1526 while( true ) { 1526 while( true ) {
1527 if ( incidenceStart.isValid() ) { 1527 if ( incidenceStart.isValid() ) {
1528 incidenceEnd = incidenceStart.addDays( eventlen ); 1528 incidenceEnd = incidenceStart.addDays( eventlen );
1529 int st = incidenceStart.date().daysTo( endDate ); 1529 int st = incidenceStart.date().daysTo( endDate );
1530 if ( st >= 0 ) { // start before timeend 1530 if ( st >= 0 ) { // start before timeend
1531 int end = mStartDate.daysTo( incidenceEnd.date() ); 1531 int end = mStartDate.daysTo( incidenceEnd.date() );
1532 if ( end >= 0 ) { // end after timestart --- got one! 1532 if ( end >= 0 ) { // end after timestart --- got one!
1533 //normalize 1533 //normalize
1534 st = timeSpan - st; 1534 st = timeSpan - st;
1535 if ( st < 0 ) st = 0; 1535 if ( st < 0 ) st = 0;
1536 if ( end > timeSpan ) end = timeSpan; 1536 if ( end > timeSpan ) end = timeSpan;
1537 int iii; 1537 int iii;
1538 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 1538 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
1539 for ( iii = st;iii<= end;++iii) 1539 for ( iii = st;iii<= end;++iii)
1540 (*cells)[iii]->insertEvent( event ); 1540 (*cells)[iii]->insertEvent( event );
1541 } 1541 }
1542 } 1542 }
1543 } else { 1543 } else {
1544 if ( invalid ) 1544 if ( invalid )
1545 break; 1545 break;
1546 invalid = true; 1546 invalid = true;
1547 //qDebug("invalid %s", event->summary().latin1()); 1547 //qDebug("invalid %s", event->summary().latin1());
1548 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 1548 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
1549 } 1549 }
1550 if ( last ) 1550 if ( last )
1551 break; 1551 break;
1552 bool ok; 1552 bool ok;
1553 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 1553 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
1554 if ( ! ok ) 1554 if ( ! ok )
1555 break; 1555 break;
1556 if ( incidenceStart.date() > endDate ) 1556 if ( incidenceStart.date() > endDate )
1557 break; 1557 break;
1558 } 1558 }
1559 } else { // no recur 1559 } else { // no recur
1560 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") )
1561 if ( event->uid().left(15) == QString("last-syncEvent-") )
1562 continue;
1560 int st = event->dtStart().date().daysTo( endDate ); 1563 int st = event->dtStart().date().daysTo( endDate );
1561 if ( st >= 0 ) { // start before timeend 1564 if ( st >= 0 ) { // start before timeend
1562 int end = mStartDate.daysTo( event->dtEnd().date() ); 1565 int end = mStartDate.daysTo( event->dtEnd().date() );
1563 if ( end >= 0 ) { // end after timestart --- got one! 1566 if ( end >= 0 ) { // end after timestart --- got one!
1564 //normalize 1567 //normalize
1565 st = timeSpan - st; 1568 st = timeSpan - st;
1566 if ( st < 0 ) st = 0; 1569 if ( st < 0 ) st = 0;
1567 if ( end > timeSpan ) end = timeSpan; 1570 if ( end > timeSpan ) end = timeSpan;
1568 int iii; 1571 int iii;
1569 for ( iii = st;iii<= end;++iii) 1572 for ( iii = st;iii<= end;++iii)
1570 (*cells)[iii]->insertEvent( event ); 1573 (*cells)[iii]->insertEvent( event );
1571 } 1574 }
1572 } 1575 }
1573 } 1576 }
1574 } 1577 }
1575 // insert due todos 1578 // insert due todos
1576 QPtrList<Todo> todos = calendar()->todos( ); 1579 QPtrList<Todo> todos = calendar()->todos( );
1577 Todo *todo; 1580 Todo *todo;
1578 for(todo = todos.first(); todo; todo = todos.next()) { 1581 for(todo = todos.first(); todo; todo = todos.next()) {
1579 //insertTodo( todo ); 1582 //insertTodo( todo );
1580 if ( todo->hasDueDate() ) { 1583 if ( todo->hasDueDate() ) {
1581 int day = mStartDate.daysTo( todo->dtDue().date() ); 1584 int day = mStartDate.daysTo( todo->dtDue().date() );
1582 if ( day >= 0 && day < timeSpan + 1) { 1585 if ( day >= 0 && day < timeSpan + 1) {
1583 (*cells)[day]->insertTodo( todo ); 1586 (*cells)[day]->insertTodo( todo );
1584 } 1587 }
1585 } 1588 }
1586 } 1589 }
1587 1590
1588 for( i = 0; i < timeSpan+1; ++i ) { 1591 for( i = 0; i < timeSpan+1; ++i ) {
1589 (*cells)[i]->finishUpdateCell(); 1592 (*cells)[i]->finishUpdateCell();
1590 } 1593 }
1591 processSelectionChange(); 1594 processSelectionChange();
1592 //qApp->processEvents(); 1595 //qApp->processEvents();
1593 for( i = 0; i < timeSpan+1; ++i ) { 1596 for( i = 0; i < timeSpan+1; ++i ) {
1594 (*cells)[i]->repaintfinishUpdateCell(); 1597 (*cells)[i]->repaintfinishUpdateCell();
1595 } 1598 }
1596 setKeyBFocus(); 1599 setKeyBFocus();
1597#else 1600#else
1598 // old code 1601 // old code
1599 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); 1602 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ");
1600 int i; 1603 int i;
1601 for( i = 0; i < (*cells).count(); ++i ) { 1604 for( i = 0; i < (*cells).count(); ++i ) {
1602 (*cells)[i]->updateCell(); 1605 (*cells)[i]->updateCell();
1603 } 1606 }
1604 1607
1605 //qDebug("KOMonthView::updateView() "); 1608 //qDebug("KOMonthView::updateView() ");
1606 processSelectionChange(); 1609 processSelectionChange();
1607 // qDebug("---------------------------------------------------------------------+ "); 1610 // qDebug("---------------------------------------------------------------------+ ");
1608 (*cells)[0]->setFocus(); 1611 (*cells)[0]->setFocus();
1609#endif 1612#endif
1610 1613
1611 //qDebug("update time %d ", ti.elapsed()); 1614 //qDebug("update time %d ", ti.elapsed());
1612} 1615}
1613 1616
1614void KOMonthView::setKeyBoardFocus() 1617void KOMonthView::setKeyBoardFocus()
1615{ 1618{
1616 //qDebug("KOMonthView::setKeyBoardFocus() "); 1619 //qDebug("KOMonthView::setKeyBoardFocus() ");
1617 bool shootAgain = false; 1620 bool shootAgain = false;
1618 if ( mShowWeekView ) { 1621 if ( mShowWeekView ) {
1619 shootAgain = !mWeekLabelsW[1]->hasFocus(); 1622 shootAgain = !mWeekLabelsW[1]->hasFocus();
1620 mWeekLabelsW[1]->setFocus(); 1623 mWeekLabelsW[1]->setFocus();
1621 } 1624 }
1622 else { 1625 else {
1623 shootAgain = !mWeekLabels[mNumWeeks]->hasFocus(); 1626 shootAgain = !mWeekLabels[mNumWeeks]->hasFocus();
1624 mWeekLabels[mNumWeeks]->setFocus(); 1627 mWeekLabels[mNumWeeks]->setFocus();
1625 } 1628 }
1626 if ( shootAgain ) { 1629 if ( shootAgain ) {
1627 QTimer::singleShot( 0, this, SLOT ( setKeyBFocus() ) ); 1630 QTimer::singleShot( 0, this, SLOT ( setKeyBFocus() ) );
1628 } 1631 }
1629} 1632}
1630void KOMonthView::setKeyBFocus() 1633void KOMonthView::setKeyBFocus()
1631{ 1634{
1632 //qDebug("KOMonthView::setKeyBFocus() "); 1635 //qDebug("KOMonthView::setKeyBFocus() ");
1633 QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) ); 1636 QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) );
1634} 1637}
1635void KOMonthView::resizeEvent(QResizeEvent * e) 1638void KOMonthView::resizeEvent(QResizeEvent * e)
1636{ 1639{
1637 //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); 1640 //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height());
1638 if ( isVisible() ) { 1641 if ( isVisible() ) {
1639 //qDebug("KOMonthView::isVisible "); 1642 //qDebug("KOMonthView::isVisible ");
1640 slotComputeLayout(); 1643 slotComputeLayout();
1641 } else 1644 } else
1642 mComputeLayoutTimer->start( 100 ); 1645 mComputeLayoutTimer->start( 100 );
1643} 1646}
1644 1647
1645void KOMonthView::slotComputeLayout() 1648void KOMonthView::slotComputeLayout()
1646{ 1649{
1647 mComputeLayoutTimer->stop(); 1650 mComputeLayoutTimer->stop();
1648 //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); 1651 //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() );
1649 computeLayout(); 1652 computeLayout();
1650 clPending = true; 1653 clPending = true;
1651 setKeyBFocus(); 1654 setKeyBFocus();
1652} 1655}
1653void KOMonthView::computeLayoutWeek() 1656void KOMonthView::computeLayoutWeek()
1654{ 1657{
1655 static int lastWid = 0; 1658 static int lastWid = 0;
1656 static int lastHei = 0; 1659 static int lastHei = 0;
1657 int daysToShow; 1660 int daysToShow;
1658 bool combinedSatSun = false; 1661 bool combinedSatSun = false;
1659 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1662 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1660 daysToShow = 6; 1663 daysToShow = 6;
1661 combinedSatSun = true; 1664 combinedSatSun = true;
1662 } 1665 }
1663 int tWid = topLevelWidget()->size().width(); 1666 int tWid = topLevelWidget()->size().width();
1664 int tHei = topLevelWidget()->size().height(); 1667 int tHei = topLevelWidget()->size().height();
1665 1668
1666 int wid = width();//e 1669 int wid = width();//e
1667 int hei = height()-1-mNavigatorBar->height(); 1670 int hei = height()-1-mNavigatorBar->height();
1668 1671
1669 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) 1672 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1670 return; 1673 return;
1671 1674
1672 if ( lastWid == width() && lastHei == height() ) { 1675 if ( lastWid == width() && lastHei == height() ) {
1673 //qDebug("KOListWeekView::No compute layout needed "); 1676 //qDebug("KOListWeekView::No compute layout needed ");
1674 return; 1677 return;
1675 } 1678 }
1676 lastWid = width(); 1679 lastWid = width();
1677 lastHei = height(); 1680 lastHei = height();
1678 1681
1679 1682
1680 if ( wid < hei ) 1683 if ( wid < hei )
1681 daysToShow = 2; 1684 daysToShow = 2;
1682 else 1685 else
1683 daysToShow = 3; 1686 daysToShow = 3;
1684 mShowSatSunComp = true; 1687 mShowSatSunComp = true;
1685 combinedSatSun = true; 1688 combinedSatSun = true;
1686 1689
1687 //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); 1690 //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ ");
1688 QFontMetrics fm ( mWeekLabels[0]->font() ); 1691 QFontMetrics fm ( mWeekLabels[0]->font() );
1689 int weeklabelwid = fm.width( "888" ); 1692 int weeklabelwid = fm.width( "888" );
1690 wid -= weeklabelwid; 1693 wid -= weeklabelwid;
1691 1694
1692 int colWid = wid / daysToShow; 1695 int colWid = wid / daysToShow;
1693 int lastCol = wid - ( colWid*6 ); 1696 int lastCol = wid - ( colWid*6 );
1694 int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); 1697 int dayLabelHei = mDayLabelsW[0]->sizeHint().height();
1695 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); 1698 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow );
1696 int colModulo = wid % daysToShow; 1699 int colModulo = wid % daysToShow;
1697 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; 1700 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1;
1698 //qDebug("rowmod %d ", rowModulo); 1701 //qDebug("rowmod %d ", rowModulo);
1699 int i; 1702 int i;
1700 int x,y,w,h; 1703 int x,y,w,h;
1701 x= 0; 1704 x= 0;
1702 y= 0; 1705 y= 0;
1703 w = colWid; 1706 w = colWid;
1704 h = dayLabelHei ; 1707 h = dayLabelHei ;
1705 for ( i = 0; i < 7; i++) { 1708 for ( i = 0; i < 7; i++) {
1706 if ( i && !( i % daysToShow) && i < 6) { 1709 if ( i && !( i % daysToShow) && i < 6) {
1707 y += hei/(5-daysToShow); 1710 y += hei/(5-daysToShow);
1708 x = 0; 1711 x = 0;
1709 w = colWid; 1712 w = colWid;
1710 } 1713 }
1711 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1714 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1712 ++w; 1715 ++w;
1713 } 1716 }
1714 if ( i >= 5 ) { 1717 if ( i >= 5 ) {
1715 int wi = width() - x - weeklabelwid; 1718 int wi = width() - x - weeklabelwid;
1716 if ( i == 5 ) { 1719 if ( i == 5 ) {
1717 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h); 1720 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h);
1718 } else { 1721 } else {
1719 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); 1722 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h);
1720 } 1723 }
1721 x = x - w + wi - (wi/2 ); 1724 x = x - w + wi - (wi/2 );
1722 } 1725 }
1723 else { 1726 else {
1724 int wi = w; 1727 int wi = w;
1725 if ( !(( i+1) % daysToShow)) { 1728 if ( !(( i+1) % daysToShow)) {
1726 wi = width() - x - weeklabelwid; 1729 wi = width() - x - weeklabelwid;
1727 } 1730 }
1728 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); 1731 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h);
1729 } 1732 }
1730 x += w; 1733 x += w;
1731 } 1734 }
1732 x= 0; 1735 x= 0;
1733 y= dayLabelHei; 1736 y= dayLabelHei;
1734 w = colWid; 1737 w = colWid;
1735 h = cellHei; 1738 h = cellHei;
1736 int max = 0; 1739 int max = 0;
1737 for ( i = 0; i < mCellsW.count(); ++i) { 1740 for ( i = 0; i < mCellsW.count(); ++i) {
1738 if ( i > 6 ) { 1741 if ( i > 6 ) {
1739 mCellsW[i]->hide(); 1742 mCellsW[i]->hide();
1740 continue; 1743 continue;
1741 } 1744 }
1742 1745
1743 w = colWid; 1746 w = colWid;
1744 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1747 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1745 ++w; 1748 ++w;
1746 } 1749 }
1747 if ( i == (daysToShow-1-rowModulo)*7) 1750 if ( i == (daysToShow-1-rowModulo)*7)
1748 ++h; 1751 ++h;
1749 1752
1750 if ( i >= 5 ) { 1753 if ( i >= 5 ) {
1751 if ( i ==5 ) { 1754 if ( i ==5 ) {
1752 max = h/2; 1755 max = h/2;
1753 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1756 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max );
1754 x -= w ;y += h/2; 1757 x -= w ;y += h/2;
1755 } else { 1758 } else {
1756 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { 1759 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) {
1757 ++w; 1760 ++w;
1758 } 1761 }
1759 max = h-h/2; 1762 max = h-h/2;
1760 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1763 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max );
1761 y -= h/2; 1764 y -= h/2;
1762 } 1765 }
1763 } else { 1766 } else {
1764 max = h; 1767 max = h;
1765 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1768 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h );
1766 } 1769 }
1767 1770
1768 1771
1769 x += w; 1772 x += w;
1770 if ( x + w/2 > wid ) { 1773 if ( x + w/2 > wid ) {
1771 x = 0; 1774 x = 0;
1772 y += h+dayLabelHei ; 1775 y += h+dayLabelHei ;
1773 } 1776 }
1774 //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); 1777 //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 );
1775 } 1778 }
1776 y= dayLabelHei; 1779 y= dayLabelHei;
1777 h = cellHei ; 1780 h = cellHei ;
1778 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); 1781 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1779 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1782 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1780 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1783 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1781 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1784 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1782 mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; 1785 mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ;
1783 updateDayLabels(); 1786 updateDayLabels();
1784 //bool forceUpdate = !updatePossible; 1787 //bool forceUpdate = !updatePossible;
1785 updatePossible = true; 1788 updatePossible = true;
1786 //mWeekLabels[mNumWeeks]->setText( i18n("M")); 1789 //mWeekLabels[mNumWeeks]->setText( i18n("M"));
1787 //if ( forceUpdate ) 1790 //if ( forceUpdate )
1788 // updateView(); 1791 // updateView();
1789} 1792}
1790void KOMonthView::computeLayout() 1793void KOMonthView::computeLayout()
1791{ 1794{
1792 1795
1793 1796
1794 static int lastWid = 0; 1797 static int lastWid = 0;
1795 static int lastHei = 0; 1798 static int lastHei = 0;
1796 1799
1797 if ( mShowWeekView ){ 1800 if ( mShowWeekView ){
1798 computeLayoutWeek(); 1801 computeLayoutWeek();
1799 return; 1802 return;
1800 } 1803 }
1801 int daysToShow = 7; 1804 int daysToShow = 7;
1802 bool combinedSatSun = false; 1805 bool combinedSatSun = false;
1803 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1806 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1804 daysToShow = 6; 1807 daysToShow = 6;
1805 combinedSatSun = true; 1808 combinedSatSun = true;
1806 } 1809 }
1807 int tWid = topLevelWidget()->size().width(); 1810 int tWid = topLevelWidget()->size().width();
1808 int tHei = topLevelWidget()->size().height(); 1811 int tHei = topLevelWidget()->size().height();
1809 1812
1810 int wid = width();//e 1813 int wid = width();//e
1811 int hei = height()-1-mNavigatorBar->height(); 1814 int hei = height()-1-mNavigatorBar->height();
1812 1815
1813 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { 1816 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) {
1814 return; 1817 return;
1815 } 1818 }
1816 if ( lastWid == width() && lastHei == height() ){ 1819 if ( lastWid == width() && lastHei == height() ){
1817 //qDebug("KOMonthview::No compute layout needed "); 1820 //qDebug("KOMonthview::No compute layout needed ");
1818 return; 1821 return;
1819 } 1822 }
1820 1823
1821 lastWid = width(); 1824 lastWid = width();
1822 lastHei = height(); 1825 lastHei = height();
1823 //qDebug("KOMonthView::computeLayout() MMM ------------------- "); 1826 //qDebug("KOMonthView::computeLayout() MMM ------------------- ");
1824 QFontMetrics fm ( mWeekLabels[0]->font() ); 1827 QFontMetrics fm ( mWeekLabels[0]->font() );
1825 int weeklabelwid = fm.width( "888" ); 1828 int weeklabelwid = fm.width( "888" );
1826 wid -= weeklabelwid; 1829 wid -= weeklabelwid;
1827 1830
1828 int colWid = wid / daysToShow; 1831 int colWid = wid / daysToShow;
1829 int lastCol = wid - ( colWid*6 ); 1832 int lastCol = wid - ( colWid*6 );
1830 int dayLabelHei = mDayLabels[0]->sizeHint().height(); 1833 int dayLabelHei = mDayLabels[0]->sizeHint().height();
1831 int cellHei = (hei - dayLabelHei) /6; 1834 int cellHei = (hei - dayLabelHei) /6;
1832 int colModulo = wid % daysToShow; 1835 int colModulo = wid % daysToShow;
1833 int rowModulo = (hei- dayLabelHei) % 6; 1836 int rowModulo = (hei- dayLabelHei) % 6;
1834 //qDebug("rowmod %d ", rowModulo); 1837 //qDebug("rowmod %d ", rowModulo);
1835 int i; 1838 int i;
1836 int x,y,w,h; 1839 int x,y,w,h;
1837 x= 0; 1840 x= 0;
1838 y= 0; 1841 y= 0;
1839 w = colWid; 1842 w = colWid;
1840 h = dayLabelHei ; 1843 h = dayLabelHei ;
1841 for ( i = 0; i < 7; i++) { 1844 for ( i = 0; i < 7; i++) {
1842 if ( i == daysToShow-colModulo ) 1845 if ( i == daysToShow-colModulo )
1843 ++w; 1846 ++w;
1844 if ( combinedSatSun ) { 1847 if ( combinedSatSun ) {
1845 if ( i >= daysToShow-1 ) { 1848 if ( i >= daysToShow-1 ) {
1846 1849
1847 if ( i == 6 ) 1850 if ( i == 6 )
1848 mDayLabels[i]->setGeometry( x+weeklabelwid,y,width()-x-weeklabelwid,h); 1851 mDayLabels[i]->setGeometry( x+weeklabelwid,y,width()-x-weeklabelwid,h);
1849 else 1852 else
1850 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); 1853 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h);
1851 x -= w/2 ; 1854 x -= w/2 ;
1852 } 1855 }
1853 else 1856 else
1854 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1857 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1855 } else 1858 } else
1856 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1859 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1857 x += w; 1860 x += w;
1858 } 1861 }
1859 x= 0; 1862 x= 0;
1860 y= dayLabelHei; 1863 y= dayLabelHei;
1861 w = colWid; 1864 w = colWid;
1862 h = cellHei ; 1865 h = cellHei ;
1863 int max = 0; 1866 int max = 0;
1864 for ( i = 0; i < mCells.count(); ++i) { 1867 for ( i = 0; i < mCells.count(); ++i) {
1865 //qDebug("iii %d ", i); 1868 //qDebug("iii %d ", i);
1866 w = colWid; 1869 w = colWid;
1867 if ( ((i) % 7) >= 7-colModulo ) { 1870 if ( ((i) % 7) >= 7-colModulo ) {
1868 ++w; 1871 ++w;
1869 } 1872 }
1870 if ( i == (6-rowModulo)*7) 1873 if ( i == (6-rowModulo)*7)
1871 ++h; 1874 ++h;
1872 if ( combinedSatSun ) { 1875 if ( combinedSatSun ) {
1873 if ( (i)%7 >= daysToShow-1 ) { 1876 if ( (i)%7 >= daysToShow-1 ) {
1874 if ( (i)%7 == daysToShow-1 ) { 1877 if ( (i)%7 == daysToShow-1 ) {
1875 w = width()-x-weeklabelwid; 1878 w = width()-x-weeklabelwid;
1876 max = h/2; 1879 max = h/2;
1877 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1880 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max );
1878 x -= w ;y += h/2; 1881 x -= w ;y += h/2;
1879 } else { 1882 } else {
1880 w = width()-x-weeklabelwid; 1883 w = width()-x-weeklabelwid;
1881 max = h-h/2; 1884 max = h-h/2;
1882 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1885 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max );
1883 y -= h/2; 1886 y -= h/2;
1884 } 1887 }
1885 } else { 1888 } else {
1886 max = h; 1889 max = h;
1887 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1890 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1888 } 1891 }
1889 1892
1890 } 1893 }
1891 else { 1894 else {
1892 max = h; 1895 max = h;
1893 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1896 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1894 } 1897 }
1895 x += w; 1898 x += w;
1896 if ( x + w/2 > wid ) { 1899 if ( x + w/2 > wid ) {
1897 x = 0; 1900 x = 0;
1898 y += h; 1901 y += h;
1899 } 1902 }
1900 //mCells[i]->dateLabel()->setMaximumHeight( max- mCells[i]->lineWidth()*2 ); 1903 //mCells[i]->dateLabel()->setMaximumHeight( max- mCells[i]->lineWidth()*2 );
1901 } 1904 }
1902 y= dayLabelHei; 1905 y= dayLabelHei;
1903 h = cellHei ; 1906 h = cellHei ;
1904 for ( i = 0; i < 6; i++) { 1907 for ( i = 0; i < 6; i++) {
1905 if ( i == (6-rowModulo)) 1908 if ( i == (6-rowModulo))
1906 ++h; 1909 ++h;
1907 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); 1910 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h);
1908 y += h; 1911 y += h;
1909 } 1912 }
1910 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1913 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1911 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1914 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1912 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1915 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1913 mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ; 1916 mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ;
1914 updateDayLabels(); 1917 updateDayLabels();
1915 //bool forceUpdate = !updatePossible; 1918 //bool forceUpdate = !updatePossible;
1916 updatePossible = true; 1919 updatePossible = true;
1917 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1920 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1918} 1921}
1919 1922
1920void KOMonthView::showContextMenu( Incidence *incidence ) 1923void KOMonthView::showContextMenu( Incidence *incidence )
1921{ 1924{
1922 if( incidence ) 1925 if( incidence )
1923 mContextMenu->showIncidencePopup(incidence); 1926 mContextMenu->showIncidencePopup(incidence);
1924 else { 1927 else {
1925 //qDebug("KOMonthView::showContextMenu "); 1928 //qDebug("KOMonthView::showContextMenu ");
1926 mNewItemMenu->popup(QCursor::pos()); 1929 mNewItemMenu->popup(QCursor::pos());
1927 } 1930 }
1928 /* 1931 /*
1929 if( incidence && incidence->type() == "Event" ) { 1932 if( incidence && incidence->type() == "Event" ) {
1930 Event *event = static_cast<Event *>(incidence); 1933 Event *event = static_cast<Event *>(incidence);
1931 mContextMenu->showEventPopup(event); 1934 mContextMenu->showEventPopup(event);
1932 } else { 1935 } else {
1933 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; 1936 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl;
1934 } 1937 }
1935 */ 1938 */
1936} 1939}
1937MonthViewCell * KOMonthView::selectedCell( ) 1940MonthViewCell * KOMonthView::selectedCell( )
1938{ 1941{
1939 return mSelectedCell; 1942 return mSelectedCell;
1940} 1943}
1941void KOMonthView::setSelectedCell( MonthViewCell *cell ) 1944void KOMonthView::setSelectedCell( MonthViewCell *cell )
1942{ 1945{
1943 //qDebug("KOMonthView::setSelectedCell %d", cell); 1946 //qDebug("KOMonthView::setSelectedCell %d", cell);
1944 if ( mSelectedCell && mSelectedCell != cell ) { 1947 if ( mSelectedCell && mSelectedCell != cell ) {
1945 MonthViewCell * mvc = mSelectedCell; 1948 MonthViewCell * mvc = mSelectedCell;
1946 mSelectedCell = cell; 1949 mSelectedCell = cell;
1947 mvc->deselect(); 1950 mvc->deselect();
1948 } else 1951 } else
1949 mSelectedCell = cell; 1952 mSelectedCell = cell;
1950 // if ( mSelectedCell ) 1953 // if ( mSelectedCell )
1951 // mSelectedCell->select(); 1954 // mSelectedCell->select();
1952 if ( !mSelectedCell ) 1955 if ( !mSelectedCell )
1953 emit incidenceSelected( 0 ); 1956 emit incidenceSelected( 0 );
1954 else 1957 else
1955 emit incidenceSelected( mSelectedCell->selectedIncidence() ); 1958 emit incidenceSelected( mSelectedCell->selectedIncidence() );
1956} 1959}
1957 1960
1958void KOMonthView::processSelectionChange() 1961void KOMonthView::processSelectionChange()
1959{ 1962{
1960 QPtrList<Incidence> incidences = selectedIncidences(); 1963 QPtrList<Incidence> incidences = selectedIncidences();
1961 if (incidences.count() > 0) { 1964 if (incidences.count() > 0) {
1962 emit incidenceSelected( incidences.first() ); 1965 emit incidenceSelected( incidences.first() );
1963 } else { 1966 } else {
1964 emit incidenceSelected( 0 ); 1967 emit incidenceSelected( 0 );
1965 clearSelection(); 1968 clearSelection();
1966 } 1969 }
1967} 1970}
1968 1971
1969void KOMonthView::clearSelection() 1972void KOMonthView::clearSelection()
1970{ 1973{
1971 if ( mSelectedCell ) { 1974 if ( mSelectedCell ) {
1972 mSelectedCell->deselect(); 1975 mSelectedCell->deselect();
1973 mSelectedCell = 0; 1976 mSelectedCell = 0;
1974 } 1977 }
1975} 1978}
1976 1979
1977void KOMonthView::keyReleaseEvent ( QKeyEvent * e) 1980void KOMonthView::keyReleaseEvent ( QKeyEvent * e)
1978{ 1981{
1979 if ( !e->isAutoRepeat() ) { 1982 if ( !e->isAutoRepeat() ) {
1980 mFlagKeyPressed = false; 1983 mFlagKeyPressed = false;
1981 } 1984 }
1982} 1985}
1983 1986
1984void KOMonthView::keyPressEvent ( QKeyEvent * e ) 1987void KOMonthView::keyPressEvent ( QKeyEvent * e )
1985{ 1988{
1986 1989
1987 qApp->processEvents(); 1990 qApp->processEvents();
1988 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1991 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1989 //e->ignore(); 1992 //e->ignore();
1990 e->accept(); 1993 e->accept();
1991 return; 1994 return;
1992 } 1995 }
1993 if (! e->isAutoRepeat() ) 1996 if (! e->isAutoRepeat() )
1994 mFlagKeyPressed = true; 1997 mFlagKeyPressed = true;
1995 switch(e->key()) { 1998 switch(e->key()) {
1996 case Key_Up: 1999 case Key_Up:
1997 { 2000 {
1998 if ( mShowWeekView ) { 2001 if ( mShowWeekView ) {
1999 emit selectWeekNum ( currentWeek() - 1 ); 2002 emit selectWeekNum ( currentWeek() - 1 );
2000 } 2003 }
2001 else { 2004 else {
2002 emit prevMonth(); 2005 emit prevMonth();
2003 } 2006 }
2004 } 2007 }
2005 e->accept(); 2008 e->accept();
2006 break; 2009 break;
2007 case Key_Down: 2010 case Key_Down:
2008 { 2011 {
2009 if ( mShowWeekView ) { 2012 if ( mShowWeekView ) {
2010 emit selectWeekNum ( currentWeek() +1); 2013 emit selectWeekNum ( currentWeek() +1);
2011 } 2014 }
2012 else { 2015 else {
2013 emit nextMonth(); 2016 emit nextMonth();
2014 } 2017 }
2015 2018
2016 } 2019 }
2017 e->accept(); 2020 e->accept();
2018 break; 2021 break;
2019 case Key_Return: 2022 case Key_Return:
2020 case Key_Enter: 2023 case Key_Enter:
2021 { 2024 {
2022 selectInternalWeekNum ( currentWeek() ); 2025 selectInternalWeekNum ( currentWeek() );
2023 } 2026 }
2024 e->accept(); 2027 e->accept();
2025 break; 2028 break;
2026 case Key_D: 2029 case Key_D:
2027 if ( mSelectedCell ) { 2030 if ( mSelectedCell ) {
2028 mSelectedCell->showDay(); 2031 mSelectedCell->showDay();
2029 e->accept(); 2032 e->accept();
2030 } else { 2033 } else {
2031 e->ignore(); 2034 e->ignore();
2032 } 2035 }
2033 break; 2036 break;
2034 default: 2037 default:
2035 e->ignore(); 2038 e->ignore();
2036 break; 2039 break;
2037 } 2040 }
2038} 2041}
2039 2042
2040void KOMonthView::nextCell() 2043void KOMonthView::nextCell()
2041{ 2044{
2042 bool res = focusNextPrevChild ( true ); 2045 bool res = focusNextPrevChild ( true );
2043} 2046}
2044void KOMonthView::prevCell() 2047void KOMonthView::prevCell()
2045{ 2048{
2046 focusNextPrevChild ( false ); 2049 focusNextPrevChild ( false );
2047} 2050}
2048 2051
2049void KOMonthView::slotNewTodo() 2052void KOMonthView::slotNewTodo()
2050{ 2053{
2051 //qDebug("KOMonthView::slotNewTodo() "); 2054 //qDebug("KOMonthView::slotNewTodo() ");
2052 if ( mPopupCell ){ 2055 if ( mPopupCell ){
2053 QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 2056 QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
2054 emit newTodoSignal(dt,true); 2057 emit newTodoSignal(dt,true);
2055 } 2058 }
2056 mPopupCell = 0; 2059 mPopupCell = 0;
2057} 2060}
2058void KOMonthView::slotNewEvent() 2061void KOMonthView::slotNewEvent()
2059{ 2062{
2060 if ( mPopupCell ) { 2063 if ( mPopupCell ) {
2061 QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 2064 QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
2062 emit newEventSignal( dt ); 2065 emit newEventSignal( dt );
2063 } 2066 }
2064 //qDebug("KOMonthView::slotNewEvent() "); 2067 //qDebug("KOMonthView::slotNewEvent() ");
2065 mPopupCell = 0; 2068 mPopupCell = 0;
2066} 2069}
2067 2070
2068void KOMonthView::slotEditJournal() 2071void KOMonthView::slotEditJournal()
2069{ 2072{
2070 if ( mPopupCell ) 2073 if ( mPopupCell )
2071 emit showJournalSignal( 7, mPopupCell->date() ); 2074 emit showJournalSignal( 7, mPopupCell->date() );
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index cb9c272..d9d7924 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -347,1121 +347,1124 @@ void KOPrefsDialog::setupMainTab()
347 347
348 // KPrefsDialogWidBool *emailControlCenter = 348 // KPrefsDialogWidBool *emailControlCenter =
349// addWidBool(i18n("&Use email settings from Control Center"), 349// addWidBool(i18n("&Use email settings from Control Center"),
350// &(KOPrefs::instance()->mEmailControlCenter),topFrame); 350// &(KOPrefs::instance()->mEmailControlCenter),topFrame);
351// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1); 351// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1);
352 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)), 352 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)),
353 // SLOT(toggleEmailSettings(bool))); 353 // SLOT(toggleEmailSettings(bool)));
354 354
355 mNameEdit = new QLineEdit(topFrame); 355 mNameEdit = new QLineEdit(topFrame);
356 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 356 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
357 topLayout->addWidget(mNameLabel,0,0); 357 topLayout->addWidget(mNameLabel,0,0);
358 topLayout->addWidget(mNameEdit,0,1); 358 topLayout->addWidget(mNameEdit,0,1);
359 359
360 mEmailEdit = new QLineEdit(topFrame); 360 mEmailEdit = new QLineEdit(topFrame);
361 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 361 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
362 topLayout->addWidget(mEmailLabel,1,0); 362 topLayout->addWidget(mEmailLabel,1,0);
363 topLayout->addWidget(mEmailEdit,1,1); 363 topLayout->addWidget(mEmailEdit,1,1);
364 KPrefsDialogWidBool *wb; 364 KPrefsDialogWidBool *wb;
365 365
366 366
367 367
368 KPrefsDialogWidBool *widbool = addWidBool(i18n("Full menu bar(nr)"), 368 KPrefsDialogWidBool *widbool = addWidBool(i18n("Full menu bar(nr)"),
369 &(KOPrefs::instance()->mShowFullMenu),topFrame); 369 &(KOPrefs::instance()->mShowFullMenu),topFrame);
370 topLayout->addMultiCellWidget( widbool->checkBox(), 2,2,0,1); 370 topLayout->addMultiCellWidget( widbool->checkBox(), 2,2,0,1);
371 371
372 372
373 widbool = addWidBool(i18n("Mini icons in toolbar(nr)"), 373 widbool = addWidBool(i18n("Mini icons in toolbar(nr)"),
374 &(KOPrefs::instance()->mToolBarMiniIcons),topFrame); 374 &(KOPrefs::instance()->mToolBarMiniIcons),topFrame);
375 topLayout->addMultiCellWidget( widbool->checkBox(), 3,3,0,1); 375 topLayout->addMultiCellWidget( widbool->checkBox(), 3,3,0,1);
376 376
377 377
378 KPrefsDialogWidBool *verticalScreen = 378 KPrefsDialogWidBool *verticalScreen =
379 addWidBool(i18n("Show vertical screen (Needs restart)"), 379 addWidBool(i18n("Show vertical screen (Needs restart)"),
380 &(KOPrefs::instance()->mVerticalScreen),topFrame); 380 &(KOPrefs::instance()->mVerticalScreen),topFrame);
381 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0); 381 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0);
382 topLayout->addMultiCellWidget(verticalScreen->checkBox(),4,4,0,1); 382 topLayout->addMultiCellWidget(verticalScreen->checkBox(),4,4,0,1);
383 383
384 384
385 int iii = 5; 385 int iii = 5;
386 widbool = addWidBool(i18n("Block popup until mouse button release"), 386 widbool = addWidBool(i18n("Block popup until mouse button release"),
387 &(KOPrefs::instance()->mBlockPopupMenu),topFrame); 387 &(KOPrefs::instance()->mBlockPopupMenu),topFrame);
388 topLayout->addMultiCellWidget( widbool->checkBox(), iii,iii,0,1); 388 topLayout->addMultiCellWidget( widbool->checkBox(), iii,iii,0,1);
389 ++iii; 389 ++iii;
390 QHBox *dummy = new QHBox(topFrame); 390 QHBox *dummy = new QHBox(topFrame);
391 new QLabel(i18n("Days in Next-X-Days:"),dummy); 391 new QLabel(i18n("Days in Next-X-Days:"),dummy);
392 mNextXDaysSpin = new QSpinBox(2,14,1,dummy); 392 mNextXDaysSpin = new QSpinBox(2,14,1,dummy);
393 393
394 topLayout->addMultiCellWidget(dummy,iii,iii,0,1); 394 topLayout->addMultiCellWidget(dummy,iii,iii,0,1);
395 395
396 ++iii; 396 ++iii;
397 397
398 398
399 // KPrefsDialogWidBool *bcc = 399 // KPrefsDialogWidBool *bcc =
400// addWidBool(i18n("Send copy to owner when mailing events"), 400// addWidBool(i18n("Send copy to owner when mailing events"),
401// &(KOPrefs::instance()->mBcc),topFrame); 401// &(KOPrefs::instance()->mBcc),topFrame);
402// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1); 402// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1);
403 403
404 404
405 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame); 405 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame);
406 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1); 406 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1);
407 407
408 // addWidBool(i18n("Enable automatic saving of calendar"), 408 // addWidBool(i18n("Enable automatic saving of calendar"),
409 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup); 409 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup);
410 410
411 QHBox *intervalBox = new QHBox(topFrame); 411 QHBox *intervalBox = new QHBox(topFrame);
412 // intervalBox->setSpacing(mSpacingHint); 412 // intervalBox->setSpacing(mSpacingHint);
413 topLayout->addMultiCellWidget(intervalBox,iii,iii,0,1); 413 topLayout->addMultiCellWidget(intervalBox,iii,iii,0,1);
414 ++iii; 414 ++iii;
415 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox); 415 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox);
416 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox); 416 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox);
417 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin); 417 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin);
418 /* 418 /*
419 QHBox * agendasize = new QHBox ( topFrame ); 419 QHBox * agendasize = new QHBox ( topFrame );
420 420
421 new QLabel (i18n("AllDayAgenda Height:"), agendasize ); 421 new QLabel (i18n("AllDayAgenda Height:"), agendasize );
422 422
423 423
424 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize); 424 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize);
425 topLayout->addMultiCellWidget(agendasize,7,7,0,1); 425 topLayout->addMultiCellWidget(agendasize,7,7,0,1);
426 */ 426 */
427 427
428 428
429 KPrefsDialogWidBool *ask = 429 KPrefsDialogWidBool *ask =
430 addWidBool(i18n("Ask for quit when closing KO/Pi"), 430 addWidBool(i18n("Ask for quit when closing KO/Pi"),
431 &(KOPrefs::instance()->mAskForQuit),topFrame); 431 &(KOPrefs::instance()->mAskForQuit),topFrame);
432 topLayout->addMultiCellWidget(ask->checkBox(),iii,iii,0,1); 432 topLayout->addMultiCellWidget(ask->checkBox(),iii,iii,0,1);
433 ++iii; 433 ++iii;
434 434
435 435
436 /* 436 /*
437 KPrefsDialogWidBool *confirmCheck = 437 KPrefsDialogWidBool *confirmCheck =
438 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm), 438 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm),
439 topFrame); 439 topFrame);
440 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1); 440 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1);
441 441
442 442
443 mEnableGroupScheduling = 443 mEnableGroupScheduling =
444 addWidBool(i18n("Enable group scheduling"), 444 addWidBool(i18n("Enable group scheduling"),
445 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame); 445 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame);
446 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0); 446 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0);
447 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()), 447 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()),
448 SLOT(warningGroupScheduling())); 448 SLOT(warningGroupScheduling()));
449 449
450 mEnableProjectView = 450 mEnableProjectView =
451 addWidBool(i18n("Enable project view"), 451 addWidBool(i18n("Enable project view"),
452 &(KOPrefs::instance()->mEnableProjectView),topFrame); 452 &(KOPrefs::instance()->mEnableProjectView),topFrame);
453 topLayout->addWidget(mEnableProjectView->checkBox(),9,0); 453 topLayout->addWidget(mEnableProjectView->checkBox(),9,0);
454 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()), 454 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()),
455 SLOT(warningProjectView())); 455 SLOT(warningProjectView()));
456 456
457 // Can't be disabled anymore 457 // Can't be disabled anymore
458 mEnableGroupScheduling->checkBox()->hide(); 458 mEnableGroupScheduling->checkBox()->hide();
459 459
460 // Disable setting, because this feature now becomes stable 460 // Disable setting, because this feature now becomes stable
461 mEnableProjectView->checkBox()->hide(); 461 mEnableProjectView->checkBox()->hide();
462 462
463 KPrefsDialogWidRadios *defaultFormatGroup = 463 KPrefsDialogWidRadios *defaultFormatGroup =
464 addWidRadios(i18n("Default Calendar Format"), 464 addWidRadios(i18n("Default Calendar Format"),
465 &(KOPrefs::instance()->mDefaultFormat),topFrame); 465 &(KOPrefs::instance()->mDefaultFormat),topFrame);
466 defaultFormatGroup->addRadio(i18n("vCalendar")); 466 defaultFormatGroup->addRadio(i18n("vCalendar"));
467 defaultFormatGroup->addRadio(i18n("iCalendar")); 467 defaultFormatGroup->addRadio(i18n("iCalendar"));
468 468
469 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1); 469 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1);
470 470
471 // Default format unconditionally is iCalendar 471 // Default format unconditionally is iCalendar
472 defaultFormatGroup->groupBox()->hide(); 472 defaultFormatGroup->groupBox()->hide();
473 473
474 KPrefsDialogWidRadios *mailClientGroup = 474 KPrefsDialogWidRadios *mailClientGroup =
475 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient), 475 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient),
476 topFrame); 476 topFrame);
477 mailClientGroup->addRadio(i18n("KMail")); 477 mailClientGroup->addRadio(i18n("KMail"));
478 mailClientGroup->addRadio(i18n("Sendmail")); 478 mailClientGroup->addRadio(i18n("Sendmail"));
479 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1); 479 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1);
480 480
481 KPrefsDialogWidBool *htmlsave = 481 KPrefsDialogWidBool *htmlsave =
482 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave), 482 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave),
483 topFrame); 483 topFrame);
484 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1); 484 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1);
485 485
486 KPrefsDialogWidRadios *destinationGroup = 486 KPrefsDialogWidRadios *destinationGroup =
487 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination), 487 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination),
488 topFrame); 488 topFrame);
489 destinationGroup->addRadio(i18n("be added to the standard resource")); 489 destinationGroup->addRadio(i18n("be added to the standard resource"));
490 destinationGroup->addRadio(i18n("be asked which resource to use")); 490 destinationGroup->addRadio(i18n("be asked which resource to use"));
491 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1); 491 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1);
492 492
493 topLayout->setRowStretch(14,1); 493 topLayout->setRowStretch(14,1);
494 */ 494 */
495} 495}
496 496
497 497
498void KOPrefsDialog::setupTimeTab() 498void KOPrefsDialog::setupTimeTab()
499{ 499{
500 QFrame *topFrame = addPage(i18n("Time"),0,0); 500 QFrame *topFrame = addPage(i18n("Time"),0,0);
501 // DesktopIcon("clock",KIcon::SizeMedium)); 501 // DesktopIcon("clock",KIcon::SizeMedium));
502 502
503 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 503 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
504 topLayout->setSpacing(mSpacingHint); 504 topLayout->setSpacing(mSpacingHint);
505 topLayout->setMargin(mMarginHint); 505 topLayout->setMargin(mMarginHint);
506 506
507 QHBox *dummy = new QHBox(topFrame); 507 QHBox *dummy = new QHBox(topFrame);
508 KPrefsDialogWidTime *dayBegins = 508 KPrefsDialogWidTime *dayBegins =
509 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 509 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
510 dummy); 510 dummy);
511 //topLayout->addWidget(dayBegins->label(),2,0); 511 //topLayout->addWidget(dayBegins->label(),2,0);
512 512
513 //topLayout->addWidget(dayBegins->spinBox(),2,1); 513 //topLayout->addWidget(dayBegins->spinBox(),2,1);
514 topLayout->addMultiCellWidget(dummy,0,0,0,1); 514 topLayout->addMultiCellWidget(dummy,0,0,0,1);
515 515
516 topLayout->addWidget(new QLabel(i18n("Default appointment time:"), 516 topLayout->addWidget(new QLabel(i18n("Default appointment time:"),
517 topFrame),1,0); 517 topFrame),1,0);
518 mStartTimeSpin = new QSpinBox(0,23,1,topFrame); 518 mStartTimeSpin = new QSpinBox(0,23,1,topFrame);
519 mStartTimeSpin->setSuffix(":00"); 519 mStartTimeSpin->setSuffix(":00");
520 topLayout->addWidget(mStartTimeSpin,1,1); 520 topLayout->addWidget(mStartTimeSpin,1,1);
521 521
522 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"), 522 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"),
523 topFrame),2,0); 523 topFrame),2,0);
524 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame); 524 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame);
525 mDefaultDurationSpin->setSuffix(":00"); 525 mDefaultDurationSpin->setSuffix(":00");
526 topLayout->addWidget(mDefaultDurationSpin,2,1); 526 topLayout->addWidget(mDefaultDurationSpin,2,1);
527 527
528 QStringList alarmList; 528 QStringList alarmList;
529 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes") 529 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes")
530 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ; 530 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ;
531 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame), 531 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame),
532 3,0); 532 3,0);
533 mAlarmTimeCombo = new QComboBox(topFrame); 533 mAlarmTimeCombo = new QComboBox(topFrame);
534 mAlarmTimeCombo->insertStringList(alarmList); 534 mAlarmTimeCombo->insertStringList(alarmList);
535 topLayout->addWidget(mAlarmTimeCombo,3,1); 535 topLayout->addWidget(mAlarmTimeCombo,3,1);
536 536
537 537
538 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal, 538 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal,
539 i18n("Working Hours"), 539 i18n("Working Hours"),
540 topFrame); 540 topFrame);
541 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1); 541 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1);
542 workingHoursGroup->layout()->setSpacing( 0 ); 542 workingHoursGroup->layout()->setSpacing( 0 );
543 workingHoursGroup->layout()->setMargin( 4 ); 543 workingHoursGroup->layout()->setMargin( 4 );
544 QHBox *workStartBox = new QHBox(workingHoursGroup); 544 QHBox *workStartBox = new QHBox(workingHoursGroup);
545 // workStartBox->setMargin( 0 ); 545 // workStartBox->setMargin( 0 );
546 addWidTime(i18n("Daily starting hour:"), 546 addWidTime(i18n("Daily starting hour:"),
547 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox); 547 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox);
548 548
549 QHBox *workEndBox = new QHBox(workingHoursGroup); 549 QHBox *workEndBox = new QHBox(workingHoursGroup);
550 //workEndBox->setMargin( 0 ); 550 //workEndBox->setMargin( 0 );
551 addWidTime(i18n("Daily ending hour:"), 551 addWidTime(i18n("Daily ending hour:"),
552 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox); 552 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox);
553 QVBox *excludeBox = new QVBox(workingHoursGroup); 553 QVBox *excludeBox = new QVBox(workingHoursGroup);
554 //excludeBox->setMargin( 0 ); 554 //excludeBox->setMargin( 0 );
555 addWidBool(i18n("Exclude holidays"), 555 addWidBool(i18n("Exclude holidays"),
556 &(KOPrefs::instance()->mExcludeHolidays),excludeBox); 556 &(KOPrefs::instance()->mExcludeHolidays),excludeBox);
557 557
558 addWidBool(i18n("Exclude Saturdays"), 558 addWidBool(i18n("Exclude Saturdays"),
559 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox); 559 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox);
560 560
561// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"), 561// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"),
562 // &(KOPrefs::instance()->mMarcusBainsShowSeconds), 562 // &(KOPrefs::instance()->mMarcusBainsShowSeconds),
563 // topFrame); 563 // topFrame);
564// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0); 564// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0);
565 565
566 // topLayout->setRowStretch(6,1); 566 // topLayout->setRowStretch(6,1);
567} 567}
568 568
569 569
570void KOPrefsDialog::setupViewsTab() 570void KOPrefsDialog::setupViewsTab()
571{ 571{
572 572
573 QFrame *topFrame = addPage(i18n("Views"),0,0); 573 QFrame *topFrame = addPage(i18n("Views"),0,0);
574 // DesktopIcon("viewmag",KIcon::SizeMedium)); 574 // DesktopIcon("viewmag",KIcon::SizeMedium));
575 575
576 QGridLayout *topLayout = new QGridLayout(topFrame,6,1); 576 QGridLayout *topLayout = new QGridLayout(topFrame,6,1);
577 topLayout->setSpacing(mSpacingHint); 577 topLayout->setSpacing(mSpacingHint);
578 topLayout->setMargin(mMarginHint); 578 topLayout->setMargin(mMarginHint);
579 579
580// QBoxLayout *dayBeginsLayout = new QHBoxLayout; 580// QBoxLayout *dayBeginsLayout = new QHBoxLayout;
581// topLayout->addLayout(dayBeginsLayout,0,0); 581// topLayout->addLayout(dayBeginsLayout,0,0);
582 582
583// KPrefsDialogWidTime *dayBegins = 583// KPrefsDialogWidTime *dayBegins =
584// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 584// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
585// topFrame); 585// topFrame);
586// dayBeginsLayout->addWidget(dayBegins->label()); 586// dayBeginsLayout->addWidget(dayBegins->label());
587// dayBeginsLayout->addStretch(1); 587// dayBeginsLayout->addStretch(1);
588// dayBeginsLayout->addWidget(dayBegins->spinBox()); 588// dayBeginsLayout->addWidget(dayBegins->spinBox());
589 589
590// QBoxLayout *nextDaysLayout = new QHBoxLayout; 590// QBoxLayout *nextDaysLayout = new QHBoxLayout;
591// topLayout->addLayout(nextDaysLayout,1,0); 591// topLayout->addLayout(nextDaysLayout,1,0);
592// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame)); 592// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame));
593// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame); 593// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame);
594// nextDaysLayout->addStretch(1); 594// nextDaysLayout->addStretch(1);
595// nextDaysLayout->addWidget(mNextXDaysSpin); 595// nextDaysLayout->addWidget(mNextXDaysSpin);
596 596
597 597
598 int ii = 0; 598 int ii = 0;
599 KPrefsDialogWidBool *dummy = 599 KPrefsDialogWidBool *dummy =
600 addWidBool(i18n("Edit item on doubleclick (if not, show)"), 600 addWidBool(i18n("Edit item on doubleclick (if not, show)"),
601 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame); 601 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame);
602 topLayout->addWidget(dummy->checkBox(),ii++,0); 602 topLayout->addWidget(dummy->checkBox(),ii++,0);
603 603
604 604
605 605
606 606
607 607
608 608
609 // topLayout->addWidget(hourSizeGroup,ii++,0); 609 // topLayout->addWidget(hourSizeGroup,ii++,0);
610 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0); 610 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0);
611 //topLayout->setRowStretch(11,1); 611 //topLayout->setRowStretch(11,1);
612 612
613 613
614 614
615 615
616#if 0 616#if 0
617 617
618 topFrame = addPage(i18n("ViewChange"),0,0); 618 topFrame = addPage(i18n("ViewChange"),0,0);
619 // DesktopIcon("viewmag",KIcon::SizeMedium)); 619 // DesktopIcon("viewmag",KIcon::SizeMedium));
620 620
621 topLayout = new QGridLayout(topFrame,6,1); 621 topLayout = new QGridLayout(topFrame,6,1);
622 topLayout->setSpacing(mSpacingHint); 622 topLayout->setSpacing(mSpacingHint);
623 topLayout->setMargin(mMarginHint); 623 topLayout->setMargin(mMarginHint);
624 ii = 0; 624 ii = 0;
625 625
626#endif 626#endif
627 627
628 dummy = 628 dummy =
629 addWidBool(i18n("Hold fullscreen on view change"), 629 addWidBool(i18n("Hold fullscreen on view change"),
630 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame); 630 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame);
631 topLayout->addWidget(dummy->checkBox(),ii++,0); 631 topLayout->addWidget(dummy->checkBox(),ii++,0);
632 632
633 dummy = 633 dummy =
634 addWidBool(i18n("Hold non-fullscreen on view change"), 634 addWidBool(i18n("Hold non-fullscreen on view change"),
635 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame); 635 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame);
636 topLayout->addWidget(dummy->checkBox(),ii++,0); 636 topLayout->addWidget(dummy->checkBox(),ii++,0);
637 637
638 638
639 639
640 KPrefsDialogWidBool *fullViewMonth = 640 KPrefsDialogWidBool *fullViewMonth =
641 addWidBool(i18n("Next days view uses full window"), 641 addWidBool(i18n("Next days view uses full window"),
642 &(KOPrefs::instance()->mFullViewMonth),topFrame); 642 &(KOPrefs::instance()->mFullViewMonth),topFrame);
643 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0); 643 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0);
644 644
645 645
646 KPrefsDialogWidBool *fullViewTodo = 646 KPrefsDialogWidBool *fullViewTodo =
647 addWidBool(i18n("Event list view uses full window"), 647 addWidBool(i18n("Event list view uses full window"),
648 &(KOPrefs::instance()->mFullViewTodo),topFrame); 648 &(KOPrefs::instance()->mFullViewTodo),topFrame);
649 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0); 649 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0);
650 dummy = 650 dummy =
651 addWidBool(i18n("Listview uses monthly timespan"), 651 addWidBool(i18n("Listview uses monthly timespan"),
652 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame); 652 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame);
653 topLayout->addWidget(dummy->checkBox(),ii++,0); 653 topLayout->addWidget(dummy->checkBox(),ii++,0);
654 dummy = 654 dummy =
655 addWidBool(i18n("Highlight selection in Time Edit"), 655 addWidBool(i18n("Highlight selection in Time Edit"),
656 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame); 656 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame);
657 topLayout->addWidget( dummy->checkBox(), ii++,0); 657 topLayout->addWidget( dummy->checkBox(), ii++,0);
658 658
659 KPrefsDialogWidBool *dailyRecur = 659 KPrefsDialogWidBool *dailyRecur =
660 addWidBool(i18n("Show events that recur daily in date nav."), 660 addWidBool(i18n("Show events that recur daily in date nav."),
661 &(KOPrefs::instance()->mDailyRecur),topFrame); 661 &(KOPrefs::instance()->mDailyRecur),topFrame);
662 topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 662 topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
663 663
664 KPrefsDialogWidBool *weeklyRecur = 664 KPrefsDialogWidBool *weeklyRecur =
665 addWidBool(i18n("Show ev. that recur weekly in date nav."), 665 addWidBool(i18n("Show ev. that recur weekly in date nav."),
666 &(KOPrefs::instance()->mWeeklyRecur),topFrame); 666 &(KOPrefs::instance()->mWeeklyRecur),topFrame);
667 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0); 667 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0);
668 668
669#ifdef DESKTOP_VERSION 669#ifdef DESKTOP_VERSION
670 KPrefsDialogWidBool *enableToolTips = 670 KPrefsDialogWidBool *enableToolTips =
671 addWidBool(i18n("Enable tooltips displaying summary of ev."), 671 addWidBool(i18n("Enable tooltips displaying summary of ev."),
672 &(KOPrefs::instance()->mEnableToolTips),topFrame); 672 &(KOPrefs::instance()->mEnableToolTips),topFrame);
673 topLayout->addWidget(enableToolTips->checkBox(),ii++,0); 673 topLayout->addWidget(enableToolTips->checkBox(),ii++,0);
674#endif 674#endif
675 // ********************************************************* 675 // *********************************************************
676 676
677 topFrame = addPage(i18n("Agenda View"),0,0); 677 topFrame = addPage(i18n("Agenda View"),0,0);
678 // DesktopIcon("viewmag",KIcon::SizeMedium)); 678 // DesktopIcon("viewmag",KIcon::SizeMedium));
679 679
680 topLayout = new QGridLayout(topFrame,5,1); 680 topLayout = new QGridLayout(topFrame,5,1);
681 topLayout->setSpacing(mSpacingHint); 681 topLayout->setSpacing(mSpacingHint);
682 topLayout->setMargin(mMarginHint); 682 topLayout->setMargin(mMarginHint);
683 ii = 0; 683 ii = 0;
684 684
685 685
686 dummy = 686 dummy =
687 addWidBool(i18n("Show time in agenda items"), 687 addWidBool(i18n("Show time in agenda items"),
688 &(KOPrefs::instance()->mShowTimeInAgenda),topFrame); 688 &(KOPrefs::instance()->mShowTimeInAgenda),topFrame);
689 topLayout->addWidget(dummy->checkBox(),ii++,0); 689 topLayout->addWidget(dummy->checkBox(),ii++,0);
690 690
691 dummy = 691 dummy =
692 addWidBool(i18n("Highlight current day in agenda"), 692 addWidBool(i18n("Highlight current day in agenda"),
693 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame); 693 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame);
694 topLayout->addWidget(dummy->checkBox(),ii++,0); 694 topLayout->addWidget(dummy->checkBox(),ii++,0);
695 695
696 dummy = 696 dummy =
697 addWidBool(i18n("Use light color for highlight current day"), 697 addWidBool(i18n("Use light color for highlight current day"),
698 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame); 698 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame);
699 topLayout->addWidget(dummy->checkBox(),ii++,0); 699 topLayout->addWidget(dummy->checkBox(),ii++,0);
700 700
701 701
702 KPrefsDialogWidBool *marcusBainsEnabled = 702 KPrefsDialogWidBool *marcusBainsEnabled =
703 addWidBool(i18n("Show current time"), 703 addWidBool(i18n("Show current time"),
704 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame); 704 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame);
705 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0); 705 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0);
706 706
707 707
708 dummy = 708 dummy =
709 addWidBool(i18n("Set agenda to DayBeginsAt on change"), 709 addWidBool(i18n("Set agenda to DayBeginsAt on change"),
710 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame); 710 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame);
711 topLayout->addWidget(dummy->checkBox(),ii++,0); 711 topLayout->addWidget(dummy->checkBox(),ii++,0);
712 712
713 dummy = 713 dummy =
714 addWidBool(i18n("Set agenda to current time on change"), 714 addWidBool(i18n("Set agenda to current time on change"),
715 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame); 715 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame);
716 topLayout->addWidget(dummy->checkBox(),ii++,0); 716 topLayout->addWidget(dummy->checkBox(),ii++,0);
717 717
718 718
719 719
720 720
721 721
722 722
723 723
724 topFrame = addPage(i18n("Month View"),0,0); 724 topFrame = addPage(i18n("Month View"),0,0);
725 // DesktopIcon("viewmag",KIcon::SizeMedium)); 725 // DesktopIcon("viewmag",KIcon::SizeMedium));
726 726
727 topLayout = new QGridLayout(topFrame,5,1); 727 topLayout = new QGridLayout(topFrame,5,1);
728 topLayout->setSpacing(mSpacingHint); 728 topLayout->setSpacing(mSpacingHint);
729 topLayout->setMargin(mMarginHint); 729 topLayout->setMargin(mMarginHint);
730 ii = 0; 730 ii = 0;
731 QLabel *lab; 731 QLabel *lab;
732 QHBox *habo = new QHBox( topFrame ); 732 QHBox *habo = new QHBox( topFrame );
733 if ( QApplication::desktop()->width() <= 480 ) { 733 if ( QApplication::desktop()->width() <= 480 ) {
734 lab = new QLabel ( i18n("Show events that recur "), topFrame ); 734 lab = new QLabel ( i18n("Show events that recur "), topFrame );
735 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 735 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
736 ii++; 736 ii++;
737 } else { 737 } else {
738 new QLabel ( i18n("Show events that recur "), habo ); 738 new QLabel ( i18n("Show events that recur "), habo );
739 } 739 }
740 dailyRecur = 740 dailyRecur =
741 addWidBool(i18n("daily"), 741 addWidBool(i18n("daily"),
742 &(KOPrefs::instance()->mMonthDailyRecur),habo); 742 &(KOPrefs::instance()->mMonthDailyRecur),habo);
743 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 743 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
744 744
745 weeklyRecur = 745 weeklyRecur =
746 addWidBool(i18n("weekly"), 746 addWidBool(i18n("weekly"),
747 &(KOPrefs::instance()->mMonthWeeklyRecur),habo); 747 &(KOPrefs::instance()->mMonthWeeklyRecur),habo);
748 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 748 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
749 ii++; 749 ii++;
750 750
751 751
752 habo = new QHBox( topFrame ); 752 habo = new QHBox( topFrame );
753 if ( QApplication::desktop()->width() <= 480 ) { 753 if ( QApplication::desktop()->width() <= 480 ) {
754 lab = new QLabel (i18n("Show in every cell ") , topFrame ); 754 lab = new QLabel (i18n("Show in every cell ") , topFrame );
755 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 755 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
756 ii++; 756 ii++;
757 757
758 } else { 758 } else {
759 new QLabel ( i18n("Show in every cell "), habo ); 759 new QLabel ( i18n("Show in every cell "), habo );
760 } 760 }
761 weeklyRecur = 761 weeklyRecur =
762 addWidBool(i18n("short month"), 762 addWidBool(i18n("short month"),
763 &(KOPrefs::instance()->mMonthShowShort),habo); 763 &(KOPrefs::instance()->mMonthShowShort),habo);
764 weeklyRecur = 764 weeklyRecur =
765 addWidBool(i18n("icons"), 765 addWidBool(i18n("icons"),
766 &(KOPrefs::instance()->mMonthShowIcons),habo); 766 &(KOPrefs::instance()->mMonthShowIcons),habo);
767 weeklyRecur = 767 weeklyRecur =
768 addWidBool(i18n("times"), 768 addWidBool(i18n("times"),
769 &(KOPrefs::instance()->mMonthShowTimes),habo); 769 &(KOPrefs::instance()->mMonthShowTimes),habo);
770 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 770 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
771 ii++; 771 ii++;
772#ifdef DESKTOP_VERSION 772#ifdef DESKTOP_VERSION
773 KPrefsDialogWidBool *enableMonthScroll = 773 KPrefsDialogWidBool *enableMonthScroll =
774 addWidBool(i18n("Enable scrollbars in month view cells"), 774 addWidBool(i18n("Enable scrollbars in month view cells"),
775 &(KOPrefs::instance()->mEnableMonthScroll),topFrame); 775 &(KOPrefs::instance()->mEnableMonthScroll),topFrame);
776 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0); 776 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0);
777#endif 777#endif
778 dummy = 778 dummy =
779 addWidBool(i18n("Week view mode uses bigger font"), 779 addWidBool(i18n("Week view mode uses bigger font"),
780 &(KOPrefs::instance()->mMonthViewUsesBigFont),topFrame); 780 &(KOPrefs::instance()->mMonthViewUsesBigFont),topFrame);
781 topLayout->addWidget(dummy->checkBox(),ii++,0); 781 topLayout->addWidget(dummy->checkBox(),ii++,0);
782 dummy = 782 dummy =
783 addWidBool(i18n("Show Sat/Sun together"), 783 addWidBool(i18n("Show Sat/Sun together"),
784 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame); 784 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame);
785 topLayout->addWidget(dummy->checkBox(),ii++,0); 785 topLayout->addWidget(dummy->checkBox(),ii++,0);
786 786
787 KPrefsDialogWidBool *coloredCategoriesInMonthView = 787 KPrefsDialogWidBool *coloredCategoriesInMonthView =
788 addWidBool(i18n("Month view uses category colors"), 788 addWidBool(i18n("Month view uses category colors"),
789 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame); 789 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame);
790 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 790 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
791 791
792 dummy = 792 dummy =
793 addWidBool(i18n("Categorie colors are applied to text"), 793 addWidBool(i18n("Categorie colors are applied to text"),
794 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame); 794 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame);
795 topLayout->addWidget(dummy->checkBox(),ii++,0); 795 topLayout->addWidget(dummy->checkBox(),ii++,0);
796 coloredCategoriesInMonthView = 796 coloredCategoriesInMonthView =
797 addWidBool(i18n("Month view uses day colors"), 797 addWidBool(i18n("Month view uses day colors"),
798 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame); 798 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame);
799 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 799 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
800 800
801 KPrefsDialogWidColor *holidayColor = 801 KPrefsDialogWidColor *holidayColor =
802 addWidColor(i18n("Day color odd months"), 802 addWidColor(i18n("Day color odd months"),
803 &(KOPrefs::instance()->mMonthViewOddColor),topFrame); 803 &(KOPrefs::instance()->mMonthViewOddColor),topFrame);
804 topLayout->addWidget(holidayColor->label(),ii,0); 804 topLayout->addWidget(holidayColor->label(),ii,0);
805 topLayout->addWidget(holidayColor->button(),ii++,1); 805 topLayout->addWidget(holidayColor->button(),ii++,1);
806 806
807 holidayColor = 807 holidayColor =
808 addWidColor(i18n("Day color even months"), 808 addWidColor(i18n("Day color even months"),
809 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame); 809 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame);
810 topLayout->addWidget(holidayColor->label(),ii,0); 810 topLayout->addWidget(holidayColor->label(),ii,0);
811 topLayout->addWidget(holidayColor->button(),ii++,1); 811 topLayout->addWidget(holidayColor->button(),ii++,1);
812 812
813 813
814 holidayColor = 814 holidayColor =
815 addWidColor(i18n("Color for Sundays + category \"Holiday\""), 815 addWidColor(i18n("Color for Sundays + category \"Holiday\""),
816 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame); 816 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame);
817 topLayout->addWidget(holidayColor->label(),ii,0); 817 topLayout->addWidget(holidayColor->label(),ii,0);
818 topLayout->addWidget(holidayColor->button(),ii++,1); 818 topLayout->addWidget(holidayColor->button(),ii++,1);
819 // *********************** What'sNext View 819 // *********************** What'sNext View
820 topFrame = addPage(i18n("What's Next View"),0,0); 820 topFrame = addPage(i18n("What's Next View"),0,0);
821 // DesktopIcon("viewmag",KIcon::SizeMedium)); 821 // DesktopIcon("viewmag",KIcon::SizeMedium));
822 822
823 topLayout = new QGridLayout(topFrame,4,1); 823 topLayout = new QGridLayout(topFrame,4,1);
824 topLayout->setSpacing(mSpacingHint); 824 topLayout->setSpacing(mSpacingHint);
825 topLayout->setMargin(mMarginHint); 825 topLayout->setMargin(mMarginHint);
826 ii = 0; 826 ii = 0;
827 827
828 828
829 QHBox* hdummy = new QHBox(topFrame); 829 QHBox* hdummy = new QHBox(topFrame);
830 new QLabel(i18n("Days in What's Next:"),hdummy); 830 new QLabel(i18n("Days in What's Next:"),hdummy);
831 mWhatsNextSpin = new QSpinBox(1,14,1,hdummy); 831 mWhatsNextSpin = new QSpinBox(1,14,1,hdummy);
832 832
833 topLayout->addWidget(hdummy,ii++,0); 833 topLayout->addWidget(hdummy,ii++,0);
834 834
835 QHBox *prioBox = new QHBox(topFrame); 835 QHBox *prioBox = new QHBox(topFrame);
836 // intervalBox->setSpacing(mSpacingHint); 836 // intervalBox->setSpacing(mSpacingHint);
837 topLayout->addWidget(prioBox,ii++,0); 837 topLayout->addWidget(prioBox,ii++,0);
838 838
839 QLabel *prioLabel = new QLabel(i18n("Number of max.displayed todo prios:"), prioBox); 839 QLabel *prioLabel = new QLabel(i18n("Number of max.displayed todo prios:"), prioBox);
840 mPrioSpin = new QSpinBox(0,5,1,prioBox); 840 mPrioSpin = new QSpinBox(0,5,1,prioBox);
841 if ( QApplication::desktop()->width() < 300 ) 841 if ( QApplication::desktop()->width() < 300 )
842 mPrioSpin->setFixedWidth( 40 ); 842 mPrioSpin->setFixedWidth( 40 );
843 843
844 KPrefsDialogWidBool *passwdk = 844 KPrefsDialogWidBool *passwdk =
845 845
846 addWidBool(i18n("Show events, that are done"), 846 addWidBool(i18n("Show events, that are done"),
847 &(KOPrefs::instance()->mWNViewShowsPast),topFrame); 847 &(KOPrefs::instance()->mWNViewShowsPast),topFrame);
848 topLayout->addWidget(passwdk->checkBox(), ii++,0); 848 topLayout->addWidget(passwdk->checkBox(), ii++,0);
849 passwdk = 849 passwdk =
850 addWidBool(i18n("Show parent To-Do's"), 850 addWidBool(i18n("Show parent To-Do's"),
851 &(KOPrefs::instance()->mWNViewShowsParents),topFrame); 851 &(KOPrefs::instance()->mWNViewShowsParents),topFrame);
852 topLayout->addWidget(passwdk->checkBox(), ii++,0); 852 topLayout->addWidget(passwdk->checkBox(), ii++,0);
853 853
854 passwdk = 854 passwdk =
855 addWidBool(i18n("Show location"), 855 addWidBool(i18n("Show location"),
856 &(KOPrefs::instance()->mWNViewShowLocation),topFrame); 856 &(KOPrefs::instance()->mWNViewShowLocation),topFrame);
857 topLayout->addWidget(passwdk->checkBox(), ii++,0); 857 topLayout->addWidget(passwdk->checkBox(), ii++,0);
858 858
859 passwdk = 859
860 addWidBool(i18n("Show Sync Events in WN+Agenda"),
861 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
862 topLayout->addWidget(passwdk->checkBox(), ii++,0);
863 passwdk = 860 passwdk =
864 addWidBool(i18n("Use short date in WN+Event view"), 861 addWidBool(i18n("Use short date in WN+Event view"),
865 &(KOPrefs::instance()->mShortDateInViewer),topFrame); 862 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
866 topLayout->addWidget(passwdk->checkBox(), ii++,0); 863 topLayout->addWidget(passwdk->checkBox(), ii++,0);
867 864
868 865
869 866
870 867
871 // *********************** Todo View 868 // *********************** Todo View
872 869
873 topFrame = addPage(i18n("Todo View"),0,0); 870 topFrame = addPage(i18n("Todo View"),0,0);
874 // DesktopIcon("viewmag",KIcon::SizeMedium)); 871 // DesktopIcon("viewmag",KIcon::SizeMedium));
875 872
876 topLayout = new QGridLayout(topFrame,4,1); 873 topLayout = new QGridLayout(topFrame,4,1);
877 topLayout->setSpacing(mSpacingHint); 874 topLayout->setSpacing(mSpacingHint);
878 topLayout->setMargin(mMarginHint); 875 topLayout->setMargin(mMarginHint);
879 ii = 0; 876 ii = 0;
880dummy = 877dummy =
881 addWidBool(i18n("Hide not running Todos in To-do view"), 878 addWidBool(i18n("Hide not running Todos in To-do view"),
882 &(KOPrefs::instance()->mHideNonStartedTodos),topFrame); 879 &(KOPrefs::instance()->mHideNonStartedTodos),topFrame);
883 topLayout->addWidget(dummy->checkBox(),ii++,0); 880 topLayout->addWidget(dummy->checkBox(),ii++,0);
884 881
885 882
886 KPrefsDialogWidBool *showCompletedTodo = 883 KPrefsDialogWidBool *showCompletedTodo =
887 addWidBool(i18n("To-do view shows completed Todos"), 884 addWidBool(i18n("To-do view shows completed Todos"),
888 &(KOPrefs::instance()->mShowCompletedTodo),topFrame); 885 &(KOPrefs::instance()->mShowCompletedTodo),topFrame);
889 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0); 886 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0);
890 dummy = 887 dummy =
891 addWidBool(i18n("To-do view shows complete as 'xx %'"), 888 addWidBool(i18n("To-do view shows complete as 'xx %'"),
892 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame); 889 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame);
893 topLayout->addWidget(dummy->checkBox(),ii++,0); 890 topLayout->addWidget(dummy->checkBox(),ii++,0);
894 891
895 dummy = 892 dummy =
896 addWidBool(i18n("Small To-do view uses smaller font"), 893 addWidBool(i18n("Small To-do view uses smaller font"),
897 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame); 894 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame);
898 topLayout->addWidget(dummy->checkBox(),ii++,0); 895 topLayout->addWidget(dummy->checkBox(),ii++,0);
899 896
900 897
901 898
902 dummy = 899 dummy =
903 addWidBool(i18n("Todo view uses category colors"), 900 addWidBool(i18n("Todo view uses category colors"),
904 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame); 901 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame);
905 topLayout->addWidget(dummy->checkBox(),ii++,0); 902 topLayout->addWidget(dummy->checkBox(),ii++,0);
906 903
907 904
908 QWidget* wid = new QWidget( topFrame ); 905 QWidget* wid = new QWidget( topFrame );
909 // Todo run today color 906 // Todo run today color
910 KPrefsDialogWidColor *todoRunColor = 907 KPrefsDialogWidColor *todoRunColor =
911 addWidColor(i18n("Color for running todos:"), 908 addWidColor(i18n("Color for running todos:"),
912 &(KOPrefs::instance()->mTodoRunColor),wid); 909 &(KOPrefs::instance()->mTodoRunColor),wid);
913 QHBoxLayout *widLayout = new QHBoxLayout(wid); 910 QHBoxLayout *widLayout = new QHBoxLayout(wid);
914 widLayout->addWidget( todoRunColor->label() ); 911 widLayout->addWidget( todoRunColor->label() );
915 widLayout->addWidget( todoRunColor->button() ); 912 widLayout->addWidget( todoRunColor->button() );
916 topLayout->addWidget(wid,ii++,0); 913 topLayout->addWidget(wid,ii++,0);
917 914
918 wid = new QWidget( topFrame ); 915 wid = new QWidget( topFrame );
919 // Todo due today color 916 // Todo due today color
920 KPrefsDialogWidColor *todoDueTodayColor = 917 KPrefsDialogWidColor *todoDueTodayColor =
921 addWidColor(i18n("Todo due today color:"), 918 addWidColor(i18n("Todo due today color:"),
922 &(KOPrefs::instance()->mTodoDueTodayColor),wid); 919 &(KOPrefs::instance()->mTodoDueTodayColor),wid);
923 widLayout = new QHBoxLayout(wid); 920 widLayout = new QHBoxLayout(wid);
924 widLayout->addWidget( todoDueTodayColor->label() ); 921 widLayout->addWidget( todoDueTodayColor->label() );
925 widLayout->addWidget( todoDueTodayColor->button() ); 922 widLayout->addWidget( todoDueTodayColor->button() );
926 topLayout->addWidget(wid,ii++,0); 923 topLayout->addWidget(wid,ii++,0);
927 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1); 924 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1);
928 925
929 // Todo overdue color 926 // Todo overdue color
930 wid = new QWidget( topFrame ); 927 wid = new QWidget( topFrame );
931 widLayout = new QHBoxLayout(wid); 928 widLayout = new QHBoxLayout(wid);
932 KPrefsDialogWidColor *todoOverdueColor = 929 KPrefsDialogWidColor *todoOverdueColor =
933 addWidColor(i18n("Todo overdue color:"), 930 addWidColor(i18n("Todo overdue color:"),
934 &(KOPrefs::instance()->mTodoOverdueColor),wid); 931 &(KOPrefs::instance()->mTodoOverdueColor),wid);
935 widLayout->addWidget(todoOverdueColor->label()); 932 widLayout->addWidget(todoOverdueColor->label());
936 widLayout->addWidget(todoOverdueColor->button()); 933 widLayout->addWidget(todoOverdueColor->button());
937 topLayout->addWidget(wid,ii++,0); 934 topLayout->addWidget(wid,ii++,0);
938 935
939 dummy = 936 dummy =
940 addWidBool(i18n("Colors are applied to text"), 937 addWidBool(i18n("Colors are applied to text"),
941 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame); 938 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame);
942 topLayout->addWidget(dummy->checkBox(),ii++,0); 939 topLayout->addWidget(dummy->checkBox(),ii++,0);
943 940
944 dummy = 941 dummy =
945 addWidBool(i18n("Allday Agenda view shows todos"), 942 addWidBool(i18n("Allday Agenda view shows todos"),
946 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame); 943 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame);
947 topLayout->addWidget(dummy->checkBox(),ii++,0); 944 topLayout->addWidget(dummy->checkBox(),ii++,0);
948 945
949 946
950 topFrame = addPage(i18n("View Options"),0,0); 947 topFrame = addPage(i18n("View Options"),0,0);
951 948
952 topLayout = new QGridLayout(topFrame,4,1); 949 topLayout = new QGridLayout(topFrame,4,1);
953 topLayout->setSpacing(mSpacingHint); 950 topLayout->setSpacing(mSpacingHint);
954 topLayout->setMargin(mMarginHint); 951 topLayout->setMargin(mMarginHint);
955 ii = 0; 952 ii = 0;
953
954 dummy =
955 addWidBool(i18n("Show Sync Events"),
956 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
957 topLayout->addWidget(dummy->checkBox(), ii++,0);
958
956 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame); 959 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame);
957 topLayout->addWidget(lab ,ii++,0); 960 topLayout->addWidget(lab ,ii++,0);
958 961
959 dummy = addWidBool(i18n("Details"), 962 dummy = addWidBool(i18n("Details"),
960 &(KOPrefs::instance()->mEVshowDetails),topFrame); 963 &(KOPrefs::instance()->mEVshowDetails),topFrame);
961 topLayout->addWidget(dummy->checkBox(),ii++,0); 964 topLayout->addWidget(dummy->checkBox(),ii++,0);
962 dummy = addWidBool(i18n("Created time"), 965 dummy = addWidBool(i18n("Created time"),
963 &(KOPrefs::instance()->mEVshowCreated),topFrame); 966 &(KOPrefs::instance()->mEVshowCreated),topFrame);
964 topLayout->addWidget(dummy->checkBox(),ii++,0); 967 topLayout->addWidget(dummy->checkBox(),ii++,0);
965 dummy = addWidBool(i18n("Last modified time"), 968 dummy = addWidBool(i18n("Last modified time"),
966 &(KOPrefs::instance()->mEVshowChanged),topFrame); 969 &(KOPrefs::instance()->mEVshowChanged),topFrame);
967 topLayout->addWidget(dummy->checkBox(),ii++,0); 970 topLayout->addWidget(dummy->checkBox(),ii++,0);
968 971
969 972
970 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame); 973 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame);
971 topLayout->addWidget(lab ,ii++,0); 974 topLayout->addWidget(lab ,ii++,0);
972 975
973 dummy = addWidBool(i18n("Details"), 976 dummy = addWidBool(i18n("Details"),
974 &(KOPrefs::instance()->mWTshowDetails),topFrame); 977 &(KOPrefs::instance()->mWTshowDetails),topFrame);
975 topLayout->addWidget(dummy->checkBox(),ii++,0); 978 topLayout->addWidget(dummy->checkBox(),ii++,0);
976 dummy = addWidBool(i18n("Created time"), 979 dummy = addWidBool(i18n("Created time"),
977 &(KOPrefs::instance()->mWTshowCreated),topFrame); 980 &(KOPrefs::instance()->mWTshowCreated),topFrame);
978 topLayout->addWidget(dummy->checkBox(),ii++,0); 981 topLayout->addWidget(dummy->checkBox(),ii++,0);
979 dummy = addWidBool(i18n("Last modified time"), 982 dummy = addWidBool(i18n("Last modified time"),
980 &(KOPrefs::instance()->mWTshowChanged),topFrame); 983 &(KOPrefs::instance()->mWTshowChanged),topFrame);
981 topLayout->addWidget(dummy->checkBox(),ii++,0); 984 topLayout->addWidget(dummy->checkBox(),ii++,0);
982 985
983 986
984 topFrame = addPage(i18n("Alarm"),0,0); 987 topFrame = addPage(i18n("Alarm"),0,0);
985 // DesktopIcon("viewmag",KIcon::SizeMedium)); 988 // DesktopIcon("viewmag",KIcon::SizeMedium));
986 989
987 topLayout = new QGridLayout(topFrame,2,1); 990 topLayout = new QGridLayout(topFrame,2,1);
988 topLayout->setSpacing(mSpacingHint); 991 topLayout->setSpacing(mSpacingHint);
989 topLayout->setMargin(mMarginHint); 992 topLayout->setMargin(mMarginHint);
990 int iii = 0; 993 int iii = 0;
991 994
992 dummy = 995 dummy =
993 addWidBool(i18n("Use internal alarm notification"), 996 addWidBool(i18n("Use internal alarm notification"),
994 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 997 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
995 topLayout->addWidget(dummy->checkBox(),iii++,0); 998 topLayout->addWidget(dummy->checkBox(),iii++,0);
996 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame); 999 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame);
997 1000
998 topLayout->addWidget(lab ,iii++,0); 1001 topLayout->addWidget(lab ,iii++,0);
999#ifndef DESKTOP_VERSION 1002#ifndef DESKTOP_VERSION
1000 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1003 lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1001#else 1004#else
1002 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1005 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1003 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1006 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1004#endif 1007#endif
1005 1008
1006 QHBox* dummyBox = new QHBox(topFrame); 1009 QHBox* dummyBox = new QHBox(topFrame);
1007 new QLabel(i18n("Play beeps count:"),dummyBox); 1010 new QLabel(i18n("Play beeps count:"),dummyBox);
1008 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox); 1011 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox);
1009 topLayout->addWidget(dummyBox,iii++,0); 1012 topLayout->addWidget(dummyBox,iii++,0);
1010 1013
1011 dummyBox = new QHBox(topFrame); 1014 dummyBox = new QHBox(topFrame);
1012 new QLabel(i18n("Beeps interval in sec:"),dummyBox); 1015 new QLabel(i18n("Beeps interval in sec:"),dummyBox);
1013 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox); 1016 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox);
1014 topLayout->addWidget(dummyBox,iii++,0); 1017 topLayout->addWidget(dummyBox,iii++,0);
1015 1018
1016 dummyBox = new QHBox(topFrame); 1019 dummyBox = new QHBox(topFrame);
1017 new QLabel(i18n("Default suspend time in min:"),dummyBox); 1020 new QLabel(i18n("Default suspend time in min:"),dummyBox);
1018 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox); 1021 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox);
1019 topLayout->addWidget(dummyBox,iii++,0); 1022 topLayout->addWidget(dummyBox,iii++,0);
1020 1023
1021 dummyBox = new QHBox(topFrame); 1024 dummyBox = new QHBox(topFrame);
1022 new QLabel(i18n("Auto suspend count:"),dummyBox); 1025 new QLabel(i18n("Auto suspend count:"),dummyBox);
1023 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox); 1026 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox);
1024 topLayout->addWidget(dummyBox,iii++,0); 1027 topLayout->addWidget(dummyBox,iii++,0);
1025 1028
1026 1029
1027 1030
1028 1031
1029 1032
1030 1033
1031 1034
1032 QHBox* hbo = new QHBox ( topFrame ); 1035 QHBox* hbo = new QHBox ( topFrame );
1033 mDefaultAlarmFile = new QLineEdit(hbo); 1036 mDefaultAlarmFile = new QLineEdit(hbo);
1034 QPushButton * loadTemplate = new QPushButton(hbo); 1037 QPushButton * loadTemplate = new QPushButton(hbo);
1035 QPixmap icon; 1038 QPixmap icon;
1036 if ( QApplication::desktop()->width() < 321 ) 1039 if ( QApplication::desktop()->width() < 321 )
1037 icon = SmallIcon("fileimport16"); 1040 icon = SmallIcon("fileimport16");
1038 else 1041 else
1039 icon = SmallIcon("fileimport"); 1042 icon = SmallIcon("fileimport");
1040 loadTemplate->setIconSet (icon ) ; 1043 loadTemplate->setIconSet (icon ) ;
1041 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) ); 1044 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) );
1042 int size = loadTemplate->sizeHint().height(); 1045 int size = loadTemplate->sizeHint().height();
1043 loadTemplate->setFixedSize( size, size ); 1046 loadTemplate->setFixedSize( size, size );
1044 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame); 1047 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame);
1045 // topLayout->addWidget(lab ,iii++,0); 1048 // topLayout->addWidget(lab ,iii++,0);
1046 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame); 1049 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame);
1047 topLayout->addWidget(lab ,iii++,0); 1050 topLayout->addWidget(lab ,iii++,0);
1048 topLayout->addWidget(hbo,iii++,0); 1051 topLayout->addWidget(hbo,iii++,0);
1049 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame); 1052 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame);
1050 1053
1051// topLayout->addWidget(lab ,iii++,0); 1054// topLayout->addWidget(lab ,iii++,0);
1052// #ifndef DESKTOP_VERSION 1055// #ifndef DESKTOP_VERSION
1053// lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1056// lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1054// #else 1057// #else
1055// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1058// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1056// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1059// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1057// #endif 1060// #endif
1058 1061
1059 1062
1060} 1063}
1061 1064
1062void KOPrefsDialog::selectSoundFile() 1065void KOPrefsDialog::selectSoundFile()
1063{ 1066{
1064 QString fileName = mDefaultAlarmFile->text(); 1067 QString fileName = mDefaultAlarmFile->text();
1065 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this ); 1068 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this );
1066 if ( fileName.length() > 0 ) 1069 if ( fileName.length() > 0 )
1067 mDefaultAlarmFile->setText( fileName ); 1070 mDefaultAlarmFile->setText( fileName );
1068} 1071}
1069void KOPrefsDialog::setupFontsTab() 1072void KOPrefsDialog::setupFontsTab()
1070{ 1073{
1071 1074
1072 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 1075 QFrame *topFrame = addPage(i18n("Fonts"),0,0);
1073 // DesktopIcon("fonts",KIcon::SizeMedium)); 1076 // DesktopIcon("fonts",KIcon::SizeMedium));
1074 1077
1075 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 1078 QGridLayout *topLayout = new QGridLayout(topFrame,7,3);
1076 topLayout->setSpacing(1); 1079 topLayout->setSpacing(1);
1077 topLayout->setMargin(3); 1080 topLayout->setMargin(3);
1078 KPrefsDialogWidFont * tVFont; 1081 KPrefsDialogWidFont * tVFont;
1079 int i = 0; 1082 int i = 0;
1080 KPrefsDialogWidFont *timeLabelsFont = 1083 KPrefsDialogWidFont *timeLabelsFont =
1081 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"), 1084 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"),
1082 &(KOPrefs::instance()->mDateNavigatorFont),topFrame); 1085 &(KOPrefs::instance()->mDateNavigatorFont),topFrame);
1083 topLayout->addWidget(timeLabelsFont->label(),i,0); 1086 topLayout->addWidget(timeLabelsFont->label(),i,0);
1084 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1087 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1085 topLayout->addWidget(timeLabelsFont->button(),i,2); 1088 topLayout->addWidget(timeLabelsFont->button(),i,2);
1086 ++i; 1089 ++i;
1087 1090
1088 1091
1089 timeLabelsFont = 1092 timeLabelsFont =
1090 addWidFont(i18n("Mon 15"),i18n("Date Labels:"), 1093 addWidFont(i18n("Mon 15"),i18n("Date Labels:"),
1091 &(KOPrefs::instance()->mTimeLabelsFont),topFrame); 1094 &(KOPrefs::instance()->mTimeLabelsFont),topFrame);
1092 topLayout->addWidget(timeLabelsFont->label(),i,0); 1095 topLayout->addWidget(timeLabelsFont->label(),i,0);
1093 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1096 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1094 topLayout->addWidget(timeLabelsFont->button(),i,2); 1097 topLayout->addWidget(timeLabelsFont->button(),i,2);
1095 ++i; 1098 ++i;
1096 1099
1097 KPrefsDialogWidFont *timeBarFont = 1100 KPrefsDialogWidFont *timeBarFont =
1098 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"), 1101 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"),
1099 &(KOPrefs::instance()->mTimeBarFont),topFrame); 1102 &(KOPrefs::instance()->mTimeBarFont),topFrame);
1100 topLayout->addWidget(timeBarFont->label(),i,0); 1103 topLayout->addWidget(timeBarFont->label(),i,0);
1101 topLayout->addWidget(timeBarFont->preview(),i,1); 1104 topLayout->addWidget(timeBarFont->preview(),i,1);
1102 topLayout->addWidget(timeBarFont->button(),i,2); 1105 topLayout->addWidget(timeBarFont->button(),i,2);
1103 ++i; 1106 ++i;
1104 1107
1105 1108
1106 KPrefsDialogWidFont *marcusBainsFont = 1109 KPrefsDialogWidFont *marcusBainsFont =
1107 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"), 1110 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"),
1108 &(KOPrefs::instance()->mMarcusBainsFont),topFrame); 1111 &(KOPrefs::instance()->mMarcusBainsFont),topFrame);
1109 topLayout->addWidget(marcusBainsFont->label(),i,0); 1112 topLayout->addWidget(marcusBainsFont->label(),i,0);
1110 topLayout->addWidget(marcusBainsFont->preview(),i,1); 1113 topLayout->addWidget(marcusBainsFont->preview(),i,1);
1111 topLayout->addWidget(marcusBainsFont->button(),i,2); 1114 topLayout->addWidget(marcusBainsFont->button(),i,2);
1112 ++i; 1115 ++i;
1113 1116
1114 tVFont = 1117 tVFont =
1115 addWidFont(i18n("Summary"),i18n("Event Viewer:"), 1118 addWidFont(i18n("Summary"),i18n("Event Viewer:"),
1116 &(KOPrefs::instance()->mEventViewFont),topFrame); 1119 &(KOPrefs::instance()->mEventViewFont),topFrame);
1117 topLayout->addWidget(tVFont->label(),i,0); 1120 topLayout->addWidget(tVFont->label(),i,0);
1118 topLayout->addWidget(tVFont->preview(),i,1); 1121 topLayout->addWidget(tVFont->preview(),i,1);
1119 topLayout->addWidget(tVFont->button(),i,2); 1122 topLayout->addWidget(tVFont->button(),i,2);
1120 ++i; 1123 ++i;
1121 1124
1122 1125
1123 1126
1124 tVFont = 1127 tVFont =
1125 addWidFont(i18n("Details"),i18n("EditorBox:"), 1128 addWidFont(i18n("Details"),i18n("EditorBox:"),
1126 &(KOPrefs::instance()->mEditBoxFont),topFrame); 1129 &(KOPrefs::instance()->mEditBoxFont),topFrame);
1127 topLayout->addWidget(tVFont->label(),i,0); 1130 topLayout->addWidget(tVFont->label(),i,0);
1128 topLayout->addWidget(tVFont->preview(),i,1); 1131 topLayout->addWidget(tVFont->preview(),i,1);
1129 topLayout->addWidget(tVFont->button(),i,2); 1132 topLayout->addWidget(tVFont->button(),i,2);
1130 ++i; 1133 ++i;
1131 1134
1132 1135
1133 1136
1134 topLayout->setColStretch(1,1); 1137 topLayout->setColStretch(1,1);
1135 topLayout->setRowStretch(4,1); 1138 topLayout->setRowStretch(4,1);
1136 1139
1137 1140
1138 i = 0; 1141 i = 0;
1139 topFrame = addPage(i18n("View Fonts"),0, 1142 topFrame = addPage(i18n("View Fonts"),0,
1140 DesktopIcon("fonts",KIcon::SizeMedium)); 1143 DesktopIcon("fonts",KIcon::SizeMedium));
1141 1144
1142 topLayout = new QGridLayout(topFrame,7,3); 1145 topLayout = new QGridLayout(topFrame,7,3);
1143 topLayout->setSpacing(1); 1146 topLayout->setSpacing(1);
1144 topLayout->setMargin(3); 1147 topLayout->setMargin(3);
1145 1148
1146 tVFont = 1149 tVFont =
1147 addWidFont(i18n("Configure KO"),i18n("What's Next View:"), 1150 addWidFont(i18n("Configure KO"),i18n("What's Next View:"),
1148 &(KOPrefs::instance()->mWhatsNextFont),topFrame); 1151 &(KOPrefs::instance()->mWhatsNextFont),topFrame);
1149 topLayout->addWidget(tVFont->label(),i,0); 1152 topLayout->addWidget(tVFont->label(),i,0);
1150 topLayout->addWidget(tVFont->preview(),i,1); 1153 topLayout->addWidget(tVFont->preview(),i,1);
1151 topLayout->addWidget(tVFont->button(),i,2); 1154 topLayout->addWidget(tVFont->button(),i,2);
1152 ++i; 1155 ++i;
1153 KPrefsDialogWidFont *agendaViewFont = 1156 KPrefsDialogWidFont *agendaViewFont =
1154 addWidFont(i18n("Event text"),i18n("Agenda view:"), 1157 addWidFont(i18n("Event text"),i18n("Agenda view:"),
1155 &(KOPrefs::instance()->mAgendaViewFont),topFrame); 1158 &(KOPrefs::instance()->mAgendaViewFont),topFrame);
1156 topLayout->addWidget(agendaViewFont->label(),i,0); 1159 topLayout->addWidget(agendaViewFont->label(),i,0);
1157 topLayout->addWidget(agendaViewFont->preview(),i,1); 1160 topLayout->addWidget(agendaViewFont->preview(),i,1);
1158 topLayout->addWidget(agendaViewFont->button(),i,2); 1161 topLayout->addWidget(agendaViewFont->button(),i,2);
1159 ++i; 1162 ++i;
1160 1163
1161 1164
1162 KPrefsDialogWidFont *monthViewFont = 1165 KPrefsDialogWidFont *monthViewFont =
1163 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"), 1166 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"),
1164 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame); 1167 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame);
1165 topLayout->addWidget(monthViewFont->label(),i,0); 1168 topLayout->addWidget(monthViewFont->label(),i,0);
1166 topLayout->addWidget(monthViewFont->preview(),i,1); 1169 topLayout->addWidget(monthViewFont->preview(),i,1);
1167 topLayout->addWidget(monthViewFont->button(),i,2); 1170 topLayout->addWidget(monthViewFont->button(),i,2);
1168 ++i; 1171 ++i;
1169 1172
1170 1173
1171 KPrefsDialogWidFont *lVFont = 1174 KPrefsDialogWidFont *lVFont =
1172 addWidFont(i18n("Event"),i18n("List View:"), 1175 addWidFont(i18n("Event"),i18n("List View:"),
1173 &(KOPrefs::instance()->mListViewFont),topFrame); 1176 &(KOPrefs::instance()->mListViewFont),topFrame);
1174 topLayout->addWidget(lVFont->label(),i,0); 1177 topLayout->addWidget(lVFont->label(),i,0);
1175 topLayout->addWidget(lVFont->preview(),i,1); 1178 topLayout->addWidget(lVFont->preview(),i,1);
1176 topLayout->addWidget(lVFont->button(),i,2); 1179 topLayout->addWidget(lVFont->button(),i,2);
1177 ++i; 1180 ++i;
1178 1181
1179 1182
1180 tVFont = 1183 tVFont =
1181 addWidFont(i18n("ToDo"),i18n("ToDoView:"), 1184 addWidFont(i18n("ToDo"),i18n("ToDoView:"),
1182 &(KOPrefs::instance()->mTodoViewFont),topFrame); 1185 &(KOPrefs::instance()->mTodoViewFont),topFrame);
1183 topLayout->addWidget(tVFont->label(),i,0); 1186 topLayout->addWidget(tVFont->label(),i,0);
1184 topLayout->addWidget(tVFont->preview(),i,1); 1187 topLayout->addWidget(tVFont->preview(),i,1);
1185 topLayout->addWidget(tVFont->button(),i,2); 1188 topLayout->addWidget(tVFont->button(),i,2);
1186 ++i; 1189 ++i;
1187 1190
1188 1191
1189 tVFont = 1192 tVFont =
1190 addWidFont(i18n("Today"),i18n("JournalView:"), 1193 addWidFont(i18n("Today"),i18n("JournalView:"),
1191 &(KOPrefs::instance()->mJornalViewFont),topFrame); 1194 &(KOPrefs::instance()->mJornalViewFont),topFrame);
1192 topLayout->addWidget(tVFont->label(),i,0); 1195 topLayout->addWidget(tVFont->label(),i,0);
1193 topLayout->addWidget(tVFont->preview(),i,1); 1196 topLayout->addWidget(tVFont->preview(),i,1);
1194 topLayout->addWidget(tVFont->button(),i,2); 1197 topLayout->addWidget(tVFont->button(),i,2);
1195 ++i; 1198 ++i;
1196 1199
1197 1200
1198 1201
1199 1202
1200 topLayout->setColStretch(1,1); 1203 topLayout->setColStretch(1,1);
1201 topLayout->setRowStretch(4,1); 1204 topLayout->setRowStretch(4,1);
1202 1205
1203 1206
1204 1207
1205 1208
1206} 1209}
1207 1210
1208void KOPrefsDialog::setupColorsTab() 1211void KOPrefsDialog::setupColorsTab()
1209{ 1212{
1210 QFrame *topFrame = addPage(i18n("Colors"),0,0); 1213 QFrame *topFrame = addPage(i18n("Colors"),0,0);
1211 // DesktopIcon("colorize",KIcon::SizeMedium)); 1214 // DesktopIcon("colorize",KIcon::SizeMedium));
1212 1215
1213 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1216 QGridLayout *topLayout = new QGridLayout(topFrame,5,2);
1214 // topLayout->setSpacing(mSpacingHint); 1217 // topLayout->setSpacing(mSpacingHint);
1215 // topLayout->setMargin(mMarginHint); 1218 // topLayout->setMargin(mMarginHint);
1216 1219
1217 topLayout->setSpacing(2); 1220 topLayout->setSpacing(2);
1218 topLayout->setMargin(3); 1221 topLayout->setMargin(3);
1219 1222
1220 int ii = 1; 1223 int ii = 1;
1221 QGroupBox *categoryGroup ; 1224 QGroupBox *categoryGroup ;
1222 1225
1223 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"), 1226 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"),
1224 topFrame); 1227 topFrame);
1225 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1); 1228 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1);
1226 1229
1227 mCategoryCombo = new QComboBox(categoryGroup); 1230 mCategoryCombo = new QComboBox(categoryGroup);
1228 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1231 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1229 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor())); 1232 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor()));
1230 1233
1231 mCategoryButton = new KColorButton(categoryGroup); 1234 mCategoryButton = new KColorButton(categoryGroup);
1232 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor())); 1235 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor()));
1233 updateCategoryColor(); 1236 updateCategoryColor();
1234 1237
1235 1238
1236 // Holiday Color 1239 // Holiday Color
1237 1240
1238 KPrefsDialogWidColor *holidayColor = 1241 KPrefsDialogWidColor *holidayColor =
1239 addWidColor(i18n("Holiday color:"), 1242 addWidColor(i18n("Holiday color:"),
1240 &(KOPrefs::instance()->mHolidayColor),topFrame); 1243 &(KOPrefs::instance()->mHolidayColor),topFrame);
1241 topLayout->addWidget(holidayColor->label(),ii,0); 1244 topLayout->addWidget(holidayColor->label(),ii,0);
1242 topLayout->addWidget(holidayColor->button(),ii++,1); 1245 topLayout->addWidget(holidayColor->button(),ii++,1);
1243 1246
1244 // Highlight Color 1247 // Highlight Color
1245 KPrefsDialogWidColor *highlightColor = 1248 KPrefsDialogWidColor *highlightColor =
1246 addWidColor(i18n("Highlight color:"), 1249 addWidColor(i18n("Highlight color:"),
1247 &(KOPrefs::instance()->mHighlightColor),topFrame); 1250 &(KOPrefs::instance()->mHighlightColor),topFrame);
1248 topLayout->addWidget(highlightColor->label(),ii,0); 1251 topLayout->addWidget(highlightColor->label(),ii,0);
1249 topLayout->addWidget(highlightColor->button(),ii++,1); 1252 topLayout->addWidget(highlightColor->button(),ii++,1);
1250 1253
1251 // Event color 1254 // Event color
1252 KPrefsDialogWidColor *eventColor = 1255 KPrefsDialogWidColor *eventColor =
1253 addWidColor(i18n("Default event color:"), 1256 addWidColor(i18n("Default event color:"),
1254 &(KOPrefs::instance()->mEventColor),topFrame); 1257 &(KOPrefs::instance()->mEventColor),topFrame);
1255 topLayout->addWidget(eventColor->label(),ii,0); 1258 topLayout->addWidget(eventColor->label(),ii,0);
1256 topLayout->addWidget(eventColor->button(),ii++,1); 1259 topLayout->addWidget(eventColor->button(),ii++,1);
1257 eventColor = 1260 eventColor =
1258 addWidColor(i18n("Default todo done color:"), 1261 addWidColor(i18n("Default todo done color:"),
1259 &(KOPrefs::instance()->mTodoDoneColor),topFrame); 1262 &(KOPrefs::instance()->mTodoDoneColor),topFrame);
1260 topLayout->addWidget(eventColor->label(),ii,0); 1263 topLayout->addWidget(eventColor->label(),ii,0);
1261 topLayout->addWidget(eventColor->button(),ii++,1); 1264 topLayout->addWidget(eventColor->button(),ii++,1);
1262 1265
1263 1266
1264 // agenda view background color 1267 // agenda view background color
1265 KPrefsDialogWidColor *agendaBgColor = 1268 KPrefsDialogWidColor *agendaBgColor =
1266 addWidColor(i18n("Agenda view background color:"), 1269 addWidColor(i18n("Agenda view background color:"),
1267 &(KOPrefs::instance()->mAgendaBgColor),topFrame); 1270 &(KOPrefs::instance()->mAgendaBgColor),topFrame);
1268 topLayout->addWidget(agendaBgColor->label(),ii,0); 1271 topLayout->addWidget(agendaBgColor->label(),ii,0);
1269 topLayout->addWidget(agendaBgColor->button(),ii++,1); 1272 topLayout->addWidget(agendaBgColor->button(),ii++,1);
1270 1273
1271 // working hours color 1274 // working hours color
1272 KPrefsDialogWidColor *workingHoursColor = 1275 KPrefsDialogWidColor *workingHoursColor =
1273 addWidColor(i18n("Working hours color:"), 1276 addWidColor(i18n("Working hours color:"),
1274 &(KOPrefs::instance()->mWorkingHoursColor),topFrame); 1277 &(KOPrefs::instance()->mWorkingHoursColor),topFrame);
1275 topLayout->addWidget(workingHoursColor->label(),ii,0); 1278 topLayout->addWidget(workingHoursColor->label(),ii,0);
1276 topLayout->addWidget(workingHoursColor->button(),ii++,1); 1279 topLayout->addWidget(workingHoursColor->button(),ii++,1);
1277 1280
1278 KPrefsDialogWidBool *sb = 1281 KPrefsDialogWidBool *sb =
1279 addWidBool(i18n("Use colors for application:"), 1282 addWidBool(i18n("Use colors for application:"),
1280 &(KOPrefs::instance()->mUseAppColors),topFrame); 1283 &(KOPrefs::instance()->mUseAppColors),topFrame);
1281 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 ); 1284 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 );
1282 1285
1283 ii++; 1286 ii++;
1284 KPrefsDialogWidColor * workingHoursColor1 = 1287 KPrefsDialogWidColor * workingHoursColor1 =
1285 addWidColor(i18n("Buttons, menus, etc.:"), 1288 addWidColor(i18n("Buttons, menus, etc.:"),
1286 &(KOPrefs::instance()->mAppColor1),topFrame); 1289 &(KOPrefs::instance()->mAppColor1),topFrame);
1287 topLayout->addWidget(workingHoursColor1->label(),ii,0); 1290 topLayout->addWidget(workingHoursColor1->label(),ii,0);
1288 topLayout->addWidget(workingHoursColor1->button(),ii++,1); 1291 topLayout->addWidget(workingHoursColor1->button(),ii++,1);
1289 1292
1290 KPrefsDialogWidColor * workingHoursColor2 = 1293 KPrefsDialogWidColor * workingHoursColor2 =
1291 addWidColor(i18n("Frames, labels, etc.:"), 1294 addWidColor(i18n("Frames, labels, etc.:"),
1292 &(KOPrefs::instance()->mAppColor2),topFrame); 1295 &(KOPrefs::instance()->mAppColor2),topFrame);
1293 topLayout->addWidget(workingHoursColor2->label(),ii,0); 1296 topLayout->addWidget(workingHoursColor2->label(),ii,0);
1294 topLayout->addWidget(workingHoursColor2->button(),ii++,1); 1297 topLayout->addWidget(workingHoursColor2->button(),ii++,1);
1295 1298
1296 1299
1297 1300
1298} 1301}
1299 1302
1300void KOPrefsDialog::setCategoryColor() 1303void KOPrefsDialog::setCategoryColor()
1301{ 1304{
1302 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color())); 1305 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color()));
1303} 1306}
1304 1307
1305void KOPrefsDialog::updateCategoryColor() 1308void KOPrefsDialog::updateCategoryColor()
1306{ 1309{
1307 QString cat = mCategoryCombo->currentText(); 1310 QString cat = mCategoryCombo->currentText();
1308 QColor *color = mCategoryDict.find(cat); 1311 QColor *color = mCategoryDict.find(cat);
1309 if (!color) { 1312 if (!color) {
1310 color = KOPrefs::instance()->categoryColor(cat); 1313 color = KOPrefs::instance()->categoryColor(cat);
1311 } 1314 }
1312 if (color) { 1315 if (color) {
1313 mCategoryButton->setColor(*color); 1316 mCategoryButton->setColor(*color);
1314 } 1317 }
1315} 1318}
1316 1319
1317void KOPrefsDialog::setupPrinterTab() 1320void KOPrefsDialog::setupPrinterTab()
1318{ 1321{
1319 mPrinterTab = addPage(i18n("Printing"),0, 1322 mPrinterTab = addPage(i18n("Printing"),0,
1320 DesktopIcon("fileprint",KIcon::SizeMedium)); 1323 DesktopIcon("fileprint",KIcon::SizeMedium));
1321 1324
1322 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2); 1325 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2);
1323 topLayout->setSpacing(mSpacingHint); 1326 topLayout->setSpacing(mSpacingHint);
1324 topLayout->setMargin(mMarginHint); 1327 topLayout->setMargin(mMarginHint);
1325 1328
1326 topLayout->setRowStretch(4,1); 1329 topLayout->setRowStretch(4,1);
1327} 1330}
1328 1331
1329void KOPrefsDialog::setupGroupSchedulingTab() 1332void KOPrefsDialog::setupGroupSchedulingTab()
1330{ 1333{
1331#if 0 1334#if 0
1332 QFrame *topFrame = addPage(i18n("Group Scheduling"),0, 1335 QFrame *topFrame = addPage(i18n("Group Scheduling"),0,
1333 DesktopIcon("personal",KIcon::SizeMedium)); 1336 DesktopIcon("personal",KIcon::SizeMedium));
1334 1337
1335 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 1338 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
1336 topLayout->setSpacing(mSpacingHint); 1339 topLayout->setSpacing(mSpacingHint);
1337 topLayout->setMargin(mMarginHint); 1340 topLayout->setMargin(mMarginHint);
1338 1341
1339#if 0 1342#if 0
1340 KPrefsDialogWidRadios *schedulerGroup = 1343 KPrefsDialogWidRadios *schedulerGroup =
1341 addWidRadios(i18n("Scheduler Mail Client"),&(KOPrefs::instance()->mIMIPScheduler), 1344 addWidRadios(i18n("Scheduler Mail Client"),&(KOPrefs::instance()->mIMIPScheduler),
1342 topFrame); 1345 topFrame);
1343 schedulerGroup->addRadio("Dummy"); // Only for debugging 1346 schedulerGroup->addRadio("Dummy"); // Only for debugging
1344 schedulerGroup->addRadio(i18n("Mail client")); 1347 schedulerGroup->addRadio(i18n("Mail client"));
1345 1348
1346 topLayout->addMultiCellWidget(schedulerGroup->groupBox(),0,0,0,1); 1349 topLayout->addMultiCellWidget(schedulerGroup->groupBox(),0,0,0,1);
1347#endif 1350#endif
1348 1351
1349 KPrefsDialogWidRadios *sendGroup = 1352 KPrefsDialogWidRadios *sendGroup =
1350 addWidRadios(i18n("Scheduler Mails Should Be"),&(KOPrefs::instance()->mIMIPSend), 1353 addWidRadios(i18n("Scheduler Mails Should Be"),&(KOPrefs::instance()->mIMIPSend),
1351 topFrame); 1354 topFrame);
1352 sendGroup->addRadio(i18n("Send to outbox")); 1355 sendGroup->addRadio(i18n("Send to outbox"));
1353 sendGroup->addRadio(i18n("Send directly")); 1356 sendGroup->addRadio(i18n("Send directly"));
1354 1357
1355 topLayout->addMultiCellWidget(sendGroup->groupBox(),1,1,0,1); 1358 topLayout->addMultiCellWidget(sendGroup->groupBox(),1,1,0,1);
1356 1359
1357 topLayout->addMultiCellWidget(new QLabel(i18n("Additional email addresses:"),topFrame),2,2,0,1); 1360 topLayout->addMultiCellWidget(new QLabel(i18n("Additional email addresses:"),topFrame),2,2,0,1);
1358 mAMails = new QListView(topFrame); 1361 mAMails = new QListView(topFrame);
1359 mAMails->addColumn(i18n("Email"),300); 1362 mAMails->addColumn(i18n("Email"),300);
1360 topLayout->addMultiCellWidget(mAMails,3,3,0,1); 1363 topLayout->addMultiCellWidget(mAMails,3,3,0,1);
1361 1364
1362 topLayout->addWidget(new QLabel(i18n("Additional email address:"),topFrame),4,0); 1365 topLayout->addWidget(new QLabel(i18n("Additional email address:"),topFrame),4,0);
1363 aEmailsEdit = new QLineEdit(topFrame); 1366 aEmailsEdit = new QLineEdit(topFrame);
1364 aEmailsEdit->setEnabled(false); 1367 aEmailsEdit->setEnabled(false);
1365 topLayout->addWidget(aEmailsEdit,4,1); 1368 topLayout->addWidget(aEmailsEdit,4,1);
1366 1369
1367 QPushButton *add = new QPushButton(i18n("New"),topFrame,"new"); 1370 QPushButton *add = new QPushButton(i18n("New"),topFrame,"new");
1368 topLayout->addWidget(add,5,0); 1371 topLayout->addWidget(add,5,0);
1369 QPushButton *del = new QPushButton(i18n("Remove"),topFrame,"remove"); 1372 QPushButton *del = new QPushButton(i18n("Remove"),topFrame,"remove");
1370 topLayout->addWidget(del,5,1); 1373 topLayout->addWidget(del,5,1);
1371 1374
1372 //topLayout->setRowStretch(2,1); 1375 //topLayout->setRowStretch(2,1);
1373 connect(add, SIGNAL( clicked() ), this, SLOT(addItem()) ); 1376 connect(add, SIGNAL( clicked() ), this, SLOT(addItem()) );
1374 connect(del, SIGNAL( clicked() ), this, SLOT(removeItem()) ); 1377 connect(del, SIGNAL( clicked() ), this, SLOT(removeItem()) );
1375 connect(aEmailsEdit,SIGNAL( textChanged(const QString&) ), this,SLOT(updateItem())); 1378 connect(aEmailsEdit,SIGNAL( textChanged(const QString&) ), this,SLOT(updateItem()));
1376 connect(mAMails,SIGNAL(selectionChanged(QListViewItem *)),SLOT(updateInput())); 1379 connect(mAMails,SIGNAL(selectionChanged(QListViewItem *)),SLOT(updateInput()));
1377#endif 1380#endif
1378} 1381}
1379 1382
1380void KOPrefsDialog::setupGroupAutomationTab() 1383void KOPrefsDialog::setupGroupAutomationTab()
1381{ 1384{
1382 return; 1385 return;
1383 QFrame *topFrame = addPage(i18n("Group Automation"),0, 1386 QFrame *topFrame = addPage(i18n("Group Automation"),0,
1384 DesktopIcon("personal",KIcon::SizeMedium)); 1387 DesktopIcon("personal",KIcon::SizeMedium));
1385 1388
1386 QGridLayout *topLayout = new QGridLayout(topFrame,5,1); 1389 QGridLayout *topLayout = new QGridLayout(topFrame,5,1);
1387 topLayout->setSpacing(mSpacingHint); 1390 topLayout->setSpacing(mSpacingHint);
1388 topLayout->setMargin(mMarginHint); 1391 topLayout->setMargin(mMarginHint);
1389 1392
1390 KPrefsDialogWidRadios *autoRefreshGroup = 1393 KPrefsDialogWidRadios *autoRefreshGroup =
1391 addWidRadios(i18n("Auto Send Refresh"), 1394 addWidRadios(i18n("Auto Send Refresh"),
1392 &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame); 1395 &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame);
1393 autoRefreshGroup->addRadio(i18n("Never")); 1396 autoRefreshGroup->addRadio(i18n("Never"));
1394 autoRefreshGroup->addRadio(i18n("If attendee is in addressbook")); 1397 autoRefreshGroup->addRadio(i18n("If attendee is in addressbook"));
1395 //autoRefreshGroup->addRadio(i18n("selected emails")); 1398 //autoRefreshGroup->addRadio(i18n("selected emails"));
1396 topLayout->addMultiCellWidget(autoRefreshGroup->groupBox(),0,0,0,0); 1399 topLayout->addMultiCellWidget(autoRefreshGroup->groupBox(),0,0,0,0);
1397 1400
1398 KPrefsDialogWidRadios *autoInsertGroup = 1401 KPrefsDialogWidRadios *autoInsertGroup =
1399 addWidRadios(i18n("Auto Insert IMIP Replies"), 1402 addWidRadios(i18n("Auto Insert IMIP Replies"),
1400 &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame); 1403 &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame);
1401 autoInsertGroup->addRadio(i18n("Never")); 1404 autoInsertGroup->addRadio(i18n("Never"));
1402 autoInsertGroup->addRadio(i18n("If attendee is in addressbook")); 1405 autoInsertGroup->addRadio(i18n("If attendee is in addressbook"));
1403 //autoInsertGroup->addRadio(i18n("selected emails")); 1406 //autoInsertGroup->addRadio(i18n("selected emails"));
1404 topLayout->addMultiCellWidget(autoInsertGroup->groupBox(),1,1,0,0); 1407 topLayout->addMultiCellWidget(autoInsertGroup->groupBox(),1,1,0,0);
1405 1408
1406 KPrefsDialogWidRadios *autoRequestGroup = 1409 KPrefsDialogWidRadios *autoRequestGroup =
1407 addWidRadios(i18n("Auto Insert IMIP Requests"), 1410 addWidRadios(i18n("Auto Insert IMIP Requests"),
1408 &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame); 1411 &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame);
1409 autoRequestGroup->addRadio(i18n("Never")); 1412 autoRequestGroup->addRadio(i18n("Never"));
1410 autoRequestGroup->addRadio(i18n("If organizer is in addressbook")); 1413 autoRequestGroup->addRadio(i18n("If organizer is in addressbook"));
1411 //autoInsertGroup->addRadio(i18n("selected emails")); 1414 //autoInsertGroup->addRadio(i18n("selected emails"));
1412 topLayout->addMultiCellWidget(autoRequestGroup->groupBox(),2,2,0,0); 1415 topLayout->addMultiCellWidget(autoRequestGroup->groupBox(),2,2,0,0);
1413 1416
1414 KPrefsDialogWidRadios *autoFreeBusyGroup = 1417 KPrefsDialogWidRadios *autoFreeBusyGroup =
1415 addWidRadios(i18n("Auto Send FreeBusy Information"), 1418 addWidRadios(i18n("Auto Send FreeBusy Information"),
1416 &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame); 1419 &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame);
1417 autoFreeBusyGroup->addRadio(i18n("Never")); 1420 autoFreeBusyGroup->addRadio(i18n("Never"));
1418 autoFreeBusyGroup->addRadio(i18n("If requested from an email in addressbook")); 1421 autoFreeBusyGroup->addRadio(i18n("If requested from an email in addressbook"));
1419 //autoFreeBusyGroup->addRadio(i18n("selected emails")); 1422 //autoFreeBusyGroup->addRadio(i18n("selected emails"));
1420 topLayout->addMultiCellWidget(autoFreeBusyGroup->groupBox(),3,3,0,0); 1423 topLayout->addMultiCellWidget(autoFreeBusyGroup->groupBox(),3,3,0,0);
1421 1424
1422 KPrefsDialogWidRadios *autoFreeBusyReplyGroup = 1425 KPrefsDialogWidRadios *autoFreeBusyReplyGroup =
1423 addWidRadios(i18n("Auto Save FreeBusy Replies"), 1426 addWidRadios(i18n("Auto Save FreeBusy Replies"),
1424 &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame); 1427 &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame);
1425 autoFreeBusyReplyGroup->addRadio(i18n("Never")); 1428 autoFreeBusyReplyGroup->addRadio(i18n("Never"));
1426 autoFreeBusyReplyGroup->addRadio(i18n("If attendee is in addressbook")); 1429 autoFreeBusyReplyGroup->addRadio(i18n("If attendee is in addressbook"));
1427 //autoFreeBusyGroup->addRadio(i18n("selected emails")); 1430 //autoFreeBusyGroup->addRadio(i18n("selected emails"));
1428 topLayout->addMultiCellWidget(autoFreeBusyReplyGroup->groupBox(),4,4,0,0); 1431 topLayout->addMultiCellWidget(autoFreeBusyReplyGroup->groupBox(),4,4,0,0);
1429} 1432}
1430 1433
1431void KOPrefsDialog::showPrinterTab() 1434void KOPrefsDialog::showPrinterTab()
1432{ 1435{
1433 showPage(pageIndex(mPrinterTab)); 1436 showPage(pageIndex(mPrinterTab));
1434} 1437}
1435 1438
1436 1439
1437void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text, 1440void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text,
1438 const QStringList *tags) 1441 const QStringList *tags)
1439{ 1442{
1440 if (tags) { 1443 if (tags) {
1441 int i = tags->findIndex(text); 1444 int i = tags->findIndex(text);
1442 if (i > 0) combo->setCurrentItem(i); 1445 if (i > 0) combo->setCurrentItem(i);
1443 } else { 1446 } else {
1444 for(int i=0;i<combo->count();++i) { 1447 for(int i=0;i<combo->count();++i) {
1445 if (combo->text(i) == text) { 1448 if (combo->text(i) == text) {
1446 combo->setCurrentItem(i); 1449 combo->setCurrentItem(i);
1447 break; 1450 break;
1448 } 1451 }
1449 } 1452 }
1450 } 1453 }
1451} 1454}
1452 1455
1453void KOPrefsDialog::usrReadConfig() 1456void KOPrefsDialog::usrReadConfig()
1454{ 1457{
1455 kdelibcfg->readConfig(); 1458 kdelibcfg->readConfig();
1456 mNameEdit->setText(KOPrefs::instance()->fullName()); 1459 mNameEdit->setText(KOPrefs::instance()->fullName());
1457 mEmailEdit->setText(KOPrefs::instance()->email()); 1460 mEmailEdit->setText(KOPrefs::instance()->email());
1458 1461
1459 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval); 1462 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval);
1460 // QDate current ( 2001, 1,1); 1463 // QDate current ( 2001, 1,1);
1461 //mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1)); 1464 //mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1));
1462 //mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1)); 1465 //mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1));
1463 //setCombo(mTimeZoneCombo,i18n(KOPrefs::instance()->mTimeZoneId)); 1466 //setCombo(mTimeZoneCombo,i18n(KOPrefs::instance()->mTimeZoneId));
1464 //mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset); 1467 //mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset);
1465 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime); 1468 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime);
1466 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration); 1469 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration);
1467 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime); 1470 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime);
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index 3aa9b6c..2e5a943 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -1,826 +1,835 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 3
4 Copyright (c) 2001 4 Copyright (c) 2001
5 Cornelius Schumacher <schumacher@kde.org> 5 Cornelius Schumacher <schumacher@kde.org>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 20
21 As a special exception, permission is given to link this program 21 As a special exception, permission is given to link this program
22 with any edition of Qt, and distribute the resulting executable, 22 with any edition of Qt, and distribute the resulting executable,
23 without including the source code for Qt in the source distribution. 23 without including the source code for Qt in the source distribution.
24*/ 24*/
25 25
26#include <qwidgetstack.h> 26#include <qwidgetstack.h>
27 27
28#include <kconfig.h> 28#include <kconfig.h>
29#include <kglobal.h> 29#include <kglobal.h>
30#ifndef DESKTOP_VERSION 30#ifndef DESKTOP_VERSION
31#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
32#else 32#else
33#include <qapplication.h> 33#include <qapplication.h>
34#endif 34#endif
35#include <qdatetime.h> 35#include <qdatetime.h>
36#include "calendarview.h" 36#include "calendarview.h"
37#include "datenavigator.h" 37#include "datenavigator.h"
38#include "kotodoview.h" 38#include "kotodoview.h"
39#include "koagendaview.h" 39#include "koagendaview.h"
40#include "kodialogmanager.h" 40#include "kodialogmanager.h"
41#include "komonthview.h" 41#include "komonthview.h"
42#include "kolistview.h" 42#include "kolistview.h"
43#include "kowhatsnextview.h" 43#include "kowhatsnextview.h"
44#include "kojournalview.h" 44#include "kojournalview.h"
45#include "kotimespanview.h" 45#include "kotimespanview.h"
46#include "koprefs.h" 46#include "koprefs.h"
47#include "navigatorbar.h" 47#include "navigatorbar.h"
48#include "kdatenavigator.h" 48#include "kdatenavigator.h"
49 49
50#include "koviewmanager.h" 50#include "koviewmanager.h"
51//extern bool externFlagMonthviewBlockPainting; 51//extern bool externFlagMonthviewBlockPainting;
52 52
53//bool globalFlagBlockPainting = false; 53//bool globalFlagBlockPainting = false;
54int globalFlagBlockAgenda = 0; 54int globalFlagBlockAgenda = 0;
55int globalFlagBlockLabel = 0; 55int globalFlagBlockLabel = 0;
56int globalFlagBlockAgendaItemPaint = 1; 56int globalFlagBlockAgendaItemPaint = 1;
57int globalFlagBlockAgendaItemUpdate = 1; 57int globalFlagBlockAgendaItemUpdate = 1;
58 58
59 59
60KOViewManager::KOViewManager( CalendarView *mainView ) : 60KOViewManager::KOViewManager( CalendarView *mainView ) :
61 QObject(), mMainView( mainView ) 61 QObject(), mMainView( mainView )
62{ 62{
63 mCurrentView = 0; 63 mCurrentView = 0;
64 flagResetViewChangeDate = 0; 64 flagResetViewChangeDate = 0;
65 mWhatsNextView = 0; 65 mWhatsNextView = 0;
66 mTodoView = 0; 66 mTodoView = 0;
67 mAgendaView = 0; 67 mAgendaView = 0;
68 mMonthView = 0; 68 mMonthView = 0;
69 mListView = 0; 69 mListView = 0;
70 mJournalView = 0; 70 mJournalView = 0;
71 mTimeSpanView = 0; 71 mTimeSpanView = 0;
72 mCurrentAgendaView = 0 ; 72 mCurrentAgendaView = 0 ;
73 mFlagShowNextxDays = false; 73 mFlagShowNextxDays = false;
74} 74}
75 75
76KOViewManager::~KOViewManager() 76KOViewManager::~KOViewManager()
77{ 77{
78} 78}
79 79
80 80
81KOrg::BaseView *KOViewManager::currentView() 81KOrg::BaseView *KOViewManager::currentView()
82{ 82{
83 return mCurrentView; 83 return mCurrentView;
84} 84}
85 85
86void KOViewManager::readSettings(KConfig *config) 86void KOViewManager::readSettings(KConfig *config)
87{ 87{
88 config->setGroup("General"); 88 config->setGroup("General");
89 QString view = config->readEntry("Current View"); 89 QString view = config->readEntry("Current View");
90 if (view == "WhatsNext") showWhatsNextView(); 90 if (view == "WhatsNext") showWhatsNextView();
91 else if (view == "Month") { 91 else if (view == "Month") {
92 if ( !KOPrefs::instance()->mMonthViewWeek ) 92 if ( !KOPrefs::instance()->mMonthViewWeek )
93 showMonthView(); 93 showMonthView();
94 else 94 else
95 showMonthViewWeek(); 95 showMonthViewWeek();
96 } 96 }
97 else if (view == "List") showListView(); 97 else if (view == "List") showListView();
98 else if (view == "Journal") showJournalView(); 98 else if (view == "Journal") showJournalView();
99 else if (view == "TimeSpan") showTimeSpanView(); 99 else if (view == "TimeSpan") showTimeSpanView();
100 else if (view == "Todo") showTodoView(); 100 else if (view == "Todo") showTodoView();
101 else { 101 else {
102 config->setGroup( "Views" ); 102 config->setGroup( "Views" );
103 int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); 103 int dateCount = config->readNumEntry( "ShownDatesCount", 7 );
104 mCurrentAgendaView = dateCount; 104 mCurrentAgendaView = dateCount;
105 showAgendaView(); 105 showAgendaView();
106 mCurrentAgendaView = dateCount; 106 mCurrentAgendaView = dateCount;
107#ifdef DESKTOP_VERSION 107#ifdef DESKTOP_VERSION
108 QTimer::singleShot( 1000, mAgendaView, SLOT ( setInitStartHour() ) ); 108 QTimer::singleShot( 1000, mAgendaView, SLOT ( setInitStartHour() ) );
109#endif 109#endif
110 } 110 }
111} 111}
112 112
113void KOViewManager::showDateView( int view, QDate date) 113void KOViewManager::showDateView( int view, QDate date)
114{ 114{
115 static int lastMode = 0; 115 static int lastMode = 0;
116 static int lastCount = 0; 116 static int lastCount = 0;
117 static bool lastNDMode = false; 117 static bool lastNDMode = false;
118 static QDate lastDate; 118 static QDate lastDate;
119 //qDebug("date %d %s", view, date.toString().latin1()); 119 //qDebug("date %d %s", view, date.toString().latin1());
120 120
121 if (view != 9) 121 if (view != 9)
122 lastMode = 0; 122 lastMode = 0;
123 //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays ); 123 //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays );
124 bool savemFlagShowNextxDays = mFlagShowNextxDays; 124 bool savemFlagShowNextxDays = mFlagShowNextxDays;
125 mFlagShowNextxDays = false; 125 mFlagShowNextxDays = false;
126 if ( view == 3 ) { 126 if ( view == 3 ) {
127 //mCurrentAgendaView = 1 ; 127 //mCurrentAgendaView = 1 ;
128 lastDate = mMainView->dateNavigator()->selectedDates().first(); 128 lastDate = mMainView->dateNavigator()->selectedDates().first();
129 lastCount = mMainView->dateNavigator()->selectedDates().count(); 129 lastCount = mMainView->dateNavigator()->selectedDates().count();
130 lastNDMode = savemFlagShowNextxDays; 130 lastNDMode = savemFlagShowNextxDays;
131 mMainView->dateNavigator()->selectDate( date ); 131 mMainView->dateNavigator()->selectDate( date );
132 lastMode = 1; 132 lastMode = 1;
133 mCurrentAgendaView = 1 ; 133 mCurrentAgendaView = 1 ;
134 } else if (view == 4 ) { 134 } else if (view == 4 ) {
135 mCurrentAgendaView = 7 ; 135 mCurrentAgendaView = 7 ;
136 mMainView->dateNavigator()->selectDates( date, 7 ); 136 mMainView->dateNavigator()->selectDates( date, 7 );
137 } else if (view == 5 ) { 137 } else if (view == 5 ) {
138 mCurrentAgendaView = 14 ; 138 mCurrentAgendaView = 14 ;
139 mMainView->dateNavigator()->selectDates( date, 14); 139 mMainView->dateNavigator()->selectDates( date, 14);
140 } else if (view == 6 ) { 140 } else if (view == 6 ) {
141 resetDateSilent( date,1); 141 resetDateSilent( date,1);
142 showMonthView(); 142 showMonthView();
143 } else if (view == 7 ) { 143 } else if (view == 7 ) {
144 mMainView->dateNavigator()->selectDate( date ); 144 mMainView->dateNavigator()->selectDate( date );
145 showJournalView(); 145 showJournalView();
146 } else if (view == 8 ) { 146 } else if (view == 8 ) {
147 globalFlagBlockAgenda = 1; 147 globalFlagBlockAgenda = 1;
148 if ( mCurrentAgendaView != 3 ) 148 if ( mCurrentAgendaView != 3 )
149 mCurrentAgendaView = -1; 149 mCurrentAgendaView = -1;
150 showAgendaView(KOPrefs::instance()->mFullViewMonth); 150 showAgendaView(KOPrefs::instance()->mFullViewMonth);
151 globalFlagBlockAgenda = 2; 151 globalFlagBlockAgenda = 2;
152 mMainView->dateNavigator()->selectDates( date , 152 mMainView->dateNavigator()->selectDates( date ,
153 KOPrefs::instance()->mNextXDays ); 153 KOPrefs::instance()->mNextXDays );
154 mFlagShowNextxDays = true; 154 mFlagShowNextxDays = true;
155 mCurrentAgendaView = 3 ; 155 mCurrentAgendaView = 3 ;
156 } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode ) 156 } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode )
157 if ( lastMode ) { 157 if ( lastMode ) {
158 mCurrentAgendaView = lastCount ; 158 mCurrentAgendaView = lastCount ;
159 mMainView->dateNavigator()->selectDates( lastDate, lastCount); 159 mMainView->dateNavigator()->selectDates( lastDate, lastCount);
160 mFlagShowNextxDays = lastNDMode; 160 mFlagShowNextxDays = lastNDMode;
161 if ( mFlagShowNextxDays ) { 161 if ( mFlagShowNextxDays ) {
162 mCurrentAgendaView = 3 ; 162 mCurrentAgendaView = 3 ;
163 } 163 }
164 } else 164 } else
165 showWeekView(); 165 showWeekView();
166 } else if (view == 10) { 166 } else if (view == 10) {
167 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() ); 167 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() );
168 } 168 }
169} 169}
170 170
171 171
172 172
173void KOViewManager::writeSettings(KConfig *config) 173void KOViewManager::writeSettings(KConfig *config)
174{ 174{
175 config->setGroup("General"); 175 config->setGroup("General");
176 176
177 QString view; 177 QString view;
178 if (mCurrentView == mWhatsNextView) view = "WhatsNext"; 178 if (mCurrentView == mWhatsNextView) view = "WhatsNext";
179 else if (mCurrentView == mMonthView) view = "Month"; 179 else if (mCurrentView == mMonthView) view = "Month";
180 else if (mCurrentView == mListView) view = "List"; 180 else if (mCurrentView == mListView) view = "List";
181 else if (mCurrentView == mJournalView) view = "Journal"; 181 else if (mCurrentView == mJournalView) view = "Journal";
182 else if (mCurrentView == mTimeSpanView) view = "TimeSpan"; 182 else if (mCurrentView == mTimeSpanView) view = "TimeSpan";
183 else if (mCurrentView == mTodoView) view = "Todo"; 183 else if (mCurrentView == mTodoView) view = "Todo";
184 else view = "Agenda"; 184 else view = "Agenda";
185 185
186 config->writeEntry("Current View",view); 186 config->writeEntry("Current View",view);
187 187
188 if (mAgendaView) { 188 if (mAgendaView) {
189 mAgendaView->writeSettings(config); 189 mAgendaView->writeSettings(config);
190 } 190 }
191 if (mTimeSpanView) { 191 if (mTimeSpanView) {
192 mTimeSpanView->writeSettings(config); 192 mTimeSpanView->writeSettings(config);
193 } 193 }
194 if (mListView) { 194 if (mListView) {
195 mListView->writeSettings(config); 195 mListView->writeSettings(config);
196 } 196 }
197 if (mTodoView) { 197 if (mTodoView) {
198 mTodoView->saveLayout(config,"Todo View"); 198 mTodoView->saveLayout(config,"Todo View");
199 } 199 }
200} 200}
201void KOViewManager::showNextView() 201void KOViewManager::showNextView()
202{ 202{
203 static int selecteddatescount = 0; 203 static int selecteddatescount = 0;
204 static QDate selecteddate = QDate ( 2000, 1, 1 ); 204 static QDate selecteddate = QDate ( 2000, 1, 1 );
205 static QDate baseCycleDate = QDate ( 2000, 1, 1 ); 205 static QDate baseCycleDate = QDate ( 2000, 1, 1 );
206 int newCount = mMainView->dateNavigator()->selectedDates().count(); 206 int newCount = mMainView->dateNavigator()->selectedDates().count();
207 if ( selecteddatescount != newCount && flagResetViewChangeDate == 0 ) { 207 if ( selecteddatescount != newCount && flagResetViewChangeDate == 0 ) {
208 flagResetViewChangeDate = 1; 208 flagResetViewChangeDate = 1;
209 } 209 }
210 if ( selecteddate != mMainView->dateNavigator()->selectedDates().first() ) 210 if ( selecteddate != mMainView->dateNavigator()->selectedDates().first() )
211 flagResetViewChangeDate = 1; 211 flagResetViewChangeDate = 1;
212 if ( flagResetViewChangeDate > 0 ) { 212 if ( flagResetViewChangeDate > 0 ) {
213 baseCycleDate = mMainView->dateNavigator()->selectedDates().first(); 213 baseCycleDate = mMainView->dateNavigator()->selectedDates().first();
214 //qDebug("newCycle "); 214 //qDebug("newCycle ");
215 } 215 }
216 if (mCurrentView == mWhatsNextView) goto NEXT_X; 216 if (mCurrentView == mWhatsNextView) goto NEXT_X;
217 if (mCurrentView == mAgendaView && mFlagShowNextxDays) goto JOURNAL; 217 if (mCurrentView == mAgendaView && mFlagShowNextxDays) goto JOURNAL;
218 if (mCurrentView == mJournalView ) goto DAY_1; 218 if (mCurrentView == mJournalView ) goto DAY_1;
219 if (mCurrentView == mAgendaView && mCurrentAgendaView == 1 ) goto DAY_5; 219 if (mCurrentView == mAgendaView && mCurrentAgendaView == 1 ) goto DAY_5;
220 if (mCurrentView == mAgendaView && mCurrentAgendaView == 5 ) goto DAY_7; 220 if (mCurrentView == mAgendaView && mCurrentAgendaView == 5 ) goto DAY_7;
221 if (mCurrentView == mAgendaView ) goto DAY_6; 221 if (mCurrentView == mAgendaView ) goto DAY_6;
222 if (mCurrentView == mMonthView && KOPrefs::instance()->mMonthViewWeek) goto MONTH; 222 if (mCurrentView == mMonthView && KOPrefs::instance()->mMonthViewWeek) goto MONTH;
223 if (mCurrentView == mMonthView ) goto LIST; 223 if (mCurrentView == mMonthView ) goto LIST;
224 if (mCurrentView == mListView ) goto TODO; 224 if (mCurrentView == mListView ) goto TODO;
225 // if (mCurrentView == mTodoView ) goto NEXT; 225 // if (mCurrentView == mTodoView ) goto NEXT;
226 NEXT: 226 NEXT:
227 if ( KOPrefs::instance()->mShowIconNext ) { showWhatsNextView();goto ENTE ;} 227 if ( KOPrefs::instance()->mShowIconNext ) { showWhatsNextView();goto ENTE ;}
228 NEXT_X: 228 NEXT_X:
229 if ( KOPrefs::instance()->mShowIconNextDays ) { 229 if ( KOPrefs::instance()->mShowIconNextDays ) {
230 showNextXView(); 230 showNextXView();
231 goto ENTE ; 231 goto ENTE ;
232 } 232 }
233 JOURNAL: 233 JOURNAL:
234 if ( KOPrefs::instance()->mShowIconJournal ) { 234 if ( KOPrefs::instance()->mShowIconJournal ) {
235 resetDateSilent( baseCycleDate , 1 ); 235 resetDateSilent( baseCycleDate , 1 );
236 showJournalView() ;goto ENTE ;} 236 showJournalView() ;goto ENTE ;}
237 DAY_1: 237 DAY_1:
238 if ( KOPrefs::instance()->mShowIconDay1 ) { 238 if ( KOPrefs::instance()->mShowIconDay1 ) {
239 resetDateSilent( baseCycleDate , 2 ); 239 resetDateSilent( baseCycleDate , 2 );
240 showDayView() ;goto ENTE ;} 240 showDayView() ;goto ENTE ;}
241 DAY_5: 241 DAY_5:
242 if ( KOPrefs::instance()->mShowIconDay5 ) { 242 if ( KOPrefs::instance()->mShowIconDay5 ) {
243 resetDateSilent( baseCycleDate , 2 ); 243 resetDateSilent( baseCycleDate , 2 );
244 showWorkWeekView() ;goto ENTE ;} 244 showWorkWeekView() ;goto ENTE ;}
245 DAY_7: 245 DAY_7:
246 if ( KOPrefs::instance()->mShowIconDay7 ) { 246 if ( KOPrefs::instance()->mShowIconDay7 ) {
247 resetDateSilent( baseCycleDate , 2 ); 247 resetDateSilent( baseCycleDate , 2 );
248 showWeekView();goto ENTE ;} 248 showWeekView();goto ENTE ;}
249 DAY_6: 249 DAY_6:
250 if ( KOPrefs::instance()->mShowIconDay6 ) { 250 if ( KOPrefs::instance()->mShowIconDay6 ) {
251 resetDateSilent( baseCycleDate , 2 ); 251 resetDateSilent( baseCycleDate , 2 );
252 showMonthViewWeek();goto ENTE ;} 252 showMonthViewWeek();goto ENTE ;}
253 MONTH: 253 MONTH:
254 if ( KOPrefs::instance()->mShowIconMonth ) { 254 if ( KOPrefs::instance()->mShowIconMonth ) {
255 resetDateSilent( baseCycleDate , 2 ); 255 resetDateSilent( baseCycleDate , 2 );
256 showMonthView();goto ENTE ;} 256 showMonthView();goto ENTE ;}
257 LIST: 257 LIST:
258 if ( KOPrefs::instance()->mShowIconList ) { 258 if ( KOPrefs::instance()->mShowIconList ) {
259 resetDateSilent( baseCycleDate , 2 ); 259 resetDateSilent( baseCycleDate , 2 );
260 showListView() ;goto ENTE ;} 260 showListView() ;goto ENTE ;}
261 TODO: 261 TODO:
262 if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;} 262 if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;}
263 if ( KOPrefs::instance()->mShowIconNext ) { goto NEXT ;} 263 if ( KOPrefs::instance()->mShowIconNext ) { goto NEXT ;}
264 if ( KOPrefs::instance()->mShowIconNextDays ) { goto NEXT_X ;} 264 if ( KOPrefs::instance()->mShowIconNextDays ) { goto NEXT_X ;}
265 if ( KOPrefs::instance()->mShowIconJournal ) { goto JOURNAL;} 265 if ( KOPrefs::instance()->mShowIconJournal ) { goto JOURNAL;}
266 if ( KOPrefs::instance()->mShowIconDay1 ) { goto DAY_1 ;} 266 if ( KOPrefs::instance()->mShowIconDay1 ) { goto DAY_1 ;}
267 if ( KOPrefs::instance()->mShowIconDay5 ) { goto DAY_5 ;} 267 if ( KOPrefs::instance()->mShowIconDay5 ) { goto DAY_5 ;}
268 if ( KOPrefs::instance()->mShowIconDay7 ) { goto DAY_7 ;} 268 if ( KOPrefs::instance()->mShowIconDay7 ) { goto DAY_7 ;}
269 if ( KOPrefs::instance()->mShowIconDay6 ) { goto DAY_6 ;} 269 if ( KOPrefs::instance()->mShowIconDay6 ) { goto DAY_6 ;}
270 if ( KOPrefs::instance()->mShowIconMonth ) {goto MONTH ;} 270 if ( KOPrefs::instance()->mShowIconMonth ) {goto MONTH ;}
271 if ( KOPrefs::instance()->mShowIconList ) { goto LIST ;} 271 if ( KOPrefs::instance()->mShowIconList ) { goto LIST ;}
272 //if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;} 272 //if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;}
273 ENTE: 273 ENTE:
274 flagResetViewChangeDate = 0; 274 flagResetViewChangeDate = 0;
275 selecteddatescount = mMainView->dateNavigator()->selectedDates().count(); 275 selecteddatescount = mMainView->dateNavigator()->selectedDates().count();
276 selecteddate = mMainView->dateNavigator()->selectedDates().first(); 276 selecteddate = mMainView->dateNavigator()->selectedDates().first();
277 277
278} 278}
279void KOViewManager::resetDateSilent( QDate date , int days ) 279void KOViewManager::resetDateSilent( QDate date , int days )
280{ 280{
281 mMainView->dateNavigator()->blockSignals( true ); 281 mMainView->dateNavigator()->blockSignals( true );
282 mMainView->dateNavigator()->selectDates( date , days ); 282 mMainView->dateNavigator()->selectDates( date , days );
283 mMainView->dateNavigator()->blockSignals( false ); 283 mMainView->dateNavigator()->blockSignals( false );
284} 284}
285void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen ) 285void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen )
286{ 286{
287 if ( flagResetViewChangeDate < 10 ) 287 if ( flagResetViewChangeDate < 10 )
288 ++flagResetViewChangeDate; 288 ++flagResetViewChangeDate;
289 //mFlagShowNextxDays = false; 289 //mFlagShowNextxDays = false;
290 //if(view == mCurrentView) return; 290 //if(view == mCurrentView) return;
291 if ( view == 0 ) { 291 if ( view == 0 ) {
292 view = mCurrentView; 292 view = mCurrentView;
293 if ( view == 0 ) 293 if ( view == 0 )
294 return; 294 return;
295 } 295 }
296 bool callupdate = !(view == mCurrentView); 296 bool callupdate = !(view == mCurrentView);
297 bool full = fullScreen; 297 bool full = fullScreen;
298 if(view == mCurrentView && view != mWhatsNextView ) { 298 if(view == mCurrentView && view != mWhatsNextView ) {
299 if ( mCurrentAgendaView < 0 ) 299 if ( mCurrentAgendaView < 0 )
300 return; 300 return;
301 if ( view != mMonthView ) 301 if ( view != mMonthView )
302 full = mMainView->leftFrame()->isVisible(); 302 full = mMainView->leftFrame()->isVisible();
303 } else { 303 } else {
304 if ( view == mMonthView && mMonthView) 304 if ( view == mMonthView && mMonthView)
305 ;//mMonthView->skipResize = true ; 305 ;//mMonthView->skipResize = true ;
306 mCurrentView = view; 306 mCurrentView = view;
307 // bool full = fullScreen; 307 // bool full = fullScreen;
308 bool isFull = !mMainView->leftFrame()->isVisible(); 308 bool isFull = !mMainView->leftFrame()->isVisible();
309 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen ) 309 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen )
310 full = true; 310 full = true;
311 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen ) 311 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen )
312 full = false; 312 full = false;
313 } 313 }
314 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime(); 314 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime();
315 //raiseCurrentView( full ); 315 //raiseCurrentView( full );
316 mMainView->processIncidenceSelection( 0 ); 316 mMainView->processIncidenceSelection( 0 );
317 //mMainView->updateView(); 317 //mMainView->updateView();
318 raiseCurrentView( full, callupdate ); 318 raiseCurrentView( full, callupdate );
319 mMainView->adaptNavigationUnits(); 319 mMainView->adaptNavigationUnits();
320 mMainView->updateUnmanagedViews();
320} 321}
321 322
322void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView ) 323void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView )
323{ 324{
324 mCurrentAgendaView = 0; 325 mCurrentAgendaView = 0;
325 if ( fullScreen ) { 326 if ( fullScreen ) {
326 mMainView->leftFrame()->hide(); 327 mMainView->leftFrame()->hide();
327 } else { 328 } else {
328 mMainView->leftFrame()->show(); 329 mMainView->leftFrame()->show();
329 } 330 }
330 //if ( mCurrentView == mMonthView ) qApp->processEvents(); 331 //if ( mCurrentView == mMonthView ) qApp->processEvents();
331 emit signalFullScreen( !fullScreen ); 332 emit signalFullScreen( !fullScreen );
332 if ( callUpdateView ) 333 if ( callUpdateView )
333 mMainView->updateView(); 334 mMainView->updateView();
334 335
335 if ( globalFlagBlockAgenda == 5 ) { 336 if ( globalFlagBlockAgenda == 5 ) {
336 globalFlagBlockAgenda = 4; 337 globalFlagBlockAgenda = 4;
337 globalFlagBlockAgendaItemPaint = 1; 338 globalFlagBlockAgendaItemPaint = 1;
338 } 339 }
339 mMainView->viewStack()->raiseWidget(mCurrentView); 340 mMainView->viewStack()->raiseWidget(mCurrentView);
340 if ( globalFlagBlockAgenda == 4 ) { 341 if ( globalFlagBlockAgenda == 4 ) {
341 if ( mCurrentView == mAgendaView ) { 342 if ( mCurrentView == mAgendaView ) {
342 //globalFlagBlockAgenda =1 ; 343 //globalFlagBlockAgenda =1 ;
343 if ( KOPrefs::instance()->mSetTimeToDayStartAt ) 344 if ( KOPrefs::instance()->mSetTimeToDayStartAt )
344 mAgendaView->setStartHour( KOPrefs::instance()->mDayBegins ); 345 mAgendaView->setStartHour( KOPrefs::instance()->mDayBegins );
345 else if ( KOPrefs::instance()->mCenterOnCurrentTime ) 346 else if ( KOPrefs::instance()->mCenterOnCurrentTime )
346 mAgendaView->setStartHour( QTime::currentTime ().hour() ); 347 mAgendaView->setStartHour( QTime::currentTime ().hour() );
347 qApp->processEvents(); 348 qApp->processEvents();
348 //qDebug("qApp->processEvents() "); 349 //qDebug("qApp->processEvents() ");
349 globalFlagBlockAgenda = 0; 350 globalFlagBlockAgenda = 0;
350 mAgendaView->repaintAgenda(); 351 mAgendaView->repaintAgenda();
351 352
352 } 353 }
353 globalFlagBlockAgenda = 0; 354 globalFlagBlockAgenda = 0;
354 } 355 }
355 emit signalAgendaView( mCurrentView == mAgendaView ); 356 emit signalAgendaView( mCurrentView == mAgendaView );
356 //qDebug("raiseCurrentView ende "); 357 //qDebug("raiseCurrentView ende ");
357 358
358} 359}
359 360
360void KOViewManager::updateView() 361void KOViewManager::updateView()
361{ 362{
362 // qDebug("KOViewManager::updateView() "); 363 // qDebug("KOViewManager::updateView() ");
363 // if we are updating mTodoView, we get endless recursion 364 // if we are updating mTodoView, we get endless recursion
364 if ( mTodoView == mCurrentView ) 365 if ( mTodoView == mCurrentView )
365 return; 366 return;
366 if ( mCurrentView ) mCurrentView->updateView(); 367 if ( mCurrentView ) mCurrentView->updateView();
367 368
368} 369}
369 370
370void KOViewManager::updateView(const QDate &start, const QDate &end) 371void KOViewManager::updateView(const QDate &start, const QDate &end)
371{ 372{
372 // kdDebug() << "KOViewManager::updateView()" << endl; 373 // kdDebug() << "KOViewManager::updateView()" << endl;
373 374
374 if (mCurrentView) mCurrentView->showDates(start, end); 375 if (mCurrentView) mCurrentView->showDates(start, end);
375 376
376 if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView(); 377 if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView();
377} 378}
378 379
379 380
380void KOViewManager::updateWNview() 381void KOViewManager::updateWNview()
381{ 382{
382 if ( mCurrentView == mWhatsNextView && mWhatsNextView ) 383 if ( mCurrentView == mWhatsNextView && mWhatsNextView )
383 mWhatsNextView->updateView(); 384 mWhatsNextView->updateView();
384 if ( mCurrentView == mMonthView && mMonthView ) 385 if ( mCurrentView == mMonthView && mMonthView )
385 mMonthView->updateView(); 386 mMonthView->updateView();
386 387
387} 388}
388void KOViewManager::showWhatsNextView() 389void KOViewManager::showWhatsNextView()
389{ 390{
390 if (!mWhatsNextView) { 391 if (!mWhatsNextView) {
391 mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(), 392 mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(),
392 "KOViewManager::WhatsNextView"); 393 "KOViewManager::WhatsNextView");
393 mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog()); 394 mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog());
394 connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig())); 395 connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig()));
395 addView(mWhatsNextView); 396 addView(mWhatsNextView);
396 connect(this, SIGNAL( printWNV() ), 397 connect(this, SIGNAL( printWNV() ),
397 mWhatsNextView, SLOT( printMe() ) ); 398 mWhatsNextView, SLOT( printMe() ) );
398 } 399 }
399 globalFlagBlockAgenda = 1; 400 globalFlagBlockAgenda = 1;
401 KOPrefs::instance()->mCurrentDisplayedView = VIEW_WN_VIEW;
400 showView(mWhatsNextView, true ); 402 showView(mWhatsNextView, true );
401 //mWhatsNextView->updateView(); 403 //mWhatsNextView->updateView();
402 KOPrefs::instance()->mCurrentDisplayedView = VIEW_WN_VIEW; 404 KOPrefs::instance()->mCurrentDisplayedView = VIEW_WN_VIEW;
403} 405}
404 406
405void KOViewManager::slotprintWNV() 407void KOViewManager::slotprintWNV()
406{ 408{
407 if (!mWhatsNextView) 409 if (!mWhatsNextView)
408 showWhatsNextView(); 410 showWhatsNextView();
409 emit printWNV(); 411 emit printWNV();
410 412
411} 413}
412void KOViewManager::showListView() 414void KOViewManager::showListView()
413{ 415{
414 if (!mListView) { 416 if (!mListView) {
415 mListView = new KOListView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::ListView"); 417 mListView = new KOListView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::ListView");
416 addView(mListView); 418 addView(mListView);
417 419
418 connect(mListView, SIGNAL(showIncidenceSignal(Incidence *)), 420 connect(mListView, SIGNAL(showIncidenceSignal(Incidence *)),
419 mMainView, SLOT(showIncidence(Incidence *))); 421 mMainView, SLOT(showIncidence(Incidence *)));
420 connect(mListView, SIGNAL(editIncidenceSignal(Incidence *)), 422 connect(mListView, SIGNAL(editIncidenceSignal(Incidence *)),
421 mMainView, SLOT(editIncidence(Incidence *))); 423 mMainView, SLOT(editIncidence(Incidence *)));
422 connect(mListView, SIGNAL(deleteIncidenceSignal(Incidence *)), 424 connect(mListView, SIGNAL(deleteIncidenceSignal(Incidence *)),
423 mMainView, SLOT(deleteIncidence(Incidence *))); 425 mMainView, SLOT(deleteIncidence(Incidence *)));
424 connect( mListView, SIGNAL( incidenceSelected( Incidence * ) ), 426 connect( mListView, SIGNAL( incidenceSelected( Incidence * ) ),
425 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 427 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
426 connect( mListView, SIGNAL( signalNewEvent() ), 428 connect( mListView, SIGNAL( signalNewEvent() ),
427 mMainView, SLOT( newEvent() ) ); 429 mMainView, SLOT( newEvent() ) );
428 connect(mMainView, SIGNAL(configChanged()), mListView, SLOT(updateConfig())); 430 connect(mMainView, SIGNAL(configChanged()), mListView, SLOT(updateConfig()));
429 connect( mListView, SIGNAL( cloneIncidenceSignal( Incidence * ) ), 431 connect( mListView, SIGNAL( cloneIncidenceSignal( Incidence * ) ),
430 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 432 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
431 connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ), 433 connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
432 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 434 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
433 connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 435 connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
434 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 436 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
435 connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 437 connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
436 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 438 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
437 } 439 }
438 // bool temp = mFlagShowNextxDays; 440 // bool temp = mFlagShowNextxDays;
439 //globalFlagBlockPainting = true; 441 //globalFlagBlockPainting = true;
440 globalFlagBlockAgenda = 1; 442 globalFlagBlockAgenda = 1;
441 if ( KOPrefs::instance()->mListViewMonthTimespan ) { 443 if ( KOPrefs::instance()->mListViewMonthTimespan ) {
442 mMainView->setBlockShowDates( true ); 444 mMainView->setBlockShowDates( true );
443 mMainView->dateNavigator()->selectMonth(); 445 mMainView->dateNavigator()->selectMonth();
444 mMainView->setBlockShowDates( false ); 446 mMainView->setBlockShowDates( false );
445 } 447 }
448 KOPrefs::instance()->mCurrentDisplayedView = VIEW_L_VIEW;
446 showView(mListView, KOPrefs::instance()->mFullViewTodo); 449 showView(mListView, KOPrefs::instance()->mFullViewTodo);
447 //mFlagShowNextxDays = temp; 450 //mFlagShowNextxDays = temp;
448 KOPrefs::instance()->mCurrentDisplayedView = VIEW_L_VIEW; 451 KOPrefs::instance()->mCurrentDisplayedView = VIEW_L_VIEW;
449} 452}
450 453
451void KOViewManager::showAgendaView( bool fullScreen ) 454void KOViewManager::showAgendaView( bool fullScreen )
452{ 455{
453 456
454 mMainView->dialogManager()->hideSearchDialog(); 457 mMainView->dialogManager()->hideSearchDialog();
455 // qDebug("KOViewManager::showAgendaView "); 458 // qDebug("KOViewManager::showAgendaView ");
456 bool full; 459 bool full;
457 full = fullScreen; 460 full = fullScreen;
458 if (!mAgendaView) { 461 if (!mAgendaView) {
459 full = false; 462 full = false;
460 mAgendaView = new KOAgendaView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::AgendaView"); 463 mAgendaView = new KOAgendaView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::AgendaView");
461 addView(mAgendaView); 464 addView(mAgendaView);
462#ifndef DESKTOP_VERSION 465#ifndef DESKTOP_VERSION
463 QPEApplication::setStylusOperation( mAgendaView, QPEApplication::RightOnHold ); 466 QPEApplication::setStylusOperation( mAgendaView, QPEApplication::RightOnHold );
464#endif 467#endif
465 connect( mAgendaView, SIGNAL( incidenceChanged(Incidence *, int )), 468 connect( mAgendaView, SIGNAL( incidenceChanged(Incidence *, int )),
466 mMainView, SLOT( changeIncidenceDisplay( Incidence *, int ) )); 469 mMainView, SLOT( changeIncidenceDisplay( Incidence *, int ) ));
467 470
468 // SIGNALS/SLOTS FOR DAY/WEEK VIEW 471 // SIGNALS/SLOTS FOR DAY/WEEK VIEW
469 472
470 connect(mAgendaView,SIGNAL(showDateView( int, QDate )),SLOT(showDateView( int, QDate ))); 473 connect(mAgendaView,SIGNAL(showDateView( int, QDate )),SLOT(showDateView( int, QDate )));
471 474
472 connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)), 475 connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)),
473 mMainView, SLOT(newTodoDateTime(QDateTime,bool))); 476 mMainView, SLOT(newTodoDateTime(QDateTime,bool)));
474 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)), 477 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)),
475 mMainView, SLOT(newEvent(QDateTime))); 478 mMainView, SLOT(newEvent(QDateTime)));
476 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)), 479 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)),
477 mMainView, SLOT(newEvent(QDateTime,QDateTime))); 480 mMainView, SLOT(newEvent(QDateTime,QDateTime)));
478 connect(mAgendaView,SIGNAL(newEventSignal(QDate)), 481 connect(mAgendaView,SIGNAL(newEventSignal(QDate)),
479 mMainView, SLOT(newEvent(QDate))); 482 mMainView, SLOT(newEvent(QDate)));
480 483
481 connect(mAgendaView, SIGNAL(editIncidenceSignal(Incidence *)), 484 connect(mAgendaView, SIGNAL(editIncidenceSignal(Incidence *)),
482 mMainView, SLOT(editIncidence(Incidence *))); 485 mMainView, SLOT(editIncidence(Incidence *)));
483 connect(mAgendaView, SIGNAL(showIncidenceSignal(Incidence *)), 486 connect(mAgendaView, SIGNAL(showIncidenceSignal(Incidence *)),
484 mMainView, SLOT(showIncidence(Incidence *))); 487 mMainView, SLOT(showIncidence(Incidence *)));
485 connect(mAgendaView, SIGNAL(deleteIncidenceSignal(Incidence *)), 488 connect(mAgendaView, SIGNAL(deleteIncidenceSignal(Incidence *)),
486 mMainView, SLOT(deleteIncidence(Incidence *))); 489 mMainView, SLOT(deleteIncidence(Incidence *)));
487 490
488 connect( mAgendaView, SIGNAL( incidenceSelected( Incidence * ) ), 491 connect( mAgendaView, SIGNAL( incidenceSelected( Incidence * ) ),
489 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 492 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
490 493
491 connect(mAgendaView, SIGNAL( toggleExpand() ), 494 connect(mAgendaView, SIGNAL( toggleExpand() ),
492 mMainView, SLOT( toggleExpand() ) ); 495 mMainView, SLOT( toggleExpand() ) );
493 496
494 connect( mAgendaView, SIGNAL( cloneIncidenceSignal(Incidence *) ), 497 connect( mAgendaView, SIGNAL( cloneIncidenceSignal(Incidence *) ),
495 mMainView, SLOT(cloneIncidence(Incidence *) ) ) ; 498 mMainView, SLOT(cloneIncidence(Incidence *) ) ) ;
496 connect( mAgendaView, SIGNAL( cancelIncidenceSignal(Incidence *) ), 499 connect( mAgendaView, SIGNAL( cancelIncidenceSignal(Incidence *) ),
497 mMainView, SLOT(cancelIncidence(Incidence *) ) ) ; 500 mMainView, SLOT(cancelIncidence(Incidence *) ) ) ;
498 connect(mMainView, SIGNAL(configChanged()), mAgendaView, SLOT(updateConfig())); 501 connect(mMainView, SIGNAL(configChanged()), mAgendaView, SLOT(updateConfig()));
499 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mAgendaView, 502 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mAgendaView,
500 SLOT( updateTodo( Todo *, int ) ) ); 503 SLOT( updateTodo( Todo *, int ) ) );
501 connect( mAgendaView,SIGNAL( todoMoved( Todo *, int )), 504 connect( mAgendaView,SIGNAL( todoMoved( Todo *, int )),
502 mMainView, SIGNAL( todoModified( Todo *, int ))); 505 mMainView, SIGNAL( todoModified( Todo *, int )));
503 connect( mAgendaView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 506 connect( mAgendaView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
504 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 507 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
505 connect( mAgendaView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 508 connect( mAgendaView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
506 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 509 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
507 connect( mAgendaView, SIGNAL( selectWeekNum( int ) ), 510 connect( mAgendaView, SIGNAL( selectWeekNum( int ) ),
508 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) ); 511 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) );
509 mAgendaView->readSettings(); 512 mAgendaView->readSettings();
510 mAgendaView->updateConfig(); 513 mAgendaView->updateConfig();
511 } 514 }
512 515
516 KOPrefs::instance()->mCurrentDisplayedView = VIEW_A_VIEW;
513 showView( mAgendaView, full); 517 showView( mAgendaView, full);
514 KOPrefs::instance()->mCurrentDisplayedView = VIEW_A_VIEW; 518 KOPrefs::instance()->mCurrentDisplayedView = VIEW_A_VIEW;
515} 519}
516 520
517void KOViewManager::showDayView() 521void KOViewManager::showDayView()
518{ 522{
519 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count(); 523 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count();
520 mFlagShowNextxDays = false; 524 mFlagShowNextxDays = false;
521 globalFlagBlockLabel = 1; 525 globalFlagBlockLabel = 1;
522 globalFlagBlockAgenda = 1; 526 globalFlagBlockAgenda = 1;
523 if ( mCurrentAgendaView != 1 ) 527 if ( mCurrentAgendaView != 1 )
524 mCurrentAgendaView = -1; 528 mCurrentAgendaView = -1;
525 showAgendaView(); 529 showAgendaView();
526 qApp->processEvents(); 530 qApp->processEvents();
527 globalFlagBlockAgenda = 2; 531 globalFlagBlockAgenda = 2;
528 globalFlagBlockLabel = 0; 532 globalFlagBlockLabel = 0;
529 mMainView->dateNavigator()->selectDates( 1 ); 533 mMainView->dateNavigator()->selectDates( 1 );
530 mCurrentAgendaView = 1 ; 534 mCurrentAgendaView = 1 ;
531 535
532} 536}
533 537
534void KOViewManager::showWorkWeekView() 538void KOViewManager::showWorkWeekView()
535{ 539{
536 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count(); 540 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count();
537 mFlagShowNextxDays = false; 541 mFlagShowNextxDays = false;
538 globalFlagBlockAgenda = 1; 542 globalFlagBlockAgenda = 1;
539 globalFlagBlockLabel = 1; 543 globalFlagBlockLabel = 1;
540 if ( mCurrentAgendaView != 5 ) 544 if ( mCurrentAgendaView != 5 )
541 mCurrentAgendaView = -1; 545 mCurrentAgendaView = -1;
542 showAgendaView(); 546 showAgendaView();
543 qApp->processEvents(); 547 qApp->processEvents();
544 globalFlagBlockAgenda = 2; 548 globalFlagBlockAgenda = 2;
545 globalFlagBlockLabel = 0; 549 globalFlagBlockLabel = 0;
546 mMainView->dateNavigator()->selectWorkWeek(); 550 mMainView->dateNavigator()->selectWorkWeek();
547 mCurrentAgendaView = 5 ; 551 mCurrentAgendaView = 5 ;
548 552
549} 553}
550 554
551void KOViewManager::showWeekView() 555void KOViewManager::showWeekView()
552{ 556{
553 557
554 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count(); 558 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count();
555 mFlagShowNextxDays = false; 559 mFlagShowNextxDays = false;
556 globalFlagBlockAgenda = 1; 560 globalFlagBlockAgenda = 1;
557 globalFlagBlockLabel = 1; 561 globalFlagBlockLabel = 1;
558 if ( mCurrentAgendaView != 7 ) 562 if ( mCurrentAgendaView != 7 )
559 mCurrentAgendaView = -1; 563 mCurrentAgendaView = -1;
560 showAgendaView(); 564 showAgendaView();
561 qApp->processEvents(); 565 qApp->processEvents();
562 globalFlagBlockAgenda = 2; 566 globalFlagBlockAgenda = 2;
563 globalFlagBlockLabel = 0; 567 globalFlagBlockLabel = 0;
564 mMainView->dateNavigator()->selectWeek(); 568 mMainView->dateNavigator()->selectWeek();
565 mCurrentAgendaView = 7 ; 569 mCurrentAgendaView = 7 ;
566} 570}
567 571
568void KOViewManager::showNextXView() 572void KOViewManager::showNextXView()
569{ 573{
570 574
575 KOPrefs::instance()->mCurrentDisplayedView = VIEW_NX_VIEW;
571 globalFlagBlockAgenda = 1; 576 globalFlagBlockAgenda = 1;
572 if ( mCurrentAgendaView != 3 ) 577 if ( mCurrentAgendaView != 3 )
573 mCurrentAgendaView = -1; 578 mCurrentAgendaView = -1;
574 showAgendaView(KOPrefs::instance()->mFullViewMonth); 579 showAgendaView(KOPrefs::instance()->mFullViewMonth);
575 globalFlagBlockAgenda = 2; 580 globalFlagBlockAgenda = 2;
576 mMainView->dateNavigator()->selectDates( QDate::currentDate(), 581 mMainView->dateNavigator()->selectDates( QDate::currentDate(),
577 KOPrefs::instance()->mNextXDays ); 582 KOPrefs::instance()->mNextXDays );
578 mFlagShowNextxDays = true; 583 mFlagShowNextxDays = true;
579 mCurrentAgendaView = 3 ; 584 mCurrentAgendaView = 3 ;
580 KOPrefs::instance()->mCurrentDisplayedView = VIEW_NX_VIEW; 585 KOPrefs::instance()->mCurrentDisplayedView = VIEW_NX_VIEW;
581} 586}
582bool KOViewManager::showsNextDays() 587bool KOViewManager::showsNextDays()
583{ 588{
584 return mFlagShowNextxDays; 589 return mFlagShowNextxDays;
585} 590}
586void KOViewManager::createMonthView() 591void KOViewManager::createMonthView()
587{ 592{
588if (!mMonthView) { 593if (!mMonthView) {
589 mMonthView = new KOMonthView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::MonthView"); 594 mMonthView = new KOMonthView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::MonthView");
590 595
591 addView(mMonthView); 596 addView(mMonthView);
592 // mMonthView->show(); 597 // mMonthView->show();
593 // SIGNALS/SLOTS FOR MONTH VIEW 598 // SIGNALS/SLOTS FOR MONTH VIEW
594 599
595 connect(mMonthView,SIGNAL(showJournalSignal( int, QDate )),SLOT(showDateView( int, QDate ))); 600 connect(mMonthView,SIGNAL(showJournalSignal( int, QDate )),SLOT(showDateView( int, QDate )));
596 601
597 connect(mMonthView, SIGNAL(newTodoSignal(QDateTime,bool)), 602 connect(mMonthView, SIGNAL(newTodoSignal(QDateTime,bool)),
598 mMainView, SLOT(newTodoDateTime(QDateTime, bool))); 603 mMainView, SLOT(newTodoDateTime(QDateTime, bool)));
599 604
600 605
601 connect(mMonthView, SIGNAL(newEventSignal(QDateTime)), 606 connect(mMonthView, SIGNAL(newEventSignal(QDateTime)),
602 mMainView, SLOT(newEvent(QDateTime))); 607 mMainView, SLOT(newEvent(QDateTime)));
603 608
604 connect(mMonthView, SIGNAL(showIncidenceSignal(Incidence *)), 609 connect(mMonthView, SIGNAL(showIncidenceSignal(Incidence *)),
605 mMainView, SLOT(showIncidence(Incidence *))); 610 mMainView, SLOT(showIncidence(Incidence *)));
606 connect(mMonthView, SIGNAL(editIncidenceSignal(Incidence *)), 611 connect(mMonthView, SIGNAL(editIncidenceSignal(Incidence *)),
607 mMainView, SLOT(editIncidence(Incidence *))); 612 mMainView, SLOT(editIncidence(Incidence *)));
608 connect(mMonthView, SIGNAL(deleteIncidenceSignal(Incidence *)), 613 connect(mMonthView, SIGNAL(deleteIncidenceSignal(Incidence *)),
609 mMainView, SLOT(deleteIncidence(Incidence *))); 614 mMainView, SLOT(deleteIncidence(Incidence *)));
610 615
611 connect( mMonthView, SIGNAL( incidenceSelected( Incidence * ) ), 616 connect( mMonthView, SIGNAL( incidenceSelected( Incidence * ) ),
612 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 617 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
613 connect( mMonthView, SIGNAL( cloneIncidenceSignal( Incidence * ) ), 618 connect( mMonthView, SIGNAL( cloneIncidenceSignal( Incidence * ) ),
614 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 619 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
615 connect( mMonthView, SIGNAL( cancelIncidenceSignal( Incidence * ) ), 620 connect( mMonthView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
616 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 621 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
617 622
618 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 623 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
619 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 624 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
620 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 625 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
621 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 626 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
622 connect( mMonthView, SIGNAL( selectWeekNum( int ) ), 627 connect( mMonthView, SIGNAL( selectWeekNum( int ) ),
623 mMainView->dateNavigator(), SLOT ( selectWeekFromMonthView( int ) ) ); 628 mMainView->dateNavigator(), SLOT ( selectWeekFromMonthView( int ) ) );
624 connect( mMonthView, SIGNAL( selectMonth() ), 629 connect( mMonthView, SIGNAL( selectMonth() ),
625 mMainView->dateNavigator(), SLOT ( selectMonthFromMonthview() ) ); 630 mMainView->dateNavigator(), SLOT ( selectMonthFromMonthview() ) );
626 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ), 631 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ),
627 mMainView, SLOT ( showDay( QDate ) ) ); 632 mMainView, SLOT ( showDay( QDate ) ) );
628 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig())); 633 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig()));
629 connect( mMonthView, SIGNAL(nextMonth() ), 634 connect( mMonthView, SIGNAL(nextMonth() ),
630 mMonthView->navigatorBar(), SIGNAL(goNextMonth() ) ); 635 mMonthView->navigatorBar(), SIGNAL(goNextMonth() ) );
631 connect( mMonthView, SIGNAL(prevMonth() ), 636 connect( mMonthView, SIGNAL(prevMonth() ),
632 mMonthView->navigatorBar(), SIGNAL(goPrevMonth() ) ); 637 mMonthView->navigatorBar(), SIGNAL(goPrevMonth() ) );
633 connect( mMonthView->navigatorBar(), SIGNAL( goPrevYear() ), 638 connect( mMonthView->navigatorBar(), SIGNAL( goPrevYear() ),
634 mMainView->dateNavigator(), SLOT( selectPreviousYear() ) ); 639 mMainView->dateNavigator(), SLOT( selectPreviousYear() ) );
635 connect( mMonthView->navigatorBar(), SIGNAL( goNextYear() ), 640 connect( mMonthView->navigatorBar(), SIGNAL( goNextYear() ),
636 mMainView->dateNavigator(), SLOT( selectNextYear() ) ); 641 mMainView->dateNavigator(), SLOT( selectNextYear() ) );
637 connect( mMonthView->navigatorBar(), SIGNAL( goPrevMonth() ), 642 connect( mMonthView->navigatorBar(), SIGNAL( goPrevMonth() ),
638 mMainView->dateNavigator(), SLOT( selectPreviousMonth() ) ); 643 mMainView->dateNavigator(), SLOT( selectPreviousMonth() ) );
639 connect( mMonthView->navigatorBar(), SIGNAL( goNextMonth() ), 644 connect( mMonthView->navigatorBar(), SIGNAL( goNextMonth() ),
640 mMainView->dateNavigator(), SLOT( selectNextMonth() ) ); 645 mMainView->dateNavigator(), SLOT( selectNextMonth() ) );
641 connect( mMonthView->navigatorBar(), SIGNAL( goPrevWeek() ), 646 connect( mMonthView->navigatorBar(), SIGNAL( goPrevWeek() ),
642 mMainView->dateNavigator(), SLOT( selectPreviousWeek() ) ); 647 mMainView->dateNavigator(), SLOT( selectPreviousWeek() ) );
643 connect( mMonthView->navigatorBar(), SIGNAL( goNextWeek() ), 648 connect( mMonthView->navigatorBar(), SIGNAL( goNextWeek() ),
644 mMainView->dateNavigator(), SLOT( selectNextWeek() ) ); 649 mMainView->dateNavigator(), SLOT( selectNextWeek() ) );
645 650
646 connect( mMainView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 651 connect( mMainView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
647 mMonthView->navigatorBar(), SLOT( selectDates( const KCal::DateList & ) ) ); 652 mMonthView->navigatorBar(), SLOT( selectDates( const KCal::DateList & ) ) );
648 653
649 654
650 connect( mMonthView->navigatorBar(), SIGNAL( monthSelected ( int ) ), 655 connect( mMonthView->navigatorBar(), SIGNAL( monthSelected ( int ) ),
651 mMainView->dateNavigator(), SLOT( slotMonthSelect( int ) ) ); 656 mMainView->dateNavigator(), SLOT( slotMonthSelect( int ) ) );
652 657
653 } 658 }
654} 659}
655void KOViewManager::showMonthViewWeek() 660void KOViewManager::showMonthViewWeek()
656{ 661{
657 createMonthView(); 662 createMonthView();
663 KOPrefs::instance()->mCurrentDisplayedView = VIEW_ML_VIEW ;
658 globalFlagBlockAgenda = 1; 664 globalFlagBlockAgenda = 1;
659 bool full = true; 665 bool full = true;
660 if ( mCurrentView == mMonthView) 666 if ( mCurrentView == mMonthView)
661 full = mMainView->leftFrame()->isVisible(); 667 full = mMainView->leftFrame()->isVisible();
662 if ( !KOPrefs::instance()->mMonthViewWeek ) { 668 if ( !KOPrefs::instance()->mMonthViewWeek ) {
663 mMonthView->switchView(); 669 mMonthView->switchView();
664 if ( KOPrefs::instance()->mViewChangeHoldNonFullscreen && mMainView->leftFrame()->isVisible() ) 670 if ( KOPrefs::instance()->mViewChangeHoldNonFullscreen && mMainView->leftFrame()->isVisible() )
665 full = false; 671 full = false;
666 else 672 else
667 full = true; 673 full = true;
668 } 674 }
669 mMainView->dateNavigator()->selectWeek(); 675 mMainView->dateNavigator()->selectWeek();
670 showView(mMonthView, full ); 676 showView(mMonthView, full );
671 mMonthView->setKeyBFocus(); 677 mMonthView->setKeyBFocus();
672 KOPrefs::instance()->mCurrentDisplayedView = VIEW_ML_VIEW ; 678 KOPrefs::instance()->mCurrentDisplayedView = VIEW_ML_VIEW ;
673} 679}
674 680
675void KOViewManager::showMonth( const QDate & date ) 681void KOViewManager::showMonth( const QDate & date )
676{ 682{
677 mMainView->dateNavigator()->blockSignals( true ); 683 mMainView->dateNavigator()->blockSignals( true );
678 mMainView->dateNavigator()->selectDate( date ); 684 mMainView->dateNavigator()->selectDate( date );
679 mMainView->dateNavigator()->blockSignals( false ); 685 mMainView->dateNavigator()->blockSignals( false );
680 showMonthView(); 686 showMonthView();
681} 687}
682void KOViewManager::showMonthView() 688void KOViewManager::showMonthView()
683 { 689 {
684 690
685 createMonthView(); 691 createMonthView();
692 KOPrefs::instance()->mCurrentDisplayedView = VIEW_M_VIEW ;
686 globalFlagBlockAgenda = 1; 693 globalFlagBlockAgenda = 1;
687 //mFlagShowNextxDays = false; 694 //mFlagShowNextxDays = false;
688 bool full = true; 695 bool full = true;
689 if ( mCurrentView == mMonthView) 696 if ( mCurrentView == mMonthView)
690 full = mMainView->leftFrame()->isVisible(); 697 full = mMainView->leftFrame()->isVisible();
691 // if(mMonthView == mCurrentView) return; 698 // if(mMonthView == mCurrentView) return;
692 if ( KOPrefs::instance()->mMonthViewWeek ) { 699 if ( KOPrefs::instance()->mMonthViewWeek ) {
693 mMonthView->switchView(); 700 mMonthView->switchView();
694 if ( KOPrefs::instance()->mViewChangeHoldNonFullscreen && mMainView->leftFrame()->isVisible() ) 701 if ( KOPrefs::instance()->mViewChangeHoldNonFullscreen && mMainView->leftFrame()->isVisible() )
695 full = false; 702 full = false;
696 else 703 else
697 full = true; 704 full = true;
698 } 705 }
699 mMainView->dateNavigator()->selectMonth(); 706 mMainView->dateNavigator()->selectMonth();
700 707
701 showView(mMonthView, full ); 708 showView(mMonthView, full );
702 mMonthView->setKeyBFocus(); 709 mMonthView->setKeyBFocus();
703 KOPrefs::instance()->mCurrentDisplayedView = VIEW_M_VIEW ; 710 KOPrefs::instance()->mCurrentDisplayedView = VIEW_M_VIEW ;
704 711
705} 712}
706 713
707void KOViewManager::showTodoView() 714void KOViewManager::showTodoView()
708{ 715{
709 //mFlagShowNextxDays = false; 716 //mFlagShowNextxDays = false;
710 if ( !mTodoView ) { 717 if ( !mTodoView ) {
711 mTodoView = new KOTodoView( mMainView->calendar(), mMainView->viewStack(), 718 mTodoView = new KOTodoView( mMainView->calendar(), mMainView->viewStack(),
712 "KOViewManager::TodoView" ); 719 "KOViewManager::TodoView" );
713 720
714 addView( mTodoView ); 721 addView( mTodoView );
715 // QPEApplication::setStylusOperation( mTodoView, QPEApplication::RightOnHold ); 722 // QPEApplication::setStylusOperation( mTodoView, QPEApplication::RightOnHold );
716 723
717 // SIGNALS/SLOTS FOR TODO VIEW 724 // SIGNALS/SLOTS FOR TODO VIEW
718 connect( mTodoView, SIGNAL( newTodoSignal() ), 725 connect( mTodoView, SIGNAL( newTodoSignal() ),
719 mMainView, SLOT( newTodo() ) ); 726 mMainView, SLOT( newTodo() ) );
720 connect( mTodoView, SIGNAL( newSubTodoSignal( Todo * ) ), 727 connect( mTodoView, SIGNAL( newSubTodoSignal( Todo * ) ),
721 mMainView, SLOT( newSubTodo( Todo *) ) ); 728 mMainView, SLOT( newSubTodo( Todo *) ) );
722 connect( mTodoView, SIGNAL( showTodoSignal( Todo *) ), 729 connect( mTodoView, SIGNAL( showTodoSignal( Todo *) ),
723 mMainView, SLOT( showTodo( Todo * ) ) ); 730 mMainView, SLOT( showTodo( Todo * ) ) );
724 connect( mTodoView, SIGNAL( editTodoSignal( Todo * ) ), 731 connect( mTodoView, SIGNAL( editTodoSignal( Todo * ) ),
725 mMainView, SLOT( editTodo( Todo * ) ) ); 732 mMainView, SLOT( editTodo( Todo * ) ) );
726 connect( mTodoView, SIGNAL( deleteTodoSignal( Todo * ) ), 733 connect( mTodoView, SIGNAL( deleteTodoSignal( Todo * ) ),
727 mMainView, SLOT( deleteTodo( Todo * ) ) ); 734 mMainView, SLOT( deleteTodo( Todo * ) ) );
728 connect( mTodoView, SIGNAL( purgeCompletedSignal() ), 735 connect( mTodoView, SIGNAL( purgeCompletedSignal() ),
729 mMainView, SLOT( purgeCompleted() ) ); 736 mMainView, SLOT( purgeCompleted() ) );
730 737
731 connect( mTodoView, SIGNAL( incidenceSelected( Incidence * ) ), 738 connect( mTodoView, SIGNAL( incidenceSelected( Incidence * ) ),
732 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 739 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
733 740
734 connect( mMainView, SIGNAL( configChanged() ), mTodoView, 741 connect( mMainView, SIGNAL( configChanged() ), mTodoView,
735 SLOT( updateConfig() ) ); 742 SLOT( updateConfig() ) );
736 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mTodoView, 743 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mTodoView,
737 SLOT( updateTodo( Todo *, int ) ) ); 744 SLOT( updateTodo( Todo *, int ) ) );
738 connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ), 745 connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ),
739 mMainView, SIGNAL ( todoModified( Todo *, int ) ) ); 746 mMainView, SIGNAL ( todoModified( Todo *, int ) ) );
740 connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ), 747 connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ),
741 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 748 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
742 connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ), 749 connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ),
743 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 750 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
744 connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ), 751 connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ),
745 mMainView, SLOT ( todo_unsub( Todo * ) ) ); 752 mMainView, SLOT ( todo_unsub( Todo * ) ) );
746 connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), 753 connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ),
747 mMainView, SLOT ( todo_resub( Todo *, Todo *) ) ); 754 mMainView, SLOT ( todo_resub( Todo *, Todo *) ) );
748 connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ), 755 connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ),
749 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 756 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
750 connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ), 757 connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ),
751 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 758 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
752 KConfig *config = KOGlobals::config(); 759 KConfig *config = KOGlobals::config();
753 mTodoView->restoreLayout(config,"Todo View"); 760 mTodoView->restoreLayout(config,"Todo View");
754 mTodoView->setNavigator( mMainView->dateNavigator() ); 761 mTodoView->setNavigator( mMainView->dateNavigator() );
755 } 762 }
756 763
764 KOPrefs::instance()->mCurrentDisplayedView = VIEW_T_VIEW ;
757 globalFlagBlockAgenda = 1; 765 globalFlagBlockAgenda = 1;
758 showView( mTodoView, true ); 766 showView( mTodoView, true );
759 KOPrefs::instance()->mCurrentDisplayedView = VIEW_T_VIEW ; 767 KOPrefs::instance()->mCurrentDisplayedView = VIEW_T_VIEW ;
760 768
761} 769}
762 770
763void KOViewManager::showJournalView() 771void KOViewManager::showJournalView()
764{ 772{
765 //mFlagShowNextxDays = false; 773 //mFlagShowNextxDays = false;
766 if (!mJournalView) { 774 if (!mJournalView) {
767 mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(), 775 mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(),
768 "KOViewManager::JournalView"); 776 "KOViewManager::JournalView");
769 connect( mMainView, SIGNAL( configChanged() ), mJournalView, 777 connect( mMainView, SIGNAL( configChanged() ), mJournalView,
770 SLOT( updateConfig() ) ); 778 SLOT( updateConfig() ) );
771 connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) ); 779 connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) );
772 addView(mJournalView); 780 addView(mJournalView);
773 } 781 }
774 782
783 KOPrefs::instance()->mCurrentDisplayedView = VIEW_J_VIEW ;
775 showView(mJournalView); 784 showView(mJournalView);
776 mMainView->dateNavigator()->selectDates( 1 ); 785 mMainView->dateNavigator()->selectDates( 1 );
777 KOPrefs::instance()->mCurrentDisplayedView = VIEW_J_VIEW ; 786 KOPrefs::instance()->mCurrentDisplayedView = VIEW_J_VIEW ;
778} 787}
779 788
780void KOViewManager::showTimeSpanView() 789void KOViewManager::showTimeSpanView()
781{ 790{
782 //mFlagShowNextxDays = false; 791 //mFlagShowNextxDays = false;
783 if (!mTimeSpanView) { 792 if (!mTimeSpanView) {
784 mTimeSpanView = new KOTimeSpanView(mMainView->calendar(),mMainView->viewStack(), 793 mTimeSpanView = new KOTimeSpanView(mMainView->calendar(),mMainView->viewStack(),
785 "KOViewManager::TimeSpanView"); 794 "KOViewManager::TimeSpanView");
786 addView(mTimeSpanView); 795 addView(mTimeSpanView);
787 796
788 mTimeSpanView->readSettings(); 797 mTimeSpanView->readSettings();
789 } 798 }
790 799
791 showView(mTimeSpanView); 800 showView(mTimeSpanView);
792} 801}
793 802
794Incidence *KOViewManager::currentSelection() 803Incidence *KOViewManager::currentSelection()
795{ 804{
796 if (!mCurrentView) return 0; 805 if (!mCurrentView) return 0;
797 if ( mCurrentView == mListView ) { 806 if ( mCurrentView == mListView ) {
798 if ( mListView->currentItem() ) 807 if ( mListView->currentItem() )
799 return mListView->currentItem(); 808 return mListView->currentItem();
800 } 809 }
801 return mCurrentView->selectedIncidences().first(); 810 return mCurrentView->selectedIncidences().first();
802} 811}
803 812
804QDate KOViewManager::currentSelectionDate() 813QDate KOViewManager::currentSelectionDate()
805{ 814{
806 QDate qd; 815 QDate qd;
807 if (mCurrentView) { 816 if (mCurrentView) {
808 DateList qvl = mCurrentView->selectedDates(); 817 DateList qvl = mCurrentView->selectedDates();
809 if (!qvl.isEmpty()) qd = qvl.first(); 818 if (!qvl.isEmpty()) qd = qvl.first();
810 } 819 }
811 return qd; 820 return qd;
812} 821}
813 822
814void KOViewManager::addView(KOrg::BaseView *view) 823void KOViewManager::addView(KOrg::BaseView *view)
815{ 824{
816#if QT_VERSION >= 0x030000 825#if QT_VERSION >= 0x030000
817 mMainView->viewStack()->addWidget( view ); 826 mMainView->viewStack()->addWidget( view );
818#else 827#else
819 mMainView->viewStack()->addWidget( view, 1 ); 828 mMainView->viewStack()->addWidget( view, 1 );
820#endif 829#endif
821} 830}
822 831
823void KOViewManager::setDocumentId( const QString &id ) 832void KOViewManager::setDocumentId( const QString &id )
824{ 833{
825 if (mTodoView) mTodoView->setDocumentId( id ); 834 if (mTodoView) mTodoView->setDocumentId( id );
826} 835}
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 95bef66..87cef20 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,710 +1,713 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "koagenda.h" 50#include "koagenda.h"
51#include "kodialogmanager.h" 51#include "kodialogmanager.h"
52#include "kdialogbase.h" 52#include "kdialogbase.h"
53#include "kapplication.h" 53#include "kapplication.h"
54#include "kofilterview.h" 54#include "kofilterview.h"
55#include "kstandarddirs.h" 55#include "kstandarddirs.h"
56#include "koprefs.h" 56#include "koprefs.h"
57#include "kfiledialog.h" 57#include "kfiledialog.h"
58#include "koglobals.h" 58#include "koglobals.h"
59#include "kglobal.h" 59#include "kglobal.h"
60#include "ktoolbar.h" 60#include "ktoolbar.h"
61#include "klocale.h" 61#include "klocale.h"
62#include "kconfig.h" 62#include "kconfig.h"
63#include "externalapphandler.h" 63#include "externalapphandler.h"
64 64
65using namespace KCal; 65using namespace KCal;
66#ifndef _WIN32_ 66#ifndef _WIN32_
67#include <unistd.h> 67#include <unistd.h>
68#else 68#else
69#ifdef _OL_IMPORT_ 69#ifdef _OL_IMPORT_
70#include "koimportoldialog.h" 70#include "koimportoldialog.h"
71#endif 71#endif
72#endif 72#endif
73#include "mainwindow.h" 73#include "mainwindow.h"
74 74
75 75
76class KOex2phonePrefs : public QDialog 76class KOex2phonePrefs : public QDialog
77{ 77{
78 public: 78 public:
79 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 79 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
80 QDialog( parent, name, true ) 80 QDialog( parent, name, true )
81 { 81 {
82 setCaption( i18n("Export to phone options") ); 82 setCaption( i18n("Export to phone options") );
83 QVBoxLayout* lay = new QVBoxLayout( this ); 83 QVBoxLayout* lay = new QVBoxLayout( this );
84 lay->setSpacing( 3 ); 84 lay->setSpacing( 3 );
85 lay->setMargin( 3 ); 85 lay->setMargin( 3 );
86 QLabel *lab; 86 QLabel *lab;
87 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 87 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
88 lab->setAlignment (AlignHCenter ); 88 lab->setAlignment (AlignHCenter );
89 QHBox* temphb; 89 QHBox* temphb;
90 temphb = new QHBox( this ); 90 temphb = new QHBox( this );
91 new QLabel( i18n("I/O device: "), temphb ); 91 new QLabel( i18n("I/O device: "), temphb );
92 mPhoneDevice = new QLineEdit( temphb); 92 mPhoneDevice = new QLineEdit( temphb);
93 lay->addWidget( temphb ); 93 lay->addWidget( temphb );
94 temphb = new QHBox( this ); 94 temphb = new QHBox( this );
95 new QLabel( i18n("Connection: "), temphb ); 95 new QLabel( i18n("Connection: "), temphb );
96 mPhoneConnection = new QLineEdit( temphb); 96 mPhoneConnection = new QLineEdit( temphb);
97 lay->addWidget( temphb ); 97 lay->addWidget( temphb );
98 temphb = new QHBox( this ); 98 temphb = new QHBox( this );
99 new QLabel( i18n("Model(opt.): "), temphb ); 99 new QLabel( i18n("Model(opt.): "), temphb );
100 mPhoneModel = new QLineEdit( temphb); 100 mPhoneModel = new QLineEdit( temphb);
101 lay->addWidget( temphb ); 101 lay->addWidget( temphb );
102 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 102 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
103 mWriteBackFuture->setChecked( true ); 103 mWriteBackFuture->setChecked( true );
104 lay->addWidget( mWriteBackFuture ); 104 lay->addWidget( mWriteBackFuture );
105 temphb = new QHBox( this ); 105 temphb = new QHBox( this );
106 new QLabel( i18n("Max. weeks in future: ") , temphb ); 106 new QLabel( i18n("Max. weeks in future: ") , temphb );
107 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 107 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
108 mWriteBackFutureWeeks->setValue( 8 ); 108 mWriteBackFutureWeeks->setValue( 8 );
109 lay->addWidget( temphb ); 109 lay->addWidget( temphb );
110 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 110 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
111 lab->setAlignment (AlignHCenter ); 111 lab->setAlignment (AlignHCenter );
112 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 112 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
113 lay->addWidget( ok ); 113 lay->addWidget( ok );
114 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 114 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
115 lay->addWidget( cancel ); 115 lay->addWidget( cancel );
116 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 116 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
117 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 117 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
118 resize( 220, 240 ); 118 resize( 220, 240 );
119 qApp->processEvents(); 119 qApp->processEvents();
120 int dw = QApplication::desktop()->width(); 120 int dw = QApplication::desktop()->width();
121 int dh = QApplication::desktop()->height(); 121 int dh = QApplication::desktop()->height();
122 move( (dw-width())/2, (dh - height() )/2 ); 122 move( (dw-width())/2, (dh - height() )/2 );
123 } 123 }
124 124
125public: 125public:
126 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 126 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
127 QCheckBox* mWriteBackFuture; 127 QCheckBox* mWriteBackFuture;
128 QSpinBox* mWriteBackFutureWeeks; 128 QSpinBox* mWriteBackFutureWeeks;
129}; 129};
130 130
131int globalFlagBlockStartup; 131int globalFlagBlockStartup;
132MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 132MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
133 QMainWindow( parent, name ) 133 QMainWindow( parent, name )
134{ 134{
135 135
136 mClosed = false; 136 mClosed = false;
137 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 137 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
138 QString confFile = locateLocal("config","korganizerrc"); 138 QString confFile = locateLocal("config","korganizerrc");
139 QFileInfo finf ( confFile ); 139 QFileInfo finf ( confFile );
140 bool showWarning = !finf.exists(); 140 bool showWarning = !finf.exists();
141 setIcon(SmallIcon( "ko24" ) ); 141 setIcon(SmallIcon( "ko24" ) );
142 mBlockAtStartup = true; 142 mBlockAtStartup = true;
143 mFlagKeyPressed = false; 143 mFlagKeyPressed = false;
144 setCaption("KO/Pi"); 144 setCaption("KO/Pi");
145 KOPrefs *p = KOPrefs::instance(); 145 KOPrefs *p = KOPrefs::instance();
146 KPimGlobalPrefs::instance()->setGlobalConfig(); 146 KPimGlobalPrefs::instance()->setGlobalConfig();
147 p->mCurrentDisplayedView = 0; 147 p->mCurrentDisplayedView = 0;
148 if ( p->mHourSize > 22 ) 148 if ( p->mHourSize > 22 )
149 p->mHourSize = 22; 149 p->mHourSize = 22;
150 QMainWindow::ToolBarDock tbd; 150 QMainWindow::ToolBarDock tbd;
151 if ( p->mToolBarHor ) { 151 if ( p->mToolBarHor ) {
152 if ( p->mToolBarUp ) 152 if ( p->mToolBarUp )
153 tbd = Bottom; 153 tbd = Bottom;
154 else 154 else
155 tbd = Top; 155 tbd = Top;
156 } 156 }
157 else { 157 else {
158 if ( p->mToolBarUp ) 158 if ( p->mToolBarUp )
159 tbd = Right; 159 tbd = Right;
160 else 160 else
161 tbd = Left; 161 tbd = Left;
162 } 162 }
163 if ( KOPrefs::instance()->mUseAppColors ) 163 if ( KOPrefs::instance()->mUseAppColors )
164 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 164 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
165 globalFlagBlockStartup = 1; 165 globalFlagBlockStartup = 1;
166 iconToolBar = new QPEToolBar( this ); 166 iconToolBar = new QPEToolBar( this );
167 addToolBar (iconToolBar , tbd ); 167 addToolBar (iconToolBar , tbd );
168 168
169#ifdef DESKTOP_VERSION 169#ifdef DESKTOP_VERSION
170 if ( KOPrefs::instance()->mShowIconFilter ) 170 if ( KOPrefs::instance()->mShowIconFilter )
171#else 171#else
172 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) 172 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar )
173#endif 173#endif
174 174
175{ 175{
176 if ( p->mToolBarHorF ) { 176 if ( p->mToolBarHorF ) {
177 if ( p->mToolBarUpF ) 177 if ( p->mToolBarUpF )
178 tbd = Bottom; 178 tbd = Bottom;
179 else 179 else
180 tbd = Top; 180 tbd = Top;
181 } 181 }
182 else { 182 else {
183 if ( p->mToolBarUpF ) 183 if ( p->mToolBarUpF )
184 tbd = Right; 184 tbd = Right;
185 else 185 else
186 tbd = Left; 186 tbd = Left;
187 } 187 }
188 filterToolBar = new QPEToolBar ( this ); 188 filterToolBar = new QPEToolBar ( this );
189 filterMenubar = new QPEMenuBar( filterToolBar ); 189 filterMenubar = new QMenuBar( filterToolBar );
190 QFontMetrics fm ( filterMenubar->font() ); 190 QFontMetrics fm ( filterMenubar->font() );
191 191
192 filterPopupMenu = new QPopupMenu( this ); 192 filterPopupMenu = new QPopupMenu( this );
193 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); 193 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
194 QString addTest = "Ax"; 194 QString addTest = "A";
195 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) );
195#ifdef DESKTOP_VERSION 196#ifdef DESKTOP_VERSION
196 addTest = "AAAx"; 197 addTest = "AAABBBCCCx";
197#endif 198#else
198 filterMenubar->setFixedWidth( fm.width( i18n("No Filter")+addTest ) ); 199 addTest = "AAx";
200#endif
201 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) );
199 addToolBar (filterToolBar , tbd ); 202 addToolBar (filterToolBar , tbd );
200 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); 203 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
201 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); 204 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
202 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) 205 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar )
203 filterToolBar->hide(); 206 filterToolBar->hide();
204 } else { 207 } else {
205 filterToolBar = 0; 208 filterToolBar = 0;
206 filterMenubar = 0; 209 filterMenubar = 0;
207 filterPopupMenu = 0; 210 filterPopupMenu = 0;
208 } 211 }
209 if ( p->mShowIconOnetoolbar ) { 212 if ( p->mShowIconOnetoolbar ) {
210 viewToolBar = iconToolBar ; 213 viewToolBar = iconToolBar ;
211 navigatorToolBar = iconToolBar ; 214 navigatorToolBar = iconToolBar ;
212 } else { 215 } else {
213#ifndef DESKTOP_VERSION 216#ifndef DESKTOP_VERSION
214 setToolBarsMovable( false ); 217 setToolBarsMovable( false );
215#endif 218#endif
216 if ( p->mToolBarHorV ) { 219 if ( p->mToolBarHorV ) {
217 if ( p->mToolBarUpV ) 220 if ( p->mToolBarUpV )
218 tbd = Bottom; 221 tbd = Bottom;
219 else 222 else
220 tbd = Top; 223 tbd = Top;
221 } 224 }
222 else { 225 else {
223 if ( p->mToolBarUpV ) 226 if ( p->mToolBarUpV )
224 tbd = Right; 227 tbd = Right;
225 else 228 else
226 tbd = Left; 229 tbd = Left;
227 } 230 }
228 viewToolBar = new QPEToolBar( this ); 231 viewToolBar = new QPEToolBar( this );
229 addToolBar (viewToolBar , tbd ); 232 addToolBar (viewToolBar , tbd );
230 if ( p->mToolBarHorN ) { 233 if ( p->mToolBarHorN ) {
231 if ( p->mToolBarUpN ) 234 if ( p->mToolBarUpN )
232 tbd = Bottom; 235 tbd = Bottom;
233 else 236 else
234 tbd = Top; 237 tbd = Top;
235 } 238 }
236 else { 239 else {
237 if ( p->mToolBarUpN ) 240 if ( p->mToolBarUpN )
238 tbd = Right; 241 tbd = Right;
239 else 242 else
240 tbd = Left; 243 tbd = Left;
241 } 244 }
242 navigatorToolBar = new QPEToolBar( this ); 245 navigatorToolBar = new QPEToolBar( this );
243 addToolBar (navigatorToolBar , tbd ); 246 addToolBar (navigatorToolBar , tbd );
244 } 247 }
245 248
246 249
247 250
248 mCalendarModifiedFlag = false; 251 mCalendarModifiedFlag = false;
249 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 252 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
250 splash->setAlignment ( AlignCenter ); 253 splash->setAlignment ( AlignCenter );
251 setCentralWidget( splash ); 254 setCentralWidget( splash );
252#ifndef DESKTOP_VERSION 255#ifndef DESKTOP_VERSION
253 showMaximized(); 256 showMaximized();
254#endif 257#endif
255 258
256 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 259 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
257 setDefaultPreferences(); 260 setDefaultPreferences();
258 mCalendar = new CalendarLocal(); 261 mCalendar = new CalendarLocal();
259 mView = new CalendarView( mCalendar, this,"mCalendar " ); 262 mView = new CalendarView( mCalendar, this,"mCalendar " );
260 mView->hide(); 263 mView->hide();
261 //mView->resize(splash->size() ); 264 //mView->resize(splash->size() );
262 initActions(); 265 initActions();
263 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 266 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
264 mSyncManager->setBlockSave(false); 267 mSyncManager->setBlockSave(false);
265 mView->setSyncManager(mSyncManager); 268 mView->setSyncManager(mSyncManager);
266#ifndef DESKTOP_VERSION 269#ifndef DESKTOP_VERSION
267 iconToolBar->show(); 270 iconToolBar->show();
268 qApp->processEvents(); 271 qApp->processEvents();
269#endif 272#endif
270 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 273 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
271 int vh = height() ; 274 int vh = height() ;
272 int vw = width(); 275 int vw = width();
273 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 276 //qDebug("Toolbar hei %d ",iconToolBar->height() );
274 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 277 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
275 vh -= iconToolBar->height(); 278 vh -= iconToolBar->height();
276 } else { 279 } else {
277 vw -= iconToolBar->height(); 280 vw -= iconToolBar->height();
278 } 281 }
279 //mView->setMaximumSize( splash->size() ); 282 //mView->setMaximumSize( splash->size() );
280 //mView->resize( splash->size() ); 283 //mView->resize( splash->size() );
281 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 284 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
282 mView->readSettings(); 285 mView->readSettings();
283 bool newFile = false; 286 bool newFile = false;
284 if( !QFile::exists( defaultFileName() ) ) { 287 if( !QFile::exists( defaultFileName() ) ) {
285 QFileInfo finfo ( defaultFileName() ); 288 QFileInfo finfo ( defaultFileName() );
286 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 289 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
287 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; 290 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n";
288 finfo.setFile( oldFile ); 291 finfo.setFile( oldFile );
289 if (finfo.exists() ) { 292 if (finfo.exists() ) {
290 KMessageBox::information( this, message); 293 KMessageBox::information( this, message);
291 mView->openCalendar( oldFile ); 294 mView->openCalendar( oldFile );
292 qApp->processEvents(); 295 qApp->processEvents();
293 } else { 296 } else {
294 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 297 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
295 finfo.setFile( oldFile ); 298 finfo.setFile( oldFile );
296 if (finfo.exists() ) { 299 if (finfo.exists() ) {
297 KMessageBox::information( this, message); 300 KMessageBox::information( this, message);
298 mView->openCalendar( oldFile ); 301 mView->openCalendar( oldFile );
299 qApp->processEvents(); 302 qApp->processEvents();
300 } 303 }
301 } 304 }
302 mView->saveCalendar( defaultFileName() ); 305 mView->saveCalendar( defaultFileName() );
303 newFile = true; 306 newFile = true;
304 } 307 }
305 308
306 QTime neededSaveTime = QDateTime::currentDateTime().time(); 309 QTime neededSaveTime = QDateTime::currentDateTime().time();
307 mView->openCalendar( defaultFileName() ); 310 mView->openCalendar( defaultFileName() );
308 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 311 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
309 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 312 qDebug("KO: Calendar loading time: %d ms",msNeeded );
310 313
311 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 314 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
312 KOPrefs::instance()->setAllDefaults(); 315 KOPrefs::instance()->setAllDefaults();
313 int count = mView->addCategories(); 316 int count = mView->addCategories();
314 } 317 }
315 processIncidenceSelection( 0 ); 318 processIncidenceSelection( 0 );
316 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 319 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
317 SLOT( processIncidenceSelection( Incidence * ) ) ); 320 SLOT( processIncidenceSelection( Incidence * ) ) );
318 connect( mView, SIGNAL( modifiedChanged( bool ) ), 321 connect( mView, SIGNAL( modifiedChanged( bool ) ),
319 SLOT( slotModifiedChanged( bool ) ) ); 322 SLOT( slotModifiedChanged( bool ) ) );
320 323
321 324
322 connect( mView, SIGNAL( tempDisableBR(bool) ), 325 connect( mView, SIGNAL( tempDisableBR(bool) ),
323 SLOT( disableBR(bool) ) ); 326 SLOT( disableBR(bool) ) );
324 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 327 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
325 mView->setModified( false ); 328 mView->setModified( false );
326 mBlockAtStartup = false; 329 mBlockAtStartup = false;
327 mView->setModified( false ); 330 mView->setModified( false );
328 setCentralWidget( mView ); 331 setCentralWidget( mView );
329 globalFlagBlockStartup = 0; 332 globalFlagBlockStartup = 0;
330 mView->show(); 333 mView->show();
331 delete splash; 334 delete splash;
332 if ( newFile ) 335 if ( newFile )
333 mView->updateConfig(); 336 mView->updateConfig();
334 // qApp->processEvents(); 337 // qApp->processEvents();
335 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 338 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
336 //fillSyncMenu(); 339 //fillSyncMenu();
337 340
338 341
339 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 342 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
340 connect(mView , SIGNAL( save() ), this, SLOT( save() ) ); 343 connect(mView , SIGNAL( save() ), this, SLOT( save() ) );
341 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); 344 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) );
342 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 345 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
343 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 346 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
344 mSyncManager->setDefaultFileName( sentSyncFile()); 347 mSyncManager->setDefaultFileName( sentSyncFile());
345 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 348 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
346 mSyncManager->fillSyncMenu(); 349 mSyncManager->fillSyncMenu();
347 350
348 351
349 352
350 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 353 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
351 if ( showWarning ) { 354 if ( showWarning ) {
352 KMessageBox::information( this, 355 KMessageBox::information( this,
353 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 356 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
354 qApp->processEvents(); 357 qApp->processEvents();
355 mView->dialogManager()->showSyncOptions(); 358 mView->dialogManager()->showSyncOptions();
356 } 359 }
357 360
358 //US listen for result adressed from Ka/Pi 361 //US listen for result adressed from Ka/Pi
359#ifndef DESKTOP_VERSION 362#ifndef DESKTOP_VERSION
360 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 363 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
361#endif 364#endif
362#ifndef DESKTOP_VERSION 365#ifndef DESKTOP_VERSION
363 infrared = 0; 366 infrared = 0;
364#endif 367#endif
365 updateFilterToolbar(); 368 updateFilterToolbar();
366 updateWeek( mView->startDate() ); 369 updateWeek( mView->startDate() );
367 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 370 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
368 SLOT( updateWeekNum( const KCal::DateList & ) ) ); 371 SLOT( updateWeekNum( const KCal::DateList & ) ) );
369 mBRdisabled = false; 372 mBRdisabled = false;
370 //toggleBeamReceive(); 373 //toggleBeamReceive();
371} 374}
372MainWindow::~MainWindow() 375MainWindow::~MainWindow()
373{ 376{
374 //qDebug("MainWindow::~MainWindow() "); 377 //qDebug("MainWindow::~MainWindow() ");
375 //save toolbar location 378 //save toolbar location
376 delete mCalendar; 379 delete mCalendar;
377 delete mSyncManager; 380 delete mSyncManager;
378#ifndef DESKTOP_VERSION 381#ifndef DESKTOP_VERSION
379 if ( infrared ) 382 if ( infrared )
380 delete infrared; 383 delete infrared;
381#endif 384#endif
382 385
383 386
384} 387}
385 388
386void MainWindow::disableBR(bool b) 389void MainWindow::disableBR(bool b)
387{ 390{
388#ifndef DESKTOP_VERSION 391#ifndef DESKTOP_VERSION
389 if ( b ) { 392 if ( b ) {
390 if ( infrared ) { 393 if ( infrared ) {
391 toggleBeamReceive(); 394 toggleBeamReceive();
392 mBRdisabled = true; 395 mBRdisabled = true;
393 } 396 }
394 mBRdisabled = true; 397 mBRdisabled = true;
395 } else { 398 } else {
396 if ( mBRdisabled ) { 399 if ( mBRdisabled ) {
397 mBRdisabled = false; 400 mBRdisabled = false;
398 //makes no sense,because other cal ap is probably running 401 //makes no sense,because other cal ap is probably running
399 // toggleBeamReceive(); 402 // toggleBeamReceive();
400 } 403 }
401 } 404 }
402#endif 405#endif
403 406
404} 407}
405bool MainWindow::beamReceiveEnabled() 408bool MainWindow::beamReceiveEnabled()
406{ 409{
407#ifndef DESKTOP_VERSION 410#ifndef DESKTOP_VERSION
408 return ( infrared != 0 ); 411 return ( infrared != 0 );
409#endif 412#endif
410 return false; 413 return false;
411} 414}
412 415
413void MainWindow::toggleBeamReceive() 416void MainWindow::toggleBeamReceive()
414{ 417{
415 if ( mBRdisabled ) 418 if ( mBRdisabled )
416 return; 419 return;
417#ifndef DESKTOP_VERSION 420#ifndef DESKTOP_VERSION
418 if ( infrared ) { 421 if ( infrared ) {
419 qDebug("KO: Disable BeamReceive "); 422 qDebug("KO: Disable BeamReceive ");
420 delete infrared; 423 delete infrared;
421 infrared = 0; 424 infrared = 0;
422 brAction->setOn(false); 425 brAction->setOn(false);
423 return; 426 return;
424 } 427 }
425 qDebug("KO: Enable BeamReceive "); 428 qDebug("KO: Enable BeamReceive ");
426 brAction->setOn(true); 429 brAction->setOn(true);
427 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 430 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
428 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 431 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
429#endif 432#endif
430} 433}
431void MainWindow::showMaximized () 434void MainWindow::showMaximized ()
432{ 435{
433#ifndef DESKTOP_VERSION 436#ifndef DESKTOP_VERSION
434 if ( ! globalFlagBlockStartup ) 437 if ( ! globalFlagBlockStartup )
435 if ( mClosed ) 438 if ( mClosed )
436 mView->goToday(); 439 mView->goToday();
437#endif 440#endif
438 QWidget::showMaximized () ; 441 QWidget::showMaximized () ;
439 mClosed = false; 442 mClosed = false;
440} 443}
441void MainWindow::closeEvent( QCloseEvent* ce ) 444void MainWindow::closeEvent( QCloseEvent* ce )
442{ 445{
443 446
444 447
445 448
446 if ( ! KOPrefs::instance()->mAskForQuit ) { 449 if ( ! KOPrefs::instance()->mAskForQuit ) {
447 saveOnClose(); 450 saveOnClose();
448 mClosed = true; 451 mClosed = true;
449 ce->accept(); 452 ce->accept();
450 return; 453 return;
451 454
452 } 455 }
453 456
454 switch( QMessageBox::information( this, "KO/Pi", 457 switch( QMessageBox::information( this, "KO/Pi",
455 i18n("Do you really want\nto close KO/Pi?"), 458 i18n("Do you really want\nto close KO/Pi?"),
456 i18n("Close"), i18n("No"), 459 i18n("Close"), i18n("No"),
457 0, 0 ) ) { 460 0, 0 ) ) {
458 case 0: 461 case 0:
459 saveOnClose(); 462 saveOnClose();
460 mClosed = true; 463 mClosed = true;
461 ce->accept(); 464 ce->accept();
462 break; 465 break;
463 case 1: 466 case 1:
464 ce->ignore(); 467 ce->ignore();
465 break; 468 break;
466 case 2: 469 case 2:
467 470
468 default: 471 default:
469 break; 472 break;
470 } 473 }
471 474
472 475
473} 476}
474 477
475void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 478void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
476{ 479{
477 QDataStream stream( data, IO_ReadOnly ); 480 QDataStream stream( data, IO_ReadOnly );
478 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 481 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
479 //QString datamess; 482 //QString datamess;
480 //qDebug("message "); 483 //qDebug("message ");
481 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 484 qDebug("KO: QCOP message received: %s ", cmsg.data() );
482 485
483 if ( cmsg == "setDocument(QString)" ) { 486 if ( cmsg == "setDocument(QString)" ) {
484 QDataStream stream( data, IO_ReadOnly ); 487 QDataStream stream( data, IO_ReadOnly );
485 QString fileName; 488 QString fileName;
486 stream >> fileName; 489 stream >> fileName;
487 //qDebug("filename %s ", fileName.latin1()); 490 //qDebug("filename %s ", fileName.latin1());
488 showMaximized(); 491 showMaximized();
489 raise(); 492 raise();
490 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 493 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
491 mSyncManager->slotSyncMenu( 1002 ); 494 mSyncManager->slotSyncMenu( 1002 );
492 return; 495 return;
493 } 496 }
494 497
495 if ( cmsg == "-writeFile" ) { 498 if ( cmsg == "-writeFile" ) {
496 // I made from the "-writeFile" an "-writeAlarm" 499 // I made from the "-writeFile" an "-writeAlarm"
497 mView->viewManager()->showWhatsNextView(); 500 mView->viewManager()->showWhatsNextView();
498 mCalendar->checkAlarmForIncidence( 0, true); 501 mCalendar->checkAlarmForIncidence( 0, true);
499 showMaximized(); 502 showMaximized();
500 raise(); 503 raise();
501 return; 504 return;
502 505
503 } 506 }
504 if ( cmsg == "-writeFileSilent" ) { 507 if ( cmsg == "-writeFileSilent" ) {
505 // I made from the "-writeFile" an "-writeAlarm" 508 // I made from the "-writeFile" an "-writeAlarm"
506 // mView->viewManager()->showWhatsNextView(); 509 // mView->viewManager()->showWhatsNextView();
507 mCalendar->checkAlarmForIncidence( 0, true); 510 mCalendar->checkAlarmForIncidence( 0, true);
508 //showMaximized(); 511 //showMaximized();
509 //raise(); 512 //raise();
510 hide(); 513 hide();
511 return; 514 return;
512 } 515 }
513 if ( cmsg == "-newCountdown" ) { 516 if ( cmsg == "-newCountdown" ) {
514 qDebug("newCountdown "); 517 qDebug("newCountdown ");
515 518
516 } 519 }
517 QString msg ; 520 QString msg ;
518 QString allmsg = cmsg; 521 QString allmsg = cmsg;
519 while ( allmsg.length() > 0 ) { 522 while ( allmsg.length() > 0 ) {
520 int nextC = allmsg.find( "-", 1 ); 523 int nextC = allmsg.find( "-", 1 );
521 if ( nextC == -1 ) { 524 if ( nextC == -1 ) {
522 msg = allmsg; 525 msg = allmsg;
523 allmsg = ""; 526 allmsg = "";
524 } else{ 527 } else{
525 msg = allmsg.left( nextC ); 528 msg = allmsg.left( nextC );
526 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 529 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
527 } 530 }
528 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 531 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
529 if ( msg == "-newEvent" ) { 532 if ( msg == "-newEvent" ) {
530 mView->newEvent(); 533 mView->newEvent();
531 } 534 }
532 if ( msg == "-newTodo" ) { 535 if ( msg == "-newTodo" ) {
533 mView->newTodo(); 536 mView->newTodo();
534 537
535 } 538 }
536 if ( msg == "-showWN" ) { 539 if ( msg == "-showWN" ) {
537 mView->viewManager()->showWhatsNextView(); 540 mView->viewManager()->showWhatsNextView();
538 } 541 }
539 if ( msg == "-showTodo" ) { 542 if ( msg == "-showTodo" ) {
540 mView->viewManager()->showTodoView(); 543 mView->viewManager()->showTodoView();
541 } 544 }
542 if ( msg == "-showList" ) { 545 if ( msg == "-showList" ) {
543 mView->viewManager()->showListView(); 546 mView->viewManager()->showListView();
544 } 547 }
545 else if ( msg == "-showDay" ) { 548 else if ( msg == "-showDay" ) {
546 mView->viewManager()->showDayView(); 549 mView->viewManager()->showDayView();
547 } 550 }
548 else if ( msg == "-showWWeek" ) { 551 else if ( msg == "-showWWeek" ) {
549 mView->viewManager()->showWorkWeekView(); 552 mView->viewManager()->showWorkWeekView();
550 } 553 }
551 else if ( msg == "-ringSync" ) { 554 else if ( msg == "-ringSync" ) {
552 mSyncManager->multiSync( false ); 555 mSyncManager->multiSync( false );
553 } 556 }
554 else if ( msg == "-showWeek" ) { 557 else if ( msg == "-showWeek" ) {
555 mView->viewManager()->showWeekView(); 558 mView->viewManager()->showWeekView();
556 } 559 }
557 else if ( msg == "-showTodo" ) { 560 else if ( msg == "-showTodo" ) {
558 mView->viewManager()->showTodoView(); 561 mView->viewManager()->showTodoView();
559 } 562 }
560 else if ( msg == "-showJournal" ) { 563 else if ( msg == "-showJournal" ) {
561 mView->dateNavigator()->selectDates( 1 ); 564 mView->dateNavigator()->selectDates( 1 );
562 mView->dateNavigator()->selectToday(); 565 mView->dateNavigator()->selectToday();
563 mView->viewManager()->showJournalView(); 566 mView->viewManager()->showJournalView();
564 } 567 }
565 else if ( msg == "-showKO" ) { 568 else if ( msg == "-showKO" ) {
566 mView->viewManager()->showNextXView(); 569 mView->viewManager()->showNextXView();
567 } 570 }
568 else if ( msg == "-showWNext" ) { 571 else if ( msg == "-showWNext" ) {
569 mView->viewManager()->showWhatsNextView(); 572 mView->viewManager()->showWhatsNextView();
570 } 573 }
571 else if ( msg == "nextView()" ) { 574 else if ( msg == "nextView()" ) {
572 mView->viewManager()->showNextView(); 575 mView->viewManager()->showNextView();
573 } 576 }
574 else if ( msg == "-showNextXView" ) { 577 else if ( msg == "-showNextXView" ) {
575 mView->viewManager()->showNextXView(); 578 mView->viewManager()->showNextXView();
576 } 579 }
577 580
578 581
579 } 582 }
580 583
581 showMaximized(); 584 showMaximized();
582 raise(); 585 raise();
583} 586}
584 587
585QPixmap MainWindow::loadPixmap( QString name ) 588QPixmap MainWindow::loadPixmap( QString name )
586{ 589{
587 return SmallIcon( name ); 590 return SmallIcon( name );
588 591
589} 592}
590void MainWindow::initActions() 593void MainWindow::initActions()
591{ 594{
592 //KOPrefs::instance()->mShowFullMenu 595 //KOPrefs::instance()->mShowFullMenu
593 iconToolBar->clear(); 596 iconToolBar->clear();
594 KOPrefs *p = KOPrefs::instance(); 597 KOPrefs *p = KOPrefs::instance();
595 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 598 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
596 599
597 QPopupMenu *viewMenu = new QPopupMenu( this ); 600 QPopupMenu *viewMenu = new QPopupMenu( this );
598 QPopupMenu *actionMenu = new QPopupMenu( this ); 601 QPopupMenu *actionMenu = new QPopupMenu( this );
599 QPopupMenu *importMenu = new QPopupMenu( this ); 602 QPopupMenu *importMenu = new QPopupMenu( this );
600 QPopupMenu *importMenu_X = new QPopupMenu( this ); 603 QPopupMenu *importMenu_X = new QPopupMenu( this );
601 QPopupMenu *exportMenu_X = new QPopupMenu( this ); 604 QPopupMenu *exportMenu_X = new QPopupMenu( this );
602 QPopupMenu *beamMenu_X = new QPopupMenu( this ); 605 QPopupMenu *beamMenu_X = new QPopupMenu( this );
603 selectFilterMenu = new QPopupMenu( this ); 606 selectFilterMenu = new QPopupMenu( this );
604 selectFilterMenu->setCheckable( true ); 607 selectFilterMenu->setCheckable( true );
605 syncMenu = new QPopupMenu( this ); 608 syncMenu = new QPopupMenu( this );
606 configureAgendaMenu = new QPopupMenu( this ); 609 configureAgendaMenu = new QPopupMenu( this );
607 configureToolBarMenu = new QPopupMenu( this ); 610 configureToolBarMenu = new QPopupMenu( this );
608 QPopupMenu *helpMenu = new QPopupMenu( this ); 611 QPopupMenu *helpMenu = new QPopupMenu( this );
609 QIconSet icon; 612 QIconSet icon;
610 int pixWid = 22, pixHei = 22; 613 int pixWid = 22, pixHei = 22;
611 QString pathString = ""; 614 QString pathString = "";
612 if ( !p->mToolBarMiniIcons ) { 615 if ( !p->mToolBarMiniIcons ) {
613 if ( QApplication::desktop()->width() < 480 ) { 616 if ( QApplication::desktop()->width() < 480 ) {
614 pathString += "icons16/"; 617 pathString += "icons16/";
615 pixWid = 18; pixHei = 16; 618 pixWid = 18; pixHei = 16;
616 } 619 }
617 } else { 620 } else {
618 pathString += "iconsmini/"; 621 pathString += "iconsmini/";
619 pixWid = 18; pixHei = 16; 622 pixWid = 18; pixHei = 16;
620 } 623 }
621 if ( KOPrefs::instance()->mShowFullMenu ) { 624 if ( KOPrefs::instance()->mShowFullMenu ) {
622 QMenuBar *menuBar1; 625 QMenuBar *menuBar1;
623 menuBar1 = menuBar(); 626 menuBar1 = menuBar();
624 menuBar1->insertItem( i18n("File"), importMenu ); 627 menuBar1->insertItem( i18n("File"), importMenu );
625 menuBar1->insertItem( i18n("View"), viewMenu ); 628 menuBar1->insertItem( i18n("View"), viewMenu );
626 menuBar1->insertItem( i18n("Actions"), actionMenu ); 629 menuBar1->insertItem( i18n("Actions"), actionMenu );
627#ifdef DESKTOP_VERSION 630#ifdef DESKTOP_VERSION
628 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 631 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
629 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 632 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
630#else 633#else
631 menuBar1->insertItem( i18n("Sync"), syncMenu ); 634 menuBar1->insertItem( i18n("Sync"), syncMenu );
632 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu ); 635 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu );
633#endif 636#endif
634 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 637 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
635 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 638 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
636 menuBar1->insertItem( i18n("Help"), helpMenu ); 639 menuBar1->insertItem( i18n("Help"), helpMenu );
637 } else { 640 } else {
638 QPEMenuBar *menuBar1; 641 QPEMenuBar *menuBar1;
639 menuBar1 = new QPEMenuBar( iconToolBar ); 642 menuBar1 = new QPEMenuBar( iconToolBar );
640 QPopupMenu *menuBar = new QPopupMenu( this ); 643 QPopupMenu *menuBar = new QPopupMenu( this );
641 icon = loadPixmap( pathString + "z_menu" ); 644 icon = loadPixmap( pathString + "z_menu" );
642 menuBar1->insertItem( icon.pixmap(), menuBar); 645 menuBar1->insertItem( icon.pixmap(), menuBar);
643 //menuBar1->insertItem( i18n("ME"), menuBar); 646 //menuBar1->insertItem( i18n("ME"), menuBar);
644 menuBar->insertItem( i18n("File"), importMenu ); 647 menuBar->insertItem( i18n("File"), importMenu );
645 menuBar->insertItem( i18n("View"), viewMenu ); 648 menuBar->insertItem( i18n("View"), viewMenu );
646 menuBar->insertItem( i18n("Actions"), actionMenu ); 649 menuBar->insertItem( i18n("Actions"), actionMenu );
647 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 650 menuBar->insertItem( i18n("Synchronize"), syncMenu );
648 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 651 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
649 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 652 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
650 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 653 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
651 menuBar->insertItem( i18n("Help"), helpMenu ); 654 menuBar->insertItem( i18n("Help"), helpMenu );
652 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 655 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
653 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 656 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
654 } 657 }
655 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 658 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
656 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) ); 659 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) );
657 660
658 661
659 mWeekBgColor = iconToolBar->backgroundColor(); 662 mWeekBgColor = iconToolBar->backgroundColor();
660 mWeekPixmap.resize( pixWid , pixHei ); 663 mWeekPixmap.resize( pixWid , pixHei );
661 mWeekPixmap.fill( mWeekBgColor ); 664 mWeekPixmap.fill( mWeekBgColor );
662 icon = mWeekPixmap; 665 icon = mWeekPixmap;
663 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this ); 666 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this );
664 if ( p-> mShowIconWeekNum ) 667 if ( p-> mShowIconWeekNum )
665 mWeekAction->addTo( iconToolBar ); 668 mWeekAction->addTo( iconToolBar );
666 mWeekFont = font(); 669 mWeekFont = font();
667 670
668 int fontPoint = mWeekFont.pointSize(); 671 int fontPoint = mWeekFont.pointSize();
669 QFontMetrics f( mWeekFont ); 672 QFontMetrics f( mWeekFont );
670 int fontWid = f.width( "30" ); 673 int fontWid = f.width( "30" );
671 while ( fontWid > pixWid ) { 674 while ( fontWid > pixWid ) {
672 --fontPoint; 675 --fontPoint;
673 mWeekFont.setPointSize( fontPoint ); 676 mWeekFont.setPointSize( fontPoint );
674 QFontMetrics f( mWeekFont ); 677 QFontMetrics f( mWeekFont );
675 fontWid = f.width( "30" ); 678 fontWid = f.width( "30" );
676 //qDebug("dec-- "); 679 //qDebug("dec-- ");
677 } 680 }
678 681
679 connect( mWeekAction, SIGNAL( activated() ), 682 connect( mWeekAction, SIGNAL( activated() ),
680 this, SLOT( weekAction() ) ); 683 this, SLOT( weekAction() ) );
681 684
682 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) ); 685 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) );
683 if ( p->mShowIconFilterview ) { 686 if ( p->mShowIconFilterview ) {
684 icon = loadPixmap( pathString + "filter" ); 687 icon = loadPixmap( pathString + "filter" );
685 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this ); 688 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this );
686 connect( actionFilterMenuTB, SIGNAL( activated() ), 689 connect( actionFilterMenuTB, SIGNAL( activated() ),
687 this, SLOT( fillFilterMenuTB() ) ); 690 this, SLOT( fillFilterMenuTB() ) );
688 actionFilterMenuTB->addTo( iconToolBar ); 691 actionFilterMenuTB->addTo( iconToolBar );
689 selectFilterMenuTB = new QPopupMenu( this ); 692 selectFilterMenuTB = new QPopupMenu( this );
690 selectFilterMenuTB->setCheckable( true ); 693 selectFilterMenuTB->setCheckable( true );
691 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 694 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
692 } 695 }
693 696
694 //#endif 697 //#endif
695 // ****************** 698 // ******************
696 QAction *action; 699 QAction *action;
697 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 700 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
698 configureToolBarMenu->setCheckable( true ); 701 configureToolBarMenu->setCheckable( true );
699 702
700 703
701 configureAgendaMenu->setCheckable( true ); 704 configureAgendaMenu->setCheckable( true );
702 int iii ; 705 int iii ;
703 for ( iii = 1;iii<= 10 ;++iii ){ 706 for ( iii = 1;iii<= 10 ;++iii ){
704 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 ); 707 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 );
705 } 708 }
706 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 709 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
707 710
708 connect( configureAgendaMenu, SIGNAL( aboutToShow()), 711 connect( configureAgendaMenu, SIGNAL( aboutToShow()),
709 this, SLOT( showConfigureAgenda( ) ) ); 712 this, SLOT( showConfigureAgenda( ) ) );
710 713
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 45ed04d..8fd3d24 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,166 +1,166 @@
1#ifndef KORGE_MAINWINDOW_H 1#ifndef KORGE_MAINWINDOW_H
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7#include <qfile.h> 7#include <qfile.h>
8#include <qmenubar.h> 8#include <qmenubar.h>
9#include <qtextstream.h> 9#include <qtextstream.h>
10#include <qregexp.h> 10#include <qregexp.h>
11 11
12#include <libkcal/incidence.h> 12#include <libkcal/incidence.h>
13#include <ksyncmanager.h> 13#include <ksyncmanager.h>
14#ifndef DESKTOP_VERSION 14#ifndef DESKTOP_VERSION
15#include <qcopchannel_qws.h> 15#include <qcopchannel_qws.h>
16#endif 16#endif
17class QAction; 17class QAction;
18class CalendarView; 18class CalendarView;
19class KSyncProfile; 19class KSyncProfile;
20#ifdef DESKTOP_VERSION 20#ifdef DESKTOP_VERSION
21 21
22#define QPEToolBar QToolBar 22#define QPEToolBar QToolBar
23#define QPEMenuBar QMenuBar 23#define QPEMenuBar QMenuBar
24#endif 24#endif
25class QPEToolBar; 25class QPEToolBar;
26class QPEMenuBar; 26class QPEMenuBar;
27 27
28 28
29namespace KCal { 29namespace KCal {
30class CalendarLocal; 30class CalendarLocal;
31} 31}
32 32
33using namespace KCal; 33using namespace KCal;
34 34
35class MainWindow : public QMainWindow 35class MainWindow : public QMainWindow
36{ 36{
37 Q_OBJECT 37 Q_OBJECT
38 public: 38 public:
39 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 39 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
40 ~MainWindow(); 40 ~MainWindow();
41 bool beamReceiveEnabled(); 41 bool beamReceiveEnabled();
42 static QString defaultFileName(); 42 static QString defaultFileName();
43 static QString syncFileName(); 43 static QString syncFileName();
44 static QString resourcePath(); 44 static QString resourcePath();
45 public slots: 45 public slots:
46 void setCaption ( const QString & ); 46 void setCaption ( const QString & );
47 void updateWeekNum(const KCal::DateList &); 47 void updateWeekNum(const KCal::DateList &);
48 void updateWeek(QDate); 48 void updateWeek(QDate);
49 void updateFilterToolbar(); 49 void updateFilterToolbar();
50 virtual void showMaximized (); 50 virtual void showMaximized ();
51 void configureAgenda( int ); 51 void configureAgenda( int );
52 void recieve( const QCString& msg, const QByteArray& data ); 52 void recieve( const QCString& msg, const QByteArray& data );
53 protected slots: 53 protected slots:
54 void setCaptionToDates(); 54 void setCaptionToDates();
55 void weekAction(); 55 void weekAction();
56 void about(); 56 void about();
57 void licence(); 57 void licence();
58 void faq(); 58 void faq();
59 void usertrans(); 59 void usertrans();
60 void features(); 60 void features();
61 void synchowto(); 61 void synchowto();
62 void storagehowto(); 62 void storagehowto();
63 void timetrackinghowto(); 63 void timetrackinghowto();
64 void kdesynchowto(); 64 void kdesynchowto();
65 void multisynchowto(); 65 void multisynchowto();
66 void whatsNew(); 66 void whatsNew();
67 void keyBindings(); 67 void keyBindings();
68 void aboutAutoSaving();; 68 void aboutAutoSaving();;
69 void aboutKnownBugs(); 69 void aboutKnownBugs();
70 70
71 void processIncidenceSelection( Incidence * ); 71 void processIncidenceSelection( Incidence * );
72 72
73 void importQtopia(); 73 void importQtopia();
74 void importBday(); 74 void importBday();
75 void importOL(); 75 void importOL();
76 void importIcal(); 76 void importIcal();
77 void importFile( QString, bool ); 77 void importFile( QString, bool );
78 void quickImportIcal(); 78 void quickImportIcal();
79 79
80 void slotModifiedChanged( bool ); 80 void slotModifiedChanged( bool );
81 81
82 void save(); 82 void save();
83 void saveStopTimer(); 83 void saveStopTimer();
84 void configureToolBar( int ); 84 void configureToolBar( int );
85 void printSel(); 85 void printSel();
86 void printCal(); 86 void printCal();
87 void saveCalendar(); 87 void saveCalendar();
88 void loadCalendar(); 88 void loadCalendar();
89 void exportVCalendar(); 89 void exportVCalendar();
90 void fillFilterMenu(); 90 void fillFilterMenu();
91 void fillFilterMenuTB(); 91 void fillFilterMenuTB();
92 void selectFilter( int ); 92 void selectFilter( int );
93 void fillFilterMenuPopup(); 93 void fillFilterMenuPopup();
94 void selectFilterPopup( int ); 94 void selectFilterPopup( int );
95 void exportToPhone( int ); 95 void exportToPhone( int );
96 void toggleBeamReceive(); 96 void toggleBeamReceive();
97 void disableBR(bool); 97 void disableBR(bool);
98 signals: 98 signals:
99 void selectWeek ( int ); 99 void selectWeek ( int );
100 private slots: 100 private slots:
101 void showConfigureAgenda(); 101 void showConfigureAgenda();
102 void getFile( bool ); 102 void getFile( bool );
103 void syncFileRequest(); 103 void syncFileRequest();
104 104
105 protected: 105 protected:
106 void hideEvent ( QHideEvent * ); 106 void hideEvent ( QHideEvent * );
107 QString sentSyncFile(); 107 QString sentSyncFile();
108 void displayText( QString, QString); 108 void displayText( QString, QString);
109 void enableIncidenceActions( bool ); 109 void enableIncidenceActions( bool );
110 110
111 private: 111 private:
112 bool mBRdisabled; 112 bool mBRdisabled;
113#ifndef DESKTOP_VERSION 113#ifndef DESKTOP_VERSION
114 QCopChannel* infrared; 114 QCopChannel* infrared;
115#endif 115#endif
116 QAction* brAction; 116 QAction* brAction;
117 KSyncManager* mSyncManager; 117 KSyncManager* mSyncManager;
118 bool mClosed; 118 bool mClosed;
119 void saveOnClose(); 119 void saveOnClose();
120 bool mFlagKeyPressed; 120 bool mFlagKeyPressed;
121 bool mBlockAtStartup; 121 bool mBlockAtStartup;
122 QPEToolBar *iconToolBar; 122 QPEToolBar *iconToolBar;
123 QPEToolBar *viewToolBar; 123 QPEToolBar *viewToolBar;
124 QPEToolBar *navigatorToolBar; 124 QPEToolBar *navigatorToolBar;
125 QPEToolBar *filterToolBar; 125 QPEToolBar *filterToolBar;
126 QPEMenuBar *filterMenubar; 126 QMenuBar *filterMenubar;
127 QPopupMenu * filterPopupMenu; 127 QPopupMenu * filterPopupMenu;
128 void initActions(); 128 void initActions();
129 void setDefaultPreferences(); 129 void setDefaultPreferences();
130 void resizeEvent( QResizeEvent* e); 130 void resizeEvent( QResizeEvent* e);
131 void keyPressEvent ( QKeyEvent * ) ; 131 void keyPressEvent ( QKeyEvent * ) ;
132 void keyReleaseEvent ( QKeyEvent * ) ; 132 void keyReleaseEvent ( QKeyEvent * ) ;
133 QPopupMenu *configureToolBarMenu; 133 QPopupMenu *configureToolBarMenu;
134 QPopupMenu *selectFilterMenu; 134 QPopupMenu *selectFilterMenu;
135 QPopupMenu *selectFilterMenuTB; 135 QPopupMenu *selectFilterMenuTB;
136 QPopupMenu *configureAgendaMenu, *syncMenu; 136 QPopupMenu *configureAgendaMenu, *syncMenu;
137 CalendarLocal *mCalendar; 137 CalendarLocal *mCalendar;
138 CalendarView *mView; 138 CalendarView *mView;
139 QAction *mNewSubTodoAction; 139 QAction *mNewSubTodoAction;
140 QAction *mWeekAction; 140 QAction *mWeekAction;
141 QFont mWeekFont; 141 QFont mWeekFont;
142 QPixmap mWeekPixmap; 142 QPixmap mWeekPixmap;
143 QColor mWeekBgColor; 143 QColor mWeekBgColor;
144 144
145 QAction *mShowAction; 145 QAction *mShowAction;
146 QAction *mEditAction; 146 QAction *mEditAction;
147 QAction *mDeleteAction; 147 QAction *mDeleteAction;
148 QAction *mCloneAction; 148 QAction *mCloneAction;
149 QAction *mMoveAction; 149 QAction *mMoveAction;
150 QAction *mBeamAction; 150 QAction *mBeamAction;
151 QAction *mCancelAction; 151 QAction *mCancelAction;
152 152
153 QAction *mToggleNav; 153 QAction *mToggleNav;
154 QAction *mToggleFilter; 154 QAction *mToggleFilter;
155 QAction *mToggleAllday; 155 QAction *mToggleAllday;
156 QAction *actionFilterMenuTB; 156 QAction *actionFilterMenuTB;
157 157
158 void closeEvent( QCloseEvent* ce ); 158 void closeEvent( QCloseEvent* ce );
159 QTimer mSaveTimer; 159 QTimer mSaveTimer;
160 //bool mBlockSaveFlag; 160 //bool mBlockSaveFlag;
161 bool mCalendarModifiedFlag; 161 bool mCalendarModifiedFlag;
162 QPixmap loadPixmap( QString ); 162 QPixmap loadPixmap( QString );
163}; 163};
164 164
165 165
166#endif 166#endif