summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-20 16:27:05 (UTC)
committer zautrix <zautrix>2004-10-20 16:27:05 (UTC)
commit46ea2933c9f67e77fb5c6cd93237efc755f28b62 (patch) (unidiff)
tree8025e9caceb2f62cd5b1d4b78b359545d38b39c5
parent5cf3c1bce58a6487af166e637e54571e98156fd0 (diff)
downloadkdepimpi-46ea2933c9f67e77fb5c6cd93237efc755f28b62.zip
kdepimpi-46ea2933c9f67e77fb5c6cd93237efc755f28b62.tar.gz
kdepimpi-46ea2933c9f67e77fb5c6cd93237efc755f28b62.tar.bz2
made KDE sync perfect
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile529
-rw-r--r--korganizer/mainwindow.cpp8
-rw-r--r--libkdepim/ksyncmanager.cpp63
-rw-r--r--libkdepim/ksyncmanager.h4
4 files changed, 223 insertions, 381 deletions
diff --git a/Makefile b/Makefile
index 8c6110c..1e4b69d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,362 +1,169 @@
1export KDEPIMDIR = $(shell pwd) 1#############################################################################
2 2# Makefile for building: kdepim-desktop
3export KDEPIM_VERSION=$(shell sed -e 's/.*\"\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/' < version) 3# Generated by qmake (1.07a) (Qt 3.3.1) on: Wed Oct 20 16:51:16 2004
4 4# Project: kdepim-desktop.pro
5ifeq ($(PLATFORM) , zaurus) 5# Template: subdirs
6 BUILD_NO_LDAP_PLUGIN=1 6# Command: $(QMAKE) -o Makefile kdepim-desktop.pro
7endif 7#############################################################################
8 8
9ifneq ($(PLATFORM) , zaurus) 9 MAKEFILE =Makefile
10 BUILD_NO_SHARP_PLUGIN=1 10 QMAKE =qmake
11endif 11DEL_FILE = rm -f
12 12CHK_DIR_EXISTS= test -d
13SUBDIRS_MICROKDE = \ 13MKDIR = mkdir -p
14 libical/src/libical \ 14 SUBTARGETS = \
15 libical/src/libicalss \ 15 sub-gammu-emb-common \
16 qtcompat \ 16 sub-gammu-emb-gammu \
17 microkde \ 17 sub-libical \
18 libkcal \ 18 sub-libkcal \
19 libkdepim \ 19 sub-microkde \
20 kabc \ 20 sub-libkdepim \
21 kabc/formats/binary \ 21 sub-kabc \
22 kabc/plugins/file \ 22 sub-korganizer \
23 kabc/plugins/dir \ 23 sub-kaddressbook \
24 korganizer \ 24 sub-kabc-plugins-file \
25 kalarmd \ 25 sub-kabc-plugins-dir
26 kaddressbook 26
27 27first: all
28SUBDIRS_QTOPIA_PLUGIN = \ 28
29 kabc/plugins/qtopia 29all: Makefile $(SUBTARGETS)
30 30
31SUBDIRS_OPIE_PLUGIN = \ 31gammu/emb/common/$(MAKEFILE):
32 kabc/plugins/opie 32 @$(CHK_DIR_EXISTS) "gammu/emb/common" || $(MKDIR) "gammu/emb/common"
33 33 cd gammu/emb/common && $(QMAKE) common.pro -o $(MAKEFILE)
34SUBDIRS_SHARP_PLUGIN = \ 34sub-gammu-emb-common: gammu/emb/common/$(MAKEFILE) FORCE
35 kabc/plugins/sharpdtm 35 cd gammu/emb/common && $(MAKE) -f $(MAKEFILE)
36 36
37SUBDIRS_LDAP_PLUGIN = \ 37gammu/emb/gammu/$(MAKEFILE):
38 kabc/plugins/ldap 38 @$(CHK_DIR_EXISTS) "gammu/emb/gammu" || $(MKDIR) "gammu/emb/gammu"
39 39 cd gammu/emb/gammu && $(QMAKE) gammu.pro -o $(MAKEFILE)
40SUBDIRS_MICROMAIL = \ 40sub-gammu-emb-gammu: gammu/emb/gammu/$(MAKEFILE) FORCE
41 kmicromail/libetpan \ 41 cd gammu/emb/gammu && $(MAKE) -f $(MAKEFILE)
42 kmicromail/libmailwrapper \ 42
43 kmicromail 43libical/$(MAKEFILE):
44 44 @$(CHK_DIR_EXISTS) "libical" || $(MKDIR) "libical"
45SUBDIRS_GAMMU = \ 45 cd libical && $(QMAKE) libical.pro -o $(MAKEFILE)
46 gammu/emb/common \ 46sub-libical: libical/$(MAKEFILE) FORCE
47 gammu/emb/gammu 47 cd libical && $(MAKE) -f $(MAKEFILE)
48 48
49SUBDIRS_PWMANAGER = \ 49libkcal/$(MAKEFILE):
50 pwmanager/libcrypt/mpi \ 50 @$(CHK_DIR_EXISTS) "libkcal" || $(MKDIR) "libkcal"
51 pwmanager/libcrypt/error \ 51 cd libkcal && $(QMAKE) libkcal.pro -o $(MAKEFILE)
52 pwmanager/libcrypt/cipher \ 52sub-libkcal: libkcal/$(MAKEFILE) FORCE
53 pwmanager/libcrypt/zlib \ 53 cd libkcal && $(MAKE) -f $(MAKEFILE)
54 pwmanager/pwmanager 54
55 55microkde/$(MAKEFILE):
56SUBDIRS = \ 56 @$(CHK_DIR_EXISTS) "microkde" || $(MKDIR) "microkde"
57 $(SUBDIRS_MICROKDE) \ 57 cd microkde && $(QMAKE) microkde.pro -o $(MAKEFILE)
58 $(SUBDIRS_QTOPIA_PLUGIN) \ 58sub-microkde: microkde/$(MAKEFILE) FORCE
59 $(SUBDIRS_OPIE_PLUGIN) \ 59 cd microkde && $(MAKE) -f $(MAKEFILE)
60 $(SUBDIRS_SHARP_PLUGIN) \ 60
61 $(SUBDIRS_LDAP_PLUGIN) \ 61libkdepim/$(MAKEFILE):
62 $(SUBDIRS_MICROMAIL) \ 62 @$(CHK_DIR_EXISTS) "libkdepim" || $(MKDIR) "libkdepim"
63 $(SUBDIRS_GAMMU) \ 63 cd libkdepim && $(QMAKE) libkdepim.pro -o $(MAKEFILE)
64 $(SUBDIRS_PWMANAGER) 64sub-libkdepim: libkdepim/$(MAKEFILE) FORCE
65 65 cd libkdepim && $(MAKE) -f $(MAKEFILE)
66 66
67all: build_microkde \ 67kabc/$(MAKEFILE):
68 build_qtopia_plugin \ 68 @$(CHK_DIR_EXISTS) "kabc" || $(MKDIR) "kabc"
69 build_opie_plugin \ 69 cd kabc && $(QMAKE) kabc.pro -o $(MAKEFILE)
70 build_sharp_plugin \ 70sub-kabc: kabc/$(MAKEFILE) FORCE
71 build_ldap_plugin \ 71 cd kabc && $(MAKE) -f $(MAKEFILE)
72 build_micromail \ 72
73 build_gammu \ 73korganizer/$(MAKEFILE):
74 build_pwmanager 74 @$(CHK_DIR_EXISTS) "korganizer" || $(MKDIR) "korganizer"
75 75 cd korganizer && $(QMAKE) korganizer.pro -o $(MAKEFILE)
76 76sub-korganizer: korganizer/$(MAKEFILE) FORCE
77build_microkde: variable_test tmake 77 cd korganizer && $(MAKE) -f $(MAKEFILE)
78 for i in $(SUBDIRS_MICROKDE); do pushd $$i; \ 78
79 make -f Makefile$(PLATFORM) || exit 1; popd; \ 79kaddressbook/$(MAKEFILE):
80 done 80 @$(CHK_DIR_EXISTS) "kaddressbook" || $(MKDIR) "kaddressbook"
81 81 cd kaddressbook && $(QMAKE) kaddressbook.pro -o $(MAKEFILE)
82build_qtopia_plugin: build_microkde 82sub-kaddressbook: kaddressbook/$(MAKEFILE) FORCE
83 ifdef BUILD_NO_QTOPIA_PLUGIN 83 cd kaddressbook && $(MAKE) -f $(MAKEFILE)
84 @echo == qtopia plugin not build. 84
85 else 85kabc/plugins/file/$(MAKEFILE):
86 for i in $(SUBDIRS_QTOPIA_PLUGIN); do pushd $$i; \ 86 @$(CHK_DIR_EXISTS) "kabc/plugins/file" || $(MKDIR) "kabc/plugins/file"
87 make -f Makefile$(PLATFORM) || exit 1; popd; \ 87 cd kabc/plugins/file && $(QMAKE) file.pro -o $(MAKEFILE)
88 done 88sub-kabc-plugins-file: kabc/plugins/file/$(MAKEFILE) FORCE
89 endif 89 cd kabc/plugins/file && $(MAKE) -f $(MAKEFILE)
90 90
91build_opie_plugin: build_microkde 91kabc/plugins/dir/$(MAKEFILE):
92 ifdef BUILD_NO_OPIE_PLUGIN 92 @$(CHK_DIR_EXISTS) "kabc/plugins/dir" || $(MKDIR) "kabc/plugins/dir"
93 @echo == opie plugin not build. 93 cd kabc/plugins/dir && $(QMAKE) dir.pro -o $(MAKEFILE)
94 else 94sub-kabc-plugins-dir: kabc/plugins/dir/$(MAKEFILE) FORCE
95 for i in $(SUBDIRS_OPIE_PLUGIN); do pushd $$i; \ 95 cd kabc/plugins/dir && $(MAKE) -f $(MAKEFILE)
96 make -f Makefile$(PLATFORM) || exit 1; popd; \ 96
97 done 97Makefile: kdepim-desktop.pro /usr/lib/qt3/mkspecs/default/qmake.conf
98 endif 98 $(QMAKE) -o Makefile kdepim-desktop.pro
99 99qmake: qmake_all
100build_sharp_plugin: build_microkde 100 @$(QMAKE) -o Makefile kdepim-desktop.pro
101 ifdef BUILD_NO_SHARP_PLUGIN 101
102 @echo == ldap plugin not build. 102all: $(SUBTARGETS)
103 else 103qmake_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)
104 for i in $(SUBDIRS_SHARP_PLUGIN); do pushd $$i; \ 104 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
105 make -f Makefile$(PLATFORM) || exit 1; popd; \ 105 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
106 done 106 ( [ -d libical ] && cd libical ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
107 endif 107 ( [ -d libkcal ] && cd libkcal ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
108 108 ( [ -d microkde ] && cd microkde ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
109build_ldap_plugin: build_microkde 109 ( [ -d libkdepim ] && cd libkdepim ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
110 ifdef BUILD_NO_LDAP_PLUGIN 110 ( [ -d kabc ] && cd kabc ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
111 @echo == ldap plugin not build. 111 ( [ -d korganizer ] && cd korganizer ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
112 else 112 ( [ -d kaddressbook ] && cd kaddressbook ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
113 for i in $(SUBDIRS_LDAP_PLUGIN); do pushd $$i; \ 113 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
114 make -f Makefile$(PLATFORM) || exit 1; popd; \ 114 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
115 done 115clean uicables mocables uiclean mocclean lexclean yaccclean : qmake_all FORCE
116 endif 116 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) $@; ) || true
117 117 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) $@; ) || true
118 118 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) $@; ) || true
119build_micromail: build_microkde 119 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) $@; ) || true
120 ifdef BUILD_NO_MICROMAIL 120 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) $@; ) || true
121 @echo == kmicromail not build. 121 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) $@; ) || true
122 else 122 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) $@; ) || true
123 for i in $(SUBDIRS_MICROMAIL); do pushd $$i; \ 123 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) $@; ) || true
124 make -f Makefile$(PLATFORM) || exit 1; popd; \ 124 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) $@; ) || true
125 done 125 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) $@; ) || true
126 endif 126 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) $@; ) || true
127 127uninstall_subdirs: qmake_all FORCE
128build_gammu: variable_test tmake 128 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
129 ifdef BUILD_NO_GAMMU 129 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
130 @echo == gammu not build. 130 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
131 else 131 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
132 for i in $(SUBDIRS_GAMMU); do pushd $$i; \ 132 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
133 make -f Makefile$(PLATFORM) || exit 1; popd; \ 133 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
134 done 134 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
135 endif 135 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
136 136 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
137build_pwmanager: build_microkde 137 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
138 ifdef BUILD_NO_PWMANAGER 138 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
139 @echo == pwmanager not build. 139install_subdirs: qmake_all FORCE
140 else 140 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) install; ) || true
141 for i in $(SUBDIRS_PWMANAGER); do pushd $$i; \ 141 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) install; ) || true
142 make -f Makefile$(PLATFORM) || exit 1; popd; \ 142 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) install; ) || true
143 done 143 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) install; ) || true
144 endif 144 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) install; ) || true
145 145 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) install; ) || true
146 146 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) install; ) || true
147variable_info: 147 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) install; ) || true
148 @echo -------------------------------------- 148 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) install; ) || true
149 @echo KDEPIM buildsystem, variableinfo... 149 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) install; ) || true
150 @echo KDEPIMDIR=$(KDEPIMDIR) 150 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) install; ) || true
151 @echo QTDIR=$(QTDIR) 151distclean: qmake_all FORCE
152 @echo QPEDIR=$(QPEDIR) 152 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
153 @echo OPIEDIR=$(OPIEDIR) 153 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
154 @echo PLATFORM=$(PLATFORM) 154 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
155 @echo RELEASE_DEBUG=$(RELEASE_DEBUG) 155 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
156 @echo BUILD_NO_MICROMAIL=$(BUILD_NO_MICROMAIL) 156 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
157 @echo BUILD_NO_LDAP_PLUGIN=$(BUILD_NO_LDAP_PLUGIN) 157 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
158 @echo BUILD_NO_OPIE_PLUGIN=$(BUILD_NO_OPIE_PLUGIN) 158 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
159 @echo BUILD_NO_QTOPIA_PLUGIN=$(BUILD_NO_QTOPIA_PLUGIN) 159 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
160 @echo BUILD_NO_SHARP_PLUGIN=$(BUILD_NO_SHARP_PLUGIN) 160 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
161 ifndef BUILD_NO_SHARP_PLUGIN 161 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
162 @echo SHARPDTMSDK=$(SHARPDTMSDK) 162 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
163 endif 163
164 @echo BUILD_NO_GAMMU=$(BUILD_NO_GAMMU) 164install: install_subdirs
165 @echo BUILD_NO_PWMANAGER=$(BUILD_NO_PWMANAGER) 165
166 @echo -------------------------------------- 166uninstall: uninstall_subdirs
167 167
168variable_test: variable_info 168FORCE:
169 @echo KDEPIM buildsystem, variablecheck...
170 ifndef KDEPIMDIR
171 @echo KDEPIMDIR is not defined.
172 $(error KDEPIMDIR is not defined)
173 endif
174 ifndef PLATFORM
175 @echo PLATFORM is not defined.
176 $(error PLATFORM is not defined)
177 endif
178 ifdef BUILD_NO_LDAP_PLUGIN
179 @echo LDAP PLUGIN will not be build, because BUILD_NO_LDAP_PLUGIN is set to $(BUILD_NO_LDAP_PLUGIN)
180 endif
181 ifdef BUILD_NO_OPIE_PLUGIN
182 @echo OPIE PLUGIN will not be build, because BUILD_NO_OPIE_PLUGIN is set to $(BUILD_NO_OPIE_PLUGIN)
183 endif
184 ifdef BUILD_NO_QTOPIA_PLUGIN
185 @echo QTOPIA PLUGIN will not be build, because BUILD_NO__QTOPIA_PLUGIN is set to $(BUILD_NO__QTOPIA_PLUGIN)
186 endif
187 ifdef BUILD_NO_MICROMAIL
188 @echo MICROMAIL will not be build, because BUILD_NO_MICROMAIL is set to $(BUILD_NO_MICROMAIL)
189 endif
190 ifdef BUILD_NO_SHARP_PLUGIN
191 @echo SHARP PLUGIN will not be build, because BUILD_NO_SHARP_PLUGIN is set to $(BUILD_NO_SHARP_PLUGIN)
192 else
193 ifndef SHARPDTMSDK
194 @echo SHARP PLUGIN can not be build, because SHARPDTMSDK is set to $(SHARPDTMSDK)
195 $(error SHARPDTMSDK is not defined)
196 endif
197 endif
198 ifdef BUILD_NO_GAMMU
199 @echo GAMMU will not be build, because BUILD_NO_GAMMU is set to $(BUILD_NO_GAMMU)
200 endif
201 ifdef BUILD_NO_PWMANAGER
202 @echo PWMANAGER will not be build, because BUILD_NO_PWMANAGER is set to $(BUILD_NO_PWMANAGER)
203 endif
204 @echo --------------------------------------
205
206
207objects:
208 for i in $(SUBDIRS); do mkdir -p $$i/obj/$(PLATFORM); done
209 for i in $(SUBDIRS); do mkdir -p $$i/moc/$(PLATFORM); done
210 mkdir -p libical/lib/$(PLATFORM)
211 mkdir -p pwmanager/libcrypt/$(PLATFORM)
212
213clean:
214 rm -rf libical/lib/$(PLATFORM)/*;
215 rm -rf pwmanager/libcrypt/$(PLATFORM)/*;
216 for i in $(SUBDIRS); do pushd $$i; make clean; rm -f *~;\
217 rm -f obj/$(PLATFORM)/*; rm -f moc/$(PLATFORM)/*; rm Makefile$(PLATFORM); popd; \
218 done
219
220install:
221
222 cd bin/kdepim; make install
223 cp -r Pim $(QPEDIR)/apps
224 cp db2file/db2file $(QPEDIR)/bin/db2file
225 cp korganizer/korganizer.desktop $(QPEDIR)/apps/Pim/korganizer.desktop
226 cp kaddressbook/kaddressbook.desktop $(QPEDIR)/apps/Pim/kaddressbook.desktop
227 cp kmicromail/kmicromail.desktop $(QPEDIR)/apps/Pim/kopiemail.desktop
228 cp pwmanager/pwmanager/pwmanager.desktop $(QPEDIR)/apps/Pim/pwmanager.desktop
229
230dist:
231 @echo Dont forget to do "make install" before "make dist"
232 rm -f *arm.ipk
233 rm -f *~
234 cd ..; tar czf kdepim.src.tar.gz --exclude=obj --exclude=moc --exclude=CVS --exclude=Makefilezaurus --exclude=Makefileqtopia kdepim
235 mkipks kmicrokdelibs.control
236 mkipks korganizer.control
237 mkipks kaddressbook.control
238 ifndef BUILD_NO_MICROMAIL
239 mkipks kopiemail.control
240 endif
241 mkipks korganizer-alarm.control
242 ifndef BUILD_NO_GAMMU
243 mkipks phoneaccess.control
244 endif
245 ifndef BUILD_NO_PWMANAGER
246 mkipks pwmanager.control
247 endif
248 mkipks pim_TAB_icon.control
249
250tmake: objects \
251 qtcompat/Makefile$(PLATFORM) \
252 microkde/Makefile$(PLATFORM) \
253 libkcal/Makefile$(PLATFORM) \
254 libkdepim/Makefile$(PLATFORM) \
255 korganizer/Makefile$(PLATFORM) \
256 kalarmd/Makefile$(PLATFORM) \
257 libical/src/libical/Makefile$(PLATFORM) \
258 libical/src/libicalss/Makefile$(PLATFORM) \
259 kabc/Makefile$(PLATFORM) \
260 kabc/formats/binary/Makefile$(PLATFORM) \
261 kabc/plugins/file/Makefile$(PLATFORM) \
262 kabc/plugins/dir/Makefile$(PLATFORM) \
263 kabc/plugins/ldap/Makefile$(PLATFORM) \
264 kabc/plugins/opie/Makefile$(PLATFORM) \
265 kabc/plugins/qtopia/Makefile$(PLATFORM) \
266 kabc/plugins/sharpdtm/Makefile$(PLATFORM) \
267 kaddressbook/Makefile$(PLATFORM) \
268 kmicromail/Makefile$(PLATFORM) \
269 kmicromail/libetpan/Makefile$(PLATFORM) \
270 kmicromail/libmailwrapper/Makefile$(PLATFORM) \
271 gammu/emb/common/Makefile$(PLATFORM) \
272 gammu/emb/gammu/Makefile$(PLATFORM) \
273 pwmanager/pwmanager/Makefile$(PLATFORM) \
274 pwmanager/libcrypt/mpi/Makefile$(PLATFORM) \
275 pwmanager/libcrypt/error/Makefile$(PLATFORM) \
276 pwmanager/libcrypt/cipher/Makefile$(PLATFORM) \
277 pwmanager/libcrypt/zlib/Makefile$(PLATFORM)
278
279qtcompat/Makefile$(PLATFORM): qtcompat/qtcompat.pro
280 cd qtcompat; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtcompat.pro -o Makefile$(PLATFORM)
281
282microkde/Makefile$(PLATFORM): microkde/microkdeE.pro
283 cd microkde; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" microkdeE.pro -o Makefile$(PLATFORM)
284
285libkcal/Makefile$(PLATFORM): libkcal/libkcalE.pro
286 cd libkcal; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkcalE.pro -o Makefile$(PLATFORM)
287
288
289libkdepim/Makefile$(PLATFORM): libkdepim/libkdepimE.pro
290 cd libkdepim; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkdepimE.pro -o Makefile$(PLATFORM)
291
292kalarmd/Makefile$(PLATFORM): kalarmd/kalarmdE.pro
293 cd kalarmd; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kalarmdE.pro -o Makefile$(PLATFORM)
294
295korganizer/Makefile$(PLATFORM): korganizer/korganizerE.pro
296 cd korganizer; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" korganizerE.pro -o Makefile$(PLATFORM)
297
298libical/src/libical/Makefile$(PLATFORM): libical/src/libical/libicalE.pro
299 cd libical/src/libical; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalE.pro -o Makefile$(PLATFORM)
300
301libical/src/libicalss/Makefile$(PLATFORM): libical/src/libicalss/libicalssE.pro
302 cd libical/src/libicalss; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalssE.pro -o Makefile$(PLATFORM)
303
304kabc/Makefile$(PLATFORM): kabc/kabcE.pro
305 cd kabc; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcE.pro -o Makefile$(PLATFORM)
306
307kabc/formats/binary/Makefile$(PLATFORM): kabc/formats/binary/kabcformat_binaryE.pro
308 cd kabc/formats/binary; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcformat_binaryE.pro -o Makefile$(PLATFORM)
309
310kabc/plugins/file/Makefile$(PLATFORM): kabc/plugins/file/fileE.pro
311 cd kabc/plugins/file; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" fileE.pro -o Makefile$(PLATFORM)
312
313kabc/plugins/dir/Makefile$(PLATFORM): kabc/plugins/dir/dirE.pro
314 cd kabc/plugins/dir; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" dirE.pro -o Makefile$(PLATFORM)
315
316kabc/plugins/ldap/Makefile$(PLATFORM): kabc/plugins/ldap/ldapE.pro
317 cd kabc/plugins/ldap; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" ldapE.pro -o Makefile$(PLATFORM)
318
319kabc/plugins/opie/Makefile$(PLATFORM): kabc/plugins/opie/opieE.pro
320 cd kabc/plugins/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" opieE.pro -o Makefile$(PLATFORM)
321
322kabc/plugins/qtopia/Makefile$(PLATFORM): kabc/plugins/qtopia/qtopiaE.pro
323 cd kabc/plugins/qtopia; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtopiaE.pro -o Makefile$(PLATFORM)
324
325kabc/plugins/sharpdtm/Makefile$(PLATFORM): kabc/plugins/sharpdtm/sharpdtmE.pro
326 cd kabc/plugins/sharpdtm; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" sharpdtmE.pro -o Makefile$(PLATFORM)
327
328kaddressbook/Makefile$(PLATFORM): kaddressbook/kaddressbookE.pro
329 cd kaddressbook; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kaddressbookE.pro -o Makefile$(PLATFORM)
330
331kmicromail/Makefile$(PLATFORM): kmicromail/kmicromailE.pro
332 cd kmicromail; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kmicromailE.pro -o Makefile$(PLATFORM)
333
334kmicromail/libetpan/Makefile$(PLATFORM): kmicromail/libetpan/libetpanE.pro
335 cd kmicromail/libetpan; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libetpanE.pro -o Makefile$(PLATFORM)
336
337kmicromail/libmailwrapper/Makefile$(PLATFORM): kmicromail/libmailwrapper/libmailwrapperE.pro
338 cd kmicromail/libmailwrapper; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libmailwrapperE.pro -o Makefile$(PLATFORM)
339
340gammu/emb/common/Makefile$(PLATFORM): gammu/emb/common/commonE.pro
341 cd gammu/emb/common; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" commonE.pro -o Makefile$(PLATFORM)
342
343gammu/emb/gammu/Makefile$(PLATFORM): gammu/emb/gammu/gammuE.pro
344 cd gammu/emb/gammu; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" gammuE.pro -o Makefile$(PLATFORM)
345
346pwmanager/pwmanager/Makefile$(PLATFORM): pwmanager/pwmanager/pwmanagerE.pro
347 cd pwmanager/pwmanager; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" pwmanagerE.pro -o Makefile$(PLATFORM)
348
349
350pwmanager/libcrypt/mpi/Makefile$(PLATFORM): pwmanager/libcrypt/mpi/mpi.pro
351 cd pwmanager/libcrypt/mpi;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" mpi.pro -o Makefile$(PLATFORM)
352
353pwmanager/libcrypt/error/Makefile$(PLATFORM): pwmanager/libcrypt/error/error.pro
354 cd pwmanager/libcrypt/error;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" error.pro -o Makefile$(PLATFORM)
355
356pwmanager/libcrypt/cipher/Makefile$(PLATFORM): pwmanager/libcrypt/cipher/cipher.pro
357 cd pwmanager/libcrypt/cipher;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" cipher.pro -o Makefile$(PLATFORM)
358
359pwmanager/libcrypt/zlib/Makefile$(PLATFORM): pwmanager/libcrypt/zlib/zlib.pro
360 cd pwmanager/libcrypt/zlib;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" zlib.pro -o Makefile$(PLATFORM)
361
362 169
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 63484d6..e3dad94 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1803,86 +1803,92 @@ void MainWindow::importFile( QString fn, bool quick )
1803 int result = 0; 1803 int result = 0;
1804 if ( !quick ) { 1804 if ( !quick ) {
1805 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1805 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1806 result = QMessageBox::warning( this, "KO/Pi: Warning!", 1806 result = QMessageBox::warning( this, "KO/Pi: Warning!",
1807 mess, 1807 mess,
1808 "Import", "Cancel", 0, 1808 "Import", "Cancel", 0,
1809 0, 1 ); 1809 0, 1 );
1810 } 1810 }
1811 if ( result == 0 ) { 1811 if ( result == 0 ) {
1812 if ( mView->openCalendar( fn, true )) { 1812 if ( mView->openCalendar( fn, true )) {
1813 KOPrefs::instance()->mLastImportFile = fn; 1813 KOPrefs::instance()->mLastImportFile = fn;
1814 setCaption(i18n("Imported file successfully")); 1814 setCaption(i18n("Imported file successfully"));
1815 } else { 1815 } else {
1816 setCaption(i18n("Error importing file")); 1816 setCaption(i18n("Error importing file"));
1817 } 1817 }
1818 } 1818 }
1819} 1819}
1820 1820
1821void MainWindow::importIcal() 1821void MainWindow::importIcal()
1822{ 1822{
1823 1823
1824 QString fn =KOPrefs::instance()->mLastImportFile; 1824 QString fn =KOPrefs::instance()->mLastImportFile;
1825 1825
1826 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 1826 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
1827 if ( fn == "" ) 1827 if ( fn == "" )
1828 return; 1828 return;
1829 importFile( fn, true ); 1829 importFile( fn, true );
1830 1830
1831} 1831}
1832 1832
1833void MainWindow::exportVCalendar() 1833void MainWindow::exportVCalendar()
1834{ 1834{
1835 QString fn = KOPrefs::instance()->mLastVcalFile; 1835 QString fn = KOPrefs::instance()->mLastVcalFile;
1836 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1836 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1837 if ( fn == "" ) 1837 if ( fn == "" )
1838 return; 1838 return;
1839 QFileInfo info; 1839 QFileInfo info;
1840 info.setFile( fn ); 1840 info.setFile( fn );
1841 QString mes; 1841 QString mes;
1842 bool createbup = true; 1842 bool createbup = true;
1843 if ( info. exists() ) { 1843 if ( info. exists() ) {
1844 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1844 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1845 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1845 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1846 i18n("Overwrite!"), i18n("Cancel"), 0, 1846 i18n("Overwrite!"), i18n("Cancel"), 0,
1847 0, 1 ); 1847 0, 1 );
1848 if ( result != 0 ) { 1848 if ( result != 0 ) {
1849 createbup = false; 1849 createbup = false;
1850 } 1850 }
1851 } 1851 }
1852 if ( createbup ) { 1852 if ( createbup ) {
1853 if ( mView->exportVCalendar( fn ) ) { 1853 if ( mView->exportVCalendar( fn ) ) {
1854 KOPrefs::instance()->mLastVcalFile = fn; 1854 KOPrefs::instance()->mLastVcalFile = fn;
1855 if ( fn.length() > 20 ) 1855 if ( fn.length() > 20 )
1856 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1856 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1857 else 1857 else
1858 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1858 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1859 setCaption(mes); 1859 setCaption(mes);
1860 } 1860 }
1861 } 1861 }
1862 1862
1863} 1863}
1864 1864
1865void MainWindow::syncFileRequest() 1865void MainWindow::syncFileRequest()
1866{ 1866{
1867 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) {
1868 mSyncManager->slotSyncMenu( 999 );
1869 }
1867 save(); 1870 save();
1868} 1871}
1869void MainWindow::getFile( bool success ) 1872void MainWindow::getFile( bool success )
1870{ 1873{
1871 if ( ! success ) { 1874 if ( ! success ) {
1872 setCaption( i18n("Error receiving file. Nothing changed!") ); 1875 setCaption( i18n("Error receiving file. Nothing changed!") );
1873 return; 1876 return;
1874 } 1877 }
1875 mView->openCalendar( defaultFileName() ); 1878 mView->openCalendar( defaultFileName() );
1879 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) {
1880 mSyncManager->slotSyncMenu( 999 );
1881 }
1876 setCaption( i18n("Pi-Sync successful!") ); 1882 setCaption( i18n("Pi-Sync successful!") );
1877} 1883}
1878 1884
1879void MainWindow::printSel( ) 1885void MainWindow::printSel( )
1880{ 1886{
1881 mView->viewManager()->agendaView()->agenda()->printSelection(); 1887 mView->viewManager()->agendaView()->agenda()->printSelection();
1882} 1888}
1883 1889
1884void MainWindow::printCal() 1890void MainWindow::printCal()
1885{ 1891{
1886 mView->print();//mCp->showDialog(); 1892 mView->print();//mCp->showDialog();
1887} 1893}
1888 1894
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 7ca3ee0..554c6e5 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -120,403 +120,425 @@ void KSyncManager::fillSyncMenu()
120 temp->writeConfig(&config); 120 temp->writeConfig(&config);
121 temp->setName( prof[2] ); 121 temp->setName( prof[2] );
122 temp->writeConfig(&config); 122 temp->writeConfig(&config);
123 config.setGroup("General"); 123 config.setGroup("General");
124 config.writeEntry("SyncProfileNames",prof); 124 config.writeEntry("SyncProfileNames",prof);
125 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 125 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
126 config.sync(); 126 config.sync();
127 delete temp; 127 delete temp;
128 } 128 }
129 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 129 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
130 mSyncProfileNames = prof; 130 mSyncProfileNames = prof;
131 unsigned int i; 131 unsigned int i;
132 for ( i = 0; i < prof.count(); ++i ) { 132 for ( i = 0; i < prof.count(); ++i ) {
133 mSyncMenu->insertItem( prof[i], 1000+i ); 133 mSyncMenu->insertItem( prof[i], 1000+i );
134 if ( i == 2 ) 134 if ( i == 2 )
135 mSyncMenu->insertSeparator(); 135 mSyncMenu->insertSeparator();
136 } 136 }
137 QDir app_dir; 137 QDir app_dir;
138 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available 138 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available
139 if ( mTargetApp == PWMPI) { 139 if ( mTargetApp == PWMPI) {
140 mSyncMenu->removeItem( 1000 ); 140 mSyncMenu->removeItem( 1000 );
141 } 141 }
142#ifndef DESKTOP_VERSION 142#ifndef DESKTOP_VERSION
143 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 143 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
144 mSyncMenu->removeItem( 1000 ); 144 mSyncMenu->removeItem( 1000 );
145 } 145 }
146#endif 146#endif
147 mSyncMenu->removeItem( 1002 ); 147 mSyncMenu->removeItem( 1002 );
148} 148}
149 149
150void KSyncManager::slotSyncMenu( int action ) 150void KSyncManager::slotSyncMenu( int action )
151{ 151{
152 qDebug("syncaction %d ", action); 152 qDebug("syncaction %d ", action);
153 if ( action == 0 ) { 153 if ( action == 0 ) {
154 154
155 // seems to be a Qt2 event handling bug 155 // seems to be a Qt2 event handling bug
156 // syncmenu.clear causes a segfault at first time 156 // syncmenu.clear causes a segfault at first time
157 // when we call it after the main event loop, it is ok 157 // when we call it after the main event loop, it is ok
158 // same behaviour when calling OM/Pi via QCOP for the first time 158 // same behaviour when calling OM/Pi via QCOP for the first time
159 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 159 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
160 //confSync(); 160 //confSync();
161 161
162 return; 162 return;
163 } 163 }
164 if ( action == 1 ) { 164 if ( action == 1 ) {
165 multiSync( true ); 165 multiSync( true );
166 return; 166 return;
167 } 167 }
168 if ( action == 2 ) { 168 if ( action == 2 ) {
169 enableQuick(); 169 enableQuick();
170 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 170 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
171 return; 171 return;
172 } 172 }
173 if ( action == 3 ) { 173 if ( action == 3 ) {
174 delete mServerSocket; 174 delete mServerSocket;
175 mServerSocket = 0; 175 mServerSocket = 0;
176 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 176 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
177 return; 177 return;
178 } 178 }
179 179
180 if (blockSave()) 180 if (blockSave())
181 return; 181 return;
182 182
183 setBlockSave(true); 183 setBlockSave(true);
184 bool silent = false;
185 if ( action == 999 ) {
186 //special mode for silent syncing
187 action = 1000;
188 silent = true;
189 }
184 190
185 mCurrentSyncProfile = action - 1000 ; 191 mCurrentSyncProfile = action - 1000 ;
186 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ; 192 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ;
187 mCurrentSyncName = mLocalMachineName ; 193 mCurrentSyncName = mLocalMachineName ;
188 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 194 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
189 KSyncProfile* temp = new KSyncProfile (); 195 KSyncProfile* temp = new KSyncProfile ();
190 temp->setName(mSyncProfileNames[mCurrentSyncProfile]); 196 temp->setName(mSyncProfileNames[mCurrentSyncProfile]);
191 temp->readConfig(&config); 197 temp->readConfig(&config);
192 mAskForPreferences = temp->getAskForPreferences(); 198 if (silent) {
193 mSyncAlgoPrefs = temp->getSyncPrefs(); 199 mAskForPreferences = false;
194 mWriteBackFile = temp->getWriteBackFile(); 200 mShowSyncSummary = false;
201 mWriteBackFile = true;
202 mSyncAlgoPrefs = 2;// take newest
203 }
204 else {
205 mAskForPreferences = temp->getAskForPreferences();
206 mShowSyncSummary = temp->getShowSummaryAfterSync();
207 mWriteBackFile = temp->getWriteBackFile();
208 mSyncAlgoPrefs = temp->getSyncPrefs();
209 }
195 mWriteBackExistingOnly = temp->getWriteBackExisting(); 210 mWriteBackExistingOnly = temp->getWriteBackExisting();
196 mIsKapiFile = temp->getIsKapiFile(); 211 mIsKapiFile = temp->getIsKapiFile();
197 mWriteBackInFuture = 0; 212 mWriteBackInFuture = 0;
198 if ( temp->getWriteBackFuture() ) 213 if ( temp->getWriteBackFuture() )
199 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 214 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
200 mShowSyncSummary = temp->getShowSummaryAfterSync(); 215
201 if ( action == 1000 ) { 216 if ( action == 1000 ) {
202#ifdef DESKTOP_VERSION 217#ifdef DESKTOP_VERSION
203 syncKDE(); 218 syncKDE();
204#else 219#else
205 syncSharp(); 220 syncSharp();
206#endif 221#endif
207 222
208 } else if ( action == 1001 ) { 223 } else if ( action == 1001 ) {
209 syncLocalFile(); 224 syncLocalFile();
210 225
211 } else if ( action == 1002 ) { 226 } else if ( action == 1002 ) {
212 mWriteBackFile = false; 227 mWriteBackFile = false;
213 mAskForPreferences = false; 228 mAskForPreferences = false;
214 mShowSyncSummary = false; 229 mShowSyncSummary = false;
215 mSyncAlgoPrefs = 3; 230 mSyncAlgoPrefs = 3;
216 quickSyncLocalFile(); 231 quickSyncLocalFile();
217 232
218 } else if ( action >= 1003 ) { 233 } else if ( action >= 1003 ) {
219 if ( temp->getIsLocalFileSync() ) { 234 if ( temp->getIsLocalFileSync() ) {
220 switch(mTargetApp) 235 switch(mTargetApp)
221 { 236 {
222 case (KAPI): 237 case (KAPI):
223 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 238 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
224 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 239 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
225 break; 240 break;
226 case (KOPI): 241 case (KOPI):
227 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 242 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
228 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 243 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
229 break; 244 break;
230 case (PWMPI): 245 case (PWMPI):
231 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 246 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
232 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 247 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
233 break; 248 break;
234 default: 249 default:
235 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected"); 250 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected");
236 break; 251 break;
237 252
238 } 253 }
239 } else { 254 } else {
240 if ( temp->getIsPhoneSync() ) { 255 if ( temp->getIsPhoneSync() ) {
241 mPhoneDevice = temp->getPhoneDevice( ) ; 256 mPhoneDevice = temp->getPhoneDevice( ) ;
242 mPhoneConnection = temp->getPhoneConnection( ); 257 mPhoneConnection = temp->getPhoneConnection( );
243 mPhoneModel = temp->getPhoneModel( ); 258 mPhoneModel = temp->getPhoneModel( );
244 syncPhone(); 259 syncPhone();
245 } else if ( temp->getIsPiSync() ) { 260 } else if ( temp->getIsPiSync() ) {
246 if ( mTargetApp == KAPI ) { 261 if ( mTargetApp == KAPI ) {
247 mPassWordPiSync = temp->getRemotePwAB(); 262 mPassWordPiSync = temp->getRemotePwAB();
248 mActiveSyncPort = temp->getRemotePortAB(); 263 mActiveSyncPort = temp->getRemotePortAB();
249 mActiveSyncIP = temp->getRemoteIPAB(); 264 mActiveSyncIP = temp->getRemoteIPAB();
250 } else if ( mTargetApp == KOPI ) { 265 } else if ( mTargetApp == KOPI ) {
251 mPassWordPiSync = temp->getRemotePw(); 266 mPassWordPiSync = temp->getRemotePw();
252 mActiveSyncPort = temp->getRemotePort(); 267 mActiveSyncPort = temp->getRemotePort();
253 mActiveSyncIP = temp->getRemoteIP(); 268 mActiveSyncIP = temp->getRemoteIP();
254 } else { 269 } else {
255 mPassWordPiSync = temp->getRemotePwPWM(); 270 mPassWordPiSync = temp->getRemotePwPWM();
256 mActiveSyncPort = temp->getRemotePortPWM(); 271 mActiveSyncPort = temp->getRemotePortPWM();
257 mActiveSyncIP = temp->getRemoteIPPWM(); 272 mActiveSyncIP = temp->getRemoteIPPWM();
258 } 273 }
259 syncPi(); 274 syncPi();
260 while ( !mPisyncFinished ) { 275 while ( !mPisyncFinished ) {
261 //qDebug("waiting "); 276 //qDebug("waiting ");
262 qApp->processEvents(); 277 qApp->processEvents();
263 } 278 }
264 } else 279 } else
265 syncRemote( temp ); 280 syncRemote( temp );
266 281
267 } 282 }
268 } 283 }
269 delete temp; 284 delete temp;
270 setBlockSave(false); 285 setBlockSave(false);
271} 286}
272 287
273void KSyncManager::enableQuick( bool ask ) 288void KSyncManager::enableQuick( bool ask )
274{ 289{
275 bool autoStart; 290 bool autoStart;
276 bool changed = false; 291 bool changed = false;
277 if ( ask ) { 292 if ( ask ) {
278 QDialog dia ( 0, "input-dialog", true ); 293 QDialog dia ( 0, "input-dialog", true );
279 QLineEdit lab ( &dia ); 294 QLineEdit lab ( &dia );
280 QVBoxLayout lay( &dia ); 295 QVBoxLayout lay( &dia );
281 lab.setText( mPrefs->mPassiveSyncPort ); 296 lab.setText( mPrefs->mPassiveSyncPort );
282 lay.setMargin(7); 297 lay.setMargin(7);
283 lay.setSpacing(7); 298 lay.setSpacing(7);
284 int po = 9197+mTargetApp; 299 int po = 9197+mTargetApp;
285 QLabel label ( i18n("Port number (Default: %1)").arg(po), &dia ); 300 QLabel label ( i18n("Port number (Default: %1)").arg(po), &dia );
286 lay.addWidget( &label); 301 lay.addWidget( &label);
287 lay.addWidget( &lab); 302 lay.addWidget( &lab);
288 303
289 QLineEdit lepw ( &dia ); 304 QLineEdit lepw ( &dia );
290 lepw.setText( mPrefs->mPassiveSyncPw ); 305 lepw.setText( mPrefs->mPassiveSyncPw );
291 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia ); 306 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia );
292 lay.addWidget( &label2); 307 lay.addWidget( &label2);
293 lay.addWidget( &lepw); 308 lay.addWidget( &lepw);
294 QCheckBox autostart(i18n("Automatically start\nat application startup"), &dia ); 309 QCheckBox autostart(i18n("Automatically start\nat application startup"), &dia );
295 lay.addWidget( &autostart); 310 lay.addWidget( &autostart);
296 autostart.setChecked( mPrefs->mPassiveSyncAutoStart ); 311 autostart.setChecked( mPrefs->mPassiveSyncAutoStart );
297#ifdef DESKTOP_VERSION 312#ifdef DESKTOP_VERSION
298#ifdef _WIN32_ 313#ifdef _WIN32_
299 QCheckBox syncdesktop( i18n("Automatically sync with Outlook\nwhen receiving sync request"),&dia ); 314 QCheckBox syncdesktop( i18n("Automatically sync with Outlook\nwhen receiving sync request"),&dia );
300#else 315#else
301 QCheckBox syncdesktop( i18n("Automatically sync with KDE-Desktop\nwhen receiving sync request"),&dia ); 316 QCheckBox syncdesktop( i18n("Automatically sync with KDE-Desktop\nwhen receiving sync request"),&dia );
302#endif 317#endif
303 lay.addWidget( &syncdesktop); 318 lay.addWidget( &syncdesktop);
304#else 319#else
320 mPrefs->mPassiveSyncWithDesktop = false;
305 QCheckBox syncdesktop( i18n("Automatically sync\nwith KDE-Desktop"),&dia ); 321 QCheckBox syncdesktop( i18n("Automatically sync\nwith KDE-Desktop"),&dia );
306 syncdesktop.hide(); 322 syncdesktop.hide();
307#endif 323#endif
308 syncdesktop.setChecked( mPrefs->mPassiveSyncWithDesktop ); 324 syncdesktop.setChecked( mPrefs->mPassiveSyncWithDesktop );
309 325
310 dia.setFixedSize( 230,120 ); 326 dia.setFixedSize( 230,120 );
311 dia.setCaption( i18n("Enter port for Pi-Sync") ); 327 dia.setCaption( i18n("Enter port for Pi-Sync") );
312 QPushButton pb ( "OK", &dia); 328 QPushButton pb ( "OK", &dia);
313 lay.addWidget( &pb ); 329 lay.addWidget( &pb );
314 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 330 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
315 dia.show(); 331 dia.show();
316 if ( ! dia.exec() ) 332 if ( ! dia.exec() )
317 return; 333 return;
318 dia.hide(); 334 dia.hide();
319 qApp->processEvents(); 335 qApp->processEvents();
320 if ( mPrefs->mPassiveSyncPw != lepw.text() ) { 336 if ( mPrefs->mPassiveSyncPw != lepw.text() ) {
321 changed = true; 337 changed = true;
322 mPrefs->mPassiveSyncPw = lepw.text(); 338 mPrefs->mPassiveSyncPw = lepw.text();
323 } 339 }
324 if ( mPrefs->mPassiveSyncPort != lab.text() ) { 340 if ( mPrefs->mPassiveSyncPort != lab.text() ) {
325 mPrefs->mPassiveSyncPort = lab.text(); 341 mPrefs->mPassiveSyncPort = lab.text();
326 changed = true; 342 changed = true;
327 } 343 }
328 autoStart = autostart.isChecked(); 344 autoStart = autostart.isChecked();
329 if (mPrefs->mPassiveSyncWithDesktop != syncdesktop.isChecked() ) { 345 if (mPrefs->mPassiveSyncWithDesktop != syncdesktop.isChecked() ) {
330 changed = true; 346 changed = true;
331 mPrefs->mPassiveSyncWithDesktop = syncdesktop.isChecked(); 347 mPrefs->mPassiveSyncWithDesktop = syncdesktop.isChecked();
332 } 348 }
333 } 349 }
334 else 350 else
335 autoStart = mPrefs->mPassiveSyncAutoStart; 351 autoStart = mPrefs->mPassiveSyncAutoStart;
336 if ( autoStart != mPrefs->mPassiveSyncAutoStart ) 352 if ( autoStart != mPrefs->mPassiveSyncAutoStart )
337 changed = true; 353 changed = true;
338 bool ok; 354 bool ok;
339 mPrefs->mPassiveSyncAutoStart = false; 355 mPrefs->mPassiveSyncAutoStart = false;
340 Q_UINT16 port = mPrefs->mPassiveSyncPort.toUInt(&ok); 356 Q_UINT16 port = mPrefs->mPassiveSyncPort.toUInt(&ok);
341 if ( ! ok ) { 357 if ( ! ok ) {
342 KMessageBox::information( 0, i18n("No valid port")); 358 KMessageBox::information( 0, i18n("No valid port"));
343 return; 359 return;
344 } 360 }
345 //qDebug("port %d ", port); 361 //qDebug("port %d ", port);
346 mServerSocket = new KServerSocket ( mPrefs->mPassiveSyncPw, port ,1 ); 362 mServerSocket = new KServerSocket ( mPrefs->mPassiveSyncPw, port ,1 );
347 mServerSocket->setFileName( defaultFileName() ); 363 mServerSocket->setFileName( defaultFileName() );
348 //qDebug("connected "); 364 //qDebug("connected ");
349 if ( !mServerSocket->ok() ) { 365 if ( !mServerSocket->ok() ) {
350 KMessageBox::information( 0, i18n("Failed to bind or\nlisten to the port!")); 366 KMessageBox::information( 0, i18n("Failed to bind or\nlisten to the port!"));
351 delete mServerSocket; 367 delete mServerSocket;
352 mServerSocket = 0; 368 mServerSocket = 0;
353 return; 369 return;
354 } 370 }
355 mPrefs->mPassiveSyncAutoStart = autoStart; 371 mPrefs->mPassiveSyncAutoStart = autoStart;
356 if ( changed ) { 372 if ( changed ) {
357 mPrefs->writeConfig(); 373 mPrefs->writeConfig();
358 } 374 }
359 connect( mServerSocket, SIGNAL ( request_file() ),this, SIGNAL ( request_file() ) ); 375 connect( mServerSocket, SIGNAL ( request_file() ),this, SIGNAL ( request_file() ) );
360 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SIGNAL ( getFile( bool ) ) ); 376 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SIGNAL ( getFile( bool ) ) );
361} 377}
362 378
363void KSyncManager::syncLocalFile() 379void KSyncManager::syncLocalFile()
364{ 380{
365 381
366 QString fn =mPrefs->mLastSyncedLocalFile; 382 QString fn =mPrefs->mLastSyncedLocalFile;
367 QString ext; 383 QString ext;
368 384
369 switch(mTargetApp) 385 switch(mTargetApp)
370 { 386 {
371 case (KAPI): 387 case (KAPI):
372 ext = "(*.vcf)"; 388 ext = "(*.vcf)";
373 break; 389 break;
374 case (KOPI): 390 case (KOPI):
375 ext = "(*.ics/*.vcs)"; 391 ext = "(*.ics/*.vcs)";
376 break; 392 break;
377 case (PWMPI): 393 case (PWMPI):
378 ext = "(*.pwm)"; 394 ext = "(*.pwm)";
379 break; 395 break;
380 default: 396 default:
381 qDebug("KSyncManager::syncLocalFile: invalid apptype selected"); 397 qDebug("KSyncManager::syncLocalFile: invalid apptype selected");
382 break; 398 break;
383 399
384 } 400 }
385 401
386 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename"+ext), mParent ); 402 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename"+ext), mParent );
387 if ( fn == "" ) 403 if ( fn == "" )
388 return; 404 return;
389 if ( syncWithFile( fn, false ) ) { 405 if ( syncWithFile( fn, false ) ) {
390 qDebug("syncLocalFile() successful "); 406 qDebug("syncLocalFile() successful ");
391 } 407 }
392 408
393} 409}
394 410
395bool KSyncManager::syncWithFile( QString fn , bool quick ) 411bool KSyncManager::syncWithFile( QString fn , bool quick )
396{ 412{
397 bool ret = false; 413 bool ret = false;
398 QFileInfo info; 414 QFileInfo info;
399 info.setFile( fn ); 415 info.setFile( fn );
400 QString mess; 416 QString mess;
401 bool loadbup = true; 417 bool loadbup = true;
402 if ( !info. exists() ) { 418 if ( !info. exists() ) {
403 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 419 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
404 int result = QMessageBox::warning( mParent, i18n("Warning!"), 420 int result = QMessageBox::warning( mParent, i18n("Warning!"),
405 mess ); 421 mess );
406 return ret; 422 return ret;
407 } 423 }
408 int result = 0; 424 int result = 0;
409 if ( !quick ) { 425 if ( !quick ) {
410 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 426 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
411 result = QMessageBox::warning( mParent, i18n("Warning!"), 427 result = QMessageBox::warning( mParent, i18n("Warning!"),
412 mess, 428 mess,
413 i18n("Sync"), i18n("Cancel"), 0, 429 i18n("Sync"), i18n("Cancel"), 0,
414 0, 1 ); 430 0, 1 );
415 if ( result ) 431 if ( result )
416 return false; 432 return false;
417 } 433 }
418 if ( mAskForPreferences ) 434 if ( mAskForPreferences )
419 edit_sync_options(); 435 if ( !edit_sync_options()) {
436 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
437 return false;
438 }
420 if ( result == 0 ) { 439 if ( result == 0 ) {
421 //qDebug("Now sycing ... "); 440 //qDebug("Now sycing ... ");
422 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) ) 441 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) )
423 mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") ); 442 mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") );
424 else 443 else
425 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); 444 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed. Nothing synced.") );
426 if ( ! quick ) 445 if ( ! quick )
427 mPrefs->mLastSyncedLocalFile = fn; 446 mPrefs->mLastSyncedLocalFile = fn;
428 } 447 }
429 return ret; 448 return ret;
430} 449}
431 450
432void KSyncManager::quickSyncLocalFile() 451void KSyncManager::quickSyncLocalFile()
433{ 452{
434 453
435 if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) { 454 if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) {
436 qDebug("quick syncLocalFile() successful "); 455 qDebug("quick syncLocalFile() successful ");
437 456
438 } 457 }
439} 458}
440 459
441void KSyncManager::multiSync( bool askforPrefs ) 460void KSyncManager::multiSync( bool askforPrefs )
442{ 461{
443 if (blockSave()) 462 if (blockSave())
444 return; 463 return;
445 setBlockSave(true); 464 setBlockSave(true);
446 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 465 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
447 if ( QMessageBox::information( mParent, i18n("KDE-Pim Sync"), 466 if ( QMessageBox::information( mParent, i18n("KDE-Pim Sync"),
448 question, 467 question,
449 i18n("Yes"), i18n("No"), 468 i18n("Yes"), i18n("No"),
450 0, 0 ) != 0 ) { 469 0, 0 ) != 0 ) {
451 setBlockSave(false); 470 setBlockSave(false);
452 mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!")); 471 mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!"));
453 return; 472 return;
454 } 473 }
455 mCurrentSyncDevice = i18n("Multiple profiles") ; 474 mCurrentSyncDevice = i18n("Multiple profiles") ;
456 mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; 475 mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs;
457 if ( askforPrefs ) { 476 if ( askforPrefs ) {
458 edit_sync_options(); 477 if ( !edit_sync_options()) {
478 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
479 return;
480 }
459 mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs; 481 mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs;
460 } 482 }
461 mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") ); 483 mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") );
462 qApp->processEvents(); 484 qApp->processEvents();
463 int num = ringSync() ; 485 int num = ringSync() ;
464 if ( num > 1 ) 486 if ( num > 1 )
465 ringSync(); 487 ringSync();
466 setBlockSave(false); 488 setBlockSave(false);
467 if ( num ) 489 if ( num )
468 emit save(); 490 emit save();
469 if ( num ) 491 if ( num )
470 mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) ); 492 mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) );
471 else 493 else
472 mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 494 mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
473 return; 495 return;
474} 496}
475 497
476int KSyncManager::ringSync() 498int KSyncManager::ringSync()
477{ 499{
478 int syncedProfiles = 0; 500 int syncedProfiles = 0;
479 unsigned int i; 501 unsigned int i;
480 QTime timer; 502 QTime timer;
481 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 503 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
482 QStringList syncProfileNames = mSyncProfileNames; 504 QStringList syncProfileNames = mSyncProfileNames;
483 KSyncProfile* temp = new KSyncProfile (); 505 KSyncProfile* temp = new KSyncProfile ();
484 mAskForPreferences = false; 506 mAskForPreferences = false;
485 for ( i = 0; i < syncProfileNames.count(); ++i ) { 507 for ( i = 0; i < syncProfileNames.count(); ++i ) {
486 mCurrentSyncProfile = i; 508 mCurrentSyncProfile = i;
487 temp->setName(syncProfileNames[mCurrentSyncProfile]); 509 temp->setName(syncProfileNames[mCurrentSyncProfile]);
488 temp->readConfig(&config); 510 temp->readConfig(&config);
489 511
490 bool includeInRingSync; 512 bool includeInRingSync;
491 switch(mTargetApp) 513 switch(mTargetApp)
492 { 514 {
493 case (KAPI): 515 case (KAPI):
494 includeInRingSync = temp->getIncludeInRingSyncAB(); 516 includeInRingSync = temp->getIncludeInRingSyncAB();
495 break; 517 break;
496 case (KOPI): 518 case (KOPI):
497 includeInRingSync = temp->getIncludeInRingSync(); 519 includeInRingSync = temp->getIncludeInRingSync();
498 break; 520 break;
499 case (PWMPI): 521 case (PWMPI):
500 includeInRingSync = temp->getIncludeInRingSyncPWM(); 522 includeInRingSync = temp->getIncludeInRingSyncPWM();
501 break; 523 break;
502 default: 524 default:
503 qDebug("KSyncManager::ringSync: invalid apptype selected"); 525 qDebug("KSyncManager::ringSync: invalid apptype selected");
504 break; 526 break;
505 527
506 } 528 }
507 529
508 530
509 if ( includeInRingSync && ( i < 1 || i > 2 )) { 531 if ( includeInRingSync && ( i < 1 || i > 2 )) {
510 mParent->topLevelWidget()->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 532 mParent->topLevelWidget()->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
511 ++syncedProfiles; 533 ++syncedProfiles;
512 // mAskForPreferences = temp->getAskForPreferences(); 534 // mAskForPreferences = temp->getAskForPreferences();
513 mWriteBackFile = temp->getWriteBackFile(); 535 mWriteBackFile = temp->getWriteBackFile();
514 mWriteBackExistingOnly = temp->getWriteBackExisting(); 536 mWriteBackExistingOnly = temp->getWriteBackExisting();
515 mWriteBackInFuture = 0; 537 mWriteBackInFuture = 0;
516 if ( temp->getWriteBackFuture() ) 538 if ( temp->getWriteBackFuture() )
517 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 539 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
518 mShowSyncSummary = false; 540 mShowSyncSummary = false;
519 mCurrentSyncDevice = syncProfileNames[i] ; 541 mCurrentSyncDevice = syncProfileNames[i] ;
520 mCurrentSyncName = mLocalMachineName; 542 mCurrentSyncName = mLocalMachineName;
521 if ( i == 0 ) { 543 if ( i == 0 ) {
522#ifdef DESKTOP_VERSION 544#ifdef DESKTOP_VERSION
@@ -626,377 +648,384 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
626 preCommand = prof->getPreSyncCommandPWM(); 648 preCommand = prof->getPreSyncCommandPWM();
627 postCommand = prof->getPostSyncCommandPWM(); 649 postCommand = prof->getPostSyncCommandPWM();
628 localTempFile = prof->getLocalTempFilePWM(); 650 localTempFile = prof->getLocalTempFilePWM();
629 break; 651 break;
630 default: 652 default:
631 qDebug("KSyncManager::syncRemote: invalid apptype selected"); 653 qDebug("KSyncManager::syncRemote: invalid apptype selected");
632 break; 654 break;
633 } 655 }
634 656
635 657
636 int fi; 658 int fi;
637 if ( (fi = preCommand.find("$PWD$")) > 0 ) { 659 if ( (fi = preCommand.find("$PWD$")) > 0 ) {
638 QString pwd = getPassword(); 660 QString pwd = getPassword();
639 preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 ); 661 preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 );
640 662
641 } 663 }
642 int maxlen = 30; 664 int maxlen = 30;
643 if ( QApplication::desktop()->width() > 320 ) 665 if ( QApplication::desktop()->width() > 320 )
644 maxlen += 25; 666 maxlen += 25;
645 mParent->topLevelWidget()->setCaption ( i18n( "Copy remote file to local machine..." ) ); 667 mParent->topLevelWidget()->setCaption ( i18n( "Copy remote file to local machine..." ) );
646 int fileSize = 0; 668 int fileSize = 0;
647 int result = system ( preCommand ); 669 int result = system ( preCommand );
648 // 0 : okay 670 // 0 : okay
649 // 256: no such file or dir 671 // 256: no such file or dir
650 // 672 //
651 qDebug("Sync: Remote copy result(0 = okay): %d ",result ); 673 qDebug("Sync: Remote copy result(0 = okay): %d ",result );
652 if ( result != 0 ) { 674 if ( result != 0 ) {
653 unsigned int len = maxlen; 675 unsigned int len = maxlen;
654 while ( len < preCommand.length() ) { 676 while ( len < preCommand.length() ) {
655 preCommand.insert( len , "\n" ); 677 preCommand.insert( len , "\n" );
656 len += maxlen +2; 678 len += maxlen +2;
657 } 679 }
658 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (preCommand) ; 680 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (preCommand) ;
659 QMessageBox::information( mParent, i18n("Sync - ERROR"), 681 QMessageBox::information( mParent, i18n("Sync - ERROR"),
660 question, 682 question,
661 i18n("Okay!")) ; 683 i18n("Okay!")) ;
662 mParent->topLevelWidget()->setCaption ("KDE-Pim"); 684 mParent->topLevelWidget()->setCaption ("KDE-Pim");
663 return; 685 return;
664 } 686 }
665 mParent->topLevelWidget()->setCaption ( i18n( "Copying succeed." ) ); 687 mParent->topLevelWidget()->setCaption ( i18n( "Copying succeed." ) );
666 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 688 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
667 689
668 if ( syncWithFile( localTempFile, true ) ) { 690 if ( syncWithFile( localTempFile, true ) ) {
669 691
670 if ( mWriteBackFile ) { 692 if ( mWriteBackFile ) {
671 int fi; 693 int fi;
672 if ( (fi = postCommand.find("$PWD$")) > 0 ) { 694 if ( (fi = postCommand.find("$PWD$")) > 0 ) {
673 QString pwd = getPassword(); 695 QString pwd = getPassword();
674 postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 ); 696 postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 );
675 697
676 } 698 }
677 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file ..." ) ); 699 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file ..." ) );
678 result = system ( postCommand ); 700 result = system ( postCommand );
679 qDebug("Sync:Writing back file result: %d ", result); 701 qDebug("Sync:Writing back file result: %d ", result);
680 if ( result != 0 ) { 702 if ( result != 0 ) {
681 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 703 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
682 return; 704 return;
683 } else { 705 } else {
684 mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) ); 706 mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) );
685 } 707 }
686 } 708 }
687 } 709 }
688 return; 710 return;
689} 711}
690void KSyncManager::edit_pisync_options() 712bool KSyncManager::edit_pisync_options()
691{ 713{
692 QDialog dia( mParent, "dia", true ); 714 QDialog dia( mParent, "dia", true );
693 dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice ); 715 dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice );
694 QVBoxLayout lay ( &dia ); 716 QVBoxLayout lay ( &dia );
695 lay.setSpacing( 5 ); 717 lay.setSpacing( 5 );
696 lay.setMargin( 3 ); 718 lay.setMargin( 3 );
697 QLabel lab1 ( i18n("Password for remote access:"), &dia); 719 QLabel lab1 ( i18n("Password for remote access:"), &dia);
698 lay.addWidget( &lab1 ); 720 lay.addWidget( &lab1 );
699 QLineEdit le1 (&dia ); 721 QLineEdit le1 (&dia );
700 lay.addWidget( &le1 ); 722 lay.addWidget( &le1 );
701 QLabel lab2 ( i18n("Remote IP address:"), &dia); 723 QLabel lab2 ( i18n("Remote IP address:"), &dia);
702 lay.addWidget( &lab2 ); 724 lay.addWidget( &lab2 );
703 QLineEdit le2 (&dia ); 725 QLineEdit le2 (&dia );
704 lay.addWidget( &le2 ); 726 lay.addWidget( &le2 );
705 QLabel lab3 ( i18n("Remote port number:"), &dia); 727 QLabel lab3 ( i18n("Remote port number:"), &dia);
706 lay.addWidget( &lab3 ); 728 lay.addWidget( &lab3 );
707 QLineEdit le3 (&dia ); 729 QLineEdit le3 (&dia );
708 lay.addWidget( &le3 ); 730 lay.addWidget( &le3 );
709 QPushButton pb ( "OK", &dia); 731 QPushButton pb ( "OK", &dia);
710 lay.addWidget( &pb ); 732 lay.addWidget( &pb );
711 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 733 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
712 le1.setText( mPassWordPiSync ); 734 le1.setText( mPassWordPiSync );
713 le2.setText( mActiveSyncIP ); 735 le2.setText( mActiveSyncIP );
714 le3.setText( mActiveSyncPort ); 736 le3.setText( mActiveSyncPort );
715 if ( dia.exec() ) { 737 if ( dia.exec() ) {
716 mPassWordPiSync = le1.text(); 738 mPassWordPiSync = le1.text();
717 mActiveSyncPort = le3.text(); 739 mActiveSyncPort = le3.text();
718 mActiveSyncIP = le2.text(); 740 mActiveSyncIP = le2.text();
741 return true;
719 } 742 }
720 743 return false;
721} 744}
722void KSyncManager::edit_sync_options() 745bool KSyncManager::edit_sync_options()
723{ 746{
724 747
725 QDialog dia( mParent, "dia", true ); 748 QDialog dia( mParent, "dia", true );
726 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 749 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
727 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); 750 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia);
728 QVBoxLayout lay ( &dia ); 751 QVBoxLayout lay ( &dia );
729 lay.setSpacing( 2 ); 752 lay.setSpacing( 2 );
730 lay.setMargin( 3 ); 753 lay.setMargin( 3 );
731 lay.addWidget(&gr); 754 lay.addWidget(&gr);
732 QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); 755 QRadioButton loc ( i18n("Take local entry on conflict"), &gr );
733 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); 756 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr );
734 QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); 757 QRadioButton newest( i18n("Take newest entry on conflict"), &gr );
735 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); 758 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr );
736 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); 759 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr );
737 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); 760 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr );
738 //QRadioButton both( i18n("Take both on conflict"), &gr ); 761 //QRadioButton both( i18n("Take both on conflict"), &gr );
739 QPushButton pb ( "OK", &dia); 762 QPushButton pb ( "OK", &dia);
740 lay.addWidget( &pb ); 763 lay.addWidget( &pb );
741 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 764 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
742 switch ( mSyncAlgoPrefs ) { 765 switch ( mSyncAlgoPrefs ) {
743 case 0: 766 case 0:
744 loc.setChecked( true); 767 loc.setChecked( true);
745 break; 768 break;
746 case 1: 769 case 1:
747 rem.setChecked( true ); 770 rem.setChecked( true );
748 break; 771 break;
749 case 2: 772 case 2:
750 newest.setChecked( true); 773 newest.setChecked( true);
751 break; 774 break;
752 case 3: 775 case 3:
753 ask.setChecked( true); 776 ask.setChecked( true);
754 break; 777 break;
755 case 4: 778 case 4:
756 f_loc.setChecked( true); 779 f_loc.setChecked( true);
757 break; 780 break;
758 case 5: 781 case 5:
759 f_rem.setChecked( true); 782 f_rem.setChecked( true);
760 break; 783 break;
761 case 6: 784 case 6:
762 // both.setChecked( true); 785 // both.setChecked( true);
763 break; 786 break;
764 default: 787 default:
765 break; 788 break;
766 } 789 }
767 if ( dia.exec() ) { 790 if ( dia.exec() ) {
768 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 791 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
792 return true;
769 } 793 }
770 794 return false;
771
772} 795}
773 796
774QString KSyncManager::getPassword( ) 797QString KSyncManager::getPassword( )
775{ 798{
776 QString retfile = ""; 799 QString retfile = "";
777 QDialog dia ( mParent, "input-dialog", true ); 800 QDialog dia ( mParent, "input-dialog", true );
778 QLineEdit lab ( &dia ); 801 QLineEdit lab ( &dia );
779 lab.setEchoMode( QLineEdit::Password ); 802 lab.setEchoMode( QLineEdit::Password );
780 QVBoxLayout lay( &dia ); 803 QVBoxLayout lay( &dia );
781 lay.setMargin(7); 804 lay.setMargin(7);
782 lay.setSpacing(7); 805 lay.setSpacing(7);
783 lay.addWidget( &lab); 806 lay.addWidget( &lab);
784 dia.setFixedSize( 230,50 ); 807 dia.setFixedSize( 230,50 );
785 dia.setCaption( i18n("Enter password") ); 808 dia.setCaption( i18n("Enter password") );
786 QPushButton pb ( "OK", &dia); 809 QPushButton pb ( "OK", &dia);
787 lay.addWidget( &pb ); 810 lay.addWidget( &pb );
788 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 811 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
789 dia.show(); 812 dia.show();
790 int res = dia.exec(); 813 int res = dia.exec();
791 if ( res ) 814 if ( res )
792 retfile = lab.text(); 815 retfile = lab.text();
793 dia.hide(); 816 dia.hide();
794 qApp->processEvents(); 817 qApp->processEvents();
795 return retfile; 818 return retfile;
796 819
797} 820}
798 821
799 822
800void KSyncManager::confSync() 823void KSyncManager::confSync()
801{ 824{
802 static KSyncPrefsDialog* sp = 0; 825 static KSyncPrefsDialog* sp = 0;
803 if ( ! sp ) { 826 if ( ! sp ) {
804 sp = new KSyncPrefsDialog( mParent, "syncprefs", true ); 827 sp = new KSyncPrefsDialog( mParent, "syncprefs", true );
805 } 828 }
806 sp->usrReadConfig(); 829 sp->usrReadConfig();
807#ifndef DESKTOP_VERSION 830#ifndef DESKTOP_VERSION
808 sp->showMaximized(); 831 sp->showMaximized();
809#else 832#else
810 sp->show(); 833 sp->show();
811#endif 834#endif
812 sp->exec(); 835 sp->exec();
813 mSyncProfileNames = sp->getSyncProfileNames(); 836 mSyncProfileNames = sp->getSyncProfileNames();
814 mLocalMachineName = sp->getLocalMachineName (); 837 mLocalMachineName = sp->getLocalMachineName ();
815 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 838 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
816} 839}
817void KSyncManager::syncKDE() 840void KSyncManager::syncKDE()
818{ 841{
819 emit save(); 842 emit save();
820 switch(mTargetApp) 843 switch(mTargetApp)
821 { 844 {
822 case (KAPI): 845 case (KAPI):
823 846
824 break; 847 break;
825 case (KOPI): 848 case (KOPI):
826 { 849 {
827#ifdef DESKTOP_VERSION 850#ifdef DESKTOP_VERSION
828 QString command = qApp->applicationDirPath () + "/kdecaldump"; 851 QString command = qApp->applicationDirPath () + "/kdecaldump";
829#else 852#else
830 QString command = "kdecaldump"; 853 QString command = "kdecaldump";
831#endif 854#endif
832 if ( ! QFile::exists ( command ) ) 855 if ( ! QFile::exists ( command ) )
833 command = "kdecaldump"; 856 command = "kdecaldump";
834 QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics"; 857 QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics";
835 system ( command.latin1()); 858 system ( command.latin1());
836 if ( syncWithFile( fileName,true ) ) { 859 if ( syncWithFile( fileName,true ) ) {
837 if ( mWriteBackFile ) { 860 if ( mWriteBackFile ) {
838 command += " --read"; 861 command += " --read";
839 system ( command.latin1()); 862 system ( command.latin1());
840 } 863 }
841 } 864 }
842 865
843 } 866 }
844 break; 867 break;
845 case (PWMPI): 868 case (PWMPI):
846 869
847 break; 870 break;
848 default: 871 default:
849 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected"); 872 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected");
850 break; 873 break;
851 874
852 } 875 }
853} 876}
854 877
855void KSyncManager::syncSharp() 878void KSyncManager::syncSharp()
856{ 879{
857 880
858 if ( ! syncExternalApplication("sharp") ) 881 if ( ! syncExternalApplication("sharp") )
859 qDebug("ERROR sync sharp "); 882 qDebug("ERROR sync sharp ");
860} 883}
861 884
862bool KSyncManager::syncExternalApplication(QString resource) 885bool KSyncManager::syncExternalApplication(QString resource)
863{ 886{
864 887
865 emit save(); 888 emit save();
866 889
867 if ( mAskForPreferences ) 890 if ( mAskForPreferences )
868 edit_sync_options(); 891 if ( !edit_sync_options()) {
892 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
893 return false;
894 }
869 895
870 qDebug("Sync extern %s", resource.latin1()); 896 qDebug("Sync extern %s", resource.latin1());
871 897
872 bool syncOK = mImplementation->syncExternal(this, resource); 898 bool syncOK = mImplementation->syncExternal(this, resource);
873 899
874 return syncOK; 900 return syncOK;
875 901
876} 902}
877 903
878void KSyncManager::syncPhone() 904void KSyncManager::syncPhone()
879{ 905{
880 906
881 syncExternalApplication("phone"); 907 syncExternalApplication("phone");
882 908
883} 909}
884 910
885void KSyncManager::showProgressBar(int percentage, QString caption, int total) 911void KSyncManager::showProgressBar(int percentage, QString caption, int total)
886{ 912{
887 if (!bar->isVisible()) 913 if (!bar->isVisible())
888 { 914 {
889 bar->setCaption (caption); 915 bar->setCaption (caption);
890 bar->setTotalSteps ( total ) ; 916 bar->setTotalSteps ( total ) ;
891 917
892 bar->show(); 918 bar->show();
893 } 919 }
894 920
895 bar->setProgress( percentage ); 921 bar->setProgress( percentage );
896} 922}
897 923
898void KSyncManager::hideProgressBar() 924void KSyncManager::hideProgressBar()
899{ 925{
900 bar->hide(); 926 bar->hide();
901} 927}
902 928
903bool KSyncManager::isProgressBarCanceled() 929bool KSyncManager::isProgressBarCanceled()
904{ 930{
905 return !bar->isVisible(); 931 return !bar->isVisible();
906} 932}
907 933
908QString KSyncManager::syncFileName() 934QString KSyncManager::syncFileName()
909{ 935{
910 936
911 QString fn = "tempfile"; 937 QString fn = "tempfile";
912 switch(mTargetApp) 938 switch(mTargetApp)
913 { 939 {
914 case (KAPI): 940 case (KAPI):
915 fn = "tempsyncab.vcf"; 941 fn = "tempsyncab.vcf";
916 break; 942 break;
917 case (KOPI): 943 case (KOPI):
918 fn = "tempsynccal.ics"; 944 fn = "tempsynccal.ics";
919 break; 945 break;
920 case (PWMPI): 946 case (PWMPI):
921 fn = "tempsyncpw.pwm"; 947 fn = "tempsyncpw.pwm";
922 break; 948 break;
923 default: 949 default:
924 break; 950 break;
925 } 951 }
926#ifdef _WIN32_ 952#ifdef _WIN32_
927 return locateLocal( "tmp", fn ); 953 return locateLocal( "tmp", fn );
928#else 954#else
929 return (QString( "/tmp/" )+ fn ); 955 return (QString( "/tmp/" )+ fn );
930#endif 956#endif
931} 957}
932 958
933void KSyncManager::syncPi() 959void KSyncManager::syncPi()
934{ 960{
935 mPisyncFinished = false; 961 mPisyncFinished = false;
936 qApp->processEvents(); 962 qApp->processEvents();
937 if ( mAskForPreferences ) 963 if ( mAskForPreferences )
938 edit_pisync_options(); 964 if ( !edit_pisync_options()) {
965 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
966 return;
967 }
939 bool ok; 968 bool ok;
940 Q_UINT16 port = mActiveSyncPort.toUInt(&ok); 969 Q_UINT16 port = mActiveSyncPort.toUInt(&ok);
941 if ( ! ok ) { 970 if ( ! ok ) {
942 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 971 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
943 return; 972 return;
944 } 973 }
945 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, mActiveSyncIP, this ); 974 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, mActiveSyncIP, this );
946 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 975 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
947 mParent->topLevelWidget()->setCaption( i18n("Sending request for remote file ...") ); 976 mParent->topLevelWidget()->setCaption( i18n("Sending request for remote file ...") );
948 commandSocket->readFile( syncFileName() ); 977 commandSocket->readFile( syncFileName() );
949} 978}
950 979
951void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) 980void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
952{ 981{
953 //enum { success, errorW, errorR, quiet }; 982 //enum { success, errorW, errorR, quiet };
954 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) { 983 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) {
955 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); 984 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") );
956 delete s; 985 delete s;
957 if ( state == KCommandSocket::errorR ) { 986 if ( state == KCommandSocket::errorR ) {
958 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this ); 987 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this );
959 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 988 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
960 commandSocket->sendStop(); 989 commandSocket->sendStop();
961 } 990 }
962 mPisyncFinished = true; 991 mPisyncFinished = true;
963 return; 992 return;
964 993
965 } else if ( state == KCommandSocket::errorW ) { 994 } else if ( state == KCommandSocket::errorW ) {
966 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); 995 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") );
967 mPisyncFinished = true; 996 mPisyncFinished = true;
968 997
969 } else if ( state == KCommandSocket::successR ) { 998 } else if ( state == KCommandSocket::successR ) {
970 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); 999 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
971 1000
972 } else if ( state == KCommandSocket::successW ) { 1001 } else if ( state == KCommandSocket::successW ) {
973 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1002 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") );
974 mPisyncFinished = true; 1003 mPisyncFinished = true;
975 } 1004 }
976 1005
977 delete s; 1006 delete s;
978} 1007}
979 1008
980void KSyncManager::readFileFromSocket() 1009void KSyncManager::readFileFromSocket()
981{ 1010{
982 QString fileName = syncFileName(); 1011 QString fileName = syncFileName();
983 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") ); 1012 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") );
984 if ( ! syncWithFile( fileName , true ) ) { 1013 if ( ! syncWithFile( fileName , true ) ) {
985 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); 1014 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") );
986 mPisyncFinished = true; 1015 mPisyncFinished = true;
987 return; 1016 return;
988 } 1017 }
989 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this ); 1018 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this );
990 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1019 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
991 if ( mWriteBackFile ) 1020 if ( mWriteBackFile )
992 commandSocket->writeFile( fileName ); 1021 commandSocket->writeFile( fileName );
993 else { 1022 else {
994 commandSocket->sendStop(); 1023 commandSocket->sendStop();
995 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1024 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") );
996 mPisyncFinished = true; 1025 mPisyncFinished = true;
997 } 1026 }
998} 1027}
999 1028
1000KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 1029KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
1001{ 1030{
1002 mPassWord = pw; 1031 mPassWord = pw;
@@ -1105,162 +1134,162 @@ void KServerSocket::send_file()
1105 QTextStream ts( &file ); 1134 QTextStream ts( &file );
1106 ts.setEncoding( QTextStream::Latin1 ); 1135 ts.setEncoding( QTextStream::Latin1 );
1107 1136
1108 QTextStream os( mSocket ); 1137 QTextStream os( mSocket );
1109 os.setEncoding( QTextStream::Latin1 ); 1138 os.setEncoding( QTextStream::Latin1 );
1110 while ( ! ts.atEnd() ) { 1139 while ( ! ts.atEnd() ) {
1111 os << ts.readLine() << "\r\n"; 1140 os << ts.readLine() << "\r\n";
1112 } 1141 }
1113 //os << ts.read(); 1142 //os << ts.read();
1114 file.close(); 1143 file.close();
1115 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") ); 1144 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") );
1116 mSocket->close(); 1145 mSocket->close();
1117 if ( mSocket->state() == QSocket::Idle ) 1146 if ( mSocket->state() == QSocket::Idle )
1118 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1147 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1119} 1148}
1120void KServerSocket::get_file() 1149void KServerSocket::get_file()
1121{ 1150{
1122 mSyncActionDialog->setCaption( i18n("Receiving synced file...") ); 1151 mSyncActionDialog->setCaption( i18n("Receiving synced file...") );
1123 1152
1124 piTime.start(); 1153 piTime.start();
1125 piFileString = ""; 1154 piFileString = "";
1126 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) )); 1155 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) ));
1127} 1156}
1128 1157
1129 1158
1130void KServerSocket::readBackFileFromSocket() 1159void KServerSocket::readBackFileFromSocket()
1131{ 1160{
1132 //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ()); 1161 //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ());
1133 while ( mSocket->canReadLine () ) { 1162 while ( mSocket->canReadLine () ) {
1134 piTime.restart(); 1163 piTime.restart();
1135 QString line = mSocket->readLine (); 1164 QString line = mSocket->readLine ();
1136 piFileString += line; 1165 piFileString += line;
1137 //qDebug("readline: %s ", line.latin1()); 1166 //qDebug("readline: %s ", line.latin1());
1138 mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) ); 1167 mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) );
1139 1168
1140 } 1169 }
1141 if ( piTime.elapsed () < 3000 ) { 1170 if ( piTime.elapsed () < 3000 ) {
1142 // wait for more 1171 // wait for more
1143 //qDebug("waitformore "); 1172 //qDebug("waitformore ");
1144 QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) )); 1173 QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) ));
1145 return; 1174 return;
1146 } 1175 }
1147 QString fileName = mFileName; 1176 QString fileName = mFileName;
1148 QFile file ( fileName ); 1177 QFile file ( fileName );
1149 if (!file.open( IO_WriteOnly ) ) { 1178 if (!file.open( IO_WriteOnly ) ) {
1150 delete mSyncActionDialog; 1179 delete mSyncActionDialog;
1151 mSyncActionDialog = 0; 1180 mSyncActionDialog = 0;
1152 qDebug("KSS:Error open read back file "); 1181 qDebug("KSS:Error open read back file ");
1153 piFileString = ""; 1182 piFileString = "";
1154 emit file_received( false ); 1183 emit file_received( false );
1155 blockRC = false; 1184 blockRC = false;
1156 return ; 1185 return ;
1157 1186
1158 } 1187 }
1159 1188
1160 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1189 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1161 QTextStream ts ( &file ); 1190 QTextStream ts ( &file );
1162 ts.setEncoding( QTextStream::Latin1 ); 1191 ts.setEncoding( QTextStream::Latin1 );
1163 mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); 1192 mSyncActionDialog->setCaption( i18n("Writing file to disk...") );
1164 ts << piFileString; 1193 ts << piFileString;
1165 mSocket->close(); 1194 mSocket->close();
1166 if ( mSocket->state() == QSocket::Idle ) 1195 if ( mSocket->state() == QSocket::Idle )
1167 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1196 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1168 file.close(); 1197 file.close();
1198 piFileString = "";
1199 emit file_received( true );
1169 delete mSyncActionDialog; 1200 delete mSyncActionDialog;
1170 mSyncActionDialog = 0; 1201 mSyncActionDialog = 0;
1171 piFileString = "";
1172 blockRC = false; 1202 blockRC = false;
1173 emit file_received( true );
1174 1203
1175} 1204}
1176 1205
1177KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name ) 1206KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name )
1178{ 1207{
1179 mPassWord = password; 1208 mPassWord = password;
1180 mSocket = 0; 1209 mSocket = 0;
1181 mPort = port; 1210 mPort = port;
1182 mHost = host; 1211 mHost = host;
1183 1212
1184 mRetVal = quiet; 1213 mRetVal = quiet;
1185 mTimerSocket = new QTimer ( this ); 1214 mTimerSocket = new QTimer ( this );
1186 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) ); 1215 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) );
1187} 1216}
1188void KCommandSocket::readFile( QString fn ) 1217void KCommandSocket::readFile( QString fn )
1189{ 1218{
1190 if ( !mSocket ) { 1219 if ( !mSocket ) {
1191 mSocket = new QSocket( this ); 1220 mSocket = new QSocket( this );
1192 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); 1221 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) );
1193 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1222 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1194 } 1223 }
1195 mFileString = ""; 1224 mFileString = "";
1196 mFileName = fn; 1225 mFileName = fn;
1197 mFirst = true; 1226 mFirst = true;
1198 mSocket->connectToHost( mHost, mPort ); 1227 mSocket->connectToHost( mHost, mPort );
1199 QTextStream os( mSocket ); 1228 QTextStream os( mSocket );
1200 os.setEncoding( QTextStream::Latin1 ); 1229 os.setEncoding( QTextStream::Latin1 );
1201 os << "GET " << mPassWord << "\r\n"; 1230 os << "GET " << mPassWord << "\r\n";
1202 mTimerSocket->start( 10000 ); 1231 mTimerSocket->start( 20000 );
1203} 1232}
1204 1233
1205void KCommandSocket::writeFile( QString fileName ) 1234void KCommandSocket::writeFile( QString fileName )
1206{ 1235{
1207 if ( !mSocket ) { 1236 if ( !mSocket ) {
1208 mSocket = new QSocket( this ); 1237 mSocket = new QSocket( this );
1209 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1238 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1210 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) ); 1239 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) );
1211 } 1240 }
1212 mFileName = fileName ; 1241 mFileName = fileName ;
1213 mSocket->connectToHost( mHost, mPort ); 1242 mSocket->connectToHost( mHost, mPort );
1214} 1243}
1215void KCommandSocket::writeFileToSocket() 1244void KCommandSocket::writeFileToSocket()
1216{ 1245{
1217 QFile file2( mFileName ); 1246 QFile file2( mFileName );
1218 if (!file2.open( IO_ReadOnly ) ) { 1247 if (!file2.open( IO_ReadOnly ) ) {
1219 mRetVal= errorW; 1248 mRetVal= errorW;
1220 mSocket->close(); 1249 mSocket->close();
1221 if ( mSocket->state() == QSocket::Idle ) 1250 if ( mSocket->state() == QSocket::Idle )
1222 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1251 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1223 return ; 1252 return ;
1224 } 1253 }
1225 QTextStream ts2( &file2 ); 1254 QTextStream ts2( &file2 );
1226 ts2.setEncoding( QTextStream::Latin1 ); 1255 ts2.setEncoding( QTextStream::Latin1 );
1227 QTextStream os2( mSocket ); 1256 QTextStream os2( mSocket );
1228 os2.setEncoding( QTextStream::Latin1 ); 1257 os2.setEncoding( QTextStream::Latin1 );
1229 os2 << "PUT " << mPassWord << "\r\n";; 1258 os2 << "PUT " << mPassWord << "\r\n";;
1230 while ( ! ts2.atEnd() ) { 1259 while ( ! ts2.atEnd() ) {
1231 os2 << ts2.readLine() << "\r\n"; 1260 os2 << ts2.readLine() << "\r\n";
1232 } 1261 }
1233 mRetVal= successW; 1262 mRetVal= successW;
1234 file2.close(); 1263 file2.close();
1235 mSocket->close(); 1264 mSocket->close();
1236 if ( mSocket->state() == QSocket::Idle ) 1265 if ( mSocket->state() == QSocket::Idle )
1237 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1266 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1238} 1267}
1239void KCommandSocket::sendStop() 1268void KCommandSocket::sendStop()
1240{ 1269{
1241 if ( !mSocket ) { 1270 if ( !mSocket ) {
1242 mSocket = new QSocket( this ); 1271 mSocket = new QSocket( this );
1243 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1272 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1244 } 1273 }
1245 mSocket->connectToHost( mHost, mPort ); 1274 mSocket->connectToHost( mHost, mPort );
1246 QTextStream os2( mSocket ); 1275 QTextStream os2( mSocket );
1247 os2.setEncoding( QTextStream::Latin1 ); 1276 os2.setEncoding( QTextStream::Latin1 );
1248 os2 << "STOP\r\n"; 1277 os2 << "STOP\r\n";
1249 mSocket->close(); 1278 mSocket->close();
1250 if ( mSocket->state() == QSocket::Idle ) 1279 if ( mSocket->state() == QSocket::Idle )
1251 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1280 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1252} 1281}
1253 1282
1254void KCommandSocket::startReadFileFromSocket() 1283void KCommandSocket::startReadFileFromSocket()
1255{ 1284{
1256 if ( ! mFirst ) 1285 if ( ! mFirst )
1257 return; 1286 return;
1258 mFirst = false; 1287 mFirst = false;
1259 mTimerSocket->stop(); 1288 mTimerSocket->stop();
1260 mFileString = ""; 1289 mFileString = "";
1261 mTime.start(); 1290 mTime.start();
1262 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) )); 1291 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) ));
1263 1292
1264} 1293}
1265void KCommandSocket::readFileFromSocket() 1294void KCommandSocket::readFileFromSocket()
1266{ 1295{
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 7b9c499..4a610fa 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -113,99 +113,99 @@ class KSyncManager : public QObject
113 113
114 KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu); 114 KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu);
115 ~KSyncManager() ; 115 ~KSyncManager() ;
116 116
117 void multiSync( bool askforPrefs ); 117 void multiSync( bool askforPrefs );
118 bool blockSave() { return mBlockSaveFlag; } 118 bool blockSave() { return mBlockSaveFlag; }
119 void setBlockSave(bool sa) { mBlockSaveFlag = sa; } 119 void setBlockSave(bool sa) { mBlockSaveFlag = sa; }
120 void setDefaultFileName( QString s) { mDefFileName = s ;} 120 void setDefaultFileName( QString s) { mDefFileName = s ;}
121 QString defaultFileName() { return mDefFileName ;} 121 QString defaultFileName() { return mDefFileName ;}
122 QString syncFileName(); 122 QString syncFileName();
123 void enableQuick( bool ask = true); 123 void enableQuick( bool ask = true);
124 124
125 QString getCurrentSyncDevice() { return mCurrentSyncDevice; } 125 QString getCurrentSyncDevice() { return mCurrentSyncDevice; }
126 QString getCurrentSyncName() { return mCurrentSyncName; } 126 QString getCurrentSyncName() { return mCurrentSyncName; }
127 127
128 void showProgressBar(int percentage, QString caption = QString::null, int total=100); 128 void showProgressBar(int percentage, QString caption = QString::null, int total=100);
129 void hideProgressBar(); 129 void hideProgressBar();
130 bool isProgressBarCanceled(); 130 bool isProgressBarCanceled();
131 131
132 // sync stuff 132 // sync stuff
133 QString mLocalMachineName; 133 QString mLocalMachineName;
134 QStringList mExternSyncProfiles; 134 QStringList mExternSyncProfiles;
135 QStringList mSyncProfileNames; 135 QStringList mSyncProfileNames;
136 bool mAskForPreferences; 136 bool mAskForPreferences;
137 bool mShowSyncSummary; 137 bool mShowSyncSummary;
138 bool mIsKapiFile; 138 bool mIsKapiFile;
139 bool mWriteBackExistingOnly; 139 bool mWriteBackExistingOnly;
140 int mSyncAlgoPrefs; 140 int mSyncAlgoPrefs;
141 bool mWriteBackFile; 141 bool mWriteBackFile;
142 int mWriteBackInFuture; 142 int mWriteBackInFuture;
143 QString mPhoneDevice; 143 QString mPhoneDevice;
144 QString mPhoneConnection; 144 QString mPhoneConnection;
145 QString mPhoneModel; 145 QString mPhoneModel;
146 QString mPassWordPiSync; 146 QString mPassWordPiSync;
147 QString mActiveSyncPort; 147 QString mActiveSyncPort;
148 QString mActiveSyncIP ; 148 QString mActiveSyncIP ;
149 149
150 signals: 150 signals:
151 void save(); 151 void save();
152 void request_file(); 152 void request_file();
153 void getFile( bool ); 153 void getFile( bool );
154 154
155 public slots: 155 public slots:
156 void slotSyncMenu( int ); 156 void slotSyncMenu( int );
157 void deleteCommandSocket(KCommandSocket*s, int state); 157 void deleteCommandSocket(KCommandSocket*s, int state);
158 void readFileFromSocket(); 158 void readFileFromSocket();
159 void fillSyncMenu(); 159 void fillSyncMenu();
160 160
161 private: 161 private:
162 void syncPi(); 162 void syncPi();
163 KServerSocket * mServerSocket; 163 KServerSocket * mServerSocket;
164 KPimPrefs* mPrefs; 164 KPimPrefs* mPrefs;
165 QString mDefFileName; 165 QString mDefFileName;
166 QString mCurrentSyncDevice; 166 QString mCurrentSyncDevice;
167 QString mCurrentSyncName; 167 QString mCurrentSyncName;
168 void quickSyncLocalFile(); 168 void quickSyncLocalFile();
169 bool syncWithFile( QString fn , bool quick ); 169 bool syncWithFile( QString fn , bool quick );
170 void syncLocalFile(); 170 void syncLocalFile();
171 void syncPhone(); 171 void syncPhone();
172 void syncSharp(); 172 void syncSharp();
173 void syncKDE(); 173 void syncKDE();
174 bool syncExternalApplication(QString); 174 bool syncExternalApplication(QString);
175 int mCurrentSyncProfile ; 175 int mCurrentSyncProfile ;
176 void syncRemote( KSyncProfile* prof, bool ask = true); 176 void syncRemote( KSyncProfile* prof, bool ask = true);
177 void edit_sync_options(); 177 bool edit_sync_options();
178 void edit_pisync_options(); 178 bool edit_pisync_options();
179 int ringSync(); 179 int ringSync();
180 QString getPassword( ); 180 QString getPassword( );
181 bool mPisyncFinished; 181 bool mPisyncFinished;
182 bool mBlockSaveFlag; 182 bool mBlockSaveFlag;
183 QWidget* mParent; 183 QWidget* mParent;
184 KSyncInterface* mImplementation; 184 KSyncInterface* mImplementation;
185 TargetApp mTargetApp; 185 TargetApp mTargetApp;
186 QPopupMenu* mSyncMenu; 186 QPopupMenu* mSyncMenu;
187 QProgressBar* bar; 187 QProgressBar* bar;
188 188
189private slots: 189private slots:
190 void confSync(); 190 void confSync();
191 191
192 192
193}; 193};
194 194
195 195
196class KSyncInterface 196class KSyncInterface
197{ 197{
198 public : 198 public :
199 virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0; 199 virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0;
200 virtual bool syncExternal(KSyncManager* manager, QString resource) 200 virtual bool syncExternal(KSyncManager* manager, QString resource)
201 { 201 {
202 // empty implementation, because some syncable applications do not 202 // empty implementation, because some syncable applications do not
203 // have an external(sharpdtm) syncmode, like pwmanager. 203 // have an external(sharpdtm) syncmode, like pwmanager.
204 return false; 204 return false;
205 } 205 }
206 206
207 207
208}; 208};
209 209
210 210
211#endif 211#endif