summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile9
-rw-r--r--Makefile.Embedded9
-rw-r--r--bin/kdepim/kopiemail/germantranslation.txt10
-rw-r--r--kmicromail/koprefs.cpp5
-rw-r--r--kmicromail/koprefs.h1
-rw-r--r--kmicromail/koprefsdialog.cpp19
-rw-r--r--kmicromail/mainwindow.cpp64
-rw-r--r--kmicromail/opiemail.cpp3
-rw-r--r--korganizer/kowhatsnextview.cpp2
-rw-r--r--microkde/KDGanttMinimizeSplitter.cpp10
-rw-r--r--microkde/KDGanttMinimizeSplitter.h2
11 files changed, 101 insertions, 33 deletions
diff --git a/Makefile b/Makefile
index 68619b9..9656532 100644
--- a/Makefile
+++ b/Makefile
@@ -1,382 +1,383 @@
1export KDEPIMDIR = $(shell pwd) 1export KDEPIMDIR = $(shell pwd)
2 2
3export KDEPIM_VERSION=$(shell sed -e 's/.*\"\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/' < version) 3export KDEPIM_VERSION=$(shell sed -e 's/.*\"\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/' < version)
4 4
5ifeq ($(PLATFORM) , zaurus) 5ifeq ($(PLATFORM) , zaurus)
6 BUILD_NO_LDAP_PLUGIN=1 6 BUILD_NO_LDAP_PLUGIN=1
7endif 7endif
8 8
9ifneq ($(PLATFORM) , zaurus) 9ifneq ($(PLATFORM) , zaurus)
10 BUILD_NO_SHARP_PLUGIN=1 10 BUILD_NO_SHARP_PLUGIN=1
11endif 11endif
12 12
13#opie plugin is deprecated. The qtopia plugin handles the task from now on. 13#opie plugin is deprecated. The qtopia plugin handles the task from now on.
14BUILD_NO_OPIE_PLUGIN=1 14BUILD_NO_OPIE_PLUGIN=1
15 15
16SUBDIRS_MICROKDE = \ 16SUBDIRS_MICROKDE = \
17 libical/src/libical \ 17 libical/src/libical \
18 libical/src/libicalss \ 18 libical/src/libicalss \
19 qtcompat \ 19 qtcompat \
20 microkde \ 20 microkde \
21 libkcal \ 21 libkcal \
22 libkdepim \ 22 libkdepim \
23 kabc \ 23 kabc \
24 kabc/formats/binary \ 24 kabc/formats/binary \
25 kabc/plugins/file \ 25 kabc/plugins/file \
26 kabc/plugins/dir \ 26 kabc/plugins/dir \
27 korganizer \ 27 korganizer \
28 kalarmd \ 28 kalarmd \
29 kaddressbook 29 kaddressbook
30 30
31SUBDIRS_QTOPIA_PLUGIN = \ 31SUBDIRS_QTOPIA_PLUGIN = \
32 kabc/plugins/qtopia 32 kabc/plugins/qtopia
33 33
34SUBDIRS_OPIE_PLUGIN = \ 34SUBDIRS_OPIE_PLUGIN = \
35 kabc/plugins/opie 35 kabc/plugins/opie
36 36
37SUBDIRS_SHARP_PLUGIN = \ 37SUBDIRS_SHARP_PLUGIN = \
38 kabc/plugins/sharpdtm 38 kabc/plugins/sharpdtm
39 39
40SUBDIRS_LDAP_PLUGIN = \ 40SUBDIRS_LDAP_PLUGIN = \
41 kabc/plugins/ldap 41 kabc/plugins/ldap
42 42
43SUBDIRS_MICROMAIL = \ 43SUBDIRS_MICROMAIL = \
44 kmicromail/libetpan \ 44 kmicromail/libetpan \
45 kmicromail/libmailwrapper \ 45 kmicromail/libmailwrapper \
46 kmicromail 46 kmicromail
47 47
48SUBDIRS_GAMMU = \ 48SUBDIRS_GAMMU = \
49 gammu/emb/common \ 49 gammu/emb/common \
50 gammu/emb/gammu 50 gammu/emb/gammu
51 51
52SUBDIRS_PWMANAGER = \ 52SUBDIRS_PWMANAGER = \
53 pwmanager/libcrypt/mpi \ 53 pwmanager/libcrypt/mpi \
54 pwmanager/libcrypt/error \ 54 pwmanager/libcrypt/error \
55 pwmanager/libcrypt/cipher \ 55 pwmanager/libcrypt/cipher \
56 pwmanager/libcrypt/zlib \ 56 pwmanager/libcrypt/zlib \
57 pwmanager/pwmanager 57 pwmanager/pwmanager
58 58
59SUBDIRS = \ 59SUBDIRS = \
60 $(SUBDIRS_MICROKDE) \ 60 $(SUBDIRS_MICROKDE) \
61 $(SUBDIRS_QTOPIA_PLUGIN) \ 61 $(SUBDIRS_QTOPIA_PLUGIN) \
62 $(SUBDIRS_OPIE_PLUGIN) \ 62 $(SUBDIRS_OPIE_PLUGIN) \
63 $(SUBDIRS_SHARP_PLUGIN) \ 63 $(SUBDIRS_SHARP_PLUGIN) \
64 $(SUBDIRS_LDAP_PLUGIN) \ 64 $(SUBDIRS_LDAP_PLUGIN) \
65 $(SUBDIRS_MICROMAIL) \ 65 $(SUBDIRS_MICROMAIL) \
66 $(SUBDIRS_GAMMU) \ 66 $(SUBDIRS_GAMMU) \
67 $(SUBDIRS_PWMANAGER) 67 $(SUBDIRS_PWMANAGER)
68 68
69 69
70all: build_microkde \ 70all: build_microkde \
71 build_qtopia_plugin \ 71 build_qtopia_plugin \
72 build_opie_plugin \ 72 build_opie_plugin \
73 build_sharp_plugin \ 73 build_sharp_plugin \
74 build_ldap_plugin \ 74 build_ldap_plugin \
75 build_micromail \ 75 build_micromail \
76 build_gammu \ 76 build_gammu \
77 build_pwmanager 77 build_pwmanager
78 78
79 79
80build_microkde: variable_test tmake 80build_microkde: variable_test tmake
81 for i in $(SUBDIRS_MICROKDE); do pushd $$i; \ 81 for i in $(SUBDIRS_MICROKDE); do pushd $$i; \
82 make -f Makefile$(PLATFORM) || exit 1; popd; \ 82 make -f Makefile$(PLATFORM) || exit 1; popd; \
83 done 83 done
84 84
85build_qtopia_plugin: build_microkde 85build_qtopia_plugin: build_microkde
86 ifdef BUILD_NO_QTOPIA_PLUGIN 86 ifdef BUILD_NO_QTOPIA_PLUGIN
87 @echo == qtopia plugin not build. 87 @echo == qtopia plugin not build.
88 else 88 else
89 for i in $(SUBDIRS_QTOPIA_PLUGIN); do pushd $$i; \ 89 for i in $(SUBDIRS_QTOPIA_PLUGIN); do pushd $$i; \
90 make -f Makefile$(PLATFORM) || exit 1; popd; \ 90 make -f Makefile$(PLATFORM) || exit 1; popd; \
91 done 91 done
92 endif 92 endif
93 93
94build_opie_plugin: build_microkde 94build_opie_plugin: build_microkde
95 ifdef BUILD_NO_OPIE_PLUGIN 95 ifdef BUILD_NO_OPIE_PLUGIN
96 @echo == opie plugin not build. 96 @echo == opie plugin not build.
97 else 97 else
98 for i in $(SUBDIRS_OPIE_PLUGIN); do pushd $$i; \ 98 for i in $(SUBDIRS_OPIE_PLUGIN); do pushd $$i; \
99 make -f Makefile$(PLATFORM) || exit 1; popd; \ 99 make -f Makefile$(PLATFORM) || exit 1; popd; \
100 done 100 done
101 endif 101 endif
102 102
103build_sharp_plugin: build_microkde 103build_sharp_plugin: build_microkde
104 ifdef BUILD_NO_SHARP_PLUGIN 104 ifdef BUILD_NO_SHARP_PLUGIN
105 @echo == ldap plugin not build. 105 @echo == ldap plugin not build.
106 else 106 else
107 for i in $(SUBDIRS_SHARP_PLUGIN); do pushd $$i; \ 107 for i in $(SUBDIRS_SHARP_PLUGIN); do pushd $$i; \
108 make -f Makefile$(PLATFORM) || exit 1; popd; \ 108 make -f Makefile$(PLATFORM) || exit 1; popd; \
109 done 109 done
110 endif 110 endif
111 111
112build_ldap_plugin: build_microkde 112build_ldap_plugin: build_microkde
113 ifdef BUILD_NO_LDAP_PLUGIN 113 ifdef BUILD_NO_LDAP_PLUGIN
114 @echo == ldap plugin not build. 114 @echo == ldap plugin not build.
115 else 115 else
116 for i in $(SUBDIRS_LDAP_PLUGIN); do pushd $$i; \ 116 for i in $(SUBDIRS_LDAP_PLUGIN); do pushd $$i; \
117 make -f Makefile$(PLATFORM) || exit 1; popd; \ 117 make -f Makefile$(PLATFORM) || exit 1; popd; \
118 done 118 done
119 endif 119 endif
120 120
121 121
122build_micromail: build_microkde 122build_micromail: build_microkde
123 ifdef BUILD_NO_MICROMAIL 123 ifdef BUILD_NO_MICROMAIL
124 @echo == kmicromail not build. 124 @echo == kmicromail not build.
125 else 125 else
126 for i in $(SUBDIRS_MICROMAIL); do pushd $$i; \ 126 for i in $(SUBDIRS_MICROMAIL); do pushd $$i; \
127 make -f Makefile$(PLATFORM) || exit 1; popd; \ 127 make -f Makefile$(PLATFORM) || exit 1; popd; \
128 done 128 done
129 endif 129 endif
130 130
131build_gammu: variable_test tmake 131build_gammu: variable_test tmake
132 ifdef BUILD_NO_GAMMU 132 ifdef BUILD_NO_GAMMU
133 @echo == gammu not build. 133 @echo == gammu not build.
134 else 134 else
135 for i in $(SUBDIRS_GAMMU); do pushd $$i; \ 135 for i in $(SUBDIRS_GAMMU); do pushd $$i; \
136 make -f Makefile$(PLATFORM) || exit 1; popd; \ 136 make -f Makefile$(PLATFORM) || exit 1; popd; \
137 done 137 done
138 endif 138 endif
139 139
140build_pwmanager: build_microkde 140build_pwmanager: build_microkde
141 ifdef BUILD_NO_PWMANAGER 141 ifdef BUILD_NO_PWMANAGER
142 @echo == pwmanager not build. 142 @echo == pwmanager not build.
143 else 143 else
144 for i in $(SUBDIRS_PWMANAGER); do pushd $$i; \ 144 for i in $(SUBDIRS_PWMANAGER); do pushd $$i; \
145 make -f Makefile$(PLATFORM) || exit 1; popd; \ 145 make -f Makefile$(PLATFORM) || exit 1; popd; \
146 done 146 done
147 endif 147 endif
148 148
149 149
150variable_info: 150variable_info:
151 @echo -------------------------------------- 151 @echo --------------------------------------
152 @echo KDEPIM buildsystem, variableinfo... 152 @echo KDEPIM buildsystem, variableinfo...
153 @echo KDEPIMDIR=$(KDEPIMDIR) 153 @echo KDEPIMDIR=$(KDEPIMDIR)
154 @echo QTDIR=$(QTDIR) 154 @echo QTDIR=$(QTDIR)
155 @echo QPEDIR=$(QPEDIR) 155 @echo QPEDIR=$(QPEDIR)
156 @echo OPIEDIR=$(OPIEDIR) 156 @echo OPIEDIR=$(OPIEDIR)
157 @echo PLATFORM=$(PLATFORM) 157 @echo PLATFORM=$(PLATFORM)
158 @echo RELEASE_DEBUG=$(RELEASE_DEBUG) 158 @echo RELEASE_DEBUG=$(RELEASE_DEBUG)
159 @echo BUILD_NO_MICROMAIL=$(BUILD_NO_MICROMAIL) 159 @echo BUILD_NO_MICROMAIL=$(BUILD_NO_MICROMAIL)
160 @echo BUILD_NO_LDAP_PLUGIN=$(BUILD_NO_LDAP_PLUGIN) 160 @echo BUILD_NO_LDAP_PLUGIN=$(BUILD_NO_LDAP_PLUGIN)
161 @echo BUILD_NO_OPIE_PLUGIN=$(BUILD_NO_OPIE_PLUGIN) 161 @echo BUILD_NO_OPIE_PLUGIN=$(BUILD_NO_OPIE_PLUGIN)
162 @echo BUILD_NO_QTOPIA_PLUGIN=$(BUILD_NO_QTOPIA_PLUGIN) 162 @echo BUILD_NO_QTOPIA_PLUGIN=$(BUILD_NO_QTOPIA_PLUGIN)
163 @echo BUILD_NO_SHARP_PLUGIN=$(BUILD_NO_SHARP_PLUGIN) 163 @echo BUILD_NO_SHARP_PLUGIN=$(BUILD_NO_SHARP_PLUGIN)
164 ifndef BUILD_NO_SHARP_PLUGIN 164 ifndef BUILD_NO_SHARP_PLUGIN
165 @echo SHARPDTMSDK=$(SHARPDTMSDK) 165 @echo SHARPDTMSDK=$(SHARPDTMSDK)
166 endif 166 endif
167 @echo BUILD_NO_GAMMU=$(BUILD_NO_GAMMU) 167 @echo BUILD_NO_GAMMU=$(BUILD_NO_GAMMU)
168 @echo BUILD_NO_PWMANAGER=$(BUILD_NO_PWMANAGER) 168 @echo BUILD_NO_PWMANAGER=$(BUILD_NO_PWMANAGER)
169 @echo -------------------------------------- 169 @echo --------------------------------------
170 170
171variable_test: variable_info 171variable_test: variable_info
172 @echo KDEPIM buildsystem, variablecheck... 172 @echo KDEPIM buildsystem, variablecheck...
173 ifndef KDEPIMDIR 173 ifndef KDEPIMDIR
174 @echo KDEPIMDIR is not defined. 174 @echo KDEPIMDIR is not defined.
175 $(error KDEPIMDIR is not defined) 175 $(error KDEPIMDIR is not defined)
176 endif 176 endif
177 ifndef PLATFORM 177 ifndef PLATFORM
178 @echo PLATFORM is not defined. 178 @echo PLATFORM is not defined.
179 $(error PLATFORM is not defined) 179 $(error PLATFORM is not defined)
180 endif 180 endif
181 ifdef BUILD_NO_LDAP_PLUGIN 181 ifdef BUILD_NO_LDAP_PLUGIN
182 @echo LDAP PLUGIN will not be build, because BUILD_NO_LDAP_PLUGIN is set to $(BUILD_NO_LDAP_PLUGIN) 182 @echo LDAP PLUGIN will not be build, because BUILD_NO_LDAP_PLUGIN is set to $(BUILD_NO_LDAP_PLUGIN)
183 endif 183 endif
184 ifdef BUILD_NO_OPIE_PLUGIN 184 ifdef BUILD_NO_OPIE_PLUGIN
185 @echo OPIE PLUGIN will not be build, because BUILD_NO_OPIE_PLUGIN is set to $(BUILD_NO_OPIE_PLUGIN) 185 @echo OPIE PLUGIN will not be build, because BUILD_NO_OPIE_PLUGIN is set to $(BUILD_NO_OPIE_PLUGIN)
186 endif 186 endif
187 ifdef BUILD_NO_QTOPIA_PLUGIN 187 ifdef BUILD_NO_QTOPIA_PLUGIN
188 @echo QTOPIA PLUGIN will not be build, because BUILD_NO__QTOPIA_PLUGIN is set to $(BUILD_NO__QTOPIA_PLUGIN) 188 @echo QTOPIA PLUGIN will not be build, because BUILD_NO__QTOPIA_PLUGIN is set to $(BUILD_NO__QTOPIA_PLUGIN)
189 endif 189 endif
190 ifdef BUILD_NO_MICROMAIL 190 ifdef BUILD_NO_MICROMAIL
191 @echo MICROMAIL will not be build, because BUILD_NO_MICROMAIL is set to $(BUILD_NO_MICROMAIL) 191 @echo MICROMAIL will not be build, because BUILD_NO_MICROMAIL is set to $(BUILD_NO_MICROMAIL)
192 endif 192 endif
193 ifdef BUILD_NO_SHARP_PLUGIN 193 ifdef BUILD_NO_SHARP_PLUGIN
194 @echo SHARP PLUGIN will not be build, because BUILD_NO_SHARP_PLUGIN is set to $(BUILD_NO_SHARP_PLUGIN) 194 @echo SHARP PLUGIN will not be build, because BUILD_NO_SHARP_PLUGIN is set to $(BUILD_NO_SHARP_PLUGIN)
195 else 195 else
196 ifndef SHARPDTMSDK 196 ifndef SHARPDTMSDK
197 @echo SHARP PLUGIN can not be build, because SHARPDTMSDK is set to $(SHARPDTMSDK) 197 @echo SHARP PLUGIN can not be build, because SHARPDTMSDK is set to $(SHARPDTMSDK)
198 $(error SHARPDTMSDK is not defined) 198 $(error SHARPDTMSDK is not defined)
199 endif 199 endif
200 endif 200 endif
201 ifdef BUILD_NO_GAMMU 201 ifdef BUILD_NO_GAMMU
202 @echo GAMMU will not be build, because BUILD_NO_GAMMU is set to $(BUILD_NO_GAMMU) 202 @echo GAMMU will not be build, because BUILD_NO_GAMMU is set to $(BUILD_NO_GAMMU)
203 endif 203 endif
204 ifdef BUILD_NO_PWMANAGER 204 ifdef BUILD_NO_PWMANAGER
205 @echo PWMANAGER will not be build, because BUILD_NO_PWMANAGER is set to $(BUILD_NO_PWMANAGER) 205 @echo PWMANAGER will not be build, because BUILD_NO_PWMANAGER is set to $(BUILD_NO_PWMANAGER)
206 endif 206 endif
207 @echo -------------------------------------- 207 @echo --------------------------------------
208 208
209 209
210objects: 210objects:
211 for i in $(SUBDIRS); do mkdir -p $$i/obj/$(PLATFORM); done 211 for i in $(SUBDIRS); do mkdir -p $$i/obj/$(PLATFORM); done
212 for i in $(SUBDIRS); do mkdir -p $$i/moc/$(PLATFORM); done 212 for i in $(SUBDIRS); do mkdir -p $$i/moc/$(PLATFORM); done
213 mkdir -p libical/lib/$(PLATFORM) 213 mkdir -p libical/lib/$(PLATFORM)
214 mkdir -p pwmanager/libcrypt/$(PLATFORM) 214 mkdir -p pwmanager/libcrypt/$(PLATFORM)
215 215
216clean: 216clean:
217 rm -rf libical/lib/$(PLATFORM)/*; 217 rm -rf libical/lib/$(PLATFORM)/*;
218 rm -rf pwmanager/libcrypt/$(PLATFORM)/*; 218 rm -rf pwmanager/libcrypt/$(PLATFORM)/*;
219 for i in $(SUBDIRS); do pushd $$i; make clean; rm -f *~;\ 219 for i in $(SUBDIRS); do pushd $$i; make clean; rm -f *~;\
220 rm -f obj/$(PLATFORM)/*; rm -f moc/$(PLATFORM)/*; rm Makefile$(PLATFORM); popd; \ 220 rm -f obj/$(PLATFORM)/*; rm -f moc/$(PLATFORM)/*; rm Makefile$(PLATFORM); popd; \
221 done 221 done
222 222
223pac: 223pac:
224 rm -f $(QPEDIR)/lib/libmicro* 224 rm -f $(QPEDIR)/lib/libmicro*
225 rm -f $(QPEDIR)/plugins/applets/libkopi* 225 rm -f $(QPEDIR)/plugins/applets/libkopi*
226 make 226 make
227 make install 227 make install
228 make dist 228 make dist
229install: 229install:
230 230
231 cd bin/kdepim; make install 231 cd bin/kdepim; make install
232 cp -r Pim $(QPEDIR)/apps 232 cp -r Pim $(QPEDIR)/apps
233 cp db2file/db2file $(QPEDIR)/bin/db2file 233 cp db2file/db2file $(QPEDIR)/bin/db2file
234 chmod ugo+x $(QPEDIR)/bin/db2file 234 chmod ugo+x $(QPEDIR)/bin/db2file
235 cp korganizer/korganizer.desktop $(QPEDIR)/apps/Pim/korganizer.desktop 235 cp korganizer/korganizer.desktop $(QPEDIR)/apps/Pim/korganizer.desktop
236 cp kaddressbook/kaddressbook.desktop $(QPEDIR)/apps/Pim/kaddressbook.desktop 236 cp kaddressbook/kaddressbook.desktop $(QPEDIR)/apps/Pim/kaddressbook.desktop
237 cp kmicromail/kmicromail.desktop $(QPEDIR)/apps/Pim/kopiemail.desktop 237 cp kmicromail/kmicromail.desktop $(QPEDIR)/apps/Pim/kopiemail.desktop
238 cp pwmanager/pwmanager/pwmanager.desktop $(QPEDIR)/apps/Pim/pwmanager.desktop 238 cp pwmanager/pwmanager/pwmanager.desktop $(QPEDIR)/apps/Pim/pwmanager.desktop
239 239
240dist: 240dist:
241 @echo Dont forget to do "make install" before "make dist" 241 @echo Dont forget to do "make install" before "make dist"
242 rm -f *arm.ipk 242 rm -f *arm.ipk
243 rm -f *ipk.zip 243 rm -f *ipk.zip
244 rm -f ../new_$(KDEPIM_VERSION)/* 244 rm -f ../new_$(KDEPIM_VERSION)/*
245 rm -f *~ 245 rm -f *~
246 cd ..;mkdir -p new_$(KDEPIM_VERSION) 246 cd ..;mkdir -p kdepimpi_$(KDEPIM_VERSION)
247 cd ../kdepimpi_$(KDEPIM_VERSION);mkdir -p ipk
247 cd ..; tar czf kdepimpi-$(KDEPIM_VERSION).tar.gz --exclude=obj --exclude=moc --exclude=CVS --exclude=Makefilezaurus --exclude=Makefileqtopia kdepim 248 cd ..; tar czf kdepimpi-$(KDEPIM_VERSION).tar.gz --exclude=obj --exclude=moc --exclude=CVS --exclude=Makefilezaurus --exclude=Makefileqtopia kdepim
248 mkipks kmicrokdelibs.control 249 mkipks kmicrokdelibs.control
249 mkipks korganizer.control 250 mkipks korganizer.control
250 mkipks kaddressbook.control 251 mkipks kaddressbook.control
251 ifndef BUILD_NO_MICROMAIL 252 ifndef BUILD_NO_MICROMAIL
252 mkipks kopiemail.control 253 mkipks kopiemail.control
253 endif 254 endif
254 ifndef BUILD_NO_SHARP_PLUGIN 255 ifndef BUILD_NO_SHARP_PLUGIN
255 mkipks ksharpPIM-DTMaccess.control 256 mkipks ksharpPIM-DTMaccess.control
256 endif 257 endif
257 mkipks korganizer-alarm.control 258 mkipks korganizer-alarm.control
258 ifndef BUILD_NO_GAMMU 259 ifndef BUILD_NO_GAMMU
259 mkipks kmobilephoneaccess.control 260 mkipks kmobilephoneaccess.control
260 endif 261 endif
261 ifndef BUILD_NO_PWMANAGER 262 ifndef BUILD_NO_PWMANAGER
262 mkipks pwmanager.control 263 mkipks pwmanager.control
263 endif 264 endif
264 mkipks pimTABicon.control 265 mkipks pimTABicon.control
265 zip kdepim_$(KDEPIM_VERSION)_for_SharpRom.ipk.zip *.ipk ReleaseNotes.txt 266 zip kdepim_$(KDEPIM_VERSION)_for_SharpRom.ipk.zip *.ipk ReleaseNotes.txt
266 mv *.ipk ../new_$(KDEPIM_VERSION)/ 267 mv *.ipk ../kdepimpi_$(KDEPIM_VERSION)/ipk/
267 mv *for_SharpRom.ipk.zip ../new_$(KDEPIM_VERSION)/ 268 mv *for_SharpRom.ipk.zip ../kdepimpi_$(KDEPIM_VERSION)/
268 mv ../kdepimpi-$(KDEPIM_VERSION).tar.gz ../new_$(KDEPIM_VERSION)/ 269 mv ../kdepimpi-$(KDEPIM_VERSION).tar.gz ../kdepimpi_$(KDEPIM_VERSION)/
269 270
270tmake: objects \ 271tmake: objects \
271 qtcompat/Makefile$(PLATFORM) \ 272 qtcompat/Makefile$(PLATFORM) \
272 microkde/Makefile$(PLATFORM) \ 273 microkde/Makefile$(PLATFORM) \
273 libkcal/Makefile$(PLATFORM) \ 274 libkcal/Makefile$(PLATFORM) \
274 libkdepim/Makefile$(PLATFORM) \ 275 libkdepim/Makefile$(PLATFORM) \
275 korganizer/Makefile$(PLATFORM) \ 276 korganizer/Makefile$(PLATFORM) \
276 kalarmd/Makefile$(PLATFORM) \ 277 kalarmd/Makefile$(PLATFORM) \
277 libical/src/libical/Makefile$(PLATFORM) \ 278 libical/src/libical/Makefile$(PLATFORM) \
278 libical/src/libicalss/Makefile$(PLATFORM) \ 279 libical/src/libicalss/Makefile$(PLATFORM) \
279 kabc/Makefile$(PLATFORM) \ 280 kabc/Makefile$(PLATFORM) \
280 kabc/formats/binary/Makefile$(PLATFORM) \ 281 kabc/formats/binary/Makefile$(PLATFORM) \
281 kabc/plugins/file/Makefile$(PLATFORM) \ 282 kabc/plugins/file/Makefile$(PLATFORM) \
282 kabc/plugins/dir/Makefile$(PLATFORM) \ 283 kabc/plugins/dir/Makefile$(PLATFORM) \
283 kabc/plugins/ldap/Makefile$(PLATFORM) \ 284 kabc/plugins/ldap/Makefile$(PLATFORM) \
284 kabc/plugins/opie/Makefile$(PLATFORM) \ 285 kabc/plugins/opie/Makefile$(PLATFORM) \
285 kabc/plugins/qtopia/Makefile$(PLATFORM) \ 286 kabc/plugins/qtopia/Makefile$(PLATFORM) \
286 kabc/plugins/sharpdtm/Makefile$(PLATFORM) \ 287 kabc/plugins/sharpdtm/Makefile$(PLATFORM) \
287 kaddressbook/Makefile$(PLATFORM) \ 288 kaddressbook/Makefile$(PLATFORM) \
288 kmicromail/Makefile$(PLATFORM) \ 289 kmicromail/Makefile$(PLATFORM) \
289 kmicromail/libetpan/Makefile$(PLATFORM) \ 290 kmicromail/libetpan/Makefile$(PLATFORM) \
290 kmicromail/libmailwrapper/Makefile$(PLATFORM) \ 291 kmicromail/libmailwrapper/Makefile$(PLATFORM) \
291 gammu/emb/common/Makefile$(PLATFORM) \ 292 gammu/emb/common/Makefile$(PLATFORM) \
292 gammu/emb/gammu/Makefile$(PLATFORM) \ 293 gammu/emb/gammu/Makefile$(PLATFORM) \
293 pwmanager/pwmanager/Makefile$(PLATFORM) \ 294 pwmanager/pwmanager/Makefile$(PLATFORM) \
294 pwmanager/libcrypt/mpi/Makefile$(PLATFORM) \ 295 pwmanager/libcrypt/mpi/Makefile$(PLATFORM) \
295 pwmanager/libcrypt/error/Makefile$(PLATFORM) \ 296 pwmanager/libcrypt/error/Makefile$(PLATFORM) \
296 pwmanager/libcrypt/cipher/Makefile$(PLATFORM) \ 297 pwmanager/libcrypt/cipher/Makefile$(PLATFORM) \
297 pwmanager/libcrypt/zlib/Makefile$(PLATFORM) 298 pwmanager/libcrypt/zlib/Makefile$(PLATFORM)
298 299
299qtcompat/Makefile$(PLATFORM): qtcompat/qtcompat.pro 300qtcompat/Makefile$(PLATFORM): qtcompat/qtcompat.pro
300 cd qtcompat; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtcompat.pro -o Makefile$(PLATFORM) 301 cd qtcompat; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtcompat.pro -o Makefile$(PLATFORM)
301 302
302microkde/Makefile$(PLATFORM): microkde/microkdeE.pro 303microkde/Makefile$(PLATFORM): microkde/microkdeE.pro
303 cd microkde; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" microkdeE.pro -o Makefile$(PLATFORM) 304 cd microkde; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" microkdeE.pro -o Makefile$(PLATFORM)
304 305
305libkcal/Makefile$(PLATFORM): libkcal/libkcalE.pro 306libkcal/Makefile$(PLATFORM): libkcal/libkcalE.pro
306 cd libkcal; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkcalE.pro -o Makefile$(PLATFORM) 307 cd libkcal; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkcalE.pro -o Makefile$(PLATFORM)
307 308
308 309
309libkdepim/Makefile$(PLATFORM): libkdepim/libkdepimE.pro 310libkdepim/Makefile$(PLATFORM): libkdepim/libkdepimE.pro
310 cd libkdepim; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkdepimE.pro -o Makefile$(PLATFORM) 311 cd libkdepim; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkdepimE.pro -o Makefile$(PLATFORM)
311 312
312kalarmd/Makefile$(PLATFORM): kalarmd/kalarmdE.pro 313kalarmd/Makefile$(PLATFORM): kalarmd/kalarmdE.pro
313 cd kalarmd; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kalarmdE.pro -o Makefile$(PLATFORM) 314 cd kalarmd; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kalarmdE.pro -o Makefile$(PLATFORM)
314 315
315korganizer/Makefile$(PLATFORM): korganizer/korganizerE.pro 316korganizer/Makefile$(PLATFORM): korganizer/korganizerE.pro
316 cd korganizer; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" korganizerE.pro -o Makefile$(PLATFORM) 317 cd korganizer; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" korganizerE.pro -o Makefile$(PLATFORM)
317 318
318libical/src/libical/Makefile$(PLATFORM): libical/src/libical/libicalE.pro 319libical/src/libical/Makefile$(PLATFORM): libical/src/libical/libicalE.pro
319 cd libical/src/libical; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalE.pro -o Makefile$(PLATFORM) 320 cd libical/src/libical; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalE.pro -o Makefile$(PLATFORM)
320 321
321libical/src/libicalss/Makefile$(PLATFORM): libical/src/libicalss/libicalssE.pro 322libical/src/libicalss/Makefile$(PLATFORM): libical/src/libicalss/libicalssE.pro
322 cd libical/src/libicalss; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalssE.pro -o Makefile$(PLATFORM) 323 cd libical/src/libicalss; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalssE.pro -o Makefile$(PLATFORM)
323 324
324kabc/Makefile$(PLATFORM): kabc/kabcE.pro 325kabc/Makefile$(PLATFORM): kabc/kabcE.pro
325 cd kabc; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcE.pro -o Makefile$(PLATFORM) 326 cd kabc; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcE.pro -o Makefile$(PLATFORM)
326 327
327kabc/formats/binary/Makefile$(PLATFORM): kabc/formats/binary/kabcformat_binaryE.pro 328kabc/formats/binary/Makefile$(PLATFORM): kabc/formats/binary/kabcformat_binaryE.pro
328 cd kabc/formats/binary; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcformat_binaryE.pro -o Makefile$(PLATFORM) 329 cd kabc/formats/binary; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcformat_binaryE.pro -o Makefile$(PLATFORM)
329 330
330kabc/plugins/file/Makefile$(PLATFORM): kabc/plugins/file/fileE.pro 331kabc/plugins/file/Makefile$(PLATFORM): kabc/plugins/file/fileE.pro
331 cd kabc/plugins/file; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" fileE.pro -o Makefile$(PLATFORM) 332 cd kabc/plugins/file; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" fileE.pro -o Makefile$(PLATFORM)
332 333
333kabc/plugins/dir/Makefile$(PLATFORM): kabc/plugins/dir/dirE.pro 334kabc/plugins/dir/Makefile$(PLATFORM): kabc/plugins/dir/dirE.pro
334 cd kabc/plugins/dir; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" dirE.pro -o Makefile$(PLATFORM) 335 cd kabc/plugins/dir; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" dirE.pro -o Makefile$(PLATFORM)
335 336
336kabc/plugins/ldap/Makefile$(PLATFORM): kabc/plugins/ldap/ldapE.pro 337kabc/plugins/ldap/Makefile$(PLATFORM): kabc/plugins/ldap/ldapE.pro
337 cd kabc/plugins/ldap; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" ldapE.pro -o Makefile$(PLATFORM) 338 cd kabc/plugins/ldap; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" ldapE.pro -o Makefile$(PLATFORM)
338 339
339kabc/plugins/opie/Makefile$(PLATFORM): kabc/plugins/opie/opieE.pro 340kabc/plugins/opie/Makefile$(PLATFORM): kabc/plugins/opie/opieE.pro
340 cd kabc/plugins/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" opieE.pro -o Makefile$(PLATFORM) 341 cd kabc/plugins/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" opieE.pro -o Makefile$(PLATFORM)
341 342
342kabc/plugins/qtopia/Makefile$(PLATFORM): kabc/plugins/qtopia/qtopiaE.pro 343kabc/plugins/qtopia/Makefile$(PLATFORM): kabc/plugins/qtopia/qtopiaE.pro
343 cd kabc/plugins/qtopia; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtopiaE.pro -o Makefile$(PLATFORM) 344 cd kabc/plugins/qtopia; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtopiaE.pro -o Makefile$(PLATFORM)
344 345
345kabc/plugins/sharpdtm/Makefile$(PLATFORM): kabc/plugins/sharpdtm/sharpdtmE.pro 346kabc/plugins/sharpdtm/Makefile$(PLATFORM): kabc/plugins/sharpdtm/sharpdtmE.pro
346 cd kabc/plugins/sharpdtm; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" sharpdtmE.pro -o Makefile$(PLATFORM) 347 cd kabc/plugins/sharpdtm; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" sharpdtmE.pro -o Makefile$(PLATFORM)
347 348
348kaddressbook/Makefile$(PLATFORM): kaddressbook/kaddressbookE.pro 349kaddressbook/Makefile$(PLATFORM): kaddressbook/kaddressbookE.pro
349 cd kaddressbook; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kaddressbookE.pro -o Makefile$(PLATFORM) 350 cd kaddressbook; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kaddressbookE.pro -o Makefile$(PLATFORM)
350 351
351kmicromail/Makefile$(PLATFORM): kmicromail/kmicromailE.pro 352kmicromail/Makefile$(PLATFORM): kmicromail/kmicromailE.pro
352 cd kmicromail; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kmicromailE.pro -o Makefile$(PLATFORM) 353 cd kmicromail; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kmicromailE.pro -o Makefile$(PLATFORM)
353 354
354kmicromail/libetpan/Makefile$(PLATFORM): kmicromail/libetpan/libetpanE.pro 355kmicromail/libetpan/Makefile$(PLATFORM): kmicromail/libetpan/libetpanE.pro
355 cd kmicromail/libetpan; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libetpanE.pro -o Makefile$(PLATFORM) 356 cd kmicromail/libetpan; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libetpanE.pro -o Makefile$(PLATFORM)
356 357
357kmicromail/libmailwrapper/Makefile$(PLATFORM): kmicromail/libmailwrapper/libmailwrapperE.pro 358kmicromail/libmailwrapper/Makefile$(PLATFORM): kmicromail/libmailwrapper/libmailwrapperE.pro
358 cd kmicromail/libmailwrapper; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libmailwrapperE.pro -o Makefile$(PLATFORM) 359 cd kmicromail/libmailwrapper; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libmailwrapperE.pro -o Makefile$(PLATFORM)
359 360
360gammu/emb/common/Makefile$(PLATFORM): gammu/emb/common/commonE.pro 361gammu/emb/common/Makefile$(PLATFORM): gammu/emb/common/commonE.pro
361 cd gammu/emb/common; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" commonE.pro -o Makefile$(PLATFORM) 362 cd gammu/emb/common; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" commonE.pro -o Makefile$(PLATFORM)
362 363
363gammu/emb/gammu/Makefile$(PLATFORM): gammu/emb/gammu/gammuE.pro 364gammu/emb/gammu/Makefile$(PLATFORM): gammu/emb/gammu/gammuE.pro
364 cd gammu/emb/gammu; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" gammuE.pro -o Makefile$(PLATFORM) 365 cd gammu/emb/gammu; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" gammuE.pro -o Makefile$(PLATFORM)
365 366
366pwmanager/pwmanager/Makefile$(PLATFORM): pwmanager/pwmanager/pwmanagerE.pro 367pwmanager/pwmanager/Makefile$(PLATFORM): pwmanager/pwmanager/pwmanagerE.pro
367 cd pwmanager/pwmanager; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" pwmanagerE.pro -o Makefile$(PLATFORM) 368 cd pwmanager/pwmanager; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" pwmanagerE.pro -o Makefile$(PLATFORM)
368 369
369 370
370pwmanager/libcrypt/mpi/Makefile$(PLATFORM): pwmanager/libcrypt/mpi/mpi.pro 371pwmanager/libcrypt/mpi/Makefile$(PLATFORM): pwmanager/libcrypt/mpi/mpi.pro
371 cd pwmanager/libcrypt/mpi;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" mpi.pro -o Makefile$(PLATFORM) 372 cd pwmanager/libcrypt/mpi;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" mpi.pro -o Makefile$(PLATFORM)
372 373
373pwmanager/libcrypt/error/Makefile$(PLATFORM): pwmanager/libcrypt/error/error.pro 374pwmanager/libcrypt/error/Makefile$(PLATFORM): pwmanager/libcrypt/error/error.pro
374 cd pwmanager/libcrypt/error;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" error.pro -o Makefile$(PLATFORM) 375 cd pwmanager/libcrypt/error;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" error.pro -o Makefile$(PLATFORM)
375 376
376pwmanager/libcrypt/cipher/Makefile$(PLATFORM): pwmanager/libcrypt/cipher/cipher.pro 377pwmanager/libcrypt/cipher/Makefile$(PLATFORM): pwmanager/libcrypt/cipher/cipher.pro
377 cd pwmanager/libcrypt/cipher;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" cipher.pro -o Makefile$(PLATFORM) 378 cd pwmanager/libcrypt/cipher;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" cipher.pro -o Makefile$(PLATFORM)
378 379
379pwmanager/libcrypt/zlib/Makefile$(PLATFORM): pwmanager/libcrypt/zlib/zlib.pro 380pwmanager/libcrypt/zlib/Makefile$(PLATFORM): pwmanager/libcrypt/zlib/zlib.pro
380 cd pwmanager/libcrypt/zlib;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" zlib.pro -o Makefile$(PLATFORM) 381 cd pwmanager/libcrypt/zlib;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" zlib.pro -o Makefile$(PLATFORM)
381 382
382 383
diff --git a/Makefile.Embedded b/Makefile.Embedded
index 68619b9..9656532 100644
--- a/Makefile.Embedded
+++ b/Makefile.Embedded
@@ -1,382 +1,383 @@
1export KDEPIMDIR = $(shell pwd) 1export KDEPIMDIR = $(shell pwd)
2 2
3export KDEPIM_VERSION=$(shell sed -e 's/.*\"\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/' < version) 3export KDEPIM_VERSION=$(shell sed -e 's/.*\"\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/' < version)
4 4
5ifeq ($(PLATFORM) , zaurus) 5ifeq ($(PLATFORM) , zaurus)
6 BUILD_NO_LDAP_PLUGIN=1 6 BUILD_NO_LDAP_PLUGIN=1
7endif 7endif
8 8
9ifneq ($(PLATFORM) , zaurus) 9ifneq ($(PLATFORM) , zaurus)
10 BUILD_NO_SHARP_PLUGIN=1 10 BUILD_NO_SHARP_PLUGIN=1
11endif 11endif
12 12
13#opie plugin is deprecated. The qtopia plugin handles the task from now on. 13#opie plugin is deprecated. The qtopia plugin handles the task from now on.
14BUILD_NO_OPIE_PLUGIN=1 14BUILD_NO_OPIE_PLUGIN=1
15 15
16SUBDIRS_MICROKDE = \ 16SUBDIRS_MICROKDE = \
17 libical/src/libical \ 17 libical/src/libical \
18 libical/src/libicalss \ 18 libical/src/libicalss \
19 qtcompat \ 19 qtcompat \
20 microkde \ 20 microkde \
21 libkcal \ 21 libkcal \
22 libkdepim \ 22 libkdepim \
23 kabc \ 23 kabc \
24 kabc/formats/binary \ 24 kabc/formats/binary \
25 kabc/plugins/file \ 25 kabc/plugins/file \
26 kabc/plugins/dir \ 26 kabc/plugins/dir \
27 korganizer \ 27 korganizer \
28 kalarmd \ 28 kalarmd \
29 kaddressbook 29 kaddressbook
30 30
31SUBDIRS_QTOPIA_PLUGIN = \ 31SUBDIRS_QTOPIA_PLUGIN = \
32 kabc/plugins/qtopia 32 kabc/plugins/qtopia
33 33
34SUBDIRS_OPIE_PLUGIN = \ 34SUBDIRS_OPIE_PLUGIN = \
35 kabc/plugins/opie 35 kabc/plugins/opie
36 36
37SUBDIRS_SHARP_PLUGIN = \ 37SUBDIRS_SHARP_PLUGIN = \
38 kabc/plugins/sharpdtm 38 kabc/plugins/sharpdtm
39 39
40SUBDIRS_LDAP_PLUGIN = \ 40SUBDIRS_LDAP_PLUGIN = \
41 kabc/plugins/ldap 41 kabc/plugins/ldap
42 42
43SUBDIRS_MICROMAIL = \ 43SUBDIRS_MICROMAIL = \
44 kmicromail/libetpan \ 44 kmicromail/libetpan \
45 kmicromail/libmailwrapper \ 45 kmicromail/libmailwrapper \
46 kmicromail 46 kmicromail
47 47
48SUBDIRS_GAMMU = \ 48SUBDIRS_GAMMU = \
49 gammu/emb/common \ 49 gammu/emb/common \
50 gammu/emb/gammu 50 gammu/emb/gammu
51 51
52SUBDIRS_PWMANAGER = \ 52SUBDIRS_PWMANAGER = \
53 pwmanager/libcrypt/mpi \ 53 pwmanager/libcrypt/mpi \
54 pwmanager/libcrypt/error \ 54 pwmanager/libcrypt/error \
55 pwmanager/libcrypt/cipher \ 55 pwmanager/libcrypt/cipher \
56 pwmanager/libcrypt/zlib \ 56 pwmanager/libcrypt/zlib \
57 pwmanager/pwmanager 57 pwmanager/pwmanager
58 58
59SUBDIRS = \ 59SUBDIRS = \
60 $(SUBDIRS_MICROKDE) \ 60 $(SUBDIRS_MICROKDE) \
61 $(SUBDIRS_QTOPIA_PLUGIN) \ 61 $(SUBDIRS_QTOPIA_PLUGIN) \
62 $(SUBDIRS_OPIE_PLUGIN) \ 62 $(SUBDIRS_OPIE_PLUGIN) \
63 $(SUBDIRS_SHARP_PLUGIN) \ 63 $(SUBDIRS_SHARP_PLUGIN) \
64 $(SUBDIRS_LDAP_PLUGIN) \ 64 $(SUBDIRS_LDAP_PLUGIN) \
65 $(SUBDIRS_MICROMAIL) \ 65 $(SUBDIRS_MICROMAIL) \
66 $(SUBDIRS_GAMMU) \ 66 $(SUBDIRS_GAMMU) \
67 $(SUBDIRS_PWMANAGER) 67 $(SUBDIRS_PWMANAGER)
68 68
69 69
70all: build_microkde \ 70all: build_microkde \
71 build_qtopia_plugin \ 71 build_qtopia_plugin \
72 build_opie_plugin \ 72 build_opie_plugin \
73 build_sharp_plugin \ 73 build_sharp_plugin \
74 build_ldap_plugin \ 74 build_ldap_plugin \
75 build_micromail \ 75 build_micromail \
76 build_gammu \ 76 build_gammu \
77 build_pwmanager 77 build_pwmanager
78 78
79 79
80build_microkde: variable_test tmake 80build_microkde: variable_test tmake
81 for i in $(SUBDIRS_MICROKDE); do pushd $$i; \ 81 for i in $(SUBDIRS_MICROKDE); do pushd $$i; \
82 make -f Makefile$(PLATFORM) || exit 1; popd; \ 82 make -f Makefile$(PLATFORM) || exit 1; popd; \
83 done 83 done
84 84
85build_qtopia_plugin: build_microkde 85build_qtopia_plugin: build_microkde
86 ifdef BUILD_NO_QTOPIA_PLUGIN 86 ifdef BUILD_NO_QTOPIA_PLUGIN
87 @echo == qtopia plugin not build. 87 @echo == qtopia plugin not build.
88 else 88 else
89 for i in $(SUBDIRS_QTOPIA_PLUGIN); do pushd $$i; \ 89 for i in $(SUBDIRS_QTOPIA_PLUGIN); do pushd $$i; \
90 make -f Makefile$(PLATFORM) || exit 1; popd; \ 90 make -f Makefile$(PLATFORM) || exit 1; popd; \
91 done 91 done
92 endif 92 endif
93 93
94build_opie_plugin: build_microkde 94build_opie_plugin: build_microkde
95 ifdef BUILD_NO_OPIE_PLUGIN 95 ifdef BUILD_NO_OPIE_PLUGIN
96 @echo == opie plugin not build. 96 @echo == opie plugin not build.
97 else 97 else
98 for i in $(SUBDIRS_OPIE_PLUGIN); do pushd $$i; \ 98 for i in $(SUBDIRS_OPIE_PLUGIN); do pushd $$i; \
99 make -f Makefile$(PLATFORM) || exit 1; popd; \ 99 make -f Makefile$(PLATFORM) || exit 1; popd; \
100 done 100 done
101 endif 101 endif
102 102
103build_sharp_plugin: build_microkde 103build_sharp_plugin: build_microkde
104 ifdef BUILD_NO_SHARP_PLUGIN 104 ifdef BUILD_NO_SHARP_PLUGIN
105 @echo == ldap plugin not build. 105 @echo == ldap plugin not build.
106 else 106 else
107 for i in $(SUBDIRS_SHARP_PLUGIN); do pushd $$i; \ 107 for i in $(SUBDIRS_SHARP_PLUGIN); do pushd $$i; \
108 make -f Makefile$(PLATFORM) || exit 1; popd; \ 108 make -f Makefile$(PLATFORM) || exit 1; popd; \
109 done 109 done
110 endif 110 endif
111 111
112build_ldap_plugin: build_microkde 112build_ldap_plugin: build_microkde
113 ifdef BUILD_NO_LDAP_PLUGIN 113 ifdef BUILD_NO_LDAP_PLUGIN
114 @echo == ldap plugin not build. 114 @echo == ldap plugin not build.
115 else 115 else
116 for i in $(SUBDIRS_LDAP_PLUGIN); do pushd $$i; \ 116 for i in $(SUBDIRS_LDAP_PLUGIN); do pushd $$i; \
117 make -f Makefile$(PLATFORM) || exit 1; popd; \ 117 make -f Makefile$(PLATFORM) || exit 1; popd; \
118 done 118 done
119 endif 119 endif
120 120
121 121
122build_micromail: build_microkde 122build_micromail: build_microkde
123 ifdef BUILD_NO_MICROMAIL 123 ifdef BUILD_NO_MICROMAIL
124 @echo == kmicromail not build. 124 @echo == kmicromail not build.
125 else 125 else
126 for i in $(SUBDIRS_MICROMAIL); do pushd $$i; \ 126 for i in $(SUBDIRS_MICROMAIL); do pushd $$i; \
127 make -f Makefile$(PLATFORM) || exit 1; popd; \ 127 make -f Makefile$(PLATFORM) || exit 1; popd; \
128 done 128 done
129 endif 129 endif
130 130
131build_gammu: variable_test tmake 131build_gammu: variable_test tmake
132 ifdef BUILD_NO_GAMMU 132 ifdef BUILD_NO_GAMMU
133 @echo == gammu not build. 133 @echo == gammu not build.
134 else 134 else
135 for i in $(SUBDIRS_GAMMU); do pushd $$i; \ 135 for i in $(SUBDIRS_GAMMU); do pushd $$i; \
136 make -f Makefile$(PLATFORM) || exit 1; popd; \ 136 make -f Makefile$(PLATFORM) || exit 1; popd; \
137 done 137 done
138 endif 138 endif
139 139
140build_pwmanager: build_microkde 140build_pwmanager: build_microkde
141 ifdef BUILD_NO_PWMANAGER 141 ifdef BUILD_NO_PWMANAGER
142 @echo == pwmanager not build. 142 @echo == pwmanager not build.
143 else 143 else
144 for i in $(SUBDIRS_PWMANAGER); do pushd $$i; \ 144 for i in $(SUBDIRS_PWMANAGER); do pushd $$i; \
145 make -f Makefile$(PLATFORM) || exit 1; popd; \ 145 make -f Makefile$(PLATFORM) || exit 1; popd; \
146 done 146 done
147 endif 147 endif
148 148
149 149
150variable_info: 150variable_info:
151 @echo -------------------------------------- 151 @echo --------------------------------------
152 @echo KDEPIM buildsystem, variableinfo... 152 @echo KDEPIM buildsystem, variableinfo...
153 @echo KDEPIMDIR=$(KDEPIMDIR) 153 @echo KDEPIMDIR=$(KDEPIMDIR)
154 @echo QTDIR=$(QTDIR) 154 @echo QTDIR=$(QTDIR)
155 @echo QPEDIR=$(QPEDIR) 155 @echo QPEDIR=$(QPEDIR)
156 @echo OPIEDIR=$(OPIEDIR) 156 @echo OPIEDIR=$(OPIEDIR)
157 @echo PLATFORM=$(PLATFORM) 157 @echo PLATFORM=$(PLATFORM)
158 @echo RELEASE_DEBUG=$(RELEASE_DEBUG) 158 @echo RELEASE_DEBUG=$(RELEASE_DEBUG)
159 @echo BUILD_NO_MICROMAIL=$(BUILD_NO_MICROMAIL) 159 @echo BUILD_NO_MICROMAIL=$(BUILD_NO_MICROMAIL)
160 @echo BUILD_NO_LDAP_PLUGIN=$(BUILD_NO_LDAP_PLUGIN) 160 @echo BUILD_NO_LDAP_PLUGIN=$(BUILD_NO_LDAP_PLUGIN)
161 @echo BUILD_NO_OPIE_PLUGIN=$(BUILD_NO_OPIE_PLUGIN) 161 @echo BUILD_NO_OPIE_PLUGIN=$(BUILD_NO_OPIE_PLUGIN)
162 @echo BUILD_NO_QTOPIA_PLUGIN=$(BUILD_NO_QTOPIA_PLUGIN) 162 @echo BUILD_NO_QTOPIA_PLUGIN=$(BUILD_NO_QTOPIA_PLUGIN)
163 @echo BUILD_NO_SHARP_PLUGIN=$(BUILD_NO_SHARP_PLUGIN) 163 @echo BUILD_NO_SHARP_PLUGIN=$(BUILD_NO_SHARP_PLUGIN)
164 ifndef BUILD_NO_SHARP_PLUGIN 164 ifndef BUILD_NO_SHARP_PLUGIN
165 @echo SHARPDTMSDK=$(SHARPDTMSDK) 165 @echo SHARPDTMSDK=$(SHARPDTMSDK)
166 endif 166 endif
167 @echo BUILD_NO_GAMMU=$(BUILD_NO_GAMMU) 167 @echo BUILD_NO_GAMMU=$(BUILD_NO_GAMMU)
168 @echo BUILD_NO_PWMANAGER=$(BUILD_NO_PWMANAGER) 168 @echo BUILD_NO_PWMANAGER=$(BUILD_NO_PWMANAGER)
169 @echo -------------------------------------- 169 @echo --------------------------------------
170 170
171variable_test: variable_info 171variable_test: variable_info
172 @echo KDEPIM buildsystem, variablecheck... 172 @echo KDEPIM buildsystem, variablecheck...
173 ifndef KDEPIMDIR 173 ifndef KDEPIMDIR
174 @echo KDEPIMDIR is not defined. 174 @echo KDEPIMDIR is not defined.
175 $(error KDEPIMDIR is not defined) 175 $(error KDEPIMDIR is not defined)
176 endif 176 endif
177 ifndef PLATFORM 177 ifndef PLATFORM
178 @echo PLATFORM is not defined. 178 @echo PLATFORM is not defined.
179 $(error PLATFORM is not defined) 179 $(error PLATFORM is not defined)
180 endif 180 endif
181 ifdef BUILD_NO_LDAP_PLUGIN 181 ifdef BUILD_NO_LDAP_PLUGIN
182 @echo LDAP PLUGIN will not be build, because BUILD_NO_LDAP_PLUGIN is set to $(BUILD_NO_LDAP_PLUGIN) 182 @echo LDAP PLUGIN will not be build, because BUILD_NO_LDAP_PLUGIN is set to $(BUILD_NO_LDAP_PLUGIN)
183 endif 183 endif
184 ifdef BUILD_NO_OPIE_PLUGIN 184 ifdef BUILD_NO_OPIE_PLUGIN
185 @echo OPIE PLUGIN will not be build, because BUILD_NO_OPIE_PLUGIN is set to $(BUILD_NO_OPIE_PLUGIN) 185 @echo OPIE PLUGIN will not be build, because BUILD_NO_OPIE_PLUGIN is set to $(BUILD_NO_OPIE_PLUGIN)
186 endif 186 endif
187 ifdef BUILD_NO_QTOPIA_PLUGIN 187 ifdef BUILD_NO_QTOPIA_PLUGIN
188 @echo QTOPIA PLUGIN will not be build, because BUILD_NO__QTOPIA_PLUGIN is set to $(BUILD_NO__QTOPIA_PLUGIN) 188 @echo QTOPIA PLUGIN will not be build, because BUILD_NO__QTOPIA_PLUGIN is set to $(BUILD_NO__QTOPIA_PLUGIN)
189 endif 189 endif
190 ifdef BUILD_NO_MICROMAIL 190 ifdef BUILD_NO_MICROMAIL
191 @echo MICROMAIL will not be build, because BUILD_NO_MICROMAIL is set to $(BUILD_NO_MICROMAIL) 191 @echo MICROMAIL will not be build, because BUILD_NO_MICROMAIL is set to $(BUILD_NO_MICROMAIL)
192 endif 192 endif
193 ifdef BUILD_NO_SHARP_PLUGIN 193 ifdef BUILD_NO_SHARP_PLUGIN
194 @echo SHARP PLUGIN will not be build, because BUILD_NO_SHARP_PLUGIN is set to $(BUILD_NO_SHARP_PLUGIN) 194 @echo SHARP PLUGIN will not be build, because BUILD_NO_SHARP_PLUGIN is set to $(BUILD_NO_SHARP_PLUGIN)
195 else 195 else
196 ifndef SHARPDTMSDK 196 ifndef SHARPDTMSDK
197 @echo SHARP PLUGIN can not be build, because SHARPDTMSDK is set to $(SHARPDTMSDK) 197 @echo SHARP PLUGIN can not be build, because SHARPDTMSDK is set to $(SHARPDTMSDK)
198 $(error SHARPDTMSDK is not defined) 198 $(error SHARPDTMSDK is not defined)
199 endif 199 endif
200 endif 200 endif
201 ifdef BUILD_NO_GAMMU 201 ifdef BUILD_NO_GAMMU
202 @echo GAMMU will not be build, because BUILD_NO_GAMMU is set to $(BUILD_NO_GAMMU) 202 @echo GAMMU will not be build, because BUILD_NO_GAMMU is set to $(BUILD_NO_GAMMU)
203 endif 203 endif
204 ifdef BUILD_NO_PWMANAGER 204 ifdef BUILD_NO_PWMANAGER
205 @echo PWMANAGER will not be build, because BUILD_NO_PWMANAGER is set to $(BUILD_NO_PWMANAGER) 205 @echo PWMANAGER will not be build, because BUILD_NO_PWMANAGER is set to $(BUILD_NO_PWMANAGER)
206 endif 206 endif
207 @echo -------------------------------------- 207 @echo --------------------------------------
208 208
209 209
210objects: 210objects:
211 for i in $(SUBDIRS); do mkdir -p $$i/obj/$(PLATFORM); done 211 for i in $(SUBDIRS); do mkdir -p $$i/obj/$(PLATFORM); done
212 for i in $(SUBDIRS); do mkdir -p $$i/moc/$(PLATFORM); done 212 for i in $(SUBDIRS); do mkdir -p $$i/moc/$(PLATFORM); done
213 mkdir -p libical/lib/$(PLATFORM) 213 mkdir -p libical/lib/$(PLATFORM)
214 mkdir -p pwmanager/libcrypt/$(PLATFORM) 214 mkdir -p pwmanager/libcrypt/$(PLATFORM)
215 215
216clean: 216clean:
217 rm -rf libical/lib/$(PLATFORM)/*; 217 rm -rf libical/lib/$(PLATFORM)/*;
218 rm -rf pwmanager/libcrypt/$(PLATFORM)/*; 218 rm -rf pwmanager/libcrypt/$(PLATFORM)/*;
219 for i in $(SUBDIRS); do pushd $$i; make clean; rm -f *~;\ 219 for i in $(SUBDIRS); do pushd $$i; make clean; rm -f *~;\
220 rm -f obj/$(PLATFORM)/*; rm -f moc/$(PLATFORM)/*; rm Makefile$(PLATFORM); popd; \ 220 rm -f obj/$(PLATFORM)/*; rm -f moc/$(PLATFORM)/*; rm Makefile$(PLATFORM); popd; \
221 done 221 done
222 222
223pac: 223pac:
224 rm -f $(QPEDIR)/lib/libmicro* 224 rm -f $(QPEDIR)/lib/libmicro*
225 rm -f $(QPEDIR)/plugins/applets/libkopi* 225 rm -f $(QPEDIR)/plugins/applets/libkopi*
226 make 226 make
227 make install 227 make install
228 make dist 228 make dist
229install: 229install:
230 230
231 cd bin/kdepim; make install 231 cd bin/kdepim; make install
232 cp -r Pim $(QPEDIR)/apps 232 cp -r Pim $(QPEDIR)/apps
233 cp db2file/db2file $(QPEDIR)/bin/db2file 233 cp db2file/db2file $(QPEDIR)/bin/db2file
234 chmod ugo+x $(QPEDIR)/bin/db2file 234 chmod ugo+x $(QPEDIR)/bin/db2file
235 cp korganizer/korganizer.desktop $(QPEDIR)/apps/Pim/korganizer.desktop 235 cp korganizer/korganizer.desktop $(QPEDIR)/apps/Pim/korganizer.desktop
236 cp kaddressbook/kaddressbook.desktop $(QPEDIR)/apps/Pim/kaddressbook.desktop 236 cp kaddressbook/kaddressbook.desktop $(QPEDIR)/apps/Pim/kaddressbook.desktop
237 cp kmicromail/kmicromail.desktop $(QPEDIR)/apps/Pim/kopiemail.desktop 237 cp kmicromail/kmicromail.desktop $(QPEDIR)/apps/Pim/kopiemail.desktop
238 cp pwmanager/pwmanager/pwmanager.desktop $(QPEDIR)/apps/Pim/pwmanager.desktop 238 cp pwmanager/pwmanager/pwmanager.desktop $(QPEDIR)/apps/Pim/pwmanager.desktop
239 239
240dist: 240dist:
241 @echo Dont forget to do "make install" before "make dist" 241 @echo Dont forget to do "make install" before "make dist"
242 rm -f *arm.ipk 242 rm -f *arm.ipk
243 rm -f *ipk.zip 243 rm -f *ipk.zip
244 rm -f ../new_$(KDEPIM_VERSION)/* 244 rm -f ../new_$(KDEPIM_VERSION)/*
245 rm -f *~ 245 rm -f *~
246 cd ..;mkdir -p new_$(KDEPIM_VERSION) 246 cd ..;mkdir -p kdepimpi_$(KDEPIM_VERSION)
247 cd ../kdepimpi_$(KDEPIM_VERSION);mkdir -p ipk
247 cd ..; tar czf kdepimpi-$(KDEPIM_VERSION).tar.gz --exclude=obj --exclude=moc --exclude=CVS --exclude=Makefilezaurus --exclude=Makefileqtopia kdepim 248 cd ..; tar czf kdepimpi-$(KDEPIM_VERSION).tar.gz --exclude=obj --exclude=moc --exclude=CVS --exclude=Makefilezaurus --exclude=Makefileqtopia kdepim
248 mkipks kmicrokdelibs.control 249 mkipks kmicrokdelibs.control
249 mkipks korganizer.control 250 mkipks korganizer.control
250 mkipks kaddressbook.control 251 mkipks kaddressbook.control
251 ifndef BUILD_NO_MICROMAIL 252 ifndef BUILD_NO_MICROMAIL
252 mkipks kopiemail.control 253 mkipks kopiemail.control
253 endif 254 endif
254 ifndef BUILD_NO_SHARP_PLUGIN 255 ifndef BUILD_NO_SHARP_PLUGIN
255 mkipks ksharpPIM-DTMaccess.control 256 mkipks ksharpPIM-DTMaccess.control
256 endif 257 endif
257 mkipks korganizer-alarm.control 258 mkipks korganizer-alarm.control
258 ifndef BUILD_NO_GAMMU 259 ifndef BUILD_NO_GAMMU
259 mkipks kmobilephoneaccess.control 260 mkipks kmobilephoneaccess.control
260 endif 261 endif
261 ifndef BUILD_NO_PWMANAGER 262 ifndef BUILD_NO_PWMANAGER
262 mkipks pwmanager.control 263 mkipks pwmanager.control
263 endif 264 endif
264 mkipks pimTABicon.control 265 mkipks pimTABicon.control
265 zip kdepim_$(KDEPIM_VERSION)_for_SharpRom.ipk.zip *.ipk ReleaseNotes.txt 266 zip kdepim_$(KDEPIM_VERSION)_for_SharpRom.ipk.zip *.ipk ReleaseNotes.txt
266 mv *.ipk ../new_$(KDEPIM_VERSION)/ 267 mv *.ipk ../kdepimpi_$(KDEPIM_VERSION)/ipk/
267 mv *for_SharpRom.ipk.zip ../new_$(KDEPIM_VERSION)/ 268 mv *for_SharpRom.ipk.zip ../kdepimpi_$(KDEPIM_VERSION)/
268 mv ../kdepimpi-$(KDEPIM_VERSION).tar.gz ../new_$(KDEPIM_VERSION)/ 269 mv ../kdepimpi-$(KDEPIM_VERSION).tar.gz ../kdepimpi_$(KDEPIM_VERSION)/
269 270
270tmake: objects \ 271tmake: objects \
271 qtcompat/Makefile$(PLATFORM) \ 272 qtcompat/Makefile$(PLATFORM) \
272 microkde/Makefile$(PLATFORM) \ 273 microkde/Makefile$(PLATFORM) \
273 libkcal/Makefile$(PLATFORM) \ 274 libkcal/Makefile$(PLATFORM) \
274 libkdepim/Makefile$(PLATFORM) \ 275 libkdepim/Makefile$(PLATFORM) \
275 korganizer/Makefile$(PLATFORM) \ 276 korganizer/Makefile$(PLATFORM) \
276 kalarmd/Makefile$(PLATFORM) \ 277 kalarmd/Makefile$(PLATFORM) \
277 libical/src/libical/Makefile$(PLATFORM) \ 278 libical/src/libical/Makefile$(PLATFORM) \
278 libical/src/libicalss/Makefile$(PLATFORM) \ 279 libical/src/libicalss/Makefile$(PLATFORM) \
279 kabc/Makefile$(PLATFORM) \ 280 kabc/Makefile$(PLATFORM) \
280 kabc/formats/binary/Makefile$(PLATFORM) \ 281 kabc/formats/binary/Makefile$(PLATFORM) \
281 kabc/plugins/file/Makefile$(PLATFORM) \ 282 kabc/plugins/file/Makefile$(PLATFORM) \
282 kabc/plugins/dir/Makefile$(PLATFORM) \ 283 kabc/plugins/dir/Makefile$(PLATFORM) \
283 kabc/plugins/ldap/Makefile$(PLATFORM) \ 284 kabc/plugins/ldap/Makefile$(PLATFORM) \
284 kabc/plugins/opie/Makefile$(PLATFORM) \ 285 kabc/plugins/opie/Makefile$(PLATFORM) \
285 kabc/plugins/qtopia/Makefile$(PLATFORM) \ 286 kabc/plugins/qtopia/Makefile$(PLATFORM) \
286 kabc/plugins/sharpdtm/Makefile$(PLATFORM) \ 287 kabc/plugins/sharpdtm/Makefile$(PLATFORM) \
287 kaddressbook/Makefile$(PLATFORM) \ 288 kaddressbook/Makefile$(PLATFORM) \
288 kmicromail/Makefile$(PLATFORM) \ 289 kmicromail/Makefile$(PLATFORM) \
289 kmicromail/libetpan/Makefile$(PLATFORM) \ 290 kmicromail/libetpan/Makefile$(PLATFORM) \
290 kmicromail/libmailwrapper/Makefile$(PLATFORM) \ 291 kmicromail/libmailwrapper/Makefile$(PLATFORM) \
291 gammu/emb/common/Makefile$(PLATFORM) \ 292 gammu/emb/common/Makefile$(PLATFORM) \
292 gammu/emb/gammu/Makefile$(PLATFORM) \ 293 gammu/emb/gammu/Makefile$(PLATFORM) \
293 pwmanager/pwmanager/Makefile$(PLATFORM) \ 294 pwmanager/pwmanager/Makefile$(PLATFORM) \
294 pwmanager/libcrypt/mpi/Makefile$(PLATFORM) \ 295 pwmanager/libcrypt/mpi/Makefile$(PLATFORM) \
295 pwmanager/libcrypt/error/Makefile$(PLATFORM) \ 296 pwmanager/libcrypt/error/Makefile$(PLATFORM) \
296 pwmanager/libcrypt/cipher/Makefile$(PLATFORM) \ 297 pwmanager/libcrypt/cipher/Makefile$(PLATFORM) \
297 pwmanager/libcrypt/zlib/Makefile$(PLATFORM) 298 pwmanager/libcrypt/zlib/Makefile$(PLATFORM)
298 299
299qtcompat/Makefile$(PLATFORM): qtcompat/qtcompat.pro 300qtcompat/Makefile$(PLATFORM): qtcompat/qtcompat.pro
300 cd qtcompat; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtcompat.pro -o Makefile$(PLATFORM) 301 cd qtcompat; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtcompat.pro -o Makefile$(PLATFORM)
301 302
302microkde/Makefile$(PLATFORM): microkde/microkdeE.pro 303microkde/Makefile$(PLATFORM): microkde/microkdeE.pro
303 cd microkde; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" microkdeE.pro -o Makefile$(PLATFORM) 304 cd microkde; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" microkdeE.pro -o Makefile$(PLATFORM)
304 305
305libkcal/Makefile$(PLATFORM): libkcal/libkcalE.pro 306libkcal/Makefile$(PLATFORM): libkcal/libkcalE.pro
306 cd libkcal; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkcalE.pro -o Makefile$(PLATFORM) 307 cd libkcal; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkcalE.pro -o Makefile$(PLATFORM)
307 308
308 309
309libkdepim/Makefile$(PLATFORM): libkdepim/libkdepimE.pro 310libkdepim/Makefile$(PLATFORM): libkdepim/libkdepimE.pro
310 cd libkdepim; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkdepimE.pro -o Makefile$(PLATFORM) 311 cd libkdepim; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkdepimE.pro -o Makefile$(PLATFORM)
311 312
312kalarmd/Makefile$(PLATFORM): kalarmd/kalarmdE.pro 313kalarmd/Makefile$(PLATFORM): kalarmd/kalarmdE.pro
313 cd kalarmd; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kalarmdE.pro -o Makefile$(PLATFORM) 314 cd kalarmd; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kalarmdE.pro -o Makefile$(PLATFORM)
314 315
315korganizer/Makefile$(PLATFORM): korganizer/korganizerE.pro 316korganizer/Makefile$(PLATFORM): korganizer/korganizerE.pro
316 cd korganizer; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" korganizerE.pro -o Makefile$(PLATFORM) 317 cd korganizer; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" korganizerE.pro -o Makefile$(PLATFORM)
317 318
318libical/src/libical/Makefile$(PLATFORM): libical/src/libical/libicalE.pro 319libical/src/libical/Makefile$(PLATFORM): libical/src/libical/libicalE.pro
319 cd libical/src/libical; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalE.pro -o Makefile$(PLATFORM) 320 cd libical/src/libical; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalE.pro -o Makefile$(PLATFORM)
320 321
321libical/src/libicalss/Makefile$(PLATFORM): libical/src/libicalss/libicalssE.pro 322libical/src/libicalss/Makefile$(PLATFORM): libical/src/libicalss/libicalssE.pro
322 cd libical/src/libicalss; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalssE.pro -o Makefile$(PLATFORM) 323 cd libical/src/libicalss; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalssE.pro -o Makefile$(PLATFORM)
323 324
324kabc/Makefile$(PLATFORM): kabc/kabcE.pro 325kabc/Makefile$(PLATFORM): kabc/kabcE.pro
325 cd kabc; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcE.pro -o Makefile$(PLATFORM) 326 cd kabc; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcE.pro -o Makefile$(PLATFORM)
326 327
327kabc/formats/binary/Makefile$(PLATFORM): kabc/formats/binary/kabcformat_binaryE.pro 328kabc/formats/binary/Makefile$(PLATFORM): kabc/formats/binary/kabcformat_binaryE.pro
328 cd kabc/formats/binary; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcformat_binaryE.pro -o Makefile$(PLATFORM) 329 cd kabc/formats/binary; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcformat_binaryE.pro -o Makefile$(PLATFORM)
329 330
330kabc/plugins/file/Makefile$(PLATFORM): kabc/plugins/file/fileE.pro 331kabc/plugins/file/Makefile$(PLATFORM): kabc/plugins/file/fileE.pro
331 cd kabc/plugins/file; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" fileE.pro -o Makefile$(PLATFORM) 332 cd kabc/plugins/file; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" fileE.pro -o Makefile$(PLATFORM)
332 333
333kabc/plugins/dir/Makefile$(PLATFORM): kabc/plugins/dir/dirE.pro 334kabc/plugins/dir/Makefile$(PLATFORM): kabc/plugins/dir/dirE.pro
334 cd kabc/plugins/dir; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" dirE.pro -o Makefile$(PLATFORM) 335 cd kabc/plugins/dir; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" dirE.pro -o Makefile$(PLATFORM)
335 336
336kabc/plugins/ldap/Makefile$(PLATFORM): kabc/plugins/ldap/ldapE.pro 337kabc/plugins/ldap/Makefile$(PLATFORM): kabc/plugins/ldap/ldapE.pro
337 cd kabc/plugins/ldap; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" ldapE.pro -o Makefile$(PLATFORM) 338 cd kabc/plugins/ldap; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" ldapE.pro -o Makefile$(PLATFORM)
338 339
339kabc/plugins/opie/Makefile$(PLATFORM): kabc/plugins/opie/opieE.pro 340kabc/plugins/opie/Makefile$(PLATFORM): kabc/plugins/opie/opieE.pro
340 cd kabc/plugins/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" opieE.pro -o Makefile$(PLATFORM) 341 cd kabc/plugins/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" opieE.pro -o Makefile$(PLATFORM)
341 342
342kabc/plugins/qtopia/Makefile$(PLATFORM): kabc/plugins/qtopia/qtopiaE.pro 343kabc/plugins/qtopia/Makefile$(PLATFORM): kabc/plugins/qtopia/qtopiaE.pro
343 cd kabc/plugins/qtopia; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtopiaE.pro -o Makefile$(PLATFORM) 344 cd kabc/plugins/qtopia; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtopiaE.pro -o Makefile$(PLATFORM)
344 345
345kabc/plugins/sharpdtm/Makefile$(PLATFORM): kabc/plugins/sharpdtm/sharpdtmE.pro 346kabc/plugins/sharpdtm/Makefile$(PLATFORM): kabc/plugins/sharpdtm/sharpdtmE.pro
346 cd kabc/plugins/sharpdtm; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" sharpdtmE.pro -o Makefile$(PLATFORM) 347 cd kabc/plugins/sharpdtm; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" sharpdtmE.pro -o Makefile$(PLATFORM)
347 348
348kaddressbook/Makefile$(PLATFORM): kaddressbook/kaddressbookE.pro 349kaddressbook/Makefile$(PLATFORM): kaddressbook/kaddressbookE.pro
349 cd kaddressbook; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kaddressbookE.pro -o Makefile$(PLATFORM) 350 cd kaddressbook; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kaddressbookE.pro -o Makefile$(PLATFORM)
350 351
351kmicromail/Makefile$(PLATFORM): kmicromail/kmicromailE.pro 352kmicromail/Makefile$(PLATFORM): kmicromail/kmicromailE.pro
352 cd kmicromail; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kmicromailE.pro -o Makefile$(PLATFORM) 353 cd kmicromail; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kmicromailE.pro -o Makefile$(PLATFORM)
353 354
354kmicromail/libetpan/Makefile$(PLATFORM): kmicromail/libetpan/libetpanE.pro 355kmicromail/libetpan/Makefile$(PLATFORM): kmicromail/libetpan/libetpanE.pro
355 cd kmicromail/libetpan; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libetpanE.pro -o Makefile$(PLATFORM) 356 cd kmicromail/libetpan; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libetpanE.pro -o Makefile$(PLATFORM)
356 357
357kmicromail/libmailwrapper/Makefile$(PLATFORM): kmicromail/libmailwrapper/libmailwrapperE.pro 358kmicromail/libmailwrapper/Makefile$(PLATFORM): kmicromail/libmailwrapper/libmailwrapperE.pro
358 cd kmicromail/libmailwrapper; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libmailwrapperE.pro -o Makefile$(PLATFORM) 359 cd kmicromail/libmailwrapper; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libmailwrapperE.pro -o Makefile$(PLATFORM)
359 360
360gammu/emb/common/Makefile$(PLATFORM): gammu/emb/common/commonE.pro 361gammu/emb/common/Makefile$(PLATFORM): gammu/emb/common/commonE.pro
361 cd gammu/emb/common; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" commonE.pro -o Makefile$(PLATFORM) 362 cd gammu/emb/common; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" commonE.pro -o Makefile$(PLATFORM)
362 363
363gammu/emb/gammu/Makefile$(PLATFORM): gammu/emb/gammu/gammuE.pro 364gammu/emb/gammu/Makefile$(PLATFORM): gammu/emb/gammu/gammuE.pro
364 cd gammu/emb/gammu; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" gammuE.pro -o Makefile$(PLATFORM) 365 cd gammu/emb/gammu; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" gammuE.pro -o Makefile$(PLATFORM)
365 366
366pwmanager/pwmanager/Makefile$(PLATFORM): pwmanager/pwmanager/pwmanagerE.pro 367pwmanager/pwmanager/Makefile$(PLATFORM): pwmanager/pwmanager/pwmanagerE.pro
367 cd pwmanager/pwmanager; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" pwmanagerE.pro -o Makefile$(PLATFORM) 368 cd pwmanager/pwmanager; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" pwmanagerE.pro -o Makefile$(PLATFORM)
368 369
369 370
370pwmanager/libcrypt/mpi/Makefile$(PLATFORM): pwmanager/libcrypt/mpi/mpi.pro 371pwmanager/libcrypt/mpi/Makefile$(PLATFORM): pwmanager/libcrypt/mpi/mpi.pro
371 cd pwmanager/libcrypt/mpi;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" mpi.pro -o Makefile$(PLATFORM) 372 cd pwmanager/libcrypt/mpi;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" mpi.pro -o Makefile$(PLATFORM)
372 373
373pwmanager/libcrypt/error/Makefile$(PLATFORM): pwmanager/libcrypt/error/error.pro 374pwmanager/libcrypt/error/Makefile$(PLATFORM): pwmanager/libcrypt/error/error.pro
374 cd pwmanager/libcrypt/error;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" error.pro -o Makefile$(PLATFORM) 375 cd pwmanager/libcrypt/error;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" error.pro -o Makefile$(PLATFORM)
375 376
376pwmanager/libcrypt/cipher/Makefile$(PLATFORM): pwmanager/libcrypt/cipher/cipher.pro 377pwmanager/libcrypt/cipher/Makefile$(PLATFORM): pwmanager/libcrypt/cipher/cipher.pro
377 cd pwmanager/libcrypt/cipher;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" cipher.pro -o Makefile$(PLATFORM) 378 cd pwmanager/libcrypt/cipher;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" cipher.pro -o Makefile$(PLATFORM)
378 379
379pwmanager/libcrypt/zlib/Makefile$(PLATFORM): pwmanager/libcrypt/zlib/zlib.pro 380pwmanager/libcrypt/zlib/Makefile$(PLATFORM): pwmanager/libcrypt/zlib/zlib.pro
380 cd pwmanager/libcrypt/zlib;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" zlib.pro -o Makefile$(PLATFORM) 381 cd pwmanager/libcrypt/zlib;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" zlib.pro -o Makefile$(PLATFORM)
381 382
382 383
diff --git a/bin/kdepim/kopiemail/germantranslation.txt b/bin/kdepim/kopiemail/germantranslation.txt
index 86819b7..68dc6db 100644
--- a/bin/kdepim/kopiemail/germantranslation.txt
+++ b/bin/kdepim/kopiemail/germantranslation.txt
@@ -1,264 +1,274 @@
1{ " Local Time"," Locale Zeit" }, 1{ " Local Time"," Locale Zeit" },
2{ "Preferences","Vorlieben" }, 2{ "Preferences","Vorlieben" },
3{ "Ok","Ok" }, 3{ "Ok","Ok" },
4{ "Default","Standard" }, 4{ "Default","Standard" },
5{ "Cancel","Abbrechen" }, 5{ "Cancel","Abbrechen" },
6{ "Global","Global" }, 6{ "Global","Global" },
7{ "Email","Email" }, 7{ "Email","Email" },
8{ "Phone","Phone" }, 8{ "Phone","Phone" },
9{ "SMS","SMS" }, 9{ "SMS","SMS" },
10{ "Fax","Fax" }, 10{ "Fax","Fax" },
11{ "Pager","Pager" }, 11{ "Pager","Pager" },
12{ "SIP","SIP" }, 12{ "SIP","SIP" },
13{ "Language:(needs restart)","Sprache (Neustart!)" }, 13{ "Language:(needs restart)","Sprache (Neustart!)" },
14{ "English","Englisch" }, 14{ "English","Englisch" },
15{ "German","Deutsch" }, 15{ "German","Deutsch" },
16{ "French","Französich" }, 16{ "French","Französich" },
17{ "Italian","Italienisch" }, 17{ "Italian","Italienisch" },
18{ "User defined (usertranslation.txt)","Benutzerdef.(usertranslation.txt)" }, 18{ "User defined (usertranslation.txt)","Benutzerdef.(usertranslation.txt)" },
19{ "Time Format(nr):","Zeit Format(Neustart!)" }, 19{ "Time Format(nr):","Zeit Format(Neustart!)" },
20{ "24:00","24:00" }, 20{ "24:00","24:00" },
21{ "12:00am","12:00am" }, 21{ "12:00am","12:00am" },
22{ "Week starts on Sunday","Woche beginnt Sonntags" }, 22{ "Week starts on Sunday","Woche beginnt Sonntags" },
23{ "Locale","Localisation" }, 23{ "Locale","Localisation" },
24{ "Date Format:","Datums Format:" }, 24{ "Date Format:","Datums Format:" },
25{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 25{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
26{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 26{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
27{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 27{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
28{ "User defined","Benutzerdefiniert" }, 28{ "User defined","Benutzerdefiniert" },
29{ "User long date:","Format langes Datum:" }, 29{ "User long date:","Format langes Datum:" },
30{ "User short date:","Format kurzes Datum:" }, 30{ "User short date:","Format kurzes Datum:" },
31{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" }, 31{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" },
32{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 32{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
33{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 33{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
34{ "Date Format","Datums Format" }, 34{ "Date Format","Datums Format" },
35{ "Timezone:","Zeitzone:" }, 35{ "Timezone:","Zeitzone:" },
36{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 36{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
37{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 37{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
38{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 38{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
39{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 39{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
40{ "Daylight start:","Sommerzeit Beginn:" }, 40{ "Daylight start:","Sommerzeit Beginn:" },
41{ "Mon","Mo" }, 41{ "Mon","Mo" },
42{ "Tue","Di" }, 42{ "Tue","Di" },
43{ "Wed","Mi" }, 43{ "Wed","Mi" },
44{ "Thu","Do" }, 44{ "Thu","Do" },
45{ "Fri","Fr" }, 45{ "Fri","Fr" },
46{ "Sat","Sa" }, 46{ "Sat","Sa" },
47{ "Sun","So" }, 47{ "Sun","So" },
48{ "January","Januar" }, 48{ "January","Januar" },
49{ "February","Februar" }, 49{ "February","Februar" },
50{ "March","März" }, 50{ "March","März" },
51{ "April","April" }, 51{ "April","April" },
52{ "May","Mai" }, 52{ "May","Mai" },
53{ "June","Juni" }, 53{ "June","Juni" },
54{ "July","Juli" }, 54{ "July","Juli" },
55{ "August","August" }, 55{ "August","August" },
56{ "September","September" }, 56{ "September","September" },
57{ "October","Oktober" }, 57{ "October","Oktober" },
58{ "November","November" }, 58{ "November","November" },
59{ "December","Dezember" }, 59{ "December","Dezember" },
60{ "tomorrow","morgen" }, 60{ "tomorrow","morgen" },
61{ "today","heute" }, 61{ "today","heute" },
62{ "yesterday","gestern" }, 62{ "yesterday","gestern" },
63{ "Monday","Montag" }, 63{ "Monday","Montag" },
64{ "Tuesday","Dienstag" }, 64{ "Tuesday","Dienstag" },
65{ "Wednesday","Mittwoch" }, 65{ "Wednesday","Mittwoch" },
66{ "Thursday","Donnerstag" }, 66{ "Thursday","Donnerstag" },
67{ "Friday","Freitag" }, 67{ "Friday","Freitag" },
68{ "Saturday","Samstag" }, 68{ "Saturday","Samstag" },
69{ "Sunday","Sonntag" }, 69{ "Sunday","Sonntag" },
70{ "Daylight end:","Sommerzeit Ende:" }, 70{ "Daylight end:","Sommerzeit Ende:" },
71{ "Time Zone","Zeitzone" }, 71{ "Time Zone","Zeitzone" },
72{ "Used Mail Client","Benutzter Mail Client" }, 72{ "Used Mail Client","Benutzter Mail Client" },
73{ "Channel:","Channel:" }, 73{ "Channel:","Channel:" },
74{ "Message:","Message:" }, 74{ "Message:","Message:" },
75{ "Parameters:","Parameter:" }, 75{ "Parameters:","Parameter:" },
76{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 76{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
77{ "extra Message:","extra Message:" }, 77{ "extra Message:","extra Message:" },
78{ "extra Parameters:","extra Parameter:" }, 78{ "extra Parameters:","extra Parameter:" },
79{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 79{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
80{ "External Apps.","Externe Appl." }, 80{ "External Apps.","Externe Appl." },
81{ "General","Allgemein" }, 81{ "General","Allgemein" },
82{ "Full &name:","Vor- und &Nachname:" }, 82{ "Full &name:","Vor- und &Nachname:" },
83{ "E&mail address:","E&mail Adresse:" }, 83{ "E&mail address:","E&mail Adresse:" },
84{ "Fonts","Schriftart" }, 84{ "Fonts","Schriftart" },
85{ "Choose...","Wähle..." }, 85{ "Choose...","Wähle..." },
86{ "Used %1 Client","Benutzter %1 Client" }, 86{ "Used %1 Client","Benutzter %1 Client" },
87{ "No email client installed","Kein Email Klient installiert" }, 87{ "No email client installed","Kein Email Klient installiert" },
88{ "Userdefined email client","Benutzerdef. Email Klient" }, 88{ "Userdefined email client","Benutzerdef. Email Klient" },
89{ "OM/Pi email client","OM/Pi Email Klient" }, 89{ "OM/Pi email client","OM/Pi Email Klient" },
90{ "Delete","Löschen" }, 90{ "Delete","Löschen" },
91{ "New","Neu" }, 91{ "New","Neu" },
92{ "Edit","Bearbeite" }, 92{ "Edit","Bearbeite" },
93{ "Close","Schließen" }, 93{ "Close","Schließen" },
94{ "Size","Größe" }, 94{ "Size","Größe" },
95{ "Date","Datum" }, 95{ "Date","Datum" },
96{ "Please set at","Bitte einstellen in" }, 96{ "Please set at","Bitte einstellen in" },
97{ "Settings@General TAB","Einstellungen@Allgemein TAB" }, 97{ "Settings@General TAB","Einstellungen@Allgemein TAB" },
98{ "KOpieMail/Pi","KOpieMail/Pi" }, 98{ "KOpieMail/Pi","KOpieMail/Pi" },
99{ "Mail","Mail" }, 99{ "Mail","Mail" },
100{ "Settings","Konfig" }, 100{ "Settings","Konfig" },
101{ "Get all new mails","Hole alle neuen Mails" }, 101{ "Get all new mails","Hole alle neuen Mails" },
102{ "Get new messages","Hole neue mails" }, 102{ "Get new messages","Hole neue mails" },
103{ "Compose new mail","Schreibe neue Mail" }, 103{ "Compose new mail","Schreibe neue Mail" },
104{ "Send queued mails","Sende gespeicherte Mails" }, 104{ "Send queued mails","Sende gespeicherte Mails" },
105{ "Show/Hide folders","Zeige Verzeichnisse" }, 105{ "Show/Hide folders","Zeige Verzeichnisse" },
106{ "Delete Mail","Lösche Mail" }, 106{ "Delete Mail","Lösche Mail" },
107{ "Edit settings","Ändere Einstellungen" }, 107{ "Edit settings","Ändere Einstellungen" },
108{ "Configure accounts","Konfiguriere Zugänge" }, 108{ "Configure accounts","Konfiguriere Zugänge" },
109{ "Mailbox","Mailbox" }, 109{ "Mailbox","Mailbox" },
110{ "Subject","Betreff" }, 110{ "Subject","Betreff" },
111{ "Sender","Sender" }, 111{ "Sender","Sender" },
112{ "Size","Größe" }, 112{ "Size","Größe" },
113{ "Date","Datum" }, 113{ "Date","Datum" },
114{ "Close","Schliessen" }, 114{ "Close","Schliessen" },
115{ "Help","Hilfe" }, 115{ "Help","Hilfe" },
116{ "About","Über" }, 116{ "About","Über" },
117{ "Licence","Lizenz" }, 117{ "Licence","Lizenz" },
118{ "LibEtPan Licence","LibEtPan Lizenz" }, 118{ "LibEtPan Licence","LibEtPan Lizenz" },
119{ "Settings - some need a restart (nr)","Einstellungen - manche benötigen einen Neustart (nr)" }, 119{ "Settings - some need a restart (nr)","Einstellungen - manche benötigen einen Neustart (nr)" },
120{ "HINT: Separate multiple\neMail addresses by ";"","Hinweis:Trenne mehrere\nAddressen mit einem ";"" }, 120{ "HINT: Separate multiple\neMail addresses by ";"","Hinweis:Trenne mehrere\nAddressen mit einem ";"" },
121{ "Ignore above settings and\nuse KA/Pi "Who am I" instead!","Ignoriere obige Einstellungen und\nbenutze KA/Pi "Wer bin ich"\nstattdessen!" }, 121{ "Ignore above settings and\nuse KA/Pi "Who am I" instead!","Ignoriere obige Einstellungen und\nbenutze KA/Pi "Wer bin ich"\nstattdessen!" },
122{ "View mail as html","Zeige Mails als html" }, 122{ "View mail as html","Zeige Mails als html" },
123{ "Send mails later","Sende Mails später" }, 123{ "Send mails later","Sende Mails später" },
124{ "Application(nr)","Applikation(nr)" }, 124{ "Application(nr)","Applikation(nr)" },
125{ "OK","OK" }, 125{ "OK","OK" },
126{ "Compose mail:","Verfasse Mail:" }, 126{ "Compose mail:","Verfasse Mail:" },
127{ "Dear Mr.","Hallo Herr" }, 127{ "Dear Mr.","Hallo Herr" },
128{ "Read mail:","Lese Mail:" }, 128{ "Read mail:","Lese Mail:" },
129{ "Hello","Hallo" }, 129{ "Hello","Hallo" },
130{ "Configure Accounts","Konfigure Zugänge" }, 130{ "Configure Accounts","Konfigure Zugänge" },
131{ "Name of the Account","Name des Zugangs" }, 131{ "Name of the Account","Name des Zugangs" },
132{ "News","News" }, 132{ "News","News" },
133{ "Account","Zugang" }, 133{ "Account","Zugang" },
134{ "Type","Typ" }, 134{ "Type","Typ" },
135{ "<p>Please select an account.</p>","<p>Bitte wähle einen Zugang.</p>" }, 135{ "<p>Please select an account.</p>","<p>Bitte wähle einen Zugang.</p>" },
136{ "Error","Fehler" }, 136{ "Error","Fehler" },
137{ "Configure NNTP","Konfiguriere News" }, 137{ "Configure NNTP","Konfiguriere News" },
138{ "Port","Port" }, 138{ "Port","Port" },
139{ "Server","Server" }, 139{ "Server","Server" },
140{ "Use SSL","Benutze SSL" }, 140{ "Use SSL","Benutze SSL" },
141{ "User","Benutzer" }, 141{ "User","Benutzer" },
142{ "Password","Passwort" }, 142{ "Password","Passwort" },
143{ "Use Login","Benutze Login" }, 143{ "Use Login","Benutze Login" },
144{ "Newsgroup","Newsgroup" }, 144{ "Newsgroup","Newsgroup" },
145{ "Get newsgroup list from server","Hole Newsgroup Liste vom Server" }, 145{ "Get newsgroup list from server","Hole Newsgroup Liste vom Server" },
146{ "Filter:","Filter:" }, 146{ "Filter:","Filter:" },
147{ "Show subscribed","Zeige abbonnierte" }, 147{ "Show subscribed","Zeige abbonnierte" },
148{ "Groups","NewsGroups" }, 148{ "Groups","NewsGroups" },
149{ "Configure IMAP","Konfiguriere IMAP" }, 149{ "Configure IMAP","Konfiguriere IMAP" },
150{ "Use secure sockets:","Benutze sichere Verbindung:" }, 150{ "Use secure sockets:","Benutze sichere Verbindung:" },
151{ "ssh $SERVER exec","ssh $SERVER exec" }, 151{ "ssh $SERVER exec","ssh $SERVER exec" },
152{ "Prefix","Prefix" }, 152{ "Prefix","Prefix" },
153{ "Local storage folder:","Lokales Verzeichnis:" }, 153{ "Local storage folder:","Lokales Verzeichnis:" },
154{ "Get only messages smaller","Hole nur Nachrichten kleiner" }, 154{ "Get only messages smaller","Hole nur Nachrichten kleiner" },
155{ "kB","kB" }, 155{ "kB","kB" },
156{ "Leave Messages on Server","Belasse Nachrichten auf dem Server" }, 156{ "Leave Messages on Server","Belasse Nachrichten auf dem Server" },
157{ "Configure POP3","Konfiguriere POP3" }, 157{ "Configure POP3","Konfiguriere POP3" },
158{ "ssh $SERVER exec imapd","ssh $SERVER exec imapd" }, 158{ "ssh $SERVER exec imapd","ssh $SERVER exec imapd" },
159{ "Configure SMTP","Konfiguriere SMTP" }, 159{ "Configure SMTP","Konfiguriere SMTP" },
160{ "Name of the SMTP Server","Name des SMTP Servers" }, 160{ "Name of the SMTP Server","Name des SMTP Servers" },
161{ "Port of the SMTP Server","Port des SMTP Servers" }, 161{ "Port of the SMTP Server","Port des SMTP Servers" },
162{ "Fetching folder list","Hole Verzeichnis Liste" }, 162{ "Fetching folder list","Hole Verzeichnis Liste" },
163{ "Fetch ","Hole " }, 163{ "Fetch ","Hole " },
164{ "Fetching header list","Hole Titel Liste" }, 164{ "Fetching header list","Hole Titel Liste" },
165{ "Mailbox has %1 mails","Mailbox hat %1 Mails" }, 165{ "Mailbox has %1 mails","Mailbox hat %1 Mails" },
166{ "Read this mail","Lies diese Mail" }, 166{ "Read this mail","Lies diese Mail" },
167{ "Move/Copy this mail","Verschiebe/kopiere diese Mail" }, 167{ "Move/Copy this mail","Verschiebe/kopiere diese Mail" },
168{ "Delete this mail","Lösche diese Mail" }, 168{ "Delete this mail","Lösche diese Mail" },
169{ "Move/Copy all selected mail","Verschiebe/kopiere selektierte Mails" }, 169{ "Move/Copy all selected mail","Verschiebe/kopiere selektierte Mails" },
170{ "Delete all selected mails","Lösche alle selektierten Mails" }, 170{ "Delete all selected mails","Lösche alle selektierten Mails" },
171{ "Clear selection","Selektion aufheben" }, 171{ "Clear selection","Selektion aufheben" },
172{ "Reply","Antworten" }, 172{ "Reply","Antworten" },
173{ "Forward","Weiterleiten" }, 173{ "Forward","Weiterleiten" },
174{ "Attachments","Anhang" }, 174{ "Attachments","Anhang" },
175{ "Show Html","Zeige in html" }, 175{ "Show Html","Zeige in html" },
176{ "Description","Beschreibung" }, 176{ "Description","Beschreibung" },
177{ "Filename","Dateiname" }, 177{ "Filename","Dateiname" },
178{ "E-Mail by %1","E-Mail von %1" }, 178{ "E-Mail by %1","E-Mail von %1" },
179{ "Cc","Kopie" }, 179{ "Cc","Kopie" },
180{ "To","An" }, 180{ "To","An" },
181{ "From","Von" }, 181{ "From","Von" },
182{ "<p>Do you really want to delete this mail? <br><br>","<p>Wollen Sie diese Mail wirklich löschen? <br><br>" }, 182{ "<p>Do you really want to delete this mail? <br><br>","<p>Wollen Sie diese Mail wirklich löschen? <br><br>" },
183{ "Mailbox has %1 mail(s)","Mailbox hat %1 Mail(s)" }, 183{ "Mailbox has %1 mail(s)","Mailbox hat %1 Mail(s)" },
184{ "Move/Copie all mails","Verschiebe/kopiere alle Mails" }, 184{ "Move/Copie all mails","Verschiebe/kopiere alle Mails" },
185{ "Delete all mails","Lösche alle Mails" }, 185{ "Delete all mails","Lösche alle Mails" },
186{ "Create new subfolder","Neues Unterverzeichnis" }, 186{ "Create new subfolder","Neues Unterverzeichnis" },
187{ "Delete folder","Lösche Verzeichnis" }, 187{ "Delete folder","Lösche Verzeichnis" },
188{ "Refresh folder list","Aktualisiere Liste" }, 188{ "Refresh folder list","Aktualisiere Liste" },
189{ "Create new folder","Neues Verzeichnis" }, 189{ "Create new folder","Neues Verzeichnis" },
190{ "Disconnect","Diskonnect" }, 190{ "Disconnect","Diskonnect" },
191{ "Set offline","Gehe offline" }, 191{ "Set offline","Gehe offline" },
192{ "Select target box","Wähle Ziel Box" }, 192{ "Select target box","Wähle Ziel Box" },
193{ "<b>Store mail(s) to</b>","<b>Speichere Mail(s) nach</b>" }, 193{ "<b>Store mail(s) to</b>","<b>Speichere Mail(s) nach</b>" },
194{ "Folder:","Verzeichnis:" }, 194{ "Folder:","Verzeichnis:" },
195{ "Account:","Zugang:" }, 195{ "Account:","Zugang:" },
196{ "Prefix will prepend, do not enter","Pfad-Prefix wird vorangestellt" }, 196{ "Prefix will prepend, do not enter","Pfad-Prefix wird vorangestellt" },
197{ "Move mail(s)","Verschiebe Mail(s)" }, 197{ "Move mail(s)","Verschiebe Mail(s)" },
198{ "only mails smaller","nur Mails kleiner" }, 198{ "only mails smaller","nur Mails kleiner" },
199{ " kB"," kB" }, 199{ " kB"," kB" },
200{ " message %1 of %2"," Nachricht %1 von %2" }, 200{ " message %1 of %2"," Nachricht %1 von %2" },
201{ "Copying...","Am Kopieren..." }, 201{ "Copying...","Am Kopieren..." },
202{ "Copy message %1 of %2","Kopiere Nachricht %1 von %2" }, 202{ "Copy message %1 of %2","Kopiere Nachricht %1 von %2" },
203{ "Do you really want to delete\nall selected mails?","Wollen Sie wirklich alle\nselektierten Mails Löschen?" }, 203{ "Do you really want to delete\nall selected mails?","Wollen Sie wirklich alle\nselektierten Mails Löschen?" },
204{ "Delete All Mails","Lösche alle Mails" }, 204{ "Delete All Mails","Lösche alle Mails" },
205{ "Deleting ...","Am Löschen..." }, 205{ "Deleting ...","Am Löschen..." },
206{ "Delete message %1 of %2","Lösche Nachricht %1 von %2" }, 206{ "Delete message %1 of %2","Lösche Nachricht %1 von %2" },
207{ "Compose Message","Verfasse Nachricht" }, 207{ "Compose Message","Verfasse Nachricht" },
208{ "Reply-To","Antwort-An" }, 208{ "Reply-To","Antwort-An" },
209{ "BCC","BCC" }, 209{ "BCC","BCC" },
210{ "Signature","Signatur" }, 210{ "Signature","Signatur" },
211{ "CC","Kopie" }, 211{ "CC","Kopie" },
212{ "Options","Optionen" }, 212{ "Options","Optionen" },
213{ "Delete File","Lösche Datei" }, 213{ "Delete File","Lösche Datei" },
214{ "Add File","Füge Datei hinzu" }, 214{ "Add File","Füge Datei hinzu" },
215{ "Attachment","Anhang" }, 215{ "Attachment","Anhang" },
216{ "send later","sende später" }, 216{ "send later","sende später" },
217{ "use:","via:" }, 217{ "use:","via:" },
218{ "Save","Speichern" }, 218{ "Save","Speichern" },
219{ "Name","Name" }, 219{ "Name","Name" },
220{ "No Receiver spezified","Kein Empfänger angegeben" }, 220{ "No Receiver spezified","Kein Empfänger angegeben" },
221{ "Sending mail","Sende Mail" }, 221{ "Sending mail","Sende Mail" },
222{ "No","Nein" }, 222{ "No","Nein" },
223{ "Yes","Ja" }, 223{ "Yes","Ja" },
224{ "Store message into drafts?\n","Speichere Nachricht in Entwürfe?\n" }, 224{ "Store message into drafts?\n","Speichere Nachricht in Entwürfe?\n" },
225{ "Store message?","Nachricht speichern?" }, 225{ "Store message?","Nachricht speichern?" },
226{ "Select Type","Selektiere Typ" }, 226{ "Select Type","Selektiere Typ" },
227{ "Select Account Type","Wähle Art des Zugangs" }, 227{ "Select Account Type","Wähle Art des Zugangs" },
228{ "IMAP","IMAP (online lesen)" }, 228{ "IMAP","IMAP (online lesen)" },
229{ "POP3","POP3 (holen)" }, 229{ "POP3","POP3 (holen)" },
230{ "SMTP","SMTP (senden)" }, 230{ "SMTP","SMTP (senden)" },
231{ "<p>Do you really want to delete the selected Account?</p>","<p>Möchten Sie wirklich den ausgewählten Account löschen?</p>" }, 231{ "<p>Do you really want to delete the selected Account?</p>","<p>Möchten Sie wirklich den ausgewählten Account löschen?</p>" },
232{ "Question","Eine Frage..." }, 232{ "Question","Eine Frage..." },
233{ "Send this message?","Nachricht wirklich senden?" }, 233{ "Send this message?","Nachricht wirklich senden?" },
234{ "Stop editing message","Stop editing message" }, 234{ "Stop editing message","Stop editing message" },
235{ "Sending mail %1 of %2","Sende Mail %1 von %2" }, 235{ "Sending mail %1 of %2","Sende Mail %1 von %2" },
236{ "%1 of %2 bytes send","%1 von %2 Bytes gesendet" }, 236{ "%1 of %2 bytes send","%1 von %2 Bytes gesendet" },
237{ "Refresh header list","Aktualisiere Titel Liste" }, 237{ "Refresh header list","Aktualisiere Titel Liste" },
238{ "Define a smtp\n account first!\n","Bitte zuerst einen\nSMTP Account anlegen!\n" }, 238{ "Define a smtp\n account first!\n","Bitte zuerst einen\nSMTP Account anlegen!\n" },
239{ "Mail queue flushed","Gespeicherte Mails gesendet!" }, 239{ "Mail queue flushed","Gespeicherte Mails gesendet!" },
240{ "Please create an\nSMTP account first.\nThe SMTP is needed\nfor sending mail.\n","Bitte legen Sie einen\nSMTP Account an.\nDer SMTP Account wird\nfür das Versenden von\nMails benötigt!" }, 240{ "Please create an\nSMTP account first.\nThe SMTP is needed\nfor sending mail.\n","Bitte legen Sie einen\nSMTP Account an.\nDer SMTP Account wird\nfür das Versenden von\nMails benötigt!" },
241{ "Show next mail","Zeige nächste Mail" }, 241{ "Show next mail","Zeige nächste Mail" },
242{ "End of List","Ende der Liste" }, 242{ "End of List","Ende der Liste" },
243{ "Language","Sprache" }, 243{ "Language","Sprache" },
244{ "Time Format","Zeit Format" }, 244{ "Time Format","Zeit Format" },
245{ "%1 groups subscribed","%1 Guppen abboniert" }, 245{ "%1 groups subscribed","%1 Guppen abboniert" },
246{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Ihr gerade genutztes Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverzeichnis)/apps/kopiemail/localmail" }, 246{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Ihr gerade genutztes Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverzeichnis)/apps/kopiemail/localmail" },
247{ "<b>Set new data storage dir:</b>","<b>Setze neues Datenspeicherverzeichnis:</b>" }, 247{ "<b>Set new data storage dir:</b>","<b>Setze neues Datenspeicherverzeichnis:</b>" },
248{ "Not existing dirs are created automatically","Nicht existierende Verzeichnisse werden erstellt" }, 248{ "Not existing dirs are created automatically","Nicht existierende Verzeichnisse werden erstellt" },
249{ "Save settings","Speichere Einstellungen" }, 249{ "Save settings","Speichere Einstellungen" },
250{ "Save standard","Speichere Standard" }, 250{ "Save standard","Speichere Standard" },
251{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" }, 251{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" },
252{ "The settings of the storage\ndir is saved in the file\n%1","Die Einstellungen des Speicherverzeichnisses\nwerden in folgender Datei gespeichert:\n%1" }, 252{ "The settings of the storage\ndir is saved in the file\n%1","Die Einstellungen des Speicherverzeichnisses\nwerden in folgender Datei gespeichert:\n%1" },
253{ "Data storage path","Daten Speicherpfad" }, 253{ "Data storage path","Daten Speicherpfad" },
254{ "userdefined","benutzerdefiniert" }, 254{ "userdefined","benutzerdefiniert" },
255{ "Reply to this mail","Beantworte diese Mail" }, 255{ "Reply to this mail","Beantworte diese Mail" },
256{ "Su:","Be:" }, 256{ "Su:","Be:" },
257{ "Fr:","Vo:" }, 257{ "Fr:","Vo:" },
258{ "To:","An:" }, 258{ "To:","An:" },
259{ "Download Mail","Mail runterladen" }, 259{ "Download Mail","Mail runterladen" },
260{ "View Source","Zeige Source" }, 260{ "View Source","Zeige Source" },
261{ "Show "To" field in list view","Zeige "An" Feld in Listenansicht" },
262{ "Show info fields at startup","Zeige Info Felder beim Start" },
263{ "Show "Subject" info field","Zeige "Betreff" Info Feld" },
264{ "Show "From" info field","Zeige "Von" Info Feld" },
265{ "Show "To" info field","Zeige "An" Info Feld" },
266{ "","" },
267{ "","" },
268{ "","" },
269{ "","" },
270{ "","" },
261{ "","" }, 271{ "","" },
262{ "","" }, 272{ "","" },
263{ "","" }, 273{ "","" },
264{ "","" }, 274{ "","" },
diff --git a/kmicromail/koprefs.cpp b/kmicromail/koprefs.cpp
index 2bae5f6..7b1e169 100644
--- a/kmicromail/koprefs.cpp
+++ b/kmicromail/koprefs.cpp
@@ -1,126 +1,129 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
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 23
24#include <time.h> 24#include <time.h>
25#ifndef _WIN32_ 25#ifndef _WIN32_
26#include <unistd.h> 26#include <unistd.h>
27#endif 27#endif
28#include <qdir.h> 28#include <qdir.h>
29#include <qtextstream.h> 29#include <qtextstream.h>
30#include <qtextcodec.h> 30#include <qtextcodec.h>
31#include <qstring.h> 31#include <qstring.h>
32#include <qregexp.h> 32#include <qregexp.h>
33#include <qfont.h> 33#include <qfont.h>
34#include <qcolor.h> 34#include <qcolor.h>
35#include <qstringlist.h> 35#include <qstringlist.h>
36#include <stdlib.h> 36#include <stdlib.h>
37 37
38#include <kglobal.h> 38#include <kglobal.h>
39#include <kconfig.h> 39#include <kconfig.h>
40#include <klocale.h> 40#include <klocale.h>
41#include <kdebug.h> 41#include <kdebug.h>
42#include <kemailsettings.h> 42#include <kemailsettings.h>
43#include <kstaticdeleter.h> 43#include <kstaticdeleter.h>
44 44
45#include "koprefs.h" 45#include "koprefs.h"
46#include "mainwindow.h" 46#include "mainwindow.h"
47 47
48 48
49KOPrefs *KOPrefs::mInstance = 0; 49KOPrefs *KOPrefs::mInstance = 0;
50static KStaticDeleter<KOPrefs> insd; 50static KStaticDeleter<KOPrefs> insd;
51 51
52KOPrefs::KOPrefs() : 52KOPrefs::KOPrefs() :
53 KPimPrefs("kopiemailrc") 53 KPimPrefs("kopiemailrc")
54{ 54{
55 mAppFont = QFont("helvetica",12); 55 mAppFont = QFont("helvetica",12);
56 mComposeFont = QFont("helvetica",12); 56 mComposeFont = QFont("helvetica",12);
57 mReadFont = QFont("helvetica",12); 57 mReadFont = QFont("helvetica",12);
58 58
59 KPrefs::setCurrentGroup("General"); 59 KPrefs::setCurrentGroup("General");
60 addItemString("SendCodec",&mSendCodec,i18n ("userdefined") ); 60 addItemString("SendCodec",&mSendCodec,i18n ("userdefined") );
61 addItemString("SenderName",&mName,i18n ("Please set at") ); 61 addItemString("SenderName",&mName,i18n ("Please set at") );
62 addItemString("SenderEmail",&mEmail,i18n ("Settings@General TAB") ); 62 addItemString("SenderEmail",&mEmail,i18n ("Settings@General TAB") );
63 addItemBool("ViewMailAsHtml",&mViewAsHtml,false); 63 addItemBool("ViewMailAsHtml",&mViewAsHtml,false);
64 addItemBool("SendMailLater",&mSendLater,true); 64 addItemBool("SendMailLater",&mSendLater,true);
65 addItemBool("ShowToField",&mShowToField,false); 65 addItemBool("ShowToField",&mShowToField,false);
66 addItemBool("UseKapi",&mUseKapi,false); 66 addItemBool("UseKapi",&mUseKapi,false);
67 addItemInt("CurrentCodec",&mCurrentCodec,0); 67 addItemInt("CurrentCodec",&mCurrentCodec,0);
68 68 addItemBool("ShowInfoSub",&mShowInfoSub,true);
69 addItemBool("ShowInfoFrom",&mShowInfoFrom,true);
70 addItemBool("ShowInfoTo",&mShowInfoTo,true);
71 addItemBool("ShowInfoStart",&mShowInfoStart,true);
69 KPrefs::setCurrentGroup("Fonts"); 72 KPrefs::setCurrentGroup("Fonts");
70 addItemFont("Application Font",&mAppFont); 73 addItemFont("Application Font",&mAppFont);
71 addItemFont("Compose Font",&mComposeFont); 74 addItemFont("Compose Font",&mComposeFont);
72 addItemFont("Read Font",&mReadFont); 75 addItemFont("Read Font",&mReadFont);
73 fillMailDefaults(); 76 fillMailDefaults();
74 isDirty = false; 77 isDirty = false;
75} 78}
76 79
77 80
78KOPrefs::~KOPrefs() 81KOPrefs::~KOPrefs()
79{ 82{
80 if ( isDirty ) 83 if ( isDirty )
81 writeConfig(); 84 writeConfig();
82 if (mInstance == this) 85 if (mInstance == this)
83 mInstance = insd.setObject(0); 86 mInstance = insd.setObject(0);
84 87
85} 88}
86 89
87 90
88KOPrefs *KOPrefs::instance() 91KOPrefs *KOPrefs::instance()
89{ 92{
90 if (!mInstance) { 93 if (!mInstance) {
91 mInstance = insd.setObject(new KOPrefs()); 94 mInstance = insd.setObject(new KOPrefs());
92 mInstance->readConfig(); 95 mInstance->readConfig();
93 } 96 }
94 97
95 return mInstance; 98 return mInstance;
96} 99}
97 100
98void KOPrefs::usrSetDefaults() 101void KOPrefs::usrSetDefaults()
99{ 102{
100 103
101} 104}
102 105
103void KOPrefs::fillMailDefaults() 106void KOPrefs::fillMailDefaults()
104{ 107{
105 if (mName.isEmpty()) mName = i18n ("Please set at"); 108 if (mName.isEmpty()) mName = i18n ("Please set at");
106 if (mEmail.isEmpty()) mEmail = i18n ("Settings@General TAB"); 109 if (mEmail.isEmpty()) mEmail = i18n ("Settings@General TAB");
107} 110}
108 111
109void KOPrefs::usrReadConfig() 112void KOPrefs::usrReadConfig()
110{ 113{
111 114
112 KPimPrefs::usrReadConfig(); 115 KPimPrefs::usrReadConfig();
113} 116}
114 117
115 118
116void KOPrefs::usrWriteConfig() 119void KOPrefs::usrWriteConfig()
117{ 120{
118 KPimPrefs::usrWriteConfig(); 121 KPimPrefs::usrWriteConfig();
119} 122}
120 123
121 124
122 125
123KConfig* KOPrefs::getConfig() 126KConfig* KOPrefs::getConfig()
124{ 127{
125 return config(); 128 return config();
126} 129}
diff --git a/kmicromail/koprefs.h b/kmicromail/koprefs.h
index f2c4fbb..f2501e3 100644
--- a/kmicromail/koprefs.h
+++ b/kmicromail/koprefs.h
@@ -1,80 +1,81 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
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 KOPREFS_H 23#ifndef KOPREFS_H
24#define KOPREFS_H 24#define KOPREFS_H
25 25
26 26
27#include <libkdepim/kpimprefs.h> 27#include <libkdepim/kpimprefs.h>
28 28
29class KConfig; 29class KConfig;
30class QFont; 30class QFont;
31class QColor; 31class QColor;
32class QStringList; 32class QStringList;
33 33
34class KOPrefs : public KPimPrefs 34class KOPrefs : public KPimPrefs
35{ 35{
36 public: 36 public:
37 virtual ~KOPrefs(); 37 virtual ~KOPrefs();
38 38
39 /** Get instance of KOPrefs. It is made sure that there is only one 39 /** Get instance of KOPrefs. It is made sure that there is only one
40 instance. */ 40 instance. */
41 static KOPrefs *instance(); 41 static KOPrefs *instance();
42 42
43 /** Set preferences to default values */ 43 /** Set preferences to default values */
44 void usrSetDefaults(); 44 void usrSetDefaults();
45 45
46 /** Read preferences from config file */ 46 /** Read preferences from config file */
47 void usrReadConfig(); 47 void usrReadConfig();
48 48
49 /** Write preferences to config file */ 49 /** Write preferences to config file */
50 void usrWriteConfig(); 50 void usrWriteConfig();
51 void setCategoryDefaults(){;}; 51 void setCategoryDefaults(){;};
52 52
53 protected: 53 protected:
54 54
55 /** Fill empty mail fields with default values. */ 55 /** Fill empty mail fields with default values. */
56 void fillMailDefaults(); 56 void fillMailDefaults();
57 57
58 private: 58 private:
59 /** Constructor disabled for public. Use instance() to create a KOPrefs 59 /** Constructor disabled for public. Use instance() to create a KOPrefs
60 object. */ 60 object. */
61 KOPrefs(); 61 KOPrefs();
62 62
63 static KOPrefs *mInstance; 63 static KOPrefs *mInstance;
64 public: 64 public:
65 // preferences data 65 // preferences data
66 KConfig* getConfig(); 66 KConfig* getConfig();
67 QFont mAppFont; 67 QFont mAppFont;
68 QFont mComposeFont; 68 QFont mComposeFont;
69 QFont mReadFont; 69 QFont mReadFont;
70 QString mName; 70 QString mName;
71 QString mSendCodec; 71 QString mSendCodec;
72 QString mEmail; 72 QString mEmail;
73 QString mCurrentCodeName; 73 QString mCurrentCodeName;
74 int mCurrentCodec; 74 int mCurrentCodec;
75 bool mSendLater, mViewAsHtml, mUseKapi, isDirty, mShowToField; 75 bool mSendLater, mViewAsHtml, mUseKapi, isDirty, mShowToField;
76 bool mShowInfoSub, mShowInfoFrom, mShowInfoTo, mShowInfoStart;
76 private: 77 private:
77 78
78}; 79};
79 80
80#endif 81#endif
diff --git a/kmicromail/koprefsdialog.cpp b/kmicromail/koprefsdialog.cpp
index 5c8a5a9..4af4a8c 100644
--- a/kmicromail/koprefsdialog.cpp
+++ b/kmicromail/koprefsdialog.cpp
@@ -1,1688 +1,1707 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
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#include <kdialog.h> 23#include <kdialog.h>
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qgroupbox.h> 26#include <qgroupbox.h>
27#include <qbuttongroup.h> 27#include <qbuttongroup.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29#include <qfont.h> 29#include <qfont.h>
30#include <qslider.h> 30#include <qslider.h>
31#include <qfile.h> 31#include <qfile.h>
32#include <qtextstream.h> 32#include <qtextstream.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qvbox.h> 34#include <qvbox.h>
35#include <qhbox.h> 35#include <qhbox.h>
36#include <qregexp.h> 36#include <qregexp.h>
37#include <qspinbox.h> 37#include <qspinbox.h>
38#include <qdatetime.h> 38#include <qdatetime.h>
39#include <qcheckbox.h> 39#include <qcheckbox.h>
40#include <qradiobutton.h> 40#include <qradiobutton.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qstrlist.h> 42#include <qstrlist.h>
43#include <qapplication.h> 43#include <qapplication.h>
44 44
45#include <kcolorbutton.h> 45#include <kcolorbutton.h>
46#include <kdebug.h> 46#include <kdebug.h>
47#include <klocale.h> 47#include <klocale.h>
48#include <kglobal.h> 48#include <kglobal.h>
49#include <kfontdialog.h> 49#include <kfontdialog.h>
50#include <kfiledialog.h> 50#include <kfiledialog.h>
51#include <kmessagebox.h> 51#include <kmessagebox.h>
52#include <kcolordialog.h> 52#include <kcolordialog.h>
53#include <kiconloader.h> 53#include <kiconloader.h>
54#include <kemailsettings.h> 54#include <kemailsettings.h>
55#include <kstandarddirs.h> 55#include <kstandarddirs.h>
56 56
57#include <klineedit.h> 57#include <klineedit.h>
58 58
59 59
60#include "koprefs.h" 60#include "koprefs.h"
61 61
62#include "koprefsdialog.h" 62#include "koprefsdialog.h"
63//#include <kprefswidget.h> 63//#include <kprefswidget.h>
64 64
65 65
66KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) : 66KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) :
67 KPrefsDialog(KOPrefs::instance(),parent,name,true) 67 KPrefsDialog(KOPrefs::instance(),parent,name,true)
68{ 68{
69 69
70 setCaption( i18n("Settings - some need a restart (nr)")); 70 setCaption( i18n("Settings - some need a restart (nr)"));
71 setupGlobalTab(); 71 setupGlobalTab();
72 setupMainTab(); 72 setupMainTab();
73 setupMailTab();; 73 setupMailTab();;
74 setupFontsTab(); 74 setupFontsTab();
75 readConfig(); 75 readConfig();
76 76
77#if 0 77#if 0
78 78
79 setupMainTab(); 79 setupMainTab();
80 setupLocaleTab(); 80 setupLocaleTab();
81 setupTimeZoneTab(); 81 setupTimeZoneTab();
82 setupTimeTab(); 82 setupTimeTab();
83 setupLocaleDateTab(); 83 setupLocaleDateTab();
84 setupFontsTab(); 84 setupFontsTab();
85 setupColorsTab(); 85 setupColorsTab();
86 setupViewsTab(); 86 setupViewsTab();
87 //setupSyncTab(); 87 //setupSyncTab();
88 //setupSyncAlgTab(); 88 //setupSyncAlgTab();
89 //setupPrinterTab(); 89 //setupPrinterTab();
90 //setupGroupSchedulingTab(); 90 //setupGroupSchedulingTab();
91 //setupGroupAutomationTab(); 91 //setupGroupAutomationTab();
92#endif 92#endif
93} 93}
94 94
95#include "kpimglobalprefs.h" 95#include "kpimglobalprefs.h"
96 96
97KOPrefsDialog::~KOPrefsDialog() 97KOPrefsDialog::~KOPrefsDialog()
98{ 98{
99} 99}
100void KOPrefsDialog::setupGlobalTab() 100void KOPrefsDialog::setupGlobalTab()
101{ 101{
102 QFrame *topFrame = addPage(i18n("Global"),0,0); 102 QFrame *topFrame = addPage(i18n("Global"),0,0);
103 kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" ); 103 kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" );
104 QVBoxLayout *topLayout = new QVBoxLayout(topFrame); 104 QVBoxLayout *topLayout = new QVBoxLayout(topFrame);
105 topLayout->addWidget( kdelibcfg ); 105 topLayout->addWidget( kdelibcfg );
106 106
107 107
108} 108}
109void KOPrefsDialog::setupMainTab() 109void KOPrefsDialog::setupMainTab()
110{ 110{
111 QFrame *topFrame = addPage(i18n("General"),0,0); 111 QFrame *topFrame = addPage(i18n("General"),0,0);
112 112
113 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 113 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
114 topLayout->setSpacing(spacingHint()); 114 topLayout->setSpacing(spacingHint());
115 topLayout->setMargin(marginHint()); 115 topLayout->setMargin(marginHint());
116 116
117 117
118 mNameEdit = new QLineEdit(topFrame); 118 mNameEdit = new QLineEdit(topFrame);
119 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 119 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
120 topLayout->addWidget(mNameLabel,0,0); 120 topLayout->addWidget(mNameLabel,0,0);
121 topLayout->addWidget(mNameEdit,0,1); 121 topLayout->addWidget(mNameEdit,0,1);
122 122
123 mEmailEdit = new QLineEdit(topFrame); 123 mEmailEdit = new QLineEdit(topFrame);
124 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 124 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
125 topLayout->addWidget(mEmailLabel,1,0); 125 topLayout->addWidget(mEmailLabel,1,0);
126 topLayout->addWidget(mEmailEdit,1,1); 126 topLayout->addWidget(mEmailEdit,1,1);
127 QLabel *lab = new QLabel( i18n("HINT: Separate multiple\neMail addresses by \";\""), topFrame); 127 QLabel *lab = new QLabel( i18n("HINT: Separate multiple\neMail addresses by \";\""), topFrame);
128 topLayout->addMultiCellWidget(lab,2,2,0,1); 128 topLayout->addMultiCellWidget(lab,2,2,0,1);
129 KPrefsDialogWidBool* ttt = addWidBool(i18n("Ignore above settings and\nuse KA/Pi \"Who am I\" instead!"), 129 KPrefsDialogWidBool* ttt = addWidBool(i18n("Ignore above settings and\nuse KA/Pi \"Who am I\" instead!"),
130 &(KOPrefs::instance()->mUseKapi),topFrame); 130 &(KOPrefs::instance()->mUseKapi),topFrame);
131 topLayout->addMultiCellWidget(ttt->checkBox(),3,3,0,1); 131 topLayout->addMultiCellWidget(ttt->checkBox(),3,3,0,1);
132} 132}
133 133
134void KOPrefsDialog::setupMailTab() 134void KOPrefsDialog::setupMailTab()
135{ 135{
136 QFrame *topFrame = addPage(i18n("Mail"),0,0); 136 QFrame *topFrame = addPage(i18n("Mail"),0,0);
137 137
138 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 138 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
139 topLayout->setSpacing(spacingHint()); 139 topLayout->setSpacing(spacingHint());
140 topLayout->setMargin(marginHint()); 140 topLayout->setMargin(marginHint());
141 141
142 KPrefsDialogWidBool* ttt = addWidBool(i18n("View mail as html"), 142 KPrefsDialogWidBool* ttt = addWidBool(i18n("View mail as html"),
143 &(KOPrefs::instance()->mViewAsHtml),topFrame); 143 &(KOPrefs::instance()->mViewAsHtml),topFrame);
144 topLayout->addMultiCellWidget(ttt->checkBox(),0,0,0,1); 144 topLayout->addMultiCellWidget(ttt->checkBox(),0,0,0,1);
145 145
146 146
147 ttt = addWidBool(i18n("Send mails later"), 147 ttt = addWidBool(i18n("Send mails later"),
148 &(KOPrefs::instance()->mSendLater),topFrame); 148 &(KOPrefs::instance()->mSendLater),topFrame);
149 topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1); 149 topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1);
150 ttt = addWidBool(i18n("Show \"To\" field in list view"), 150 ttt = addWidBool(i18n("Show \"To\" field in list view"),
151 &(KOPrefs::instance()->mShowToField),topFrame); 151 &(KOPrefs::instance()->mShowToField),topFrame);
152 topLayout->addMultiCellWidget(ttt->checkBox(),2,2,0,1); 152 topLayout->addMultiCellWidget(ttt->checkBox(),2,2,0,1);
153
154 int iii =3;
155 ttt = addWidBool(i18n("Show info fields at startup"),
156 &(KOPrefs::instance()->mShowInfoStart),topFrame);
157 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
158 ++iii;
159 ttt = addWidBool(i18n("Show \"Subject\" info field"),
160 &(KOPrefs::instance()->mShowInfoSub),topFrame);
161 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
162 ++iii;
163 ttt = addWidBool(i18n("Show \"From\" info field"),
164 &(KOPrefs::instance()->mShowInfoFrom),topFrame);
165 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
166 ++iii;
167 ttt = addWidBool(i18n("Show \"To\" info field"),
168 &(KOPrefs::instance()->mShowInfoTo),topFrame);
169 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
170 ++iii;
171
153 /* 172 /*
154 mCodecEdit = new QLineEdit(topFrame); 173 mCodecEdit = new QLineEdit(topFrame);
155 topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1); 174 topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1);
156 topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1); 175 topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1);
157 topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1); 176 topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1);
158 */ 177 */
159} 178}
160void KOPrefsDialog::setupFontsTab() 179void KOPrefsDialog::setupFontsTab()
161{ 180{
162 181
163 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 182 QFrame *topFrame = addPage(i18n("Fonts"),0,0);
164 // DesktopIcon("fonts",KIcon::SizeMedium)); 183 // DesktopIcon("fonts",KIcon::SizeMedium));
165 184
166 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 185 QGridLayout *topLayout = new QGridLayout(topFrame,7,3);
167 topLayout->setSpacing(1); 186 topLayout->setSpacing(1);
168 topLayout->setMargin(3); 187 topLayout->setMargin(3);
169 KPrefsDialogWidFont * tVFont; 188 KPrefsDialogWidFont * tVFont;
170 int i = 0; 189 int i = 0;
171 KPrefsDialogWidFont *timeLabelsFont = 190 KPrefsDialogWidFont *timeLabelsFont =
172 addWidFont(i18n("OK"),i18n("Application(nr)"), 191 addWidFont(i18n("OK"),i18n("Application(nr)"),
173 &(KOPrefs::instance()->mAppFont),topFrame); 192 &(KOPrefs::instance()->mAppFont),topFrame);
174 topLayout->addWidget(timeLabelsFont->label(),i,0); 193 topLayout->addWidget(timeLabelsFont->label(),i,0);
175 topLayout->addWidget(timeLabelsFont->preview(),i,1); 194 topLayout->addWidget(timeLabelsFont->preview(),i,1);
176 topLayout->addWidget(timeLabelsFont->button(),i,2); 195 topLayout->addWidget(timeLabelsFont->button(),i,2);
177 ++i; 196 ++i;
178 197
179 198
180 timeLabelsFont = 199 timeLabelsFont =
181 addWidFont(i18n("Dear Mr."),i18n("Compose mail:"), 200 addWidFont(i18n("Dear Mr."),i18n("Compose mail:"),
182 &(KOPrefs::instance()->mComposeFont),topFrame); 201 &(KOPrefs::instance()->mComposeFont),topFrame);
183 topLayout->addWidget(timeLabelsFont->label(),i,0); 202 topLayout->addWidget(timeLabelsFont->label(),i,0);
184 topLayout->addWidget(timeLabelsFont->preview(),i,1); 203 topLayout->addWidget(timeLabelsFont->preview(),i,1);
185 topLayout->addWidget(timeLabelsFont->button(),i,2); 204 topLayout->addWidget(timeLabelsFont->button(),i,2);
186 ++i; 205 ++i;
187 206
188 KPrefsDialogWidFont *timeBarFont = 207 KPrefsDialogWidFont *timeBarFont =
189 addWidFont(i18n("Hello"),i18n("Read mail:"), 208 addWidFont(i18n("Hello"),i18n("Read mail:"),
190 &(KOPrefs::instance()->mReadFont),topFrame); 209 &(KOPrefs::instance()->mReadFont),topFrame);
191 topLayout->addWidget(timeBarFont->label(),i,0); 210 topLayout->addWidget(timeBarFont->label(),i,0);
192 topLayout->addWidget(timeBarFont->preview(),i,1); 211 topLayout->addWidget(timeBarFont->preview(),i,1);
193 topLayout->addWidget(timeBarFont->button(),i,2); 212 topLayout->addWidget(timeBarFont->button(),i,2);
194 ++i; 213 ++i;
195 214
196 topLayout->setColStretch(1,1); 215 topLayout->setColStretch(1,1);
197 topLayout->setRowStretch(4,1); 216 topLayout->setRowStretch(4,1);
198 217
199} 218}
200void KOPrefsDialog::usrReadConfig() 219void KOPrefsDialog::usrReadConfig()
201{ 220{
202 221
203 mNameEdit->setText(KOPrefs::instance()->mName); 222 mNameEdit->setText(KOPrefs::instance()->mName);
204 mEmailEdit->setText(KOPrefs::instance()->mEmail); 223 mEmailEdit->setText(KOPrefs::instance()->mEmail);
205 //mCodecEdit->setText(KOPrefs::instance()->mSendCodec); 224 //mCodecEdit->setText(KOPrefs::instance()->mSendCodec);
206 kdelibcfg->readConfig(); 225 kdelibcfg->readConfig();
207} 226}
208void KOPrefsDialog::usrWriteConfig() 227void KOPrefsDialog::usrWriteConfig()
209{ 228{
210 KOPrefs::instance()->mName = mNameEdit->text(); 229 KOPrefs::instance()->mName = mNameEdit->text();
211 KOPrefs::instance()->mEmail = mEmailEdit->text(); 230 KOPrefs::instance()->mEmail = mEmailEdit->text();
212 //KOPrefs::instance()->mSendCodec = mCodecEdit->text(); 231 //KOPrefs::instance()->mSendCodec = mCodecEdit->text();
213 kdelibcfg->writeConfig(); 232 kdelibcfg->writeConfig();
214 233
215 234
216} 235}
217 236
218#if 0 237#if 0
219void KOPrefsDialog::setupLocaleDateTab() 238void KOPrefsDialog::setupLocaleDateTab()
220{ 239{
221QFrame *topFrame = addPage(i18n("Date Format"),0,0); 240QFrame *topFrame = addPage(i18n("Date Format"),0,0);
222 QGridLayout *topLayout = new QGridLayout(topFrame,3,2); 241 QGridLayout *topLayout = new QGridLayout(topFrame,3,2);
223 topLayout->setSpacing(spacingHint()); 242 topLayout->setSpacing(spacingHint());
224 topLayout->setMargin(marginHint()); 243 topLayout->setMargin(marginHint());
225 int iii = 0; 244 int iii = 0;
226 245
227 246
228 KPrefsWidRadios *syncPrefsGroup = 247 KPrefsWidRadios *syncPrefsGroup =
229 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame); 248 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame);
230 QString format; 249 QString format;
231 if ( QApplication::desktop()->width() < 480 ) 250 if ( QApplication::desktop()->width() < 480 )
232 format = "(%d.%m.%Y)"; 251 format = "(%d.%m.%Y)";
233 else 252 else
234 format = "(%d.%m.%Y|%A %d %B %Y)"; 253 format = "(%d.%m.%Y|%A %d %B %Y)";
235 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format)); 254 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format));
236 if ( QApplication::desktop()->width() < 480 ) 255 if ( QApplication::desktop()->width() < 480 )
237 format = "(%m.%d.%Y)"; 256 format = "(%m.%d.%Y)";
238 else 257 else
239 format = "(%m.%d.%Y|%A %B %d %Y)"; 258 format = "(%m.%d.%Y|%A %B %d %Y)";
240 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format)); 259 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format));
241 if ( QApplication::desktop()->width() < 480 ) 260 if ( QApplication::desktop()->width() < 480 )
242 format = "(%Y-%m-%d)"; 261 format = "(%Y-%m-%d)";
243 else 262 else
244 format = "(%Y-%m-%d|%A %Y %B %d)"; 263 format = "(%Y-%m-%d|%A %Y %B %d)";
245 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format)); 264 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format));
246 syncPrefsGroup->addRadio(i18n("User defined")); 265 syncPrefsGroup->addRadio(i18n("User defined"));
247 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 266 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
248 ++iii; 267 ++iii;
249 ++iii; 268 ++iii;
250 QLabel * lab; 269 QLabel * lab;
251 mUserDateFormatLong = new QLineEdit(topFrame); 270 mUserDateFormatLong = new QLineEdit(topFrame);
252 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame); 271 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame);
253 topLayout->addWidget(lab ,iii,0); 272 topLayout->addWidget(lab ,iii,0);
254 topLayout->addWidget(mUserDateFormatLong,iii,1); 273 topLayout->addWidget(mUserDateFormatLong,iii,1);
255 ++iii; 274 ++iii;
256 mUserDateFormatShort = new QLineEdit(topFrame); 275 mUserDateFormatShort = new QLineEdit(topFrame);
257 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame); 276 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame);
258 topLayout->addWidget(lab ,iii,0); 277 topLayout->addWidget(lab ,iii,0);
259 topLayout->addWidget(mUserDateFormatShort,iii,1); 278 topLayout->addWidget(mUserDateFormatShort,iii,1);
260 ++iii; 279 ++iii;
261 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame); 280 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame);
262 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 281 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
263 ++iii; 282 ++iii;
264 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame); 283 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame);
265 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 284 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
266 ++iii; 285 ++iii;
267 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame); 286 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame);
268 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 287 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
269 ++iii; 288 ++iii;
270 289
271} 290}
272 291
273void KOPrefsDialog::setupLocaleTab() 292void KOPrefsDialog::setupLocaleTab()
274{ 293{
275 QFrame *topFrame = addPage(i18n("Locale"),0,0); 294 QFrame *topFrame = addPage(i18n("Locale"),0,0);
276 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 295 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
277 topLayout->setSpacing(spacingHint()); 296 topLayout->setSpacing(spacingHint());
278 topLayout->setMargin(marginHint()); 297 topLayout->setMargin(marginHint());
279 int iii = 0; 298 int iii = 0;
280 KPrefsWidRadios *syncPrefsGroup = 299 KPrefsWidRadios *syncPrefsGroup =
281 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame); 300 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame);
282 syncPrefsGroup->addRadio(i18n("English")); 301 syncPrefsGroup->addRadio(i18n("English"));
283 syncPrefsGroup->addRadio(i18n("German")); 302 syncPrefsGroup->addRadio(i18n("German"));
284 syncPrefsGroup->addRadio(i18n("French")); 303 syncPrefsGroup->addRadio(i18n("French"));
285 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)")); 304 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)"));
286 if ( QApplication::desktop()->width() < 300 ) 305 if ( QApplication::desktop()->width() < 300 )
287 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 306 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
288 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 307 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
289 ++iii; 308 ++iii;
290 309
291 syncPrefsGroup = 310 syncPrefsGroup =
292 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame); 311 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame);
293 if ( QApplication::desktop()->width() > 300 ) 312 if ( QApplication::desktop()->width() > 300 )
294 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 313 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
295 syncPrefsGroup->addRadio(i18n("24:00")); 314 syncPrefsGroup->addRadio(i18n("24:00"));
296 syncPrefsGroup->addRadio(i18n("12:00am")); 315 syncPrefsGroup->addRadio(i18n("12:00am"));
297 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 316 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
298 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 317 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
299 ++iii; 318 ++iii;
300 KPrefsDialogWidBool *sb; 319 KPrefsDialogWidBool *sb;
301 if ( QApplication::desktop()->width() < 300 ) { 320 if ( QApplication::desktop()->width() < 300 ) {
302 sb = 321 sb =
303 addWidBool(i18n("Week starts on Sunday"), 322 addWidBool(i18n("Week starts on Sunday"),
304 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame); 323 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame);
305 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 324 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
306 ++iii; 325 ++iii;
307 sb = 326 sb =
308 addWidBool(i18n("Use short date in (WN/E) view"), 327 addWidBool(i18n("Use short date in (WN/E) view"),
309 &(KOPrefs::instance()->mShortDateInViewer),topFrame); 328 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
310 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 329 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
311 } 330 }
312 else { 331 else {
313 QWidget * hb = new QWidget( topFrame ); 332 QWidget * hb = new QWidget( topFrame );
314 QHBoxLayout *hbLayout = new QHBoxLayout(hb); 333 QHBoxLayout *hbLayout = new QHBoxLayout(hb);
315 sb = 334 sb =
316 addWidBool(i18n("Week starts on Sunday"), 335 addWidBool(i18n("Week starts on Sunday"),
317 &(KOPrefs::instance()->mWeekStartsOnSunday),hb); 336 &(KOPrefs::instance()->mWeekStartsOnSunday),hb);
318 hbLayout->addWidget(sb->checkBox() ); 337 hbLayout->addWidget(sb->checkBox() );
319 sb = 338 sb =
320 addWidBool(i18n("Use short date in (WN/E) view"), 339 addWidBool(i18n("Use short date in (WN/E) view"),
321 &(KOPrefs::instance()->mShortDateInViewer),hb); 340 &(KOPrefs::instance()->mShortDateInViewer),hb);
322 hbLayout->addWidget(sb->checkBox() ); 341 hbLayout->addWidget(sb->checkBox() );
323 topLayout->addMultiCellWidget(hb, iii,iii,0,1); 342 topLayout->addMultiCellWidget(hb, iii,iii,0,1);
324 343
325 } 344 }
326 //#ifndef DESKTOP_VERSION 345 //#ifndef DESKTOP_VERSION
327#if 0 346#if 0
328 ++iii; 347 ++iii;
329 sb = 348 sb =
330 addWidBool(i18n("Quick load/save (w/o Unicode)"), 349 addWidBool(i18n("Quick load/save (w/o Unicode)"),
331 &(KOPrefs::instance()->mUseQuicksave),topFrame); 350 &(KOPrefs::instance()->mUseQuicksave),topFrame);
332 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 351 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
333#endif 352#endif
334} 353}
335void KOPrefsDialog::showSyncPage() 354void KOPrefsDialog::showSyncPage()
336{ 355{
337 showPage ( 2 ) ; 356 showPage ( 2 ) ;
338 357
339} 358}
340void KOPrefsDialog::setupSyncAlgTab() 359void KOPrefsDialog::setupSyncAlgTab()
341{ 360{
342#if 0 361#if 0
343 QLabel * lab; 362 QLabel * lab;
344 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0); 363 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0);
345 mSetupSyncAlgTab = topFrame; 364 mSetupSyncAlgTab = topFrame;
346 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 365 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
347 topLayout->setSpacing(spacingHint()); 366 topLayout->setSpacing(spacingHint());
348 topLayout->setMargin(marginHint()); 367 topLayout->setMargin(marginHint());
349 int iii = 0; 368 int iii = 0;
350 369
351 KPrefsDialogWidBool *sb = 370 KPrefsDialogWidBool *sb =
352 addWidBool(i18n("Ask for preferences before syncing"), 371 addWidBool(i18n("Ask for preferences before syncing"),
353 &(KOPrefs::instance()->mAskForPreferences),topFrame); 372 &(KOPrefs::instance()->mAskForPreferences),topFrame);
354 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 373 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
355 374
356 ++iii; 375 ++iii;
357 376
358 KPrefsWidRadios *syncPrefsGroup = 377 KPrefsWidRadios *syncPrefsGroup =
359 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs), 378 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs),
360 topFrame); 379 topFrame);
361 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 380 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
362 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 381 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
363 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 382 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
364 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 383 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
365 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 384 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
366 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 385 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
367 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 386 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
368 ++iii; 387 ++iii;
369 sb = 388 sb =
370 addWidBool(i18n("Show summary after syncing"), 389 addWidBool(i18n("Show summary after syncing"),
371 &(KOPrefs::instance()->mShowSyncSummary),topFrame); 390 &(KOPrefs::instance()->mShowSyncSummary),topFrame);
372 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 391 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
373 392
374 ++iii; 393 ++iii;
375#endif 394#endif
376 395
377 396
378 397
379} 398}
380 399
381 400
382void KOPrefsDialog::setupSyncTab() 401void KOPrefsDialog::setupSyncTab()
383{ 402{
384#if 0 403#if 0
385 QLabel * lab; 404 QLabel * lab;
386 QFrame *topFrame = addPage(i18n("Sync Network"),0,0); 405 QFrame *topFrame = addPage(i18n("Sync Network"),0,0);
387 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 406 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
388 topLayout->setSpacing(spacingHint()); 407 topLayout->setSpacing(spacingHint());
389 topLayout->setMargin(marginHint()); 408 topLayout->setMargin(marginHint());
390 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame); 409 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame);
391 int iii = 0; 410 int iii = 0;
392 topLayout->addMultiCellWidget(lab , iii,iii,0,1); 411 topLayout->addMultiCellWidget(lab , iii,iii,0,1);
393 ++iii; 412 ++iii;
394 413
395 mRemoteIPEdit = new QLineEdit(topFrame); 414 mRemoteIPEdit = new QLineEdit(topFrame);
396 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame); 415 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame);
397 topLayout->addWidget(lab ,iii,0); 416 topLayout->addWidget(lab ,iii,0);
398 topLayout->addWidget(mRemoteIPEdit,iii,1); 417 topLayout->addWidget(mRemoteIPEdit,iii,1);
399 ++iii; 418 ++iii;
400 mRemoteUser = new QLineEdit(topFrame); 419 mRemoteUser = new QLineEdit(topFrame);
401 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame); 420 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame);
402 topLayout->addWidget(lab ,iii,0); 421 topLayout->addWidget(lab ,iii,0);
403 topLayout->addWidget(mRemoteUser, iii,1); 422 topLayout->addWidget(mRemoteUser, iii,1);
404 ++iii; 423 ++iii;
405 424
406 mRemoteFile = new QLineEdit(topFrame); 425 mRemoteFile = new QLineEdit(topFrame);
407 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame); 426 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame);
408 topLayout->addWidget(lab ,iii,0); 427 topLayout->addWidget(lab ,iii,0);
409 topLayout->addWidget(mRemoteFile,iii,1); 428 topLayout->addWidget(mRemoteFile,iii,1);
410 ++iii; 429 ++iii;
411 430
412 mLocalTempFile = new QLineEdit(topFrame); 431 mLocalTempFile = new QLineEdit(topFrame);
413 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame); 432 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame);
414 topLayout->addWidget(lab ,iii,0); 433 topLayout->addWidget(lab ,iii,0);
415 topLayout->addWidget(mLocalTempFile,iii,1); 434 topLayout->addWidget(mLocalTempFile,iii,1);
416 ++iii; 435 ++iii;
417 436
418 KPrefsDialogWidBool *wb = 437 KPrefsDialogWidBool *wb =
419 addWidBool(i18n("Write back synced file"), 438 addWidBool(i18n("Write back synced file"),
420 &(KOPrefs::instance()->mWriteBackFile),topFrame); 439 &(KOPrefs::instance()->mWriteBackFile),topFrame);
421 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 440 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
422 ++iii; 441 ++iii;
423 wb = 442 wb =
424 addWidBool(i18n("Write back existing entries only"), 443 addWidBool(i18n("Write back existing entries only"),
425 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame); 444 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame);
426 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 445 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
427 ++iii; 446 ++iii;
428 447
429#endif 448#endif
430} 449}
431 450
432void KOPrefsDialog::setupMainTab() 451void KOPrefsDialog::setupMainTab()
433{ 452{
434 QFrame *topFrame = addPage(i18n("General"),0,0); 453 QFrame *topFrame = addPage(i18n("General"),0,0);
435 // DesktopIcon("identity",KIcon::SizeMedium)); 454 // DesktopIcon("identity",KIcon::SizeMedium));
436 455
437 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 456 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
438 topLayout->setSpacing(spacingHint()); 457 topLayout->setSpacing(spacingHint());
439 topLayout->setMargin(marginHint()); 458 topLayout->setMargin(marginHint());
440 459
441 // KPrefsDialogWidBool *emailControlCenter = 460 // KPrefsDialogWidBool *emailControlCenter =
442// addWidBool(i18n("&Use email settings from Control Center"), 461// addWidBool(i18n("&Use email settings from Control Center"),
443// &(KOPrefs::instance()->mEmailControlCenter),topFrame); 462// &(KOPrefs::instance()->mEmailControlCenter),topFrame);
444// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1); 463// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1);
445 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)), 464 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)),
446 // SLOT(toggleEmailSettings(bool))); 465 // SLOT(toggleEmailSettings(bool)));
447 466
448 mNameEdit = new QLineEdit(topFrame); 467 mNameEdit = new QLineEdit(topFrame);
449 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 468 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
450 topLayout->addWidget(mNameLabel,0,0); 469 topLayout->addWidget(mNameLabel,0,0);
451 topLayout->addWidget(mNameEdit,0,1); 470 topLayout->addWidget(mNameEdit,0,1);
452 471
453 mEmailEdit = new QLineEdit(topFrame); 472 mEmailEdit = new QLineEdit(topFrame);
454 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 473 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
455 topLayout->addWidget(mEmailLabel,1,0); 474 topLayout->addWidget(mEmailLabel,1,0);
456 topLayout->addWidget(mEmailEdit,1,1); 475 topLayout->addWidget(mEmailEdit,1,1);
457 KPrefsDialogWidBool *wb; 476 KPrefsDialogWidBool *wb;
458 QHBox *dummy; 477 QHBox *dummy;
459 if ( QApplication::desktop()->width() > 480 ) { 478 if ( QApplication::desktop()->width() > 480 ) {
460 dummy = new QHBox(topFrame); 479 dummy = new QHBox(topFrame);
461 } else { 480 } else {
462 dummy = new QVBox(topFrame); 481 dummy = new QVBox(topFrame);
463 } 482 }
464 483
465 topLayout->addMultiCellWidget(dummy, 2,2,0,1); 484 topLayout->addMultiCellWidget(dummy, 2,2,0,1);
466 addWidBool(i18n("Full menu bar(nr)"), 485 addWidBool(i18n("Full menu bar(nr)"),
467 &(KOPrefs::instance()->mShowFullMenu),dummy); 486 &(KOPrefs::instance()->mShowFullMenu),dummy);
468 487
469 488
470 addWidBool(i18n("Mini icons in toolbar(nr)"), 489 addWidBool(i18n("Mini icons in toolbar(nr)"),
471 &(KOPrefs::instance()->mToolBarMiniIcons),dummy); 490 &(KOPrefs::instance()->mToolBarMiniIcons),dummy);
472 491
473 492
474 dummy = new QHBox(topFrame); 493 dummy = new QHBox(topFrame);
475 new QLabel(i18n("Days in What's Next:"),dummy); 494 new QLabel(i18n("Days in What's Next:"),dummy);
476 mWhatsNextSpin = new QSpinBox(1,14,1,dummy); 495 mWhatsNextSpin = new QSpinBox(1,14,1,dummy);
477 496
478 topLayout->addMultiCellWidget(dummy,3,3,0,1); 497 topLayout->addMultiCellWidget(dummy,3,3,0,1);
479 498
480 499
481 500
482 dummy = new QHBox(topFrame); 501 dummy = new QHBox(topFrame);
483 new QLabel(i18n("Days in Next-X-Days:"),dummy); 502 new QLabel(i18n("Days in Next-X-Days:"),dummy);
484 mNextXDaysSpin = new QSpinBox(2,14,1,dummy); 503 mNextXDaysSpin = new QSpinBox(2,14,1,dummy);
485 504
486 topLayout->addMultiCellWidget(dummy,4,4,0,1); 505 topLayout->addMultiCellWidget(dummy,4,4,0,1);
487 506
488 QHBox *prioBox = new QHBox(topFrame); 507 QHBox *prioBox = new QHBox(topFrame);
489 // intervalBox->setSpacing(spacingHint()); 508 // intervalBox->setSpacing(spacingHint());
490 topLayout->addMultiCellWidget(prioBox,5,5,0,1); 509 topLayout->addMultiCellWidget(prioBox,5,5,0,1);
491 QString messa = i18n("Show topmost todo prios in What's Next:"); 510 QString messa = i18n("Show topmost todo prios in What's Next:");
492 511
493 if ( QApplication::desktop()->width() < 300 ) 512 if ( QApplication::desktop()->width() < 300 )
494 messa = i18n("Show topmost todo prios in What's N.:"); 513 messa = i18n("Show topmost todo prios in What's N.:");
495 QLabel *prioLabel = new QLabel(messa, prioBox); 514 QLabel *prioLabel = new QLabel(messa, prioBox);
496 mPrioSpin = new QSpinBox(0,5,1,prioBox); 515 mPrioSpin = new QSpinBox(0,5,1,prioBox);
497 if ( QApplication::desktop()->width() < 300 ) 516 if ( QApplication::desktop()->width() < 300 )
498 mPrioSpin->setFixedWidth( 40 ); 517 mPrioSpin->setFixedWidth( 40 );
499 518
500 // KPrefsDialogWidBool *bcc = 519 // KPrefsDialogWidBool *bcc =
501// addWidBool(i18n("Send copy to owner when mailing events"), 520// addWidBool(i18n("Send copy to owner when mailing events"),
502// &(KOPrefs::instance()->mBcc),topFrame); 521// &(KOPrefs::instance()->mBcc),topFrame);
503// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1); 522// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1);
504 523
505 524
506 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame); 525 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame);
507 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1); 526 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1);
508 527
509 // addWidBool(i18n("Enable automatic saving of calendar"), 528 // addWidBool(i18n("Enable automatic saving of calendar"),
510 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup); 529 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup);
511 530
512 QHBox *intervalBox = new QHBox(topFrame); 531 QHBox *intervalBox = new QHBox(topFrame);
513 // intervalBox->setSpacing(spacingHint()); 532 // intervalBox->setSpacing(spacingHint());
514 topLayout->addMultiCellWidget(intervalBox,6,6,0,1); 533 topLayout->addMultiCellWidget(intervalBox,6,6,0,1);
515 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox); 534 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox);
516 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox); 535 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox);
517 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin); 536 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin);
518 /* 537 /*
519 QHBox * agendasize = new QHBox ( topFrame ); 538 QHBox * agendasize = new QHBox ( topFrame );
520 539
521 new QLabel (i18n("AllDayAgenda Height:"), agendasize ); 540 new QLabel (i18n("AllDayAgenda Height:"), agendasize );
522 541
523 542
524 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize); 543 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize);
525 topLayout->addMultiCellWidget(agendasize,7,7,0,1); 544 topLayout->addMultiCellWidget(agendasize,7,7,0,1);
526 */ 545 */
527 KPrefsDialogWidBool *verticalScreen = 546 KPrefsDialogWidBool *verticalScreen =
528 addWidBool(i18n("Show vertical screen (Needs restart)"), 547 addWidBool(i18n("Show vertical screen (Needs restart)"),
529 &(KOPrefs::instance()->mVerticalScreen),topFrame); 548 &(KOPrefs::instance()->mVerticalScreen),topFrame);
530 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0); 549 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0);
531 topLayout->addMultiCellWidget(verticalScreen->checkBox(),7,7,0,1); 550 topLayout->addMultiCellWidget(verticalScreen->checkBox(),7,7,0,1);
532 551
533 KPrefsDialogWidBool *ask = 552 KPrefsDialogWidBool *ask =
534 addWidBool(i18n("Ask for quit when closing KO/Pi"), 553 addWidBool(i18n("Ask for quit when closing KO/Pi"),
535 &(KOPrefs::instance()->mAskForQuit),topFrame); 554 &(KOPrefs::instance()->mAskForQuit),topFrame);
536 topLayout->addMultiCellWidget(ask->checkBox(),8,8,0,1); 555 topLayout->addMultiCellWidget(ask->checkBox(),8,8,0,1);
537 556
538 557
539 /* 558 /*
540 KPrefsDialogWidBool *confirmCheck = 559 KPrefsDialogWidBool *confirmCheck =
541 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm), 560 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm),
542 topFrame); 561 topFrame);
543 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1); 562 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1);
544 563
545 564
546 mEnableGroupScheduling = 565 mEnableGroupScheduling =
547 addWidBool(i18n("Enable group scheduling"), 566 addWidBool(i18n("Enable group scheduling"),
548 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame); 567 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame);
549 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0); 568 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0);
550 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()), 569 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()),
551 SLOT(warningGroupScheduling())); 570 SLOT(warningGroupScheduling()));
552 571
553 mEnableProjectView = 572 mEnableProjectView =
554 addWidBool(i18n("Enable project view"), 573 addWidBool(i18n("Enable project view"),
555 &(KOPrefs::instance()->mEnableProjectView),topFrame); 574 &(KOPrefs::instance()->mEnableProjectView),topFrame);
556 topLayout->addWidget(mEnableProjectView->checkBox(),9,0); 575 topLayout->addWidget(mEnableProjectView->checkBox(),9,0);
557 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()), 576 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()),
558 SLOT(warningProjectView())); 577 SLOT(warningProjectView()));
559 578
560 // Can't be disabled anymore 579 // Can't be disabled anymore
561 mEnableGroupScheduling->checkBox()->hide(); 580 mEnableGroupScheduling->checkBox()->hide();
562 581
563 // Disable setting, because this feature now becomes stable 582 // Disable setting, because this feature now becomes stable
564 mEnableProjectView->checkBox()->hide(); 583 mEnableProjectView->checkBox()->hide();
565 584
566 KPrefsWidRadios *defaultFormatGroup = 585 KPrefsWidRadios *defaultFormatGroup =
567 addWidRadios(i18n("Default Calendar Format"), 586 addWidRadios(i18n("Default Calendar Format"),
568 &(KOPrefs::instance()->mDefaultFormat),topFrame); 587 &(KOPrefs::instance()->mDefaultFormat),topFrame);
569 defaultFormatGroup->addRadio(i18n("vCalendar")); 588 defaultFormatGroup->addRadio(i18n("vCalendar"));
570 defaultFormatGroup->addRadio(i18n("iCalendar")); 589 defaultFormatGroup->addRadio(i18n("iCalendar"));
571 590
572 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1); 591 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1);
573 592
574 // Default format unconditionally is iCalendar 593 // Default format unconditionally is iCalendar
575 defaultFormatGroup->groupBox()->hide(); 594 defaultFormatGroup->groupBox()->hide();
576 595
577 KPrefsWidRadios *mailClientGroup = 596 KPrefsWidRadios *mailClientGroup =
578 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient), 597 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient),
579 topFrame); 598 topFrame);
580 mailClientGroup->addRadio(i18n("KMail")); 599 mailClientGroup->addRadio(i18n("KMail"));
581 mailClientGroup->addRadio(i18n("Sendmail")); 600 mailClientGroup->addRadio(i18n("Sendmail"));
582 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1); 601 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1);
583 602
584 KPrefsDialogWidBool *htmlsave = 603 KPrefsDialogWidBool *htmlsave =
585 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave), 604 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave),
586 topFrame); 605 topFrame);
587 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1); 606 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1);
588 607
589 KPrefsWidRadios *destinationGroup = 608 KPrefsWidRadios *destinationGroup =
590 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination), 609 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination),
591 topFrame); 610 topFrame);
592 destinationGroup->addRadio(i18n("be added to the standard resource")); 611 destinationGroup->addRadio(i18n("be added to the standard resource"));
593 destinationGroup->addRadio(i18n("be asked which resource to use")); 612 destinationGroup->addRadio(i18n("be asked which resource to use"));
594 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1); 613 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1);
595 614
596 topLayout->setRowStretch(14,1); 615 topLayout->setRowStretch(14,1);
597 */ 616 */
598} 617}
599 618
600 619
601void KOPrefsDialog::setupTimeTab() 620void KOPrefsDialog::setupTimeTab()
602{ 621{
603 QFrame *topFrame = addPage(i18n("Time"),0,0); 622 QFrame *topFrame = addPage(i18n("Time"),0,0);
604 // DesktopIcon("clock",KIcon::SizeMedium)); 623 // DesktopIcon("clock",KIcon::SizeMedium));
605 624
606 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 625 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
607 topLayout->setSpacing(spacingHint()); 626 topLayout->setSpacing(spacingHint());
608 topLayout->setMargin(marginHint()); 627 topLayout->setMargin(marginHint());
609 628
610 QHBox *dummy = new QHBox(topFrame); 629 QHBox *dummy = new QHBox(topFrame);
611 KPrefsWidTime *dayBegins = 630 KPrefsWidTime *dayBegins =
612 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 631 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
613 dummy); 632 dummy);
614 //topLayout->addWidget(dayBegins->label(),2,0); 633 //topLayout->addWidget(dayBegins->label(),2,0);
615 634
616 //topLayout->addWidget(dayBegins->spinBox(),2,1); 635 //topLayout->addWidget(dayBegins->spinBox(),2,1);
617 topLayout->addMultiCellWidget(dummy,0,0,0,1); 636 topLayout->addMultiCellWidget(dummy,0,0,0,1);
618 637
619 topLayout->addWidget(new QLabel(i18n("Default appointment time:"), 638 topLayout->addWidget(new QLabel(i18n("Default appointment time:"),
620 topFrame),1,0); 639 topFrame),1,0);
621 mStartTimeSpin = new QSpinBox(0,23,1,topFrame); 640 mStartTimeSpin = new QSpinBox(0,23,1,topFrame);
622 mStartTimeSpin->setSuffix(":00"); 641 mStartTimeSpin->setSuffix(":00");
623 topLayout->addWidget(mStartTimeSpin,1,1); 642 topLayout->addWidget(mStartTimeSpin,1,1);
624 643
625 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"), 644 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"),
626 topFrame),2,0); 645 topFrame),2,0);
627 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame); 646 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame);
628 mDefaultDurationSpin->setSuffix(":00"); 647 mDefaultDurationSpin->setSuffix(":00");
629 topLayout->addWidget(mDefaultDurationSpin,2,1); 648 topLayout->addWidget(mDefaultDurationSpin,2,1);
630 649
631 QStringList alarmList; 650 QStringList alarmList;
632 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes") 651 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes")
633 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ; 652 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ;
634 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame), 653 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame),
635 3,0); 654 3,0);
636 mAlarmTimeCombo = new QComboBox(topFrame); 655 mAlarmTimeCombo = new QComboBox(topFrame);
637 mAlarmTimeCombo->insertStringList(alarmList); 656 mAlarmTimeCombo->insertStringList(alarmList);
638 topLayout->addWidget(mAlarmTimeCombo,3,1); 657 topLayout->addWidget(mAlarmTimeCombo,3,1);
639 658
640 659
641 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal, 660 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal,
642 i18n("Working Hours"), 661 i18n("Working Hours"),
643 topFrame); 662 topFrame);
644 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1); 663 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1);
645 workingHoursGroup->layout()->setSpacing( 0 ); 664 workingHoursGroup->layout()->setSpacing( 0 );
646 workingHoursGroup->layout()->setMargin( 4 ); 665 workingHoursGroup->layout()->setMargin( 4 );
647 QHBox *workStartBox = new QHBox(workingHoursGroup); 666 QHBox *workStartBox = new QHBox(workingHoursGroup);
648 // workStartBox->setMargin( 0 ); 667 // workStartBox->setMargin( 0 );
649 addWidTime(i18n("Daily starting hour:"), 668 addWidTime(i18n("Daily starting hour:"),
650 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox); 669 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox);
651 670
652 QHBox *workEndBox = new QHBox(workingHoursGroup); 671 QHBox *workEndBox = new QHBox(workingHoursGroup);
653 //workEndBox->setMargin( 0 ); 672 //workEndBox->setMargin( 0 );
654 addWidTime(i18n("Daily ending hour:"), 673 addWidTime(i18n("Daily ending hour:"),
655 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox); 674 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox);
656 QVBox *excludeBox = new QVBox(workingHoursGroup); 675 QVBox *excludeBox = new QVBox(workingHoursGroup);
657 //excludeBox->setMargin( 0 ); 676 //excludeBox->setMargin( 0 );
658 addWidBool(i18n("Exclude holidays"), 677 addWidBool(i18n("Exclude holidays"),
659 &(KOPrefs::instance()->mExcludeHolidays),excludeBox); 678 &(KOPrefs::instance()->mExcludeHolidays),excludeBox);
660 679
661 addWidBool(i18n("Exclude Saturdays"), 680 addWidBool(i18n("Exclude Saturdays"),
662 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox); 681 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox);
663 682
664// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"), 683// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"),
665 // &(KOPrefs::instance()->mMarcusBainsShowSeconds), 684 // &(KOPrefs::instance()->mMarcusBainsShowSeconds),
666 // topFrame); 685 // topFrame);
667// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0); 686// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0);
668 687
669 // topLayout->setRowStretch(6,1); 688 // topLayout->setRowStretch(6,1);
670} 689}
671 690
672 691
673void KOPrefsDialog::setupViewsTab() 692void KOPrefsDialog::setupViewsTab()
674{ 693{
675 694
676 QFrame *topFrame = addPage(i18n("Views"),0,0); 695 QFrame *topFrame = addPage(i18n("Views"),0,0);
677 // DesktopIcon("viewmag",KIcon::SizeMedium)); 696 // DesktopIcon("viewmag",KIcon::SizeMedium));
678 697
679 QGridLayout *topLayout = new QGridLayout(topFrame,6,1); 698 QGridLayout *topLayout = new QGridLayout(topFrame,6,1);
680 topLayout->setSpacing(spacingHint()); 699 topLayout->setSpacing(spacingHint());
681 topLayout->setMargin(marginHint()); 700 topLayout->setMargin(marginHint());
682 701
683// QBoxLayout *dayBeginsLayout = new QHBoxLayout; 702// QBoxLayout *dayBeginsLayout = new QHBoxLayout;
684// topLayout->addLayout(dayBeginsLayout,0,0); 703// topLayout->addLayout(dayBeginsLayout,0,0);
685 704
686// KPrefsWidTime *dayBegins = 705// KPrefsWidTime *dayBegins =
687// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 706// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
688// topFrame); 707// topFrame);
689// dayBeginsLayout->addWidget(dayBegins->label()); 708// dayBeginsLayout->addWidget(dayBegins->label());
690// dayBeginsLayout->addStretch(1); 709// dayBeginsLayout->addStretch(1);
691// dayBeginsLayout->addWidget(dayBegins->spinBox()); 710// dayBeginsLayout->addWidget(dayBegins->spinBox());
692 711
693// QBoxLayout *nextDaysLayout = new QHBoxLayout; 712// QBoxLayout *nextDaysLayout = new QHBoxLayout;
694// topLayout->addLayout(nextDaysLayout,1,0); 713// topLayout->addLayout(nextDaysLayout,1,0);
695// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame)); 714// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame));
696// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame); 715// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame);
697// nextDaysLayout->addStretch(1); 716// nextDaysLayout->addStretch(1);
698// nextDaysLayout->addWidget(mNextXDaysSpin); 717// nextDaysLayout->addWidget(mNextXDaysSpin);
699 718
700 719
701 int ii = 0; 720 int ii = 0;
702 KPrefsDialogWidBool *dummy = 721 KPrefsDialogWidBool *dummy =
703 addWidBool(i18n("Edit item on doubleclick (if not, show)"), 722 addWidBool(i18n("Edit item on doubleclick (if not, show)"),
704 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame); 723 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame);
705 topLayout->addWidget(dummy->checkBox(),ii++,0); 724 topLayout->addWidget(dummy->checkBox(),ii++,0);
706 725
707 dummy = 726 dummy =
708 addWidBool(i18n("Highlight current day in agenda"), 727 addWidBool(i18n("Highlight current day in agenda"),
709 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame); 728 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame);
710 topLayout->addWidget(dummy->checkBox(),ii++,0); 729 topLayout->addWidget(dummy->checkBox(),ii++,0);
711 730
712 dummy = 731 dummy =
713 addWidBool(i18n("Use light color for highlight current day"), 732 addWidBool(i18n("Use light color for highlight current day"),
714 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame); 733 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame);
715 topLayout->addWidget(dummy->checkBox(),ii++,0); 734 topLayout->addWidget(dummy->checkBox(),ii++,0);
716 735
717 KPrefsDialogWidBool *dailyRecur = 736 KPrefsDialogWidBool *dailyRecur =
718 addWidBool(i18n("Show events that recur daily in date nav."), 737 addWidBool(i18n("Show events that recur daily in date nav."),
719 &(KOPrefs::instance()->mDailyRecur),topFrame); 738 &(KOPrefs::instance()->mDailyRecur),topFrame);
720 topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 739 topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
721 740
722 KPrefsDialogWidBool *weeklyRecur = 741 KPrefsDialogWidBool *weeklyRecur =
723 addWidBool(i18n("Show ev. that recur weekly in date nav."), 742 addWidBool(i18n("Show ev. that recur weekly in date nav."),
724 &(KOPrefs::instance()->mWeeklyRecur),topFrame); 743 &(KOPrefs::instance()->mWeeklyRecur),topFrame);
725 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0); 744 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0);
726 if ( QApplication::desktop()->width() > 640 ) { 745 if ( QApplication::desktop()->width() > 640 ) {
727 746
728 KPrefsDialogWidBool *enableToolTips = 747 KPrefsDialogWidBool *enableToolTips =
729 addWidBool(i18n("Enable tooltips displaying summary of ev."), 748 addWidBool(i18n("Enable tooltips displaying summary of ev."),
730 &(KOPrefs::instance()->mEnableToolTips),topFrame); 749 &(KOPrefs::instance()->mEnableToolTips),topFrame);
731 topLayout->addWidget(enableToolTips->checkBox(),ii++,0); 750 topLayout->addWidget(enableToolTips->checkBox(),ii++,0);
732 751
733 } 752 }
734 KPrefsDialogWidBool *passwdk = 753 KPrefsDialogWidBool *passwdk =
735 addWidBool(i18n("Show parent To-Do's in What's Next view"), 754 addWidBool(i18n("Show parent To-Do's in What's Next view"),
736 &(KOPrefs::instance()->mWNViewShowsParents),topFrame); 755 &(KOPrefs::instance()->mWNViewShowsParents),topFrame);
737 topLayout->addWidget(passwdk->checkBox(), ii++,0); 756 topLayout->addWidget(passwdk->checkBox(), ii++,0);
738 757
739 passwdk = 758 passwdk =
740 addWidBool(i18n("Show location in What's Next view"), 759 addWidBool(i18n("Show location in What's Next view"),
741 &(KOPrefs::instance()->mWNViewShowLocation),topFrame); 760 &(KOPrefs::instance()->mWNViewShowLocation),topFrame);
742 topLayout->addWidget(passwdk->checkBox(), ii++,0); 761 topLayout->addWidget(passwdk->checkBox(), ii++,0);
743 762
744 passwdk = 763 passwdk =
745 addWidBool(i18n("Show Sync Events in WN/Agenda view"), 764 addWidBool(i18n("Show Sync Events in WN/Agenda view"),
746 &(KOPrefs::instance()->mShowSyncEvents),topFrame); 765 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
747 topLayout->addWidget(passwdk->checkBox(), ii++,0); 766 topLayout->addWidget(passwdk->checkBox(), ii++,0);
748 767
749 768
750 KPrefsDialogWidBool *marcusBainsEnabled = 769 KPrefsDialogWidBool *marcusBainsEnabled =
751 addWidBool(i18n("Show Marcus Bains line"), 770 addWidBool(i18n("Show Marcus Bains line"),
752 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame); 771 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame);
753 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0); 772 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0);
754 773
755 774
756 // topLayout->addWidget(hourSizeGroup,ii++,0); 775 // topLayout->addWidget(hourSizeGroup,ii++,0);
757 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0); 776 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0);
758 //topLayout->setRowStretch(11,1); 777 //topLayout->setRowStretch(11,1);
759 778
760 779
761 780
762 781
763 782
764 783
765 topFrame = addPage(i18n("ViewChange"),0,0); 784 topFrame = addPage(i18n("ViewChange"),0,0);
766 // DesktopIcon("viewmag",KIcon::SizeMedium)); 785 // DesktopIcon("viewmag",KIcon::SizeMedium));
767 786
768 topLayout = new QGridLayout(topFrame,6,1); 787 topLayout = new QGridLayout(topFrame,6,1);
769 topLayout->setSpacing(spacingHint()); 788 topLayout->setSpacing(spacingHint());
770 topLayout->setMargin(marginHint()); 789 topLayout->setMargin(marginHint());
771 ii = 0; 790 ii = 0;
772 791
773 792
774 dummy = 793 dummy =
775 addWidBool(i18n("Hold fullscreen on view change"), 794 addWidBool(i18n("Hold fullscreen on view change"),
776 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame); 795 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame);
777 topLayout->addWidget(dummy->checkBox(),ii++,0); 796 topLayout->addWidget(dummy->checkBox(),ii++,0);
778 797
779 dummy = 798 dummy =
780 addWidBool(i18n("Hold non-fullscreen on view change"), 799 addWidBool(i18n("Hold non-fullscreen on view change"),
781 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame); 800 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame);
782 topLayout->addWidget(dummy->checkBox(),ii++,0); 801 topLayout->addWidget(dummy->checkBox(),ii++,0);
783 802
784 803
785 KPrefsDialogWidBool *fullViewTodo = 804 KPrefsDialogWidBool *fullViewTodo =
786 addWidBool(i18n("Event list view uses full window"), 805 addWidBool(i18n("Event list view uses full window"),
787 &(KOPrefs::instance()->mFullViewTodo),topFrame); 806 &(KOPrefs::instance()->mFullViewTodo),topFrame);
788 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0); 807 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0);
789 808
790 KPrefsDialogWidBool *fullViewMonth = 809 KPrefsDialogWidBool *fullViewMonth =
791 addWidBool(i18n("Next days view uses full window"), 810 addWidBool(i18n("Next days view uses full window"),
792 &(KOPrefs::instance()->mFullViewMonth),topFrame); 811 &(KOPrefs::instance()->mFullViewMonth),topFrame);
793 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0); 812 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0);
794 813
795 dummy = 814 dummy =
796 addWidBool(i18n("Set agenda to DayBeginsAt on change"), 815 addWidBool(i18n("Set agenda to DayBeginsAt on change"),
797 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame); 816 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame);
798 topLayout->addWidget(dummy->checkBox(),ii++,0); 817 topLayout->addWidget(dummy->checkBox(),ii++,0);
799 818
800 dummy = 819 dummy =
801 addWidBool(i18n("Set agenda to current time on change"), 820 addWidBool(i18n("Set agenda to current time on change"),
802 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame); 821 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame);
803 topLayout->addWidget(dummy->checkBox(),ii++,0); 822 topLayout->addWidget(dummy->checkBox(),ii++,0);
804 823
805 dummy = 824 dummy =
806 addWidBool(i18n("Listview uses monthly timespan"), 825 addWidBool(i18n("Listview uses monthly timespan"),
807 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame); 826 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame);
808 topLayout->addWidget(dummy->checkBox(),ii++,0); 827 topLayout->addWidget(dummy->checkBox(),ii++,0);
809 dummy = 828 dummy =
810 addWidBool(i18n("Highlight selection in Time Edit"), 829 addWidBool(i18n("Highlight selection in Time Edit"),
811 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame); 830 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame);
812 topLayout->addWidget( dummy->checkBox(), ii++,0); 831 topLayout->addWidget( dummy->checkBox(), ii++,0);
813 832
814 833
815 834
816 835
817 836
818 topFrame = addPage(i18n("Month View"),0,0); 837 topFrame = addPage(i18n("Month View"),0,0);
819 // DesktopIcon("viewmag",KIcon::SizeMedium)); 838 // DesktopIcon("viewmag",KIcon::SizeMedium));
820 839
821 topLayout = new QGridLayout(topFrame,5,1); 840 topLayout = new QGridLayout(topFrame,5,1);
822 topLayout->setSpacing(spacingHint()); 841 topLayout->setSpacing(spacingHint());
823 topLayout->setMargin(marginHint()); 842 topLayout->setMargin(marginHint());
824 ii = 0; 843 ii = 0;
825 QLabel *lab; 844 QLabel *lab;
826 QHBox *habo = new QHBox( topFrame ); 845 QHBox *habo = new QHBox( topFrame );
827 if ( QApplication::desktop()->width() < 320 ) { 846 if ( QApplication::desktop()->width() < 320 ) {
828 lab = new QLabel ( i18n("Show events that recur "), topFrame ); 847 lab = new QLabel ( i18n("Show events that recur "), topFrame );
829 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 848 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
830 ii++; 849 ii++;
831 850
832 } else { 851 } else {
833 new QLabel ( i18n("Show events that recur "), habo ); 852 new QLabel ( i18n("Show events that recur "), habo );
834 853
835 } 854 }
836 dailyRecur = 855 dailyRecur =
837 addWidBool(i18n("daily"), 856 addWidBool(i18n("daily"),
838 &(KOPrefs::instance()->mMonthDailyRecur),habo); 857 &(KOPrefs::instance()->mMonthDailyRecur),habo);
839 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 858 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
840 859
841 weeklyRecur = 860 weeklyRecur =
842 addWidBool(i18n("weekly"), 861 addWidBool(i18n("weekly"),
843 &(KOPrefs::instance()->mMonthWeeklyRecur),habo); 862 &(KOPrefs::instance()->mMonthWeeklyRecur),habo);
844 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 863 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
845 ii++; 864 ii++;
846 865
847 866
848 habo = new QHBox( topFrame ); 867 habo = new QHBox( topFrame );
849 if ( QApplication::desktop()->width() < 320 ) { 868 if ( QApplication::desktop()->width() < 320 ) {
850 lab = new QLabel (i18n("Show in every cell ") , topFrame ); 869 lab = new QLabel (i18n("Show in every cell ") , topFrame );
851 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 870 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
852 ii++; 871 ii++;
853 872
854 } else { 873 } else {
855 new QLabel ( i18n("Show in every cell "), habo ); 874 new QLabel ( i18n("Show in every cell "), habo );
856 } 875 }
857 weeklyRecur = 876 weeklyRecur =
858 addWidBool(i18n("short month"), 877 addWidBool(i18n("short month"),
859 &(KOPrefs::instance()->mMonthShowShort),habo); 878 &(KOPrefs::instance()->mMonthShowShort),habo);
860 weeklyRecur = 879 weeklyRecur =
861 addWidBool(i18n("icons"), 880 addWidBool(i18n("icons"),
862 &(KOPrefs::instance()->mMonthShowIcons),habo); 881 &(KOPrefs::instance()->mMonthShowIcons),habo);
863 882
864 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 883 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
865 ii++; 884 ii++;
866#ifdef DESKTOP_VERSION 885#ifdef DESKTOP_VERSION
867 KPrefsDialogWidBool *enableMonthScroll = 886 KPrefsDialogWidBool *enableMonthScroll =
868 addWidBool(i18n("Enable scrollbars in month view cells"), 887 addWidBool(i18n("Enable scrollbars in month view cells"),
869 &(KOPrefs::instance()->mEnableMonthScroll),topFrame); 888 &(KOPrefs::instance()->mEnableMonthScroll),topFrame);
870 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0); 889 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0);
871#endif 890#endif
872 891
873 dummy = 892 dummy =
874 addWidBool(i18n("Show Sat/Sun together"), 893 addWidBool(i18n("Show Sat/Sun together"),
875 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame); 894 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame);
876 topLayout->addWidget(dummy->checkBox(),ii++,0); 895 topLayout->addWidget(dummy->checkBox(),ii++,0);
877 896
878 KPrefsDialogWidBool *coloredCategoriesInMonthView = 897 KPrefsDialogWidBool *coloredCategoriesInMonthView =
879 addWidBool(i18n("Month view uses category colors"), 898 addWidBool(i18n("Month view uses category colors"),
880 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame); 899 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame);
881 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 900 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
882 901
883 dummy = 902 dummy =
884 addWidBool(i18n("Categorie colors are applied to text"), 903 addWidBool(i18n("Categorie colors are applied to text"),
885 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame); 904 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame);
886 topLayout->addWidget(dummy->checkBox(),ii++,0); 905 topLayout->addWidget(dummy->checkBox(),ii++,0);
887 coloredCategoriesInMonthView = 906 coloredCategoriesInMonthView =
888 addWidBool(i18n("Month view uses day colors"), 907 addWidBool(i18n("Month view uses day colors"),
889 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame); 908 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame);
890 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 909 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
891 910
892 KPrefsWidColor *holidayColor = 911 KPrefsWidColor *holidayColor =
893 addWidColor(i18n("Day color odd months"), 912 addWidColor(i18n("Day color odd months"),
894 &(KOPrefs::instance()->mMonthViewOddColor),topFrame); 913 &(KOPrefs::instance()->mMonthViewOddColor),topFrame);
895 topLayout->addWidget(holidayColor->label(),ii,0); 914 topLayout->addWidget(holidayColor->label(),ii,0);
896 topLayout->addWidget(holidayColor->button(),ii++,1); 915 topLayout->addWidget(holidayColor->button(),ii++,1);
897 916
898 holidayColor = 917 holidayColor =
899 addWidColor(i18n("Day color even months"), 918 addWidColor(i18n("Day color even months"),
900 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame); 919 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame);
901 topLayout->addWidget(holidayColor->label(),ii,0); 920 topLayout->addWidget(holidayColor->label(),ii,0);
902 topLayout->addWidget(holidayColor->button(),ii++,1); 921 topLayout->addWidget(holidayColor->button(),ii++,1);
903 922
904 923
905 holidayColor = 924 holidayColor =
906 addWidColor(i18n("Color for Sundays + category \"Holiday\""), 925 addWidColor(i18n("Color for Sundays + category \"Holiday\""),
907 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame); 926 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame);
908 topLayout->addWidget(holidayColor->label(),ii,0); 927 topLayout->addWidget(holidayColor->label(),ii,0);
909 topLayout->addWidget(holidayColor->button(),ii++,1); 928 topLayout->addWidget(holidayColor->button(),ii++,1);
910 929
911 // *********************** Todo View 930 // *********************** Todo View
912 931
913 topFrame = addPage(i18n("Todo View"),0,0); 932 topFrame = addPage(i18n("Todo View"),0,0);
914 // DesktopIcon("viewmag",KIcon::SizeMedium)); 933 // DesktopIcon("viewmag",KIcon::SizeMedium));
915 934
916 topLayout = new QGridLayout(topFrame,4,1); 935 topLayout = new QGridLayout(topFrame,4,1);
917 topLayout->setSpacing(spacingHint()); 936 topLayout->setSpacing(spacingHint());
918 topLayout->setMargin(marginHint()); 937 topLayout->setMargin(marginHint());
919 ii = 0; 938 ii = 0;
920 939
921 KPrefsDialogWidBool *showCompletedTodo = 940 KPrefsDialogWidBool *showCompletedTodo =
922 addWidBool(i18n("To-do view shows completed Todos"), 941 addWidBool(i18n("To-do view shows completed Todos"),
923 &(KOPrefs::instance()->mShowCompletedTodo),topFrame); 942 &(KOPrefs::instance()->mShowCompletedTodo),topFrame);
924 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0); 943 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0);
925 dummy = 944 dummy =
926 addWidBool(i18n("To-do view shows complete as 'xx %'"), 945 addWidBool(i18n("To-do view shows complete as 'xx %'"),
927 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame); 946 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame);
928 topLayout->addWidget(dummy->checkBox(),ii++,0); 947 topLayout->addWidget(dummy->checkBox(),ii++,0);
929 948
930 dummy = 949 dummy =
931 addWidBool(i18n("Small To-do view uses smaller font"), 950 addWidBool(i18n("Small To-do view uses smaller font"),
932 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame); 951 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame);
933 topLayout->addWidget(dummy->checkBox(),ii++,0); 952 topLayout->addWidget(dummy->checkBox(),ii++,0);
934 953
935 954
936 955
937 dummy = 956 dummy =
938 addWidBool(i18n("Todo view uses category colors"), 957 addWidBool(i18n("Todo view uses category colors"),
939 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame); 958 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame);
940 topLayout->addWidget(dummy->checkBox(),ii++,0); 959 topLayout->addWidget(dummy->checkBox(),ii++,0);
941 960
942 961
943 QWidget* wid = new QWidget( topFrame ); 962 QWidget* wid = new QWidget( topFrame );
944 // Todo due today color 963 // Todo due today color
945 KPrefsWidColor *todoDueTodayColor = 964 KPrefsWidColor *todoDueTodayColor =
946 addWidColor(i18n("Todo due today color:"), 965 addWidColor(i18n("Todo due today color:"),
947 &(KOPrefs::instance()->mTodoDueTodayColor),wid); 966 &(KOPrefs::instance()->mTodoDueTodayColor),wid);
948 QHBoxLayout *widLayout = new QHBoxLayout(wid); 967 QHBoxLayout *widLayout = new QHBoxLayout(wid);
949 widLayout->addWidget( todoDueTodayColor->label() ); 968 widLayout->addWidget( todoDueTodayColor->label() );
950 widLayout->addWidget( todoDueTodayColor->button() ); 969 widLayout->addWidget( todoDueTodayColor->button() );
951 topLayout->addWidget(wid,ii++,0); 970 topLayout->addWidget(wid,ii++,0);
952 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1); 971 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1);
953 972
954 // Todo overdue color 973 // Todo overdue color
955 wid = new QWidget( topFrame ); 974 wid = new QWidget( topFrame );
956 widLayout = new QHBoxLayout(wid); 975 widLayout = new QHBoxLayout(wid);
957 KPrefsWidColor *todoOverdueColor = 976 KPrefsWidColor *todoOverdueColor =
958 addWidColor(i18n("Todo overdue color:"), 977 addWidColor(i18n("Todo overdue color:"),
959 &(KOPrefs::instance()->mTodoOverdueColor),wid); 978 &(KOPrefs::instance()->mTodoOverdueColor),wid);
960 widLayout->addWidget(todoOverdueColor->label()); 979 widLayout->addWidget(todoOverdueColor->label());
961 widLayout->addWidget(todoOverdueColor->button()); 980 widLayout->addWidget(todoOverdueColor->button());
962 topLayout->addWidget(wid,ii++,0); 981 topLayout->addWidget(wid,ii++,0);
963 982
964 dummy = 983 dummy =
965 addWidBool(i18n("Colors are applied to text"), 984 addWidBool(i18n("Colors are applied to text"),
966 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame); 985 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame);
967 topLayout->addWidget(dummy->checkBox(),ii++,0); 986 topLayout->addWidget(dummy->checkBox(),ii++,0);
968 987
969 dummy = 988 dummy =
970 addWidBool(i18n("Allday Agenda view shows todos"), 989 addWidBool(i18n("Allday Agenda view shows todos"),
971 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame); 990 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame);
972 topLayout->addWidget(dummy->checkBox(),ii++,0); 991 topLayout->addWidget(dummy->checkBox(),ii++,0);
973 992
974 993
975 994
976 995
977 topFrame = addPage(i18n("Alarm"),0,0); 996 topFrame = addPage(i18n("Alarm"),0,0);
978 // DesktopIcon("viewmag",KIcon::SizeMedium)); 997 // DesktopIcon("viewmag",KIcon::SizeMedium));
979 998
980 topLayout = new QGridLayout(topFrame,2,1); 999 topLayout = new QGridLayout(topFrame,2,1);
981 topLayout->setSpacing(spacingHint()); 1000 topLayout->setSpacing(spacingHint());
982 topLayout->setMargin(marginHint()); 1001 topLayout->setMargin(marginHint());
983 int iii = 0; 1002 int iii = 0;
984 1003
985 dummy = 1004 dummy =
986 addWidBool(i18n("Use internal alarm notification"), 1005 addWidBool(i18n("Use internal alarm notification"),
987 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 1006 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
988 topLayout->addWidget(dummy->checkBox(),iii++,0); 1007 topLayout->addWidget(dummy->checkBox(),iii++,0);
989 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); 1008 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);
990 1009
991 topLayout->addWidget(lab ,iii++,0); 1010 topLayout->addWidget(lab ,iii++,0);
992#ifndef DESKTOP_VERSION 1011#ifndef DESKTOP_VERSION
993 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1012 lab->setAlignment( AlignLeft|WordBreak|AlignTop);
994#else 1013#else
995 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1014 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
996 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1015 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
997#endif 1016#endif
998 1017
999 QHBox* dummyBox = new QHBox(topFrame); 1018 QHBox* dummyBox = new QHBox(topFrame);
1000 new QLabel(i18n("Play beeps count:"),dummyBox); 1019 new QLabel(i18n("Play beeps count:"),dummyBox);
1001 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox); 1020 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox);
1002 topLayout->addWidget(dummyBox,iii++,0); 1021 topLayout->addWidget(dummyBox,iii++,0);
1003 1022
1004 dummyBox = new QHBox(topFrame); 1023 dummyBox = new QHBox(topFrame);
1005 new QLabel(i18n("Beeps interval in sec:"),dummyBox); 1024 new QLabel(i18n("Beeps interval in sec:"),dummyBox);
1006 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox); 1025 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox);
1007 topLayout->addWidget(dummyBox,iii++,0); 1026 topLayout->addWidget(dummyBox,iii++,0);
1008 1027
1009 dummyBox = new QHBox(topFrame); 1028 dummyBox = new QHBox(topFrame);
1010 new QLabel(i18n("Default suspend time in min:"),dummyBox); 1029 new QLabel(i18n("Default suspend time in min:"),dummyBox);
1011 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox); 1030 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox);
1012 topLayout->addWidget(dummyBox,iii++,0); 1031 topLayout->addWidget(dummyBox,iii++,0);
1013 1032
1014 dummyBox = new QHBox(topFrame); 1033 dummyBox = new QHBox(topFrame);
1015 new QLabel(i18n("Auto suspend count:"),dummyBox); 1034 new QLabel(i18n("Auto suspend count:"),dummyBox);
1016 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox); 1035 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox);
1017 topLayout->addWidget(dummyBox,iii++,0); 1036 topLayout->addWidget(dummyBox,iii++,0);
1018 1037
1019 1038
1020 1039
1021 1040
1022 1041
1023 1042
1024 1043
1025 QHBox* hbo = new QHBox ( topFrame ); 1044 QHBox* hbo = new QHBox ( topFrame );
1026 mDefaultAlarmFile = new QLineEdit(hbo); 1045 mDefaultAlarmFile = new QLineEdit(hbo);
1027 QPushButton * loadTemplate = new QPushButton(hbo); 1046 QPushButton * loadTemplate = new QPushButton(hbo);
1028 QPixmap icon; 1047 QPixmap icon;
1029 if ( QApplication::desktop()->width() < 321 ) 1048 if ( QApplication::desktop()->width() < 321 )
1030 icon = SmallIcon("fileimport16"); 1049 icon = SmallIcon("fileimport16");
1031 else 1050 else
1032 icon = SmallIcon("fileimport"); 1051 icon = SmallIcon("fileimport");
1033 loadTemplate->setIconSet (icon ) ; 1052 loadTemplate->setIconSet (icon ) ;
1034 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) ); 1053 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) );
1035 int size = loadTemplate->sizeHint().height(); 1054 int size = loadTemplate->sizeHint().height();
1036 loadTemplate->setFixedSize( size, size ); 1055 loadTemplate->setFixedSize( size, size );
1037 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame); 1056 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame);
1038 // topLayout->addWidget(lab ,iii++,0); 1057 // topLayout->addWidget(lab ,iii++,0);
1039 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame); 1058 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame);
1040 topLayout->addWidget(lab ,iii++,0); 1059 topLayout->addWidget(lab ,iii++,0);
1041 topLayout->addWidget(hbo,iii++,0); 1060 topLayout->addWidget(hbo,iii++,0);
1042 // 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); 1061 // 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);
1043 1062
1044// topLayout->addWidget(lab ,iii++,0); 1063// topLayout->addWidget(lab ,iii++,0);
1045// #ifndef DESKTOP_VERSION 1064// #ifndef DESKTOP_VERSION
1046// lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1065// lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1047// #else 1066// #else
1048// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1067// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1049// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1068// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1050// #endif 1069// #endif
1051 1070
1052 1071
1053} 1072}
1054 1073
1055void KOPrefsDialog::selectSoundFile() 1074void KOPrefsDialog::selectSoundFile()
1056{ 1075{
1057 QString fileName = mDefaultAlarmFile->text(); 1076 QString fileName = mDefaultAlarmFile->text();
1058 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this ); 1077 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this );
1059 if ( fileName.length() > 0 ) 1078 if ( fileName.length() > 0 )
1060 mDefaultAlarmFile->setText( fileName ); 1079 mDefaultAlarmFile->setText( fileName );
1061} 1080}
1062void KOPrefsDialog::setupFontsTab() 1081void KOPrefsDialog::setupFontsTab()
1063{ 1082{
1064 1083
1065 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 1084 QFrame *topFrame = addPage(i18n("Fonts"),0,0);
1066 // DesktopIcon("fonts",KIcon::SizeMedium)); 1085 // DesktopIcon("fonts",KIcon::SizeMedium));
1067 1086
1068 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 1087 QGridLayout *topLayout = new QGridLayout(topFrame,7,3);
1069 topLayout->setSpacing(1); 1088 topLayout->setSpacing(1);
1070 topLayout->setMargin(3); 1089 topLayout->setMargin(3);
1071 KPrefsDialogWidFont * tVFont; 1090 KPrefsDialogWidFont * tVFont;
1072 int i = 0; 1091 int i = 0;
1073 KPrefsDialogWidFont *timeLabelsFont = 1092 KPrefsDialogWidFont *timeLabelsFont =
1074 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"), 1093 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"),
1075 &(KOPrefs::instance()->mDateNavigatorFont),topFrame); 1094 &(KOPrefs::instance()->mDateNavigatorFont),topFrame);
1076 topLayout->addWidget(timeLabelsFont->label(),i,0); 1095 topLayout->addWidget(timeLabelsFont->label(),i,0);
1077 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1096 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1078 topLayout->addWidget(timeLabelsFont->button(),i,2); 1097 topLayout->addWidget(timeLabelsFont->button(),i,2);
1079 ++i; 1098 ++i;
1080 1099
1081 1100
1082 timeLabelsFont = 1101 timeLabelsFont =
1083 addWidFont(i18n("Mon 15"),i18n("Date Labels:"), 1102 addWidFont(i18n("Mon 15"),i18n("Date Labels:"),
1084 &(KOPrefs::instance()->mTimeLabelsFont),topFrame); 1103 &(KOPrefs::instance()->mTimeLabelsFont),topFrame);
1085 topLayout->addWidget(timeLabelsFont->label(),i,0); 1104 topLayout->addWidget(timeLabelsFont->label(),i,0);
1086 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1105 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1087 topLayout->addWidget(timeLabelsFont->button(),i,2); 1106 topLayout->addWidget(timeLabelsFont->button(),i,2);
1088 ++i; 1107 ++i;
1089 1108
1090 KPrefsDialogWidFont *timeBarFont = 1109 KPrefsDialogWidFont *timeBarFont =
1091 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"), 1110 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"),
1092 &(KOPrefs::instance()->mTimeBarFont),topFrame); 1111 &(KOPrefs::instance()->mTimeBarFont),topFrame);
1093 topLayout->addWidget(timeBarFont->label(),i,0); 1112 topLayout->addWidget(timeBarFont->label(),i,0);
1094 topLayout->addWidget(timeBarFont->preview(),i,1); 1113 topLayout->addWidget(timeBarFont->preview(),i,1);
1095 topLayout->addWidget(timeBarFont->button(),i,2); 1114 topLayout->addWidget(timeBarFont->button(),i,2);
1096 ++i; 1115 ++i;
1097 1116
1098 1117
1099 KPrefsDialogWidFont *marcusBainsFont = 1118 KPrefsDialogWidFont *marcusBainsFont =
1100 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"), 1119 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"),
1101 &(KOPrefs::instance()->mMarcusBainsFont),topFrame); 1120 &(KOPrefs::instance()->mMarcusBainsFont),topFrame);
1102 topLayout->addWidget(marcusBainsFont->label(),i,0); 1121 topLayout->addWidget(marcusBainsFont->label(),i,0);
1103 topLayout->addWidget(marcusBainsFont->preview(),i,1); 1122 topLayout->addWidget(marcusBainsFont->preview(),i,1);
1104 topLayout->addWidget(marcusBainsFont->button(),i,2); 1123 topLayout->addWidget(marcusBainsFont->button(),i,2);
1105 ++i; 1124 ++i;
1106 1125
1107 tVFont = 1126 tVFont =
1108 addWidFont(i18n("Summary"),i18n("Event Viewer:"), 1127 addWidFont(i18n("Summary"),i18n("Event Viewer:"),
1109 &(KOPrefs::instance()->mEventViewFont),topFrame); 1128 &(KOPrefs::instance()->mEventViewFont),topFrame);
1110 topLayout->addWidget(tVFont->label(),i,0); 1129 topLayout->addWidget(tVFont->label(),i,0);
1111 topLayout->addWidget(tVFont->preview(),i,1); 1130 topLayout->addWidget(tVFont->preview(),i,1);
1112 topLayout->addWidget(tVFont->button(),i,2); 1131 topLayout->addWidget(tVFont->button(),i,2);
1113 ++i; 1132 ++i;
1114 1133
1115 1134
1116 1135
1117 tVFont = 1136 tVFont =
1118 addWidFont(i18n("Details"),i18n("EditorBox:"), 1137 addWidFont(i18n("Details"),i18n("EditorBox:"),
1119 &(KOPrefs::instance()->mEditBoxFont),topFrame); 1138 &(KOPrefs::instance()->mEditBoxFont),topFrame);
1120 topLayout->addWidget(tVFont->label(),i,0); 1139 topLayout->addWidget(tVFont->label(),i,0);
1121 topLayout->addWidget(tVFont->preview(),i,1); 1140 topLayout->addWidget(tVFont->preview(),i,1);
1122 topLayout->addWidget(tVFont->button(),i,2); 1141 topLayout->addWidget(tVFont->button(),i,2);
1123 ++i; 1142 ++i;
1124 1143
1125 1144
1126 1145
1127 topLayout->setColStretch(1,1); 1146 topLayout->setColStretch(1,1);
1128 topLayout->setRowStretch(4,1); 1147 topLayout->setRowStretch(4,1);
1129 1148
1130 1149
1131 i = 0; 1150 i = 0;
1132 topFrame = addPage(i18n("View Fonts"),0, 1151 topFrame = addPage(i18n("View Fonts"),0,
1133 DesktopIcon("fonts",KIcon::SizeMedium)); 1152 DesktopIcon("fonts",KIcon::SizeMedium));
1134 1153
1135 topLayout = new QGridLayout(topFrame,7,3); 1154 topLayout = new QGridLayout(topFrame,7,3);
1136 topLayout->setSpacing(1); 1155 topLayout->setSpacing(1);
1137 topLayout->setMargin(3); 1156 topLayout->setMargin(3);
1138 1157
1139 tVFont = 1158 tVFont =
1140 addWidFont(i18n("Configure KO"),i18n("What's Next View:"), 1159 addWidFont(i18n("Configure KO"),i18n("What's Next View:"),
1141 &(KOPrefs::instance()->mWhatsNextFont),topFrame); 1160 &(KOPrefs::instance()->mWhatsNextFont),topFrame);
1142 topLayout->addWidget(tVFont->label(),i,0); 1161 topLayout->addWidget(tVFont->label(),i,0);
1143 topLayout->addWidget(tVFont->preview(),i,1); 1162 topLayout->addWidget(tVFont->preview(),i,1);
1144 topLayout->addWidget(tVFont->button(),i,2); 1163 topLayout->addWidget(tVFont->button(),i,2);
1145 ++i; 1164 ++i;
1146 KPrefsDialogWidFont *agendaViewFont = 1165 KPrefsDialogWidFont *agendaViewFont =
1147 addWidFont(i18n("Event text"),i18n("Agenda view:"), 1166 addWidFont(i18n("Event text"),i18n("Agenda view:"),
1148 &(KOPrefs::instance()->mAgendaViewFont),topFrame); 1167 &(KOPrefs::instance()->mAgendaViewFont),topFrame);
1149 topLayout->addWidget(agendaViewFont->label(),i,0); 1168 topLayout->addWidget(agendaViewFont->label(),i,0);
1150 topLayout->addWidget(agendaViewFont->preview(),i,1); 1169 topLayout->addWidget(agendaViewFont->preview(),i,1);
1151 topLayout->addWidget(agendaViewFont->button(),i,2); 1170 topLayout->addWidget(agendaViewFont->button(),i,2);
1152 ++i; 1171 ++i;
1153 1172
1154 1173
1155 KPrefsDialogWidFont *monthViewFont = 1174 KPrefsDialogWidFont *monthViewFont =
1156 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"), 1175 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"),
1157 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame); 1176 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame);
1158 topLayout->addWidget(monthViewFont->label(),i,0); 1177 topLayout->addWidget(monthViewFont->label(),i,0);
1159 topLayout->addWidget(monthViewFont->preview(),i,1); 1178 topLayout->addWidget(monthViewFont->preview(),i,1);
1160 topLayout->addWidget(monthViewFont->button(),i,2); 1179 topLayout->addWidget(monthViewFont->button(),i,2);
1161 ++i; 1180 ++i;
1162 1181
1163 1182
1164 KPrefsDialogWidFont *lVFont = 1183 KPrefsDialogWidFont *lVFont =
1165 addWidFont(i18n("Event"),i18n("List View:"), 1184 addWidFont(i18n("Event"),i18n("List View:"),
1166 &(KOPrefs::instance()->mListViewFont),topFrame); 1185 &(KOPrefs::instance()->mListViewFont),topFrame);
1167 topLayout->addWidget(lVFont->label(),i,0); 1186 topLayout->addWidget(lVFont->label(),i,0);
1168 topLayout->addWidget(lVFont->preview(),i,1); 1187 topLayout->addWidget(lVFont->preview(),i,1);
1169 topLayout->addWidget(lVFont->button(),i,2); 1188 topLayout->addWidget(lVFont->button(),i,2);
1170 ++i; 1189 ++i;
1171 1190
1172 1191
1173 tVFont = 1192 tVFont =
1174 addWidFont(i18n("ToDo"),i18n("ToDoView:"), 1193 addWidFont(i18n("ToDo"),i18n("ToDoView:"),
1175 &(KOPrefs::instance()->mTodoViewFont),topFrame); 1194 &(KOPrefs::instance()->mTodoViewFont),topFrame);
1176 topLayout->addWidget(tVFont->label(),i,0); 1195 topLayout->addWidget(tVFont->label(),i,0);
1177 topLayout->addWidget(tVFont->preview(),i,1); 1196 topLayout->addWidget(tVFont->preview(),i,1);
1178 topLayout->addWidget(tVFont->button(),i,2); 1197 topLayout->addWidget(tVFont->button(),i,2);
1179 ++i; 1198 ++i;
1180 1199
1181 1200
1182 tVFont = 1201 tVFont =
1183 addWidFont(i18n("Today"),i18n("JournalView:"), 1202 addWidFont(i18n("Today"),i18n("JournalView:"),
1184 &(KOPrefs::instance()->mJornalViewFont),topFrame); 1203 &(KOPrefs::instance()->mJornalViewFont),topFrame);
1185 topLayout->addWidget(tVFont->label(),i,0); 1204 topLayout->addWidget(tVFont->label(),i,0);
1186 topLayout->addWidget(tVFont->preview(),i,1); 1205 topLayout->addWidget(tVFont->preview(),i,1);
1187 topLayout->addWidget(tVFont->button(),i,2); 1206 topLayout->addWidget(tVFont->button(),i,2);
1188 ++i; 1207 ++i;
1189 1208
1190 1209
1191 1210
1192 1211
1193 topLayout->setColStretch(1,1); 1212 topLayout->setColStretch(1,1);
1194 topLayout->setRowStretch(4,1); 1213 topLayout->setRowStretch(4,1);
1195 1214
1196 1215
1197 1216
1198 1217
1199} 1218}
1200 1219
1201void KOPrefsDialog::setupColorsTab() 1220void KOPrefsDialog::setupColorsTab()
1202{ 1221{
1203 QFrame *topFrame = addPage(i18n("Colors"),0,0); 1222 QFrame *topFrame = addPage(i18n("Colors"),0,0);
1204 // DesktopIcon("colorize",KIcon::SizeMedium)); 1223 // DesktopIcon("colorize",KIcon::SizeMedium));
1205 1224
1206 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1225 QGridLayout *topLayout = new QGridLayout(topFrame,5,2);
1207 // topLayout->setSpacing(spacingHint()); 1226 // topLayout->setSpacing(spacingHint());
1208 // topLayout->setMargin(marginHint()); 1227 // topLayout->setMargin(marginHint());
1209 1228
1210 topLayout->setSpacing(2); 1229 topLayout->setSpacing(2);
1211 topLayout->setMargin(3); 1230 topLayout->setMargin(3);
1212 1231
1213 int ii = 1; 1232 int ii = 1;
1214 QGroupBox *categoryGroup ; 1233 QGroupBox *categoryGroup ;
1215 1234
1216 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"), 1235 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"),
1217 topFrame); 1236 topFrame);
1218 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1); 1237 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1);
1219 1238
1220 mCategoryCombo = new QComboBox(categoryGroup); 1239 mCategoryCombo = new QComboBox(categoryGroup);
1221 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1240 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1222 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor())); 1241 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor()));
1223 1242
1224 mCategoryButton = new KColorButton(categoryGroup); 1243 mCategoryButton = new KColorButton(categoryGroup);
1225 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor())); 1244 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor()));
1226 updateCategoryColor(); 1245 updateCategoryColor();
1227 1246
1228 1247
1229 // Holiday Color 1248 // Holiday Color
1230 1249
1231 KPrefsWidColor *holidayColor = 1250 KPrefsWidColor *holidayColor =
1232 addWidColor(i18n("Holiday color:"), 1251 addWidColor(i18n("Holiday color:"),
1233 &(KOPrefs::instance()->mHolidayColor),topFrame); 1252 &(KOPrefs::instance()->mHolidayColor),topFrame);
1234 topLayout->addWidget(holidayColor->label(),ii,0); 1253 topLayout->addWidget(holidayColor->label(),ii,0);
1235 topLayout->addWidget(holidayColor->button(),ii++,1); 1254 topLayout->addWidget(holidayColor->button(),ii++,1);
1236 1255
1237 // Highlight Color 1256 // Highlight Color
1238 KPrefsWidColor *highlightColor = 1257 KPrefsWidColor *highlightColor =
1239 addWidColor(i18n("Highlight color:"), 1258 addWidColor(i18n("Highlight color:"),
1240 &(KOPrefs::instance()->mHighlightColor),topFrame); 1259 &(KOPrefs::instance()->mHighlightColor),topFrame);
1241 topLayout->addWidget(highlightColor->label(),ii,0); 1260 topLayout->addWidget(highlightColor->label(),ii,0);
1242 topLayout->addWidget(highlightColor->button(),ii++,1); 1261 topLayout->addWidget(highlightColor->button(),ii++,1);
1243 1262
1244 // Event color 1263 // Event color
1245 KPrefsWidColor *eventColor = 1264 KPrefsWidColor *eventColor =
1246 addWidColor(i18n("Default event color:"), 1265 addWidColor(i18n("Default event color:"),
1247 &(KOPrefs::instance()->mEventColor),topFrame); 1266 &(KOPrefs::instance()->mEventColor),topFrame);
1248 topLayout->addWidget(eventColor->label(),ii,0); 1267 topLayout->addWidget(eventColor->label(),ii,0);
1249 topLayout->addWidget(eventColor->button(),ii++,1); 1268 topLayout->addWidget(eventColor->button(),ii++,1);
1250 1269
1251 // agenda view background color 1270 // agenda view background color
1252 KPrefsWidColor *agendaBgColor = 1271 KPrefsWidColor *agendaBgColor =
1253 addWidColor(i18n("Agenda view background color:"), 1272 addWidColor(i18n("Agenda view background color:"),
1254 &(KOPrefs::instance()->mAgendaBgColor),topFrame); 1273 &(KOPrefs::instance()->mAgendaBgColor),topFrame);
1255 topLayout->addWidget(agendaBgColor->label(),ii,0); 1274 topLayout->addWidget(agendaBgColor->label(),ii,0);
1256 topLayout->addWidget(agendaBgColor->button(),ii++,1); 1275 topLayout->addWidget(agendaBgColor->button(),ii++,1);
1257 1276
1258 // working hours color 1277 // working hours color
1259 KPrefsWidColor *workingHoursColor = 1278 KPrefsWidColor *workingHoursColor =
1260 addWidColor(i18n("Working hours color:"), 1279 addWidColor(i18n("Working hours color:"),
1261 &(KOPrefs::instance()->mWorkingHoursColor),topFrame); 1280 &(KOPrefs::instance()->mWorkingHoursColor),topFrame);
1262 topLayout->addWidget(workingHoursColor->label(),ii,0); 1281 topLayout->addWidget(workingHoursColor->label(),ii,0);
1263 topLayout->addWidget(workingHoursColor->button(),ii++,1); 1282 topLayout->addWidget(workingHoursColor->button(),ii++,1);
1264 1283
1265 KPrefsDialogWidBool *sb = 1284 KPrefsDialogWidBool *sb =
1266 addWidBool(i18n("Use colors for application:"), 1285 addWidBool(i18n("Use colors for application:"),
1267 &(KOPrefs::instance()->mUseAppColors),topFrame); 1286 &(KOPrefs::instance()->mUseAppColors),topFrame);
1268 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 ); 1287 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 );
1269 1288
1270 ii++; 1289 ii++;
1271 KPrefsWidColor * workingHoursColor1 = 1290 KPrefsWidColor * workingHoursColor1 =
1272 addWidColor(i18n("Buttons, menus, etc.:"), 1291 addWidColor(i18n("Buttons, menus, etc.:"),
1273 &(KOPrefs::instance()->mAppColor1),topFrame); 1292 &(KOPrefs::instance()->mAppColor1),topFrame);
1274 topLayout->addWidget(workingHoursColor1->label(),ii,0); 1293 topLayout->addWidget(workingHoursColor1->label(),ii,0);
1275 topLayout->addWidget(workingHoursColor1->button(),ii++,1); 1294 topLayout->addWidget(workingHoursColor1->button(),ii++,1);
1276 1295
1277 KPrefsWidColor * workingHoursColor2 = 1296 KPrefsWidColor * workingHoursColor2 =
1278 addWidColor(i18n("Frames, labels, etc.:"), 1297 addWidColor(i18n("Frames, labels, etc.:"),
1279 &(KOPrefs::instance()->mAppColor2),topFrame); 1298 &(KOPrefs::instance()->mAppColor2),topFrame);
1280 topLayout->addWidget(workingHoursColor2->label(),ii,0); 1299 topLayout->addWidget(workingHoursColor2->label(),ii,0);
1281 topLayout->addWidget(workingHoursColor2->button(),ii++,1); 1300 topLayout->addWidget(workingHoursColor2->button(),ii++,1);
1282 1301
1283 1302
1284 1303
1285} 1304}
1286 1305
1287void KOPrefsDialog::setCategoryColor() 1306void KOPrefsDialog::setCategoryColor()
1288{ 1307{
1289 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color())); 1308 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color()));
1290} 1309}
1291 1310
1292void KOPrefsDialog::updateCategoryColor() 1311void KOPrefsDialog::updateCategoryColor()
1293{ 1312{
1294 QString cat = mCategoryCombo->currentText(); 1313 QString cat = mCategoryCombo->currentText();
1295 QColor *color = mCategoryDict.find(cat); 1314 QColor *color = mCategoryDict.find(cat);
1296 if (!color) { 1315 if (!color) {
1297 color = KOPrefs::instance()->categoryColor(cat); 1316 color = KOPrefs::instance()->categoryColor(cat);
1298 } 1317 }
1299 if (color) { 1318 if (color) {
1300 mCategoryButton->setColor(*color); 1319 mCategoryButton->setColor(*color);
1301 } 1320 }
1302} 1321}
1303 1322
1304void KOPrefsDialog::setupPrinterTab() 1323void KOPrefsDialog::setupPrinterTab()
1305{ 1324{
1306 mPrinterTab = addPage(i18n("Printing"),0, 1325 mPrinterTab = addPage(i18n("Printing"),0,
1307 DesktopIcon("fileprint",KIcon::SizeMedium)); 1326 DesktopIcon("fileprint",KIcon::SizeMedium));
1308 1327
1309 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2); 1328 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2);
1310 topLayout->setSpacing(spacingHint()); 1329 topLayout->setSpacing(spacingHint());
1311 topLayout->setMargin(marginHint()); 1330 topLayout->setMargin(marginHint());
1312 1331
1313 topLayout->setRowStretch(4,1); 1332 topLayout->setRowStretch(4,1);
1314} 1333}
1315 1334
1316void KOPrefsDialog::setupGroupSchedulingTab() 1335void KOPrefsDialog::setupGroupSchedulingTab()
1317{ 1336{
1318#if 0 1337#if 0
1319 QFrame *topFrame = addPage(i18n("Group Scheduling"),0, 1338 QFrame *topFrame = addPage(i18n("Group Scheduling"),0,
1320 DesktopIcon("personal",KIcon::SizeMedium)); 1339 DesktopIcon("personal",KIcon::SizeMedium));
1321 1340
1322 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 1341 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
1323 topLayout->setSpacing(spacingHint()); 1342 topLayout->setSpacing(spacingHint());
1324 topLayout->setMargin(marginHint()); 1343 topLayout->setMargin(marginHint());
1325 1344
1326#if 0 1345#if 0
1327 KPrefsWidRadios *schedulerGroup = 1346 KPrefsWidRadios *schedulerGroup =
1328 addWidRadios(i18n("Scheduler Mail Client"),&(KOPrefs::instance()->mIMIPScheduler), 1347 addWidRadios(i18n("Scheduler Mail Client"),&(KOPrefs::instance()->mIMIPScheduler),
1329 topFrame); 1348 topFrame);
1330 schedulerGroup->addRadio("Dummy"); // Only for debugging 1349 schedulerGroup->addRadio("Dummy"); // Only for debugging
1331 schedulerGroup->addRadio(i18n("Mail client")); 1350 schedulerGroup->addRadio(i18n("Mail client"));
1332 1351
1333 topLayout->addMultiCellWidget(schedulerGroup->groupBox(),0,0,0,1); 1352 topLayout->addMultiCellWidget(schedulerGroup->groupBox(),0,0,0,1);
1334#endif 1353#endif
1335 1354
1336 KPrefsWidRadios *sendGroup = 1355 KPrefsWidRadios *sendGroup =
1337 addWidRadios(i18n("Scheduler Mails Should Be"),&(KOPrefs::instance()->mIMIPSend), 1356 addWidRadios(i18n("Scheduler Mails Should Be"),&(KOPrefs::instance()->mIMIPSend),
1338 topFrame); 1357 topFrame);
1339 sendGroup->addRadio(i18n("Send to outbox")); 1358 sendGroup->addRadio(i18n("Send to outbox"));
1340 sendGroup->addRadio(i18n("Send directly")); 1359 sendGroup->addRadio(i18n("Send directly"));
1341 1360
1342 topLayout->addMultiCellWidget(sendGroup->groupBox(),1,1,0,1); 1361 topLayout->addMultiCellWidget(sendGroup->groupBox(),1,1,0,1);
1343 1362
1344 topLayout->addMultiCellWidget(new QLabel(i18n("Additional email addresses:"),topFrame),2,2,0,1); 1363 topLayout->addMultiCellWidget(new QLabel(i18n("Additional email addresses:"),topFrame),2,2,0,1);
1345 mAMails = new QListView(topFrame); 1364 mAMails = new QListView(topFrame);
1346 mAMails->addColumn(i18n("Email"),300); 1365 mAMails->addColumn(i18n("Email"),300);
1347 topLayout->addMultiCellWidget(mAMails,3,3,0,1); 1366 topLayout->addMultiCellWidget(mAMails,3,3,0,1);
1348 1367
1349 topLayout->addWidget(new QLabel(i18n("Additional email address:"),topFrame),4,0); 1368 topLayout->addWidget(new QLabel(i18n("Additional email address:"),topFrame),4,0);
1350 aEmailsEdit = new QLineEdit(topFrame); 1369 aEmailsEdit = new QLineEdit(topFrame);
1351 aEmailsEdit->setEnabled(false); 1370 aEmailsEdit->setEnabled(false);
1352 topLayout->addWidget(aEmailsEdit,4,1); 1371 topLayout->addWidget(aEmailsEdit,4,1);
1353 1372
1354 QPushButton *add = new QPushButton(i18n("New"),topFrame,"new"); 1373 QPushButton *add = new QPushButton(i18n("New"),topFrame,"new");
1355 topLayout->addWidget(add,5,0); 1374 topLayout->addWidget(add,5,0);
1356 QPushButton *del = new QPushButton(i18n("Remove"),topFrame,"remove"); 1375 QPushButton *del = new QPushButton(i18n("Remove"),topFrame,"remove");
1357 topLayout->addWidget(del,5,1); 1376 topLayout->addWidget(del,5,1);
1358 1377
1359 //topLayout->setRowStretch(2,1); 1378 //topLayout->setRowStretch(2,1);
1360 connect(add, SIGNAL( clicked() ), this, SLOT(addItem()) ); 1379 connect(add, SIGNAL( clicked() ), this, SLOT(addItem()) );
1361 connect(del, SIGNAL( clicked() ), this, SLOT(removeItem()) ); 1380 connect(del, SIGNAL( clicked() ), this, SLOT(removeItem()) );
1362 connect(aEmailsEdit,SIGNAL( textChanged(const QString&) ), this,SLOT(updateItem())); 1381 connect(aEmailsEdit,SIGNAL( textChanged(const QString&) ), this,SLOT(updateItem()));
1363 connect(mAMails,SIGNAL(selectionChanged(QListViewItem *)),SLOT(updateInput())); 1382 connect(mAMails,SIGNAL(selectionChanged(QListViewItem *)),SLOT(updateInput()));
1364#endif 1383#endif
1365} 1384}
1366 1385
1367void KOPrefsDialog::setupGroupAutomationTab() 1386void KOPrefsDialog::setupGroupAutomationTab()
1368{ 1387{
1369 return; 1388 return;
1370 QFrame *topFrame = addPage(i18n("Group Automation"),0, 1389 QFrame *topFrame = addPage(i18n("Group Automation"),0,
1371 DesktopIcon("personal",KIcon::SizeMedium)); 1390 DesktopIcon("personal",KIcon::SizeMedium));
1372 1391
1373 QGridLayout *topLayout = new QGridLayout(topFrame,5,1); 1392 QGridLayout *topLayout = new QGridLayout(topFrame,5,1);
1374 topLayout->setSpacing(spacingHint()); 1393 topLayout->setSpacing(spacingHint());
1375 topLayout->setMargin(marginHint()); 1394 topLayout->setMargin(marginHint());
1376 1395
1377 KPrefsWidRadios *autoRefreshGroup = 1396 KPrefsWidRadios *autoRefreshGroup =
1378 addWidRadios(i18n("Auto Send Refresh"), 1397 addWidRadios(i18n("Auto Send Refresh"),
1379 &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame); 1398 &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame);
1380 autoRefreshGroup->addRadio(i18n("Never")); 1399 autoRefreshGroup->addRadio(i18n("Never"));
1381 autoRefreshGroup->addRadio(i18n("If attendee is in addressbook")); 1400 autoRefreshGroup->addRadio(i18n("If attendee is in addressbook"));
1382 //autoRefreshGroup->addRadio(i18n("selected emails")); 1401 //autoRefreshGroup->addRadio(i18n("selected emails"));
1383 topLayout->addMultiCellWidget(autoRefreshGroup->groupBox(),0,0,0,0); 1402 topLayout->addMultiCellWidget(autoRefreshGroup->groupBox(),0,0,0,0);
1384 1403
1385 KPrefsWidRadios *autoInsertGroup = 1404 KPrefsWidRadios *autoInsertGroup =
1386 addWidRadios(i18n("Auto Insert IMIP Replies"), 1405 addWidRadios(i18n("Auto Insert IMIP Replies"),
1387 &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame); 1406 &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame);
1388 autoInsertGroup->addRadio(i18n("Never")); 1407 autoInsertGroup->addRadio(i18n("Never"));
1389 autoInsertGroup->addRadio(i18n("If attendee is in addressbook")); 1408 autoInsertGroup->addRadio(i18n("If attendee is in addressbook"));
1390 //autoInsertGroup->addRadio(i18n("selected emails")); 1409 //autoInsertGroup->addRadio(i18n("selected emails"));
1391 topLayout->addMultiCellWidget(autoInsertGroup->groupBox(),1,1,0,0); 1410 topLayout->addMultiCellWidget(autoInsertGroup->groupBox(),1,1,0,0);
1392 1411
1393 KPrefsWidRadios *autoRequestGroup = 1412 KPrefsWidRadios *autoRequestGroup =
1394 addWidRadios(i18n("Auto Insert IMIP Requests"), 1413 addWidRadios(i18n("Auto Insert IMIP Requests"),
1395 &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame); 1414 &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame);
1396 autoRequestGroup->addRadio(i18n("Never")); 1415 autoRequestGroup->addRadio(i18n("Never"));
1397 autoRequestGroup->addRadio(i18n("If organizer is in addressbook")); 1416 autoRequestGroup->addRadio(i18n("If organizer is in addressbook"));
1398 //autoInsertGroup->addRadio(i18n("selected emails")); 1417 //autoInsertGroup->addRadio(i18n("selected emails"));
1399 topLayout->addMultiCellWidget(autoRequestGroup->groupBox(),2,2,0,0); 1418 topLayout->addMultiCellWidget(autoRequestGroup->groupBox(),2,2,0,0);
1400 1419
1401 KPrefsWidRadios *autoFreeBusyGroup = 1420 KPrefsWidRadios *autoFreeBusyGroup =
1402 addWidRadios(i18n("Auto Send FreeBusy Information"), 1421 addWidRadios(i18n("Auto Send FreeBusy Information"),
1403 &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame); 1422 &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame);
1404 autoFreeBusyGroup->addRadio(i18n("Never")); 1423 autoFreeBusyGroup->addRadio(i18n("Never"));
1405 autoFreeBusyGroup->addRadio(i18n("If requested from an email in addressbook")); 1424 autoFreeBusyGroup->addRadio(i18n("If requested from an email in addressbook"));
1406 //autoFreeBusyGroup->addRadio(i18n("selected emails")); 1425 //autoFreeBusyGroup->addRadio(i18n("selected emails"));
1407 topLayout->addMultiCellWidget(autoFreeBusyGroup->groupBox(),3,3,0,0); 1426 topLayout->addMultiCellWidget(autoFreeBusyGroup->groupBox(),3,3,0,0);
1408 1427
1409 KPrefsWidRadios *autoFreeBusyReplyGroup = 1428 KPrefsWidRadios *autoFreeBusyReplyGroup =
1410 addWidRadios(i18n("Auto Save FreeBusy Replies"), 1429 addWidRadios(i18n("Auto Save FreeBusy Replies"),
1411 &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame); 1430 &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame);
1412 autoFreeBusyReplyGroup->addRadio(i18n("Never")); 1431 autoFreeBusyReplyGroup->addRadio(i18n("Never"));
1413 autoFreeBusyReplyGroup->addRadio(i18n("If attendee is in addressbook")); 1432 autoFreeBusyReplyGroup->addRadio(i18n("If attendee is in addressbook"));
1414 //autoFreeBusyGroup->addRadio(i18n("selected emails")); 1433 //autoFreeBusyGroup->addRadio(i18n("selected emails"));
1415 topLayout->addMultiCellWidget(autoFreeBusyReplyGroup->groupBox(),4,4,0,0); 1434 topLayout->addMultiCellWidget(autoFreeBusyReplyGroup->groupBox(),4,4,0,0);
1416} 1435}
1417 1436
1418void KOPrefsDialog::showPrinterTab() 1437void KOPrefsDialog::showPrinterTab()
1419{ 1438{
1420 showPage(pageIndex(mPrinterTab)); 1439 showPage(pageIndex(mPrinterTab));
1421} 1440}
1422 1441
1423 1442
1424void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text, 1443void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text,
1425 const QStringList *tags) 1444 const QStringList *tags)
1426{ 1445{
1427 if (tags) { 1446 if (tags) {
1428 int i = tags->findIndex(text); 1447 int i = tags->findIndex(text);
1429 if (i > 0) combo->setCurrentItem(i); 1448 if (i > 0) combo->setCurrentItem(i);
1430 } else { 1449 } else {
1431 for(int i=0;i<combo->count();++i) { 1450 for(int i=0;i<combo->count();++i) {
1432 if (combo->text(i) == text) { 1451 if (combo->text(i) == text) {
1433 combo->setCurrentItem(i); 1452 combo->setCurrentItem(i);
1434 break; 1453 break;
1435 } 1454 }
1436 } 1455 }
1437 } 1456 }
1438} 1457}
1439 1458
1440void KOPrefsDialog::usrReadConfig() 1459void KOPrefsDialog::usrReadConfig()
1441{ 1460{
1442 mNameEdit->setText(KOPrefs::instance()->fullName()); 1461 mNameEdit->setText(KOPrefs::instance()->fullName());
1443 mEmailEdit->setText(KOPrefs::instance()->email()); 1462 mEmailEdit->setText(KOPrefs::instance()->email());
1444 1463
1445 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval); 1464 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval);
1446 QDate current ( 2001, 1,1); 1465 QDate current ( 2001, 1,1);
1447 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1)); 1466 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1));
1448 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1)); 1467 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1));
1449 setCombo(mTimeZoneCombo,i18n(KOPrefs::instance()->mTimeZoneId)); 1468 setCombo(mTimeZoneCombo,i18n(KOPrefs::instance()->mTimeZoneId));
1450 //mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset); 1469 //mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset);
1451 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime); 1470 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime);
1452 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration); 1471 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration);
1453 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime); 1472 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime);
1454 // if (KOPrefs::instance()->mAllDaySize > 47 ) 1473 // if (KOPrefs::instance()->mAllDaySize > 47 )
1455 // KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize/2; 1474 // KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize/2;
1456 //mHourSizeSlider->setValue(KOPrefs::instance()->mAllDaySize); 1475 //mHourSizeSlider->setValue(KOPrefs::instance()->mAllDaySize);
1457 1476
1458 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays); 1477 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays);
1459 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays); 1478 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays);
1460 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios); 1479 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios);
1461 // mAMails->clear(); 1480 // mAMails->clear();
1462 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin(); 1481 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin();
1463// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) { 1482// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) {
1464// QListViewItem *item = new QListViewItem(mAMails); 1483// QListViewItem *item = new QListViewItem(mAMails);
1465// item->setText(0,*it); 1484// item->setText(0,*it);
1466// mAMails->insertItem(item); 1485// mAMails->insertItem(item);
1467// } 1486// }
1468 1487
1469 // mRemoteIPEdit->setText(KOPrefs::instance()->mRemoteIP); 1488 // mRemoteIPEdit->setText(KOPrefs::instance()->mRemoteIP);
1470 //mRemoteUser->setText(KOPrefs::instance()->mRemoteUser); 1489 //mRemoteUser->setText(KOPrefs::instance()->mRemoteUser);
1471 //mRemotePassWd->setText(KOPrefs::instance()->mRemotePassWd); 1490 //mRemotePassWd->setText(KOPrefs::instance()->mRemotePassWd);
1472 //mRemoteFile->setText(KOPrefs::instance()->mRemoteFile); 1491 //mRemoteFile->setText(KOPrefs::instance()->mRemoteFile);
1473 1492
1474 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile); 1493 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile);
1475 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile); 1494 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile);
1476 QString dummy = KOPrefs::instance()->mUserDateFormatLong; 1495 QString dummy = KOPrefs::instance()->mUserDateFormatLong;
1477 mUserDateFormatLong->setText(dummy.replace( QRegExp("K"), QString(",") )); 1496 mUserDateFormatLong->setText(dummy.replace( QRegExp("K"), QString(",") ));
1478 dummy = KOPrefs::instance()->mUserDateFormatShort; 1497 dummy = KOPrefs::instance()->mUserDateFormatShort;
1479 mUserDateFormatShort->setText(dummy.replace( QRegExp("K"), QString(",") )); 1498 mUserDateFormatShort->setText(dummy.replace( QRegExp("K"), QString(",") ));
1480 updateCategories(); 1499 updateCategories();
1481 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps ); 1500 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps );
1482 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime ); 1501 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime );
1483 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount ); 1502 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount );
1484 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval ); 1503 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval );
1485} 1504}
1486 1505
1487 1506
1488void KOPrefsDialog::usrWriteConfig() 1507void KOPrefsDialog::usrWriteConfig()
1489{ 1508{
1490 1509
1491 // KOPrefs::instance()->mRemoteIP = mRemoteIPEdit->text(); 1510 // KOPrefs::instance()->mRemoteIP = mRemoteIPEdit->text();
1492 //KOPrefs::instance()->mRemoteUser = mRemoteUser->text(); 1511 //KOPrefs::instance()->mRemoteUser = mRemoteUser->text();
1493 //KOPrefs::instance()->mRemotePassWd = mRemotePassWd->text(); 1512 //KOPrefs::instance()->mRemotePassWd = mRemotePassWd->text();
1494 //KOPrefs::instance()->mRemoteFile= mRemoteFile->text(); 1513 //KOPrefs::instance()->mRemoteFile= mRemoteFile->text();
1495 //KOPrefs::instance()->mLocalTempFile =mLocalTempFile->text(); 1514 //KOPrefs::instance()->mLocalTempFile =mLocalTempFile->text();
1496 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text(); 1515 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text();
1497 1516
1498 KOPrefs::instance()->mUserDateFormatShort = mUserDateFormatShort->text().replace( QRegExp(","), QString("K") ); 1517 KOPrefs::instance()->mUserDateFormatShort = mUserDateFormatShort->text().replace( QRegExp(","), QString("K") );
1499 KOPrefs::instance()->mUserDateFormatLong = mUserDateFormatLong->text().replace( QRegExp(","), QString("K") ); 1518 KOPrefs::instance()->mUserDateFormatLong = mUserDateFormatLong->text().replace( QRegExp(","), QString("K") );
1500 KOPrefs::instance()->setFullName(mNameEdit->text()); 1519 KOPrefs::instance()->setFullName(mNameEdit->text());
1501 KOPrefs::instance()->setEmail(mEmailEdit->text()); 1520 KOPrefs::instance()->setEmail(mEmailEdit->text());
1502 1521
1503 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value(); 1522 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value();
1504 1523
1505 KOPrefs::instance()->mTimeZoneId = mTimeZoneCombo->currentText(); 1524 KOPrefs::instance()->mTimeZoneId = mTimeZoneCombo->currentText();
1506 QDate date; 1525 QDate date;
1507 date = mStartDateSavingEdit->date(); 1526 date = mStartDateSavingEdit->date();
1508 int sub = 0; 1527 int sub = 0;
1509 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 ) 1528 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 )
1510 sub = 1; 1529 sub = 1;
1511 KOPrefs::instance()->mDaylightsavingStart = date.dayOfYear()-sub; 1530 KOPrefs::instance()->mDaylightsavingStart = date.dayOfYear()-sub;
1512 date = mEndDateSavingEdit->date(); 1531 date = mEndDateSavingEdit->date();
1513 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 ) 1532 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 )
1514 sub = 1; 1533 sub = 1;
1515 else 1534 else
1516 sub = 0; 1535 sub = 0;
1517 KOPrefs::instance()->mDaylightsavingEnd = date.dayOfYear()-sub; 1536 KOPrefs::instance()->mDaylightsavingEnd = date.dayOfYear()-sub;
1518 // KOPrefs::instance()->mTimeZoneOffset = mTimezoneOffsetSpin->value(); 1537 // KOPrefs::instance()->mTimeZoneOffset = mTimezoneOffsetSpin->value();
1519 1538
1520 KOPrefs::instance()->mStartTime = mStartTimeSpin->value(); 1539 KOPrefs::instance()->mStartTime = mStartTimeSpin->value();
1521 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value(); 1540 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value();
1522 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem(); 1541 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem();
1523 1542
1524 //KOPrefs::instance()->mAllDaySize = mHourSizeSlider->value(); 1543 //KOPrefs::instance()->mAllDaySize = mHourSizeSlider->value();
1525 1544
1526 QDictIterator<QColor> it(mCategoryDict); 1545 QDictIterator<QColor> it(mCategoryDict);
1527 while (it.current()) { 1546 while (it.current()) {
1528 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current()); 1547 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current());
1529 ++it; 1548 ++it;
1530 } 1549 }
1531 1550
1532 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value(); 1551 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value();
1533 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value(); 1552 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value();
1534 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value(); 1553 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value();
1535 1554
1536 KOPrefs::instance()->mAdditionalMails.clear(); 1555 KOPrefs::instance()->mAdditionalMails.clear();
1537 // QListViewItem *item; 1556 // QListViewItem *item;
1538 // item = mAMails->firstChild(); 1557 // item = mAMails->firstChild();
1539 // while (item) 1558 // while (item)
1540 // { 1559 // {
1541 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) ); 1560 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) );
1542 // item = item->nextSibling(); 1561 // item = item->nextSibling();
1543 // } 1562 // }
1544 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value(); 1563 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value();
1545 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ; 1564 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ;
1546 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ; 1565 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ;
1547 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ; 1566 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ;
1548 1567
1549} 1568}
1550 1569
1551void KOPrefsDialog::updateCategories() 1570void KOPrefsDialog::updateCategories()
1552{ 1571{
1553 mCategoryCombo->clear(); 1572 mCategoryCombo->clear();
1554 mCategoryDict.clear(); 1573 mCategoryDict.clear();
1555 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1574 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1556 updateCategoryColor(); 1575 updateCategoryColor();
1557} 1576}
1558 1577
1559void KOPrefsDialog::warningGroupScheduling() 1578void KOPrefsDialog::warningGroupScheduling()
1560{ 1579{
1561 warningExperimental(mEnableGroupScheduling->checkBox()->isChecked()); 1580 warningExperimental(mEnableGroupScheduling->checkBox()->isChecked());
1562} 1581}
1563 1582
1564void KOPrefsDialog::warningProjectView() 1583void KOPrefsDialog::warningProjectView()
1565{ 1584{
1566 warningExperimental(mEnableProjectView->checkBox()->isChecked()); 1585 warningExperimental(mEnableProjectView->checkBox()->isChecked());
1567} 1586}
1568 1587
1569void KOPrefsDialog::warningExperimental(bool on) 1588void KOPrefsDialog::warningExperimental(bool on)
1570{ 1589{
1571 if (on) { 1590 if (on) {
1572 KMessageBox::information(this,i18n("This is an experimental feature. " 1591 KMessageBox::information(this,i18n("This is an experimental feature. "
1573 "It may not work, it may do nothing useful and it may cause data loss. " 1592 "It may not work, it may do nothing useful and it may cause data loss. "
1574 "Use with care.\n" 1593 "Use with care.\n"
1575 "You have to restart KOrganizer for this setting to take effect.")); 1594 "You have to restart KOrganizer for this setting to take effect."));
1576 } else { 1595 } else {
1577 KMessageBox::information(this, 1596 KMessageBox::information(this,
1578 i18n("You have to restart KOrganizer for this setting to take effect.")); 1597 i18n("You have to restart KOrganizer for this setting to take effect."));
1579 } 1598 }
1580} 1599}
1581 1600
1582void KOPrefsDialog::toggleEmailSettings(bool on) 1601void KOPrefsDialog::toggleEmailSettings(bool on)
1583{ 1602{
1584 if (on) { 1603 if (on) {
1585 mEmailEdit->setEnabled(false); 1604 mEmailEdit->setEnabled(false);
1586 mNameEdit->setEnabled(false); 1605 mNameEdit->setEnabled(false);
1587 mEmailLabel->setEnabled(false); 1606 mEmailLabel->setEnabled(false);
1588 mNameLabel->setEnabled(false); 1607 mNameLabel->setEnabled(false);
1589 1608
1590 KEMailSettings settings; 1609 KEMailSettings settings;
1591 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName)); 1610 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName));
1592 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress)); 1611 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress));
1593 } else { 1612 } else {
1594 mEmailEdit->setEnabled(true); 1613 mEmailEdit->setEnabled(true);
1595 mNameEdit->setEnabled(true); 1614 mNameEdit->setEnabled(true);
1596 mEmailLabel->setEnabled(true); 1615 mEmailLabel->setEnabled(true);
1597 mNameLabel->setEnabled(true); 1616 mNameLabel->setEnabled(true);
1598 } 1617 }
1599} 1618}
1600 1619
1601void KOPrefsDialog::addItem() 1620void KOPrefsDialog::addItem()
1602{ 1621{
1603 // aEmailsEdit->setEnabled(true); 1622 // aEmailsEdit->setEnabled(true);
1604// QListViewItem *item = new QListViewItem(mAMails); 1623// QListViewItem *item = new QListViewItem(mAMails);
1605// mAMails->insertItem(item); 1624// mAMails->insertItem(item);
1606// mAMails->setSelected(item,true); 1625// mAMails->setSelected(item,true);
1607// aEmailsEdit->setText(i18n("(EmptyEmail)")); 1626// aEmailsEdit->setText(i18n("(EmptyEmail)"));
1608} 1627}
1609 1628
1610void KOPrefsDialog::removeItem() 1629void KOPrefsDialog::removeItem()
1611{ 1630{
1612// QListViewItem *item; 1631// QListViewItem *item;
1613// item = mAMails->selectedItem(); 1632// item = mAMails->selectedItem();
1614// if (!item) return; 1633// if (!item) return;
1615// mAMails->takeItem(item); 1634// mAMails->takeItem(item);
1616// item = mAMails->selectedItem(); 1635// item = mAMails->selectedItem();
1617// if (!item) { 1636// if (!item) {
1618// aEmailsEdit->setText(""); 1637// aEmailsEdit->setText("");
1619// aEmailsEdit->setEnabled(false); 1638// aEmailsEdit->setEnabled(false);
1620// } 1639// }
1621// if (mAMails->childCount() == 0) { 1640// if (mAMails->childCount() == 0) {
1622// aEmailsEdit->setEnabled(false); 1641// aEmailsEdit->setEnabled(false);
1623// } 1642// }
1624} 1643}
1625 1644
1626void KOPrefsDialog::updateItem() 1645void KOPrefsDialog::updateItem()
1627{ 1646{
1628 // QListViewItem *item; 1647 // QListViewItem *item;
1629// item = mAMails->selectedItem(); 1648// item = mAMails->selectedItem();
1630// if (!item) return; 1649// if (!item) return;
1631// item->setText(0,aEmailsEdit->text()); 1650// item->setText(0,aEmailsEdit->text());
1632} 1651}
1633 1652
1634void KOPrefsDialog::updateInput() 1653void KOPrefsDialog::updateInput()
1635{ 1654{
1636// QListViewItem *item; 1655// QListViewItem *item;
1637// item = mAMails->selectedItem(); 1656// item = mAMails->selectedItem();
1638// if (!item) return; 1657// if (!item) return;
1639// aEmailsEdit->setEnabled(true); 1658// aEmailsEdit->setEnabled(true);
1640// aEmailsEdit->setText(item->text(0)); 1659// aEmailsEdit->setText(item->text(0));
1641} 1660}
1642void KOPrefsDialog::updateTimezoneOffset( int index ) 1661void KOPrefsDialog::updateTimezoneOffset( int index )
1643{ 1662{
1644 /* 1663 /*
1645 qDebug("updateTimezoneOffset %d ", index); 1664 qDebug("updateTimezoneOffset %d ", index);
1646 if ( index < 24 ) { 1665 if ( index < 24 ) {
1647 mTimezoneOffsetSpin->setEnabled ( false ); 1666 mTimezoneOffsetSpin->setEnabled ( false );
1648 mTimezoneOffsetSpin->setValue( ( index-11 ) * 60 ); 1667 mTimezoneOffsetSpin->setValue( ( index-11 ) * 60 );
1649 1668
1650 1669
1651 } else { 1670 } else {
1652 if ( index == 24 ) { 1671 if ( index == 24 ) {
1653 mTimezoneOffsetSpin->setEnabled ( true ); 1672 mTimezoneOffsetSpin->setEnabled ( true );
1654 mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset); 1673 mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset);
1655 1674
1656 } else { 1675 } else {
1657 mTimezoneOffsetSpin->setEnabled ( false ); 1676 mTimezoneOffsetSpin->setEnabled ( false );
1658 mTimezoneOffsetSpin->setValue( 0 ); 1677 mTimezoneOffsetSpin->setValue( 0 );
1659 } 1678 }
1660 } 1679 }
1661 */ 1680 */
1662} 1681}
1663 1682
1664void KOPrefsDialog::setupTimeZoneTab() 1683void KOPrefsDialog::setupTimeZoneTab()
1665{ 1684{
1666 QFrame *topFrame = addPage(i18n("Time Zone"),0,0); 1685 QFrame *topFrame = addPage(i18n("Time Zone"),0,0);
1667 // DesktopIcon("clock",KIcon::SizeMedium)); 1686 // DesktopIcon("clock",KIcon::SizeMedium));
1668 1687
1669 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1688 QGridLayout *topLayout = new QGridLayout(topFrame,5,2);
1670 topLayout->setSpacing(spacingHint()); 1689 topLayout->setSpacing(spacingHint());
1671 topLayout->setMargin(marginHint()); 1690 topLayout->setMargin(marginHint());
1672 1691
1673 QHBox *timeZoneBox = new QHBox( topFrame ); 1692 QHBox *timeZoneBox = new QHBox( topFrame );
1674 topLayout->addMultiCellWidget( timeZoneBox, 0, 0, 0, 1 ); 1693 topLayout->addMultiCellWidget( timeZoneBox, 0, 0, 0, 1 );
1675 1694
1676 new QLabel( i18n("Timezone:"), timeZoneBox ); 1695 new QLabel( i18n("Timezone:"), timeZoneBox );
1677 mTimeZoneCombo = new QComboBox( timeZoneBox ); 1696 mTimeZoneCombo = new QComboBox( timeZoneBox );
1678 if ( QApplication::desktop()->width() < 300 ) { 1697 if ( QApplication::desktop()->width() < 300 ) {
1679 mTimeZoneCombo->setMaximumWidth(150); 1698 mTimeZoneCombo->setMaximumWidth(150);
1680 } 1699 }
1681 1700
1682 QStringList list; 1701 QStringList list;
1683 list = KGlobal::locale()->timeZoneList(); 1702 list = KGlobal::locale()->timeZoneList();
1684 mTimeZoneCombo->insertStringList(list); 1703 mTimeZoneCombo->insertStringList(list);
1685 1704
1686 // find the currently set time zone and select it 1705 // find the currently set time zone and select it
1687 QString sCurrentlySet = KOPrefs::instance()->mTimeZoneId; 1706 QString sCurrentlySet = KOPrefs::instance()->mTimeZoneId;
1688 int nCurrentlySet = 11; 1707 int nCurrentlySet = 11;
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp
index 250d114..0794e00 100644
--- a/kmicromail/mainwindow.cpp
+++ b/kmicromail/mainwindow.cpp
@@ -1,394 +1,414 @@
1 1
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3#include <qlabel.h> 3#include <qlabel.h>
4#include <qvbox.h> 4#include <qvbox.h>
5#include <qheader.h> 5#include <qheader.h>
6#include <qtimer.h> 6#include <qtimer.h>
7#include <qlayout.h> 7#include <qlayout.h>
8//#include <kdialog.h> 8//#include <kdialog.h>
9#include <kiconloader.h> 9#include <kiconloader.h>
10#include <kapplication.h> 10#include <kapplication.h>
11 11
12#ifdef DESKTOP_VERSION 12#ifdef DESKTOP_VERSION
13#include <qapplication.h> 13#include <qapplication.h>
14#include <qstatusbar.h> 14#include <qstatusbar.h>
15#include <kabc/stdaddressbook.h> 15#include <kabc/stdaddressbook.h>
16extern QStatusBar* globalSstatusBarMainWindow; 16extern QStatusBar* globalSstatusBarMainWindow;
17#else 17#else
18#include <qpe/qpeapplication.h> 18#include <qpe/qpeapplication.h>
19#include <klocale.h> 19#include <klocale.h>
20#endif 20#endif
21#include "defines.h" 21#include "defines.h"
22#include "koprefs.h"
22#include "mainwindow.h" 23#include "mainwindow.h"
23#include "mailistviewitem.h" 24#include "mailistviewitem.h"
24#include <KDGanttMinimizeSplitter.h> 25#include <KDGanttMinimizeSplitter.h>
25 26
26#include "koprefs.h" 27#include "koprefs.h"
27 28
28MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 29MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
29 : QMainWindow( parent, name ) //, flags ) 30 : QMainWindow( parent, name ) //, flags )
30{ 31{
31#ifdef DESKTOP_VERSION 32#ifdef DESKTOP_VERSION
32 globalSstatusBarMainWindow = statusBar(); 33 globalSstatusBarMainWindow = statusBar();
33#endif 34#endif
34 setCaption( i18n( "KOpieMail/Pi" ) ); 35 setCaption( i18n( "KOpieMail/Pi" ) );
35 setToolBarsMovable( false ); 36 setToolBarsMovable( false );
36 //KABC::StdAddressBook::self(); 37 //KABC::StdAddressBook::self();
37 toolBar = new QToolBar( this ); 38 toolBar = new QToolBar( this );
38 menuBar = new QPEMenuBar( toolBar ); 39 menuBar = new QPEMenuBar( toolBar );
39 mailMenu = new QPopupMenu( menuBar ); 40 mailMenu = new QPopupMenu( menuBar );
40 menuBar->insertItem( i18n( "Mail" ), mailMenu ); 41 menuBar->insertItem( i18n( "Mail" ), mailMenu );
41 settingsMenu = new QPopupMenu( menuBar ); 42 settingsMenu = new QPopupMenu( menuBar );
42 menuBar->insertItem( i18n( "Settings" ), settingsMenu ); 43 menuBar->insertItem( i18n( "Settings" ), settingsMenu );
43 44
44 addToolBar( toolBar ); 45 addToolBar( toolBar );
45 toolBar->setHorizontalStretchable( true ); 46 toolBar->setHorizontalStretchable( true );
46 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"), 47 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"),
47 0, 0, this ); 48 0, 0, this );
48 connect(getMail, SIGNAL( activated() ), 49 connect(getMail, SIGNAL( activated() ),
49 SLOT( slotGetAllMail() ) ); 50 SLOT( slotGetAllMail() ) );
50 getMail->addTo( mailMenu ); 51 getMail->addTo( mailMenu );
51 52
52 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"), 53 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"),
53 0, 0, this ); 54 0, 0, this );
54 getMail->addTo( toolBar ); 55 getMail->addTo( toolBar );
55 getMail->addTo( mailMenu ); 56 getMail->addTo( mailMenu );
56 connect(getMail, SIGNAL( activated() ), 57 connect(getMail, SIGNAL( activated() ),
57 SLOT( slotGetMail() ) ); 58 SLOT( slotGetMail() ) );
58 59
59 composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"), 60 composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"),
60 0, 0, this ); 61 0, 0, this );
61 composeMail->addTo( toolBar ); 62 composeMail->addTo( toolBar );
62 composeMail->addTo( mailMenu ); 63 composeMail->addTo( mailMenu );
63 64
64 sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") , 65 sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") ,
65 0, 0, this ); 66 0, 0, this );
66 sendQueued->addTo( toolBar ); 67 sendQueued->addTo( toolBar );
67 sendQueued->addTo( mailMenu ); 68 sendQueued->addTo( mailMenu );
68 69
69 /* 70 /*
70 syncFolders = new QAction( i18n( "Sync mailfolders" ), ICON_SYNC, 71 syncFolders = new QAction( i18n( "Sync mailfolders" ), ICON_SYNC,
71 0, 0, this ); 72 0, 0, this );
72 syncFolders->addTo( toolBar ); 73 syncFolders->addTo( toolBar );
73 syncFolders->addTo( mailMenu ); 74 syncFolders->addTo( mailMenu );
74 */ 75 */
75 76
76 showFolders = new QAction( i18n( "Show/Hide folders" ), SmallIcon("showfolders") , 77 showFolders = new QAction( i18n( "Show/Hide folders" ), SmallIcon("showfolders") ,
77 0, 0, this, 0, true ); 78 0, 0, this, 0, true );
78 showFolders->addTo( toolBar ); 79 showFolders->addTo( toolBar );
79 showFolders->addTo( mailMenu ); 80 showFolders->addTo( mailMenu );
80 showFolders->setOn( true ); 81 showFolders->setOn( true );
81 connect(showFolders, SIGNAL( toggled(bool) ), 82 connect(showFolders, SIGNAL( toggled(bool) ),
82 SLOT( slotShowFolders(bool) ) ); 83 SLOT( slotShowFolders(bool) ) );
83 84
84 /* 85 /*
85 searchMails = new QAction( i18n( "Search mails" ), SmallIcon("find") ), 86 searchMails = new QAction( i18n( "Search mails" ), SmallIcon("find") ),
86 0, 0, this ); 87 0, 0, this );
87 searchMails->addTo( toolBar ); 88 searchMails->kopddTo( toolBar );
88 searchMails->addTo( mailMenu ); 89 searchMails->addTo( mailMenu );
89 */ 90 */
90 91
91 deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this); 92 deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this);
92 deleteMails->addTo( toolBar ); 93 deleteMails->addTo( toolBar );
93 deleteMails->addTo( mailMenu ); 94 deleteMails->addTo( mailMenu );
94 connect( deleteMails, SIGNAL( activated() ), 95 connect( deleteMails, SIGNAL( activated() ),
95 SLOT( slotDeleteAllMail() ) ); 96 SLOT( slotDeleteAllMail() ) );
96 97
97 editSettings = new QAction( i18n( "Edit settings" ), SmallIcon("SettingsIcon") , 98 editSettings = new QAction( i18n( "Edit settings" ), SmallIcon("SettingsIcon") ,
98 0, 0, this ); 99 0, 0, this );
99 editSettings->addTo( settingsMenu ); 100 editSettings->addTo( settingsMenu );
100 connect( editSettings, SIGNAL( activated() ), 101 connect( editSettings, SIGNAL( activated() ),
101 SLOT( slotEditSettings() ) ); 102 SLOT( slotEditSettings() ) );
102 editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") , 103 editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") ,
103 0, 0, this ); 104 0, 0, this );
104 editAccounts->addTo( settingsMenu ); 105 editAccounts->addTo( settingsMenu );
105 codecMenu = new QPopupMenu( menuBar ); 106 codecMenu = new QPopupMenu( menuBar );
106 codecMenu->insertItem( "Western (iso-8859-1)",0,0); 107 codecMenu->insertItem( "Western (iso-8859-1)",0,0);
107 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1); 108 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1);
108 codecMenu->insertItem( "Western (iso-8859-15)",2,2); 109 codecMenu->insertItem( "Western (iso-8859-15)",2,2);
109 codecMenu->insertItem( "Chinese (big-5)",3,3); 110 codecMenu->insertItem( "Chinese (big-5)",3,3);
110 codecMenu->insertItem( "Unicode (utf-8)",4,4); 111 codecMenu->insertItem( "Unicode (utf-8)",4,4);
111 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5); 112 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5);
112 //disabled 113 //disabled
113 //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu); 114 //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu);
114 //setCentralWidget( view ); 115 //setCentralWidget( view );
115 116
116 QVBox* wrapperBox = new QVBox( this ); 117 QVBox* wrapperBox = new QVBox( this );
117 setCentralWidget( wrapperBox ); 118 setCentralWidget( wrapperBox );
118 119
119 // QWidget *view = new QWidget( wrapperBox ); 120 // QWidget *view = new QWidget( wrapperBox );
120 KDGanttMinimizeSplitter* splithor = new KDGanttMinimizeSplitter( Qt::Vertical, wrapperBox); 121 KDGanttMinimizeSplitter* splithor = new KDGanttMinimizeSplitter( Qt::Vertical, wrapperBox);
121 splithor->setMinimizeDirection( KDGanttMinimizeSplitter::Down); 122 splithor->setMinimizeDirection( KDGanttMinimizeSplitter::Down);
122 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, splithor); 123 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, splithor);
123 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left); 124 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left);
124 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight ); 125 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight );
125 QWidget* infoBox = new QWidget( splithor ); 126 subLE = 0;
126 QGridLayout *griLay = new QGridLayout( infoBox, 2,2); 127 fromLE = 0;
127 griLay->addWidget( new QLabel ( i18n("Su:"), infoBox ),0,0 ); 128 toLE = 0;
128 griLay->addWidget( new QLabel ( i18n("Fr:"), infoBox ),1,0 ); 129 if ( KOPrefs::instance()->mShowInfoSub || KOPrefs::instance()->mShowInfoFrom || KOPrefs::instance()->mShowInfoTo ) {
129 griLay->addWidget( new QLabel ( i18n("To:"), infoBox ),2,0 ); 130 QWidget* infoBox = new QWidget( splithor );
130 griLay->addWidget( subLE = new QLineEdit( infoBox ),0,1) ; 131 QGridLayout *griLay = new QGridLayout( infoBox, 2,2);
131 griLay->addWidget( fromLE = new QLineEdit( infoBox ),1,1) ; 132 if ( KOPrefs::instance()->mShowInfoSub ) {
132 griLay->addWidget( toLE = new QLineEdit( infoBox ),2,1) ; 133 griLay->addWidget( new QLabel ( i18n("Su:"), infoBox ),0,0 );
133 infoBox->setMaximumHeight( infoBox->sizeHint().height() ); 134 griLay->addWidget( subLE = new QLineEdit( infoBox ),0,1) ;
135 }
136 if ( KOPrefs::instance()->mShowInfoFrom ) {
137 griLay->addWidget( new QLabel ( i18n("Fr:"), infoBox ),1,0 );
138 griLay->addWidget( fromLE = new QLineEdit( infoBox ),1,1) ;
139 }
140 if ( KOPrefs::instance()->mShowInfoTo ) {
141 griLay->addWidget( new QLabel ( i18n("To:"), infoBox ),2,0 );
142 griLay->addWidget( toLE = new QLineEdit( infoBox ),2,1) ;
143 }
144 infoBox->setMaximumHeight( infoBox->sizeHint().height() );
145 if ( !KOPrefs::instance()->mShowInfoStart ) {
146 QTimer::singleShot( 1,splithor, SLOT ( toggle() ) );
147 }
148 }
149
150
134 folderView = new AccountView( split ); 151 folderView = new AccountView( split );
135 folderView->header()->hide(); 152 folderView->header()->hide();
136 folderView->setRootIsDecorated( false ); 153 folderView->setRootIsDecorated( false );
137 folderView->addColumn( i18n( "Mailbox" ) ); 154 folderView->addColumn( i18n( "Mailbox" ) );
138 155
139 //layout->addWidget( folderView ); 156 //layout->addWidget( folderView );
140 157
141 mailView = new QListView( split ); 158 mailView = new QListView( split );
142 mailView->addColumn( i18n( " " ) ); 159 mailView->addColumn( i18n( " " ) );
143 mailView->addColumn( i18n( "Subject" ),QListView::Manual ); 160 mailView->addColumn( i18n( "Subject" ),QListView::Manual );
144 mailView->addColumn( i18n( "Sender" ),QListView::Manual ); 161 mailView->addColumn( i18n( "Sender" ),QListView::Manual );
145 mailView->addColumn( i18n( "Size" ),QListView::Manual); 162 mailView->addColumn( i18n( "Size" ),QListView::Manual);
146 mailView->addColumn( i18n( "Date" ),QListView::Manual); 163 mailView->addColumn( i18n( "Date" ),QListView::Manual);
147 if ( KOPrefs::instance()->mShowToField ) 164 if ( KOPrefs::instance()->mShowToField )
148 mailView->addColumn( i18n( "To" ),QListView::Manual); 165 mailView->addColumn( i18n( "To" ),QListView::Manual);
149 mailView->setAllColumnsShowFocus(true); 166 mailView->setAllColumnsShowFocus(true);
150 //mailView->setSorting(-1); 167 //mailView->setSorting(-1);
151 mailView->setRootIsDecorated( false ); 168 mailView->setRootIsDecorated( false );
152 statusWidget = new StatusWidget( wrapperBox ); 169 statusWidget = new StatusWidget( wrapperBox );
153 statusWidget->hide(); 170 statusWidget->hide();
154 171
155 //layout->addWidget( mailView ); 172 //layout->addWidget( mailView );
156 //layout->setStretchFactor( folderView, 1 ); 173 //layout->setStretchFactor( folderView, 1 );
157 //layout->setStretchFactor( mailView, 2 ); 174 //layout->setStretchFactor( mailView, 2 );
158 175
159 slotAdjustLayout(); 176 slotAdjustLayout();
160#ifndef DESKTOP_VERSION 177#ifndef DESKTOP_VERSION
161 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); 178 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold);
162 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); 179 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold);
163 QPEApplication::setStylusOperation( subLE ,QPEApplication::RightOnHold); 180 if ( subLE )
164 QPEApplication::setStylusOperation( fromLE ,QPEApplication::RightOnHold); 181 QPEApplication::setStylusOperation( subLE ,QPEApplication::RightOnHold);
165 QPEApplication::setStylusOperation( toLE ,QPEApplication::RightOnHold); 182 if ( fromLE )
183 QPEApplication::setStylusOperation( fromLE ,QPEApplication::RightOnHold);
184 if ( toLE )
185 QPEApplication::setStylusOperation( toLE ,QPEApplication::RightOnHold);
166#endif 186#endif
167 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this, 187 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this,
168 SLOT( mailLeftClicked(QListViewItem*) ) ); 188 SLOT( mailLeftClicked(QListViewItem*) ) );
169 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this, 189 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this,
170 SLOT( mailLeftClicked(QListViewItem*) ) ); 190 SLOT( mailLeftClicked(QListViewItem*) ) );
171 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 191 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
172 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); 192 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) );
173 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), 193 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)),
174 this,SLOT(refreshMailView(const QValueList<RecMailP>&))); 194 this,SLOT(refreshMailView(const QValueList<RecMailP>&)));
175 195
176 connect( mailView, SIGNAL( currentChanged (QListViewItem* )),this, 196 connect( mailView, SIGNAL( currentChanged (QListViewItem* )),this,
177 SLOT( setInfoFields(QListViewItem*) ) ); 197 SLOT( setInfoFields(QListViewItem*) ) );
178 198
179 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); 199 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) );
180 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); 200 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) );
181// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); 201// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) );
182 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); 202 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) );
183 //mailView->setMultiSelection ( true ); 203 //mailView->setMultiSelection ( true );
184 mailView->setSelectionMode( QListView::Extended ); 204 mailView->setSelectionMode( QListView::Extended );
185 QValueList<int> list; 205 QValueList<int> list;
186 int fw = 100; 206 int fw = 100;
187 if ( QApplication::desktop()->width() > 320 ) 207 if ( QApplication::desktop()->width() > 320 )
188 fw = 50; 208 fw = 50;
189 list.append( fw ); 209 list.append( fw );
190 list.append( 100 ); 210 list.append( 100 );
191 split->setSizes( list ); 211 split->setSizes( list );
192 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 212 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
193 mailView->setShowSortIndicator ( true ); 213 mailView->setShowSortIndicator ( true );
194 QLabel *spacer = new QLabel( toolBar ); 214 QLabel *spacer = new QLabel( toolBar );
195 spacer->setBackgroundMode( QWidget::PaletteButton ); 215 spacer->setBackgroundMode( QWidget::PaletteButton );
196 toolBar->setStretchableWidget( spacer ); 216 toolBar->setStretchableWidget( spacer );
197 217
198 QAction* closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this); 218 QAction* closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this);
199 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) ); 219 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) );
200 if ( QApplication::desktop()->width() > 320 ) 220 if ( QApplication::desktop()->width() > 320 )
201 closeMail->addTo(toolBar); 221 closeMail->addTo(toolBar);
202 closeMail->addTo(mailMenu); 222 closeMail->addTo(mailMenu);
203 223
204 224
205 QPopupMenu* helpMenu = new QPopupMenu( menuBar ); 225 QPopupMenu* helpMenu = new QPopupMenu( menuBar );
206 menuBar->insertItem( i18n( "Help" ), helpMenu ); 226 menuBar->insertItem( i18n( "Help" ), helpMenu );
207 QAction* li = new QAction(i18n("About"), QPixmap(), 0, 0, this); 227 QAction* li = new QAction(i18n("About"), QPixmap(), 0, 0, this);
208 connect( li, SIGNAL( activated() ), SLOT( showAbout()) ); 228 connect( li, SIGNAL( activated() ), SLOT( showAbout()) );
209 li->addTo(helpMenu); 229 li->addTo(helpMenu);
210 li = new QAction(i18n("Licence"),QPixmap(), 0, 0, this); 230 li = new QAction(i18n("Licence"),QPixmap(), 0, 0, this);
211 connect( li, SIGNAL( activated() ), SLOT( showLicence()) ); 231 connect( li, SIGNAL( activated() ), SLOT( showLicence()) );
212 li->addTo(helpMenu); 232 li->addTo(helpMenu);
213 li = new QAction(i18n("LibEtPan Licence"), QPixmap(), 0, 0, this); 233 li = new QAction(i18n("LibEtPan Licence"), QPixmap(), 0, 0, this);
214 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) ); 234 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) );
215 li->addTo(helpMenu); 235 li->addTo(helpMenu);
216 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) ); 236 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) );
217 slotSetCodec( KOPrefs::instance()->mCurrentCodec ); 237 slotSetCodec( KOPrefs::instance()->mCurrentCodec );
218#ifdef DESKTOP_VERSION 238#ifdef DESKTOP_VERSION
219 resize ( 640, 480 ); 239 resize ( 640, 480 );
220#endif 240#endif
221} 241}
222 242
223MainWindow::~MainWindow() 243MainWindow::~MainWindow()
224{ 244{
225} 245}
226 246
227void MainWindow::setInfoFields(QListViewItem* item ) 247void MainWindow::setInfoFields(QListViewItem* item )
228{ 248{
229 if ( item == 0) { 249 if ( item == 0) {
230 subLE->setText(""); 250 if ( subLE ) subLE->setText("");
231 fromLE->setText(""); 251 if ( fromLE ) fromLE->setText("");
232 toLE->setText(""); 252 if ( toLE ) toLE->setText("");
233 return; 253 return;
234 } 254 }
235 RecMailP mail = ((MailListViewItem*)item)->data(); 255 RecMailP mail = ((MailListViewItem*)item)->data();
236 subLE->setText(mail->getSubject()); 256 if ( subLE ) subLE->setText(mail->getSubject());
237 fromLE->setText(mail->getFrom()); 257 if ( fromLE ) fromLE->setText(mail->getFrom());
238 toLE->setText(mail->To().join(";" )); 258 if ( toLE ) toLE->setText(mail->To().join(";" ));
239 subLE->setCursorPosition(0); 259 if ( subLE ) subLE->setCursorPosition(0);
240 fromLE->setCursorPosition(0); 260 if ( fromLE ) fromLE->setCursorPosition(0);
241 toLE->setCursorPosition(0); 261 if ( toLE ) toLE->setCursorPosition(0);
242 262
243} 263}
244void MainWindow::slotSetCodec( int codec ) 264void MainWindow::slotSetCodec( int codec )
245{ 265{
246 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false ); 266 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false );
247 //qDebug("codec %d ", codec); 267 //qDebug("codec %d ", codec);
248 KOPrefs::instance()->mCurrentCodec = codec; 268 KOPrefs::instance()->mCurrentCodec = codec;
249 KOPrefs::instance()->isDirty = true; 269 KOPrefs::instance()->isDirty = true;
250 QString name; 270 QString name;
251 switch ( codec ) { 271 switch ( codec ) {
252 case 0: 272 case 0:
253 name = "iso-8859-1"; 273 name = "iso-8859-1";
254 break; 274 break;
255 case 1: 275 case 1:
256 name = "iso-8859-5"; 276 name = "iso-8859-5";
257 break; 277 break;
258 case 2: 278 case 2:
259 name = "iso-8859-15"; 279 name = "iso-8859-15";
260 break; 280 break;
261 case 3: 281 case 3:
262 name = "big-5"; 282 name = "big-5";
263 break; 283 break;
264 case 4: 284 case 4:
265 name = "utf-8"; 285 name = "utf-8";
266 break; 286 break;
267 case 5: 287 case 5:
268 name = KOPrefs::instance()->mSendCodec.lower(); 288 name = KOPrefs::instance()->mSendCodec.lower();
269 break; 289 break;
270 } 290 }
271 KOPrefs::instance()->mCurrentCodeName = name ; 291 KOPrefs::instance()->mCurrentCodeName = name ;
272 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")"); 292 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")");
273 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true ); 293 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true );
274} 294}
275void MainWindow::showLicence() 295void MainWindow::showLicence()
276{ 296{
277 KApplication::showLicence(); 297 KApplication::showLicence();
278} 298}
279void MainWindow::showAbout() 299void MainWindow::showAbout()
280{ 300{
281 QString version; 301 QString version;
282#include <../version> 302#include <../version>
283 303
284 QString cap = "About KOpieMail/Pi"; 304 QString cap = "About KOpieMail/Pi";
285 QString text =i18n("KOpieMail/Platform-independent\n") + 305 QString text =i18n("KOpieMail/Platform-independent\n") +
286 "(OM/Pi) " + version + " - " 306 "(OM/Pi) " + version + " - "
287 307
288#ifdef DESKTOP_VERSION 308#ifdef DESKTOP_VERSION
289 "Desktop Edition\n" 309 "Desktop Edition\n"
290#else 310#else
291 "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n" 311 "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n"
292#endif 312#endif
293 "www.pi-sync.net\n\n" 313 "www.pi-sync.net\n\n"
294 314
295 315
296 316
297"Copyright (c) 2004 Lutz Rogowski <lutz@pi-sync.net>\n" 317"Copyright (c) 2004 Lutz Rogowski <lutz@pi-sync.net>\n"
298 "KOpieMail/Pi is based on Opie Mail\n" 318 "KOpieMail/Pi is based on Opie Mail\n"
299 "Copyright (c) Rajko Albrecht and the Opie team\n" 319 "Copyright (c) Rajko Albrecht and the Opie team\n"
300 "KOpieMail/Pi is licensed under the GPL\n" 320 "KOpieMail/Pi is licensed under the GPL\n"
301 "\n" 321 "\n"
302 "KOpieMail/Pi uses LibEtPan - a mail stuff library\n" 322 "KOpieMail/Pi uses LibEtPan - a mail stuff library\n"
303 "Copyright (C) 2001, 2002 - DINH Viet Hoa\n" 323 "Copyright (C) 2001, 2002 - DINH Viet Hoa\n"
304 "libEtPan has its own licence - see LibEtPan licence\n"; 324 "libEtPan has its own licence - see LibEtPan licence\n";
305 325
306 KApplication::showText( cap, text ); 326 KApplication::showText( cap, text );
307} 327}
308void MainWindow::showEtpanLicence() 328void MainWindow::showEtpanLicence()
309{ 329{
310 KApplication::showFile( "LibEtPan licence", "kdepim/kopiemail/COPYRIGHTlibetpan" ); 330 KApplication::showFile( "LibEtPan licence", "kdepim/kopiemail/COPYRIGHTlibetpan" );
311 331
312} 332}
313void MainWindow::appMessage(const QCString &, const QByteArray &) 333void MainWindow::appMessage(const QCString &, const QByteArray &)
314{ 334{
315 qDebug("appMessage implemented by subclass"); 335 qDebug("appMessage implemented by subclass");
316} 336}
317 337
318void MainWindow::slotAdjustLayout() { 338void MainWindow::slotAdjustLayout() {
319 339
320 /* 340 /*
321 QWidget *d = QApplication::desktop(); 341 QWidget *d = QApplication::desktop();
322 342
323 if ( d->width() < d->height() ) { 343 if ( d->width() < d->height() ) {
324 layout->setDirection( QBoxLayout::TopToBottom ); 344 layout->setDirection( QBoxLayout::TopToBottom );
325 } else { 345 } else {
326 layout->setDirection( QBoxLayout::LeftToRight ); 346 layout->setDirection( QBoxLayout::LeftToRight );
327 } 347 }
328 */ 348 */
329} 349}
330 350
331void MainWindow::slotAdjustColumns() 351void MainWindow::slotAdjustColumns()
332{ 352{
333 bool hidden = folderView->isHidden(); 353 bool hidden = folderView->isHidden();
334 if ( hidden ) folderView->show(); 354 if ( hidden ) folderView->show();
335 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 355 folderView->setColumnWidth( 0, folderView->visibleWidth() );
336 if ( hidden ) folderView->hide(); 356 if ( hidden ) folderView->hide();
337 357
338 mailView->setColumnWidth( 0, 10 ); 358 mailView->setColumnWidth( 0, 10 );
339 mailView->setColumnWidth( 1, 100 ); 359 mailView->setColumnWidth( 1, 100 );
340 mailView->setColumnWidth( 2, 100 ); 360 mailView->setColumnWidth( 2, 100 );
341 mailView->setColumnWidth( 3, 50 ); 361 mailView->setColumnWidth( 3, 50 );
342 mailView->setColumnWidth( 4, 120 ); 362 mailView->setColumnWidth( 4, 120 );
343 if ( KOPrefs::instance()->mShowToField ) 363 if ( KOPrefs::instance()->mShowToField )
344 mailView->setColumnWidth( 5, 100 ); 364 mailView->setColumnWidth( 5, 100 );
345} 365}
346 366
347void MainWindow::slotEditSettings() 367void MainWindow::slotEditSettings()
348{ 368{
349} 369}
350 370
351void MainWindow::slotShowFolders( bool ) 371void MainWindow::slotShowFolders( bool )
352{ 372{
353 qDebug("not implemented: "); 373 qDebug("not implemented: ");
354} 374}
355 375
356void MainWindow::refreshMailView(const QValueList<RecMailP>&) 376void MainWindow::refreshMailView(const QValueList<RecMailP>&)
357{ 377{
358 qDebug("not implemented: "); 378 qDebug("not implemented: ");
359} 379}
360 380
361void MainWindow::mailLeftClicked(QListViewItem * ) 381void MainWindow::mailLeftClicked(QListViewItem * )
362{ 382{
363 qDebug("not implemented: "); 383 qDebug("not implemented: ");
364} 384}
365 385
366void MainWindow::displayMail() 386void MainWindow::displayMail()
367{ 387{
368 qDebug("not implemented: "); 388 qDebug("not implemented: ");
369} 389}
370 390
371void MainWindow::slotDeleteMail() 391void MainWindow::slotDeleteMail()
372{ 392{
373 qDebug("not implemented: "); 393 qDebug("not implemented: ");
374} 394}
375 395
376void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int ) 396void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int )
377{ 397{
378 qDebug("not implemented: "); 398 qDebug("not implemented: ");
379} 399}
380 400
381void MainWindow::slotSendQueued() 401void MainWindow::slotSendQueued()
382{ 402{
383 qDebug("not implemented: "); 403 qDebug("not implemented: ");
384} 404}
385 405
386void MainWindow::slotEditAccounts() 406void MainWindow::slotEditAccounts()
387{ 407{
388 qDebug("not implemented: "); 408 qDebug("not implemented: ");
389} 409}
390 410
391void MainWindow::slotComposeMail() 411void MainWindow::slotComposeMail()
392{ 412{
393 qDebug("not implemented: "); 413 qDebug("not implemented: ");
394} 414}
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp
index 68f0eb3..f56711d 100644
--- a/kmicromail/opiemail.cpp
+++ b/kmicromail/opiemail.cpp
@@ -1,640 +1,641 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3 3
4 4
5#define protected public 5#define protected public
6#include <qwidget.h> 6#include <qwidget.h>
7#undef protected 7#undef protected
8#include "koprefsdialog.h" 8#include "koprefsdialog.h"
9#include <kapplication.h> 9#include <kapplication.h>
10#include <libkdepim/externalapphandler.h> 10#include <libkdepim/externalapphandler.h>
11#include <libkdepim/kpimglobalprefs.h> 11#include <libkdepim/kpimglobalprefs.h>
12#ifdef MINIKDE_KDIALOG_H 12#ifdef MINIKDE_KDIALOG_H
13#undef MINIKDE_KDIALOG_H 13#undef MINIKDE_KDIALOG_H
14#endif 14#endif
15#include "settingsdialog.h" 15#include "settingsdialog.h"
16#include "opiemail.h" 16#include "opiemail.h"
17#include "editaccounts.h" 17#include "editaccounts.h"
18#include "composemail.h" 18#include "composemail.h"
19#include "mailistviewitem.h" 19#include "mailistviewitem.h"
20#include "viewmail.h" 20#include "viewmail.h"
21#include "selectstore.h" 21#include "selectstore.h"
22#include "selectsmtp.h" 22#include "selectsmtp.h"
23#include "accountitem.h" 23#include "accountitem.h"
24#include "accountview.h" 24#include "accountview.h"
25#include "klocale.h" 25#include "klocale.h"
26 26
27#include <qmessagebox.h> 27#include <qmessagebox.h>
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qcursor.h> 29#include <qcursor.h>
30#include <qtextbrowser.h> 30#include <qtextbrowser.h>
31#include <qregexp.h> 31#include <qregexp.h>
32#include <qpe/global.h> 32#include <qpe/global.h>
33 33
34#ifdef DESKTOP_VERSION 34#ifdef DESKTOP_VERSION
35#include <qapplication.h> 35#include <qapplication.h>
36#else 36#else
37#include <qpe/qpeapplication.h> 37#include <qpe/qpeapplication.h>
38#endif 38#endif
39#include <libmailwrapper/smtpwrapper.h> 39#include <libmailwrapper/smtpwrapper.h>
40#include <libmailwrapper/mailtypes.h> 40#include <libmailwrapper/mailtypes.h>
41#include <libmailwrapper/abstractmail.h> 41#include <libmailwrapper/abstractmail.h>
42#include "koprefs.h" 42#include "koprefs.h"
43 43
44//using namespace Opie::Core; 44//using namespace Opie::Core;
45 45
46OpieMail::OpieMail( QWidget *parent, const char *name ) 46OpieMail::OpieMail( QWidget *parent, const char *name )
47 : MainWindow( parent, name) //, WStyle_ContextHelp ) 47 : MainWindow( parent, name) //, WStyle_ContextHelp )
48{ 48{
49 settings = new Settings(); 49 settings = new Settings();
50 tb = 0; 50 tb = 0;
51 setIcon(SmallIcon( "kmicromail" ) ); 51 setIcon(SmallIcon( "kmicromail" ) );
52 folderView->populate( settings->getAccounts() ); 52 folderView->populate( settings->getAccounts() );
53 53
54} 54}
55 55
56OpieMail::~OpieMail() 56OpieMail::~OpieMail()
57{ 57{
58 if (settings) delete settings; 58 if (settings) delete settings;
59 if ( tb ) 59 if ( tb )
60 delete tb; 60 delete tb;
61} 61}
62 62
63void OpieMail::appMessage(const QCString &msg, const QByteArray &data) 63void OpieMail::appMessage(const QCString &msg, const QByteArray &data)
64{ 64{
65 65
66} 66}
67#include <stdlib.h> 67#include <stdlib.h>
68void OpieMail::message(const QCString &msg, const QByteArray &data) 68void OpieMail::message(const QCString &msg, const QByteArray &data)
69{ 69{
70 // copied from old mail2 70 // copied from old mail2
71 static int ii = 0; 71 static int ii = 0;
72 //qDebug("QCOP CALL ############################# %d ", ii); 72 //qDebug("QCOP CALL ############################# %d ", ii);
73 //QString mess ( msg ); 73 //QString mess ( msg );
74 //qDebug("Message = %s ",mess.latin1()); 74 //qDebug("Message = %s ",mess.latin1());
75 ++ii; 75 ++ii;
76 //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this); 76 //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this);
77 77
78 mPendingEmail = QString::null; 78 mPendingEmail = QString::null;
79 mPendingName = QString::null; 79 mPendingName = QString::null;
80 if (msg == "writeMail(QString,QString)") 80 if (msg == "writeMail(QString,QString)")
81 { 81 {
82 //qDebug("writeMail(QString,QString) "); 82 //qDebug("writeMail(QString,QString) ");
83 QDataStream stream(data,IO_ReadOnly); 83 QDataStream stream(data,IO_ReadOnly);
84 stream >> mPendingName >> mPendingEmail; 84 stream >> mPendingName >> mPendingEmail;
85 // removing the whitespaces at beginning and end is needed! 85 // removing the whitespaces at beginning and end is needed!
86 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); 86 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) );
87 } 87 }
88 else if (msg == "newMail()") 88 else if (msg == "newMail()")
89 { 89 {
90 //qDebug("slotComposeMail() "); 90 //qDebug("slotComposeMail() ");
91 // we cannot call slotComposeMail(); directly, because may be executing a QCOP call 91 // we cannot call slotComposeMail(); directly, because may be executing a QCOP call
92 // and a QCOP call does not like a processevents in his execution 92 // and a QCOP call does not like a processevents in his execution
93 // with the Qtimer we call slotComposeMail() after we reached the main event loop 93 // with the Qtimer we call slotComposeMail() after we reached the main event loop
94 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); 94 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) );
95 // slotComposeMail(); 95 // slotComposeMail();
96 } 96 }
97 else if (msg == "newMail(QString)") 97 else if (msg == "newMail(QString)")
98 { 98 {
99 //qDebug(" newMail(QString)"); 99 //qDebug(" newMail(QString)");
100 QDataStream stream(data,IO_ReadOnly); 100 QDataStream stream(data,IO_ReadOnly);
101 stream >> mPendingName; 101 stream >> mPendingName;
102 // the format is 102 // the format is
103 // NAME <EMAIL>:SUBJECT 103 // NAME <EMAIL>:SUBJECT
104 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); 104 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) );
105 } else { 105 } else {
106 mPendingData = data; 106 mPendingData = data;
107 mPendingMessage = msg; 107 mPendingMessage = msg;
108 QTimer::singleShot ( 50, this, SLOT(slotExtAppHandler() ) ); 108 QTimer::singleShot ( 50, this, SLOT(slotExtAppHandler() ) );
109 } 109 }
110 110
111 //qDebug("END OpieMail::message "); 111 //qDebug("END OpieMail::message ");
112} 112}
113void OpieMail::slotExtAppHandler() 113void OpieMail::slotExtAppHandler()
114{ 114{
115 ExternalAppHandler::instance()->appMessage ( mPendingMessage, mPendingData ); 115 ExternalAppHandler::instance()->appMessage ( mPendingMessage, mPendingData );
116} 116}
117void OpieMail::slotwriteMail2(const QString& namemail ) 117void OpieMail::slotwriteMail2(const QString& namemail )
118{ 118{
119 //qDebug("OpieMail::slotwriteMail2 "); 119 //qDebug("OpieMail::slotwriteMail2 ");
120 //qApp->processEvents(); 120 //qApp->processEvents();
121 ComposeMail compose( settings, this, 0, true ); 121 ComposeMail compose( settings, this, 0, true );
122 if ( !namemail.isEmpty() ) { 122 if ( !namemail.isEmpty() ) {
123 QString to = namemail; 123 QString to = namemail;
124 if ( namemail.find( " <") > 1 ) { 124 if ( namemail.find( " <") > 1 ) {
125 to = "\"" +to.replace( QRegExp( " <"), "\" <") ; 125 to = "\"" +to.replace( QRegExp( " <"), "\" <") ;
126 } else 126 } else
127 if ( namemail.find( "<") > 1 ) { 127 if ( namemail.find( "<") > 1 ) {
128 to = "\"" +to.replace( QRegExp( "<"), "\" <") ; 128 to = "\"" +to.replace( QRegExp( "<"), "\" <") ;
129 } 129 }
130 int sub = to.find( ">:"); 130 int sub = to.find( ">:");
131 if ( sub > 0 ) { 131 if ( sub > 0 ) {
132 compose.setTo( to.left(sub+1) ); 132 compose.setTo( to.left(sub+1) );
133 compose.setSubject( to.mid(sub+2) ); 133 compose.setSubject( to.mid(sub+2) );
134 } else 134 } else
135 compose.setTo( to ); 135 compose.setTo( to );
136 } 136 }
137 compose.slotAdjustColumns(); 137 compose.slotAdjustColumns();
138#ifndef DESKTOP_VERSION 138#ifndef DESKTOP_VERSION
139 compose.showMaximized(); 139 compose.showMaximized();
140#endif 140#endif
141 compose.exec(); 141 compose.exec();
142 raise(); 142 raise();
143 //qDebug("retttich "); 143 //qDebug("retttich ");
144} 144}
145void OpieMail::slotwriteMail(const QString&name,const QString&email) 145void OpieMail::slotwriteMail(const QString&name,const QString&email)
146{ 146{
147 // qDebug("OpieMail::slotwriteMail "); 147 // qDebug("OpieMail::slotwriteMail ");
148 ComposeMail compose( settings, this, 0, true ); 148 ComposeMail compose( settings, this, 0, true );
149 if (!email.isEmpty()) 149 if (!email.isEmpty())
150 { 150 {
151 if (!name.isEmpty()) 151 if (!name.isEmpty())
152 { 152 {
153 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">"); 153 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">");
154 } 154 }
155 else 155 else
156 { 156 {
157 compose.setTo(email); 157 compose.setTo(email);
158 } 158 }
159 } 159 }
160 compose.slotAdjustColumns(); 160 compose.slotAdjustColumns();
161#ifndef DESKTOP_VERSION 161#ifndef DESKTOP_VERSION
162 compose.showMaximized(); 162 compose.showMaximized();
163#endif 163#endif
164 compose.exec(); 164 compose.exec();
165 raise(); 165 raise();
166} 166}
167 167
168void OpieMail::slotComposeMail() 168void OpieMail::slotComposeMail()
169{ 169{
170 if ( mPendingEmail == QString::null && mPendingName == QString::null) 170 if ( mPendingEmail == QString::null && mPendingName == QString::null)
171 slotwriteMail2( QString () ); 171 slotwriteMail2( QString () );
172 else { 172 else {
173 if ( mPendingEmail == QString::null ) 173 if ( mPendingEmail == QString::null )
174 slotwriteMail2( mPendingName ); 174 slotwriteMail2( mPendingName );
175 else 175 else
176 slotwriteMail( mPendingName, mPendingEmail ); 176 slotwriteMail( mPendingName, mPendingEmail );
177 } 177 }
178 //slotwriteMail(0l,0l); 178 //slotwriteMail(0l,0l);
179} 179}
180 180
181void OpieMail::slotSendQueued() 181void OpieMail::slotSendQueued()
182{ 182{
183 SMTPaccount *smtp = 0; 183 SMTPaccount *smtp = 0;
184 184
185 QList<Account> list = settings->getAccounts(); 185 QList<Account> list = settings->getAccounts();
186 QList<SMTPaccount> smtpList; 186 QList<SMTPaccount> smtpList;
187 smtpList.setAutoDelete(false); 187 smtpList.setAutoDelete(false);
188 Account *it; 188 Account *it;
189 for ( it = list.first(); it; it = list.next() ) 189 for ( it = list.first(); it; it = list.next() )
190 { 190 {
191 if ( it->getType() == MAILLIB::A_SMTP ) 191 if ( it->getType() == MAILLIB::A_SMTP )
192 { 192 {
193 smtp = static_cast<SMTPaccount *>(it); 193 smtp = static_cast<SMTPaccount *>(it);
194 smtpList.append(smtp); 194 smtpList.append(smtp);
195 } 195 }
196 } 196 }
197 if (smtpList.count()==0) 197 if (smtpList.count()==0)
198 { 198 {
199 QMessageBox::information(0,i18n("Info"),i18n("Define a smtp account first!\n")); 199 QMessageBox::information(0,i18n("Info"),i18n("Define a smtp account first!\n"));
200 return; 200 return;
201 } 201 }
202 if ( QMessageBox::warning(this, i18n("Sending all mails"), i18n("Do you really want to send\nall queued mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::No ) 202 if ( QMessageBox::warning(this, i18n("Sending all mails"), i18n("Do you really want to send\nall queued mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::No )
203 return; 203 return;
204 if (smtpList.count()==1) 204 if (smtpList.count()==1)
205 { 205 {
206 smtp = smtpList.at(0); 206 smtp = smtpList.at(0);
207 } 207 }
208 else 208 else
209 { 209 {
210 smtp = 0; 210 smtp = 0;
211 selectsmtp selsmtp; 211 selectsmtp selsmtp;
212 selsmtp.setSelectionlist(&smtpList); 212 selsmtp.setSelectionlist(&smtpList);
213#ifndef DESKTOP_VERSION 213#ifndef DESKTOP_VERSION
214 selsmtp.showMaximized(); 214 selsmtp.showMaximized();
215#endif 215#endif
216 if ( selsmtp.exec() == QDialog::Accepted ) 216 if ( selsmtp.exec() == QDialog::Accepted )
217 { 217 {
218 smtp = selsmtp.selected_smtp(); 218 smtp = selsmtp.selected_smtp();
219 } 219 }
220 } 220 }
221 if (smtp) 221 if (smtp)
222 { 222 {
223 223
224 Global::statusMessage("Sending mails...!"); 224 Global::statusMessage("Sending mails...!");
225 SMTPwrapper * wrap = new SMTPwrapper(smtp); 225 SMTPwrapper * wrap = new SMTPwrapper(smtp);
226 if ( wrap->flushOutbox() ) 226 if ( wrap->flushOutbox() )
227 { 227 {
228 Global::statusMessage("Mails sent!"); 228 Global::statusMessage("Mails sent!");
229 } 229 }
230 delete wrap; 230 delete wrap;
231 } 231 }
232 // pending refresh list view, if outgoing is displayed 232 // pending refresh list view, if outgoing is displayed
233} 233}
234 234
235void OpieMail::slotSearchMails() 235void OpieMail::slotSearchMails()
236{ 236{
237 qDebug("OpieMail::slotSearchMails():not implemented "); 237 qDebug("OpieMail::slotSearchMails():not implemented ");
238} 238}
239 239
240void OpieMail::slotEditSettings() 240void OpieMail::slotEditSettings()
241{ 241{
242 242
243 KOPrefsDialog settingsDialog( this, "koprefs", true ); 243 KOPrefsDialog settingsDialog( this, "koprefs", true );
244#ifndef DESKTOP_VERSION 244#ifndef DESKTOP_VERSION
245 settingsDialog.showMaximized(); 245 settingsDialog.showMaximized();
246#endif 246#endif
247 settingsDialog.exec(); 247 settingsDialog.exec();
248 248
249 slotSetCodec( KOPrefs::instance()->mCurrentCodec ); 249 slotSetCodec( KOPrefs::instance()->mCurrentCodec );
250 // KApplication::execDialog(settingsDialog); 250 // KApplication::execDialog(settingsDialog);
251} 251}
252 252
253void OpieMail::slotEditAccounts() 253void OpieMail::slotEditAccounts()
254{ 254{
255 EditAccounts eaDialog( settings, this, 0, true ); 255 EditAccounts eaDialog( settings, this, 0, true );
256 eaDialog.slotAdjustColumns(); 256 eaDialog.slotAdjustColumns();
257#ifndef DESKTOP_VERSION 257#ifndef DESKTOP_VERSION
258 eaDialog.showMaximized(); 258 eaDialog.showMaximized();
259#endif 259#endif
260 eaDialog.exec(); 260 eaDialog.exec();
261 if ( settings ) delete settings; 261 if ( settings ) delete settings;
262 settings = new Settings(); 262 settings = new Settings();
263 263
264 folderView->populate( settings->getAccounts() ); 264 folderView->populate( settings->getAccounts() );
265} 265}
266void OpieMail::replyMail() 266void OpieMail::replyMail()
267{ 267{
268 268
269 QListViewItem*item = mailView->currentItem(); 269 QListViewItem*item = mailView->currentItem();
270 if (!item) return; 270 if (!item) return;
271 RecMailP mail = ((MailListViewItem*)item)->data(); 271 RecMailP mail = ((MailListViewItem*)item)->data();
272 RecBodyP body = folderView->fetchBody(mail); 272 RecBodyP body = folderView->fetchBody(mail);
273 273
274 QString rtext; 274 QString rtext;
275 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose 275 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose
276 .arg( mail->getFrom()) 276 .arg( mail->getFrom())
277 .arg( mail->getDate()); 277 .arg( mail->getDate());
278 278
279 QString text = body->Bodytext(); 279 QString text = body->Bodytext();
280 QStringList lines = QStringList::split(QRegExp("\\n"), text); 280 QStringList lines = QStringList::split(QRegExp("\\n"), text);
281 QStringList::Iterator it; 281 QStringList::Iterator it;
282 for (it = lines.begin(); it != lines.end(); it++) 282 for (it = lines.begin(); it != lines.end(); it++)
283 { 283 {
284 rtext += "> " + *it + "\n"; 284 rtext += "> " + *it + "\n";
285 } 285 }
286 rtext += "\n"; 286 rtext += "\n";
287 287
288 QString prefix; 288 QString prefix;
289 if ( mail->getSubject().find(QRegExp("^Re: .*$")) != -1) prefix = ""; 289 if ( mail->getSubject().find(QRegExp("^Re: .*$")) != -1) prefix = "";
290 else prefix = "Re: "; // no i18n on purpose 290 else prefix = "Re: "; // no i18n on purpose
291 291
292 Settings *settings = new Settings(); 292 Settings *settings = new Settings();
293 ComposeMail composer( settings ,this, 0, true); 293 ComposeMail composer( settings ,this, 0, true);
294 if (mail->Replyto().isEmpty()) { 294 if (mail->Replyto().isEmpty()) {
295 composer.setTo( mail->getFrom()); 295 composer.setTo( mail->getFrom());
296 } else { 296 } else {
297 composer.setTo( mail->Replyto()); 297 composer.setTo( mail->Replyto());
298 } 298 }
299 composer.setSubject( prefix + mail->getSubject()); 299 composer.setSubject( prefix + mail->getSubject());
300 composer.setMessage( rtext ); 300 composer.setMessage( rtext );
301 composer.setInReplyTo( mail->Msgid()); 301 composer.setInReplyTo( mail->Msgid());
302 composer.setCharset( body->getCharset() ); 302 composer.setCharset( body->getCharset() );
303 if ( QDialog::Accepted == KApplication::execDialog( &composer ) ) 303 if ( QDialog::Accepted == KApplication::execDialog( &composer ) )
304 { 304 {
305 mail->Wrapper()->answeredMail(mail); 305 mail->Wrapper()->answeredMail(mail);
306 } 306 }
307 delete settings; 307 delete settings;
308 308
309} 309}
310void OpieMail::closeViewMail(ViewMail * vm) 310void OpieMail::closeViewMail(ViewMail * vm)
311{ 311{
312 vm->hide(); 312 vm->hide();
313} 313}
314 314
315void OpieMail::slotDownloadMail( ) 315void OpieMail::slotDownloadMail( )
316{ 316{
317 QListViewItem*item = mailView->currentItem(); 317 QListViewItem*item = mailView->currentItem();
318 if (!item ) { 318 if (!item ) {
319 Global::statusMessage("Error: No item slected!"); 319 Global::statusMessage("Error: No item slected!");
320 return; 320 return;
321 } 321 }
322 RecMailP mail = ((MailListViewItem*)item)->data(); 322 RecMailP mail = ((MailListViewItem*)item)->data();
323 Account * acc = mail->Wrapper()->getAccount(); 323 Account * acc = mail->Wrapper()->getAccount();
324 if ( !acc ) { 324 if ( !acc ) {
325 Global::statusMessage("Mail is already stored locally!"); 325 Global::statusMessage("Mail is already stored locally!");
326 return; 326 return;
327 } 327 }
328 QString lfName = acc->getLocalFolder(); 328 QString lfName = acc->getLocalFolder();
329 //qDebug("local folder " + lfName ); 329 //qDebug("local folder " + lfName );
330 if ( lfName.isEmpty() ) 330 if ( lfName.isEmpty() )
331 lfName = acc->getAccountName(); 331 lfName = acc->getAccountName();
332 AbstractMail* targetMail = folderView->allAccounts()[0]->getWrapper(); 332 AbstractMail* targetMail = folderView->allAccounts()[0]->getWrapper();
333 //qDebug("target %d %d ",targetMail,mail->Wrapper() ); 333 //qDebug("target %d %d ",targetMail,mail->Wrapper() );
334 if ( targetMail == mail->Wrapper() ) { 334 if ( targetMail == mail->Wrapper() ) {
335 Global::statusMessage("Mail is already locally stored!"); 335 Global::statusMessage("Mail is already locally stored!");
336 return; 336 return;
337 } 337 }
338 if ( !targetMail->createMbox(lfName)) { 338 if ( !targetMail->createMbox(lfName)) {
339 Global::statusMessage("Error creating folder!"); 339 Global::statusMessage("Error creating folder!");
340 return; 340 return;
341 } 341 }
342 Global::statusMessage("Fetching mail...please wait!"); 342 Global::statusMessage("Fetching mail...please wait!");
343 qApp->processEvents(); 343 qApp->processEvents();
344 encodedString*st = 0; 344 encodedString*st = 0;
345 st = mail->Wrapper()->fetchRawBody(mail); 345 st = mail->Wrapper()->fetchRawBody(mail);
346 if ( st ) { 346 if ( st ) {
347 targetMail->storeMessage(st->Content(),st->Length(),lfName); 347 targetMail->storeMessage(st->Content(),st->Length(),lfName);
348 Global::statusMessage("Mail stored in "+ lfName); 348 Global::statusMessage("Mail stored in "+ lfName);
349 delete st; 349 delete st;
350 } else { 350 } else {
351 Global::statusMessage("Error: Cannot fetch mail!"); 351 Global::statusMessage("Error: Cannot fetch mail!");
352 } 352 }
353} 353}
354 354
355 355
356void OpieMail::deleteAndDisplayNextMail(ViewMail * vm) 356void OpieMail::deleteAndDisplayNextMail(ViewMail * vm)
357{ 357{
358 QListViewItem*item = mailView->currentItem(); 358 QListViewItem*item = mailView->currentItem();
359 if (!item ) { 359 if (!item ) {
360 closeViewMail(vm); 360 closeViewMail(vm);
361 return; 361 return;
362 } 362 }
363 RecMailP mail = ((MailListViewItem*)item)->data(); 363 RecMailP mail = ((MailListViewItem*)item)->data();
364 mail->Wrapper()->deleteMail( mail ); 364 mail->Wrapper()->deleteMail( mail );
365 item = item->itemBelow(); 365 item = item->itemBelow();
366 if (!item ) { 366 if (!item ) {
367 closeViewMail(vm); 367 closeViewMail(vm);
368 return; 368 return;
369 } 369 }
370 mailView->setCurrentItem(item); 370 mailView->setCurrentItem(item);
371 mail = ((MailListViewItem*)item)->data(); 371 mail = ((MailListViewItem*)item)->data();
372 RecBodyP body = folderView->fetchBody(mail); 372 RecBodyP body = folderView->fetchBody(mail);
373 vm->setBody( body ); 373 vm->setBody( body );
374 vm->setMail( mail ); 374 vm->setMail( mail );
375} 375}
376void OpieMail::displayNextMail(ViewMail * vm) 376void OpieMail::displayNextMail(ViewMail * vm)
377{ 377{
378 QListViewItem*item = mailView->currentItem(); 378 QListViewItem*item = mailView->currentItem();
379 if (!item) return; 379 if (!item) return;
380 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() ); 380 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() );
381 item = item->itemBelow(); 381 item = item->itemBelow();
382 if (!item) { 382 if (!item) {
383 vm->setCaption(i18n("End of List" )); 383 vm->setCaption(i18n("End of List" ));
384 return; 384 return;
385 } 385 }
386 mailView->setCurrentItem(item); 386 mailView->setCurrentItem(item);
387 RecMailP mail = ((MailListViewItem*)item)->data(); 387 RecMailP mail = ((MailListViewItem*)item)->data();
388 RecBodyP body = folderView->fetchBody(mail); 388 RecBodyP body = folderView->fetchBody(mail);
389 vm->setBody( body ); 389 vm->setBody( body );
390 vm->setMail( mail ); 390 vm->setMail( mail );
391} 391}
392void OpieMail::displayMail() 392void OpieMail::displayMail()
393{ 393{
394 QListViewItem*item = mailView->currentItem(); 394 QListViewItem*item = mailView->currentItem();
395 if (!item) return; 395 if (!item) return;
396 RecMailP mail = ((MailListViewItem*)item)->data(); 396 RecMailP mail = ((MailListViewItem*)item)->data();
397 RecBodyP body = folderView->fetchBody(mail); 397 RecBodyP body = folderView->fetchBody(mail);
398 ViewMail readMail( this,"", Qt::WType_Modal ); 398 ViewMail readMail( this,"", Qt::WType_Modal );
399 readMail.setBody( body ); 399 readMail.setBody( body );
400 readMail.setMail( mail ); 400 readMail.setMail( mail );
401#ifndef DESKTOP_VERSION 401#ifndef DESKTOP_VERSION
402 readMail.showMaximized(); 402 readMail.showMaximized();
403#else 403#else
404 readMail.resize( 640, 480); 404 readMail.resize( 640, 480);
405#endif 405#endif
406 connect( &readMail,SIGNAL( showNextMail(ViewMail *) ), this, SLOT( displayNextMail(ViewMail *) ) ); 406 connect( &readMail,SIGNAL( showNextMail(ViewMail *) ), this, SLOT( displayNextMail(ViewMail *) ) );
407 connect( &readMail,SIGNAL( deleteAndDisplayNextMail(ViewMail *) ), this, SLOT(deleteAndDisplayNextMail(ViewMail *) ) ); 407 connect( &readMail,SIGNAL( deleteAndDisplayNextMail(ViewMail *) ), this, SLOT(deleteAndDisplayNextMail(ViewMail *) ) );
408 connect( &readMail,SIGNAL( signalDownloadMail() ), this, SLOT( slotDownloadMail() ) ); 408 connect( &readMail,SIGNAL( signalDownloadMail() ), this, SLOT( slotDownloadMail() ) );
409 409
410 readMail.exec(); 410 readMail.exec();
411 411
412 if ( readMail.deleted ) 412 if ( readMail.deleted )
413 { 413 {
414 folderView->refreshCurrent(); 414 folderView->refreshCurrent();
415 } 415 }
416 else 416 else
417 { 417 {
418 QListViewItem*item = mailView->currentItem(); 418 QListViewItem*item = mailView->currentItem();
419 if (item) 419 if (item)
420 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() ); 420 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() );
421 } 421 }
422} 422}
423void OpieMail::slotGetAllMail() 423void OpieMail::slotGetAllMail()
424{ 424{
425 QListViewItem * item = folderView->firstChild(); 425 QListViewItem * item = folderView->firstChild();
426 while ( item ){ 426 while ( item ){
427 ((AccountViewItem *)item)->contextMenuSelected( 101 ); 427 ((AccountViewItem *)item)->contextMenuSelected( 101 );
428 item = item->nextSibling (); 428 item = item->nextSibling ();
429 } 429 }
430} 430}
431void OpieMail::slotGetMail() 431void OpieMail::slotGetMail()
432{ 432{
433 QListViewItem * item = folderView->currentItem(); 433 QListViewItem * item = folderView->currentItem();
434 if ( ! item ) return; 434 if ( ! item ) return;
435 ((AccountViewItem *)item)->contextMenuSelected( 101 ); 435 ((AccountViewItem *)item)->contextMenuSelected( 101 );
436} 436}
437void OpieMail::slotDeleteMail() 437void OpieMail::slotDeleteMail()
438{ 438{
439 if (!mailView->currentItem()) return; 439 if (!mailView->currentItem()) return;
440 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); 440 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data();
441 if ( QMessageBox::warning(this, i18n("Delete Mail"), QString( i18n("<p>Do you really want to delete this mail? <br><br>" ) + mail->getFrom() + " - " + mail->getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 441 if ( QMessageBox::warning(this, i18n("Delete Mail"), QString( i18n("<p>Do you really want to delete this mail? <br><br>" ) + mail->getFrom() + " - " + mail->getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
442 { 442 {
443 mail->Wrapper()->deleteMail( mail ); 443 mail->Wrapper()->deleteMail( mail );
444 folderView->refreshCurrent(); 444 folderView->refreshCurrent();
445 } 445 }
446} 446}
447void OpieMail::slotDeleteAllMail() 447void OpieMail::slotDeleteAllMail()
448{ 448{
449 449
450 QValueList<RecMailP> t; 450 QValueList<RecMailP> t;
451 if ( QMessageBox::warning(this, i18n("Delete All Mails"), i18n("Do you really want to delete\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 451 if ( QMessageBox::warning(this, i18n("Delete All Mails"), i18n("Do you really want to delete\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
452 { 452 {
453 MailListViewItem* item = (MailListViewItem*)mailView->firstChild (); 453 MailListViewItem* item = (MailListViewItem*)mailView->firstChild ();
454 while ( item ) { 454 while ( item ) {
455 if ( item->isSelected() ) { 455 if ( item->isSelected() ) {
456 t.append( item->data() ); 456 t.append( item->data() );
457 } 457 }
458 item = (MailListViewItem*)item->nextSibling(); 458 item = (MailListViewItem*)item->nextSibling();
459 } 459 }
460 } 460 }
461 else 461 else
462 return; 462 return;
463 if ( t.count() == 0 ) 463 if ( t.count() == 0 )
464 return; 464 return;
465 RecMailP mail = t.first(); 465 RecMailP mail = t.first();
466 mail->Wrapper()->deleteMailList(t); 466 mail->Wrapper()->deleteMailList(t);
467 folderView->refreshCurrent(); 467 folderView->refreshCurrent();
468 468
469 469
470} 470}
471void OpieMail::clearSelection() 471void OpieMail::clearSelection()
472{ 472{
473 mailView->clearSelection(); 473 mailView->clearSelection();
474 474
475} 475}
476 476
477void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int ) 477void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int )
478{ 478{
479 if (!mailView->currentItem()) return; 479 if (!mailView->currentItem()) return;
480 MAILLIB::ATYPE mailtype = ((MailListViewItem*)mailView->currentItem() )->wrapperType(); 480 MAILLIB::ATYPE mailtype = ((MailListViewItem*)mailView->currentItem() )->wrapperType();
481 /* just the RIGHT button - or hold on pda */ 481 /* just the RIGHT button - or hold on pda */
482 if (button!=2) {return;} 482 if (button!=2) {return;}
483 if (!item) return; 483 if (!item) return;
484 QPopupMenu *m = new QPopupMenu(0); 484 QPopupMenu *m = new QPopupMenu(0);
485 if (m) 485 if (m)
486 { 486 {
487 if (mailtype==MAILLIB::A_NNTP) { 487 if (mailtype==MAILLIB::A_NNTP) {
488 m->insertItem(i18n("Read this posting"),this,SLOT(displayMail())); 488 m->insertItem(i18n("Read this posting"),this,SLOT(displayMail()));
489 m->insertItem(i18n("Copy this posting"),this,SLOT(slotMoveCopyMail())); 489 m->insertItem(i18n("Copy this posting"),this,SLOT(slotMoveCopyMail()));
490 m->insertSeparator(); 490 m->insertSeparator();
491 m->insertItem(i18n("Copy all selected postings"),this,SLOT(slotMoveCopyAllMail())); 491 m->insertItem(i18n("Copy all selected postings"),this,SLOT(slotMoveCopyAllMail()));
492 m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection())); 492 m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection()));
493 } else { 493 } else {
494 if (folderView->currentisDraft()) { 494 if (folderView->currentisDraft()) {
495 m->insertItem(i18n("Edit this mail"),this,SLOT(reEditMail())); 495 m->insertItem(i18n("Edit this mail"),this,SLOT(reEditMail()));
496 } 496 }
497 m->insertItem(i18n("Reply to this mail"),this,SLOT(replyMail())); 497 m->insertItem(i18n("Reply to this mail"),this,SLOT(replyMail()));
498 m->insertSeparator();
499 m->insertItem(i18n("Read this mail"),this,SLOT(displayMail())); 498 m->insertItem(i18n("Read this mail"),this,SLOT(displayMail()));
499 m->insertSeparator();
500 m->insertItem(i18n("Move/Copy this mail"),this,SLOT(slotMoveCopyMail())); 500 m->insertItem(i18n("Move/Copy this mail"),this,SLOT(slotMoveCopyMail()));
501 m->insertItem(i18n("Delete this mail"),this,SLOT(slotDeleteMail())); 501 m->insertItem(i18n("Delete this mail"),this,SLOT(slotDeleteMail()));
502 m->insertSeparator(); 502 m->insertSeparator();
503 m->insertItem(i18n("Move/Copy all selected mail"),this,SLOT(slotMoveCopyAllMail())); 503 m->insertItem(i18n("Move/Copy all selected mail"),this,SLOT(slotMoveCopyAllMail()));
504 m->insertItem(i18n("Delete all selected mails"),this,SLOT(slotDeleteAllMail())); 504 m->insertItem(i18n("Delete all selected mails"),this,SLOT(slotDeleteAllMail()));
505 m->insertSeparator();
505 m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection())); 506 m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection()));
506 } 507 }
507 m->setFocus(); 508 m->setFocus();
508 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 509 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
509 delete m; 510 delete m;
510 } 511 }
511} 512}
512 513
513void OpieMail::slotShowFolders( bool show ) 514void OpieMail::slotShowFolders( bool show )
514{ 515{
515 if ( show && folderView->isHidden() ) 516 if ( show && folderView->isHidden() )
516 { 517 {
517 folderView->show(); 518 folderView->show();
518 } 519 }
519 else if ( !show && !folderView->isHidden() ) 520 else if ( !show && !folderView->isHidden() )
520 { 521 {
521 folderView->hide(); 522 folderView->hide();
522 } 523 }
523} 524}
524 525
525void OpieMail::refreshMailView(const QValueList<RecMailP>&list) 526void OpieMail::refreshMailView(const QValueList<RecMailP>&list)
526{ 527{
527 MailListViewItem*item = 0; 528 MailListViewItem*item = 0;
528 mailView->clear(); 529 mailView->clear();
529 530
530 QValueList<RecMailP>::ConstIterator it; 531 QValueList<RecMailP>::ConstIterator it;
531 for (it = list.begin(); it != list.end();++it) 532 for (it = list.begin(); it != list.end();++it)
532 { 533 {
533 item = new MailListViewItem(mailView,item); 534 item = new MailListViewItem(mailView,item);
534 item->storeData((*it)); 535 item->storeData((*it));
535 item->showEntry(); 536 item->showEntry();
536 } 537 }
537 mailView->setSorting ( 4, false ); 538 mailView->setSorting ( 4, false );
538} 539}
539 540
540void OpieMail::mailLeftClicked( QListViewItem *item ) 541void OpieMail::mailLeftClicked( QListViewItem *item )
541{ 542{
542 mailView->clearSelection(); 543 mailView->clearSelection();
543 /* just LEFT button - or tap with stylus on pda */ 544 /* just LEFT button - or tap with stylus on pda */
544 //if (button!=1) return; 545 //if (button!=1) return;
545 if (!item) return; 546 if (!item) return;
546 if (folderView->currentisDraft()) { 547 if (folderView->currentisDraft()) {
547 reEditMail(); 548 reEditMail();
548 } else { 549 } else {
549 displayMail(); 550 displayMail();
550 } 551 }
551} 552}
552 553
553void OpieMail::slotMoveCopyMail() 554void OpieMail::slotMoveCopyMail()
554{ 555{
555 if (!mailView->currentItem()) return; 556 if (!mailView->currentItem()) return;
556 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); 557 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data();
557 AbstractMail*targetMail = 0; 558 AbstractMail*targetMail = 0;
558 QString targetFolder = ""; 559 QString targetFolder = "";
559 Selectstore sels; 560 Selectstore sels;
560 folderView->setupFolderselect(&sels); 561 folderView->setupFolderselect(&sels);
561 if (!sels.exec()) return; 562 if (!sels.exec()) return;
562 targetMail = sels.currentMail(); 563 targetMail = sels.currentMail();
563 targetFolder = sels.currentFolder(); 564 targetFolder = sels.currentFolder();
564 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || 565 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) ||
565 targetFolder.isEmpty()) 566 targetFolder.isEmpty())
566 { 567 {
567 return; 568 return;
568 } 569 }
569 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 570 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
570 { 571 {
571 QMessageBox::critical(0,i18n("Error creating new Folder"), 572 QMessageBox::critical(0,i18n("Error creating new Folder"),
572 i18n("<center>Error while creating<br>new folder - breaking.</center>")); 573 i18n("<center>Error while creating<br>new folder - breaking.</center>"));
573 return; 574 return;
574 } 575 }
575 sels.hide(); 576 sels.hide();
576 qApp->processEvents(); 577 qApp->processEvents();
577 // qDebug("hiding sels "); 578 // qDebug("hiding sels ");
578 mail->Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails()); 579 mail->Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails());
579 folderView->refreshCurrent(); 580 folderView->refreshCurrent();
580} 581}
581 582
582void OpieMail::slotMoveCopyAllMail() 583void OpieMail::slotMoveCopyAllMail()
583{ 584{
584 585
585 if (!mailView->currentItem()) return; 586 if (!mailView->currentItem()) return;
586 QValueList<RecMailP> t; 587 QValueList<RecMailP> t;
587 // if ( QMessageBox::warning(this, i18n("Move/Copy all selected mails"), i18n("Do you really want to copy/move\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 588 // if ( QMessageBox::warning(this, i18n("Move/Copy all selected mails"), i18n("Do you really want to copy/move\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
588 { 589 {
589 MailListViewItem* item = (MailListViewItem*)mailView->firstChild (); 590 MailListViewItem* item = (MailListViewItem*)mailView->firstChild ();
590 while ( item ) { 591 while ( item ) {
591 if ( item->isSelected() ) { 592 if ( item->isSelected() ) {
592 t.append( item->data() ); 593 t.append( item->data() );
593 } 594 }
594 item = (MailListViewItem*)item->nextSibling(); 595 item = (MailListViewItem*)item->nextSibling();
595 } 596 }
596 } 597 }
597 // else 598 // else
598 // return; 599 // return;
599 if ( t.count() == 0 ) 600 if ( t.count() == 0 )
600 return; 601 return;
601 RecMailP mail = t.first(); 602 RecMailP mail = t.first();
602 AbstractMail*targetMail = 0; 603 AbstractMail*targetMail = 0;
603 QString targetFolder = ""; 604 QString targetFolder = "";
604 Selectstore sels; 605 Selectstore sels;
605 folderView->setupFolderselect(&sels); 606 folderView->setupFolderselect(&sels);
606 if (!sels.exec()) return; 607 if (!sels.exec()) return;
607 targetMail = sels.currentMail(); 608 targetMail = sels.currentMail();
608 targetFolder = sels.currentFolder(); 609 targetFolder = sels.currentFolder();
609 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || 610 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) ||
610 targetFolder.isEmpty()) 611 targetFolder.isEmpty())
611 { 612 {
612 return; 613 return;
613 } 614 }
614 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 615 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
615 { 616 {
616 QMessageBox::critical(0,i18n("Error creating new Folder"), 617 QMessageBox::critical(0,i18n("Error creating new Folder"),
617 i18n("<center>Error while creating<br>new folder - breaking.</center>")); 618 i18n("<center>Error while creating<br>new folder - breaking.</center>"));
618 return; 619 return;
619 } 620 }
620 sels.hide(); 621 sels.hide();
621 qApp->processEvents(); 622 qApp->processEvents();
622 //qDebug("hiding sels "); 623 //qDebug("hiding sels ");
623 mail->Wrapper()->mvcpMailList(t,targetFolder,targetMail,sels.moveMails()); 624 mail->Wrapper()->mvcpMailList(t,targetFolder,targetMail,sels.moveMails());
624 folderView->refreshCurrent(); 625 folderView->refreshCurrent();
625} 626}
626 627
627void OpieMail::reEditMail() 628void OpieMail::reEditMail()
628{ 629{
629 if (!mailView->currentItem()) return; 630 if (!mailView->currentItem()) return;
630 631
631 ComposeMail compose( settings, this, 0, true ); 632 ComposeMail compose( settings, this, 0, true );
632 compose.reEditMail(((MailListViewItem*)mailView->currentItem() )->data()); 633 compose.reEditMail(((MailListViewItem*)mailView->currentItem() )->data());
633 compose.slotAdjustColumns(); 634 compose.slotAdjustColumns();
634#ifndef DESKTOP_VERSION 635#ifndef DESKTOP_VERSION
635 compose.showMaximized(); 636 compose.showMaximized();
636#else 637#else
637 compose.resize(640,480); 638 compose.resize(640,480);
638#endif 639#endif
639 compose.exec(); 640 compose.exec();
640} 641}
diff --git a/korganizer/kowhatsnextview.cpp b/korganizer/kowhatsnextview.cpp
index 57623e6..d7ff9f2 100644
--- a/korganizer/kowhatsnextview.cpp
+++ b/korganizer/kowhatsnextview.cpp
@@ -1,763 +1,763 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
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 19
20#include <qlayout.h> 20#include <qlayout.h>
21#include <qtextbrowser.h> 21#include <qtextbrowser.h>
22#include <qtextcodec.h> 22#include <qtextcodec.h>
23#include <qfileinfo.h> 23#include <qfileinfo.h>
24#include <qlabel.h> 24#include <qlabel.h>
25 25
26#include <qapplication.h> 26#include <qapplication.h>
27#ifdef DESKTOP_VERSION 27#ifdef DESKTOP_VERSION
28#include <qpaintdevicemetrics.h> 28#include <qpaintdevicemetrics.h>
29#endif 29#endif
30#include <kglobal.h> 30#include <kglobal.h>
31#include <klocale.h> 31#include <klocale.h>
32#include <kdebug.h> 32#include <kdebug.h>
33#include <kiconloader.h> 33#include <kiconloader.h>
34#include <kmessagebox.h> 34#include <kmessagebox.h>
35 35
36#include <libkcal/calendar.h> 36#include <libkcal/calendar.h>
37 37
38#ifndef KORG_NOPRINTER 38#ifndef KORG_NOPRINTER
39#include "calprinter.h" 39#include "calprinter.h"
40#endif 40#endif
41#include "koglobals.h" 41#include "koglobals.h"
42#include "koprefs.h" 42#include "koprefs.h"
43#include "koeventviewerdialog.h" 43#include "koeventviewerdialog.h"
44#include <qstylesheet.h> 44#include <qstylesheet.h>
45#include "kowhatsnextview.h" 45#include "kowhatsnextview.h"
46using namespace KOrg; 46using namespace KOrg;
47 47
48void WhatsNextTextBrowser::setSource(const QString& n) 48void WhatsNextTextBrowser::setSource(const QString& n)
49{ 49{
50 50
51 if (n.startsWith("event:")) { 51 if (n.startsWith("event:")) {
52 emit showIncidence(n); 52 emit showIncidence(n);
53 return; 53 return;
54 } else if (n.startsWith("todo:")) { 54 } else if (n.startsWith("todo:")) {
55 emit showIncidence(n); 55 emit showIncidence(n);
56 return; 56 return;
57 } else { 57 } else {
58 QTextBrowser::setSource(n); 58 QTextBrowser::setSource(n);
59 } 59 }
60} 60}
61void WhatsNextTextBrowser::printMe() 61void WhatsNextTextBrowser::printMe()
62{ 62{
63#ifdef DESKTOP_VERSION 63#ifdef DESKTOP_VERSION
64 QPrinter printer; 64 QPrinter printer;
65 if (!printer.setup() ) 65 if (!printer.setup() )
66 return; 66 return;
67 QPainter p; 67 QPainter p;
68 p.begin ( &printer ); 68 p.begin ( &printer );
69 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); 69 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer );
70 float dx, dy; 70 float dx, dy;
71 int wid = (m.width() * 9)/10; 71 int wid = (m.width() * 9)/10;
72 dx = (float) wid/(float)contentsWidth (); 72 dx = (float) wid/(float)contentsWidth ();
73 dy = (float)(m.height()) / (float)contentsHeight (); 73 dy = (float)(m.height()) / (float)contentsHeight ();
74 float scale; 74 float scale;
75 // scale to fit the width or height of the paper 75 // scale to fit the width or height of the paper
76 if ( dx < dy ) 76 if ( dx < dy )
77 scale = dx; 77 scale = dx;
78 else 78 else
79 scale = dy; 79 scale = dy;
80 p.translate( m.width()/10,0 ); 80 p.translate( m.width()/10,0 );
81 p.scale( scale, scale ); 81 p.scale( scale, scale );
82 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); 82 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () );
83 p.end(); 83 p.end();
84#endif 84#endif
85} 85}
86 86
87KOWhatsNextView::KOWhatsNextView(Calendar *calendar, QWidget *parent, 87KOWhatsNextView::KOWhatsNextView(Calendar *calendar, QWidget *parent,
88 const char *name) 88 const char *name)
89 : KOrg::BaseView(calendar, parent, name) 89 : KOrg::BaseView(calendar, parent, name)
90{ 90{
91 // mDateLabel = 91 // mDateLabel =
92 // new QLabel(KGlobal::locale()->formatDate(QDate::currentDate()),this); 92 // new QLabel(KGlobal::locale()->formatDate(QDate::currentDate()),this);
93 // mDateLabel->setMargin(2); 93 // mDateLabel->setMargin(2);
94 // mDateLabel->setAlignment(AlignCenter); 94 // mDateLabel->setAlignment(AlignCenter);
95 setFont( KOPrefs::instance()->mWhatsNextFont ); 95 setFont( KOPrefs::instance()->mWhatsNextFont );
96 mView = new WhatsNextTextBrowser(this); 96 mView = new WhatsNextTextBrowser(this);
97 connect(mView,SIGNAL(showIncidence(const QString &)),SLOT(showIncidence(const QString &))); 97 connect(mView,SIGNAL(showIncidence(const QString &)),SLOT(showIncidence(const QString &)));
98 QStyleSheet* stsh = mView->styleSheet(); 98 QStyleSheet* stsh = mView->styleSheet();
99 QStyleSheetItem * style ; 99 QStyleSheetItem * style ;
100 style = stsh->item ("h2" ); 100 style = stsh->item ("h2" );
101 if ( style ) { 101 if ( style ) {
102 style->setMargin(QStyleSheetItem::MarginAll,0); 102 style->setMargin(QStyleSheetItem::MarginAll,0);
103 } 103 }
104 style = stsh->item ("h3" ); 104 style = stsh->item ("h3" );
105 if ( style ) { 105 if ( style ) {
106 style->setMargin(QStyleSheetItem::MarginAll,0); 106 style->setMargin(QStyleSheetItem::MarginAll,0);
107 } 107 }
108 mEventViewer = 0; 108 mEventViewer = 0;
109 109
110 QBoxLayout *topLayout = new QVBoxLayout(this); 110 QBoxLayout *topLayout = new QVBoxLayout(this);
111 // topLayout->addWidget(mDateLabel); 111 // topLayout->addWidget(mDateLabel);
112 topLayout->addWidget(mView); 112 topLayout->addWidget(mView);
113 mTimer = new QTimer( this ); 113 mTimer = new QTimer( this );
114 connect(mTimer,SIGNAL( timeout() ),this, SLOT(updateView())); 114 connect(mTimer,SIGNAL( timeout() ),this, SLOT(updateView()));
115 115
116 connect(mView->horizontalScrollBar (),SIGNAL( sliderReleased () ),this, SLOT(restartTimer())); 116 connect(mView->horizontalScrollBar (),SIGNAL( sliderReleased () ),this, SLOT(restartTimer()));
117 connect(mView->verticalScrollBar (),SIGNAL( sliderReleased () ),this, SLOT(restartTimer())); 117 connect(mView->verticalScrollBar (),SIGNAL( sliderReleased () ),this, SLOT(restartTimer()));
118} 118}
119 119
120KOWhatsNextView::~KOWhatsNextView() 120KOWhatsNextView::~KOWhatsNextView()
121{ 121{
122} 122}
123 123
124int KOWhatsNextView::maxDatesHint() 124int KOWhatsNextView::maxDatesHint()
125{ 125{
126 return 0; 126 return 0;
127} 127}
128 128
129int KOWhatsNextView::currentDateCount() 129int KOWhatsNextView::currentDateCount()
130{ 130{
131 return 0; 131 return 0;
132} 132}
133 133
134QPtrList<Incidence> KOWhatsNextView::selectedIncidences() 134QPtrList<Incidence> KOWhatsNextView::selectedIncidences()
135{ 135{
136 QPtrList<Incidence> eventList; 136 QPtrList<Incidence> eventList;
137 137
138 return eventList; 138 return eventList;
139} 139}
140 140
141void KOWhatsNextView::printMe() 141void KOWhatsNextView::printMe()
142{ 142{
143#ifdef DESKTOP_VERSION 143#ifdef DESKTOP_VERSION
144 mView->printMe(); 144 mView->printMe();
145#endif 145#endif
146} 146}
147void KOWhatsNextView::printPreview(CalPrinter *calPrinter, const QDate &fd, 147void KOWhatsNextView::printPreview(CalPrinter *calPrinter, const QDate &fd,
148 const QDate &td) 148 const QDate &td)
149{ 149{
150#ifndef KORG_NOPRINTER 150#ifndef KORG_NOPRINTER
151 calPrinter->preview(CalPrinter::Day, fd, td); 151 calPrinter->preview(CalPrinter::Day, fd, td);
152#endif 152#endif
153} 153}
154void KOWhatsNextView::updateConfig() 154void KOWhatsNextView::updateConfig()
155{ 155{
156 setFont( KOPrefs::instance()->mWhatsNextFont ); 156 setFont( KOPrefs::instance()->mWhatsNextFont );
157 updateView(); 157 updateView();
158 158
159} 159}
160void KOWhatsNextView::showEvent ( QShowEvent * e ) 160void KOWhatsNextView::showEvent ( QShowEvent * e )
161{ 161{
162 //qDebug("KOWhatsNextView::showEvent "); 162 //qDebug("KOWhatsNextView::showEvent ");
163 restartTimer(); 163 restartTimer();
164 QWidget::showEvent ( e ); 164 QWidget::showEvent ( e );
165} 165}
166void KOWhatsNextView::hideEvent ( QHideEvent * e) 166void KOWhatsNextView::hideEvent ( QHideEvent * e)
167{ 167{
168 //qDebug(" KOWhatsNextView::hideEvent"); 168 //qDebug(" KOWhatsNextView::hideEvent");
169 mTimer->stop(); 169 mTimer->stop();
170 QWidget::hideEvent ( e ); 170 QWidget::hideEvent ( e );
171} 171}
172void KOWhatsNextView::restartTimer() 172void KOWhatsNextView::restartTimer()
173{ 173{
174 //qDebug("KOWhatsNextView::restartTimer() "); 174 //qDebug("KOWhatsNextView::restartTimer() ");
175 mTimer->start( 300000 ); 175 mTimer->start( 300000 );
176 //mTimer->start( 5000 ); 176 //mTimer->start( 5000 );
177} 177}
178void KOWhatsNextView::updateView() 178void KOWhatsNextView::updateView()
179{ 179{
180 if ( mTimer->isActive() ) 180 if ( mTimer->isActive() )
181 restartTimer(); 181 restartTimer();
182 //qDebug("KOWhatsNextView::updateView() "); 182 //qDebug("KOWhatsNextView::updateView() ");
183 // mDateLabel->setText(KGlobal::locale()->formatDate(QDate::currentDate())); 183 // mDateLabel->setText(KGlobal::locale()->formatDate(QDate::currentDate()));
184 KIconLoader kil("korganizer"); 184 KIconLoader kil("korganizer");
185 QString ipath;// = new QString(); 185 QString ipath;// = new QString();
186 // kil.loadIcon("korganizer",KIcon::NoGroup,32,KIcon::DefaultState,&ipath); 186 // kil.loadIcon("korganizer",KIcon::NoGroup,32,KIcon::DefaultState,&ipath);
187 //<big><big><strong>" + date + "</strong></big></big>\n"; 187 //<big><big><strong>" + date + "</strong></big></big>\n";
188 mText = "<table width=\"100%\">\n"; 188 mText = "<table width=\"100%\">\n";
189 //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; 189 //mText += "<tr bgcolor=\"#3679AD\"><td><h2>";
190#ifdef DESKTOP_VERSION 190#ifdef DESKTOP_VERSION
191 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h1>"; 191 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h1>";
192#else 192#else
193 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h2>"; 193 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h2>";
194#endif 194#endif
195 // mText += "<img src=\""; 195 // mText += "<img src=\"";
196 // mText += ipath; 196 // mText += ipath;
197 // mText += "\">"; 197 // mText += "\">";
198 mEventDate = QDate::currentDate(); 198 mEventDate = QDate::currentDate();
199#ifdef DESKTOP_VERSION 199#ifdef DESKTOP_VERSION
200 mText += "<font color=\"#FFFFFF\"> <em>" + KGlobal::locale()->formatDate( mEventDate , false )+"</em></font></h1>"; 200 mText += "<font color=\"#FFFFFF\"> <em>" + KGlobal::locale()->formatDate( mEventDate , false )+"</em></font></h1>";
201#else 201#else
202 mText += "<font color=\"#FFFFFF\"> <em>" + KGlobal::locale()->formatDate( mEventDate , false )+"</em></font></h2>"; 202 mText += "<font color=\"#FFFFFF\"> <em>" + KGlobal::locale()->formatDate( mEventDate , false )+"</em></font></h2>";
203#endif 203#endif
204 mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>"; 204 mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>";
205 int iii; 205 int iii;
206 mTodos.clear(); 206 mTodos.clear();
207 QPtrList<Event> events; 207 QPtrList<Event> events;
208 QPtrList<Todo> todos = calendar()->todos(); 208 QPtrList<Todo> todos = calendar()->todos();
209 Todo * todo; 209 Todo * todo;
210 //mText += "<h2>" + i18n("Events: ") + "</h2>\n"; 210 //mText += "<h2>" + i18n("Events: ") + "</h2>\n";
211 int daysToShow = KOPrefs::instance()->mWhatsNextDays ; 211 int daysToShow = KOPrefs::instance()->mWhatsNextDays ;
212 bool itemAdded = false; 212 bool itemAdded = false;
213 for ( iii = 0; iii < daysToShow; ++iii ) { 213 for ( iii = 0; iii < daysToShow; ++iii ) {
214 QString date; 214 QString date;
215 itemAdded = false; 215 itemAdded = false;
216 events = calendar()->events( mEventDate, true ); 216 events = calendar()->events( mEventDate, true );
217 217
218 if ( iii == 0 ) { // today !!! 218 if ( iii == 0 ) { // today !!!
219 todo = todos.first(); 219 todo = todos.first();
220 while(todo) { 220 while(todo) {
221 if ( !todo->isCompleted() &&todo->hasDueDate() && todo->dtDue().date() < mEventDate ) { 221 if ( !todo->isCompleted() &&todo->hasDueDate() && todo->dtDue().date() < mEventDate ) {
222 if ( ! itemAdded ) { 222 if ( ! itemAdded ) {
223 appendDay ( iii, mEventDate ); 223 appendDay ( iii, mEventDate );
224 //itemAdded = true; 224 //itemAdded = true;
225 225
226 } //bool reply=false, bool notRed = true, bool appendTable = false); 226 } //bool reply=false, bool notRed = true, bool appendTable = false);
227 appendEvent(todo, false, false, !itemAdded ); 227 appendEvent(todo, false, false, !itemAdded );
228 itemAdded = true; 228 itemAdded = true;
229 } 229 }
230 todo = todos.next(); 230 todo = todos.next();
231 } 231 }
232 } 232 }
233 233
234 234
235 if (events.count() > 0) { 235 if (events.count() > 0) {
236 // mText += "<p></p>"; 236 // mText += "<p></p>";
237 // kil.loadIcon("month",KIcon::NoGroup,22,KIcon::DefaultState,&ipath); 237 // kil.loadIcon("month",KIcon::NoGroup,22,KIcon::DefaultState,&ipath);
238 // mText += "<h2>"; 238 // mText += "<h2>";
239 //mText += " <img src=\""; 239 //mText += " <img src=\"";
240 //mText += ipath; 240 //mText += ipath;
241 //mText += "\">"; 241 //mText += "\">";
242 if ( ! itemAdded ) { 242 if ( ! itemAdded ) {
243 appendDay ( iii, mEventDate ); 243 appendDay ( iii, mEventDate );
244 244
245 } 245 }
246 // for first day (iii == 0) 246 // for first day (iii == 0)
247 // we may have syncevents, or events in the past, which maybe should not be diaplayed 247 // we may have syncevents, or events in the past, which maybe should not be diaplayed
248 // for that reason we cannot append <table> in appendDay () for iii == 0 248 // for that reason we cannot append <table> in appendDay () for iii == 0
249 // we must append it in the first successful call of appendEvent() 249 // we must append it in the first successful call of appendEvent()
250 Event *ev = events.first(); 250 Event *ev = events.first();
251 while(ev) { 251 while(ev) {
252 //qDebug("+++++event append %s", ev->summary().latin1()); 252 //qDebug("+++++event append %s", ev->summary().latin1());
253 if ( true /*!ev->recurrence()->doesRecur() || ev->recursOn( mEventDate)*/) { 253 if ( true /*!ev->recurrence()->doesRecur() || ev->recursOn( mEventDate)*/) {
254 if ( appendEvent(ev, false , iii!= 0,!itemAdded ) ) 254 if ( appendEvent(ev, false , iii!= 0,!itemAdded ) )
255 itemAdded = true; 255 itemAdded = true;
256 } 256 }
257 ev = events.next(); 257 ev = events.next();
258 } 258 }
259 259
260 //mText += "</table>\n"; 260 //mText += "</table>\n";
261 } 261 }
262 262
263 todo = todos.first(); 263 todo = todos.first();
264 while(todo) { 264 while(todo) {
265 if ( !todo->isCompleted() &&todo->hasDueDate() && todo->dtDue().date() == mEventDate ) { 265 if ( !todo->isCompleted() &&todo->hasDueDate() && todo->dtDue().date() == mEventDate ) {
266 if ( ! itemAdded ) { 266 if ( ! itemAdded ) {
267 appendDay ( iii, mEventDate ); 267 appendDay ( iii, mEventDate );
268 //itemAdded = true; 268 //itemAdded = true;
269 } 269 }
270 appendEvent(todo, false , iii!= 0,!itemAdded); 270 appendEvent(todo, false , iii!= 0,!itemAdded);
271 itemAdded = true; 271 itemAdded = true;
272 } 272 }
273 todo = todos.next(); 273 todo = todos.next();
274 } 274 }
275 if ( !itemAdded && iii == 0 ) { 275 if ( !itemAdded && iii == 0 ) {
276 // appendDay ( iii, mEventDate ); 276 // appendDay ( iii, mEventDate );
277 //mText += "<table>"; 277 //mText += "<table>";
278 // mText += "<b><font color=\"#000080\"><em>"+i18n("No event, nothing to do.") +"</em></font></b>\n"; 278 // mText += "<b><font color=\"#000080\"><em>"+i18n("No event, nothing to do.") +"</em></font></b>\n";
279 mText += "<h3 align=\"center\"><font color=\"#008000\"><em>"+i18n("No event, nothing to do.") +"</em></font></h3>\n"; 279 mText += "<h3 align=\"center\"><font color=\"#008000\"><em>"+i18n("No event, nothing to do.") +"</em></font></h3>\n";
280 //mText +="</table>"; 280 //mText +="</table>";
281 } 281 }
282 if ( itemAdded ) 282 if ( itemAdded )
283 mText += "</table>\n"; 283 mText += "</table>\n";
284 mEventDate = mEventDate.addDays( 1 ); 284 mEventDate = mEventDate.addDays( 1 );
285 } 285 }
286 286
287 int topmostPrios = KOPrefs::instance()->mWhatsNextPrios; 287 int topmostPrios = KOPrefs::instance()->mWhatsNextPrios;
288 if (todos.count() > 0 && topmostPrios > 0 ) { 288 if (todos.count() > 0 && topmostPrios > 0 ) {
289 // kil.loadIcon("todo",KIcon::NoGroup,22,KIcon::DefaultState,&ipath); 289 // kil.loadIcon("todo",KIcon::NoGroup,22,KIcon::DefaultState,&ipath);
290 // mText += "<h2>"; 290 // mText += "<h2>";
291 //<img src=\""; 291 //<img src=\"";
292 // mText += ipath; 292 // mText += ipath;
293 // mText += "\">"; 293 // mText += "\">";
294 // mText += i18n("Overdue To-Do:") + "</h2>\n"; 294 // mText += i18n("Overdue To-Do:") + "</h2>\n";
295 295
296 //mText += "<ul>\n"; 296 //mText += "<ul>\n";
297 bool gotone = false; 297 bool gotone = false;
298 int priority = 1; 298 int priority = 1;
299 int priosFound = 0; 299 int priosFound = 0;
300#ifdef DESKTOP_VERSION 300#ifdef DESKTOP_VERSION
301 mText +="<p></p>"; 301 mText +="<p></p>";
302#endif 302#endif
303 303
304 mText +="<h2><em><font color=\"#000080\">" + i18n("Incomplete Todo:") + "</font></em></h2>\n"; 304 mText +="<h2><em><font color=\"#000080\">" + i18n("Incomplete Todo:") + "</font></em></h2>\n";
305 mText += "<ul>\n"; 305 mText += "<ul>\n";
306 while (!gotone && priority<6) { 306 while (!gotone && priority<6) {
307 todo = todos.first(); 307 todo = todos.first();
308 while(todo) { 308 while(todo) {
309 if (!todo->isCompleted() && (todo->priority() == priority) ) { 309 if (!todo->isCompleted() && (todo->priority() == priority) ) {
310 if ( appendTodo(todo) ) 310 if ( appendTodo(todo) )
311 gotone = true; 311 gotone = true;
312 } 312 }
313 todo = todos.next(); 313 todo = todos.next();
314 } 314 }
315 if ( gotone ) { 315 if ( gotone ) {
316 gotone = false; 316 gotone = false;
317 ++priosFound; 317 ++priosFound;
318 if ( priosFound == topmostPrios ) 318 if ( priosFound == topmostPrios )
319 break; 319 break;
320 } 320 }
321 priority++; 321 priority++;
322 // kdDebug() << "adding the todos..." << endl; 322 // kdDebug() << "adding the todos..." << endl;
323 } 323 }
324 mText += "</ul>\n"; 324 mText += "</ul>\n";
325 } 325 }
326 326
327 int replys = 0; 327 int replys = 0;
328 events = calendar()->events(QDate::currentDate(), QDate(2975,12,6)); 328 events = calendar()->events(QDate::currentDate(), QDate(2975,12,6));
329 if (events.count() > 0) { 329 if (events.count() > 0) {
330 Event *ev = events.first(); 330 Event *ev = events.first();
331 while(ev) { 331 while(ev) {
332 Attendee *me = ev->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email()); 332 Attendee *me = ev->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email());
333 if (me!=0) { 333 if (me!=0) {
334 if (me->status()==Attendee::NeedsAction && me->RSVP()) { 334 if (me->status()==Attendee::NeedsAction && me->RSVP()) {
335 if (replys == 0) { 335 if (replys == 0) {
336 mText += "<p></p>"; 336 mText += "<p></p>";
337 // kil.loadIcon("reply",KIcon::NoGroup,22,KIcon::DefaultState,&ipath); 337 // kil.loadIcon("reply",KIcon::NoGroup,22,KIcon::DefaultState,&ipath);
338 //mText += "<h2>"; 338 //mText += "<h2>";
339 //<img src=\""; 339 //<img src=\"";
340 // mText += ipath; 340 // mText += ipath;
341 // mText += "\">"; 341 // mText += "\">";
342 //mText += i18n("Events and To-Dos that need a reply:") + "</h2>\n"; 342 //mText += i18n("Events and To-Dos that need a reply:") + "</h2>\n";
343 mText +="<h2><em><font color=\"#000080\">" + i18n("Events and To-Dos that need a reply:") + "</font></em></h2>\n"; 343 mText +="<h2><em><font color=\"#000080\">" + i18n("Events and To-Dos that need a reply:") + "</font></em></h2>\n";
344 mText += "<table>\n"; 344 mText += "<table>\n";
345 } 345 }
346 replys++; 346 replys++;
347 appendEvent(ev,true); 347 appendEvent(ev,true);
348 } 348 }
349 } 349 }
350 ev = events.next(); 350 ev = events.next();
351 } 351 }
352 } 352 }
353 todos = calendar()->todos(); 353 todos = calendar()->todos();
354 if (todos.count() > 0) { 354 if (todos.count() > 0) {
355 Todo *to = todos.first(); 355 Todo *to = todos.first();
356 while(to) { 356 while(to) {
357 if ( !to->isCompleted() ){ 357 if ( !to->isCompleted() ){
358 Attendee *me = to->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email()); 358 Attendee *me = to->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email());
359 if (me!=0) { 359 if (me!=0) {
360 if (me->status()==Attendee::NeedsAction && me->RSVP()) { 360 if (me->status()==Attendee::NeedsAction && me->RSVP()) {
361 if (replys == 0) { 361 if (replys == 0) {
362 mText +="<h2><em><font color=\"#000080\">" + i18n("Events and To-Dos that need a reply:") + "</font></em></h2>\n"; 362 mText +="<h2><em><font color=\"#000080\">" + i18n("Events and To-Dos that need a reply:") + "</font></em></h2>\n";
363 mText += "<table>\n"; 363 mText += "<table>\n";
364 } 364 }
365 replys++; 365 replys++;
366 appendEvent(to, true); 366 appendEvent(to, true);
367 } 367 }
368 } 368 }
369 } 369 }
370 to = todos.next(); 370 to = todos.next();
371 } 371 }
372 } 372 }
373 if (replys > 0 ) mText += "</table>\n"; 373 if (replys > 0 ) mText += "</table>\n";
374 374
375 375
376 mText += "</td></tr>\n</table>\n"; 376 mText += "</td></tr>\n</table>\n";
377 377
378 mView->setText(mText); 378 mView->setText(mText);
379 mView->setFocus(); 379 mView->setFocus();
380 380
381 // QPixmap bPix = SmallIcon( "back" ); 381 // QPixmap bPix = SmallIcon( "back" );
382 // qDebug("xxxxxxxxxxxxxxxxxxxxx "); 382 // qDebug("xxxxxxxxxxxxxxxxxxxxx ");
383 // QWidget* test = new QWidget(); 383 // QWidget* test = new QWidget();
384 // test->setBackgroundMode(FixedPixmap ); 384 // test->setBackgroundMode(FixedPixmap );
385 // test->setBackgroundPixmap ( bPix ); 385 // test->setBackgroundPixmap ( bPix );
386 // test->resize( 300, 400 ); 386 // test->resize( 300, 400 );
387 // test->show(); 387 // test->show();
388 // mView->setBackgroundMode(FixedPixmap ); 388 // mView->setBackgroundMode(FixedPixmap );
389 // mView->setBackgroundPixmap ( bPix ); 389 // mView->setBackgroundPixmap ( bPix );
390 // qDebug("%s ",mText.latin1()); 390 // qDebug("%s ",mText.latin1());
391} 391}
392 392
393void KOWhatsNextView::appendDay( int i, QDate eventDate ) 393void KOWhatsNextView::appendDay( int i, QDate eventDate )
394{ 394{
395 QString date; 395 QString date;
396 QString day = KGlobal::locale()->formatDate( eventDate , KOPrefs::instance()->mShortDateInViewer); 396 QString day = KGlobal::locale()->formatDate( eventDate , KOPrefs::instance()->mShortDateInViewer);
397 if ( ! KOPrefs::instance()->mShortDateInViewer && QApplication::desktop()->width() < 320 ) { 397 if ( ! KOPrefs::instance()->mShortDateInViewer && QApplication::desktop()->width() < 320 ) {
398 if ( i == 0 ) { 398 if ( i == 0 ) {
399 //mText += "<table>\n"; 399 //mText += "<table>\n";
400 return;//date = "<em><font color=\"#008000\"><em>" + day+"</font></em>"; 400 return;//date = "<em><font color=\"#008000\"><em>" + day+"</font></em>";
401 } 401 }
402 else if ( i == 1 ) 402 else if ( i == 1 )
403 date = "<em><font color=\"#000080\">" + day + "</font></em>" ; 403 date = "<em><font color=\"#000080\">" + day + "</font></em>" ;
404 else date = "<em><font color=\"#000080\">" + day + "</font></em>"; 404 else date = "<em><font color=\"#000080\">" + day + "</font></em>";
405 mText += "<h2>" + date + "</h2>\n"; 405 mText += "<h2>" + date + "</h2>\n";
406 //mText += "<big><big><strong>" + date + "</strong></big></big>\n"; 406 //mText += "<big><big><strong>" + date + "</strong></big></big>\n";
407 mText += "<table>\n"; 407 mText += "<table>\n";
408 408
409 409
410 410
411 } else { 411 } else {
412 if ( i == 0 ) { 412 if ( i == 0 ) {
413 //mText += "<table>\n"; 413 //mText += "<table>\n";
414 return;// date = "<font color=\"#008000\"><em>" +i18n("Today: ") +"</em>" + day+"</font>"; 414 return;// date = "<font color=\"#008000\"><em>" +i18n("Today: ") +"</em>" + day+"</font>";
415 } 415 }
416 416
417#ifdef DESKTOP_VERSION 417#ifdef DESKTOP_VERSION
418 else if ( i == 1 ) { 418 else if ( i == 1 ) {
419 date = "<h2><em><font color=\"#000080\">" + i18n("Tomorrow: ") + day +"</font></em></h2>" ; 419 date = "<h2><em><font color=\"#000080\">" + i18n("Tomorrow: ") + day +"</font></em></h2>" ;
420 } 420 }
421 else date = "<h2><em><font color=\"#000080\">" + i18n("In %1 days: ").arg( i ) +day + "</font></em></h2>"; 421 else date = "<h2><em><font color=\"#000080\">" + i18n("In %1 days: ").arg( i ) +day + "</font></em></h2>";
422#else 422#else
423 else if ( i == 1 ) { 423 else if ( i == 1 ) {
424 date = "<em><font color=\"#000080\">" + i18n("Tomorrow: ") + day +"</font></em>" ; 424 date = "<em><font color=\"#000080\">" + i18n("Tomorrow: ") + day +"</font></em>" ;
425 } 425 }
426 else date = "<em><font color=\"#000080\">" + i18n("In %1 days: ").arg( i ) +day + "</font></em>"; 426 else date = "<em><font color=\"#000080\">" + i18n("In %1 days: ").arg( i ) +day + "</font></em>";
427 427
428#endif 428#endif
429 mText += "<h2>" + date + "</h2>\n"; 429 mText += "<h2>" + date + "</h2>\n";
430 //mText += "<big><big><strong>" + date + "</strong></big></big>\n"; 430 //mText += "<big><big><strong>" + date + "</strong></big></big>\n";
431 mText += "<table>\n"; 431 mText += "<table>\n";
432 } 432 }
433} 433}
434 434
435 435
436void KOWhatsNextView::showDates(const QDate &, const QDate &) 436void KOWhatsNextView::showDates(const QDate &, const QDate &)
437{ 437{
438 updateView(); 438 updateView();
439} 439}
440 440
441void KOWhatsNextView::showEvents(QPtrList<Event>) 441void KOWhatsNextView::showEvents(QPtrList<Event>)
442{ 442{
443} 443}
444 444
445void KOWhatsNextView::changeEventDisplay(Event *, int action) 445void KOWhatsNextView::changeEventDisplay(Event *, int action)
446{ 446{
447 switch(action) { 447 switch(action) {
448 case KOGlobals::EVENTADDED: 448 case KOGlobals::EVENTADDED:
449 updateView(); 449 updateView();
450 break; 450 break;
451 case KOGlobals::EVENTEDITED: 451 case KOGlobals::EVENTEDITED:
452 updateView(); 452 updateView();
453 break; 453 break;
454 case KOGlobals::EVENTDELETED: 454 case KOGlobals::EVENTDELETED:
455 updateView(); 455 updateView();
456 break; 456 break;
457 default: 457 default:
458 updateView(); 458 updateView();
459 kdDebug() << "KOWhatsNextView::changeEventDisplay(): Illegal action " << action << endl; 459 kdDebug() << "KOWhatsNextView::changeEventDisplay(): Illegal action " << action << endl;
460 } 460 }
461} 461}
462 462
463bool KOWhatsNextView::appendEvent(Incidence *ev, bool reply, bool notRed, bool appendTable ) 463bool KOWhatsNextView::appendEvent(Incidence *ev, bool reply, bool notRed, bool appendTable )
464{ 464{
465 if ( !KOPrefs::instance()->mShowSyncEvents && ev->uid().left(15) == QString("last-syncEvent-") ) 465 if ( !KOPrefs::instance()->mShowSyncEvents && ev->uid().left(15) == QString("last-syncEvent-") )
466 return false; 466 return false;
467 QDateTime cdt = QDateTime::currentDateTime(); 467 QDateTime cdt = QDateTime::currentDateTime();
468 QDateTime noc; 468 QDateTime noc;
469 QString tempText; 469 QString tempText;
470 if ( appendTable && !notRed ) { 470 if ( appendTable && !notRed ) {
471 tempText = "<table>"; 471 tempText = "<table>";
472 } 472 }
473 bool ok = true; 473 bool ok = true;
474 if ( reply ) { 474 if ( reply ) {
475 noc = ev->getNextOccurence( cdt, &ok ); 475 noc = ev->getNextOccurence( cdt, &ok );
476 if (! ok && ev->type() == "Event") 476 if (! ok && ev->type() == "Event")
477 return false; 477 return false;
478 } 478 }
479 bool bDay = false; 479 bool bDay = false;
480 if ( ev->categories().contains( i18n("Birthday") ) || ev->categories().contains( i18n("Anniversary") ) ) 480 if ( ev->categories().contains( i18n("Birthday") ) || ev->categories().contains( i18n("Anniversary") ) )
481 bDay = true; 481 bDay = true;
482 tempText += "<tr><td><b>"; 482 tempText += "<tr><td><b>";
483 if (ev->type()=="Event") { 483 if (ev->type()=="Event") {
484 if (reply) { 484 if (reply) {
485 if (!ev->doesFloat()) 485 if (!ev->doesFloat())
486 tempText += KGlobal::locale()->formatDateTime( noc , KOPrefs::instance()->mShortDateInViewer) +": "; 486 tempText += KGlobal::locale()->formatDateTime( noc , KOPrefs::instance()->mShortDateInViewer) +": ";
487 else 487 else
488 tempText += KGlobal::locale()->formatDate( noc.date() , KOPrefs::instance()->mShortDateInViewer) +": "; 488 tempText += KGlobal::locale()->formatDate( noc.date() , KOPrefs::instance()->mShortDateInViewer) +": ";
489 489
490 } else { 490 } else {
491 if (!ev->doesFloat()) { 491 if (!ev->doesFloat()) {
492 Event *event = static_cast<Event *>(ev); 492 Event *event = static_cast<Event *>(ev);
493 QDateTime st,end; 493 QDateTime st,end;
494 if ( event->recurrence()->doesRecur() ) { 494 if ( event->recurrence()->doesRecur() ) {
495 QDate recDate= mEventDate; 495 QDate recDate= mEventDate;
496 int days = event->dtStart().date().daysTo (event->dtEnd().date() ); 496 int days = event->dtStart().date().daysTo (event->dtEnd().date() );
497 while ( ! event->recursOn( recDate ) ) { 497 while ( ! event->recursOn( recDate ) ) {
498 recDate = recDate.addDays( -1 ); 498 recDate = recDate.addDays( -1 );
499 499
500 } 500 }
501 st = QDateTime ( recDate, event->dtStart().time() ); 501 st = QDateTime ( recDate, event->dtStart().time() );
502 end = QDateTime ( recDate.addDays( days ), event->dtEnd().time() ); 502 end = QDateTime ( recDate.addDays( days ), event->dtEnd().time() );
503 } 503 }
504 else { 504 else {
505 st = event->dtStart(); 505 st = event->dtStart();
506 end = event->dtEnd(); 506 end = event->dtEnd();
507 } 507 }
508 508
509 509
510 QString dateText; 510 QString dateText;
511 // qDebug("%s %s %s %s ", mEventDate.toString().latin1(),event->summary().latin1(), st .toString().latin1(),end.toString().latin1() ); 511 // qDebug("%s %s %s %s ", mEventDate.toString().latin1(),event->summary().latin1(), st .toString().latin1(),end.toString().latin1() );
512 if ( st.date() < mEventDate ) 512 if ( st.date() < mEventDate )
513 dateText = "++:++-"; 513 dateText = "++:++-";
514 else 514 else
515 dateText = event->dtStartTimeStr() + "-"; 515 dateText = event->dtStartTimeStr() + "-";
516 if ( end.date() > mEventDate ) 516 if ( end.date() > mEventDate )
517 dateText += "++:++"; 517 dateText += "++:++";
518 else 518 else
519 dateText += event->dtEndTimeStr(); 519 dateText += event->dtEndTimeStr();
520 if ( notRed ) 520 if ( notRed )
521 tempText += dateText; 521 tempText += dateText;
522 else { 522 else {
523 if ( end < cdt ) { 523 if ( end < cdt ) {
524 if ( !KOPrefs::instance()->mWNViewShowsPast ) 524 if ( !KOPrefs::instance()->mWNViewShowsPast )
525 return false; 525 return false;
526 tempText += "<font color=\"#F00000\">" + dateText + "</font>"; 526 tempText += "<font color=\"#F00000\">" + dateText + "</font>";
527 } 527 }
528 else if ( st < cdt ) 528 else if ( st < cdt )
529 tempText += "<font color=\"#008000\">" + dateText + "</font>"; 529 tempText += "<font color=\"#008000\">" + dateText + "</font>";
530 else 530 else
531 tempText += dateText; 531 tempText += dateText;
532 532
533 } 533 }
534 534
535 } else { 535 } else {
536 if ( bDay ) { 536 if ( bDay ) {
537 537
538 if ( ev->categories().contains( i18n("Birthday") )) 538 if ( ev->categories().contains( i18n("Birthday") ))
539 tempText += "<font color=\"#F00000\">" + i18n("Birthday") +":</font>"; 539 tempText += "<font color=\"#F00000\">" + i18n("Birthday") +":</font>";
540 else 540 else
541 tempText += "<font color=\"#F00000\">" + i18n("Anniversary")+":</font>"; 541 tempText += "<font color=\"#F00000\">" + i18n("Anniversary")+":</font>";
542 } else { 542 } else {
543 tempText += i18n("Allday:"); 543 tempText += i18n("Allday:");
544 } 544 }
545 545
546 } 546 }
547 } 547 }
548 } else { 548 } else {
549 mTodos.append( ev ); 549 mTodos.append( ev );
550 tempText += i18n("ToDo:"); 550 tempText += i18n("ToDo:");
551 if (reply) { 551 if (reply) {
552 tempText += " "; 552 tempText += " ";
553 if ( noc != cdt ) { 553 if ( noc != cdt ) {
554 tempText += KGlobal::locale()->formatDate( noc.date() , KOPrefs::instance()->mShortDateInViewer) +": "; 554 tempText += KGlobal::locale()->formatDate( noc.date() , KOPrefs::instance()->mShortDateInViewer) +": ";
555 } 555 }
556 } else { 556 } else {
557 if ( ((Todo*)ev)->dtDue().date() < QDate::currentDate() ) { 557 if ( ((Todo*)ev)->dtDue().date() < QDate::currentDate() ) {
558 // tempText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>"; 558 // tempText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>";
559 QString dfs = KGlobal::locale()->dateFormatShort(); 559 QString dfs = KGlobal::locale()->dateFormatShort();
560 KGlobal::locale()->setDateFormatShort("%d.%b"); 560 KGlobal::locale()->setDateFormatShort("%d.%b");
561 tempText +="<font color=\"#F00000\">" + KGlobal::locale()->formatDate(((Todo*)ev)->dtDue().date(), true, KLocale::Userdefined) + "</font>"; 561 tempText +="<font color=\"#F00000\">" + KGlobal::locale()->formatDate(((Todo*)ev)->dtDue().date(), true, KLocale::Userdefined) + "</font>";
562 KGlobal::locale()->setDateFormatShort(dfs); 562 KGlobal::locale()->setDateFormatShort(dfs);
563 } else { 563 } else {
564 if (!ev->doesFloat() ) 564 if (!ev->doesFloat() )
565 if( ( (Todo*)ev)->dtDue() < cdt ) { 565 if( ( (Todo*)ev)->dtDue() < cdt ) {
566 tempText +="<font color=\"#F00000\">" + ((Todo*)ev)->dtDueTimeStr() + "</font>"; 566 tempText +="<font color=\"#F00000\">" + ((Todo*)ev)->dtDueTimeStr() + "</font>";
567 567
568 568
569 } else 569 } else
570 tempText +=((Todo*)ev)->dtDueTimeStr(); 570 tempText +=((Todo*)ev)->dtDueTimeStr();
571 mTodos.append( ev ); 571 mTodos.append( ev );
572 } 572 }
573 } 573 }
574 } 574 }
575 tempText += "</b></td><td>"; 575 tempText += "</b></td><td>";
576 bool needClose = false; 576 bool needClose = false;
577 if ( ev->cancelled() ) { 577 if ( ev->cancelled() ) {
578 tempText += "<font color=\"#F00000\">[c"; 578 tempText += "<font color=\"#F00000\">[c";
579 needClose =true; 579 needClose =true;
580 580
581 } 581 }
582 if ( ev->isAlarmEnabled() ) { 582 if ( ev->isAlarmEnabled() ) {
583 if ( !needClose) 583 if ( !needClose)
584 tempText +="["; 584 tempText +="[";
585 tempText += "a"; 585 tempText += "a";
586 needClose =true; 586 needClose =true;
587 587
588 } 588 }
589 if ( ev->description().length() > 0 ) { 589 if ( ev->description().length() > 0 ) {
590 if ( !needClose) 590 if ( !needClose)
591 tempText +="["; 591 tempText +="[";
592 tempText += "i"; 592 tempText += "i";
593 needClose =true; 593 needClose =true;
594 } 594 }
595 if ( ev->recurrence()->doesRecur() ) { 595 if ( ev->recurrence()->doesRecur() ) {
596 if ( !needClose) 596 if ( !needClose)
597 tempText +="["; 597 tempText +="[";
598 tempText += "r"; 598 tempText += "r";
599 needClose =true; 599 needClose =true;
600 } 600 }
601 if ( needClose ) { 601 if ( needClose ) {
602 tempText += "] "; 602 tempText += "] ";
603 } 603 }
604 if ( ev->cancelled() ) 604 if ( ev->cancelled() )
605 tempText += "</font>"; 605 tempText += "</font>";
606 tempText += "<a "; 606 tempText += "<a ";
607 if (ev->type()=="Event") tempText += "href=\"event:"; 607 if (ev->type()=="Event") tempText += "href=\"event:";
608 if (ev->type()=="Todo") tempText += "href=\"todo:"; 608 if (ev->type()=="Todo") tempText += "href=\"todo:";
609 tempText += ev->uid() + "\">"; 609 tempText += ev->uid() + "\">";
610 if ( ev->summary().length() > 0 ) 610 if ( ev->summary().length() > 0 )
611 tempText += ev->summary(); 611 tempText += ev->summary();
612 else 612 else
613 tempText += i18n("-no summary-"); 613 tempText += i18n("-no summary-");
614 if ( bDay ) { 614 if ( bDay ) {
615 noc = ev->getNextOccurence( cdt, &ok ); 615 noc = ev->getNextOccurence( cdt.addDays(-1), &ok );
616 if ( ok ) { 616 if ( ok ) {
617 int years = noc.date().year() - ev->dtStart().date().year(); 617 int years = noc.date().year() - ev->dtStart().date().year();
618 tempText += i18n(" (%1 y.)"). arg( years ); 618 tempText += i18n(" (%1 y.)"). arg( years );
619 } 619 }
620 } 620 }
621 621
622 tempText += "</a>"; 622 tempText += "</a>";
623 if ( KOPrefs::instance()->mWNViewShowLocation ) 623 if ( KOPrefs::instance()->mWNViewShowLocation )
624 if ( !ev->location().isEmpty() ) 624 if ( !ev->location().isEmpty() )
625 tempText += " ("+ev->location() +")"; 625 tempText += " ("+ev->location() +")";
626 if ( ev->relatedTo() && KOPrefs::instance()->mWNViewShowsParents) 626 if ( ev->relatedTo() && KOPrefs::instance()->mWNViewShowsParents)
627 tempText += " ["+ev->relatedTo()->summary() +"]"; 627 tempText += " ["+ev->relatedTo()->summary() +"]";
628 tempText += "</td></tr>\n"; 628 tempText += "</td></tr>\n";
629 mText += tempText; 629 mText += tempText;
630 return true; 630 return true;
631} 631}
632 632
633bool KOWhatsNextView::appendTodo(Incidence *ev, QString ind , bool isSub ) 633bool KOWhatsNextView::appendTodo(Incidence *ev, QString ind , bool isSub )
634{ 634{
635 if ( mTodos.find( ev ) != mTodos.end() ) return false; 635 if ( mTodos.find( ev ) != mTodos.end() ) return false;
636 636
637 mTodos.append( ev ); 637 mTodos.append( ev );
638 if ( !isSub ) 638 if ( !isSub )
639 mText += "<p>"; 639 mText += "<p>";
640 else 640 else
641 mText += "<li>"; 641 mText += "<li>";
642 mText += "[" +QString::number(ev->priority()) + "/" + QString::number(((Todo*)ev)->percentComplete())+"%] "; 642 mText += "[" +QString::number(ev->priority()) + "/" + QString::number(((Todo*)ev)->percentComplete())+"%] ";
643 643
644 644
645 mText += ind; 645 mText += ind;
646 bool needClose = false; 646 bool needClose = false;
647 if ( ev->cancelled() ) { 647 if ( ev->cancelled() ) {
648 mText += "<font color=\"#F00000\">[c"; 648 mText += "<font color=\"#F00000\">[c";
649 needClose =true; 649 needClose =true;
650 650
651 } 651 }
652 if ( ev->isAlarmEnabled() ) { 652 if ( ev->isAlarmEnabled() ) {
653 if ( !needClose) 653 if ( !needClose)
654 mText +="["; 654 mText +="[";
655 mText += "a"; 655 mText += "a";
656 needClose =true; 656 needClose =true;
657 657
658 } 658 }
659 659
660 if ( ev->description().length() > 0 ) { 660 if ( ev->description().length() > 0 ) {
661 if ( !needClose) 661 if ( !needClose)
662 mText +="["; 662 mText +="[";
663 mText += "i"; 663 mText += "i";
664 needClose =true; 664 needClose =true;
665 } 665 }
666 // if ( ev->recurrence()->doesRecur() ) { 666 // if ( ev->recurrence()->doesRecur() ) {
667 // if ( !needClose) 667 // if ( !needClose)
668 // mText +="("; 668 // mText +="(";
669 // mText += "r"; 669 // mText += "r";
670 // needClose =true; 670 // needClose =true;
671 // } 671 // }
672 if ( needClose ) 672 if ( needClose )
673 mText += "] "; 673 mText += "] ";
674 if ( ev->cancelled() ) 674 if ( ev->cancelled() )
675 mText += "</font>"; 675 mText += "</font>";
676 mText += "<a href=\"todo:" + ev->uid() + "\">"; 676 mText += "<a href=\"todo:" + ev->uid() + "\">";
677 if ( ev->summary().length() > 0 ) 677 if ( ev->summary().length() > 0 )
678 mText += ev->summary(); 678 mText += ev->summary();
679 else 679 else
680 mText += i18n("-no summary-"); 680 mText += i18n("-no summary-");
681 mText += "</a>"; 681 mText += "</a>";
682 if ( ((Todo*)ev)->hasDueDate () ) { 682 if ( ((Todo*)ev)->hasDueDate () ) {
683 QString year = ""; 683 QString year = "";
684 int ye = ((Todo*)ev)->dtDue().date().year(); 684 int ye = ((Todo*)ev)->dtDue().date().year();
685 if ( QDateTime::currentDateTime().date().year() != ye ) 685 if ( QDateTime::currentDateTime().date().year() != ye )
686 year = QString::number( ye ); 686 year = QString::number( ye );
687 QString dfs = KGlobal::locale()->dateFormatShort(); 687 QString dfs = KGlobal::locale()->dateFormatShort();
688 KGlobal::locale()->setDateFormatShort("%d.%b"); 688 KGlobal::locale()->setDateFormatShort("%d.%b");
689 mText +="<font color=\"#00A000\"> [" + KGlobal::locale()->formatDate(((Todo*)ev)->dtDue().date(), true, KLocale::Userdefined) + "."+ year +"]</font>"; 689 mText +="<font color=\"#00A000\"> [" + KGlobal::locale()->formatDate(((Todo*)ev)->dtDue().date(), true, KLocale::Userdefined) + "."+ year +"]</font>";
690 KGlobal::locale()->setDateFormatShort(dfs); 690 KGlobal::locale()->setDateFormatShort(dfs);
691 } 691 }
692 if ( KOPrefs::instance()->mWNViewShowLocation ) 692 if ( KOPrefs::instance()->mWNViewShowLocation )
693 if ( !ev->location().isEmpty() ) 693 if ( !ev->location().isEmpty() )
694 mText += " ("+ev->location() +")"; 694 mText += " ("+ev->location() +")";
695 if ( !isSub ) { 695 if ( !isSub ) {
696 if ( ((Todo*)ev)->relatedTo()&& KOPrefs::instance()->mWNViewShowsParents) 696 if ( ((Todo*)ev)->relatedTo()&& KOPrefs::instance()->mWNViewShowsParents)
697 mText += " ["+ev->relatedTo()->summary() +"]"; 697 mText += " ["+ev->relatedTo()->summary() +"]";
698 mText += "</p>\n"; 698 mText += "</p>\n";
699 } 699 }
700 else { 700 else {
701 ind += "-"; 701 ind += "-";
702 mText += "</li>\n"; 702 mText += "</li>\n";
703 } 703 }
704 QPtrList<Incidence> Relations = ev->relations(); 704 QPtrList<Incidence> Relations = ev->relations();
705 Incidence *to; 705 Incidence *to;
706 for (to=Relations.first();to;to=Relations.next()) { 706 for (to=Relations.first();to;to=Relations.next()) {
707 if (!((Todo*)to)->isCompleted()) 707 if (!((Todo*)to)->isCompleted())
708 appendTodo( to, ind , true ); 708 appendTodo( to, ind , true );
709 } 709 }
710 710
711 return true; 711 return true;
712} 712}
713 713
714/* 714/*
715 void KOWhatsNextView::createEventViewer() 715 void KOWhatsNextView::createEventViewer()
716 { 716 {
717 if (!mEventViewer) { 717 if (!mEventViewer) {
718 718
719 mEventViewer = new KOEventViewerDialog(this); 719 mEventViewer = new KOEventViewerDialog(this);
720 } 720 }
721 } 721 }
722*/ 722*/
723void KOWhatsNextView::setEventViewer(KOEventViewerDialog* v ) 723void KOWhatsNextView::setEventViewer(KOEventViewerDialog* v )
724{ 724{
725 mEventViewer = v; 725 mEventViewer = v;
726} 726}
727 727
728// TODO: Create this function in CalendarView and remove it from here 728// TODO: Create this function in CalendarView and remove it from here
729void KOWhatsNextView::showIncidence(const QString &uid) 729void KOWhatsNextView::showIncidence(const QString &uid)
730{ 730{
731 731
732 if ( !mEventViewer ) { 732 if ( !mEventViewer ) {
733 qDebug("KOWhatsNextView::showIncidence::sorry, no event viewer set "); 733 qDebug("KOWhatsNextView::showIncidence::sorry, no event viewer set ");
734 return; 734 return;
735 } 735 }
736 //kdDebug() << "KOWhatsNextView::showIncidence(): " << uid << endl; 736 //kdDebug() << "KOWhatsNextView::showIncidence(): " << uid << endl;
737 //qDebug("KOWhatsNextView::showIncidence %s ", uid.latin1()); 737 //qDebug("KOWhatsNextView::showIncidence %s ", uid.latin1());
738 if (uid.startsWith("event:")) { 738 if (uid.startsWith("event:")) {
739#ifdef DESKTOP_VERSION 739#ifdef DESKTOP_VERSION
740 Event *event = calendar()->event(uid.mid(8)); 740 Event *event = calendar()->event(uid.mid(8));
741#else 741#else
742 Event *event = calendar()->event(uid.mid(6)); 742 Event *event = calendar()->event(uid.mid(6));
743#endif 743#endif
744 //qDebug("event %d uid %s ", event, uid.mid(6).latin1()); 744 //qDebug("event %d uid %s ", event, uid.mid(6).latin1());
745 if (!event) return; 745 if (!event) return;
746 //createEventViewer(); 746 //createEventViewer();
747 mEventViewer->setEvent(event); 747 mEventViewer->setEvent(event);
748 } else if (uid.startsWith("todo:")) { 748 } else if (uid.startsWith("todo:")) {
749#ifdef DESKTOP_VERSION 749#ifdef DESKTOP_VERSION
750 Todo *todo = calendar()->todo(uid.mid(7)); 750 Todo *todo = calendar()->todo(uid.mid(7));
751#else 751#else
752 Todo *todo = calendar()->todo(uid.mid(5)); 752 Todo *todo = calendar()->todo(uid.mid(5));
753#endif 753#endif
754 if (!todo) return; 754 if (!todo) return;
755 //createEventViewer(); 755 //createEventViewer();
756 mEventViewer->setTodo(todo); 756 mEventViewer->setTodo(todo);
757 } else { 757 } else {
758 return; 758 return;
759 759
760 } 760 }
761 mEventViewer->showMe(); 761 mEventViewer->showMe();
762 mEventViewer->raise(); 762 mEventViewer->raise();
763} 763}
diff --git a/microkde/KDGanttMinimizeSplitter.cpp b/microkde/KDGanttMinimizeSplitter.cpp
index 567ae54..84edc0d 100644
--- a/microkde/KDGanttMinimizeSplitter.cpp
+++ b/microkde/KDGanttMinimizeSplitter.cpp
@@ -1,1636 +1,1646 @@
1/* -*- Mode: C++ -*- 1/* -*- Mode: C++ -*-
2 $Id$ 2 $Id$
3*/ 3*/
4 4
5/**************************************************************************** 5/****************************************************************************
6 ** Copyright (C) 2002-2004 Klarälvdalens Datakonsult AB. All rights reserved. 6 ** Copyright (C) 2002-2004 Klarälvdalens Datakonsult AB. All rights reserved.
7 ** 7 **
8 ** This file is part of the KDGantt library. 8 ** This file is part of the KDGantt library.
9 ** 9 **
10 ** This file may be distributed and/or modified under the terms of the 10 ** This file may be distributed and/or modified under the terms of the
11 ** GNU General Public License version 2 as published by the Free Software 11 ** GNU General Public License version 2 as published by the Free Software
12 ** Foundation and appearing in the file LICENSE.GPL included in the 12 ** Foundation and appearing in the file LICENSE.GPL included in the
13 ** packaging of this file. 13 ** packaging of this file.
14 ** 14 **
15 ** Licensees holding valid commercial KDGantt licenses may use this file in 15 ** Licensees holding valid commercial KDGantt licenses may use this file in
16 ** accordance with the KDGantt Commercial License Agreement provided with 16 ** accordance with the KDGantt Commercial License Agreement provided with
17 ** the Software. 17 ** the Software.
18 ** 18 **
19 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 19 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 20 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21 ** 21 **
22 ** See http://www.klaralvdalens-datakonsult.se/Public/products/ for 22 ** See http://www.klaralvdalens-datakonsult.se/Public/products/ for
23 ** information about KDGantt Commercial License Agreements. 23 ** information about KDGantt Commercial License Agreements.
24 ** 24 **
25 ** Contact info@klaralvdalens-datakonsult.se if any conditions of this 25 ** Contact info@klaralvdalens-datakonsult.se if any conditions of this
26 ** licensing are not clear to you. 26 ** licensing are not clear to you.
27 ** 27 **
28 ** As a special exception, permission is given to link this program 28 ** As a special exception, permission is given to link this program
29 ** with any edition of Qt, and distribute the resulting executable, 29 ** with any edition of Qt, and distribute the resulting executable,
30 ** without including the source code for Qt in the source distribution. 30 ** without including the source code for Qt in the source distribution.
31 ** 31 **
32 **********************************************************************/ 32 **********************************************************************/
33 33
34#include "KDGanttMinimizeSplitter.h" 34#include "KDGanttMinimizeSplitter.h"
35#ifndef QT_NO_SPLITTER___ 35#ifndef QT_NO_SPLITTER___
36 36
37#include "qpainter.h" 37#include "qpainter.h"
38#include "qdrawutil.h" 38#include "qdrawutil.h"
39#include "qbitmap.h" 39#include "qbitmap.h"
40#if QT_VERSION >= 0x030000 40#if QT_VERSION >= 0x030000
41#include "qptrlist.h" 41#include "qptrlist.h"
42#include "qmemarray.h" 42#include "qmemarray.h"
43#else 43#else
44#include <qlist.h> 44#include <qlist.h>
45#include <qarray.h> 45#include <qarray.h>
46#define QPtrList QList 46#define QPtrList QList
47#define QMemArray QArray 47#define QMemArray QArray
48#endif 48#endif
49#include "qlayoutengine_p.h" 49#include "qlayoutengine_p.h"
50#include "qobjectlist.h" 50#include "qobjectlist.h"
51#include "qstyle.h" 51#include "qstyle.h"
52#include "qapplication.h" //sendPostedEvents 52#include "qapplication.h" //sendPostedEvents
53#include <qvaluelist.h> 53#include <qvaluelist.h>
54#include <qcursor.h> 54#include <qcursor.h>
55#ifndef KDGANTT_MASTER_CVS 55#ifndef KDGANTT_MASTER_CVS
56//#include "KDGanttMinimizeSplitter.moc" 56//#include "KDGanttMinimizeSplitter.moc"
57#endif 57#endif
58 58
59 59
60 60
61#ifndef DOXYGEN_SKIP_INTERNAL 61#ifndef DOXYGEN_SKIP_INTERNAL
62 62
63#if QT_VERSION >= 232 63#if QT_VERSION >= 232
64static int mouseOffset; 64static int mouseOffset;
65static int opaqueOldPos = -1; //### there's only one mouse, but this is a bit risky 65static int opaqueOldPos = -1; //### there's only one mouse, but this is a bit risky
66 66
67 67
68KDGanttSplitterHandle::KDGanttSplitterHandle( Qt::Orientation o, 68KDGanttSplitterHandle::KDGanttSplitterHandle( Qt::Orientation o,
69 KDGanttMinimizeSplitter *parent, const char * name ) 69 KDGanttMinimizeSplitter *parent, const char * name )
70 : QWidget( parent, name ), _activeButton( 0 ), _collapsed( false ) 70 : QWidget( parent, name ), _activeButton( 0 ), _collapsed( false )
71{ 71{
72 72
73 if ( QApplication::desktop()->width() > 320 && QApplication::desktop()->width() < 650 ) { 73 if ( QApplication::desktop()->width() > 320 && QApplication::desktop()->width() < 650 ) {
74 mSizeHint = QSize(7,7); 74 mSizeHint = QSize(7,7);
75 mUseOffset = true; 75 mUseOffset = true;
76 } else { 76 } else {
77 mSizeHint = QSize(6,6); 77 mSizeHint = QSize(6,6);
78 mUseOffset = false; 78 mUseOffset = false;
79 } 79 }
80 s = parent; 80 s = parent;
81 setOrientation(o); 81 setOrientation(o);
82 setMouseTracking( true ); 82 setMouseTracking( true );
83 //setMaximumHeight( 5 ); // test only 83 //setMaximumHeight( 5 ); // test only
84} 84}
85 85
86QSize KDGanttSplitterHandle::sizeHint() const 86QSize KDGanttSplitterHandle::sizeHint() const
87{ 87{
88 return mSizeHint; 88 return mSizeHint;
89} 89}
90 90
91void KDGanttSplitterHandle::setOrientation( Qt::Orientation o ) 91void KDGanttSplitterHandle::setOrientation( Qt::Orientation o )
92{ 92{
93 orient = o; 93 orient = o;
94#ifndef QT_NO_CURSOR 94#ifndef QT_NO_CURSOR
95 if ( o == KDGanttMinimizeSplitter::Horizontal ) 95 if ( o == KDGanttMinimizeSplitter::Horizontal )
96 setCursor( splitHCursor ); 96 setCursor( splitHCursor );
97 else 97 else
98 setCursor( splitVCursor ); 98 setCursor( splitVCursor );
99#endif 99#endif
100} 100}
101 101
102 102
103void KDGanttSplitterHandle::mouseMoveEvent( QMouseEvent *e ) 103void KDGanttSplitterHandle::mouseMoveEvent( QMouseEvent *e )
104{ 104{
105 updateCursor( e->pos() ); 105 updateCursor( e->pos() );
106 if ( !(e->state()&LeftButton) ) 106 if ( !(e->state()&LeftButton) )
107 return; 107 return;
108 108
109 if ( _activeButton != 0) 109 if ( _activeButton != 0)
110 return; 110 return;
111 111
112 QCOORD pos = s->pick(parentWidget()->mapFromGlobal(e->globalPos())) 112 QCOORD pos = s->pick(parentWidget()->mapFromGlobal(e->globalPos()))
113 - mouseOffset; 113 - mouseOffset;
114 if ( true /*opaque()*/ ) { 114 if ( true /*opaque()*/ ) {
115 s->moveSplitter( pos, id() ); 115 s->moveSplitter( pos, id() );
116 } else { 116 } else {
117 int min = pos; int max = pos; 117 int min = pos; int max = pos;
118 s->getRange( id(), &min, &max ); 118 s->getRange( id(), &min, &max );
119 s->setRubberband( QMAX( min, QMIN(max, pos ))); 119 s->setRubberband( QMAX( min, QMIN(max, pos )));
120 } 120 }
121 _collapsed = false; 121 _collapsed = false;
122} 122}
123 123
124void KDGanttSplitterHandle::mousePressEvent( QMouseEvent *e ) 124void KDGanttSplitterHandle::mousePressEvent( QMouseEvent *e )
125{ 125{
126 if ( e->button() == LeftButton ) { 126 if ( e->button() == LeftButton ) {
127 _activeButton = onButton( e->pos() ); 127 _activeButton = onButton( e->pos() );
128 mouseOffset = s->pick(e->pos()); 128 mouseOffset = s->pick(e->pos());
129 if ( _activeButton != 0) 129 if ( _activeButton != 0)
130 repaint(); 130 repaint();
131 updateCursor( e->pos() ); 131 updateCursor( e->pos() );
132 } 132 }
133} 133}
134 134
135void KDGanttSplitterHandle::updateCursor( const QPoint& p) 135void KDGanttSplitterHandle::updateCursor( const QPoint& p)
136{ 136{
137 if ( onButton( p ) != 0 ) { 137 if ( onButton( p ) != 0 ) {
138 setCursor( arrowCursor ); 138 setCursor( arrowCursor );
139 } 139 }
140 else { 140 else {
141 if ( orient == KDGanttMinimizeSplitter::Horizontal ) 141 if ( orient == KDGanttMinimizeSplitter::Horizontal )
142 setCursor( splitHCursor ); 142 setCursor( splitHCursor );
143 else 143 else
144 setCursor( splitVCursor ); 144 setCursor( splitVCursor );
145 } 145 }
146} 146}
147void KDGanttSplitterHandle::toggle() 147void KDGanttSplitterHandle::toggle()
148{ 148{
149 int pos; 149 int pos;
150 int min, max; 150 int min, max;
151 if ( !_collapsed ) { 151 if ( !_collapsed ) {
152 s->expandPos( id(), &min, &max ); 152 s->expandPos( id(), &min, &max );
153 if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Left 153 if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Left
154 || s->minimizeDirection() == KDGanttMinimizeSplitter::Up ) { 154 || s->minimizeDirection() == KDGanttMinimizeSplitter::Up ) {
155 pos = min; 155 pos = min;
156 } 156 }
157 else { 157 else {
158 pos = max; 158 pos = max;
159 } 159 }
160 160
161 _origPos = s->pick(mapToParent( QPoint( 0,0 ) )); 161 _origPos = s->pick(mapToParent( QPoint( 0,0 ) ));
162 s->moveSplitter( pos, id() ); 162 s->moveSplitter( pos, id() );
163 _collapsed = true; 163 _collapsed = true;
164 } 164 }
165 else { 165 else {
166 s->moveSplitter( _origPos, id() ); 166 s->moveSplitter( _origPos, id() );
167 _collapsed = false; 167 _collapsed = false;
168 } 168 }
169 repaint();
169} 170}
170 171
171void KDGanttSplitterHandle::mouseReleaseEvent( QMouseEvent *e ) 172void KDGanttSplitterHandle::mouseReleaseEvent( QMouseEvent *e )
172{ 173{
173 if ( _activeButton != 0 ) { 174 if ( _activeButton != 0 ) {
174 if ( onButton( e->pos() ) == _activeButton ) 175 if ( onButton( e->pos() ) == _activeButton )
175 { 176 {
176 toggle(); 177 toggle();
177 } 178 }
178 _activeButton = 0; 179 _activeButton = 0;
179 updateCursor( e->pos() ); 180 updateCursor( e->pos() );
180 } 181 }
181 else { 182 else {
182 if ( !opaque() && e->button() == LeftButton ) { 183 if ( !opaque() && e->button() == LeftButton ) {
183 QCOORD pos = s->pick(parentWidget()->mapFromGlobal(e->globalPos())) 184 QCOORD pos = s->pick(parentWidget()->mapFromGlobal(e->globalPos()))
184 - mouseOffset; 185 - mouseOffset;
185 s->setRubberband( -1 ); 186 s->setRubberband( -1 );
186 s->moveSplitter( pos, id() ); 187 s->moveSplitter( pos, id() );
187 } 188 }
188 } 189 }
189 repaint(); 190 repaint();
190} 191}
191 192
192int KDGanttSplitterHandle::onButton( const QPoint& p ) 193int KDGanttSplitterHandle::onButton( const QPoint& p )
193{ 194{
194 QValueList<QPointArray> list = buttonRegions(); 195 QValueList<QPointArray> list = buttonRegions();
195 int index = 1; 196 int index = 1;
196 int add = 12; 197 int add = 12;
197 for( QValueList<QPointArray>::Iterator it = list.begin(); it != list.end(); ++it ) { 198 for( QValueList<QPointArray>::Iterator it = list.begin(); it != list.end(); ++it ) {
198 QRect rect = (*it).boundingRect(); 199 QRect rect = (*it).boundingRect();
199 rect.setLeft( rect.left()- add ); 200 rect.setLeft( rect.left()- add );
200 rect.setRight( rect.right() + add); 201 rect.setRight( rect.right() + add);
201 rect.setTop( rect.top()- add ); 202 rect.setTop( rect.top()- add );
202 rect.setBottom( rect.bottom() + add); 203 rect.setBottom( rect.bottom() + add);
203 if ( rect.contains( p ) ) { 204 if ( rect.contains( p ) ) {
204 return index; 205 return index;
205 } 206 }
206 index++; 207 index++;
207 } 208 }
208 return 0; 209 return 0;
209} 210}
210 211
211 212
212QValueList<QPointArray> KDGanttSplitterHandle::buttonRegions() 213QValueList<QPointArray> KDGanttSplitterHandle::buttonRegions()
213{ 214{
214 QValueList<QPointArray> list; 215 QValueList<QPointArray> list;
215 216
216 int sw = 8; 217 int sw = 8;
217 int yyy = 1; 218 int yyy = 1;
218 int xxx = 1; 219 int xxx = 1;
219 int voffset[] = { (int) -sw*3, (int) sw*3 }; 220 int voffset[] = { (int) -sw*3, (int) sw*3 };
220 for ( int i = 0; i < 2; i++ ) { 221 for ( int i = 0; i < 2; i++ ) {
221 QPointArray arr; 222 QPointArray arr;
222 if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Right || 223 if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Right ||
223 _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Left) { 224 _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Left) {
224 int mid = height()/2 + voffset[i]; 225 int mid = height()/2 + voffset[i];
225 arr.setPoints( 3, 226 arr.setPoints( 3,
226 1-xxx, mid - sw + 4, 227 1-xxx, mid - sw + 4,
227 sw-3-xxx, mid, 228 sw-3-xxx, mid,
228 1-xxx, mid + sw -4); 229 1-xxx, mid + sw -4);
229 } 230 }
230 else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Left || 231 else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Left ||
231 _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Right ) { 232 _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Right ) {
232 int mid = height()/2 + voffset[i]; 233 int mid = height()/2 + voffset[i];
233 arr.setPoints( 3, 234 arr.setPoints( 3,
234 sw-4, mid - sw + 4, 235 sw-4, mid - sw + 4,
235 0, mid, 236 0, mid,
236 sw-4, mid + sw - 4); 237 sw-4, mid + sw - 4);
237 } 238 }
238 else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Up || 239 else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Up ||
239 _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Down) { 240 _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Down) {
240 int mid = width()/2 + voffset[i]; 241 int mid = width()/2 + voffset[i];
241 arr.setPoints( 3, 242 arr.setPoints( 3,
242 mid - sw + 4, sw-4, 243 mid - sw + 4, sw-4,
243 mid, 0, 244 mid, 0,
244 mid + sw - 4, sw-4 ); 245 mid + sw - 4, sw-4 );
245 } 246 }
246 else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Down || 247 else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Down ||
247 _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Up ) { 248 _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Up ) {
248 int mid = width()/2 + voffset[i]; 249 int mid = width()/2 + voffset[i];
249 arr.setPoints( 3, 250 arr.setPoints( 3,
250 mid - sw + 4, 1-yyy, 251 mid - sw + 4, 1-yyy,
251 mid, sw-3-yyy, 252 mid, sw-3-yyy,
252 mid + sw -4, 1-yyy); 253 mid + sw -4, 1-yyy);
253 } 254 }
254 list.append( arr ); 255 list.append( arr );
255 } 256 }
256 return list; 257 return list;
257} 258}
258 259
259void KDGanttSplitterHandle::paintEvent( QPaintEvent * ) 260void KDGanttSplitterHandle::paintEvent( QPaintEvent * )
260{ 261{
261 QPixmap buffer( size() ); 262 QPixmap buffer( size() );
262 QPainter p( &buffer ); 263 QPainter p( &buffer );
263 264
264 //LR 265 //LR
265 // Draw the splitter rectangle 266 // Draw the splitter rectangle
266 p.setBrush( colorGroup().background() ); 267 p.setBrush( colorGroup().background() );
267 p.setPen( colorGroup().foreground() ); 268 p.setPen( colorGroup().foreground() );
268 //p.drawRect( rect() ); 269 //p.drawRect( rect() );
269 buffer.fill( colorGroup().background() ); 270 buffer.fill( colorGroup().background() );
270 //buffer.fill( backgroundColor() ); 271 //buffer.fill( backgroundColor() );
271 // parentWidget()->style().drawPrimitive( QStyle::PE_Panel, &p, rect(), parentWidget()->colorGroup()); 272 // parentWidget()->style().drawPrimitive( QStyle::PE_Panel, &p, rect(), parentWidget()->colorGroup());
272 273
273 int sw = 8; // Hardcoded, given I didn't use styles anymore, I didn't like to use their size 274 int sw = 8; // Hardcoded, given I didn't use styles anymore, I didn't like to use their size
274 275
275 // arrow color 276 // arrow color
276 QColor col; 277 QColor col;
277 if ( _activeButton ) 278 if ( _activeButton )
278 col = colorGroup().background().dark( 250 ); 279 col = colorGroup().background().dark( 250 );
279 else 280 else
280 col = colorGroup().background().dark( 150 ); 281 col = colorGroup().background().dark( 150 );
281 //QColor col = backgroundColor().dark( 130 ); 282 //QColor col = backgroundColor().dark( 130 );
282 p.setBrush( col ); 283 p.setBrush( col );
283 p.setPen( col ); 284 p.setPen( col );
284 285
285 QValueList<QPointArray> list = buttonRegions(); 286 QValueList<QPointArray> list = buttonRegions();
286 int index = 1; 287 int index = 1;
287 if ( mUseOffset ) 288 if ( mUseOffset )
288 p.translate( 0, 1 ); 289 p.translate( 0, 1 );
289 for ( QValueList<QPointArray>::Iterator it = list.begin(); it != list.end(); ++it ) { 290 for ( QValueList<QPointArray>::Iterator it = list.begin(); it != list.end(); ++it ) {
290 if ( index == _activeButton ) { 291 if ( index == _activeButton ) {
291 292
292 /* 293 /*
293 if ( ! _collapsed ) { 294 if ( ! _collapsed ) {
294 p.save(); 295 p.save();
295 // p.translate( parentWidget()->style().pixelMetric( QStyle::PM_ButtonShiftHorizontal ), 296 // p.translate( parentWidget()->style().pixelMetric( QStyle::PM_ButtonShiftHorizontal ),
296 // parentWidget()->style().pixelMetric( QStyle::PM_ButtonShiftVertical ) ); 297 // parentWidget()->style().pixelMetric( QStyle::PM_ButtonShiftVertical ) );
297 p.translate( -1, 0 ); 298 p.translate( -1, 0 );
298 p.drawPolygon( *it, true ); 299 p.drawPolygon( *it, true );
299 p.restore(); } else 300 p.restore(); } else
300 */ 301 */
301 p.drawPolygon( *it, true ); 302 p.drawPolygon( *it, true );
302 303
303 } 304 }
304 else { 305 else {
305 /* 306 /*
306 if ( ! _collapsed ) { 307 if ( ! _collapsed ) {
307 p.save(); 308 p.save();
308 p.translate( -1, 0 ); 309 p.translate( -1, 0 );
309 p.drawPolygon( *it, true ); 310 p.drawPolygon( *it, true );
310 p.restore(); 311 p.restore();
311 } else 312 } else
312 */ 313 */
313 p.drawPolygon( *it, true ); 314 p.drawPolygon( *it, true );
314 315
315 } 316 }
316 index++; 317 index++;
317 } 318 }
318 319
319 // Draw the lines between the arrows 320 // Draw the lines between the arrows
320 if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Left || 321 if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Left ||
321 s->minimizeDirection() == KDGanttMinimizeSplitter::Right ) { 322 s->minimizeDirection() == KDGanttMinimizeSplitter::Right ) {
322 int mid = height()/2; 323 int mid = height()/2;
323 p.drawLine ( 1, mid - sw, 1, mid + sw ); 324 p.drawLine ( 1, mid - sw, 1, mid + sw );
324 p.drawLine ( 3, mid - sw, 3, mid + sw ); 325 p.drawLine ( 3, mid - sw, 3, mid + sw );
325 } 326 }
326 else if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Up || 327 else if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Up ||
327 s->minimizeDirection() == KDGanttMinimizeSplitter::Down ) { 328 s->minimizeDirection() == KDGanttMinimizeSplitter::Down ) {
328 int mid = width()/2; 329 int mid = width()/2;
329 p.drawLine( mid -sw, 1, mid +sw, 1 ); 330 p.drawLine( mid -sw, 1, mid +sw, 1 );
330 p.drawLine( mid -sw, 3, mid +sw, 3 ); 331 p.drawLine( mid -sw, 3, mid +sw, 3 );
331 } 332 }
332 bitBlt( this, 0, 0, &buffer ); 333 bitBlt( this, 0, 0, &buffer );
333 334
334} 335}
335#endif 336#endif
336 337
337class QSplitterLayoutStruct 338class QSplitterLayoutStruct
338{ 339{
339public: 340public:
340 KDGanttMinimizeSplitter::ResizeMode mode; 341 KDGanttMinimizeSplitter::ResizeMode mode;
341 QCOORD sizer; 342 QCOORD sizer;
342 bool isSplitter; 343 bool isSplitter;
343 QWidget *wid; 344 QWidget *wid;
344}; 345};
345 346
346class QSplitterData 347class QSplitterData
347{ 348{
348public: 349public:
349 QSplitterData() : opaque( FALSE ), firstShow( TRUE ) {} 350 QSplitterData() : opaque( FALSE ), firstShow( TRUE ) {}
350 351
351 QPtrList<QSplitterLayoutStruct> list; 352 QPtrList<QSplitterLayoutStruct> list;
352 bool opaque; 353 bool opaque;
353 bool firstShow; 354 bool firstShow;
354}; 355};
355 356
356void kdganttGeomCalc( QMemArray<QLayoutStruct> &chain, int start, int count, int pos, 357void kdganttGeomCalc( QMemArray<QLayoutStruct> &chain, int start, int count, int pos,
357 int space, int spacer ); 358 int space, int spacer );
358#endif // DOXYGEN_SKIP_INTERNAL 359#endif // DOXYGEN_SKIP_INTERNAL
359 360
360 361
361/*! 362/*!
362 \class KDGanttMinimizeSplitter KDGanttMinimizeSplitter.h 363 \class KDGanttMinimizeSplitter KDGanttMinimizeSplitter.h
363 \brief The KDGanttMinimizeSplitter class implements a splitter 364 \brief The KDGanttMinimizeSplitter class implements a splitter
364 widget with minimize buttons. 365 widget with minimize buttons.
365 366
366 This class (and its documentation) is largely a copy of Qt's 367 This class (and its documentation) is largely a copy of Qt's
367 QSplitter; the copying was necessary because QSplitter is not 368 QSplitter; the copying was necessary because QSplitter is not
368 extensible at all. QSplitter and its documentation are licensed 369 extensible at all. QSplitter and its documentation are licensed
369 according to the GPL and the Qt Professional License (if you hold 370 according to the GPL and the Qt Professional License (if you hold
370 such a license) and are (C) Trolltech AS. 371 such a license) and are (C) Trolltech AS.
371 372
372 A splitter lets the user control the size of child widgets by 373 A splitter lets the user control the size of child widgets by
373 dragging the boundary between the children. Any number of widgets 374 dragging the boundary between the children. Any number of widgets
374 may be controlled. 375 may be controlled.
375 376
376 To show a QListBox, a QListView and a QTextEdit side by side: 377 To show a QListBox, a QListView and a QTextEdit side by side:
377 378
378 \code 379 \code
379 KDGanttMinimizeSplitter *split = new KDGanttMinimizeSplitter( parent ); 380 KDGanttMinimizeSplitter *split = new KDGanttMinimizeSplitter( parent );
380 QListBox *lb = new QListBox( split ); 381 QListBox *lb = new QListBox( split );
381 QListView *lv = new QListView( split ); 382 QListView *lv = new QListView( split );
382 QTextEdit *ed = new QTextEdit( split ); 383 QTextEdit *ed = new QTextEdit( split );
383 \endcode 384 \endcode
384 385
385 In KDGanttMinimizeSplitter, the boundary can be either horizontal or 386 In KDGanttMinimizeSplitter, the boundary can be either horizontal or
386 vertical. The default is horizontal (the children are side by side) 387 vertical. The default is horizontal (the children are side by side)
387 but you can use setOrientation( QSplitter::Vertical ) to set it to 388 but you can use setOrientation( QSplitter::Vertical ) to set it to
388 vertical. 389 vertical.
389 390
390 Use setResizeMode() to specify 391 Use setResizeMode() to specify
391 that a widget should keep its size when the splitter is resized. 392 that a widget should keep its size when the splitter is resized.
392 393
393 Although KDGanttMinimizeSplitter normally resizes the children only 394 Although KDGanttMinimizeSplitter normally resizes the children only
394 at the end of a resize operation, if you call setOpaqueResize( TRUE 395 at the end of a resize operation, if you call setOpaqueResize( TRUE
395 ) the widgets are resized as often as possible. 396 ) the widgets are resized as often as possible.
396 397
397 The initial distribution of size between the widgets is determined 398 The initial distribution of size between the widgets is determined
398 by the initial size of each widget. You can also use setSizes() to 399 by the initial size of each widget. You can also use setSizes() to
399 set the sizes of all the widgets. The function sizes() returns the 400 set the sizes of all the widgets. The function sizes() returns the
400 sizes set by the user. 401 sizes set by the user.
401 402
402 If you hide() a child, its space will be distributed among the other 403 If you hide() a child, its space will be distributed among the other
403 children. It will be reinstated when you show() it again. It is also 404 children. It will be reinstated when you show() it again. It is also
404 possible to reorder the widgets within the splitter using 405 possible to reorder the widgets within the splitter using
405 moveToFirst() and moveToLast(). 406 moveToFirst() and moveToLast().
406*/ 407*/
407 408
408 409
409 410
410static QSize minSize( const QWidget* /*w*/ ) 411static QSize minSize( const QWidget* /*w*/ )
411{ 412{
412 return QSize(0,0); 413 return QSize(0,0);
413} 414}
414 415
415// This is the original version of minSize 416// This is the original version of minSize
416static QSize minSizeHint( const QWidget* w ) 417static QSize minSizeHint( const QWidget* w )
417{ 418{
418 QSize min = w->minimumSize(); 419 QSize min = w->minimumSize();
419 QSize s; 420 QSize s;
420 if ( min.height() <= 0 || min.width() <= 0 ) 421 if ( min.height() <= 0 || min.width() <= 0 )
421 s = w->minimumSizeHint(); 422 s = w->minimumSizeHint();
422 if ( min.height() > 0 ) 423 if ( min.height() > 0 )
423 s.setHeight( min.height() ); 424 s.setHeight( min.height() );
424 if ( min.width() > 0 ) 425 if ( min.width() > 0 )
425 s.setWidth( min.width() ); 426 s.setWidth( min.width() );
426 return s.expandedTo(QSize(0,0)); 427 return s.expandedTo(QSize(0,0));
427} 428}
428 429
429 430
430 431
431/*! 432/*!
432 Constructs a horizontal splitter with the \a parent and \a 433 Constructs a horizontal splitter with the \a parent and \a
433 name arguments being passed on to the QFrame constructor. 434 name arguments being passed on to the QFrame constructor.
434*/ 435*/
435KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( QWidget *parent, const char *name ) 436KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( QWidget *parent, const char *name )
436 :QFrame(parent,name,WPaintUnclipped) 437 :QFrame(parent,name,WPaintUnclipped)
437{ 438{
438 mFirstHandle = 0; 439 mFirstHandle = 0;
439#if QT_VERSION >= 232 440#if QT_VERSION >= 232
440 orient = Horizontal; 441 orient = Horizontal;
441 init(); 442 init();
442#endif 443#endif
443} 444}
444 445
445/*! 446/*!
446 Constructs a splitter with orientation \a o with the \a parent 447 Constructs a splitter with orientation \a o with the \a parent
447 and \a name arguments being passed on to the QFrame constructor. 448 and \a name arguments being passed on to the QFrame constructor.
448*/ 449*/
449KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( Orientation o, QWidget *parent, const char *name ) 450KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( Orientation o, QWidget *parent, const char *name )
450 :QFrame(parent,name,WPaintUnclipped) 451 :QFrame(parent,name,WPaintUnclipped)
451{ 452{
452 mFirstHandle = 0; 453 mFirstHandle = 0;
453#if QT_VERSION >= 232 454#if QT_VERSION >= 232
454 orient = o; 455 orient = o;
455 init(); 456 init();
456#endif 457#endif
457} 458}
458 459
459/*! 460/*!
460 Destroys the splitter and any children. 461 Destroys the splitter and any children.
461*/ 462*/
462KDGanttMinimizeSplitter::~KDGanttMinimizeSplitter() 463KDGanttMinimizeSplitter::~KDGanttMinimizeSplitter()
463{ 464{
464#if QT_VERSION >= 232 465#if QT_VERSION >= 232
465 data->list.setAutoDelete( TRUE ); 466 data->list.setAutoDelete( TRUE );
466 delete data; 467 delete data;
467#endif 468#endif
468} 469}
469 470
470 471
471#if QT_VERSION >= 232 472#if QT_VERSION >= 232
472void KDGanttMinimizeSplitter::init() 473void KDGanttMinimizeSplitter::init()
473{ 474{
474 data = new QSplitterData; 475 data = new QSplitterData;
475 if ( orient == Horizontal ) 476 if ( orient == Horizontal )
476 setSizePolicy( QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum) ); 477 setSizePolicy( QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum) );
477 else 478 else
478 setSizePolicy( QSizePolicy(QSizePolicy::Minimum,QSizePolicy::Expanding) ); 479 setSizePolicy( QSizePolicy(QSizePolicy::Minimum,QSizePolicy::Expanding) );
479} 480}
480#endif 481#endif
481 482
482 483
484void KDGanttMinimizeSplitter::toggle()
485{
486 if ( mFirstHandle )
487 mFirstHandle->toggle();
488 else
489 qDebug("KDGanttMinimizeSplitter::toggle::sorry, handle not available ");
490
491}
492
483 493
484/*! 494/*!
485 \brief the orientation of the splitter 495 \brief the orientation of the splitter
486 496
487 By default the orientation is horizontal (the widgets are side by side). 497 By default the orientation is horizontal (the widgets are side by side).
488 The possible orientations are Qt:Vertical and Qt::Horizontal (the default). 498 The possible orientations are Qt:Vertical and Qt::Horizontal (the default).
489*/ 499*/
490void KDGanttMinimizeSplitter::setOrientation( Orientation o ) 500void KDGanttMinimizeSplitter::setOrientation( Orientation o )
491{ 501{
492#if QT_VERSION >= 232 502#if QT_VERSION >= 232
493 if ( orient == o ) 503 if ( orient == o )
494 return; 504 return;
495 orient = o; 505 orient = o;
496 506
497 if ( orient == Horizontal ) 507 if ( orient == Horizontal )
498 setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) ); 508 setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) );
499 else 509 else
500 setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) ); 510 setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) );
501 511
502 QSplitterLayoutStruct *s = data->list.first(); 512 QSplitterLayoutStruct *s = data->list.first();
503 while ( s ) { 513 while ( s ) {
504 if ( s->isSplitter ) 514 if ( s->isSplitter )
505 ((KDGanttSplitterHandle*)s->wid)->setOrientation( o ); 515 ((KDGanttSplitterHandle*)s->wid)->setOrientation( o );
506 s = data->list.next(); // ### next at end of loop, no iterator 516 s = data->list.next(); // ### next at end of loop, no iterator
507 } 517 }
508 recalc( isVisible() ); 518 recalc( isVisible() );
509#endif 519#endif
510} 520}
511 521
512 522
513#if QT_VERSION >= 232 523#if QT_VERSION >= 232
514/*! 524/*!
515 \reimp 525 \reimp
516*/ 526*/
517void KDGanttMinimizeSplitter::resizeEvent( QResizeEvent * ) 527void KDGanttMinimizeSplitter::resizeEvent( QResizeEvent * )
518{ 528{
519 doResize(); 529 doResize();
520} 530}
521 531
522 532
523/* 533/*
524 Inserts the widget \a w at the end (or at the beginning if \a first 534 Inserts the widget \a w at the end (or at the beginning if \a first
525 is TRUE) of the splitter's list of widgets. 535 is TRUE) of the splitter's list of widgets.
526 536
527 It is the responsibility of the caller of this function to make sure 537 It is the responsibility of the caller of this function to make sure
528 that \a w is not already in the splitter and to call recalcId if 538 that \a w is not already in the splitter and to call recalcId if
529 needed. (If \a first is TRUE, then recalcId is very probably 539 needed. (If \a first is TRUE, then recalcId is very probably
530 needed.) 540 needed.)
531*/ 541*/
532QSplitterLayoutStruct *KDGanttMinimizeSplitter::addWidget( QWidget *w, bool first ) 542QSplitterLayoutStruct *KDGanttMinimizeSplitter::addWidget( QWidget *w, bool first )
533{ 543{
534 QSplitterLayoutStruct *s; 544 QSplitterLayoutStruct *s;
535 KDGanttSplitterHandle *newHandle = 0; 545 KDGanttSplitterHandle *newHandle = 0;
536 if ( data->list.count() > 0 ) { 546 if ( data->list.count() > 0 ) {
537 s = new QSplitterLayoutStruct; 547 s = new QSplitterLayoutStruct;
538 s->mode = KeepSize; 548 s->mode = KeepSize;
539 QString tmp = "qt_splithandle_"; 549 QString tmp = "qt_splithandle_";
540 tmp += w->name(); 550 tmp += w->name();
541 newHandle = new KDGanttSplitterHandle( orientation(), this, tmp.latin1() ); 551 newHandle = new KDGanttSplitterHandle( orientation(), this, tmp.latin1() );
542 if ( ! mFirstHandle ) 552 if ( ! mFirstHandle )
543 mFirstHandle = newHandle; 553 mFirstHandle = newHandle;
544 s->wid = newHandle; 554 s->wid = newHandle;
545 newHandle->setId(data->list.count()); 555 newHandle->setId(data->list.count());
546 s->isSplitter = TRUE; 556 s->isSplitter = TRUE;
547 s->sizer = pick( newHandle->sizeHint() ); 557 s->sizer = pick( newHandle->sizeHint() );
548 if ( first ) 558 if ( first )
549 data->list.insert( 0, s ); 559 data->list.insert( 0, s );
550 else 560 else
551 data->list.append( s ); 561 data->list.append( s );
552 } 562 }
553 s = new QSplitterLayoutStruct; 563 s = new QSplitterLayoutStruct;
554 s->mode = Stretch; 564 s->mode = Stretch;
555 s->wid = w; 565 s->wid = w;
556 if ( !testWState( WState_Resized ) && w->sizeHint().isValid() ) 566 if ( !testWState( WState_Resized ) && w->sizeHint().isValid() )
557 s->sizer = pick( w->sizeHint() ); 567 s->sizer = pick( w->sizeHint() );
558 else 568 else
559 s->sizer = pick( w->size() ); 569 s->sizer = pick( w->size() );
560 s->isSplitter = FALSE; 570 s->isSplitter = FALSE;
561 if ( first ) 571 if ( first )
562 data->list.insert( 0, s ); 572 data->list.insert( 0, s );
563 else 573 else
564 data->list.append( s ); 574 data->list.append( s );
565 if ( newHandle && isVisible() ) 575 if ( newHandle && isVisible() )
566 newHandle->show(); //will trigger sending of post events 576 newHandle->show(); //will trigger sending of post events
567 return s; 577 return s;
568} 578}
569 579
570 580
571/*! 581/*!
572 Tells the splitter that a child widget has been inserted or removed. 582 Tells the splitter that a child widget has been inserted or removed.
573 The event is passed in \a c. 583 The event is passed in \a c.
574*/ 584*/
575void KDGanttMinimizeSplitter::childEvent( QChildEvent *c ) 585void KDGanttMinimizeSplitter::childEvent( QChildEvent *c )
576{ 586{
577 if ( c->type() == QEvent::ChildInserted ) { 587 if ( c->type() == QEvent::ChildInserted ) {
578 if ( !c->child()->isWidgetType() ) 588 if ( !c->child()->isWidgetType() )
579 return; 589 return;
580 590
581 if ( ((QWidget*)c->child())->testWFlags( WType_TopLevel ) ) 591 if ( ((QWidget*)c->child())->testWFlags( WType_TopLevel ) )
582 return; 592 return;
583 593
584 QSplitterLayoutStruct *s = data->list.first(); 594 QSplitterLayoutStruct *s = data->list.first();
585 while ( s ) { 595 while ( s ) {
586 if ( s->wid == c->child() ) 596 if ( s->wid == c->child() )
587 return; 597 return;
588 s = data->list.next(); 598 s = data->list.next();
589 } 599 }
590 addWidget( (QWidget*)c->child() ); 600 addWidget( (QWidget*)c->child() );
591 recalc( isVisible() ); 601 recalc( isVisible() );
592 602
593 } else if ( c->type() == QEvent::ChildRemoved ) { 603 } else if ( c->type() == QEvent::ChildRemoved ) {
594 QSplitterLayoutStruct *p = 0; 604 QSplitterLayoutStruct *p = 0;
595 if ( data->list.count() > 1 ) 605 if ( data->list.count() > 1 )
596 p = data->list.at(1); //remove handle _after_ first widget. 606 p = data->list.at(1); //remove handle _after_ first widget.
597 QSplitterLayoutStruct *s = data->list.first(); 607 QSplitterLayoutStruct *s = data->list.first();
598 while ( s ) { 608 while ( s ) {
599 if ( s->wid == c->child() ) { 609 if ( s->wid == c->child() ) {
600 data->list.removeRef( s ); 610 data->list.removeRef( s );
601 delete s; 611 delete s;
602 if ( p && p->isSplitter ) { 612 if ( p && p->isSplitter ) {
603 data->list.removeRef( p ); 613 data->list.removeRef( p );
604 delete p->wid; //will call childEvent 614 delete p->wid; //will call childEvent
605 delete p; 615 delete p;
606 } 616 }
607 recalcId(); 617 recalcId();
608 doResize(); 618 doResize();
609 return; 619 return;
610 } 620 }
611 p = s; 621 p = s;
612 s = data->list.next(); 622 s = data->list.next();
613 } 623 }
614 } 624 }
615} 625}
616 626
617 627
618/*! 628/*!
619 Shows a rubber band at position \a p. If \a p is negative, the 629 Shows a rubber band at position \a p. If \a p is negative, the
620 rubber band is removed. 630 rubber band is removed.
621*/ 631*/
622void KDGanttMinimizeSplitter::setRubberband( int p ) 632void KDGanttMinimizeSplitter::setRubberband( int p )
623{ 633{
624 QPainter paint( this ); 634 QPainter paint( this );
625 paint.setPen( gray ); 635 paint.setPen( gray );
626 paint.setBrush( gray ); 636 paint.setBrush( gray );
627 paint.setRasterOp( XorROP ); 637 paint.setRasterOp( XorROP );
628 QRect r = contentsRect(); 638 QRect r = contentsRect();
629 const int rBord = 3; //Themable???? 639 const int rBord = 3; //Themable????
630#if QT_VERSION >= 0x030000 640#if QT_VERSION >= 0x030000
631 int sw = style().pixelMetric(QStyle::PM_SplitterWidth, this); 641 int sw = style().pixelMetric(QStyle::PM_SplitterWidth, this);
632#else 642#else
633 int sw = style().splitterWidth(); 643 int sw = style().splitterWidth();
634#endif 644#endif
635 if ( orient == Horizontal ) { 645 if ( orient == Horizontal ) {
636 if ( opaqueOldPos >= 0 ) 646 if ( opaqueOldPos >= 0 )
637 paint.drawRect( opaqueOldPos + sw/2 - rBord , r.y(), 647 paint.drawRect( opaqueOldPos + sw/2 - rBord , r.y(),
638 2*rBord, r.height() ); 648 2*rBord, r.height() );
639 if ( p >= 0 ) 649 if ( p >= 0 )
640 paint.drawRect( p + sw/2 - rBord, r.y(), 2*rBord, r.height() ); 650 paint.drawRect( p + sw/2 - rBord, r.y(), 2*rBord, r.height() );
641 } else { 651 } else {
642 if ( opaqueOldPos >= 0 ) 652 if ( opaqueOldPos >= 0 )
643 paint.drawRect( r.x(), opaqueOldPos + sw/2 - rBord, 653 paint.drawRect( r.x(), opaqueOldPos + sw/2 - rBord,
644 r.width(), 2*rBord ); 654 r.width(), 2*rBord );
645 if ( p >= 0 ) 655 if ( p >= 0 )
646 paint.drawRect( r.x(), p + sw/2 - rBord, r.width(), 2*rBord ); 656 paint.drawRect( r.x(), p + sw/2 - rBord, r.width(), 2*rBord );
647 } 657 }
648 opaqueOldPos = p; 658 opaqueOldPos = p;
649} 659}
650 660
651 661
652/*! \reimp */ 662/*! \reimp */
653bool KDGanttMinimizeSplitter::event( QEvent *e ) 663bool KDGanttMinimizeSplitter::event( QEvent *e )
654{ 664{
655 if ( e->type() == QEvent::LayoutHint || ( e->type() == QEvent::Show && data->firstShow ) ) { 665 if ( e->type() == QEvent::LayoutHint || ( e->type() == QEvent::Show && data->firstShow ) ) {
656 recalc( isVisible() ); 666 recalc( isVisible() );
657 if ( e->type() == QEvent::Show ) 667 if ( e->type() == QEvent::Show )
658 data->firstShow = FALSE; 668 data->firstShow = FALSE;
659 } 669 }
660 return QWidget::event( e ); 670 return QWidget::event( e );
661} 671}
662 672
663 673
664/*! 674/*!
665 \obsolete 675 \obsolete
666 676
667 Draws the splitter handle in the rectangle described by \a x, \a y, 677 Draws the splitter handle in the rectangle described by \a x, \a y,
668 \a w, \a h using painter \a p. 678 \a w, \a h using painter \a p.
669 \sa QStyle::drawPrimitive() 679 \sa QStyle::drawPrimitive()
670*/ 680*/
671void KDGanttMinimizeSplitter::drawSplitter( QPainter *p, 681void KDGanttMinimizeSplitter::drawSplitter( QPainter *p,
672 QCOORD x, QCOORD y, QCOORD w, QCOORD h ) 682 QCOORD x, QCOORD y, QCOORD w, QCOORD h )
673{ 683{
674#if 0 684#if 0
675 // LR 685 // LR
676 style().drawPrimitive(QStyle::PE_Splitter, p, QRect(x, y, w, h), colorGroup(), 686 style().drawPrimitive(QStyle::PE_Splitter, p, QRect(x, y, w, h), colorGroup(),
677 (orientation() == Qt::Horizontal ? 687 (orientation() == Qt::Horizontal ?
678 QStyle::Style_Horizontal : 0)); 688 QStyle::Style_Horizontal : 0));
679#endif 689#endif
680} 690}
681 691
682 692
683/*! 693/*!
684 Returns the id of the splitter to the right of or below the widget \a w, 694 Returns the id of the splitter to the right of or below the widget \a w,
685 or 0 if there is no such splitter 695 or 0 if there is no such splitter
686 (i.e. it is either not in this KDGanttMinimizeSplitter or it is at the end). 696 (i.e. it is either not in this KDGanttMinimizeSplitter or it is at the end).
687*/ 697*/
688int KDGanttMinimizeSplitter::idAfter( QWidget* w ) const 698int KDGanttMinimizeSplitter::idAfter( QWidget* w ) const
689{ 699{
690 QSplitterLayoutStruct *s = data->list.first(); 700 QSplitterLayoutStruct *s = data->list.first();
691 bool seen_w = FALSE; 701 bool seen_w = FALSE;
692 while ( s ) { 702 while ( s ) {
693 if ( s->isSplitter && seen_w ) 703 if ( s->isSplitter && seen_w )
694 return data->list.at(); 704 return data->list.at();
695 if ( !s->isSplitter && s->wid == w ) 705 if ( !s->isSplitter && s->wid == w )
696 seen_w = TRUE; 706 seen_w = TRUE;
697 s = data->list.next(); 707 s = data->list.next();
698 } 708 }
699 return 0; 709 return 0;
700} 710}
701 711
702 712
703/*! 713/*!
704 Moves the left/top edge of the splitter handle with id \a id as 714 Moves the left/top edge of the splitter handle with id \a id as
705 close as possible to position \a p, which is the distance from the 715 close as possible to position \a p, which is the distance from the
706 left (or top) edge of the widget. 716 left (or top) edge of the widget.
707 717
708 For Arabic and Hebrew the layout is reversed, and using this 718 For Arabic and Hebrew the layout is reversed, and using this
709 function to set the position of the splitter might lead to 719 function to set the position of the splitter might lead to
710 unexpected results, since in Arabic and Hebrew the position of 720 unexpected results, since in Arabic and Hebrew the position of
711 splitter one is to the left of the position of splitter zero. 721 splitter one is to the left of the position of splitter zero.
712 722
713 \sa idAfter() 723 \sa idAfter()
714*/ 724*/
715void KDGanttMinimizeSplitter::moveSplitter( QCOORD p, int id ) 725void KDGanttMinimizeSplitter::moveSplitter( QCOORD p, int id )
716{ 726{
717 p = adjustPos( p, id ); 727 p = adjustPos( p, id );
718 QSplitterLayoutStruct *s = data->list.at(id); 728 QSplitterLayoutStruct *s = data->list.at(id);
719 int oldP = orient == Horizontal ? s->wid->x() : s->wid->y(); 729 int oldP = orient == Horizontal ? s->wid->x() : s->wid->y();
720 bool upLeft; 730 bool upLeft;
721 if ( false && orient == Horizontal ) { 731 if ( false && orient == Horizontal ) {
722 p += s->wid->width(); 732 p += s->wid->width();
723 upLeft = p > oldP; 733 upLeft = p > oldP;
724 } else 734 } else
725 upLeft = p < oldP; 735 upLeft = p < oldP;
726 736
727 moveAfter( p, id, upLeft ); 737 moveAfter( p, id, upLeft );
728 moveBefore( p-1, id-1, upLeft ); 738 moveBefore( p-1, id-1, upLeft );
729 739
730 storeSizes(); 740 storeSizes();
731} 741}
732 742
733 743
734void KDGanttMinimizeSplitter::setG( QWidget *w, int p, int s, bool isSplitter ) 744void KDGanttMinimizeSplitter::setG( QWidget *w, int p, int s, bool isSplitter )
735{ 745{
736 if ( orient == Horizontal ) { 746 if ( orient == Horizontal ) {
737 if ( false && orient == Horizontal && !isSplitter ) 747 if ( false && orient == Horizontal && !isSplitter )
738 p = contentsRect().width() - p - s; 748 p = contentsRect().width() - p - s;
739 w->setGeometry( p, contentsRect().y(), s, contentsRect().height() ); 749 w->setGeometry( p, contentsRect().y(), s, contentsRect().height() );
740 } else 750 } else
741 w->setGeometry( contentsRect().x(), p, contentsRect().width(), s ); 751 w->setGeometry( contentsRect().x(), p, contentsRect().width(), s );
742} 752}
743 753
744 754
745/* 755/*
746 Places the right/bottom edge of the widget at \a id at position \a pos. 756 Places the right/bottom edge of the widget at \a id at position \a pos.
747 757
748 \sa idAfter() 758 \sa idAfter()
749*/ 759*/
750void KDGanttMinimizeSplitter::moveBefore( int pos, int id, bool upLeft ) 760void KDGanttMinimizeSplitter::moveBefore( int pos, int id, bool upLeft )
751{ 761{
752 if( id < 0 ) 762 if( id < 0 )
753 return; 763 return;
754 QSplitterLayoutStruct *s = data->list.at(id); 764 QSplitterLayoutStruct *s = data->list.at(id);
755 if ( !s ) 765 if ( !s )
756 return; 766 return;
757 QWidget *w = s->wid; 767 QWidget *w = s->wid;
758 if ( w->isHidden() ) { 768 if ( w->isHidden() ) {
759 moveBefore( pos, id-1, upLeft ); 769 moveBefore( pos, id-1, upLeft );
760 } else if ( s->isSplitter ) { 770 } else if ( s->isSplitter ) {
761 int pos1, pos2; 771 int pos1, pos2;
762 int dd = s->sizer; 772 int dd = s->sizer;
763 if( false && orient == Horizontal ) { 773 if( false && orient == Horizontal ) {
764 pos1 = pos; 774 pos1 = pos;
765 pos2 = pos + dd; 775 pos2 = pos + dd;
766 } else { 776 } else {
767 pos2 = pos - dd; 777 pos2 = pos - dd;
768 pos1 = pos2 + 1; 778 pos1 = pos2 + 1;
769 } 779 }
770 if ( upLeft ) { 780 if ( upLeft ) {
771 setG( w, pos1, dd, TRUE ); 781 setG( w, pos1, dd, TRUE );
772 moveBefore( pos2, id-1, upLeft ); 782 moveBefore( pos2, id-1, upLeft );
773 } else { 783 } else {
774 moveBefore( pos2, id-1, upLeft ); 784 moveBefore( pos2, id-1, upLeft );
775 setG( w, pos1, dd, TRUE ); 785 setG( w, pos1, dd, TRUE );
776 } 786 }
777 } else { 787 } else {
778 int dd, newLeft, nextPos; 788 int dd, newLeft, nextPos;
779 if( false && orient == Horizontal ) { 789 if( false && orient == Horizontal ) {
780 dd = w->geometry().right() - pos; 790 dd = w->geometry().right() - pos;
781 dd = QMAX( pick(minSize(w)), QMIN(dd, pick(w->maximumSize()))); 791 dd = QMAX( pick(minSize(w)), QMIN(dd, pick(w->maximumSize())));
782 newLeft = pos+1; 792 newLeft = pos+1;
783 nextPos = newLeft + dd; 793 nextPos = newLeft + dd;
784 } else { 794 } else {
785 dd = pos - pick( w->pos() ) + 1; 795 dd = pos - pick( w->pos() ) + 1;
786 dd = QMAX( pick(minSize(w)), QMIN(dd, pick(w->maximumSize()))); 796 dd = QMAX( pick(minSize(w)), QMIN(dd, pick(w->maximumSize())));
787 newLeft = pos-dd+1; 797 newLeft = pos-dd+1;
788 nextPos = newLeft - 1; 798 nextPos = newLeft - 1;
789 } 799 }
790 setG( w, newLeft, dd, TRUE ); 800 setG( w, newLeft, dd, TRUE );
791 moveBefore( nextPos, id-1, upLeft ); 801 moveBefore( nextPos, id-1, upLeft );
792 } 802 }
793} 803}
794 804
795 805
796/* 806/*
797 Places the left/top edge of the widget at \a id at position \a pos. 807 Places the left/top edge of the widget at \a id at position \a pos.
798 808
799 \sa idAfter() 809 \sa idAfter()
800*/ 810*/
801void KDGanttMinimizeSplitter::moveAfter( int pos, int id, bool upLeft ) 811void KDGanttMinimizeSplitter::moveAfter( int pos, int id, bool upLeft )
802{ 812{
803 QSplitterLayoutStruct *s = id < int(data->list.count()) ? 813 QSplitterLayoutStruct *s = id < int(data->list.count()) ?
804 data->list.at(id) : 0; 814 data->list.at(id) : 0;
805 if ( !s ) 815 if ( !s )
806 return; 816 return;
807 QWidget *w = s->wid; 817 QWidget *w = s->wid;
808 if ( w->isHidden() ) { 818 if ( w->isHidden() ) {
809 moveAfter( pos, id+1, upLeft ); 819 moveAfter( pos, id+1, upLeft );
810 } else if ( pick( w->pos() ) == pos ) { 820 } else if ( pick( w->pos() ) == pos ) {
811 //No need to do anything if it's already there. 821 //No need to do anything if it's already there.
812 return; 822 return;
813 } else if ( s->isSplitter ) { 823 } else if ( s->isSplitter ) {
814 int dd = s->sizer; 824 int dd = s->sizer;
815 int pos1, pos2; 825 int pos1, pos2;
816 if( false && orient == Horizontal ) { 826 if( false && orient == Horizontal ) {
817 pos2 = pos - dd; 827 pos2 = pos - dd;
818 pos1 = pos2 + 1; 828 pos1 = pos2 + 1;
819 } else { 829 } else {
820 pos1 = pos; 830 pos1 = pos;
821 pos2 = pos + dd; 831 pos2 = pos + dd;
822 } 832 }
823 if ( upLeft ) { 833 if ( upLeft ) {
824 setG( w, pos1, dd, TRUE ); 834 setG( w, pos1, dd, TRUE );
825 moveAfter( pos2, id+1, upLeft ); 835 moveAfter( pos2, id+1, upLeft );
826 } else { 836 } else {
827 moveAfter( pos2, id+1, upLeft ); 837 moveAfter( pos2, id+1, upLeft );
828 setG( w, pos1, dd, TRUE ); 838 setG( w, pos1, dd, TRUE );
829 } 839 }
830 } else { 840 } else {
831 int left = pick( w->pos() ); 841 int left = pick( w->pos() );
832 int right, dd,/* newRight,*/ newLeft, nextPos; 842 int right, dd,/* newRight,*/ newLeft, nextPos;
833 if ( false && orient == Horizontal ) { 843 if ( false && orient == Horizontal ) {
834 dd = pos - left + 1; 844 dd = pos - left + 1;
835 dd = QMAX( pick(minSize(w)), QMIN(dd, pick(w->maximumSize()))); 845 dd = QMAX( pick(minSize(w)), QMIN(dd, pick(w->maximumSize())));
836 newLeft = pos-dd+1; 846 newLeft = pos-dd+1;
837 nextPos = newLeft - 1; 847 nextPos = newLeft - 1;
838 } else { 848 } else {
839 right = pick( w->geometry().bottomRight() ); 849 right = pick( w->geometry().bottomRight() );
840 dd = right - pos + 1; 850 dd = right - pos + 1;
841 dd = QMAX( pick(minSize(w)), QMIN(dd, pick(w->maximumSize()))); 851 dd = QMAX( pick(minSize(w)), QMIN(dd, pick(w->maximumSize())));
842 /*newRight = pos+dd-1;*/ 852 /*newRight = pos+dd-1;*/
843 newLeft = pos; 853 newLeft = pos;
844 nextPos = newLeft + dd; 854 nextPos = newLeft + dd;
845 } 855 }
846 setG( w, newLeft, dd, TRUE ); 856 setG( w, newLeft, dd, TRUE );
847 /*if( right != newRight )*/ 857 /*if( right != newRight )*/
848 moveAfter( nextPos, id+1, upLeft ); 858 moveAfter( nextPos, id+1, upLeft );
849 } 859 }
850} 860}
851 861
852 862
853void KDGanttMinimizeSplitter::expandPos( int id, int* min, int* max ) 863void KDGanttMinimizeSplitter::expandPos( int id, int* min, int* max )
854{ 864{
855 QSplitterLayoutStruct *s = data->list.at(id-1); 865 QSplitterLayoutStruct *s = data->list.at(id-1);
856 QWidget* w = s->wid; 866 QWidget* w = s->wid;
857 *min = pick( w->mapToParent( QPoint(0,0) ) ); 867 *min = pick( w->mapToParent( QPoint(0,0) ) );
858 868
859 if ( (uint) id == data->list.count() ) { 869 if ( (uint) id == data->list.count() ) {
860 pick( size() ); 870 pick( size() );
861 } 871 }
862 else { 872 else {
863 QSplitterLayoutStruct *s = data->list.at(id+1); 873 QSplitterLayoutStruct *s = data->list.at(id+1);
864 QWidget* w = s->wid; 874 QWidget* w = s->wid;
865 *max = pick( w->mapToParent( QPoint( w->width(), w->height() ) ) ) -8; 875 *max = pick( w->mapToParent( QPoint( w->width(), w->height() ) ) ) -8;
866 } 876 }
867} 877}
868 878
869 879
870/*! 880/*!
871 Returns the valid range of the splitter with id \a id in \a *min and \a *max. 881 Returns the valid range of the splitter with id \a id in \a *min and \a *max.
872 882
873 \sa idAfter() 883 \sa idAfter()
874*/ 884*/
875 885
876void KDGanttMinimizeSplitter::getRange( int id, int *min, int *max ) 886void KDGanttMinimizeSplitter::getRange( int id, int *min, int *max )
877{ 887{
878 int minB = 0;//before 888 int minB = 0;//before
879 int maxB = 0; 889 int maxB = 0;
880 int minA = 0; 890 int minA = 0;
881 int maxA = 0;//after 891 int maxA = 0;//after
882 int n = data->list.count(); 892 int n = data->list.count();
883 if ( id < 0 || id >= n ) 893 if ( id < 0 || id >= n )
884 return; 894 return;
885 int i; 895 int i;
886 for ( i = 0; i < id; i++ ) { 896 for ( i = 0; i < id; i++ ) {
887 QSplitterLayoutStruct *s = data->list.at(i); 897 QSplitterLayoutStruct *s = data->list.at(i);
888 if ( s->wid->isHidden() ) { 898 if ( s->wid->isHidden() ) {
889 //ignore 899 //ignore
890 } else if ( s->isSplitter ) { 900 } else if ( s->isSplitter ) {
891 minB += s->sizer; 901 minB += s->sizer;
892 maxB += s->sizer; 902 maxB += s->sizer;
893 } else { 903 } else {
894 minB += pick( minSize(s->wid) ); 904 minB += pick( minSize(s->wid) );
895 maxB += pick( s->wid->maximumSize() ); 905 maxB += pick( s->wid->maximumSize() );
896 } 906 }
897 } 907 }
898 for ( i = id; i < n; i++ ) { 908 for ( i = id; i < n; i++ ) {
899 QSplitterLayoutStruct *s = data->list.at(i); 909 QSplitterLayoutStruct *s = data->list.at(i);
900 if ( s->wid->isHidden() ) { 910 if ( s->wid->isHidden() ) {
901 //ignore 911 //ignore
902 } else if ( s->isSplitter ) { 912 } else if ( s->isSplitter ) {
903 minA += s->sizer; 913 minA += s->sizer;
904 maxA += s->sizer; 914 maxA += s->sizer;
905 } else { 915 } else {
906 minA += pick( minSize(s->wid) ); 916 minA += pick( minSize(s->wid) );
907 maxA += pick( s->wid->maximumSize() ); 917 maxA += pick( s->wid->maximumSize() );
908 } 918 }
909 } 919 }
910 QRect r = contentsRect(); 920 QRect r = contentsRect();
911 if ( orient == Horizontal && false ) { 921 if ( orient == Horizontal && false ) {
912#if QT_VERSION >= 0x030000 922#if QT_VERSION >= 0x030000
913 int splitterWidth = style().pixelMetric(QStyle::PM_SplitterWidth, this); 923 int splitterWidth = style().pixelMetric(QStyle::PM_SplitterWidth, this);
914#else 924#else
915 int splitterWidth = style().splitterWidth(); 925 int splitterWidth = style().splitterWidth();
916#endif 926#endif
917 927
918 if ( min ) 928 if ( min )
919 *min = pick(r.topRight()) - QMIN( maxB, pick(r.size())-minA ) - splitterWidth; 929 *min = pick(r.topRight()) - QMIN( maxB, pick(r.size())-minA ) - splitterWidth;
920 if ( max ) 930 if ( max )
921 *max = pick(r.topRight()) - QMAX( minB, pick(r.size())-maxA ) - splitterWidth; 931 *max = pick(r.topRight()) - QMAX( minB, pick(r.size())-maxA ) - splitterWidth;
922 } else { 932 } else {
923 if ( min ) 933 if ( min )
924 *min = pick(r.topLeft()) + QMAX( minB, pick(r.size())-maxA ); 934 *min = pick(r.topLeft()) + QMAX( minB, pick(r.size())-maxA );
925 if ( max ) 935 if ( max )
926 *max = pick(r.topLeft()) + QMIN( maxB, pick(r.size())-minA ); 936 *max = pick(r.topLeft()) + QMIN( maxB, pick(r.size())-minA );
927 } 937 }
928} 938}
929 939
930 940
931/*! 941/*!
932 Returns the closest legal position to \a p of the splitter with id \a id. 942 Returns the closest legal position to \a p of the splitter with id \a id.
933 943
934 \sa idAfter() 944 \sa idAfter()
935*/ 945*/
936 946
937int KDGanttMinimizeSplitter::adjustPos( int p, int id ) 947int KDGanttMinimizeSplitter::adjustPos( int p, int id )
938{ 948{
939 int min = 0; 949 int min = 0;
940 int max = 0; 950 int max = 0;
941 getRange( id, &min, &max ); 951 getRange( id, &min, &max );
942 p = QMAX( min, QMIN( p, max ) ); 952 p = QMAX( min, QMIN( p, max ) );
943 953
944 return p; 954 return p;
945} 955}
946 956
947 957
948void KDGanttMinimizeSplitter::doResize() 958void KDGanttMinimizeSplitter::doResize()
949{ 959{
950 QRect r = contentsRect(); 960 QRect r = contentsRect();
951 int i; 961 int i;
952 int n = data->list.count(); 962 int n = data->list.count();
953 QMemArray<QLayoutStruct> a( n ); 963 QMemArray<QLayoutStruct> a( n );
954 for ( i = 0; i< n; i++ ) { 964 for ( i = 0; i< n; i++ ) {
955 a[i].init(); 965 a[i].init();
956 QSplitterLayoutStruct *s = data->list.at(i); 966 QSplitterLayoutStruct *s = data->list.at(i);
957 if ( s->wid->isHidden() ) { 967 if ( s->wid->isHidden() ) {
958 a[i].stretch = 0; 968 a[i].stretch = 0;
959 a[i].sizeHint = a[i].minimumSize = 0; 969 a[i].sizeHint = a[i].minimumSize = 0;
960 a[i].maximumSize = 0; 970 a[i].maximumSize = 0;
961 } else if ( s->isSplitter ) { 971 } else if ( s->isSplitter ) {
962 a[i].stretch = 0; 972 a[i].stretch = 0;
963 a[i].sizeHint = a[i].minimumSize = a[i].maximumSize = s->sizer; 973 a[i].sizeHint = a[i].minimumSize = a[i].maximumSize = s->sizer;
964 a[i].empty = FALSE; 974 a[i].empty = FALSE;
965 } else if ( s->mode == KeepSize ) { 975 } else if ( s->mode == KeepSize ) {
966 a[i].stretch = 0; 976 a[i].stretch = 0;
967 a[i].minimumSize = pick( minSize(s->wid) ); 977 a[i].minimumSize = pick( minSize(s->wid) );
968 a[i].sizeHint = s->sizer; 978 a[i].sizeHint = s->sizer;
969 a[i].maximumSize = pick( s->wid->maximumSize() ); 979 a[i].maximumSize = pick( s->wid->maximumSize() );
970 a[i].empty = FALSE; 980 a[i].empty = FALSE;
971 } else if ( s->mode == FollowSizeHint ) { 981 } else if ( s->mode == FollowSizeHint ) {
972 a[i].stretch = 0; 982 a[i].stretch = 0;
973 a[i].minimumSize = a[i].sizeHint = pick( s->wid->sizeHint() ); 983 a[i].minimumSize = a[i].sizeHint = pick( s->wid->sizeHint() );
974 a[i].maximumSize = pick( s->wid->maximumSize() ); 984 a[i].maximumSize = pick( s->wid->maximumSize() );
975 a[i].empty = FALSE; 985 a[i].empty = FALSE;
976 } else { //proportional 986 } else { //proportional
977 a[i].stretch = s->sizer; 987 a[i].stretch = s->sizer;
978 a[i].maximumSize = pick( s->wid->maximumSize() ); 988 a[i].maximumSize = pick( s->wid->maximumSize() );
979 a[i].sizeHint = a[i].minimumSize = pick( minSize(s->wid) ); 989 a[i].sizeHint = a[i].minimumSize = pick( minSize(s->wid) );
980 a[i].empty = FALSE; 990 a[i].empty = FALSE;
981 } 991 }
982 } 992 }
983 993
984 kdganttGeomCalc( a, 0, n, pick( r.topLeft() ), pick( r.size() ), 0 ); 994 kdganttGeomCalc( a, 0, n, pick( r.topLeft() ), pick( r.size() ), 0 );
985 995
986 for ( i = 0; i< n; i++ ) { 996 for ( i = 0; i< n; i++ ) {
987 QSplitterLayoutStruct *s = data->list.at(i); 997 QSplitterLayoutStruct *s = data->list.at(i);
988 setG( s->wid, a[i].pos, a[i].size ); 998 setG( s->wid, a[i].pos, a[i].size );
989 } 999 }
990 1000
991} 1001}
992 1002
993 1003
994void KDGanttMinimizeSplitter::recalc( bool update ) 1004void KDGanttMinimizeSplitter::recalc( bool update )
995{ 1005{
996 int fi = 2*frameWidth(); 1006 int fi = 2*frameWidth();
997 int maxl = fi; 1007 int maxl = fi;
998 int minl = fi; 1008 int minl = fi;
999 int maxt = QWIDGETSIZE_MAX; 1009 int maxt = QWIDGETSIZE_MAX;
1000 int mint = fi; 1010 int mint = fi;
1001 int n = data->list.count(); 1011 int n = data->list.count();
1002 bool first = TRUE; 1012 bool first = TRUE;
1003 /* 1013 /*
1004 The splitter before a hidden widget is always hidden. 1014 The splitter before a hidden widget is always hidden.
1005 The splitter before the first visible widget is hidden. 1015 The splitter before the first visible widget is hidden.
1006 The splitter before any other visible widget is visible. 1016 The splitter before any other visible widget is visible.
1007 */ 1017 */
1008 for ( int i = 0; i< n; i++ ) { 1018 for ( int i = 0; i< n; i++ ) {
1009 QSplitterLayoutStruct *s = data->list.at(i); 1019 QSplitterLayoutStruct *s = data->list.at(i);
1010 if ( !s->isSplitter ) { 1020 if ( !s->isSplitter ) {
1011 QSplitterLayoutStruct *p = (i > 0) ? p = data->list.at( i-1 ) : 0; 1021 QSplitterLayoutStruct *p = (i > 0) ? p = data->list.at( i-1 ) : 0;
1012 if ( p && p->isSplitter ) 1022 if ( p && p->isSplitter )
1013 if ( first || s->wid->isHidden() ) 1023 if ( first || s->wid->isHidden() )
1014 p->wid->hide(); //may trigger new recalc 1024 p->wid->hide(); //may trigger new recalc
1015 else 1025 else
1016 p->wid->show(); //may trigger new recalc 1026 p->wid->show(); //may trigger new recalc
1017 if ( !s->wid->isHidden() ) 1027 if ( !s->wid->isHidden() )
1018 first = FALSE; 1028 first = FALSE;
1019 } 1029 }
1020 } 1030 }
1021 1031
1022 bool empty=TRUE; 1032 bool empty=TRUE;
1023 for ( int j = 0; j< n; j++ ) { 1033 for ( int j = 0; j< n; j++ ) {
1024 QSplitterLayoutStruct *s = data->list.at(j); 1034 QSplitterLayoutStruct *s = data->list.at(j);
1025 if ( !s->wid->isHidden() ) { 1035 if ( !s->wid->isHidden() ) {
1026 empty = FALSE; 1036 empty = FALSE;
1027 if ( s->isSplitter ) { 1037 if ( s->isSplitter ) {
1028 minl += s->sizer; 1038 minl += s->sizer;
1029 maxl += s->sizer; 1039 maxl += s->sizer;
1030 } else { 1040 } else {
1031 QSize minS = minSize(s->wid); 1041 QSize minS = minSize(s->wid);
1032 minl += pick( minS ); 1042 minl += pick( minS );
1033 maxl += pick( s->wid->maximumSize() ); 1043 maxl += pick( s->wid->maximumSize() );
1034 mint = QMAX( mint, trans( minS )); 1044 mint = QMAX( mint, trans( minS ));
1035 int tm = trans( s->wid->maximumSize() ); 1045 int tm = trans( s->wid->maximumSize() );
1036 if ( tm > 0 ) 1046 if ( tm > 0 )
1037 maxt = QMIN( maxt, tm ); 1047 maxt = QMIN( maxt, tm );
1038 } 1048 }
1039 } 1049 }
1040 } 1050 }
1041 if ( empty ) { 1051 if ( empty ) {
1042 if ( parentWidget() != 0 && parentWidget()->inherits("KDGanttMinimizeSplitter") ) { 1052 if ( parentWidget() != 0 && parentWidget()->inherits("KDGanttMinimizeSplitter") ) {
1043 // nested splitters; be nice 1053 // nested splitters; be nice
1044 maxl = maxt = 0; 1054 maxl = maxt = 0;
1045 } else { 1055 } else {
1046 // KDGanttMinimizeSplitter with no children yet 1056 // KDGanttMinimizeSplitter with no children yet
1047 maxl = QWIDGETSIZE_MAX; 1057 maxl = QWIDGETSIZE_MAX;
1048 } 1058 }
1049 } else { 1059 } else {
1050 maxl = QMIN( maxl, QWIDGETSIZE_MAX ); 1060 maxl = QMIN( maxl, QWIDGETSIZE_MAX );
1051 } 1061 }
1052 if ( maxt < mint ) 1062 if ( maxt < mint )
1053 maxt = mint; 1063 maxt = mint;
1054 1064
1055 if ( orient == Horizontal ) { 1065 if ( orient == Horizontal ) {
1056 setMaximumSize( maxl, maxt ); 1066 setMaximumSize( maxl, maxt );
1057 setMinimumSize( minl, mint ); 1067 setMinimumSize( minl, mint );
1058 } else { 1068 } else {
1059 setMaximumSize( maxt, maxl ); 1069 setMaximumSize( maxt, maxl );
1060 setMinimumSize( mint, minl ); 1070 setMinimumSize( mint, minl );
1061 } 1071 }
1062 if ( update ) 1072 if ( update )
1063 doResize(); 1073 doResize();
1064} 1074}
1065 1075
1066/*! 1076/*!
1067 Sets resize mode of \a w to \a mode. 1077 Sets resize mode of \a w to \a mode.
1068 1078
1069 \sa ResizeMode 1079 \sa ResizeMode
1070*/ 1080*/
1071 1081
1072void KDGanttMinimizeSplitter::setResizeMode( QWidget *w, ResizeMode mode ) 1082void KDGanttMinimizeSplitter::setResizeMode( QWidget *w, ResizeMode mode )
1073{ 1083{
1074 processChildEvents(); 1084 processChildEvents();
1075 QSplitterLayoutStruct *s = data->list.first(); 1085 QSplitterLayoutStruct *s = data->list.first();
1076 while ( s ) { 1086 while ( s ) {
1077 if ( s->wid == w ) { 1087 if ( s->wid == w ) {
1078 s->mode = mode; 1088 s->mode = mode;
1079 return; 1089 return;
1080 } 1090 }
1081 s = data->list.next(); 1091 s = data->list.next();
1082 } 1092 }
1083 s = addWidget( w, TRUE ); 1093 s = addWidget( w, TRUE );
1084 s->mode = mode; 1094 s->mode = mode;
1085} 1095}
1086 1096
1087 1097
1088/*! 1098/*!
1089 Returns TRUE if opaque resize is on; otherwise returns FALSE. 1099 Returns TRUE if opaque resize is on; otherwise returns FALSE.
1090 1100
1091 \sa setOpaqueResize() 1101 \sa setOpaqueResize()
1092*/ 1102*/
1093 1103
1094bool KDGanttMinimizeSplitter::opaqueResize() const 1104bool KDGanttMinimizeSplitter::opaqueResize() const
1095{ 1105{
1096 return data->opaque; 1106 return data->opaque;
1097} 1107}
1098 1108
1099 1109
1100/*! 1110/*!
1101 If \a on is TRUE then opaque resizing is turned on; otherwise 1111 If \a on is TRUE then opaque resizing is turned on; otherwise
1102 opaque resizing is turned off. 1112 opaque resizing is turned off.
1103 Opaque resizing is initially turned off. 1113 Opaque resizing is initially turned off.
1104 1114
1105 \sa opaqueResize() 1115 \sa opaqueResize()
1106*/ 1116*/
1107 1117
1108void KDGanttMinimizeSplitter::setOpaqueResize( bool on ) 1118void KDGanttMinimizeSplitter::setOpaqueResize( bool on )
1109{ 1119{
1110 data->opaque = on; 1120 data->opaque = on;
1111} 1121}
1112 1122
1113 1123
1114/*! 1124/*!
1115 Moves widget \a w to the leftmost/top position. 1125 Moves widget \a w to the leftmost/top position.
1116*/ 1126*/
1117 1127
1118void KDGanttMinimizeSplitter::moveToFirst( QWidget *w ) 1128void KDGanttMinimizeSplitter::moveToFirst( QWidget *w )
1119{ 1129{
1120 processChildEvents(); 1130 processChildEvents();
1121 bool found = FALSE; 1131 bool found = FALSE;
1122 QSplitterLayoutStruct *s = data->list.first(); 1132 QSplitterLayoutStruct *s = data->list.first();
1123 while ( s ) { 1133 while ( s ) {
1124 if ( s->wid == w ) { 1134 if ( s->wid == w ) {
1125 found = TRUE; 1135 found = TRUE;
1126 QSplitterLayoutStruct *p = data->list.prev(); 1136 QSplitterLayoutStruct *p = data->list.prev();
1127 if ( p ) { // not already at first place 1137 if ( p ) { // not already at first place
1128 data->list.take(); //take p 1138 data->list.take(); //take p
1129 data->list.take(); // take s 1139 data->list.take(); // take s
1130 data->list.insert( 0, p ); 1140 data->list.insert( 0, p );
1131 data->list.insert( 0, s ); 1141 data->list.insert( 0, s );
1132 } 1142 }
1133 break; 1143 break;
1134 } 1144 }
1135 s = data->list.next(); 1145 s = data->list.next();
1136 } 1146 }
1137 if ( !found ) 1147 if ( !found )
1138 addWidget( w, TRUE ); 1148 addWidget( w, TRUE );
1139 recalcId(); 1149 recalcId();
1140} 1150}
1141 1151
1142 1152
1143/*! 1153/*!
1144 Moves widget \a w to the rightmost/bottom position. 1154 Moves widget \a w to the rightmost/bottom position.
1145*/ 1155*/
1146 1156
1147void KDGanttMinimizeSplitter::moveToLast( QWidget *w ) 1157void KDGanttMinimizeSplitter::moveToLast( QWidget *w )
1148{ 1158{
1149 processChildEvents(); 1159 processChildEvents();
1150 bool found = FALSE; 1160 bool found = FALSE;
1151 QSplitterLayoutStruct *s = data->list.first(); 1161 QSplitterLayoutStruct *s = data->list.first();
1152 while ( s ) { 1162 while ( s ) {
1153 if ( s->wid == w ) { 1163 if ( s->wid == w ) {
1154 found = TRUE; 1164 found = TRUE;
1155 data->list.take(); // take s 1165 data->list.take(); // take s
1156 QSplitterLayoutStruct *p = data->list.current(); 1166 QSplitterLayoutStruct *p = data->list.current();
1157 if ( p ) { // the splitter handle after s 1167 if ( p ) { // the splitter handle after s
1158 data->list.take(); //take p 1168 data->list.take(); //take p
1159 data->list.append( p ); 1169 data->list.append( p );
1160 } 1170 }
1161 data->list.append( s ); 1171 data->list.append( s );
1162 break; 1172 break;
1163 } 1173 }
1164 s = data->list.next(); 1174 s = data->list.next();
1165 } 1175 }
1166 if ( !found ) 1176 if ( !found )
1167 addWidget( w); 1177 addWidget( w);
1168 recalcId(); 1178 recalcId();
1169} 1179}
1170 1180
1171 1181
1172void KDGanttMinimizeSplitter::recalcId() 1182void KDGanttMinimizeSplitter::recalcId()
1173{ 1183{
1174 int n = data->list.count(); 1184 int n = data->list.count();
1175 for ( int i = 0; i < n; i++ ) { 1185 for ( int i = 0; i < n; i++ ) {
1176 QSplitterLayoutStruct *s = data->list.at(i); 1186 QSplitterLayoutStruct *s = data->list.at(i);
1177 if ( s->isSplitter ) 1187 if ( s->isSplitter )
1178 ((KDGanttSplitterHandle*)s->wid)->setId(i); 1188 ((KDGanttSplitterHandle*)s->wid)->setId(i);
1179 } 1189 }
1180} 1190}
1181 1191
1182 1192
1183/*!\reimp 1193/*!\reimp
1184*/ 1194*/
1185QSize KDGanttMinimizeSplitter::sizeHint() const 1195QSize KDGanttMinimizeSplitter::sizeHint() const
1186{ 1196{
1187 constPolish(); 1197 constPolish();
1188 int l = 0; 1198 int l = 0;
1189 int t = 0; 1199 int t = 0;
1190 if ( children() ) { 1200 if ( children() ) {
1191 const QObjectList * c = children(); 1201 const QObjectList * c = children();
1192 QObjectListIt it( *c ); 1202 QObjectListIt it( *c );
1193 QObject * o; 1203 QObject * o;
1194 1204
1195 while( (o=it.current()) != 0 ) { 1205 while( (o=it.current()) != 0 ) {
1196 ++it; 1206 ++it;
1197 if ( o->isWidgetType() && 1207 if ( o->isWidgetType() &&
1198 !((QWidget*)o)->isHidden() ) { 1208 !((QWidget*)o)->isHidden() ) {
1199 QSize s = ((QWidget*)o)->sizeHint(); 1209 QSize s = ((QWidget*)o)->sizeHint();
1200 if ( s.isValid() ) { 1210 if ( s.isValid() ) {
1201 l += pick( s ); 1211 l += pick( s );
1202 t = QMAX( t, trans( s ) ); 1212 t = QMAX( t, trans( s ) );
1203 } 1213 }
1204 } 1214 }
1205 } 1215 }
1206 } 1216 }
1207 return orientation() == Horizontal ? QSize( l, t ) : QSize( t, l ); 1217 return orientation() == Horizontal ? QSize( l, t ) : QSize( t, l );
1208} 1218}
1209 1219
1210 1220
1211/*! 1221/*!
1212\reimp 1222\reimp
1213*/ 1223*/
1214 1224
1215QSize KDGanttMinimizeSplitter::minimumSizeHint() const 1225QSize KDGanttMinimizeSplitter::minimumSizeHint() const
1216{ 1226{
1217 constPolish(); 1227 constPolish();
1218 int l = 0; 1228 int l = 0;
1219 int t = 0; 1229 int t = 0;
1220 if ( children() ) { 1230 if ( children() ) {
1221 const QObjectList * c = children(); 1231 const QObjectList * c = children();
1222 QObjectListIt it( *c ); 1232 QObjectListIt it( *c );
1223 QObject * o; 1233 QObject * o;
1224 1234
1225 while( (o=it.current()) != 0 ) { 1235 while( (o=it.current()) != 0 ) {
1226 ++it; 1236 ++it;
1227 if ( o->isWidgetType() && 1237 if ( o->isWidgetType() &&
1228 !((QWidget*)o)->isHidden() ) { 1238 !((QWidget*)o)->isHidden() ) {
1229 QSize s = minSizeHint((QWidget*)o); 1239 QSize s = minSizeHint((QWidget*)o);
1230 if ( s.isValid() ) { 1240 if ( s.isValid() ) {
1231 l += pick( s ); 1241 l += pick( s );
1232 t = QMAX( t, trans( s ) ); 1242 t = QMAX( t, trans( s ) );
1233 } 1243 }
1234 } 1244 }
1235 } 1245 }
1236 } 1246 }
1237 return orientation() == Horizontal ? QSize( l, t ) : QSize( t, l ); 1247 return orientation() == Horizontal ? QSize( l, t ) : QSize( t, l );
1238} 1248}
1239 1249
1240 1250
1241/* 1251/*
1242 Calculates stretch parameters from current sizes 1252 Calculates stretch parameters from current sizes
1243*/ 1253*/
1244 1254
1245void KDGanttMinimizeSplitter::storeSizes() 1255void KDGanttMinimizeSplitter::storeSizes()
1246{ 1256{
1247 QSplitterLayoutStruct *s = data->list.first(); 1257 QSplitterLayoutStruct *s = data->list.first();
1248 while ( s ) { 1258 while ( s ) {
1249 if ( !s->isSplitter ) 1259 if ( !s->isSplitter )
1250 s->sizer = pick( s->wid->size() ); 1260 s->sizer = pick( s->wid->size() );
1251 s = data->list.next(); 1261 s = data->list.next();
1252 } 1262 }
1253} 1263}
1254 1264
1255 1265
1256#if 0 // ### remove this code ASAP 1266#if 0 // ### remove this code ASAP
1257 1267
1258/*! 1268/*!
1259 Hides \a w if \a hide is TRUE and updates the splitter. 1269 Hides \a w if \a hide is TRUE and updates the splitter.
1260 1270
1261 \warning Due to a limitation in the current implementation, 1271 \warning Due to a limitation in the current implementation,
1262 calling QWidget::hide() will not work. 1272 calling QWidget::hide() will not work.
1263*/ 1273*/
1264 1274
1265void KDGanttMinimizeSplitter::setHidden( QWidget *w, bool hide ) 1275void KDGanttMinimizeSplitter::setHidden( QWidget *w, bool hide )
1266{ 1276{
1267 if ( w == w1 ) { 1277 if ( w == w1 ) {
1268 w1show = !hide; 1278 w1show = !hide;
1269 } else if ( w == w2 ) { 1279 } else if ( w == w2 ) {
1270 w2show = !hide; 1280 w2show = !hide;
1271 } else { 1281 } else {
1272#ifdef QT_CHECK_RANGE 1282#ifdef QT_CHECK_RANGE
1273 qWarning( "KDGanttMinimizeSplitter::setHidden(), unknown widget" ); 1283 qWarning( "KDGanttMinimizeSplitter::setHidden(), unknown widget" );
1274#endif 1284#endif
1275 return; 1285 return;
1276 } 1286 }
1277 if ( hide ) 1287 if ( hide )
1278 w->hide(); 1288 w->hide();
1279 else 1289 else
1280 w->show(); 1290 w->show();
1281 recalc( TRUE ); 1291 recalc( TRUE );
1282} 1292}
1283 1293
1284 1294
1285/*! 1295/*!
1286 Returns the hidden status of \a w 1296 Returns the hidden status of \a w
1287*/ 1297*/
1288 1298
1289bool KDGanttMinimizeSplitter::isHidden( QWidget *w ) const 1299bool KDGanttMinimizeSplitter::isHidden( QWidget *w ) const
1290{ 1300{
1291 if ( w == w1 ) 1301 if ( w == w1 )
1292 return !w1show; 1302 return !w1show;
1293 else if ( w == w2 ) 1303 else if ( w == w2 )
1294 return !w2show; 1304 return !w2show;
1295#ifdef QT_CHECK_RANGE 1305#ifdef QT_CHECK_RANGE
1296 else 1306 else
1297 qWarning( "KDGanttMinimizeSplitter::isHidden(), unknown widget" ); 1307 qWarning( "KDGanttMinimizeSplitter::isHidden(), unknown widget" );
1298#endif 1308#endif
1299 return FALSE; 1309 return FALSE;
1300} 1310}
1301#endif 1311#endif
1302 1312
1303 1313
1304/*! 1314/*!
1305 Returns a list of the size parameters of all the widgets in this 1315 Returns a list of the size parameters of all the widgets in this
1306 splitter. 1316 splitter.
1307 1317
1308 Giving the values to another splitter's setSizes() function will 1318 Giving the values to another splitter's setSizes() function will
1309 produce a splitter with the same layout as this one. 1319 produce a splitter with the same layout as this one.
1310 1320
1311 Note that if you want to iterate over the list, you should 1321 Note that if you want to iterate over the list, you should
1312 iterate over a copy, e.g. 1322 iterate over a copy, e.g.
1313 \code 1323 \code
1314 QValueList<int> list = mySplitter.sizes(); 1324 QValueList<int> list = mySplitter.sizes();
1315 QValueList<int>::Iterator it = list.begin(); 1325 QValueList<int>::Iterator it = list.begin();
1316 while( it != list.end() ) { 1326 while( it != list.end() ) {
1317 myProcessing( *it ); 1327 myProcessing( *it );
1318 ++it; 1328 ++it;
1319 } 1329 }
1320 \endcode 1330 \endcode
1321 1331
1322 \sa setSizes() 1332 \sa setSizes()
1323*/ 1333*/
1324 1334
1325QValueList<int> KDGanttMinimizeSplitter::sizes() const 1335QValueList<int> KDGanttMinimizeSplitter::sizes() const
1326{ 1336{
1327 if ( !testWState(WState_Polished) ) { 1337 if ( !testWState(WState_Polished) ) {
1328 QWidget* that = (QWidget*) this; 1338 QWidget* that = (QWidget*) this;
1329 that->polish(); 1339 that->polish();
1330 } 1340 }
1331 QValueList<int> list; 1341 QValueList<int> list;
1332 QSplitterLayoutStruct *s = data->list.first(); 1342 QSplitterLayoutStruct *s = data->list.first();
1333 while ( s ) { 1343 while ( s ) {
1334 if ( !s->isSplitter ) 1344 if ( !s->isSplitter )
1335 list.append( s->sizer ); 1345 list.append( s->sizer );
1336 s = data->list.next(); 1346 s = data->list.next();
1337 } 1347 }
1338 return list; 1348 return list;
1339} 1349}
1340 1350
1341 1351
1342 1352
1343/*! 1353/*!
1344 Sets the size parameters to the values given in \a list. 1354 Sets the size parameters to the values given in \a list.
1345 If the splitter is horizontal, the values set the sizes from 1355 If the splitter is horizontal, the values set the sizes from
1346 left to right. If it is vertical, the sizes are applied from 1356 left to right. If it is vertical, the sizes are applied from
1347 top to bottom. 1357 top to bottom.
1348 Extra values in \a list are ignored. 1358 Extra values in \a list are ignored.
1349 1359
1350 If \a list contains too few values, the result is undefined 1360 If \a list contains too few values, the result is undefined
1351 but the program will still be well-behaved. 1361 but the program will still be well-behaved.
1352 1362
1353 \sa sizes() 1363 \sa sizes()
1354*/ 1364*/
1355 1365
1356void KDGanttMinimizeSplitter::setSizes( QValueList<int> list ) 1366void KDGanttMinimizeSplitter::setSizes( QValueList<int> list )
1357{ 1367{
1358 processChildEvents(); 1368 processChildEvents();
1359 QValueList<int>::Iterator it = list.begin(); 1369 QValueList<int>::Iterator it = list.begin();
1360 QSplitterLayoutStruct *s = data->list.first(); 1370 QSplitterLayoutStruct *s = data->list.first();
1361 while ( s && it != list.end() ) { 1371 while ( s && it != list.end() ) {
1362 if ( !s->isSplitter ) { 1372 if ( !s->isSplitter ) {
1363 s->sizer = *it; 1373 s->sizer = *it;
1364 ++it; 1374 ++it;
1365 } 1375 }
1366 s = data->list.next(); 1376 s = data->list.next();
1367 } 1377 }
1368 doResize(); 1378 doResize();
1369} 1379}
1370 1380
1371 1381
1372/*! 1382/*!
1373 Gets all posted child events, ensuring that the internal state of 1383 Gets all posted child events, ensuring that the internal state of
1374 the splitter is consistent. 1384 the splitter is consistent.
1375*/ 1385*/
1376 1386
1377void KDGanttMinimizeSplitter::processChildEvents() 1387void KDGanttMinimizeSplitter::processChildEvents()
1378{ 1388{
1379 QApplication::sendPostedEvents( this, QEvent::ChildInserted ); 1389 QApplication::sendPostedEvents( this, QEvent::ChildInserted );
1380} 1390}
1381 1391
1382 1392
1383/*! 1393/*!
1384 \reimp 1394 \reimp
1385*/ 1395*/
1386 1396
1387void KDGanttMinimizeSplitter::styleChange( QStyle& old ) 1397void KDGanttMinimizeSplitter::styleChange( QStyle& old )
1388{ 1398{
1389 1399
1390#if QT_VERSION >= 0x030000 1400#if QT_VERSION >= 0x030000
1391 int sw = style().pixelMetric(QStyle::PM_SplitterWidth, this); 1401 int sw = style().pixelMetric(QStyle::PM_SplitterWidth, this);
1392#else 1402#else
1393 int sw = style().splitterWidth(); 1403 int sw = style().splitterWidth();
1394#endif 1404#endif
1395 QSplitterLayoutStruct *s = data->list.first(); 1405 QSplitterLayoutStruct *s = data->list.first();
1396 while ( s ) { 1406 while ( s ) {
1397 if ( s->isSplitter ) 1407 if ( s->isSplitter )
1398 s->sizer = sw; 1408 s->sizer = sw;
1399 s = data->list.next(); 1409 s = data->list.next();
1400 } 1410 }
1401 doResize(); 1411 doResize();
1402 QFrame::styleChange( old ); 1412 QFrame::styleChange( old );
1403} 1413}
1404 1414
1405#endif 1415#endif
1406 1416
1407/*! 1417/*!
1408 Specifies the direction of the minimize buttons. 1418 Specifies the direction of the minimize buttons.
1409 If the orientation of the splitter is horizontal then with 1419 If the orientation of the splitter is horizontal then with
1410 KDGanttMinimizeSplitter::Left or KDGanttMinimizeSplitter::Right should be used, 1420 KDGanttMinimizeSplitter::Left or KDGanttMinimizeSplitter::Right should be used,
1411 otherwise either KDGanttMinimizeSplitter::Up or KDGanttMinimizeSplitter::Down 1421 otherwise either KDGanttMinimizeSplitter::Up or KDGanttMinimizeSplitter::Down
1412 should be used. 1422 should be used.
1413*/ 1423*/
1414void KDGanttMinimizeSplitter::setMinimizeDirection( Direction direction ) 1424void KDGanttMinimizeSplitter::setMinimizeDirection( Direction direction )
1415{ 1425{
1416 _direction = direction; 1426 _direction = direction;
1417} 1427}
1418 1428
1419/*! 1429/*!
1420 Returns the direction of the minimize buttons. 1430 Returns the direction of the minimize buttons.
1421*/ 1431*/
1422KDGanttMinimizeSplitter::Direction KDGanttMinimizeSplitter::minimizeDirection() const 1432KDGanttMinimizeSplitter::Direction KDGanttMinimizeSplitter::minimizeDirection() const
1423{ 1433{
1424 return _direction; 1434 return _direction;
1425} 1435}
1426 1436
1427/* 1437/*
1428 This is a copy of qGeomCalc() in qlayoutengine.cpp which 1438 This is a copy of qGeomCalc() in qlayoutengine.cpp which
1429 unfortunately isn't exported. 1439 unfortunately isn't exported.
1430*/ 1440*/
1431static inline int toFixed( int i ) { return i * 256; } 1441static inline int toFixed( int i ) { return i * 256; }
1432static inline int fRound( int i ) { 1442static inline int fRound( int i ) {
1433 return ( i % 256 < 128 ) ? i / 256 : 1 + i / 256; 1443 return ( i % 256 < 128 ) ? i / 256 : 1 + i / 256;
1434} 1444}
1435void kdganttGeomCalc( QMemArray<QLayoutStruct> &chain, int start, int count, int pos, 1445void kdganttGeomCalc( QMemArray<QLayoutStruct> &chain, int start, int count, int pos,
1436 int space, int spacer ) 1446 int space, int spacer )
1437{ 1447{
1438 typedef int fixed; 1448 typedef int fixed;
1439 int cHint = 0; 1449 int cHint = 0;
1440 int cMin = 0; 1450 int cMin = 0;
1441 int cMax = 0; 1451 int cMax = 0;
1442 int sumStretch = 0; 1452 int sumStretch = 0;
1443 int spacerCount = 0; 1453 int spacerCount = 0;
1444 1454
1445 bool wannaGrow = FALSE; // anyone who really wants to grow? 1455 bool wannaGrow = FALSE; // anyone who really wants to grow?
1446 // bool canShrink = FALSE; // anyone who could be persuaded to shrink? 1456 // bool canShrink = FALSE; // anyone who could be persuaded to shrink?
1447 1457
1448 int i; 1458 int i;
1449 for ( i = start; i < start + count; i++ ) { 1459 for ( i = start; i < start + count; i++ ) {
1450 chain[i].done = FALSE; 1460 chain[i].done = FALSE;
1451 cHint += chain[i].sizeHint; 1461 cHint += chain[i].sizeHint;
1452 cMin += chain[i].minimumSize; 1462 cMin += chain[i].minimumSize;
1453 cMax += chain[i].maximumSize; 1463 cMax += chain[i].maximumSize;
1454 sumStretch += chain[i].stretch; 1464 sumStretch += chain[i].stretch;
1455 if ( !chain[i].empty ) 1465 if ( !chain[i].empty )
1456 spacerCount++; 1466 spacerCount++;
1457 wannaGrow = wannaGrow || chain[i].expansive; 1467 wannaGrow = wannaGrow || chain[i].expansive;
1458 } 1468 }
1459 1469
1460 int extraspace = 0; 1470 int extraspace = 0;
1461 if ( spacerCount ) 1471 if ( spacerCount )
1462 spacerCount--; // only spacers between things 1472 spacerCount--; // only spacers between things
1463 if ( space < cMin + spacerCount * spacer ) { 1473 if ( space < cMin + spacerCount * spacer ) {
1464 //qDebug("not enough space"); 1474 //qDebug("not enough space");
1465 for ( i = start; i < start+count; i++ ) { 1475 for ( i = start; i < start+count; i++ ) {
1466 chain[i].size = chain[i].minimumSize; 1476 chain[i].size = chain[i].minimumSize;
1467 chain[i].done = TRUE; 1477 chain[i].done = TRUE;
1468 } 1478 }
1469 } else if ( space < cHint + spacerCount*spacer ) { 1479 } else if ( space < cHint + spacerCount*spacer ) {
1470 // Less space than sizeHint, but more than minimum. 1480 // Less space than sizeHint, but more than minimum.
1471 // Currently take space equally from each, like in Qt 2.x. 1481 // Currently take space equally from each, like in Qt 2.x.
1472 // Commented-out lines will give more space to stretchier items. 1482 // Commented-out lines will give more space to stretchier items.
1473 int n = count; 1483 int n = count;
1474 int space_left = space - spacerCount*spacer; 1484 int space_left = space - spacerCount*spacer;
1475 int overdraft = cHint - space_left; 1485 int overdraft = cHint - space_left;
1476 //first give to the fixed ones: 1486 //first give to the fixed ones:
1477 for ( i = start; i < start+count; i++ ) { 1487 for ( i = start; i < start+count; i++ ) {
1478 if ( !chain[i].done && chain[i].minimumSize >= chain[i].sizeHint) { 1488 if ( !chain[i].done && chain[i].minimumSize >= chain[i].sizeHint) {
1479 chain[i].size = chain[i].sizeHint; 1489 chain[i].size = chain[i].sizeHint;
1480 chain[i].done = TRUE; 1490 chain[i].done = TRUE;
1481 space_left -= chain[i].sizeHint; 1491 space_left -= chain[i].sizeHint;
1482 // sumStretch -= chain[i].stretch; 1492 // sumStretch -= chain[i].stretch;
1483 n--; 1493 n--;
1484 } 1494 }
1485 } 1495 }
1486 bool finished = n == 0; 1496 bool finished = n == 0;
1487 while ( !finished ) { 1497 while ( !finished ) {
1488 finished = TRUE; 1498 finished = TRUE;
1489 fixed fp_over = toFixed( overdraft ); 1499 fixed fp_over = toFixed( overdraft );
1490 fixed fp_w = 0; 1500 fixed fp_w = 0;
1491 1501
1492 for ( i = start; i < start+count; i++ ) { 1502 for ( i = start; i < start+count; i++ ) {
1493 if ( chain[i].done ) 1503 if ( chain[i].done )
1494 continue; 1504 continue;
1495 // if ( sumStretch <= 0 ) 1505 // if ( sumStretch <= 0 )
1496 fp_w += fp_over / n; 1506 fp_w += fp_over / n;
1497 // else 1507 // else
1498 // fp_w += (fp_over * chain[i].stretch) / sumStretch; 1508 // fp_w += (fp_over * chain[i].stretch) / sumStretch;
1499 int w = fRound( fp_w ); 1509 int w = fRound( fp_w );
1500 chain[i].size = chain[i].sizeHint - w; 1510 chain[i].size = chain[i].sizeHint - w;
1501 fp_w -= toFixed( w ); //give the difference to the next 1511 fp_w -= toFixed( w ); //give the difference to the next
1502 if ( chain[i].size < chain[i].minimumSize ) { 1512 if ( chain[i].size < chain[i].minimumSize ) {
1503 chain[i].done = TRUE; 1513 chain[i].done = TRUE;
1504 chain[i].size = chain[i].minimumSize; 1514 chain[i].size = chain[i].minimumSize;
1505 finished = FALSE; 1515 finished = FALSE;
1506 overdraft -= chain[i].sizeHint - chain[i].minimumSize; 1516 overdraft -= chain[i].sizeHint - chain[i].minimumSize;
1507 // sumStretch -= chain[i].stretch; 1517 // sumStretch -= chain[i].stretch;
1508 n--; 1518 n--;
1509 break; 1519 break;
1510 } 1520 }
1511 } 1521 }
1512 } 1522 }
1513 } else { //extra space 1523 } else { //extra space
1514 int n = count; 1524 int n = count;
1515 int space_left = space - spacerCount*spacer; 1525 int space_left = space - spacerCount*spacer;
1516 // first give to the fixed ones, and handle non-expansiveness 1526 // first give to the fixed ones, and handle non-expansiveness
1517 for ( i = start; i < start + count; i++ ) { 1527 for ( i = start; i < start + count; i++ ) {
1518 if ( !chain[i].done && (chain[i].maximumSize <= chain[i].sizeHint 1528 if ( !chain[i].done && (chain[i].maximumSize <= chain[i].sizeHint
1519 || wannaGrow && !chain[i].expansive) ) { 1529 || wannaGrow && !chain[i].expansive) ) {
1520 chain[i].size = chain[i].sizeHint; 1530 chain[i].size = chain[i].sizeHint;
1521 chain[i].done = TRUE; 1531 chain[i].done = TRUE;
1522 space_left -= chain[i].sizeHint; 1532 space_left -= chain[i].sizeHint;
1523 sumStretch -= chain[i].stretch; 1533 sumStretch -= chain[i].stretch;
1524 n--; 1534 n--;
1525 } 1535 }
1526 } 1536 }
1527 extraspace = space_left; 1537 extraspace = space_left;
1528 /* 1538 /*
1529 Do a trial distribution and calculate how much it is off. 1539 Do a trial distribution and calculate how much it is off.
1530 If there are more deficit pixels than surplus pixels, give 1540 If there are more deficit pixels than surplus pixels, give
1531 the minimum size items what they need, and repeat. 1541 the minimum size items what they need, and repeat.
1532 Otherwise give to the maximum size items, and repeat. 1542 Otherwise give to the maximum size items, and repeat.
1533 1543
1534 I have a wonderful mathematical proof for the correctness 1544 I have a wonderful mathematical proof for the correctness
1535 of this principle, but unfortunately this comment is too 1545 of this principle, but unfortunately this comment is too
1536 small to contain it. 1546 small to contain it.
1537 */ 1547 */
1538 int surplus, deficit; 1548 int surplus, deficit;
1539 do { 1549 do {
1540 surplus = deficit = 0; 1550 surplus = deficit = 0;
1541 fixed fp_space = toFixed( space_left ); 1551 fixed fp_space = toFixed( space_left );
1542 fixed fp_w = 0; 1552 fixed fp_w = 0;
1543 for ( i = start; i < start+count; i++ ) { 1553 for ( i = start; i < start+count; i++ ) {
1544 if ( chain[i].done ) 1554 if ( chain[i].done )
1545 continue; 1555 continue;
1546 extraspace = 0; 1556 extraspace = 0;
1547 if ( sumStretch <= 0 ) 1557 if ( sumStretch <= 0 )
1548 fp_w += fp_space / n; 1558 fp_w += fp_space / n;
1549 else 1559 else
1550 fp_w += (fp_space * chain[i].stretch) / sumStretch; 1560 fp_w += (fp_space * chain[i].stretch) / sumStretch;
1551 int w = fRound( fp_w ); 1561 int w = fRound( fp_w );
1552 chain[i].size = w; 1562 chain[i].size = w;
1553 fp_w -= toFixed( w ); // give the difference to the next 1563 fp_w -= toFixed( w ); // give the difference to the next
1554 if ( w < chain[i].sizeHint ) { 1564 if ( w < chain[i].sizeHint ) {
1555 deficit += chain[i].sizeHint - w; 1565 deficit += chain[i].sizeHint - w;
1556 } else if ( w > chain[i].maximumSize ) { 1566 } else if ( w > chain[i].maximumSize ) {
1557 surplus += w - chain[i].maximumSize; 1567 surplus += w - chain[i].maximumSize;
1558 } 1568 }
1559 } 1569 }
1560 if ( deficit > 0 && surplus <= deficit ) { 1570 if ( deficit > 0 && surplus <= deficit ) {
1561 // give to the ones that have too little 1571 // give to the ones that have too little
1562 for ( i = start; i < start+count; i++ ) { 1572 for ( i = start; i < start+count; i++ ) {
1563 if ( !chain[i].done && 1573 if ( !chain[i].done &&
1564 chain[i].size < chain[i].sizeHint ) { 1574 chain[i].size < chain[i].sizeHint ) {
1565 chain[i].size = chain[i].sizeHint; 1575 chain[i].size = chain[i].sizeHint;
1566 chain[i].done = TRUE; 1576 chain[i].done = TRUE;
1567 space_left -= chain[i].sizeHint; 1577 space_left -= chain[i].sizeHint;
1568 sumStretch -= chain[i].stretch; 1578 sumStretch -= chain[i].stretch;
1569 n--; 1579 n--;
1570 } 1580 }
1571 } 1581 }
1572 } 1582 }
1573 if ( surplus > 0 && surplus >= deficit ) { 1583 if ( surplus > 0 && surplus >= deficit ) {
1574 // take from the ones that have too much 1584 // take from the ones that have too much
1575 for ( i = start; i < start+count; i++ ) { 1585 for ( i = start; i < start+count; i++ ) {
1576 if ( !chain[i].done && 1586 if ( !chain[i].done &&
1577 chain[i].size > chain[i].maximumSize ) { 1587 chain[i].size > chain[i].maximumSize ) {
1578 chain[i].size = chain[i].maximumSize; 1588 chain[i].size = chain[i].maximumSize;
1579 chain[i].done = TRUE; 1589 chain[i].done = TRUE;
1580 space_left -= chain[i].maximumSize; 1590 space_left -= chain[i].maximumSize;
1581 sumStretch -= chain[i].stretch; 1591 sumStretch -= chain[i].stretch;
1582 n--; 1592 n--;
1583 } 1593 }
1584 } 1594 }
1585 } 1595 }
1586 } while ( n > 0 && surplus != deficit ); 1596 } while ( n > 0 && surplus != deficit );
1587 if ( n == 0 ) 1597 if ( n == 0 )
1588 extraspace = space_left; 1598 extraspace = space_left;
1589 } 1599 }
1590 1600
1591 // as a last resort, we distribute the unwanted space equally 1601 // as a last resort, we distribute the unwanted space equally
1592 // among the spacers (counting the start and end of the chain). 1602 // among the spacers (counting the start and end of the chain).
1593 1603
1594 //### should do a sub-pixel allocation of extra space 1604 //### should do a sub-pixel allocation of extra space
1595 int extra = extraspace / ( spacerCount + 2 ); 1605 int extra = extraspace / ( spacerCount + 2 );
1596 int p = pos + extra; 1606 int p = pos + extra;
1597 for ( i = start; i < start+count; i++ ) { 1607 for ( i = start; i < start+count; i++ ) {
1598 chain[i].pos = p; 1608 chain[i].pos = p;
1599 p = p + chain[i].size; 1609 p = p + chain[i].size;
1600 if ( !chain[i].empty ) 1610 if ( !chain[i].empty )
1601 p += spacer+extra; 1611 p += spacer+extra;
1602 } 1612 }
1603} 1613}
1604 1614
1605#endif 1615#endif
1606 1616
1607/*! 1617/*!
1608 \enum KDGanttMinimizeSplitter::Direction 1618 \enum KDGanttMinimizeSplitter::Direction
1609 1619
1610 The values of this enumeration describe into which direction the 1620 The values of this enumeration describe into which direction the
1611 splitter will collapse its child widgets. By extension, it also 1621 splitter will collapse its child widgets. By extension, it also
1612 specifies the orientation of the splitter; collapsing to the left or 1622 specifies the orientation of the splitter; collapsing to the left or
1613 to the right results in a horizontal splitter, collapsing to the top 1623 to the right results in a horizontal splitter, collapsing to the top
1614 or bottom in a vertical splitter. 1624 or bottom in a vertical splitter.
1615*/ 1625*/
1616 1626
1617/*! 1627/*!
1618 \fn Orientation KDGanttMinimizeSplitter::orientation() const 1628 \fn Orientation KDGanttMinimizeSplitter::orientation() const
1619 1629
1620 Returns the orientation of the splitter. 1630 Returns the orientation of the splitter.
1621*/ 1631*/
1622 1632
1623/*! \enum KDGanttMinimizeSplitter::ResizeMode 1633/*! \enum KDGanttMinimizeSplitter::ResizeMode
1624 1634
1625 This enum type describes how KDGanttMinimizeSplitter will resize each of its child widgets. The currently defined values are: 1635 This enum type describes how KDGanttMinimizeSplitter will resize each of its child widgets. The currently defined values are:
1626 1636
1627 Stretch: the widget will be resized when the splitter 1637 Stretch: the widget will be resized when the splitter
1628 itself is resized. 1638 itself is resized.
1629 1639
1630 KeepSize: KDGanttMinimizeSplitter will try to keep this widget's size 1640 KeepSize: KDGanttMinimizeSplitter will try to keep this widget's size
1631 unchanged. 1641 unchanged.
1632 1642
1633 FollowSizeHint: KDGanttMinimizeSplitter will resize the widget when the 1643 FollowSizeHint: KDGanttMinimizeSplitter will resize the widget when the
1634 widget's size hint changes. 1644 widget's size hint changes.
1635*/ 1645*/
1636 1646
diff --git a/microkde/KDGanttMinimizeSplitter.h b/microkde/KDGanttMinimizeSplitter.h
index 75e0443..8120d14 100644
--- a/microkde/KDGanttMinimizeSplitter.h
+++ b/microkde/KDGanttMinimizeSplitter.h
@@ -1,186 +1,188 @@
1/* -*- Mode: C++ -*- 1/* -*- Mode: C++ -*-
2 $Id$ 2 $Id$
3*/ 3*/
4 4
5/**************************************************************************** 5/****************************************************************************
6 ** Copyright (C) 2001-2004 Klarälvdalens Datakonsult AB. All rights reserved. 6 ** Copyright (C) 2001-2004 Klarälvdalens Datakonsult AB. All rights reserved.
7 ** 7 **
8 ** This file is part of the KDGantt library. 8 ** This file is part of the KDGantt library.
9 ** 9 **
10 ** This file may be distributed and/or modified under the terms of the 10 ** This file may be distributed and/or modified under the terms of the
11 ** GNU General Public License version 2 as published by the Free Software 11 ** GNU General Public License version 2 as published by the Free Software
12 ** Foundation and appearing in the file LICENSE.GPL included in the 12 ** Foundation and appearing in the file LICENSE.GPL included in the
13 ** packaging of this file. 13 ** packaging of this file.
14 ** 14 **
15 ** Licensees holding valid commercial KDGantt licenses may use this file in 15 ** Licensees holding valid commercial KDGantt licenses may use this file in
16 ** accordance with the KDGantt Commercial License Agreement provided with 16 ** accordance with the KDGantt Commercial License Agreement provided with
17 ** the Software. 17 ** the Software.
18 ** 18 **
19 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 19 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 20 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21 ** 21 **
22 ** See http://www.klaralvdalens-datakonsult.se/Public/products/ for 22 ** See http://www.klaralvdalens-datakonsult.se/Public/products/ for
23 ** information about KDGantt Commercial License Agreements. 23 ** information about KDGantt Commercial License Agreements.
24 ** 24 **
25 ** Contact info@klaralvdalens-datakonsult.se if any conditions of this 25 ** Contact info@klaralvdalens-datakonsult.se if any conditions of this
26 ** licensing are not clear to you. 26 ** licensing are not clear to you.
27 ** 27 **
28 ** As a special exception, permission is given to link this program 28 ** As a special exception, permission is given to link this program
29 ** with any edition of Qt, and distribute the resulting executable, 29 ** with any edition of Qt, and distribute the resulting executable,
30 ** without including the source code for Qt in the source distribution. 30 ** without including the source code for Qt in the source distribution.
31 ** 31 **
32 **********************************************************************/ 32 **********************************************************************/
33 33
34#ifndef KDGANTTMINIMIZESPLITTER_H 34#ifndef KDGANTTMINIMIZESPLITTER_H
35#define KDGANTTMINIMIZESPLITTER_H 35#define KDGANTTMINIMIZESPLITTER_H
36 36
37#ifndef QT_H 37#ifndef QT_H
38#include "qframe.h" 38#include "qframe.h"
39#include "qvaluelist.h" 39#include "qvaluelist.h"
40#endif // QT_H 40#endif // QT_H
41 41
42#ifndef QT_NO_SPLITTER___ 42#ifndef QT_NO_SPLITTER___
43class QSplitterData; 43class QSplitterData;
44class QSplitterLayoutStruct; 44class QSplitterLayoutStruct;
45class KDGanttSplitterHandle; 45class KDGanttSplitterHandle;
46class KDGanttMinimizeSplitter : public QFrame 46class KDGanttMinimizeSplitter : public QFrame
47{ 47{
48 Q_OBJECT 48 Q_OBJECT
49 // Q_ENUMS( Direction ) 49 // Q_ENUMS( Direction )
50 // Q_PROPERTY( Orientation orientation READ orientation WRITE setOrientation ) 50 // Q_PROPERTY( Orientation orientation READ orientation WRITE setOrientation )
51 // Q_PROPERTY( Direction minimizeDirection READ minimizeDirection WRITE setMinimizeDirection ) 51 // Q_PROPERTY( Direction minimizeDirection READ minimizeDirection WRITE setMinimizeDirection )
52 52
53public: 53public:
54 enum ResizeMode { Stretch, KeepSize, FollowSizeHint }; 54 enum ResizeMode { Stretch, KeepSize, FollowSizeHint };
55 enum Direction { Left, Right, Up, Down }; 55 enum Direction { Left, Right, Up, Down };
56 56
57 KDGanttMinimizeSplitter( QWidget* parent=0, const char* name=0 ); 57 KDGanttMinimizeSplitter( QWidget* parent=0, const char* name=0 );
58 KDGanttMinimizeSplitter( Orientation, QWidget* parent=0, const char* name=0 ); 58 KDGanttMinimizeSplitter( Orientation, QWidget* parent=0, const char* name=0 );
59 ~KDGanttMinimizeSplitter(); 59 ~KDGanttMinimizeSplitter();
60 60
61 virtual void setOrientation( Orientation ); 61 virtual void setOrientation( Orientation );
62 Orientation orientation() const { return orient; } 62 Orientation orientation() const { return orient; }
63 63
64 void setMinimizeDirection( Direction ); 64 void setMinimizeDirection( Direction );
65 Direction minimizeDirection() const; 65 Direction minimizeDirection() const;
66 66
67#if QT_VERSION >= 232 67#if QT_VERSION >= 232
68 virtual void setResizeMode( QWidget *w, ResizeMode ); 68 virtual void setResizeMode( QWidget *w, ResizeMode );
69 virtual void setOpaqueResize( bool = TRUE ); 69 virtual void setOpaqueResize( bool = TRUE );
70 bool opaqueResize() const; 70 bool opaqueResize() const;
71 71
72 void moveToFirst( QWidget * ); 72 void moveToFirst( QWidget * );
73 void moveToLast( QWidget * ); 73 void moveToLast( QWidget * );
74 74
75 void refresh() { recalc( TRUE ); } 75 void refresh() { recalc( TRUE ); }
76 QSize sizeHint() const; 76 QSize sizeHint() const;
77 QSize minimumSizeHint() const; 77 QSize minimumSizeHint() const;
78 78
79 QValueList<int> sizes() const; 79 QValueList<int> sizes() const;
80 void setSizes( QValueList<int> ); 80 void setSizes( QValueList<int> );
81 KDGanttSplitterHandle* firstHandle(){ return mFirstHandle;} 81 KDGanttSplitterHandle* firstHandle(){ return mFirstHandle;}
82 void expandPos( int id, int* min, int* max ); 82 void expandPos( int id, int* min, int* max );
83public slots:
84 void toggle();
83protected: 85protected:
84 void childEvent( QChildEvent * ); 86 void childEvent( QChildEvent * );
85 87
86 bool event( QEvent * ); 88 bool event( QEvent * );
87 void resizeEvent( QResizeEvent * ); 89 void resizeEvent( QResizeEvent * );
88 90
89 int idAfter( QWidget* ) const; 91 int idAfter( QWidget* ) const;
90 92
91 void moveSplitter( QCOORD pos, int id ); 93 void moveSplitter( QCOORD pos, int id );
92 virtual void drawSplitter( QPainter*, QCOORD x, QCOORD y, 94 virtual void drawSplitter( QPainter*, QCOORD x, QCOORD y,
93 QCOORD w, QCOORD h ); 95 QCOORD w, QCOORD h );
94 void styleChange( QStyle& ); 96 void styleChange( QStyle& );
95 int adjustPos( int , int ); 97 int adjustPos( int , int );
96 virtual void setRubberband( int ); 98 virtual void setRubberband( int );
97 void getRange( int id, int*, int* ); 99 void getRange( int id, int*, int* );
98 100
99private: 101private:
100 void init(); 102 void init();
101 void recalc( bool update = FALSE ); 103 void recalc( bool update = FALSE );
102 void doResize(); 104 void doResize();
103 void storeSizes(); 105 void storeSizes();
104 void processChildEvents(); 106 void processChildEvents();
105 QSplitterLayoutStruct *addWidget( QWidget*, bool first = FALSE ); 107 QSplitterLayoutStruct *addWidget( QWidget*, bool first = FALSE );
106 void recalcId(); 108 void recalcId();
107 void moveBefore( int pos, int id, bool upLeft ); 109 void moveBefore( int pos, int id, bool upLeft );
108 void moveAfter( int pos, int id, bool upLeft ); 110 void moveAfter( int pos, int id, bool upLeft );
109 void setG( QWidget *w, int p, int s, bool isSplitter = FALSE ); 111 void setG( QWidget *w, int p, int s, bool isSplitter = FALSE );
110 112
111 QCOORD pick( const QPoint &p ) const 113 QCOORD pick( const QPoint &p ) const
112 { return orient == Horizontal ? p.x() : p.y(); } 114 { return orient == Horizontal ? p.x() : p.y(); }
113 QCOORD pick( const QSize &s ) const 115 QCOORD pick( const QSize &s ) const
114 { return orient == Horizontal ? s.width() : s.height(); } 116 { return orient == Horizontal ? s.width() : s.height(); }
115 117
116 QCOORD trans( const QPoint &p ) const 118 QCOORD trans( const QPoint &p ) const
117 { return orient == Vertical ? p.x() : p.y(); } 119 { return orient == Vertical ? p.x() : p.y(); }
118 QCOORD trans( const QSize &s ) const 120 QCOORD trans( const QSize &s ) const
119 { return orient == Vertical ? s.width() : s.height(); } 121 { return orient == Vertical ? s.width() : s.height(); }
120 KDGanttSplitterHandle* mFirstHandle; 122 KDGanttSplitterHandle* mFirstHandle;
121 QSplitterData *data; 123 QSplitterData *data;
122#endif 124#endif
123 125
124private: 126private:
125 Orientation orient; 127 Orientation orient;
126 Direction _direction; 128 Direction _direction;
127#ifndef DOXYGEN_SKIP_INTERNAL 129#ifndef DOXYGEN_SKIP_INTERNAL
128 friend class KDGanttSplitterHandle; 130 friend class KDGanttSplitterHandle;
129#endif 131#endif
130 private:// Disabled copy constructor and operator= 132 private:// Disabled copy constructor and operator=
131#if defined(Q_DISABLE_COPY) 133#if defined(Q_DISABLE_COPY)
132 KDGanttMinimizeSplitter( const KDGanttMinimizeSplitter & ); 134 KDGanttMinimizeSplitter( const KDGanttMinimizeSplitter & );
133 KDGanttMinimizeSplitter& operator=( const KDGanttMinimizeSplitter & ); 135 KDGanttMinimizeSplitter& operator=( const KDGanttMinimizeSplitter & );
134#endif 136#endif
135}; 137};
136 138
137#ifndef DOXYGEN_SKIP_INTERNAL 139#ifndef DOXYGEN_SKIP_INTERNAL
138// This class was continued from a verbatim copy of the 140// This class was continued from a verbatim copy of the
139// QSplitterHandle pertaining to the Qt Enterprise License and the 141// QSplitterHandle pertaining to the Qt Enterprise License and the
140// GPL. It has only been renamed to KDGanttSplitterHandler in order to 142// GPL. It has only been renamed to KDGanttSplitterHandler in order to
141// avoid a symbol clash on some platforms. 143// avoid a symbol clash on some platforms.
142class KDGanttSplitterHandle : public QWidget 144class KDGanttSplitterHandle : public QWidget
143{ 145{
144 Q_OBJECT 146 Q_OBJECT
145#if QT_VERSION >= 232 147#if QT_VERSION >= 232
146public: 148public:
147 KDGanttSplitterHandle( Qt::Orientation o, 149 KDGanttSplitterHandle( Qt::Orientation o,
148 KDGanttMinimizeSplitter *parent, const char* name=0 ); 150 KDGanttMinimizeSplitter *parent, const char* name=0 );
149 void setOrientation( Qt::Orientation o ); 151 void setOrientation( Qt::Orientation o );
150 Qt::Orientation orientation() const { return orient; } 152 Qt::Orientation orientation() const { return orient; }
151 153
152 bool opaque() const { return s->opaqueResize(); } 154 bool opaque() const { return s->opaqueResize(); }
153 155
154 QSize sizeHint() const; 156 QSize sizeHint() const;
155 void toggle(); 157 void toggle();
156 158
157 int id() const { return myId; } // data->list.at(id())->wid == this 159 int id() const { return myId; } // data->list.at(id())->wid == this
158 void setId( int i ) { myId = i; } 160 void setId( int i ) { myId = i; }
159 161
160protected: 162protected:
161 QValueList<QPointArray> buttonRegions(); 163 QValueList<QPointArray> buttonRegions();
162 void paintEvent( QPaintEvent * ); 164 void paintEvent( QPaintEvent * );
163 void mouseMoveEvent( QMouseEvent * ); 165 void mouseMoveEvent( QMouseEvent * );
164 void mousePressEvent( QMouseEvent * ); 166 void mousePressEvent( QMouseEvent * );
165 void mouseReleaseEvent( QMouseEvent * ); 167 void mouseReleaseEvent( QMouseEvent * );
166 int onButton( const QPoint& p ); 168 int onButton( const QPoint& p );
167 void updateCursor( const QPoint& p ); 169 void updateCursor( const QPoint& p );
168 170
169private: 171private:
170 QSize mSizeHint; 172 QSize mSizeHint;
171 bool mUseOffset; 173 bool mUseOffset;
172 Qt::Orientation orient; 174 Qt::Orientation orient;
173 bool opaq; 175 bool opaq;
174 int myId; 176 int myId;
175 177
176 KDGanttMinimizeSplitter *s; 178 KDGanttMinimizeSplitter *s;
177 int _activeButton; 179 int _activeButton;
178 bool _collapsed; 180 bool _collapsed;
179 int _origPos; 181 int _origPos;
180#endif 182#endif
181}; 183};
182#endif 184#endif
183 185
184#endif // QT_NO_SPLITTER 186#endif // QT_NO_SPLITTER
185 187
186#endif // KDGANTTMINIMIZESPLITTER_H 188#endif // KDGANTTMINIMIZESPLITTER_H