summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile472
-rw-r--r--kaddressbook/views/kaddressbookcardview.cpp1
-rw-r--r--kaddressbook/views/kaddressbookiconview.cpp1
-rw-r--r--kaddressbook/views/kaddressbooktableview.cpp1
4 files changed, 173 insertions, 302 deletions
diff --git a/Makefile b/Makefile
index 01439bd..3be5bb3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,303 +1,171 @@
1export KDEPIMDIR = $(shell pwd) 1#############################################################################
2# Makefile for building: kdepim-desktop
3# Generated by qmake (1.07a) (Qt 3.3.2) on: Sun Sep 12 12:10:39 2004
4# Project: kdepim-desktop.pro
5# Template: subdirs
6# Command: $(QMAKE) -o Makefile kdepim-desktop.pro
7#############################################################################
8
9 MAKEFILE =Makefile
10 QMAKE =qmake
11DEL_FILE = rm -f
12CHK_DIR_EXISTS= test -d
13MKDIR = mkdir -p
14INSTALL_FILE=
15INSTALL_DIR =
16 SUBTARGETS = \
17 sub-gammu-emb-common \
18 sub-gammu-emb-gammu \
19 sub-libical \
20 sub-libkcal \
21 sub-microkde \
22 sub-libkdepim \
23 sub-kabc \
24 sub-korganizer \
25 sub-kaddressbook \
26 sub-kabc-plugins-file \
27 sub-kabc-plugins-dir
28
29first: all
30
31all: Makefile $(SUBTARGETS)
32
33gammu/emb/common/$(MAKEFILE):
34 @$(CHK_DIR_EXISTS) "gammu/emb/common" || $(MKDIR) "gammu/emb/common"
35 cd gammu/emb/common && $(QMAKE) common.pro -o $(MAKEFILE)
36sub-gammu-emb-common: gammu/emb/common/$(MAKEFILE) FORCE
37 cd gammu/emb/common && $(MAKE) -f $(MAKEFILE)
38
39gammu/emb/gammu/$(MAKEFILE):
40 @$(CHK_DIR_EXISTS) "gammu/emb/gammu" || $(MKDIR) "gammu/emb/gammu"
41 cd gammu/emb/gammu && $(QMAKE) gammu.pro -o $(MAKEFILE)
42sub-gammu-emb-gammu: gammu/emb/gammu/$(MAKEFILE) FORCE
43 cd gammu/emb/gammu && $(MAKE) -f $(MAKEFILE)
44
45libical/$(MAKEFILE):
46 @$(CHK_DIR_EXISTS) "libical" || $(MKDIR) "libical"
47 cd libical && $(QMAKE) libical.pro -o $(MAKEFILE)
48sub-libical: libical/$(MAKEFILE) FORCE
49 cd libical && $(MAKE) -f $(MAKEFILE)
50
51libkcal/$(MAKEFILE):
52 @$(CHK_DIR_EXISTS) "libkcal" || $(MKDIR) "libkcal"
53 cd libkcal && $(QMAKE) libkcal.pro -o $(MAKEFILE)
54sub-libkcal: libkcal/$(MAKEFILE) FORCE
55 cd libkcal && $(MAKE) -f $(MAKEFILE)
56
57microkde/$(MAKEFILE):
58 @$(CHK_DIR_EXISTS) "microkde" || $(MKDIR) "microkde"
59 cd microkde && $(QMAKE) microkde.pro -o $(MAKEFILE)
60sub-microkde: microkde/$(MAKEFILE) FORCE
61 cd microkde && $(MAKE) -f $(MAKEFILE)
62
63libkdepim/$(MAKEFILE):
64 @$(CHK_DIR_EXISTS) "libkdepim" || $(MKDIR) "libkdepim"
65 cd libkdepim && $(QMAKE) libkdepim.pro -o $(MAKEFILE)
66sub-libkdepim: libkdepim/$(MAKEFILE) FORCE
67 cd libkdepim && $(MAKE) -f $(MAKEFILE)
68
69kabc/$(MAKEFILE):
70 @$(CHK_DIR_EXISTS) "kabc" || $(MKDIR) "kabc"
71 cd kabc && $(QMAKE) kabc.pro -o $(MAKEFILE)
72sub-kabc: kabc/$(MAKEFILE) FORCE
73 cd kabc && $(MAKE) -f $(MAKEFILE)
74
75korganizer/$(MAKEFILE):
76 @$(CHK_DIR_EXISTS) "korganizer" || $(MKDIR) "korganizer"
77 cd korganizer && $(QMAKE) korganizer.pro -o $(MAKEFILE)
78sub-korganizer: korganizer/$(MAKEFILE) FORCE
79 cd korganizer && $(MAKE) -f $(MAKEFILE)
80
81kaddressbook/$(MAKEFILE):
82 @$(CHK_DIR_EXISTS) "kaddressbook" || $(MKDIR) "kaddressbook"
83 cd kaddressbook && $(QMAKE) kaddressbook.pro -o $(MAKEFILE)
84sub-kaddressbook: kaddressbook/$(MAKEFILE) FORCE
85 cd kaddressbook && $(MAKE) -f $(MAKEFILE)
86
87kabc/plugins/file/$(MAKEFILE):
88 @$(CHK_DIR_EXISTS) "kabc/plugins/file" || $(MKDIR) "kabc/plugins/file"
89 cd kabc/plugins/file && $(QMAKE) file.pro -o $(MAKEFILE)
90sub-kabc-plugins-file: kabc/plugins/file/$(MAKEFILE) FORCE
91 cd kabc/plugins/file && $(MAKE) -f $(MAKEFILE)
92
93kabc/plugins/dir/$(MAKEFILE):
94 @$(CHK_DIR_EXISTS) "kabc/plugins/dir" || $(MKDIR) "kabc/plugins/dir"
95 cd kabc/plugins/dir && $(QMAKE) dir.pro -o $(MAKEFILE)
96sub-kabc-plugins-dir: kabc/plugins/dir/$(MAKEFILE) FORCE
97 cd kabc/plugins/dir && $(MAKE) -f $(MAKEFILE)
98
99Makefile: kdepim-desktop.pro /usr/local/qtgcc/mkspecs/default/qmake.conf
100 $(QMAKE) -o Makefile kdepim-desktop.pro
101qmake: qmake_all
102 @$(QMAKE) -o Makefile kdepim-desktop.pro
103
104all: $(SUBTARGETS)
105qmake_all: gammu/emb/common/$(MAKEFILE) gammu/emb/gammu/$(MAKEFILE) libical/$(MAKEFILE) libkcal/$(MAKEFILE) microkde/$(MAKEFILE) libkdepim/$(MAKEFILE) kabc/$(MAKEFILE) korganizer/$(MAKEFILE) kaddressbook/$(MAKEFILE) kabc/plugins/file/$(MAKEFILE) kabc/plugins/dir/$(MAKEFILE)
106 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
107 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
108 ( [ -d libical ] && cd libical ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
109 ( [ -d libkcal ] && cd libkcal ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
110 ( [ -d microkde ] && cd microkde ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
111 ( [ -d libkdepim ] && cd libkdepim ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
112 ( [ -d kabc ] && cd kabc ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
113 ( [ -d korganizer ] && cd korganizer ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
114 ( [ -d kaddressbook ] && cd kaddressbook ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
115 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
116 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
117clean uicables mocables uiclean mocclean lexclean yaccclean : qmake_all FORCE
118 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) $@; ) || true
119 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) $@; ) || true
120 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) $@; ) || true
121 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) $@; ) || true
122 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) $@; ) || true
123 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) $@; ) || true
124 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) $@; ) || true
125 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) $@; ) || true
126 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) $@; ) || true
127 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) $@; ) || true
128 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) $@; ) || true
129uninstall_subdirs: qmake_all FORCE
130 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
131 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
132 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
133 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
134 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
135 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
136 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
137 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
138 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
139 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
140 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
141install_subdirs: qmake_all FORCE
142 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) install; ) || true
143 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) install; ) || true
144 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) install; ) || true
145 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) install; ) || true
146 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) install; ) || true
147 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) install; ) || true
148 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) install; ) || true
149 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) install; ) || true
150 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) install; ) || true
151 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) install; ) || true
152 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) install; ) || true
153distclean: qmake_all FORCE
154 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
155 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
156 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
157 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
158 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
159 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
160 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
161 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
162 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
163 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
164 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
165
166install: install_subdirs
167
168uninstall: uninstall_subdirs
169
170FORCE:
2 171
3
4ifeq ($(PLATFORM) , zaurus)
5 BUILD_NO_LDAP_PLUGIN=1
6endif
7
8ifneq ($(PLATFORM) , zaurus)
9 BUILD_NO_SHARP_PLUGIN=1
10endif
11
12SUBDIRS_MICROKDE = \
13 libical/src/libical \
14 libical/src/libicalss \
15 qtcompat \
16 microkde \
17 libkcal \
18 libkdepim \
19 kabc \
20 kabc/formats/binary \
21 kabc/plugins/file \
22 kabc/plugins/dir \
23 korganizer \
24 kalarmd \
25 kaddressbook
26
27SUBDIRS_QTOPIA_PLUGIN = \
28 kabc/plugins/qtopia
29
30SUBDIRS_OPIE_PLUGIN = \
31 kabc/plugins/opie
32
33SUBDIRS_SHARP_PLUGIN = \
34 kabc/plugins/sharpdtm
35
36SUBDIRS_LDAP_PLUGIN = \
37 kabc/plugins/ldap
38
39SUBDIRS_MICROMAIL = \
40 kmicromail/libetpan \
41 kmicromail/libmailwrapper \
42 kmicromail
43
44SUBDIRS_GAMMU = \
45 gammu/emb/common \
46 gammu/emb/gammu
47
48SUBDIRS = \
49 $(SUBDIRS_MICROKDE) \
50 $(SUBDIRS_QTOPIA_PLUGIN) \
51 $(SUBDIRS_OPIE_PLUGIN) \
52 $(SUBDIRS_SHARP_PLUGIN) \
53 $(SUBDIRS_LDAP_PLUGIN) \
54 $(SUBDIRS_MICROMAIL) \
55 $(SUBDIRS_GAMMU)
56
57all: build_microkde \
58 build_qtopia_plugin \
59 build_opie_plugin \
60 build_sharp_plugin \
61 build_ldap_plugin \
62 build_micromail \
63 build_gammu
64
65
66build_microkde: variable_test tmake
67 for i in $(SUBDIRS_MICROKDE); do pushd $$i; \
68 make -f Makefile$(PLATFORM) || exit 1; popd; \
69 done
70
71build_qtopia_plugin: build_microkde
72 for i in $(SUBDIRS_QTOPIA_PLUGIN); do pushd $$i; \
73 make -f Makefile$(PLATFORM) || exit 1; popd; \
74 done
75
76build_opie_plugin: build_microkde
77 ifdef BUILD_NO_OPIE_PLUGIN
78 @echo == opie plugin not build.
79 else
80 for i in $(SUBDIRS_OPIE_PLUGIN); do pushd $$i; \
81 make -f Makefile$(PLATFORM) || exit 1; popd; \
82 done
83 endif
84
85build_sharp_plugin: build_microkde
86 ifdef BUILD_NO_SHARP_PLUGIN
87 @echo == ldap plugin not build.
88 else
89 for i in $(SUBDIRS_SHARP_PLUGIN); do pushd $$i; \
90 make -f Makefile$(PLATFORM) || exit 1; popd; \
91 done
92 endif
93
94build_ldap_plugin: build_microkde
95 ifdef BUILD_NO_LDAP_PLUGIN
96 @echo == ldap plugin not build.
97 else
98 for i in $(SUBDIRS_LDAP_PLUGIN); do pushd $$i; \
99 make -f Makefile$(PLATFORM) || exit 1; popd; \
100 done
101 endif
102
103
104build_micromail: build_microkde
105 ifdef BUILD_NO_MICROMAIL
106 @echo == kmicromail not build.
107 else
108 for i in $(SUBDIRS_MICROMAIL); do pushd $$i; \
109 make -f Makefile$(PLATFORM) || exit 1; popd; \
110 done
111 endif
112
113build_gammu: variable_test tmake
114 ifdef BUILD_NO_GAMMU
115 @echo == gammu not build.
116 else
117 for i in $(SUBDIRS_GAMMU); do pushd $$i; \
118 make -f Makefile$(PLATFORM) || exit 1; popd; \
119 done
120 endif
121
122
123variable_info:
124 @echo --------------------------------------
125 @echo KDEPIM buildsystem, variableinfo...
126 @echo KDEPIMDIR=$(KDEPIMDIR)
127 @echo QTDIR=$(QTDIR)
128 @echo QPEDIR=$(QPEDIR)
129 @echo OPIEDIR=$(OPIEDIR)
130 @echo PLATFORM=$(PLATFORM)
131 @echo RELEASE_DEBUG=$(RELEASE_DEBUG)
132 @echo BUILD_NO_MICROMAIL=$(BUILD_NO_MICROMAIL)
133 @echo BUILD_NO_LDAP_PLUGIN=$(BUILD_NO_LDAP_PLUGIN)
134 @echo BUILD_NO_OPIE_PLUGIN=$(BUILD_NO_OPIE_PLUGIN)
135 @echo BUILD_NO_SHARP_PLUGIN=$(BUILD_NO_SHARP_PLUGIN)
136 ifndef BUILD_NO_SHARP_PLUGIN
137 @echo SHARPDTMSDK=$(SHARPDTMSDK)
138 endif
139 @echo BUILD_NO_GAMMU=$(BUILD_NO_GAMMU)
140 @echo --------------------------------------
141
142variable_test: variable_info
143 @echo KDEPIM buildsystem, variablecheck...
144 ifndef KDEPIMDIR
145 @echo KDEPIMDIR is not defined.
146 $(error KDEPIMDIR is not defined)
147 endif
148 ifndef PLATFORM
149 @echo PLATFORM is not defined.
150 $(error PLATFORM is not defined)
151 endif
152 ifdef BUILD_NO_LDAP_PLUGIN
153 @echo LDAP PLUGIN will not be build, because BUILD_NO_LDAP_PLUGIN is set to $(BUILD_NO_LDAP_PLUGIN)
154 endif
155 ifdef BUILD_NO_OPIE_PLUGIN
156 @echo OPIE PLUGIN will not be build, because BUILD_NO_OPIE_PLUGIN is set to $(BUILD_NO_OPIE_PLUGIN)
157 endif
158 ifdef BUILD_NO_MICROMAIL
159 @echo MICROMAIL will not be build, because BUILD_NO_MICROMAIL is set to $(BUILD_NO_MICROMAIL)
160 endif
161 ifdef BUILD_NO_SHARP_PLUGIN
162 @echo SHARP PLUGIN will not be build, because BUILD_NO_SHARP_PLUGIN is set to $(BUILD_NO_SHARP_PLUGIN)
163 else
164 ifndef SHARPDTMSDK
165 @echo SHARP PLUGIN can not be build, because SHARPDTMSDK is set to $(SHARPDTMSDK)
166 $(error SHARPDTMSDK is not defined)
167 endif
168 endif
169 ifdef BUILD_NO_GAMMU
170 @echo GAMMU will not be build, because BUILD_NO_GAMMU is set to $(BUILD_NO_GAMMU)
171 endif
172 @echo --------------------------------------
173
174
175objects:
176 for i in $(SUBDIRS); do mkdir -p $$i/obj/$(PLATFORM); done
177 for i in $(SUBDIRS); do mkdir -p $$i/moc/$(PLATFORM); done
178 mkdir -p libical/lib/$(PLATFORM)
179
180clean:
181 rm -rf libical/lib/$(PLATFORM)/*;
182 for i in $(SUBDIRS); do pushd $$i; make clean; rm -f *~;\
183 rm -f obj/$(PLATFORM)/*; rm -f moc/$(PLATFORM)/*; rm Makefile$(PLATFORM); popd; \
184 done
185install:
186
187 cd bin/kdepim; make install
188 cp -r Pim $(QPEDIR)/apps
189 cp db2file/db2file $(QPEDIR)/bin/db2file
190 cp korganizer/korganizer.desktop $(QPEDIR)/apps/Pim/korganizer.desktop
191 cp kaddressbook/kaddressbook.desktop $(QPEDIR)/apps/Pim/kaddressbook.desktop
192 cp kmicromail/kmicromail.desktop $(QPEDIR)/apps/Pim/kopiemail.desktop
193
194dist:
195 @echo Dont forget to do "make install" before "make dist"
196 rm -f *arm.ipk
197 rm -f *~
198 cd ..; tar czf kdepim.src.tar.gz --exclude=obj --exclude=moc --exclude=CVS --exclude=Makefilezaurus --exclude=Makefileqtopia kdepim
199 ./mkipks kmicrokdelibs.control
200 ./mkipks korganizer.control
201 ./mkipks kaddressbook.control
202 ifndef BUILD_NO_MICROMAIL
203 ./mkipks kopiemail.control
204 endif
205 ./mkipks korganizer-alarm.control
206 ifndef BUILD_NO_GAMMU
207 ./mkipks kammu.control
208 endif
209 ./mkipks pim_TAB_icon.control
210
211tmake: objects \
212 qtcompat/Makefile$(PLATFORM) \
213 microkde/Makefile$(PLATFORM) \
214 libkcal/Makefile$(PLATFORM) \
215 libkdepim/Makefile$(PLATFORM) \
216 korganizer/Makefile$(PLATFORM) \
217 kalarmd/Makefile$(PLATFORM) \
218 libical/src/libical/Makefile$(PLATFORM) \
219 libical/src/libicalss/Makefile$(PLATFORM) \
220 kabc/Makefile$(PLATFORM) \
221 kabc/formats/binary/Makefile$(PLATFORM) \
222 kabc/plugins/file/Makefile$(PLATFORM) \
223 kabc/plugins/dir/Makefile$(PLATFORM) \
224 kabc/plugins/ldap/Makefile$(PLATFORM) \
225 kabc/plugins/opie/Makefile$(PLATFORM) \
226 kabc/plugins/qtopia/Makefile$(PLATFORM) \
227 kabc/plugins/sharpdtm/Makefile$(PLATFORM) \
228 kaddressbook/Makefile$(PLATFORM) \
229 kmicromail/Makefile$(PLATFORM) \
230 kmicromail/libetpan/Makefile$(PLATFORM) \
231 kmicromail/libmailwrapper/Makefile$(PLATFORM) \
232 gammu/emb/common/Makefile$(PLATFORM) \
233 gammu/emb/gammu/Makefile$(PLATFORM) \
234
235
236
237
238qtcompat/Makefile$(PLATFORM): qtcompat/qtcompat.pro
239 cd qtcompat; tmake "CONFIG+=$(RELEASE_DEBUG)" qtcompat.pro -o Makefile$(PLATFORM)
240
241microkde/Makefile$(PLATFORM): microkde/microkdeE.pro
242 cd microkde; tmake "CONFIG+=$(RELEASE_DEBUG)" microkdeE.pro -o Makefile$(PLATFORM)
243
244libkcal/Makefile$(PLATFORM): libkcal/libkcalE.pro
245 cd libkcal; tmake "CONFIG+=$(RELEASE_DEBUG)" libkcalE.pro -o Makefile$(PLATFORM)
246
247
248libkdepim/Makefile$(PLATFORM): libkdepim/libkdepimE.pro
249 cd libkdepim; tmake "CONFIG+=$(RELEASE_DEBUG)" libkdepimE.pro -o Makefile$(PLATFORM)
250
251kalarmd/Makefile$(PLATFORM): kalarmd/kalarmdE.pro
252 cd kalarmd; tmake "CONFIG+=$(RELEASE_DEBUG)" kalarmdE.pro -o Makefile$(PLATFORM)
253
254korganizer/Makefile$(PLATFORM): korganizer/korganizerE.pro
255 cd korganizer; tmake "CONFIG+=$(RELEASE_DEBUG)" korganizerE.pro -o Makefile$(PLATFORM)
256
257libical/src/libical/Makefile$(PLATFORM): libical/src/libical/libicalE.pro
258 cd libical/src/libical; tmake "CONFIG+=$(RELEASE_DEBUG)" libicalE.pro -o Makefile$(PLATFORM)
259
260libical/src/libicalss/Makefile$(PLATFORM): libical/src/libicalss/libicalssE.pro
261 cd libical/src/libicalss; tmake "CONFIG+=$(RELEASE_DEBUG)" libicalssE.pro -o Makefile$(PLATFORM)
262
263kabc/Makefile$(PLATFORM): kabc/kabcE.pro
264 cd kabc; tmake "CONFIG+=$(RELEASE_DEBUG)" kabcE.pro -o Makefile$(PLATFORM)
265
266kabc/formats/binary/Makefile$(PLATFORM): kabc/formats/binary/kabcformat_binaryE.pro
267 cd kabc/formats/binary; tmake "CONFIG+=$(RELEASE_DEBUG)" kabcformat_binaryE.pro -o Makefile$(PLATFORM)
268
269kabc/plugins/file/Makefile$(PLATFORM): kabc/plugins/file/fileE.pro
270 cd kabc/plugins/file; tmake "CONFIG+=$(RELEASE_DEBUG)" fileE.pro -o Makefile$(PLATFORM)
271
272kabc/plugins/dir/Makefile$(PLATFORM): kabc/plugins/dir/dirE.pro
273 cd kabc/plugins/dir; tmake "CONFIG+=$(RELEASE_DEBUG)" dirE.pro -o Makefile$(PLATFORM)
274
275kabc/plugins/ldap/Makefile$(PLATFORM): kabc/plugins/ldap/ldapE.pro
276 cd kabc/plugins/ldap; tmake "CONFIG+=$(RELEASE_DEBUG)" ldapE.pro -o Makefile$(PLATFORM)
277
278kabc/plugins/opie/Makefile$(PLATFORM): kabc/plugins/opie/opieE.pro
279 cd kabc/plugins/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" opieE.pro -o Makefile$(PLATFORM)
280
281kabc/plugins/qtopia/Makefile$(PLATFORM): kabc/plugins/qtopia/qtopiaE.pro
282 cd kabc/plugins/qtopia; tmake "CONFIG+=$(RELEASE_DEBUG)" qtopiaE.pro -o Makefile$(PLATFORM)
283
284kabc/plugins/sharpdtm/Makefile$(PLATFORM): kabc/plugins/sharpdtm/sharpdtmE.pro
285 cd kabc/plugins/sharpdtm; tmake "CONFIG+=$(RELEASE_DEBUG)" sharpdtmE.pro -o Makefile$(PLATFORM)
286
287kaddressbook/Makefile$(PLATFORM): kaddressbook/kaddressbookE.pro
288 cd kaddressbook; tmake "CONFIG+=$(RELEASE_DEBUG)" kaddressbookE.pro -o Makefile$(PLATFORM)
289
290kmicromail/Makefile$(PLATFORM): kmicromail/kmicromailE.pro
291 cd kmicromail; tmake "CONFIG+=$(RELEASE_DEBUG)" kmicromailE.pro -o Makefile$(PLATFORM)
292
293kmicromail/libetpan/Makefile$(PLATFORM): kmicromail/libetpan/libetpanE.pro
294 cd kmicromail/libetpan; tmake "CONFIG+=$(RELEASE_DEBUG)" libetpanE.pro -o Makefile$(PLATFORM)
295
296kmicromail/libmailwrapper/Makefile$(PLATFORM): kmicromail/libmailwrapper/libmailwrapperE.pro
297 cd kmicromail/libmailwrapper; tmake "CONFIG+=$(RELEASE_DEBUG)" libmailwrapperE.pro -o Makefile$(PLATFORM)
298
299gammu/emb/common/Makefile$(PLATFORM): gammu/emb/common/commonE.pro
300 cd gammu/emb/common; tmake "CONFIG+=$(RELEASE_DEBUG)" commonE.pro -o Makefile$(PLATFORM)
301
302gammu/emb/gammu/Makefile$(PLATFORM): gammu/emb/gammu/gammuE.pro
303 cd gammu/emb/gammu; tmake "CONFIG+=$(RELEASE_DEBUG)" gammuE.pro -o Makefile$(PLATFORM)
diff --git a/kaddressbook/views/kaddressbookcardview.cpp b/kaddressbook/views/kaddressbookcardview.cpp
index 49c0691..8d0fca1 100644
--- a/kaddressbook/views/kaddressbookcardview.cpp
+++ b/kaddressbook/views/kaddressbookcardview.cpp
@@ -1,284 +1,285 @@
1/* 1/*
2 This file is part of KAddressBook. 2 This file is part of KAddressBook.
3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com> 3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
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 <qdragobject.h> 24#include <qdragobject.h>
25#include <qevent.h> 25#include <qevent.h>
26#include <qiconview.h> 26#include <qiconview.h>
27#include <qlayout.h> 27#include <qlayout.h>
28#include <qstringlist.h> 28#include <qstringlist.h>
29#include <qregexp.h>
29 30
30#include <kabc/addressbook.h> 31#include <kabc/addressbook.h>
31#include <kabc/addressee.h> 32#include <kabc/addressee.h>
32#include <kconfig.h> 33#include <kconfig.h>
33#include <kdebug.h> 34#include <kdebug.h>
34#include <klocale.h> 35#include <klocale.h>
35 36
36#include "kabprefs.h" 37#include "kabprefs.h"
37#include "viewmanager.h" 38#include "viewmanager.h"
38 39
39#include "kaddressbookcardview.h" 40#include "kaddressbookcardview.h"
40 41
41#ifndef KAB_EMBEDDED 42#ifndef KAB_EMBEDDED
42extern "C" { 43extern "C" {
43 void *init_libkaddrbk_cardview() 44 void *init_libkaddrbk_cardview()
44 { 45 {
45 return ( new CardViewFactory ); 46 return ( new CardViewFactory );
46 } 47 }
47} 48}
48#endif //KAB_EMBEDDED 49#endif //KAB_EMBEDDED
49 50
50//////////////////////////////// 51////////////////////////////////
51// AddresseeCardViewItem (internal class) 52// AddresseeCardViewItem (internal class)
52class AddresseeCardViewItem : public CardViewItem 53class AddresseeCardViewItem : public CardViewItem
53{ 54{
54 public: 55 public:
55 AddresseeCardViewItem(const KABC::Field::List &fields, 56 AddresseeCardViewItem(const KABC::Field::List &fields,
56 bool showEmptyFields, 57 bool showEmptyFields,
57 KABC::AddressBook *doc, const KABC::Addressee &a, 58 KABC::AddressBook *doc, const KABC::Addressee &a,
58 CardView *parent) 59 CardView *parent)
59 : CardViewItem(parent, a.formattedName()), 60 : CardViewItem(parent, a.formattedName()),
60 mFields( fields ), mShowEmptyFields(showEmptyFields), 61 mFields( fields ), mShowEmptyFields(showEmptyFields),
61 mDocument(doc), mAddressee(a) 62 mDocument(doc), mAddressee(a)
62 { 63 {
63 if ( mFields.isEmpty() ) { 64 if ( mFields.isEmpty() ) {
64 mFields = KABC::Field::defaultFields(); 65 mFields = KABC::Field::defaultFields();
65 } 66 }
66 refresh(); 67 refresh();
67 } 68 }
68 69
69 const KABC::Addressee &addressee() const { return mAddressee; } 70 const KABC::Addressee &addressee() const { return mAddressee; }
70 71
71 void refresh() 72 void refresh()
72 { 73 {
73 // Update our addressee, since it may have changed elsewhere 74 // Update our addressee, since it may have changed elsewhere
74 mAddressee = mDocument->findByUid(mAddressee.uid()); 75 mAddressee = mDocument->findByUid(mAddressee.uid());
75 76
76 if (!mAddressee.isEmpty()) 77 if (!mAddressee.isEmpty())
77 { 78 {
78 clearFields(); 79 clearFields();
79 80
80 // Try all the selected fields until we find one with text. 81 // Try all the selected fields until we find one with text.
81 // This will limit the number of unlabeled icons in the view 82 // This will limit the number of unlabeled icons in the view
82 KABC::Field::List::Iterator iter; 83 KABC::Field::List::Iterator iter;
83 for (iter = mFields.begin(); iter != mFields.end(); ++iter) 84 for (iter = mFields.begin(); iter != mFields.end(); ++iter)
84 { 85 {
85 // insert empty fields or not? not doing so saves a bit of memory and CPU 86 // insert empty fields or not? not doing so saves a bit of memory and CPU
86 // (during geometry calculations), but prevents having equally 87 // (during geometry calculations), but prevents having equally
87 // wide label columns in all cards, unless CardViewItem/CardView search 88 // wide label columns in all cards, unless CardViewItem/CardView search
88 // globally for the widest label. (anders) 89 // globally for the widest label. (anders)
89 //if (mShowEmptyFields || !(*iter)->value( mAddressee ).isEmpty()) 90 //if (mShowEmptyFields || !(*iter)->value( mAddressee ).isEmpty())
90 insertField((*iter)->label(), (*iter)->value( mAddressee )); 91 insertField((*iter)->label(), (*iter)->value( mAddressee ));
91 } 92 }
92 93
93 // We might want to make this the first field. hmm... -mpilone 94 // We might want to make this the first field. hmm... -mpilone
94 setCaption( mAddressee.realName() ); 95 setCaption( mAddressee.realName() );
95 } 96 }
96 } 97 }
97 98
98 private: 99 private:
99 KABC::Field::List mFields; 100 KABC::Field::List mFields;
100 bool mShowEmptyFields; 101 bool mShowEmptyFields;
101 KABC::AddressBook *mDocument; 102 KABC::AddressBook *mDocument;
102 KABC::Addressee mAddressee; 103 KABC::Addressee mAddressee;
103}; 104};
104 105
105/////////////////////////////// 106///////////////////////////////
106// AddresseeCardView 107// AddresseeCardView
107 108
108AddresseeCardView::AddresseeCardView(QWidget *parent, const char *name) 109AddresseeCardView::AddresseeCardView(QWidget *parent, const char *name)
109 : CardView(parent, name) 110 : CardView(parent, name)
110{ 111{
111 setAcceptDrops(true); 112 setAcceptDrops(true);
112} 113}
113 114
114AddresseeCardView::~AddresseeCardView() 115AddresseeCardView::~AddresseeCardView()
115{ 116{
116} 117}
117 118
118 119
119void AddresseeCardView::dragEnterEvent(QDragEnterEvent *e) 120void AddresseeCardView::dragEnterEvent(QDragEnterEvent *e)
120{ 121{
121#ifndef KAB_EMBEDDED 122#ifndef KAB_EMBEDDED
122 if (QTextDrag::canDecode(e)) 123 if (QTextDrag::canDecode(e))
123 e->accept(); 124 e->accept();
124#else //KAB_EMBEDDED 125#else //KAB_EMBEDDED
125qDebug("AddresseeCardView::dragEnterEvent drag&drop is not implemented"); 126qDebug("AddresseeCardView::dragEnterEvent drag&drop is not implemented");
126#endif //KAB_EMBEDDED 127#endif //KAB_EMBEDDED
127} 128}
128 129
129void AddresseeCardView::dropEvent(QDropEvent *e) 130void AddresseeCardView::dropEvent(QDropEvent *e)
130{ 131{
131 emit addresseeDropped(e); 132 emit addresseeDropped(e);
132} 133}
133 134
134void AddresseeCardView::startDrag() 135void AddresseeCardView::startDrag()
135{ 136{
136 emit startAddresseeDrag(); 137 emit startAddresseeDrag();
137} 138}
138 139
139 140
140/////////////////////////////// 141///////////////////////////////
141// KAddressBookCardView 142// KAddressBookCardView
142 143
143KAddressBookCardView::KAddressBookCardView( KABC::AddressBook *ab, 144KAddressBookCardView::KAddressBookCardView( KABC::AddressBook *ab,
144 QWidget *parent, const char *name ) 145 QWidget *parent, const char *name )
145 : KAddressBookView( ab, parent, name ) 146 : KAddressBookView( ab, parent, name )
146{ 147{
147 mShowEmptyFields = false; 148 mShowEmptyFields = false;
148 149
149 // Init the GUI 150 // Init the GUI
150 QVBoxLayout *layout = new QVBoxLayout(viewWidget()); 151 QVBoxLayout *layout = new QVBoxLayout(viewWidget());
151 152
152 mCardView = new AddresseeCardView(viewWidget(), "mCardView"); 153 mCardView = new AddresseeCardView(viewWidget(), "mCardView");
153 mCardView->setSelectionMode(CardView::Extended); 154 mCardView->setSelectionMode(CardView::Extended);
154 layout->addWidget(mCardView); 155 layout->addWidget(mCardView);
155 156
156 // Connect up the signals 157 // Connect up the signals
157 connect(mCardView, SIGNAL(executed(CardViewItem *)), 158 connect(mCardView, SIGNAL(executed(CardViewItem *)),
158 this, SLOT(addresseeExecuted(CardViewItem *))); 159 this, SLOT(addresseeExecuted(CardViewItem *)));
159 connect(mCardView, SIGNAL(selectionChanged()), 160 connect(mCardView, SIGNAL(selectionChanged()),
160 this, SLOT(addresseeSelected())); 161 this, SLOT(addresseeSelected()));
161 connect(mCardView, SIGNAL(addresseeDropped(QDropEvent*)), 162 connect(mCardView, SIGNAL(addresseeDropped(QDropEvent*)),
162 this, SIGNAL(dropped(QDropEvent*))); 163 this, SIGNAL(dropped(QDropEvent*)));
163 connect(mCardView, SIGNAL(startAddresseeDrag()), 164 connect(mCardView, SIGNAL(startAddresseeDrag()),
164 this, SIGNAL(startDrag())); 165 this, SIGNAL(startDrag()));
165} 166}
166 167
167KAddressBookCardView::~KAddressBookCardView() 168KAddressBookCardView::~KAddressBookCardView()
168{ 169{
169} 170}
170 171
171void KAddressBookCardView::readConfig(KConfig *config) 172void KAddressBookCardView::readConfig(KConfig *config)
172{ 173{
173 KAddressBookView::readConfig(config); 174 KAddressBookView::readConfig(config);
174 175
175 // costum colors? 176 // costum colors?
176 if ( config->readBoolEntry( "EnableCustomColors", false ) ) 177 if ( config->readBoolEntry( "EnableCustomColors", false ) )
177 { 178 {
178 QPalette p( mCardView->palette() ); 179 QPalette p( mCardView->palette() );
179 QColor c = p.color(QPalette::Normal, QColorGroup::Base ); 180 QColor c = p.color(QPalette::Normal, QColorGroup::Base );
180 p.setColor( QPalette::Normal, QColorGroup::Base, config->readColorEntry( "BackgroundColor", &c ) ); 181 p.setColor( QPalette::Normal, QColorGroup::Base, config->readColorEntry( "BackgroundColor", &c ) );
181 c = p.color(QPalette::Normal, QColorGroup::Text ); 182 c = p.color(QPalette::Normal, QColorGroup::Text );
182 p.setColor( QPalette::Normal, QColorGroup::Text, config->readColorEntry( "TextColor", &c ) ); 183 p.setColor( QPalette::Normal, QColorGroup::Text, config->readColorEntry( "TextColor", &c ) );
183 c = p.color(QPalette::Normal, QColorGroup::Button ); 184 c = p.color(QPalette::Normal, QColorGroup::Button );
184 p.setColor( QPalette::Normal, QColorGroup::Button, config->readColorEntry( "HeaderColor", &c ) ); 185 p.setColor( QPalette::Normal, QColorGroup::Button, config->readColorEntry( "HeaderColor", &c ) );
185 c = p.color(QPalette::Normal, QColorGroup::ButtonText ); 186 c = p.color(QPalette::Normal, QColorGroup::ButtonText );
186 p.setColor( QPalette::Normal, QColorGroup::ButtonText, config->readColorEntry( "HeaderTextColor", &c ) ); 187 p.setColor( QPalette::Normal, QColorGroup::ButtonText, config->readColorEntry( "HeaderTextColor", &c ) );
187 c = p.color(QPalette::Normal, QColorGroup::Highlight ); 188 c = p.color(QPalette::Normal, QColorGroup::Highlight );
188 p.setColor( QPalette::Normal, QColorGroup::Highlight, config->readColorEntry( "HighlightColor", &c ) ); 189 p.setColor( QPalette::Normal, QColorGroup::Highlight, config->readColorEntry( "HighlightColor", &c ) );
189 c = p.color(QPalette::Normal, QColorGroup::HighlightedText ); 190 c = p.color(QPalette::Normal, QColorGroup::HighlightedText );
190 p.setColor( QPalette::Normal, QColorGroup::HighlightedText, config->readColorEntry( "HighlightedTextColor", &c ) ); 191 p.setColor( QPalette::Normal, QColorGroup::HighlightedText, config->readColorEntry( "HighlightedTextColor", &c ) );
191 mCardView->viewport()->setPalette( p ); 192 mCardView->viewport()->setPalette( p );
192 } 193 }
193 else 194 else
194 { 195 {
195 // needed if turned off during a session. 196 // needed if turned off during a session.
196 mCardView->viewport()->setPalette( mCardView->palette() ); 197 mCardView->viewport()->setPalette( mCardView->palette() );
197 } 198 }
198 199
199 //custom fonts? 200 //custom fonts?
200 QFont f( font() ); 201 QFont f( font() );
201 if ( config->readBoolEntry( "EnableCustomFonts", false ) ) 202 if ( config->readBoolEntry( "EnableCustomFonts", false ) )
202 { 203 {
203 mCardView->setFont( config->readFontEntry( "TextFont", &f) ); 204 mCardView->setFont( config->readFontEntry( "TextFont", &f) );
204 f.setBold( true ); 205 f.setBold( true );
205 mCardView->setHeaderFont( config->readFontEntry( "HeaderFont", &f ) ); 206 mCardView->setHeaderFont( config->readFontEntry( "HeaderFont", &f ) );
206 } 207 }
207 else 208 else
208 { 209 {
209 mCardView->setFont( f ); 210 mCardView->setFont( f );
210 f.setBold( true ); 211 f.setBold( true );
211 mCardView->setHeaderFont( f ); 212 mCardView->setHeaderFont( f );
212 } 213 }
213 214
214 mCardView->setDrawCardBorder(config->readBoolEntry("DrawBorder", true)); 215 mCardView->setDrawCardBorder(config->readBoolEntry("DrawBorder", true));
215 mCardView->setDrawColSeparators(config->readBoolEntry("DrawSeparators", 216 mCardView->setDrawColSeparators(config->readBoolEntry("DrawSeparators",
216 true)); 217 true));
217 mCardView->setDrawFieldLabels(config->readBoolEntry("DrawFieldLabels",false)); 218 mCardView->setDrawFieldLabels(config->readBoolEntry("DrawFieldLabels",false));
218 mShowEmptyFields = config->readBoolEntry("ShowEmptyFields", false); 219 mShowEmptyFields = config->readBoolEntry("ShowEmptyFields", false);
219 220
220 mCardView->setShowEmptyFields( mShowEmptyFields ); 221 mCardView->setShowEmptyFields( mShowEmptyFields );
221 222
222 mCardView->setItemWidth( config->readNumEntry( "ItemWidth", 200 ) ); 223 mCardView->setItemWidth( config->readNumEntry( "ItemWidth", 200 ) );
223 mCardView->setItemMargin( config->readNumEntry( "ItemMargin", 0 ) ); 224 mCardView->setItemMargin( config->readNumEntry( "ItemMargin", 0 ) );
224 mCardView->setItemSpacing( config->readNumEntry( "ItemSpacing", 10 ) ); 225 mCardView->setItemSpacing( config->readNumEntry( "ItemSpacing", 10 ) );
225 mCardView->setSeparatorWidth( config->readNumEntry( "SeparatorWidth", 2 ) ); 226 mCardView->setSeparatorWidth( config->readNumEntry( "SeparatorWidth", 2 ) );
226 227
227 disconnect(mCardView, SIGNAL(executed(CardViewItem *)), 228 disconnect(mCardView, SIGNAL(executed(CardViewItem *)),
228 this, SLOT(addresseeExecuted(CardViewItem *))); 229 this, SLOT(addresseeExecuted(CardViewItem *)));
229 230
230 if (KABPrefs::instance()->mHonorSingleClick) 231 if (KABPrefs::instance()->mHonorSingleClick)
231 connect(mCardView, SIGNAL(executed(CardViewItem *)), 232 connect(mCardView, SIGNAL(executed(CardViewItem *)),
232 this, SLOT(addresseeExecuted(CardViewItem *))); 233 this, SLOT(addresseeExecuted(CardViewItem *)));
233 else 234 else
234 connect(mCardView, SIGNAL(doubleClicked(CardViewItem *)), 235 connect(mCardView, SIGNAL(doubleClicked(CardViewItem *)),
235 this, SLOT(addresseeExecuted(CardViewItem *))); 236 this, SLOT(addresseeExecuted(CardViewItem *)));
236 237
237} 238}
238 239
239void KAddressBookCardView::writeConfig( KConfig *config ) 240void KAddressBookCardView::writeConfig( KConfig *config )
240{ 241{
241 config->writeEntry( "ItemWidth", mCardView->itemWidth() ); 242 config->writeEntry( "ItemWidth", mCardView->itemWidth() );
242 KAddressBookView::writeConfig( config ); 243 KAddressBookView::writeConfig( config );
243} 244}
244void KAddressBookCardView::doSearch( const QString& s,KABC::Field *field ) 245void KAddressBookCardView::doSearch( const QString& s,KABC::Field *field )
245{ 246{
246 mCardView->clear(); 247 mCardView->clear();
247 if ( s.isEmpty() || s == "*" ) { 248 if ( s.isEmpty() || s == "*" ) {
248 refresh(); 249 refresh();
249 return; 250 return;
250 } 251 }
251 QString pattern = s.lower()+"*"; 252 QString pattern = s.lower()+"*";
252 QRegExp re; 253 QRegExp re;
253 re.setWildcard(true); // most people understand these better. 254 re.setWildcard(true); // most people understand these better.
254 re.setCaseSensitive(false); 255 re.setCaseSensitive(false);
255 re.setPattern( pattern ); 256 re.setPattern( pattern );
256 if (!re.isValid()) 257 if (!re.isValid())
257 return; 258 return;
258 mCardView->viewport()->setUpdatesEnabled( false ); 259 mCardView->viewport()->setUpdatesEnabled( false );
259 KABC::Addressee::List addresseeList = addressees(); 260 KABC::Addressee::List addresseeList = addressees();
260 KABC::Addressee::List::Iterator it; 261 KABC::Addressee::List::Iterator it;
261 if ( field ) { 262 if ( field ) {
262 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { 263 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
263#if QT_VERSION >= 300 264#if QT_VERSION >= 300
264 if (re.search(field->value( *it ).lower()) != -1) 265 if (re.search(field->value( *it ).lower()) != -1)
265#else 266#else
266 if (re.match(field->value( *it ).lower()) != -1) 267 if (re.match(field->value( *it ).lower()) != -1)
267#endif 268#endif
268 new AddresseeCardViewItem(fields(), mShowEmptyFields, 269 new AddresseeCardViewItem(fields(), mShowEmptyFields,
269 addressBook(), *it, mCardView); 270 addressBook(), *it, mCardView);
270 271
271 } 272 }
272 } else { 273 } else {
273 KABC::Field::List fieldList = fields(); 274 KABC::Field::List fieldList = fields();
274 KABC::Field::List::ConstIterator fieldIt; 275 KABC::Field::List::ConstIterator fieldIt;
275 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { 276 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
276 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { 277 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) {
277#if QT_VERSION >= 300 278#if QT_VERSION >= 300
278 if (re.search((*fieldIt)->value( *it ).lower()) != -1) 279 if (re.search((*fieldIt)->value( *it ).lower()) != -1)
279#else 280#else
280 if (re.match((*fieldIt)->value( *it ).lower()) != -1) 281 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
281#endif 282#endif
282 { 283 {
283 new AddresseeCardViewItem(fields(), mShowEmptyFields, 284 new AddresseeCardViewItem(fields(), mShowEmptyFields,
284 addressBook(), *it, mCardView); 285 addressBook(), *it, mCardView);
diff --git a/kaddressbook/views/kaddressbookiconview.cpp b/kaddressbook/views/kaddressbookiconview.cpp
index 78d63b0..0ffc674 100644
--- a/kaddressbook/views/kaddressbookiconview.cpp
+++ b/kaddressbook/views/kaddressbookiconview.cpp
@@ -1,298 +1,299 @@
1/* 1/*
2 This file is part of KAddressBook. 2 This file is part of KAddressBook.
3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com> 3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
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#ifndef KAB_EMBEDDED 24#ifndef KAB_EMBEDDED
25#include <qiconview.h> 25#include <qiconview.h>
26#include <qstringlist.h> 26#include <qstringlist.h>
27 27
28#include <kabc/addressee.h> 28#include <kabc/addressee.h>
29#include <kconfig.h> 29#include <kconfig.h>
30#include <kdebug.h> 30#include <kdebug.h>
31#include <kglobal.h> 31#include <kglobal.h>
32#include <kiconloader.h> 32#include <kiconloader.h>
33#include <klocale.h> 33#include <klocale.h>
34 34
35#else //KAB_EMBEDDED 35#else //KAB_EMBEDDED
36#endif //KAB_EMBEDDED 36#endif //KAB_EMBEDDED
37 37
38#include <kabc/addressbook.h> 38#include <kabc/addressbook.h>
39#include "kabprefs.h" 39#include "kabprefs.h"
40#include "viewmanager.h" 40#include "viewmanager.h"
41#include "kaddressbookiconview.h" 41#include "kaddressbookiconview.h"
42#include <qlayout.h> 42#include <qlayout.h>
43#include <qregexp.h>
43#include <kglobal.h> 44#include <kglobal.h>
44/*US transfered to the headerfile 45/*US transfered to the headerfile
45class IconViewFactory : public ViewFactory 46class IconViewFactory : public ViewFactory
46{ 47{
47 public: 48 public:
48 KAddressBookView *view( KABC::AddressBook *ab, QWidget *parent, const char *name ) 49 KAddressBookView *view( KABC::AddressBook *ab, QWidget *parent, const char *name )
49 { 50 {
50 return new KAddressBookIconView( ab, parent, name ); 51 return new KAddressBookIconView( ab, parent, name );
51 } 52 }
52 53
53 QString type() const { return "Icon"; } 54 QString type() const { return "Icon"; }
54 55
55 QString description() const { return i18n( "Icons represent contacts. Very simple view." ); } 56 QString description() const { return i18n( "Icons represent contacts. Very simple view." ); }
56}; 57};
57 58
58*/ 59*/
59 60
60extern "C" { 61extern "C" {
61 void *init_libkaddrbk_iconview() 62 void *init_libkaddrbk_iconview()
62 { 63 {
63 return ( new IconViewFactory ); 64 return ( new IconViewFactory );
64 } 65 }
65} 66}
66 67
67//////////////////////////////// 68////////////////////////////////
68// AddresseeIconView (internal class) 69// AddresseeIconView (internal class)
69#ifndef KAB_EMBEDDED 70#ifndef KAB_EMBEDDED
70AddresseeIconView::AddresseeIconView(QWidget *parent, const char *name) 71AddresseeIconView::AddresseeIconView(QWidget *parent, const char *name)
71 : KIconView(parent, name) 72 : KIconView(parent, name)
72#else //KAB_EMBEDDED 73#else //KAB_EMBEDDED
73AddresseeIconView::AddresseeIconView(QWidget *parent, const char *name) 74AddresseeIconView::AddresseeIconView(QWidget *parent, const char *name)
74 : QIconView(parent, name) 75 : QIconView(parent, name)
75#endif //KAB_EMBEDDED 76#endif //KAB_EMBEDDED
76 77
77{ 78{
78 setSelectionMode( QIconView::Extended ); 79 setSelectionMode( QIconView::Extended );
79 setResizeMode( QIconView::Adjust ); 80 setResizeMode( QIconView::Adjust );
80 setWordWrapIconText( true ); 81 setWordWrapIconText( true );
81 setGridX( 100 ); 82 setGridX( 100 );
82 setItemsMovable(false); 83 setItemsMovable(false);
83 setSorting(true, true); 84 setSorting(true, true);
84 85
85 86
86//US ??? setMode( KIconView::Select ); 87//US ??? setMode( KIconView::Select );
87 88
88#ifndef KAB_EMBEDDED 89#ifndef KAB_EMBEDDED
89 90
90 connect(this, SIGNAL(dropped(QDropEvent*, const QValueList<QIconDragItem>&)), 91 connect(this, SIGNAL(dropped(QDropEvent*, const QValueList<QIconDragItem>&)),
91 this, SLOT(itemDropped(QDropEvent*, const QValueList<QIconDragItem>&))); 92 this, SLOT(itemDropped(QDropEvent*, const QValueList<QIconDragItem>&)));
92#endif //KAB_EMBEDDED 93#endif //KAB_EMBEDDED
93} 94}
94 95
95AddresseeIconView::~AddresseeIconView() 96AddresseeIconView::~AddresseeIconView()
96{ 97{
97} 98}
98 99
99 100
100void AddresseeIconView::itemDropped(QDropEvent *e, 101void AddresseeIconView::itemDropped(QDropEvent *e,
101 const QValueList<QIconDragItem> &) 102 const QValueList<QIconDragItem> &)
102{ 103{
103 emit addresseeDropped(e); 104 emit addresseeDropped(e);
104} 105}
105 106
106QDragObject *AddresseeIconView::dragObject() 107QDragObject *AddresseeIconView::dragObject()
107{ 108{
108 emit startAddresseeDrag(); 109 emit startAddresseeDrag();
109 110
110 // We never want IconView to start the drag 111 // We never want IconView to start the drag
111 return 0; 112 return 0;
112} 113}
113//////////////////////////////// 114////////////////////////////////
114// AddresseeIconViewItem (internal class) 115// AddresseeIconViewItem (internal class)
115#ifndef KAB_EMBEDDED 116#ifndef KAB_EMBEDDED
116class AddresseeIconViewItem : public KIconViewItem 117class AddresseeIconViewItem : public KIconViewItem
117#else //KAB_EMBEDDED 118#else //KAB_EMBEDDED
118class AddresseeIconViewItem : public QIconViewItem 119class AddresseeIconViewItem : public QIconViewItem
119#endif //KAB_EMBEDDED 120#endif //KAB_EMBEDDED
120{ 121{
121 public: 122 public:
122#ifndef KAB_EMBEDDED 123#ifndef KAB_EMBEDDED
123 AddresseeIconViewItem(const KABC::Field::List &fields, 124 AddresseeIconViewItem(const KABC::Field::List &fields,
124 KABC::AddressBook *doc, const KABC::Addressee &a, 125 KABC::AddressBook *doc, const KABC::Addressee &a,
125 QIconView *parent) 126 QIconView *parent)
126 : KIconViewItem(parent), mFields( fields ), mDocument(doc), mAddressee(a) 127 : KIconViewItem(parent), mFields( fields ), mDocument(doc), mAddressee(a)
127#else //KAB_EMBEDDED 128#else //KAB_EMBEDDED
128 AddresseeIconViewItem(const KABC::Field::List &fields, 129 AddresseeIconViewItem(const KABC::Field::List &fields,
129 KABC::AddressBook *doc, const KABC::Addressee &a, 130 KABC::AddressBook *doc, const KABC::Addressee &a,
130 QIconView *parent) 131 QIconView *parent)
131 : QIconViewItem(parent), mFields( fields ), mDocument(doc), mAddressee(a) 132 : QIconViewItem(parent), mFields( fields ), mDocument(doc), mAddressee(a)
132#endif //KAB_EMBEDDED 133#endif //KAB_EMBEDDED
133 { 134 {
134 if ( mFields.isEmpty() ) { 135 if ( mFields.isEmpty() ) {
135 mFields = KABC::Field::defaultFields(); 136 mFields = KABC::Field::defaultFields();
136 } 137 }
137 refresh(); 138 refresh();
138 } 139 }
139 140
140 const KABC::Addressee &addressee() const { return mAddressee; } 141 const KABC::Addressee &addressee() const { return mAddressee; }
141 142
142 void refresh() 143 void refresh()
143 { 144 {
144 // Update our addressee, since it may have changed elsewhere 145 // Update our addressee, since it may have changed elsewhere
145 mAddressee = mDocument->findByUid(mAddressee.uid()); 146 mAddressee = mDocument->findByUid(mAddressee.uid());
146 147
147 if (!mAddressee.isEmpty()) 148 if (!mAddressee.isEmpty())
148 setText( mAddressee.givenName() + " " + mAddressee.familyName() ); 149 setText( mAddressee.givenName() + " " + mAddressee.familyName() );
149 150
150 QPixmap icon; 151 QPixmap icon;
151 QPixmap defaultIcon( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop, 128 ) ); 152 QPixmap defaultIcon( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop, 128 ) );
152 KABC::Picture pic = mAddressee.photo(); 153 KABC::Picture pic = mAddressee.photo();
153 if ( pic.data().isNull() ) 154 if ( pic.data().isNull() )
154 pic = mAddressee.logo(); 155 pic = mAddressee.logo();
155 156
156 if ( pic.isIntern() && !pic.data().isNull() ) { 157 if ( pic.isIntern() && !pic.data().isNull() ) {
157 QImage img = pic.data(); 158 QImage img = pic.data();
158#ifndef KAB_EMBEDDED 159#ifndef KAB_EMBEDDED
159 if ( img.width() > img.height() ) 160 if ( img.width() > img.height() )
160 icon = img.scaleWidth( 32 ); 161 icon = img.scaleWidth( 32 );
161 else 162 else
162 icon = img.scaleHeight( 32 ); 163 icon = img.scaleHeight( 32 );
163#else //KAB_EMBEDDED 164#else //KAB_EMBEDDED
164 qDebug("AddresseeIconViewItem::refresh - scale here dependend of the displaysize and the right factor"); 165 qDebug("AddresseeIconViewItem::refresh - scale here dependend of the displaysize and the right factor");
165 icon.convertFromImage(img.smoothScale(32, 32)); 166 icon.convertFromImage(img.smoothScale(32, 32));
166#endif //KAB_EMBEDDED 167#endif //KAB_EMBEDDED
167 168
168 } else 169 } else
169 icon = defaultIcon; 170 icon = defaultIcon;
170 171
171 setPixmap( icon ); 172 setPixmap( icon );
172 } 173 }
173 174
174 private: 175 private:
175 KABC::Field::List mFields; 176 KABC::Field::List mFields;
176 KABC::AddressBook *mDocument; 177 KABC::AddressBook *mDocument;
177 KABC::Addressee mAddressee; 178 KABC::Addressee mAddressee;
178}; 179};
179 180
180/////////////////////////////// 181///////////////////////////////
181// KAddressBookView 182// KAddressBookView
182 183
183KAddressBookIconView::KAddressBookIconView( KABC::AddressBook *ab, 184KAddressBookIconView::KAddressBookIconView( KABC::AddressBook *ab,
184 QWidget *parent, const char *name) 185 QWidget *parent, const char *name)
185 : KAddressBookView( ab, parent, name ) 186 : KAddressBookView( ab, parent, name )
186{ 187{
187 // Init the GUI 188 // Init the GUI
188 QVBoxLayout *layout = new QVBoxLayout(viewWidget()); 189 QVBoxLayout *layout = new QVBoxLayout(viewWidget());
189 190
190 mIconView = new AddresseeIconView(viewWidget(), "mIconView"); 191 mIconView = new AddresseeIconView(viewWidget(), "mIconView");
191 layout->addWidget(mIconView); 192 layout->addWidget(mIconView);
192 193
193 // Connect up the signals 194 // Connect up the signals
194 195
195//US method executed is part of KIconView 196//US method executed is part of KIconView
196//US connect(mIconView, SIGNAL(executed(QIconViewItem *)), 197//US connect(mIconView, SIGNAL(executed(QIconViewItem *)),
197//US this, SLOT(addresseeExecuted(QIconViewItem *))); 198//US this, SLOT(addresseeExecuted(QIconViewItem *)));
198 connect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)), 199 connect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)),
199 this, SLOT(addresseeExecuted(QIconViewItem *))); 200 this, SLOT(addresseeExecuted(QIconViewItem *)));
200 201
201 connect(mIconView, SIGNAL(selectionChanged()), 202 connect(mIconView, SIGNAL(selectionChanged()),
202 this, SLOT(addresseeSelected())); 203 this, SLOT(addresseeSelected()));
203 connect(mIconView, SIGNAL(addresseeDropped(QDropEvent*)), 204 connect(mIconView, SIGNAL(addresseeDropped(QDropEvent*)),
204 this, SIGNAL(dropped(QDropEvent*))); 205 this, SIGNAL(dropped(QDropEvent*)));
205 connect(mIconView, SIGNAL(startAddresseeDrag()), 206 connect(mIconView, SIGNAL(startAddresseeDrag()),
206 this, SIGNAL(startDrag())); 207 this, SIGNAL(startDrag()));
207} 208}
208 209
209KAddressBookIconView::~KAddressBookIconView() 210KAddressBookIconView::~KAddressBookIconView()
210{ 211{
211} 212}
212 213
213void KAddressBookIconView::readConfig(KConfig *config) 214void KAddressBookIconView::readConfig(KConfig *config)
214{ 215{
215 KAddressBookView::readConfig(config); 216 KAddressBookView::readConfig(config);
216 217
217//US method executed is part of KIconView 218//US method executed is part of KIconView
218//US disconnect(mIconView, SIGNAL(executed(QIconViewItem *)), 219//US disconnect(mIconView, SIGNAL(executed(QIconViewItem *)),
219//US this, SLOT(addresseeExecuted(QIconViewItem *))); 220//US this, SLOT(addresseeExecuted(QIconViewItem *)));
220 disconnect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)), 221 disconnect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)),
221 this, SLOT(addresseeExecuted(QIconViewItem *))); 222 this, SLOT(addresseeExecuted(QIconViewItem *)));
222 223
223//US method executed is part of KIconView. Use selectionChanged instead 224//US method executed is part of KIconView. Use selectionChanged instead
224/*US 225/*US
225 if (KABPrefs::instance()->mHonorSingleClick) 226 if (KABPrefs::instance()->mHonorSingleClick)
226 connect(mIconView, SIGNAL(executed(QIconViewItem *)), 227 connect(mIconView, SIGNAL(executed(QIconViewItem *)),
227 this, SLOT(addresseeExecuted(QIconViewItem *))); 228 this, SLOT(addresseeExecuted(QIconViewItem *)));
228 else 229 else
229 connect(mIconView, SIGNAL(doubleClicked(QIconViewItem *)), 230 connect(mIconView, SIGNAL(doubleClicked(QIconViewItem *)),
230 this, SLOT(addresseeExecuted(QIconViewItem *))); 231 this, SLOT(addresseeExecuted(QIconViewItem *)));
231*/ 232*/
232 connect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)), 233 connect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)),
233 this, SLOT(addresseeExecuted(QIconViewItem *))); 234 this, SLOT(addresseeExecuted(QIconViewItem *)));
234 235
235} 236}
236void KAddressBookIconView::doSearch( const QString& s ,KABC::Field *field ) 237void KAddressBookIconView::doSearch( const QString& s ,KABC::Field *field )
237{ 238{
238 mIconView->clear(); 239 mIconView->clear();
239 mIconList.clear(); 240 mIconList.clear();
240 if ( s.isEmpty() || s == "*" ) { 241 if ( s.isEmpty() || s == "*" ) {
241 refresh(); 242 refresh();
242 return; 243 return;
243 } 244 }
244 QString pattern = s.lower()+"*"; 245 QString pattern = s.lower()+"*";
245 QRegExp re; 246 QRegExp re;
246 re.setWildcard(true); // most people understand these better. 247 re.setWildcard(true); // most people understand these better.
247 re.setCaseSensitive(false); 248 re.setCaseSensitive(false);
248 re.setPattern( pattern ); 249 re.setPattern( pattern );
249 if (!re.isValid()) 250 if (!re.isValid())
250 return; 251 return;
251 KABC::Addressee::List addresseeList = addressees(); 252 KABC::Addressee::List addresseeList = addressees();
252 KABC::Addressee::List::Iterator it; 253 KABC::Addressee::List::Iterator it;
253 if ( field ) { 254 if ( field ) {
254 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { 255 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
255#if QT_VERSION >= 300 256#if QT_VERSION >= 300
256 if (re.search(field->value( *it ).lower()) != -1) 257 if (re.search(field->value( *it ).lower()) != -1)
257#else 258#else
258 if (re.match(field->value( *it ).lower()) != -1) 259 if (re.match(field->value( *it ).lower()) != -1)
259#endif 260#endif
260 mIconList.append(new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); 261 mIconList.append(new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView ));
261 262
262 263
263 } 264 }
264 } else { 265 } else {
265 KABC::Field::List fieldList = fields(); 266 KABC::Field::List fieldList = fields();
266 KABC::Field::List::ConstIterator fieldIt; 267 KABC::Field::List::ConstIterator fieldIt;
267 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { 268 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
268 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { 269 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) {
269#if QT_VERSION >= 300 270#if QT_VERSION >= 300
270 if (re.search((*fieldIt)->value( *it ).lower()) != -1) 271 if (re.search((*fieldIt)->value( *it ).lower()) != -1)
271#else 272#else
272 if (re.match((*fieldIt)->value( *it ).lower()) != -1) 273 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
273#endif 274#endif
274 { 275 {
275 mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); 276 mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView ));
276 continue; 277 continue;
277 } 278 }
278 } 279 }
279 } 280 }
280 } 281 }
281 mIconView->arrangeItemsInGrid( true ); 282 mIconView->arrangeItemsInGrid( true );
282} 283}
283QStringList KAddressBookIconView::selectedUids() 284QStringList KAddressBookIconView::selectedUids()
284{ 285{
285 QStringList uidList; 286 QStringList uidList;
286 QIconViewItem *item; 287 QIconViewItem *item;
287 AddresseeIconViewItem *aItem; 288 AddresseeIconViewItem *aItem;
288 289
289 for (item = mIconView->firstItem(); item; item = item->nextItem()) 290 for (item = mIconView->firstItem(); item; item = item->nextItem())
290 { 291 {
291 if (item->isSelected()) 292 if (item->isSelected())
292 { 293 {
293#ifndef KAB_EMBEDDED 294#ifndef KAB_EMBEDDED
294 aItem = dynamic_cast<AddresseeIconViewItem*>(item); 295 aItem = dynamic_cast<AddresseeIconViewItem*>(item);
295#else //KAB_EMBEDDED 296#else //KAB_EMBEDDED
296 aItem = (AddresseeIconViewItem*)(item); 297 aItem = (AddresseeIconViewItem*)(item);
297#endif //KAB_EMBEDDED 298#endif //KAB_EMBEDDED
298 if (aItem) 299 if (aItem)
diff --git a/kaddressbook/views/kaddressbooktableview.cpp b/kaddressbook/views/kaddressbooktableview.cpp
index 63ad0ed..1dc9198 100644
--- a/kaddressbook/views/kaddressbooktableview.cpp
+++ b/kaddressbook/views/kaddressbooktableview.cpp
@@ -1,291 +1,292 @@
1// $Id$ 1// $Id$
2 2
3#include <qvbox.h> 3#include <qvbox.h>
4#include <qlistbox.h> 4#include <qlistbox.h>
5#include <qwidget.h> 5#include <qwidget.h>
6#include <qfile.h> 6#include <qfile.h>
7#include <qimage.h> 7#include <qimage.h>
8#include <qcombobox.h> 8#include <qcombobox.h>
9#include <qapplication.h> 9#include <qapplication.h>
10#include <qdragobject.h> 10#include <qdragobject.h>
11#include <qevent.h> 11#include <qevent.h>
12#include <qurl.h> 12#include <qurl.h>
13#include <qpixmap.h> 13#include <qpixmap.h>
14 14
15#include <kabc/addressbook.h> 15#include <kabc/addressbook.h>
16#include <kapplication.h> 16#include <kapplication.h>
17#include <kconfig.h> 17#include <kconfig.h>
18#include <kcolorbutton.h> 18#include <kcolorbutton.h>
19#include <kdebug.h> 19#include <kdebug.h>
20#include <kglobal.h> 20#include <kglobal.h>
21#include <kiconloader.h> 21#include <kiconloader.h>
22#include <klineedit.h> 22#include <klineedit.h>
23#include <klocale.h> 23#include <klocale.h>
24#include <kmessagebox.h> 24#include <kmessagebox.h>
25#include <kurl.h> 25#include <kurl.h>
26#include <kurlrequester.h> 26#include <kurlrequester.h>
27 27
28//US#include "configuretableviewdialog.h" 28//US#include "configuretableviewdialog.h"
29#include "contactlistview.h" 29#include "contactlistview.h"
30#include "kabprefs.h" 30#include "kabprefs.h"
31#include "undocmds.h" 31#include "undocmds.h"
32#include "viewmanager.h" 32#include "viewmanager.h"
33 33
34#include <qlayout.h> 34#include <qlayout.h>
35#include <qheader.h> 35#include <qheader.h>
36#include <qregexp.h>
36 37
37#include "kaddressbooktableview.h" 38#include "kaddressbooktableview.h"
38 39
39 40
40KAddressBookTableView::KAddressBookTableView( KABC::AddressBook *ab, 41KAddressBookTableView::KAddressBookTableView( KABC::AddressBook *ab,
41 QWidget *parent, const char *name ) 42 QWidget *parent, const char *name )
42 : KAddressBookView( ab, parent, name ) 43 : KAddressBookView( ab, parent, name )
43{ 44{
44 mainLayout = new QVBoxLayout( viewWidget(), 2 ); 45 mainLayout = new QVBoxLayout( viewWidget(), 2 );
45 46
46 // The list view will be created when the config is read. 47 // The list view will be created when the config is read.
47 mListView = 0; 48 mListView = 0;
48} 49}
49 50
50KAddressBookTableView::~KAddressBookTableView() 51KAddressBookTableView::~KAddressBookTableView()
51{ 52{
52} 53}
53 54
54void KAddressBookTableView::reconstructListView() 55void KAddressBookTableView::reconstructListView()
55{ 56{
56 if (mListView) 57 if (mListView)
57 { 58 {
58 disconnect(mListView, SIGNAL(selectionChanged()), 59 disconnect(mListView, SIGNAL(selectionChanged()),
59 this, SLOT(addresseeSelected())); 60 this, SLOT(addresseeSelected()));
60 disconnect(mListView, SIGNAL(executed(QListViewItem*)), 61 disconnect(mListView, SIGNAL(executed(QListViewItem*)),
61 this, SLOT(addresseeExecuted(QListViewItem*))); 62 this, SLOT(addresseeExecuted(QListViewItem*)));
62 disconnect(mListView, SIGNAL(doubleClicked(QListViewItem*)), 63 disconnect(mListView, SIGNAL(doubleClicked(QListViewItem*)),
63 this, SLOT(addresseeExecuted(QListViewItem*))); 64 this, SLOT(addresseeExecuted(QListViewItem*)));
64 disconnect(mListView, SIGNAL(startAddresseeDrag()), this, 65 disconnect(mListView, SIGNAL(startAddresseeDrag()), this,
65 SIGNAL(startDrag())); 66 SIGNAL(startDrag()));
66 disconnect(mListView, SIGNAL(returnPressed(QListViewItem*)), 67 disconnect(mListView, SIGNAL(returnPressed(QListViewItem*)),
67 this, SLOT(addresseeExecuted(QListViewItem*))); 68 this, SLOT(addresseeExecuted(QListViewItem*)));
68 69
69 disconnect(mListView, SIGNAL(addresseeDropped(QDropEvent*)), this, 70 disconnect(mListView, SIGNAL(addresseeDropped(QDropEvent*)), this,
70 SIGNAL(dropped(QDropEvent*))); 71 SIGNAL(dropped(QDropEvent*)));
71 delete mListView; 72 delete mListView;
72 } 73 }
73 74
74 mListView = new ContactListView( this, addressBook(), viewWidget() ); 75 mListView = new ContactListView( this, addressBook(), viewWidget() );
75 76
76 // Add the columns 77 // Add the columns
77 KABC::Field::List fieldList = fields(); 78 KABC::Field::List fieldList = fields();
78 KABC::Field::List::ConstIterator it; 79 KABC::Field::List::ConstIterator it;
79 80
80 int c = 0; 81 int c = 0;
81 for( it = fieldList.begin(); it != fieldList.end(); ++it ) { 82 for( it = fieldList.begin(); it != fieldList.end(); ++it ) {
82 mListView->addColumn( (*it)->label() ); 83 mListView->addColumn( (*it)->label() );
83 mListView->setColumnWidthMode(c++, QListView::Manual); 84 mListView->setColumnWidthMode(c++, QListView::Manual);
84//US 85//US
85 // qDebug("KAddressBookTableView::reconstructListView: field %s", (*it)->label().latin1()); 86 // qDebug("KAddressBookTableView::reconstructListView: field %s", (*it)->label().latin1());
86 } 87 }
87 88
88 connect(mListView, SIGNAL(selectionChanged()), 89 connect(mListView, SIGNAL(selectionChanged()),
89 this, SLOT(addresseeSelected())); 90 this, SLOT(addresseeSelected()));
90 connect(mListView, SIGNAL(startAddresseeDrag()), this, 91 connect(mListView, SIGNAL(startAddresseeDrag()), this,
91 SIGNAL(startDrag())); 92 SIGNAL(startDrag()));
92 connect(mListView, SIGNAL(addresseeDropped(QDropEvent*)), this, 93 connect(mListView, SIGNAL(addresseeDropped(QDropEvent*)), this,
93 SIGNAL(dropped(QDropEvent*))); 94 SIGNAL(dropped(QDropEvent*)));
94 95
95 if (KABPrefs::instance()->mHonorSingleClick) 96 if (KABPrefs::instance()->mHonorSingleClick)
96 connect(mListView, SIGNAL(executed(QListViewItem*)), 97 connect(mListView, SIGNAL(executed(QListViewItem*)),
97 this, SLOT(addresseeExecuted(QListViewItem*))); 98 this, SLOT(addresseeExecuted(QListViewItem*)));
98 else 99 else
99 connect(mListView, SIGNAL(doubleClicked(QListViewItem*)), 100 connect(mListView, SIGNAL(doubleClicked(QListViewItem*)),
100 this, SLOT(addresseeExecuted(QListViewItem*))); 101 this, SLOT(addresseeExecuted(QListViewItem*)));
101 connect(mListView, SIGNAL(returnPressed(QListViewItem*)), 102 connect(mListView, SIGNAL(returnPressed(QListViewItem*)),
102 this, SLOT(addresseeExecuted(QListViewItem*))); 103 this, SLOT(addresseeExecuted(QListViewItem*)));
103 connect(mListView, SIGNAL(signalDelete()), 104 connect(mListView, SIGNAL(signalDelete()),
104 this, SLOT(addresseeDeleted())); 105 this, SLOT(addresseeDeleted()));
105 106
106//US performceimprovement. Refresh is done from the outside 107//US performceimprovement. Refresh is done from the outside
107//US refresh(); 108//US refresh();
108 109
109 mListView->setSorting( 0, true ); 110 mListView->setSorting( 0, true );
110 mainLayout->addWidget( mListView ); 111 mainLayout->addWidget( mListView );
111 mainLayout->activate(); 112 mainLayout->activate();
112 mListView->show(); 113 mListView->show();
113} 114}
114 115
115void KAddressBookTableView::doSearch( const QString& s, KABC::Field *field ) 116void KAddressBookTableView::doSearch( const QString& s, KABC::Field *field )
116{ 117{
117 mListView->clear(); 118 mListView->clear();
118 if ( s.isEmpty() || s == "*" ) { 119 if ( s.isEmpty() || s == "*" ) {
119 refresh(); 120 refresh();
120 return; 121 return;
121 } 122 }
122 QString pattern = s.lower()+"*"; 123 QString pattern = s.lower()+"*";
123 QRegExp re; 124 QRegExp re;
124 re.setWildcard(true); // most people understand these better. 125 re.setWildcard(true); // most people understand these better.
125 re.setCaseSensitive(false); 126 re.setCaseSensitive(false);
126 re.setPattern( pattern ); 127 re.setPattern( pattern );
127 if (!re.isValid()) 128 if (!re.isValid())
128 return; 129 return;
129 KABC::Addressee::List addresseeList = addressees(); 130 KABC::Addressee::List addresseeList = addressees();
130 KABC::Addressee::List::Iterator it; 131 KABC::Addressee::List::Iterator it;
131 if ( field ) { 132 if ( field ) {
132 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { 133 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
133#if QT_VERSION >= 300 134#if QT_VERSION >= 300
134 if (re.search(field->value( *it ).lower()) != -1) 135 if (re.search(field->value( *it ).lower()) != -1)
135#else 136#else
136 if (re.match(field->value( *it ).lower()) != -1) 137 if (re.match(field->value( *it ).lower()) != -1)
137#endif 138#endif
138 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); 139 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields());
139 140
140 } 141 }
141 } else { 142 } else {
142 KABC::Field::List fieldList = fields(); 143 KABC::Field::List fieldList = fields();
143 KABC::Field::List::ConstIterator fieldIt; 144 KABC::Field::List::ConstIterator fieldIt;
144 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { 145 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
145 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { 146 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) {
146#if QT_VERSION >= 300 147#if QT_VERSION >= 300
147 if (re.search((*fieldIt)->value( *it ).lower()) != -1) 148 if (re.search((*fieldIt)->value( *it ).lower()) != -1)
148#else 149#else
149 if (re.match((*fieldIt)->value( *it ).lower()) != -1) 150 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
150#endif 151#endif
151 { 152 {
152 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); 153 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields());
153 break; 154 break;
154 } 155 }
155 } 156 }
156 } 157 }
157 } 158 }
158 // Sometimes the background pixmap gets messed up when we add lots 159 // Sometimes the background pixmap gets messed up when we add lots
159 // of items. 160 // of items.
160 mListView->repaint(); 161 mListView->repaint();
161 emit selected(QString::null); 162 emit selected(QString::null);
162 163
163} 164}
164void KAddressBookTableView::writeConfig(KConfig *config) 165void KAddressBookTableView::writeConfig(KConfig *config)
165{ 166{
166 KAddressBookView::writeConfig(config); 167 KAddressBookView::writeConfig(config);
167 168
168 mListView->saveLayout(config, config->group()); 169 mListView->saveLayout(config, config->group());
169} 170}
170 171
171void KAddressBookTableView::readConfig(KConfig *config) 172void KAddressBookTableView::readConfig(KConfig *config)
172{ 173{
173 KAddressBookView::readConfig( config ); 174 KAddressBookView::readConfig( config );
174 // The config could have changed the fields, so we need to reconstruct 175 // The config could have changed the fields, so we need to reconstruct
175 // the listview. 176 // the listview.
176 reconstructListView(); 177 reconstructListView();
177 178
178 // costum colors? 179 // costum colors?
179 if ( config->readBoolEntry( "EnableCustomColors", false ) ) 180 if ( config->readBoolEntry( "EnableCustomColors", false ) )
180 { 181 {
181 QPalette p( mListView->palette() ); 182 QPalette p( mListView->palette() );
182 QColor c = p.color(QPalette::Normal, QColorGroup::Base ); 183 QColor c = p.color(QPalette::Normal, QColorGroup::Base );
183 p.setColor( QPalette::Normal, QColorGroup::Base, config->readColorEntry( "BackgroundColor", &c ) ); 184 p.setColor( QPalette::Normal, QColorGroup::Base, config->readColorEntry( "BackgroundColor", &c ) );
184 c = p.color(QPalette::Normal, QColorGroup::Text ); 185 c = p.color(QPalette::Normal, QColorGroup::Text );
185 p.setColor( QPalette::Normal, QColorGroup::Text, config->readColorEntry( "TextColor", &c ) ); 186 p.setColor( QPalette::Normal, QColorGroup::Text, config->readColorEntry( "TextColor", &c ) );
186 c = p.color(QPalette::Normal, QColorGroup::Button ); 187 c = p.color(QPalette::Normal, QColorGroup::Button );
187 p.setColor( QPalette::Normal, QColorGroup::Button, config->readColorEntry( "HeaderColor", &c ) ); 188 p.setColor( QPalette::Normal, QColorGroup::Button, config->readColorEntry( "HeaderColor", &c ) );
188 c = p.color(QPalette::Normal, QColorGroup::ButtonText ); 189 c = p.color(QPalette::Normal, QColorGroup::ButtonText );
189 p.setColor( QPalette::Normal, QColorGroup::ButtonText, config->readColorEntry( "HeaderTextColor", &c ) ); 190 p.setColor( QPalette::Normal, QColorGroup::ButtonText, config->readColorEntry( "HeaderTextColor", &c ) );
190 c = p.color(QPalette::Normal, QColorGroup::Highlight ); 191 c = p.color(QPalette::Normal, QColorGroup::Highlight );
191 p.setColor( QPalette::Normal, QColorGroup::Highlight, config->readColorEntry( "HighlightColor", &c ) ); 192 p.setColor( QPalette::Normal, QColorGroup::Highlight, config->readColorEntry( "HighlightColor", &c ) );
192 c = p.color(QPalette::Normal, QColorGroup::HighlightedText ); 193 c = p.color(QPalette::Normal, QColorGroup::HighlightedText );
193 p.setColor( QPalette::Normal, QColorGroup::HighlightedText, config->readColorEntry( "HighlightedTextColor", &c ) ); 194 p.setColor( QPalette::Normal, QColorGroup::HighlightedText, config->readColorEntry( "HighlightedTextColor", &c ) );
194#ifndef KAB_EMBEDDED 195#ifndef KAB_EMBEDDED
195 c = KGlobalSettings::alternateBackgroundColor(); 196 c = KGlobalSettings::alternateBackgroundColor();
196#else //KAB_EMBEDDED 197#else //KAB_EMBEDDED
197 c = QColor(240, 240, 240); 198 c = QColor(240, 240, 240);
198#endif //KAB_EMBEDDED 199#endif //KAB_EMBEDDED
199 c = config->readColorEntry ("AlternatingBackgroundColor", &c); 200 c = config->readColorEntry ("AlternatingBackgroundColor", &c);
200 mListView->setAlternateColor(c); 201 mListView->setAlternateColor(c);
201 202
202 203
203 //US mListView->viewport()->setPalette( p ); 204 //US mListView->viewport()->setPalette( p );
204 mListView->setPalette( p ); 205 mListView->setPalette( p );
205 } 206 }
206 else 207 else
207 { 208 {
208 // needed if turned off during a session. 209 // needed if turned off during a session.
209 //US mListView->viewport()->setPalette( mListView->palette() ); 210 //US mListView->viewport()->setPalette( mListView->palette() );
210 mListView->setPalette( mListView->palette() ); 211 mListView->setPalette( mListView->palette() );
211 } 212 }
212 213
213 //custom fonts? 214 //custom fonts?
214 QFont f( font() ); 215 QFont f( font() );
215 if ( config->readBoolEntry( "EnableCustomFonts", false ) ) 216 if ( config->readBoolEntry( "EnableCustomFonts", false ) )
216 { 217 {
217 mListView->setFont( config->readFontEntry( "TextFont", &f) ); 218 mListView->setFont( config->readFontEntry( "TextFont", &f) );
218 f.setBold( true ); 219 f.setBold( true );
219 //US mListView->setHeaderFont( config->readFontEntry( "HeaderFont", &f ) ); 220 //US mListView->setHeaderFont( config->readFontEntry( "HeaderFont", &f ) );
220 mListView->header()->setFont( config->readFontEntry( "HeaderFont", &f ) ); 221 mListView->header()->setFont( config->readFontEntry( "HeaderFont", &f ) );
221 } 222 }
222 else 223 else
223 { 224 {
224 mListView->setFont( f ); 225 mListView->setFont( f );
225 f.setBold( true ); 226 f.setBold( true );
226 //US mListView->setHeaderFont( f ); 227 //US mListView->setHeaderFont( f );
227 mListView->header()->setFont( f ); 228 mListView->header()->setFont( f );
228 } 229 }
229 230
230 231
231 232
232 233
233 234
234 // Set the list view options 235 // Set the list view options
235 mListView->setAlternateBackgroundEnabled(config->readBoolEntry("ABackground", 236 mListView->setAlternateBackgroundEnabled(config->readBoolEntry("ABackground",
236 true)); 237 true));
237 mListView->setSingleLineEnabled(config->readBoolEntry("SingleLine", false)); 238 mListView->setSingleLineEnabled(config->readBoolEntry("SingleLine", false));
238 mListView->setToolTipsEnabled(config->readBoolEntry("ToolTips", true)); 239 mListView->setToolTipsEnabled(config->readBoolEntry("ToolTips", true));
239 240
240 if (config->readBoolEntry("Background", false)) 241 if (config->readBoolEntry("Background", false))
241 mListView->setBackgroundPixmap(config->readEntry("BackgroundName")); 242 mListView->setBackgroundPixmap(config->readEntry("BackgroundName"));
242 243
243 // Restore the layout of the listview 244 // Restore the layout of the listview
244 mListView->restoreLayout(config, config->group()); 245 mListView->restoreLayout(config, config->group());
245} 246}
246 247
247void KAddressBookTableView::refresh(QString uid) 248void KAddressBookTableView::refresh(QString uid)
248{ 249{
249 // For now just repopulate. In reality this method should 250 // For now just repopulate. In reality this method should
250 // check the value of uid, and if valid iterate through 251 // check the value of uid, and if valid iterate through
251 // the listview to find the entry, then tell it to refresh. 252 // the listview to find the entry, then tell it to refresh.
252 253
253 if (uid.isNull()) { 254 if (uid.isNull()) {
254 // Clear the list view 255 // Clear the list view
255 QString currentUID, nextUID; 256 QString currentUID, nextUID;
256#ifndef KAB_EMBEDDED 257#ifndef KAB_EMBEDDED
257 ContactListViewItem *currentItem = dynamic_cast<ContactListViewItem*>( mListView->currentItem() ); 258 ContactListViewItem *currentItem = dynamic_cast<ContactListViewItem*>( mListView->currentItem() );
258#else //KAB_EMBEDDED 259#else //KAB_EMBEDDED
259 ContactListViewItem *currentItem = (ContactListViewItem*)( mListView->currentItem() ); 260 ContactListViewItem *currentItem = (ContactListViewItem*)( mListView->currentItem() );
260#endif //KAB_EMBEDDED 261#endif //KAB_EMBEDDED
261 262
262 if ( currentItem ) { 263 if ( currentItem ) {
263#ifndef KAB_EMBEDDED 264#ifndef KAB_EMBEDDED
264 ContactListViewItem *nextItem = dynamic_cast<ContactListViewItem*>( currentItem->itemBelow() ); 265 ContactListViewItem *nextItem = dynamic_cast<ContactListViewItem*>( currentItem->itemBelow() );
265#else //KAB_EMBEDDED 266#else //KAB_EMBEDDED
266 ContactListViewItem *nextItem = (ContactListViewItem*)( currentItem->itemBelow() ); 267 ContactListViewItem *nextItem = (ContactListViewItem*)( currentItem->itemBelow() );
267#endif //KAB_EMBEDDED 268#endif //KAB_EMBEDDED
268 if ( nextItem ) 269 if ( nextItem )
269 nextUID = nextItem->addressee().uid(); 270 nextUID = nextItem->addressee().uid();
270 currentUID = currentItem->addressee().uid(); 271 currentUID = currentItem->addressee().uid();
271 } 272 }
272 273
273 mListView->clear(); 274 mListView->clear();
274 275
275 currentItem = 0; 276 currentItem = 0;
276 KABC::Addressee::List addresseeList = addressees(); 277 KABC::Addressee::List addresseeList = addressees();
277 KABC::Addressee::List::Iterator it; 278 KABC::Addressee::List::Iterator it;
278 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { 279 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
279 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); 280 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields());
280 if ( (*it).uid() == currentUID ) 281 if ( (*it).uid() == currentUID )
281 currentItem = item; 282 currentItem = item;
282 else if ( (*it).uid() == nextUID && !currentItem ) 283 else if ( (*it).uid() == nextUID && !currentItem )
283 currentItem = item; 284 currentItem = item;
284 } 285 }
285 286
286 // Sometimes the background pixmap gets messed up when we add lots 287 // Sometimes the background pixmap gets messed up when we add lots
287 // of items. 288 // of items.
288 mListView->repaint(); 289 mListView->repaint();
289 290
290 if ( currentItem ) { 291 if ( currentItem ) {
291 mListView->setCurrentItem( currentItem ); 292 mListView->setCurrentItem( currentItem );