summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-03-28 19:26:15 (UTC)
committer zautrix <zautrix>2005-03-28 19:26:15 (UTC)
commitea070abfcff313cac87dbb4d5c9410784740de21 (patch) (unidiff)
tree3e95608a0444030016eb6845b95a582e265c1dad
parent57f95bb15f732ede3ddc68b077b6a5476246e971 (diff)
downloadkdepimpi-ea070abfcff313cac87dbb4d5c9410784740de21.zip
kdepimpi-ea070abfcff313cac87dbb4d5c9410784740de21.tar.gz
kdepimpi-ea070abfcff313cac87dbb4d5c9410784740de21.tar.bz2
print fixes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile662
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt8
-rw-r--r--korganizer/koeventviewer.cpp13
-rw-r--r--korganizer/koeventviewer.h53
-rw-r--r--korganizer/koeventviewerdialog.cpp8
-rw-r--r--korganizer/kowhatsnextview.cpp12
6 files changed, 360 insertions, 396 deletions
diff --git a/Makefile b/Makefile
index 594d47d..f93af01 100644
--- a/Makefile
+++ b/Makefile
@@ -1,385 +1,279 @@
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.4) on: Mon Mar 28 20:19:36 2005
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
13#opie plugin is deprecated. The qtopia plugin handles the task from now on. 13MKDIR = mkdir -p
14BUILD_NO_OPIE_PLUGIN=1 14INSTALL_FILE=
15 15INSTALL_DIR =
16SUBDIRS_MICROKDE = \ 16 SUBTARGETS = \
17 libical/src/libical \ 17 sub-libical \
18 libical/src/libicalss \ 18 sub-libkcal \
19 qtcompat \ 19 sub-kabc \
20 microkde \ 20 sub-libkdepim \
21 libkcal \ 21 sub-microkde \
22 libkdepim \ 22 sub-korganizer \
23 kabc \ 23 sub-kaddressbook \
24 kabc/formats/binary \ 24 sub-kabc-plugins-file \
25 kabc/plugins/file \ 25 sub-kabc-plugins-dir \
26 kabc/plugins/dir \ 26 sub-kabc-plugins-qtopia \
27 korganizer \ 27 sub-gammu-emb-common \
28 kalarmd \ 28 sub-gammu-emb-gammu \
29 kaddressbook 29 sub-libetpan \
30 30 sub-kmicromail-libmailwrapper \
31SUBDIRS_QTOPIA_PLUGIN = \ 31 sub-kmicromail \
32 kabc/plugins/qtopia 32 sub-pwmanager-libcrypt-cipher \
33 33 sub-pwmanager-libcrypt-error \
34SUBDIRS_OPIE_PLUGIN = \ 34 sub-pwmanager-libcrypt-mpi \
35 kabc/plugins/opie 35 sub-pwmanager-libcrypt-zlib \
36 36 sub-pwmanager-pwmanager
37SUBDIRS_SHARP_PLUGIN = \ 37
38 kabc/plugins/sharpdtm 38first: all
39 39
40SUBDIRS_LDAP_PLUGIN = \ 40all: Makefile $(SUBTARGETS)
41 kabc/plugins/ldap 41
42 42libical/$(MAKEFILE):
43SUBDIRS_MICROMAIL = \ 43 @$(CHK_DIR_EXISTS) "libical" || $(MKDIR) "libical"
44 libetpan \ 44 cd libical && $(QMAKE) libical.pro -o $(MAKEFILE)
45 kmicromail/libmailwrapper \ 45sub-libical: libical/$(MAKEFILE) FORCE
46 kmicromail 46 cd libical && $(MAKE) -f $(MAKEFILE)
47 47
48SUBDIRS_GAMMU = \ 48libkcal/$(MAKEFILE):
49 gammu/emb/common \ 49 @$(CHK_DIR_EXISTS) "libkcal" || $(MKDIR) "libkcal"
50 gammu/emb/gammu 50 cd libkcal && $(QMAKE) libkcal.pro -o $(MAKEFILE)
51 51sub-libkcal: libkcal/$(MAKEFILE) FORCE
52SUBDIRS_PWMANAGER = \ 52 cd libkcal && $(MAKE) -f $(MAKEFILE)
53 pwmanager/libcrypt/mpi \ 53
54 pwmanager/libcrypt/error \ 54kabc/$(MAKEFILE):
55 pwmanager/libcrypt/cipher \ 55 @$(CHK_DIR_EXISTS) "kabc" || $(MKDIR) "kabc"
56 pwmanager/libcrypt/zlib \ 56 cd kabc && $(QMAKE) kabc.pro -o $(MAKEFILE)
57 pwmanager/pwmanager 57sub-kabc: kabc/$(MAKEFILE) FORCE
58 58 cd kabc && $(MAKE) -f $(MAKEFILE)
59SUBDIRS = \ 59
60 $(SUBDIRS_MICROKDE) \ 60libkdepim/$(MAKEFILE):
61 $(SUBDIRS_QTOPIA_PLUGIN) \ 61 @$(CHK_DIR_EXISTS) "libkdepim" || $(MKDIR) "libkdepim"
62 $(SUBDIRS_OPIE_PLUGIN) \ 62 cd libkdepim && $(QMAKE) libkdepim.pro -o $(MAKEFILE)
63 $(SUBDIRS_SHARP_PLUGIN) \ 63sub-libkdepim: libkdepim/$(MAKEFILE) FORCE
64 $(SUBDIRS_LDAP_PLUGIN) \ 64 cd libkdepim && $(MAKE) -f $(MAKEFILE)
65 $(SUBDIRS_MICROMAIL) \ 65
66 $(SUBDIRS_GAMMU) \ 66microkde/$(MAKEFILE):
67 $(SUBDIRS_PWMANAGER) 67 @$(CHK_DIR_EXISTS) "microkde" || $(MKDIR) "microkde"
68 68 cd microkde && $(QMAKE) microkde.pro -o $(MAKEFILE)
69 69sub-microkde: microkde/$(MAKEFILE) FORCE
70all: build_microkde \ 70 cd microkde && $(MAKE) -f $(MAKEFILE)
71 build_qtopia_plugin \ 71
72 build_opie_plugin \ 72korganizer/$(MAKEFILE):
73 build_sharp_plugin \ 73 @$(CHK_DIR_EXISTS) "korganizer" || $(MKDIR) "korganizer"
74 build_ldap_plugin \ 74 cd korganizer && $(QMAKE) korganizer.pro -o $(MAKEFILE)
75 build_micromail \ 75sub-korganizer: korganizer/$(MAKEFILE) FORCE
76 build_gammu \ 76 cd korganizer && $(MAKE) -f $(MAKEFILE)
77 build_pwmanager 77
78 78kaddressbook/$(MAKEFILE):
79 79 @$(CHK_DIR_EXISTS) "kaddressbook" || $(MKDIR) "kaddressbook"
80build_microkde: variable_test tmake 80 cd kaddressbook && $(QMAKE) kaddressbook.pro -o $(MAKEFILE)
81 for i in $(SUBDIRS_MICROKDE); do pushd $$i; \ 81sub-kaddressbook: kaddressbook/$(MAKEFILE) FORCE
82 make -f Makefile$(PLATFORM) || exit 1; popd; \ 82 cd kaddressbook && $(MAKE) -f $(MAKEFILE)
83 done 83
84 84kabc/plugins/file/$(MAKEFILE):
85build_qtopia_plugin: build_microkde 85 @$(CHK_DIR_EXISTS) "kabc/plugins/file" || $(MKDIR) "kabc/plugins/file"
86 ifdef BUILD_NO_QTOPIA_PLUGIN 86 cd kabc/plugins/file && $(QMAKE) file.pro -o $(MAKEFILE)
87 @echo == qtopia plugin not build. 87sub-kabc-plugins-file: kabc/plugins/file/$(MAKEFILE) FORCE
88 else 88 cd kabc/plugins/file && $(MAKE) -f $(MAKEFILE)
89 for i in $(SUBDIRS_QTOPIA_PLUGIN); do pushd $$i; \ 89
90 make -f Makefile$(PLATFORM) || exit 1; popd; \ 90kabc/plugins/dir/$(MAKEFILE):
91 done 91 @$(CHK_DIR_EXISTS) "kabc/plugins/dir" || $(MKDIR) "kabc/plugins/dir"
92 endif 92 cd kabc/plugins/dir && $(QMAKE) dir.pro -o $(MAKEFILE)
93 93sub-kabc-plugins-dir: kabc/plugins/dir/$(MAKEFILE) FORCE
94build_opie_plugin: build_microkde 94 cd kabc/plugins/dir && $(MAKE) -f $(MAKEFILE)
95 ifdef BUILD_NO_OPIE_PLUGIN 95
96 @echo == opie plugin not build. 96kabc/plugins/qtopia/$(MAKEFILE):
97 else 97 @$(CHK_DIR_EXISTS) "kabc/plugins/qtopia" || $(MKDIR) "kabc/plugins/qtopia"
98 for i in $(SUBDIRS_OPIE_PLUGIN); do pushd $$i; \ 98 cd kabc/plugins/qtopia && $(QMAKE) qtopia.pro -o $(MAKEFILE)
99 make -f Makefile$(PLATFORM) || exit 1; popd; \ 99sub-kabc-plugins-qtopia: kabc/plugins/qtopia/$(MAKEFILE) FORCE
100 done 100 cd kabc/plugins/qtopia && $(MAKE) -f $(MAKEFILE)
101 endif 101
102 102gammu/emb/common/$(MAKEFILE):
103build_sharp_plugin: build_microkde 103 @$(CHK_DIR_EXISTS) "gammu/emb/common" || $(MKDIR) "gammu/emb/common"
104 ifdef BUILD_NO_SHARP_PLUGIN 104 cd gammu/emb/common && $(QMAKE) common.pro -o $(MAKEFILE)
105 @echo == ldap plugin not build. 105sub-gammu-emb-common: gammu/emb/common/$(MAKEFILE) FORCE
106 else 106 cd gammu/emb/common && $(MAKE) -f $(MAKEFILE)
107 for i in $(SUBDIRS_SHARP_PLUGIN); do pushd $$i; \ 107
108 make -f Makefile$(PLATFORM) || exit 1; popd; \ 108gammu/emb/gammu/$(MAKEFILE):
109 done 109 @$(CHK_DIR_EXISTS) "gammu/emb/gammu" || $(MKDIR) "gammu/emb/gammu"
110 endif 110 cd gammu/emb/gammu && $(QMAKE) gammu.pro -o $(MAKEFILE)
111 111sub-gammu-emb-gammu: gammu/emb/gammu/$(MAKEFILE) FORCE
112build_ldap_plugin: build_microkde 112 cd gammu/emb/gammu && $(MAKE) -f $(MAKEFILE)
113 ifdef BUILD_NO_LDAP_PLUGIN 113
114 @echo == ldap plugin not build. 114libetpan/$(MAKEFILE):
115 else 115 @$(CHK_DIR_EXISTS) "libetpan" || $(MKDIR) "libetpan"
116 for i in $(SUBDIRS_LDAP_PLUGIN); do pushd $$i; \ 116 cd libetpan && $(QMAKE) libetpan.pro -o $(MAKEFILE)
117 make -f Makefile$(PLATFORM) || exit 1; popd; \ 117sub-libetpan: libetpan/$(MAKEFILE) FORCE
118 done 118 cd libetpan && $(MAKE) -f $(MAKEFILE)
119 endif 119
120 120kmicromail/libmailwrapper/$(MAKEFILE):
121 121 @$(CHK_DIR_EXISTS) "kmicromail/libmailwrapper" || $(MKDIR) "kmicromail/libmailwrapper"
122build_micromail: build_microkde 122 cd kmicromail/libmailwrapper && $(QMAKE) libmailwrapper.pro -o $(MAKEFILE)
123 ifdef BUILD_NO_MICROMAIL 123sub-kmicromail-libmailwrapper: kmicromail/libmailwrapper/$(MAKEFILE) FORCE
124 @echo == kmicromail not build. 124 cd kmicromail/libmailwrapper && $(MAKE) -f $(MAKEFILE)
125 else 125
126 for i in $(SUBDIRS_MICROMAIL); do pushd $$i; \ 126kmicromail/$(MAKEFILE):
127 make -f Makefile$(PLATFORM) || exit 1; popd; \ 127 @$(CHK_DIR_EXISTS) "kmicromail" || $(MKDIR) "kmicromail"
128 done 128 cd kmicromail && $(QMAKE) kmicromail.pro -o $(MAKEFILE)
129 endif 129sub-kmicromail: kmicromail/$(MAKEFILE) FORCE
130 130 cd kmicromail && $(MAKE) -f $(MAKEFILE)
131build_gammu: variable_test tmake 131
132 ifdef BUILD_NO_GAMMU 132pwmanager/libcrypt/cipher/$(MAKEFILE):
133 @echo == gammu not build. 133 @$(CHK_DIR_EXISTS) "pwmanager/libcrypt/cipher" || $(MKDIR) "pwmanager/libcrypt/cipher"
134 else 134 cd pwmanager/libcrypt/cipher && $(QMAKE) cipher.pro -o $(MAKEFILE)
135 for i in $(SUBDIRS_GAMMU); do pushd $$i; \ 135sub-pwmanager-libcrypt-cipher: pwmanager/libcrypt/cipher/$(MAKEFILE) FORCE
136 make -f Makefile$(PLATFORM) || exit 1; popd; \ 136 cd pwmanager/libcrypt/cipher && $(MAKE) -f $(MAKEFILE)
137 done 137
138 endif 138pwmanager/libcrypt/error/$(MAKEFILE):
139 139 @$(CHK_DIR_EXISTS) "pwmanager/libcrypt/error" || $(MKDIR) "pwmanager/libcrypt/error"
140build_pwmanager: build_microkde 140 cd pwmanager/libcrypt/error && $(QMAKE) error.pro -o $(MAKEFILE)
141 ifdef BUILD_NO_PWMANAGER 141sub-pwmanager-libcrypt-error: pwmanager/libcrypt/error/$(MAKEFILE) FORCE
142 @echo == pwmanager not build. 142 cd pwmanager/libcrypt/error && $(MAKE) -f $(MAKEFILE)
143 else 143
144 for i in $(SUBDIRS_PWMANAGER); do pushd $$i; \ 144pwmanager/libcrypt/mpi/$(MAKEFILE):
145 make -f Makefile$(PLATFORM) || exit 1; popd; \ 145 @$(CHK_DIR_EXISTS) "pwmanager/libcrypt/mpi" || $(MKDIR) "pwmanager/libcrypt/mpi"
146 done 146 cd pwmanager/libcrypt/mpi && $(QMAKE) mpi.pro -o $(MAKEFILE)
147 endif 147sub-pwmanager-libcrypt-mpi: pwmanager/libcrypt/mpi/$(MAKEFILE) FORCE
148 148 cd pwmanager/libcrypt/mpi && $(MAKE) -f $(MAKEFILE)
149 149
150variable_info: 150pwmanager/libcrypt/zlib/$(MAKEFILE):
151 @echo -------------------------------------- 151 @$(CHK_DIR_EXISTS) "pwmanager/libcrypt/zlib" || $(MKDIR) "pwmanager/libcrypt/zlib"
152 @echo KDEPIM buildsystem, variableinfo... 152 cd pwmanager/libcrypt/zlib && $(QMAKE) zlib.pro -o $(MAKEFILE)
153 @echo KDEPIMDIR=$(KDEPIMDIR) 153sub-pwmanager-libcrypt-zlib: pwmanager/libcrypt/zlib/$(MAKEFILE) FORCE
154 @echo QTDIR=$(QTDIR) 154 cd pwmanager/libcrypt/zlib && $(MAKE) -f $(MAKEFILE)
155 @echo QPEDIR=$(QPEDIR) 155
156 @echo OPIEDIR=$(OPIEDIR) 156pwmanager/pwmanager/$(MAKEFILE):
157 @echo PLATFORM=$(PLATFORM) 157 @$(CHK_DIR_EXISTS) "pwmanager/pwmanager" || $(MKDIR) "pwmanager/pwmanager"
158 @echo RELEASE_DEBUG=$(RELEASE_DEBUG) 158 cd pwmanager/pwmanager && $(QMAKE) pwmanager.pro -o $(MAKEFILE)
159 @echo BUILD_NO_MICROMAIL=$(BUILD_NO_MICROMAIL) 159sub-pwmanager-pwmanager: pwmanager/pwmanager/$(MAKEFILE) FORCE
160 @echo BUILD_NO_LDAP_PLUGIN=$(BUILD_NO_LDAP_PLUGIN) 160 cd pwmanager/pwmanager && $(MAKE) -f $(MAKEFILE)
161 @echo BUILD_NO_OPIE_PLUGIN=$(BUILD_NO_OPIE_PLUGIN) 161
162 @echo BUILD_NO_QTOPIA_PLUGIN=$(BUILD_NO_QTOPIA_PLUGIN) 162Makefile: kdepim-desktop.pro /usr/lib/qt3/mkspecs/default/qmake.conf
163 @echo BUILD_NO_SHARP_PLUGIN=$(BUILD_NO_SHARP_PLUGIN) 163 $(QMAKE) -o Makefile kdepim-desktop.pro
164 ifndef BUILD_NO_SHARP_PLUGIN 164qmake: qmake_all
165 @echo SHARPDTMSDK=$(SHARPDTMSDK) 165 @$(QMAKE) -o Makefile kdepim-desktop.pro
166 endif 166
167 @echo BUILD_NO_GAMMU=$(BUILD_NO_GAMMU) 167all: $(SUBTARGETS)
168 @echo BUILD_NO_PWMANAGER=$(BUILD_NO_PWMANAGER) 168qmake_all: libical/$(MAKEFILE) libkcal/$(MAKEFILE) kabc/$(MAKEFILE) libkdepim/$(MAKEFILE) microkde/$(MAKEFILE) korganizer/$(MAKEFILE) kaddressbook/$(MAKEFILE) kabc/plugins/file/$(MAKEFILE) kabc/plugins/dir/$(MAKEFILE) kabc/plugins/qtopia/$(MAKEFILE) gammu/emb/common/$(MAKEFILE) gammu/emb/gammu/$(MAKEFILE) libetpan/$(MAKEFILE) kmicromail/libmailwrapper/$(MAKEFILE) kmicromail/$(MAKEFILE) pwmanager/libcrypt/cipher/$(MAKEFILE) pwmanager/libcrypt/error/$(MAKEFILE) pwmanager/libcrypt/mpi/$(MAKEFILE) pwmanager/libcrypt/zlib/$(MAKEFILE) pwmanager/pwmanager/$(MAKEFILE)
169 @echo -------------------------------------- 169 ( [ -d libical ] && cd libical ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
170 170 ( [ -d libkcal ] && cd libkcal ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
171variable_test: variable_info 171 ( [ -d kabc ] && cd kabc ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
172 @echo KDEPIM buildsystem, variablecheck... 172 ( [ -d libkdepim ] && cd libkdepim ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
173 ifndef KDEPIMDIR 173 ( [ -d microkde ] && cd microkde ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
174 @echo KDEPIMDIR is not defined. 174 ( [ -d korganizer ] && cd korganizer ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
175 $(error KDEPIMDIR is not defined) 175 ( [ -d kaddressbook ] && cd kaddressbook ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
176 endif 176 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
177 ifndef PLATFORM 177 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
178 @echo PLATFORM is not defined. 178 ( [ -d kabc/plugins/qtopia ] && cd kabc/plugins/qtopia ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
179 $(error PLATFORM is not defined) 179 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
180 endif 180 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
181 ifdef BUILD_NO_LDAP_PLUGIN 181 ( [ -d libetpan ] && cd libetpan ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
182 @echo LDAP PLUGIN will not be build, because BUILD_NO_LDAP_PLUGIN is set to $(BUILD_NO_LDAP_PLUGIN) 182 ( [ -d kmicromail/libmailwrapper ] && cd kmicromail/libmailwrapper ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
183 endif 183 ( [ -d kmicromail ] && cd kmicromail ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
184 ifdef BUILD_NO_OPIE_PLUGIN 184 ( [ -d pwmanager/libcrypt/cipher ] && cd pwmanager/libcrypt/cipher ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
185 @echo OPIE PLUGIN will not be build, because BUILD_NO_OPIE_PLUGIN is set to $(BUILD_NO_OPIE_PLUGIN) 185 ( [ -d pwmanager/libcrypt/error ] && cd pwmanager/libcrypt/error ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
186 endif 186 ( [ -d pwmanager/libcrypt/mpi ] && cd pwmanager/libcrypt/mpi ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
187 ifdef BUILD_NO_QTOPIA_PLUGIN 187 ( [ -d pwmanager/libcrypt/zlib ] && cd pwmanager/libcrypt/zlib ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
188 @echo QTOPIA PLUGIN will not be build, because BUILD_NO__QTOPIA_PLUGIN is set to $(BUILD_NO__QTOPIA_PLUGIN) 188 ( [ -d pwmanager/pwmanager ] && cd pwmanager/pwmanager ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true
189 endif 189clean uicables mocables uiclean mocclean lexclean yaccclean : qmake_all FORCE
190 ifdef BUILD_NO_MICROMAIL 190 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) $@; ) || true
191 @echo MICROMAIL will not be build, because BUILD_NO_MICROMAIL is set to $(BUILD_NO_MICROMAIL) 191 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) $@; ) || true
192 endif 192 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) $@; ) || true
193 ifdef BUILD_NO_SHARP_PLUGIN 193 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) $@; ) || true
194 @echo SHARP PLUGIN will not be build, because BUILD_NO_SHARP_PLUGIN is set to $(BUILD_NO_SHARP_PLUGIN) 194 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) $@; ) || true
195 else 195 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) $@; ) || true
196 ifndef SHARPDTMSDK 196 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) $@; ) || true
197 @echo SHARP PLUGIN can not be build, because SHARPDTMSDK is set to $(SHARPDTMSDK) 197 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) $@; ) || true
198 $(error SHARPDTMSDK is not defined) 198 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) $@; ) || true
199 endif 199 ( [ -d kabc/plugins/qtopia ] && cd kabc/plugins/qtopia ; $(MAKE) -f $(MAKEFILE) $@; ) || true
200 endif 200 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) $@; ) || true
201 ifdef BUILD_NO_GAMMU 201 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) $@; ) || true
202 @echo GAMMU will not be build, because BUILD_NO_GAMMU is set to $(BUILD_NO_GAMMU) 202 ( [ -d libetpan ] && cd libetpan ; $(MAKE) -f $(MAKEFILE) $@; ) || true
203 endif 203 ( [ -d kmicromail/libmailwrapper ] && cd kmicromail/libmailwrapper ; $(MAKE) -f $(MAKEFILE) $@; ) || true
204 ifdef BUILD_NO_PWMANAGER 204 ( [ -d kmicromail ] && cd kmicromail ; $(MAKE) -f $(MAKEFILE) $@; ) || true
205 @echo PWMANAGER will not be build, because BUILD_NO_PWMANAGER is set to $(BUILD_NO_PWMANAGER) 205 ( [ -d pwmanager/libcrypt/cipher ] && cd pwmanager/libcrypt/cipher ; $(MAKE) -f $(MAKEFILE) $@; ) || true
206 endif 206 ( [ -d pwmanager/libcrypt/error ] && cd pwmanager/libcrypt/error ; $(MAKE) -f $(MAKEFILE) $@; ) || true
207 @echo -------------------------------------- 207 ( [ -d pwmanager/libcrypt/mpi ] && cd pwmanager/libcrypt/mpi ; $(MAKE) -f $(MAKEFILE) $@; ) || true
208 208 ( [ -d pwmanager/libcrypt/zlib ] && cd pwmanager/libcrypt/zlib ; $(MAKE) -f $(MAKEFILE) $@; ) || true
209 209 ( [ -d pwmanager/pwmanager ] && cd pwmanager/pwmanager ; $(MAKE) -f $(MAKEFILE) $@; ) || true
210objects: 210uninstall_subdirs: qmake_all FORCE
211 for i in $(SUBDIRS); do mkdir -p $$i/obj/$(PLATFORM); done 211 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
212 for i in $(SUBDIRS); do mkdir -p $$i/moc/$(PLATFORM); done 212 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
213 mkdir -p libical/lib/$(PLATFORM) 213 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
214 mkdir -p dest 214 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
215 mkdir -p dest$(LIBICAL_PATH) 215 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
216 mkdir -p pwmanager/libcrypt/$(PLATFORM) 216 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
217 217 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
218clean: 218 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
219 rm -rf libical/lib/$(PLATFORM)/*; 219 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
220 rm -rf pwmanager/libcrypt/$(PLATFORM)/*; 220 ( [ -d kabc/plugins/qtopia ] && cd kabc/plugins/qtopia ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
221 for i in $(SUBDIRS); do pushd $$i; make clean; rm -f *~;\ 221 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
222 rm -f obj/$(PLATFORM)/*; rm -f moc/$(PLATFORM)/*; rm Makefile$(PLATFORM); popd; \ 222 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
223 done 223 ( [ -d libetpan ] && cd libetpan ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
224 224 ( [ -d kmicromail/libmailwrapper ] && cd kmicromail/libmailwrapper ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
225pac: 225 ( [ -d kmicromail ] && cd kmicromail ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
226 rm -f $(QPEDIR)/lib/libmicro* 226 ( [ -d pwmanager/libcrypt/cipher ] && cd pwmanager/libcrypt/cipher ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
227 rm -f $(QPEDIR)/plugins/applets/libkopi* 227 ( [ -d pwmanager/libcrypt/error ] && cd pwmanager/libcrypt/error ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
228 make 228 ( [ -d pwmanager/libcrypt/mpi ] && cd pwmanager/libcrypt/mpi ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
229 make install 229 ( [ -d pwmanager/libcrypt/zlib ] && cd pwmanager/libcrypt/zlib ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
230 make dist 230 ( [ -d pwmanager/pwmanager ] && cd pwmanager/pwmanager ; $(MAKE) -f $(MAKEFILE) uninstall; ) || true
231install: 231install_subdirs: qmake_all FORCE
232 232 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) install; ) || true
233 cd bin/kdepim; make install 233 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) install; ) || true
234 cp -r Pim $(QPEDIR)/apps 234 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) install; ) || true
235 cp db2file/db2file $(QPEDIR)/bin/db2file 235 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) install; ) || true
236 chmod ugo+x $(QPEDIR)/bin/db2file 236 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) install; ) || true
237 cp korganizer/korganizer.desktop $(QPEDIR)/apps/Pim/korganizer.desktop 237 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) install; ) || true
238 cp kaddressbook/kaddressbook.desktop $(QPEDIR)/apps/Pim/kaddressbook.desktop 238 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) install; ) || true
239 cp kmicromail/kmicromail.desktop $(QPEDIR)/apps/Pim/kopiemail.desktop 239 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) install; ) || true
240 cp pwmanager/pwmanager/pwmanager.desktop $(QPEDIR)/apps/Pim/pwmanager.desktop 240 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) install; ) || true
241 241 ( [ -d kabc/plugins/qtopia ] && cd kabc/plugins/qtopia ; $(MAKE) -f $(MAKEFILE) install; ) || true
242dist: 242 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) install; ) || true
243 @echo Dont forget to do "make install" before "make dist" 243 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) install; ) || true
244 rm -f *arm.ipk 244 ( [ -d libetpan ] && cd libetpan ; $(MAKE) -f $(MAKEFILE) install; ) || true
245 rm -f *ipk.zip 245 ( [ -d kmicromail/libmailwrapper ] && cd kmicromail/libmailwrapper ; $(MAKE) -f $(MAKEFILE) install; ) || true
246 rm -rf ../kdepimpi_$(KDEPIM_VERSION)/* 246 ( [ -d kmicromail ] && cd kmicromail ; $(MAKE) -f $(MAKEFILE) install; ) || true
247 rm -f *~ 247 ( [ -d pwmanager/libcrypt/cipher ] && cd pwmanager/libcrypt/cipher ; $(MAKE) -f $(MAKEFILE) install; ) || true
248 cd ..;mkdir -p kdepimpi_$(KDEPIM_VERSION) 248 ( [ -d pwmanager/libcrypt/error ] && cd pwmanager/libcrypt/error ; $(MAKE) -f $(MAKEFILE) install; ) || true
249 cd ../kdepimpi_$(KDEPIM_VERSION);mkdir -p ipk 249 ( [ -d pwmanager/libcrypt/mpi ] && cd pwmanager/libcrypt/mpi ; $(MAKE) -f $(MAKEFILE) install; ) || true
250 cd ..; tar czf kdepimpi-$(KDEPIM_VERSION).tar.gz --exclude=obj --exclude=moc --exclude=CVS --exclude=Makefilezaurus --exclude=Makefileqtopia kdepim 250 ( [ -d pwmanager/libcrypt/zlib ] && cd pwmanager/libcrypt/zlib ; $(MAKE) -f $(MAKEFILE) install; ) || true
251 mkipks kmicrokdelibs.control 251 ( [ -d pwmanager/pwmanager ] && cd pwmanager/pwmanager ; $(MAKE) -f $(MAKEFILE) install; ) || true
252 mkipks korganizer.control 252distclean: qmake_all FORCE
253 mkipks kaddressbook.control 253 ( [ -d libical ] && cd libical ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
254 ifndef BUILD_NO_MICROMAIL 254 ( [ -d libkcal ] && cd libkcal ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
255 mkipks kopiemail.control 255 ( [ -d kabc ] && cd kabc ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
256 endif 256 ( [ -d libkdepim ] && cd libkdepim ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
257 ifndef BUILD_NO_SHARP_PLUGIN 257 ( [ -d microkde ] && cd microkde ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
258 mkipks ksharpPIM-DTMaccess.control 258 ( [ -d korganizer ] && cd korganizer ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
259 endif 259 ( [ -d kaddressbook ] && cd kaddressbook ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
260 mkipks korganizer-alarm.control 260 ( [ -d kabc/plugins/file ] && cd kabc/plugins/file ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
261 ifndef BUILD_NO_GAMMU 261 ( [ -d kabc/plugins/dir ] && cd kabc/plugins/dir ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
262 mkipks kmobilephoneaccess.control 262 ( [ -d kabc/plugins/qtopia ] && cd kabc/plugins/qtopia ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
263 endif 263 ( [ -d gammu/emb/common ] && cd gammu/emb/common ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
264 ifndef BUILD_NO_PWMANAGER 264 ( [ -d gammu/emb/gammu ] && cd gammu/emb/gammu ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
265 mkipks pwmanager.control 265 ( [ -d libetpan ] && cd libetpan ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
266 endif 266 ( [ -d kmicromail/libmailwrapper ] && cd kmicromail/libmailwrapper ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
267 mkipks pimTABicon.control 267 ( [ -d kmicromail ] && cd kmicromail ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
268 zip kdepim_$(KDEPIM_VERSION)_for_SharpRom.ipk.zip *.ipk ReleaseNotes.txt 268 ( [ -d pwmanager/libcrypt/cipher ] && cd pwmanager/libcrypt/cipher ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
269 mv *.ipk ../kdepimpi_$(KDEPIM_VERSION)/ipk/ 269 ( [ -d pwmanager/libcrypt/error ] && cd pwmanager/libcrypt/error ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
270 mv *for_SharpRom.ipk.zip ../kdepimpi_$(KDEPIM_VERSION)/ 270 ( [ -d pwmanager/libcrypt/mpi ] && cd pwmanager/libcrypt/mpi ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
271 mv ../kdepimpi-$(KDEPIM_VERSION).tar.gz ../kdepimpi_$(KDEPIM_VERSION)/ 271 ( [ -d pwmanager/libcrypt/zlib ] && cd pwmanager/libcrypt/zlib ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
272 272 ( [ -d pwmanager/pwmanager ] && cd pwmanager/pwmanager ; $(MAKE) -f $(MAKEFILE) $@; $(DEL_FILE) $(MAKEFILE); ) || true
273tmake: objects \ 273
274 qtcompat/Makefile$(PLATFORM) \ 274install: install_subdirs
275 microkde/Makefile$(PLATFORM) \ 275
276 libkcal/Makefile$(PLATFORM) \ 276uninstall: uninstall_subdirs
277 libkdepim/Makefile$(PLATFORM) \ 277
278 korganizer/Makefile$(PLATFORM) \ 278FORCE:
279 kalarmd/Makefile$(PLATFORM) \
280 libical/src/libical/Makefile$(PLATFORM) \
281 libical/src/libicalss/Makefile$(PLATFORM) \
282 kabc/Makefile$(PLATFORM) \
283 kabc/formats/binary/Makefile$(PLATFORM) \
284 kabc/plugins/file/Makefile$(PLATFORM) \
285 kabc/plugins/dir/Makefile$(PLATFORM) \
286 kabc/plugins/ldap/Makefile$(PLATFORM) \
287 kabc/plugins/opie/Makefile$(PLATFORM) \
288 kabc/plugins/qtopia/Makefile$(PLATFORM) \
289 kabc/plugins/sharpdtm/Makefile$(PLATFORM) \
290 kaddressbook/Makefile$(PLATFORM) \
291 kmicromail/Makefile$(PLATFORM) \
292 libetpan/Makefile$(PLATFORM) \
293 kmicromail/libmailwrapper/Makefile$(PLATFORM) \
294 gammu/emb/common/Makefile$(PLATFORM) \
295 gammu/emb/gammu/Makefile$(PLATFORM) \
296 pwmanager/pwmanager/Makefile$(PLATFORM) \
297 pwmanager/libcrypt/mpi/Makefile$(PLATFORM) \
298 pwmanager/libcrypt/error/Makefile$(PLATFORM) \
299 pwmanager/libcrypt/cipher/Makefile$(PLATFORM) \
300 pwmanager/libcrypt/zlib/Makefile$(PLATFORM)
301
302qtcompat/Makefile$(PLATFORM): qtcompat/qtcompat.pro
303 cd qtcompat; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtcompat.pro -o Makefile$(PLATFORM)
304
305microkde/Makefile$(PLATFORM): microkde/microkdeE.pro
306 cd microkde; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" microkdeE.pro -o Makefile$(PLATFORM)
307
308libkcal/Makefile$(PLATFORM): libkcal/libkcalE.pro
309 cd libkcal; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkcalE.pro -o Makefile$(PLATFORM)
310
311
312libkdepim/Makefile$(PLATFORM): libkdepim/libkdepimE.pro
313 cd libkdepim; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libkdepimE.pro -o Makefile$(PLATFORM)
314
315kalarmd/Makefile$(PLATFORM): kalarmd/kalarmdE.pro
316 cd kalarmd; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kalarmdE.pro -o Makefile$(PLATFORM)
317
318korganizer/Makefile$(PLATFORM): korganizer/korganizerE.pro
319 cd korganizer; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" korganizerE.pro -o Makefile$(PLATFORM)
320
321libical/src/libical/Makefile$(PLATFORM): libical/src/libical/libicalE.pro
322 cd libical/src/libical; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalE.pro -o Makefile$(PLATFORM)
323
324libical/src/libicalss/Makefile$(PLATFORM): libical/src/libicalss/libicalssE.pro
325 cd libical/src/libicalss; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libicalssE.pro -o Makefile$(PLATFORM)
326
327kabc/Makefile$(PLATFORM): kabc/kabcE.pro
328 cd kabc; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcE.pro -o Makefile$(PLATFORM)
329
330kabc/formats/binary/Makefile$(PLATFORM): kabc/formats/binary/kabcformat_binaryE.pro
331 cd kabc/formats/binary; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kabcformat_binaryE.pro -o Makefile$(PLATFORM)
332
333kabc/plugins/file/Makefile$(PLATFORM): kabc/plugins/file/fileE.pro
334 cd kabc/plugins/file; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" fileE.pro -o Makefile$(PLATFORM)
335
336kabc/plugins/dir/Makefile$(PLATFORM): kabc/plugins/dir/dirE.pro
337 cd kabc/plugins/dir; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" dirE.pro -o Makefile$(PLATFORM)
338
339kabc/plugins/ldap/Makefile$(PLATFORM): kabc/plugins/ldap/ldapE.pro
340 cd kabc/plugins/ldap; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" ldapE.pro -o Makefile$(PLATFORM)
341
342kabc/plugins/opie/Makefile$(PLATFORM): kabc/plugins/opie/opieE.pro
343 cd kabc/plugins/opie; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" opieE.pro -o Makefile$(PLATFORM)
344
345kabc/plugins/qtopia/Makefile$(PLATFORM): kabc/plugins/qtopia/qtopiaE.pro
346 cd kabc/plugins/qtopia; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" qtopiaE.pro -o Makefile$(PLATFORM)
347
348kabc/plugins/sharpdtm/Makefile$(PLATFORM): kabc/plugins/sharpdtm/sharpdtmE.pro
349 cd kabc/plugins/sharpdtm; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" sharpdtmE.pro -o Makefile$(PLATFORM)
350
351kaddressbook/Makefile$(PLATFORM): kaddressbook/kaddressbookE.pro
352 cd kaddressbook; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kaddressbookE.pro -o Makefile$(PLATFORM)
353
354kmicromail/Makefile$(PLATFORM): kmicromail/kmicromailE.pro
355 cd kmicromail; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" kmicromailE.pro -o Makefile$(PLATFORM)
356
357libetpan/Makefile$(PLATFORM): libetpan/libetpanE.pro
358 cd libetpan; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libetpanE.pro -o Makefile$(PLATFORM)
359
360kmicromail/libmailwrapper/Makefile$(PLATFORM): kmicromail/libmailwrapper/libmailwrapperE.pro
361 cd kmicromail/libmailwrapper; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" libmailwrapperE.pro -o Makefile$(PLATFORM)
362
363gammu/emb/common/Makefile$(PLATFORM): gammu/emb/common/commonE.pro
364 cd gammu/emb/common; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" commonE.pro -o Makefile$(PLATFORM)
365
366gammu/emb/gammu/Makefile$(PLATFORM): gammu/emb/gammu/gammuE.pro
367 cd gammu/emb/gammu; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" gammuE.pro -o Makefile$(PLATFORM)
368
369pwmanager/pwmanager/Makefile$(PLATFORM): pwmanager/pwmanager/pwmanagerE.pro
370 cd pwmanager/pwmanager; tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" pwmanagerE.pro -o Makefile$(PLATFORM)
371
372
373pwmanager/libcrypt/mpi/Makefile$(PLATFORM): pwmanager/libcrypt/mpi/mpi.pro
374 cd pwmanager/libcrypt/mpi;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" mpi.pro -o Makefile$(PLATFORM)
375
376pwmanager/libcrypt/error/Makefile$(PLATFORM): pwmanager/libcrypt/error/error.pro
377 cd pwmanager/libcrypt/error;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" error.pro -o Makefile$(PLATFORM)
378
379pwmanager/libcrypt/cipher/Makefile$(PLATFORM): pwmanager/libcrypt/cipher/cipher.pro
380 cd pwmanager/libcrypt/cipher;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" cipher.pro -o Makefile$(PLATFORM)
381
382pwmanager/libcrypt/zlib/Makefile$(PLATFORM): pwmanager/libcrypt/zlib/zlib.pro
383 cd pwmanager/libcrypt/zlib;tmake "CONFIG+=$(RELEASE_DEBUG)" "VERSION=$(KDEPIM_VERSION)" zlib.pro -o Makefile$(PLATFORM)
384
385 279
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 546c32e..c6e6d9b 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -810,518 +810,522 @@
810{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" }, 810{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" },
811{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" }, 811{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" },
812{ "Features + hints...","Eigenschaften + Tipps..." }, 812{ "Features + hints...","Eigenschaften + Tipps..." },
813{ "User translation...","Benutzer Übersetzung..." }, 813{ "User translation...","Benutzer Übersetzung..." },
814{ "Sync HowTo...","Synchronisation HowTo..." }, 814{ "Sync HowTo...","Synchronisation HowTo..." },
815{ "Print calendar...","Drucke Kalender..." }, 815{ "Print calendar...","Drucke Kalender..." },
816{ "Anniversary","Jahrestag" }, 816{ "Anniversary","Jahrestag" },
817{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" }, 817{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" },
818{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" }, 818{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" },
819{ "Next recurrence is on: ","Nächste Wiederholung ist am:" }, 819{ "Next recurrence is on: ","Nächste Wiederholung ist am:" },
820{ "<b>Alarm on: </b>","<b>Alarm am: </b>" }, 820{ "<b>Alarm on: </b>","<b>Alarm am: </b>" },
821{ "<b>Access: </b>","<b>Zugriff: </b>" }, 821{ "<b>Access: </b>","<b>Zugriff: </b>" },
822{ "(%1 min before)","(%1 min vorher)" }, 822{ "(%1 min before)","(%1 min vorher)" },
823{ "<b>Categories: </b>","<b>Kategorien: </b>" }, 823{ "<b>Categories: </b>","<b>Kategorien: </b>" },
824{ "Save Journal/Description...","Speichere Journal/Details..." }, 824{ "Save Journal/Description...","Speichere Journal/Details..." },
825{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." }, 825{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." },
826{ "Continue","Weitermachen" }, 826{ "Continue","Weitermachen" },
827{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" }, 827{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" },
828{ "Attendee:","Teilnehmer:" }, 828{ "Attendee:","Teilnehmer:" },
829{ "Click OK to search ->","Klicke zum Suchen auf OK ->" }, 829{ "Click OK to search ->","Klicke zum Suchen auf OK ->" },
830{ "On day ","Am Tag " }, 830{ "On day ","Am Tag " },
831{ "%1 of ","%1 des Monats" }, 831{ "%1 of ","%1 des Monats" },
832{ "%1 of the year","%1 des Jahres" }, 832{ "%1 of the year","%1 des Jahres" },
833{ "Anonymous","Anonymo" }, 833{ "Anonymous","Anonymo" },
834{ "nobody@nowhere","niemand@nirgendwo" }, 834{ "nobody@nowhere","niemand@nirgendwo" },
835{ "calendar.html","calendar.html" }, 835{ "calendar.html","calendar.html" },
836{ " Local Time"," Locale Zeit" }, 836{ " Local Time"," Locale Zeit" },
837{ "Unknown Name","Unbekannter Name" }, 837{ "Unknown Name","Unbekannter Name" },
838{ "unknown@nowhere","unbekannt@nirgendwo" }, 838{ "unknown@nowhere","unbekannt@nirgendwo" },
839{ "Beam via IR!","Beam via IR!" }, 839{ "Beam via IR!","Beam via IR!" },
840{ "Next Month","Nächster Monat" }, 840{ "Next Month","Nächster Monat" },
841{ "Prio","Prio" }, 841{ "Prio","Prio" },
842{ "Reparent Todo","Mache Sub-Todo" }, 842{ "Reparent Todo","Mache Sub-Todo" },
843{ "tomorrow","morgen" }, 843{ "tomorrow","morgen" },
844{ "today","heute" }, 844{ "today","heute" },
845{ "yesterday","gestern" }, 845{ "yesterday","gestern" },
846{ "Ok","Ok" }, 846{ "Ok","Ok" },
847{ "Ok+Agenda","Ok+Agenda" }, 847{ "Ok+Agenda","Ok+Agenda" },
848{ "Email","Email" }, 848{ "Email","Email" },
849{ "RSVP","RSVP" }, 849{ "RSVP","RSVP" },
850{ "Email:","Email:" }, 850{ "Email:","Email:" },
851{ "Appointment Time ","Termin Zeit " }, 851{ "Appointment Time ","Termin Zeit " },
852{ "2","2" }, 852{ "2","2" },
853{ "3","3" }, 853{ "3","3" },
854{ "4","4" }, 854{ "4","4" },
855{ " 0 %"," 0 %" }, 855{ " 0 %"," 0 %" },
856{ " 20 %"," 20 %" }, 856{ " 20 %"," 20 %" },
857{ " 40 %"," 40 %" }, 857{ " 40 %"," 40 %" },
858{ " 60 %"," 60 %" }, 858{ " 60 %"," 60 %" },
859{ " 80 %"," 80 %" }, 859{ " 80 %"," 80 %" },
860{ "100 %","100 %" }, 860{ "100 %","100 %" },
861{ "Filter","Filter" }, 861{ "Filter","Filter" },
862{ "Configure","Konfiguriere" }, 862{ "Configure","Konfiguriere" },
863{ "What's Next","What's Next" }, 863{ "What's Next","What's Next" },
864{ "Complete calendar...","Kompletten Kalender..." }, 864{ "Complete calendar...","Kompletten Kalender..." },
865{ "Filtered calendar...","Gefilterten Kalender..." }, 865{ "Filtered calendar...","Gefilterten Kalender..." },
866{ "Export to phone","Exportiere zum Handy" }, 866{ "Export to phone","Exportiere zum Handy" },
867{ "Beam receive enabled","Beam Empfang an" }, 867{ "Beam receive enabled","Beam Empfang an" },
868{ "What's new?","Was ist neu?" }, 868{ "What's new?","Was ist neu?" },
869{ "FAQ...","FAQ..." }, 869{ "FAQ...","FAQ..." },
870{ "Licence...","Licence..." }, 870{ "Licence...","Licence..." },
871{ "What's This?","What's This?" }, 871{ "What's This?","What's This?" },
872{ "&Edit...","&Editiere..." }, 872{ "&Edit...","&Editiere..." },
873{ "Oktober","Oktober" }, 873{ "Oktober","Oktober" },
874{ "Title","Titel" }, 874{ "Title","Titel" },
875{ "%1 %","%1 %" }, 875{ "%1 %","%1 %" },
876{ "Enable Pi-Sync","Schalte Pi-Sync an" }, 876{ "Enable Pi-Sync","Schalte Pi-Sync an" },
877{ "Import!","Importiere!" }, 877{ "Import!","Importiere!" },
878{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" }, 878{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" },
879{ "Export to phone options","Export ans Handy Optionen" }, 879{ "Export to phone options","Export ans Handy Optionen" },
880{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, 880{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." },
881{ "I/O device: ","I/O device: " }, 881{ "I/O device: ","I/O device: " },
882{ "Connection: ","Connection: " }, 882{ "Connection: ","Connection: " },
883{ "Model(opt.): ","Model(opt.): " }, 883{ "Model(opt.): ","Model(opt.): " },
884{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" }, 884{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" },
885{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " }, 885{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " },
886{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nToDo/Kalender Daten auf dem Handy!" }, 886{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nToDo/Kalender Daten auf dem Handy!" },
887{ "Export to mobile phone!","Exportiere auf das Handy!" }, 887{ "Export to mobile phone!","Exportiere auf das Handy!" },
888{ "Export complete calendar","Exportiere kompletten Kalender" }, 888{ "Export complete calendar","Exportiere kompletten Kalender" },
889{ "Writing to phone...","Sende Daten ans Handy..." }, 889{ "Writing to phone...","Sende Daten ans Handy..." },
890{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, 890{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" },
891{ "Retry","Nochmal versuchen" }, 891{ "Retry","Nochmal versuchen" },
892{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, 892{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" },
893{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, 893{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" },
894{ "Error exporting to phone!","Fehler beim Export auf das Handy!" }, 894{ "Error exporting to phone!","Fehler beim Export auf das Handy!" },
895{ "Export filtered calendar","Exportiere gefilterten Kalender" }, 895{ "Export filtered calendar","Exportiere gefilterten Kalender" },
896{ "Preferences","Vorlieben" }, 896{ "Preferences","Vorlieben" },
897{ "Global","Global" }, 897{ "Global","Global" },
898{ "Phone","Phone" }, 898{ "Phone","Phone" },
899{ "SMS","SMS" }, 899{ "SMS","SMS" },
900{ "Fax","Fax" }, 900{ "Fax","Fax" },
901{ "Pager","Pager" }, 901{ "Pager","Pager" },
902{ "SIP","SIP" }, 902{ "SIP","SIP" },
903{ "Italian","Italienisch" }, 903{ "Italian","Italienisch" },
904{ "24:00","24:00" }, 904{ "24:00","24:00" },
905{ "12:00am","12:00am" }, 905{ "12:00am","12:00am" },
906{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 906{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
907{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 907{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
908{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 908{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
909{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 909{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
910{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 910{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
911{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 911{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
912{ "Used Mail Client","Benutzter Mail Client" }, 912{ "Used Mail Client","Benutzter Mail Client" },
913{ "Channel:","Channel:" }, 913{ "Channel:","Channel:" },
914{ "Message:","Message:" }, 914{ "Message:","Message:" },
915{ "Parameters:","Parameter:" }, 915{ "Parameters:","Parameter:" },
916{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 916{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
917{ "extra Message:","extra Message:" }, 917{ "extra Message:","extra Message:" },
918{ "extra Parameters:","extra Parameter:" }, 918{ "extra Parameters:","extra Parameter:" },
919{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 919{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
920{ "External Apps.","Externe Appl." }, 920{ "External Apps.","Externe Appl." },
921{ "24 hours","24 Std." }, 921{ "24 hours","24 Std." },
922{ "3 hours","3 Std." }, 922{ "3 hours","3 Std." },
923{ "1 hour","1 Std." }, 923{ "1 hour","1 Std." },
924{ "15 minutes","15 Min." }, 924{ "15 minutes","15 Min." },
925{ "5 minutes","5 Min." }, 925{ "5 minutes","5 Min." },
926{ "1 minute","1 Min." }, 926{ "1 minute","1 Min." },
927{ "23","23" }, 927{ "23","23" },
928{ "Mon 15","Mon 15" }, 928{ "Mon 15","Mon 15" },
929{ "Configure KO","Konfiguriere KO" }, 929{ "Configure KO","Konfiguriere KO" },
930{ "Event text","Termin Text" }, 930{ "Event text","Termin Text" },
931{ "ToDo","ToDo" }, 931{ "ToDo","ToDo" },
932{ "Today","Heute" }, 932{ "Today","Heute" },
933{ "What's Next View","What's Next Ansicht" }, 933{ "What's Next View","What's Next Ansicht" },
934{ "Show Sync Events in \nWhat's Next/Agenda view","Zeige Sync Termine in \nWhat's Next/Agenda view" }, 934{ "Show Sync Events in \nWhat's Next/Agenda view","Zeige Sync Termine in \nWhat's Next/Agenda view" },
935{ "Use short date in \nWhat's Next/Event view","Zeige Kurzdatum in \nWhat's Next/Event view" }, 935{ "Use short date in \nWhat's Next/Event view","Zeige Kurzdatum in \nWhat's Next/Event view" },
936{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, 936{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" },
937{ "Alarm","Alarm" }, 937{ "Alarm","Alarm" },
938{ "Used %1 Client","Benutzter %1 Client" }, 938{ "Used %1 Client","Benutzter %1 Client" },
939{ "No email client installed","Kein Email Klient installiert" }, 939{ "No email client installed","Kein Email Klient installiert" },
940{ "Userdefined email client","Benutzerdef. Email Klient" }, 940{ "Userdefined email client","Benutzerdef. Email Klient" },
941{ "OM/Pi email client","OM/Pi Email Klient" }, 941{ "OM/Pi email client","OM/Pi Email Klient" },
942{ "Include in multiple ","Beziehe in multiple " }, 942{ "Include in multiple ","Beziehe in multiple " },
943{ "calendar ","Kalender " }, 943{ "calendar ","Kalender " },
944{ "addressbook ","Adressbuch " }, 944{ "addressbook ","Adressbuch " },
945{ "pwmanager","PWmanager" }, 945{ "pwmanager","PWmanager" },
946{ " sync"," Sync ein" }, 946{ " sync"," Sync ein" },
947{ "Write back synced data","Schreibe gesyncte Daten zurück" }, 947{ "Write back synced data","Schreibe gesyncte Daten zurück" },
948{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, 948{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" },
949{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, 949{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" },
950{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, 950{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " },
951{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, 951{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" },
952{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, 952{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" },
953{ "Help...","Hilfe..." }, 953{ "Help...","Hilfe..." },
954{ "Local file Cal:","Lokale Datei Kal:" }, 954{ "Local file Cal:","Lokale Datei Kal:" },
955{ "Local file ABook:","Lokale Datei ABuch:" }, 955{ "Local file ABook:","Lokale Datei ABuch:" },
956{ "Local file PWMgr:","Lokale Datei PWMgr:" }, 956{ "Local file PWMgr:","Lokale Datei PWMgr:" },
957{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, 957{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" },
958{ "Calendar:","Kalender:" }, 958{ "Calendar:","Kalender:" },
959{ "AddressBook:","AdressBuch:" }, 959{ "AddressBook:","AdressBuch:" },
960{ "PWManager:","PWManager:" }, 960{ "PWManager:","PWManager:" },
961{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, 961{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" },
962{ "ssh/scp","ssh/scp" }, 962{ "ssh/scp","ssh/scp" },
963{ "ftp","ftp" }, 963{ "ftp","ftp" },
964{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, 964{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" },
965{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, 965{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" },
966{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, 966{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" },
967{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, 967{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" },
968{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, 968{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" },
969{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, 969{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" },
970{ "KDE-Pim sync config","KDE-Pim sync Konfig" }, 970{ "KDE-Pim sync config","KDE-Pim sync Konfig" },
971{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, 971{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" },
972{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, 972{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" },
973{ "Port number (Default: %1)","Port Nummer (Default: %1)" }, 973{ "Port number (Default: %1)","Port Nummer (Default: %1)" },
974{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, 974{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" },
975{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, 975{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" },
976{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, 976{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" },
977{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, 977{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" },
978{ "Disable Pi-Sync","Schalte Pi-Sync aus" }, 978{ "Disable Pi-Sync","Schalte Pi-Sync aus" },
979{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, 979{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" },
980{ "KDE-Pim Sync","KDE-Pim Sync" }, 980{ "KDE-Pim Sync","KDE-Pim Sync" },
981{ "Multiple profiles","Multi-Sync Profile" }, 981{ "Multiple profiles","Multi-Sync Profile" },
982{ "Device: ","Gerät: " }, 982{ "Device: ","Gerät: " },
983{ "Multiple sync started.","Multi-Sync gestartet." }, 983{ "Multiple sync started.","Multi-Sync gestartet." },
984{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, 984{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" },
985{ "Turn filter on","Schalte Filter an" }, 985{ "Turn filter on","Schalte Filter an" },
986{ "Turn filter off","Schalte Filter aus" }, 986{ "Turn filter off","Schalte Filter aus" },
987{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, 987{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" },
988{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, 988{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" },
989{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, 989{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" },
990{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" }, 990{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" },
991{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" }, 991{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" },
992{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" }, 992{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" },
993{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" }, 993{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" },
994{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" }, 994{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" },
995{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" }, 995{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" },
996{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, 996{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" },
997{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, 997{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" },
998{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" }, 998{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" },
999{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, 999{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" },
1000{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, 1000{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" },
1001{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" }, 1001{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" },
1002{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" }, 1002{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" },
1003{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, 1003{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" },
1004{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" }, 1004{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" },
1005{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, 1005{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" },
1006{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" }, 1006{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" },
1007{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" }, 1007{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" },
1008{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" }, 1008{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" },
1009{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" }, 1009{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" },
1010{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, 1010{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" },
1011{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" }, 1011{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" },
1012{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, 1012{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" },
1013{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, 1013{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" },
1014{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, 1014{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" },
1015{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, 1015{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" },
1016{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, 1016{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" },
1017{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, 1017{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" },
1018{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, 1018{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" },
1019{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, 1019{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" },
1020{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, 1020{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" },
1021{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, 1021{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" },
1022{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, 1022{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" },
1023{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, 1023{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" },
1024{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X</b>: Zeige/verstecke Datumsnavigator</p>\n" }, 1024{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X</b>: Zeige/verstecke Datumsnavigator</p>\n" },
1025{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, 1025{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" },
1026{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, 1026{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" },
1027{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" }, 1027{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" },
1028{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" }, 1028{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" },
1029{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" }, 1029{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" },
1030{ "<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ","<p><b>N</b>: Nächste-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " }, 1030{ "<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ","<p><b>N</b>: Nächste-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " },
1031{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" }, 1031{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" },
1032{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" }, 1032{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" },
1033{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" }, 1033{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" },
1034{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" }, 1034{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" },
1035{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" }, 1035{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" },
1036{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" }, 1036{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" },
1037{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, 1037{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" },
1038{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" }, 1038{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" },
1039{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, 1039{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" },
1040{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, 1040{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" },
1041{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, 1041{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" },
1042{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" }, 1042{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" },
1043{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" }, 1043{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" },
1044{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" }, 1044{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" },
1045{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" }, 1045{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" },
1046{ "KO/Pi FAQ","KO/Pi FAQ" }, 1046{ "KO/Pi FAQ","KO/Pi FAQ" },
1047{ "PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n","PDA-Edition\nfür: Zaurus 5x00/7x0/860/3000/6000\n" }, 1047{ "PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n","PDA-Edition\nfür: Zaurus 5x00/7x0/860/3000/6000\n" },
1048{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" }, 1048{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" },
1049{ "About KOrganizer/Pi","Über KOrganizer/Pi" }, 1049{ "About KOrganizer/Pi","Über KOrganizer/Pi" },
1050{ "From: ","Von: " }, 1050{ "From: ","Von: " },
1051{ "Remove sync info","Entferne Sync Info" }, 1051{ "Remove sync info","Entferne Sync Info" },
1052{ "For all profiles","Für alle Profile" }, 1052{ "For all profiles","Für alle Profile" },
1053{ "Hide not Running","Verstecke nicht Laufende" }, 1053{ "Hide not Running","Verstecke nicht Laufende" },
1054{ "ME","ME" }, 1054{ "ME","ME" },
1055{ "Toolbar","Toolbar" }, 1055{ "Toolbar","Toolbar" },
1056{ "Undo Delete...","Löschen rückgängig machen..." }, 1056{ "Undo Delete...","Löschen rückgängig machen..." },
1057{ "Undo Delete","Löschen rückgängig machen" }, 1057{ "Undo Delete","Löschen rückgängig machen" },
1058{ "KDE Sync HowTo...","KDE Sync HowTo..." }, 1058{ "KDE Sync HowTo...","KDE Sync HowTo..." },
1059{ "Multi Sync HowTo...","Multi Sync HowTo..." }, 1059{ "Multi Sync HowTo...","Multi Sync HowTo..." },
1060{ "Januar","Januar" }, 1060{ "Januar","Januar" },
1061{ "KO/Pi Keys + Colors","KO/Pi Tasten + Farben" }, 1061{ "KO/Pi Keys + Colors","KO/Pi Tasten + Farben" },
1062{ "No Filter","Kein Filter" }, 1062{ "No Filter","Kein Filter" },
1063{ "Multiple Sync options","Multi Sync Optionen" }, 1063{ "Multiple Sync options","Multi Sync Optionen" },
1064{ "Sync algo options","Sync Ablauf Optionen" }, 1064{ "Sync algo options","Sync Ablauf Optionen" },
1065{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" }, 1065{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" },
1066{ "Incoming calendar filter:","Eingehender Kalender Filter:" }, 1066{ "Incoming calendar filter:","Eingehender Kalender Filter:" },
1067{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" }, 1067{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" },
1068{ "Write back options","Optionen zum Zurückschreiben" }, 1068{ "Write back options","Optionen zum Zurückschreiben" },
1069{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" }, 1069{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" },
1070{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" }, 1070{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" },
1071{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" }, 1071{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" },
1072{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" }, 1072{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" },
1073{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" }, 1073{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" },
1074{ "Time period","Zeitspanne" }, 1074{ "Time period","Zeitspanne" },
1075{ "From ","Von " }, 1075{ "From ","Von " },
1076{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " }, 1076{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " },
1077{ " weeks in the future "," Wochen in der Zukunft " }, 1077{ " weeks in the future "," Wochen in der Zukunft " },
1078{ "Profile kind specific settings","Profil Art abhängige Einstellungen" }, 1078{ "Profile kind specific settings","Profil Art abhängige Einstellungen" },
1079{ "Local temp file:","Lokale temp Datei:" }, 1079{ "Local temp file:","Lokale temp Datei:" },
1080{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" }, 1080{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" },
1081{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" }, 1081{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" },
1082{ "Language","Sprache" }, 1082{ "Language","Sprache" },
1083{ "Time Format","Zeit Format" }, 1083{ "Time Format","Zeit Format" },
1084{ "Time Zone","Zeit Zone" }, 1084{ "Time Zone","Zeit Zone" },
1085{ "%1 groups subscribed","%1 Guppen abboniert" }, 1085{ "%1 groups subscribed","%1 Guppen abboniert" },
1086{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Aktuelles Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverz.)/apps/kopiemail/localmail" }, 1086{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Aktuelles Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverz.)/apps/kopiemail/localmail" },
1087{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" }, 1087{ "<b>New data storage dir:</b>","<b>Neues Datenspeicherverzeichnis:</b>" },
1088{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" }, 1088{ "New dirs are created automatically","Neue Verzeichnisse werden aut. erstellt" },
1089{ "Save settings","Speichere Einstellungen" }, 1089{ "Save settings","Speichere Einstellungen" },
1090{ "Save standard","Speichere Standard" }, 1090{ "Save standard","Speichere Standard" },
1091{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" }, 1091{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" },
1092{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" }, 1092{ "Settings are stored in\n%1","Einstellungen werden gespeichert in:\n%1" },
1093{ "Data storage path","Daten Speicherpfad" }, 1093{ "Data storage path","Daten Speicherpfad" },
1094{ "Language","Sprache" }, 1094{ "Language","Sprache" },
1095{ "Show time in agenda items","Zeige Zeit in Agenda Items" }, 1095{ "Show time in agenda items","Zeige Zeit in Agenda Items" },
1096{ "Color for Sundays + category "Holiday"","Farbe für Sonntags + Kategorie "Feiertag"" }, 1096{ "Color for Sundays + category "Holiday"","Farbe für Sonntags + Kategorie "Feiertag"" },
1097{ "Show events, that are done in \nWhat's Next view","Zeige abgelaufene Termine in\nWhat's Next Ansicht" }, 1097{ "Show events, that are done in \nWhat's Next view","Zeige abgelaufene Termine in\nWhat's Next Ansicht" },
1098{ "Hide not running Todos in To-do view","Verstecke nicht laufende Todos" }, 1098{ "Hide not running Todos in To-do view","Verstecke nicht laufende Todos" },
1099{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" }, 1099{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" },
1100{ "KO/Pi","KO/Pi" }, 1100{ "KO/Pi","KO/Pi" },
1101{ "There is nothing to undo!","Es gibt nichts zum\nRückgängigmachen!" }, 1101{ "There is nothing to undo!","Es gibt nichts zum\nRückgängigmachen!" },
1102{ "Recreating edit dialog. Please wait...","Recreating edit dialog. Please wait..." }, 1102{ "Recreating edit dialog. Please wait...","Recreating edit dialog. Please wait..." },
1103{ "Sound.Al.: ","Sound.Al.: " }, 1103{ "Sound.Al.: ","Sound.Al.: " },
1104{ "From: %1 To: %2 %3","Von: %1 Bis: %2 %3" }, 1104{ "From: %1 To: %2 %3","Von: %1 Bis: %2 %3" },
1105{ "Restore","Wiederherstellen" }, 1105{ "Restore","Wiederherstellen" },
1106{ "\nAre you sure you want\nto restore this?","\nMöchten Sie das wirklicht\nwiederherstellen?" }, 1106{ "\nAre you sure you want\nto restore this?","\nMöchten Sie das wirklicht\nwiederherstellen?" },
1107{ "% completed","% erledigt" }, 1107{ "% completed","% erledigt" },
1108{ "%d item(s) found.","%d Item(s) gefunden." }, 1108{ "%d item(s) found.","%d Item(s) gefunden." },
1109{ "Set complete","Setze auf erledigt" }, 1109{ "Set complete","Setze auf erledigt" },
1110{ "(cancelled)","(gecancelt)" }, 1110{ "(cancelled)","(gecancelt)" },
1111{ "Click on the week number to\nshow week in agenda view","Klicke auf die Wochennummer\num die Woche in der Agenda anzuzeigen" }, 1111{ "Click on the week number to\nshow week in agenda view","Klicke auf die Wochennummer\num die Woche in der Agenda anzuzeigen" },
1112{ " Local time "," Locale Zeit " }, 1112{ " Local time "," Locale Zeit " },
1113{ "Form2","Form2" }, 1113{ "Form2","Form2" },
1114{ "Filter enabled","Filter angeschaltet" }, 1114{ "Filter enabled","Filter angeschaltet" },
1115{ "Edit Filters","Ändere Filter" }, 1115{ "Edit Filters","Ändere Filter" },
1116{ "Print What's Next View...","Drucke What's Next Ansicht..." }, 1116{ "Print What's Next View...","Drucke What's Next Ansicht..." },
1117{ "Agenda","Agenda" }, 1117{ "Agenda","Agenda" },
1118{ " ("," (" }, 1118{ " ("," (" },
1119{ "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" }, 1119{ "<p><b>Due on:</b> %1</p>","<p><b>Fällig am:</b> %1</p>" },
1120{ "Print","Print" }, 1120{ "Print","Print" },
1121{ "&Setup Printer...","Drucker &Setup..." }, 1121{ "&Setup Printer...","Drucker &Setup..." },
1122{ "View Type","Zeige Typ" }, 1122{ "View Type","Zeige Typ" },
1123{ "Page &orientation:","Seiten Ausrichtung:" }, 1123{ "Page &orientation:","Seiten Ausrichtung:" },
1124{ "Use Default of Selected Style","Default des selektierten Stils" }, 1124{ "Use Default of Selected Style","Default des selektierten Stils" },
1125{ "Use Default Setting of Printer","Default Einstellung des Druckers" }, 1125{ "Use Default Setting of Printer","Default Einstellung des Druckers" },
1126{ "Portrait","Portrait" }, 1126{ "Portrait","Portrait" },
1127{ "Landscape","Landschaft" }, 1127{ "Landscape","Landschaft" },
1128{ "Print day","Drucke Tag" }, 1128{ "Print day","Drucke Tag" },
1129{ "CalPrintDay_Base","CalPrintDay_Base" }, 1129{ "CalPrintDay_Base","CalPrintDay_Base" },
1130{ "Date && Time Range","Datum && Zeitspanne" }, 1130{ "Date && Time Range","Datum && Zeitspanne" },
1131{ "&End date:","&Enddatum:" }, 1131{ "&End date:","&Enddatum:" },
1132{ "&Start date:","&Startdatum:" }, 1132{ "&Start date:","&Startdatum:" },
1133{ "Start &time:","Startzeit:" }, 1133{ "Start &time:","Startzeit:" },
1134{ "End ti&me:","Endzeit:" }, 1134{ "End ti&me:","Endzeit:" },
1135{ "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" }, 1135{ "E&xtend time range to include all events","Erweitere Zeitspanne um alle Termine einzuschliessen" },
1136{ "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" }, 1136{ "Include to&dos that are due on the printed day(s)","Inclusive To&dos, die an den selektierten Tagen fällig sind" },
1137{ "Alt+D","Alt+D" }, 1137{ "Alt+D","Alt+D" },
1138{ "&Use colors","Nutze Farben" }, 1138{ "&Use colors","Nutze Farben" },
1139{ "Alt+U","Alt+U" }, 1139{ "Alt+U","Alt+U" },
1140{ "Print week","Drucke Woche" }, 1140{ "Print week","Drucke Woche" },
1141{ "CalPrintWeek_Base","CalPrintWeek_Base" }, 1141{ "CalPrintWeek_Base","CalPrintWeek_Base" },
1142{ "Use &colors","Nutze Farben" }, 1142{ "Use &colors","Nutze Farben" },
1143{ "Type of View","Typ der Ansicht" }, 1143{ "Type of View","Typ der Ansicht" },
1144{ "Print as &Filofax page","Drucke als &Filofax Seite" }, 1144{ "Print as &Filofax page","Drucke als &Filofax Seite" },
1145{ "Alt+F","Alt+F" }, 1145{ "Alt+F","Alt+F" },
1146{ "Print as &timetable view:","Drucke als Zeittabelle:" }, 1146{ "Print as &timetable view:","Drucke als Zeittabelle:" },
1147{ "Alt+T","Alt+T" }, 1147{ "Alt+T","Alt+T" },
1148{ "Print as split week view","Drucke als gesplittete Wochenansicht" }, 1148{ "Print as split week view","Drucke als gesplittete Wochenansicht" },
1149{ "Print month","Drucke Monat" }, 1149{ "Print month","Drucke Monat" },
1150{ "CalPrintMonth_Base","CalPrintMonth_Base" }, 1150{ "CalPrintMonth_Base","CalPrintMonth_Base" },
1151{ "&Start month:","&Startmonat:" }, 1151{ "&Start month:","&Startmonat:" },
1152{ "&End month:","&Endmonat:" }, 1152{ "&End month:","&Endmonat:" },
1153{ "Print week &numbers","Drucke Wochen Nummer(n)" }, 1153{ "Print week &numbers","Drucke Wochen Nummer(n)" },
1154{ "Print todos","Drucke Todos" }, 1154{ "Print todos","Drucke Todos" },
1155{ "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" }, 1155{ "CalPrintTodoConfig_Base","CalPrintTodoConfig_Base" },
1156{ "Include &description of the item","Inclusive Itembeschreibung" }, 1156{ "Include &description of the item","Inclusive Itembeschreibung" },
1157{ "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" }, 1157{ "Include d&ue date of the item","Inclusive Fälligkeitsdatum des Items" },
1158{ "Include &priority of the item","Inclusive Priorität des Items" }, 1158{ "Include &priority of the item","Inclusive Priorität des Items" },
1159{ "Items to Print","Zu druckende Items" }, 1159{ "Items to Print","Zu druckende Items" },
1160{ "&From:","Von:" }, 1160{ "&From:","Von:" },
1161{ "&To:","Bis:" }, 1161{ "&To:","Bis:" },
1162{ "Print &all todo items","Drucke alle Todo Items" }, 1162{ "Print &all todo items","Drucke alle Todo Items" },
1163{ "Print only &uncompleted items","Drucke nur nicht erledigte Todos" }, 1163{ "Print only &uncompleted items","Drucke nur nicht erledigte Todos" },
1164{ "Only items due in the &range:","Nur Items in dem Zeitraum:" }, 1164{ "Only items due in the &range:","Nur Items in dem Zeitraum:" },
1165{ "Todo List","Todo Liste" }, 1165{ "Todo List","Todo Liste" },
1166{ "&Title:","&Titel:" }, 1166{ "&Title:","&Titel:" },
1167{ "Co&nnect subtodos with its parent","Verbinde Unter-Todos mit ihren Ober-Todos" }, 1167{ "Co&nnect subtodos with its parent","Verbinde Unter-Todos mit ihren Ober-Todos" },
1168{ "Todo list","Todo Liste" }, 1168{ "Todo list","Todo Liste" },
1169{ "&Print...","Drucke..." }, 1169{ "&Print...","Drucke..." },
1170{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" }, 1170{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" },
1171{ "[Unconfigured]","[Unkonfiguriert]" }, 1171{ "[Unconfigured]","[Unkonfiguriert]" },
1172{ "OK","OK" }, 1172{ "OK","OK" },
1173{ "FilterEditor","FilterEditor" }, 1173{ "FilterEditor","FilterEditor" },
1174{ "Include","Inclusive" }, 1174{ "Include","Inclusive" },
1175{ "Exclude","Exclusive" }, 1175{ "Exclude","Exclusive" },
1176{ "Edit Selection...","Editiere Auswahl" }, 1176{ "Edit Selection...","Editiere Auswahl" },
1177{ "recurring events","wiederholende Termine" }, 1177{ "recurring events","wiederholende Termine" },
1178{ "recurr. events","wiederh.Termine" }, 1178{ "recurr. events","wiederh.Termine" },
1179{ "completed to-dos","erledigte Todos" }, 1179{ "completed to-dos","erledigte Todos" },
1180{ "events","Termine" }, 1180{ "events","Termine" },
1181{ "todos","Todos" }, 1181{ "todos","Todos" },
1182{ "journals","Journale" }, 1182{ "journals","Journale" },
1183{ "public","öffentl." }, 1183{ "public","öffentl." },
1184{ "private","privat" }, 1184{ "private","privat" },
1185{ "confidential","vertraul." }, 1185{ "confidential","vertraul." },
1186{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Unter-Todos.\nAlle erledigten Unter-Todos\nwerden auch gelöscht!" }, 1186{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Unter-Todos.\nAlle erledigten Unter-Todos\nwerden auch gelöscht!" },
1187{ "Yesterday","Gestern" }, 1187{ "Yesterday","Gestern" },
1188{ "Day after tomorrow","Übermorgen" }, 1188{ "Day after tomorrow","Übermorgen" },
1189{ "Tomorrow","Morgen" }, 1189{ "Tomorrow","Morgen" },
1190{ "Day before yesterday","Vorgestern" }, 1190{ "Day before yesterday","Vorgestern" },
1191{ "Size %1","Größe %1" }, 1191{ "Size %1","Größe %1" },
1192{ "New Agendasize: %1","Neue Agendagröße: %1" }, 1192{ "New Agendasize: %1","Neue Agendagröße: %1" },
1193{ " (%1 y.)"," (%1 J.)" }, 1193{ " (%1 y.)"," (%1 J.)" },
1194{ "Allday:","Ganztägig:" }, 1194{ "Allday:","Ganztägig:" },
1195{ "compl.todos","erled.Todos" }, 1195{ "compl.todos","erled.Todos" },
1196{ "Day view","Tagesansicht" }, 1196{ "Day view","Tagesansicht" },
1197{ "Next days","Nächste Tage" }, 1197{ "Next days","Nächste Tage" },
1198{ "Next week","Nächste Woche" }, 1198{ "Next week","Nächste Woche" },
1199{ "Next two weeks","Nächste zwei Wochen" }, 1199{ "Next two weeks","Nächste zwei Wochen" },
1200{ "Next month","Nächster Monat" }, 1200{ "Next month","Nächster Monat" },
1201{ "Journal view","Journal" }, 1201{ "Journal view","Journal" },
1202{ "Display all opened","Zeige alle geöffnet" }, 1202{ "Display all opened","Zeige alle geöffnet" },
1203{ "Display all closed","Zeige alle geschlossen" }, 1203{ "Display all closed","Zeige alle geschlossen" },
1204{ "Display all flat","Zeige alle flach" }, 1204{ "Display all flat","Zeige alle flach" },
1205{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, 1205{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" },
1206{ "Default todo done color:","Standard Todo erledigt Farbe" }, 1206{ "Default todo done color:","Standard Todo erledigt Farbe" },
1207{ "Select week %1-%2","Wähle Woche %1-%2" }, 1207{ "Select week %1-%2","Wähle Woche %1-%2" },
1208{ "Select Week","Wähle Woche" }, 1208{ "Select Week","Wähle Woche" },
1209{ "Set alarm for selected...","Setze Alarm für Selekt..." }, 1209{ "Set alarm for selected...","Setze Alarm für Selekt..." },
1210{ "Set Alarm!","Setze Alarm!" }, 1210{ "Set Alarm!","Setze Alarm!" },
1211{ "Canged alarm for %1 items","Alarm für %1 Items geändert" }, 1211{ "Canged alarm for %1 items","Alarm für %1 Items geändert" },
1212{ " and "," und " }, 1212{ " and "," und " },
1213{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, 1213{ "<IMG src="%1"> only )","nur <IMG src="%1"> )" },
1214{ "Mail to selected","Mail an Ausgewählte" }, 1214{ "Mail to selected","Mail an Ausgewählte" },
1215{ "Mail to all","Mail an Alle" }, 1215{ "Mail to all","Mail an Alle" },
1216{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, 1216{ "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" },
1217{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, 1217{ "Set reminder ON with offset to:","Alarm AN mit Offset auf:" },
1218{ " on"," am" }, 1218{ " on"," am" },
1219{ " completed on "," erledigt am " }, 1219{ " completed on "," erledigt am " },
1220{ "Save as Event template","Speichere als Vorlage" }, 1220{ "Save as Event template","Speichere als Vorlage" },
1221{ "Load Event template","Lade Termin Vorlage" }, 1221{ "Load Event template","Lade Termin Vorlage" },
1222{ "Save as Journal template","Speichere als Journal Vorlage" }, 1222{ "Save as Journal template","Speichere als Journal Vorlage" },
1223{ "Insert Journal template","Füge Journal Vorlage ein" }, 1223{ "Insert Journal template","Füge Journal Vorlage ein" },
1224{ "Sub todos:<br>","Unter Todos:<br>" }, 1224{ "Sub todos:<br>","Unter Todos:<br>" },
1225{ "Parent todo:<br>","Über Todo:<br>" }, 1225{ "Parent todo:<br>","Über Todo:<br>" },
1226{ "Set current as color category","Setze Gewählte als Farbkategorie" }, 1226{ "Set current as color category","Setze Gewählte als Farbkategorie" },
1227{ " completed"," erledigt" }, 1227{ " completed"," erledigt" },
1228{ "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" }, 1228{ "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" },
1229{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, 1229{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." },
1230{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, 1230{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." },
1231{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, 1231{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." },
1232{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" }, 1232{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" },
1233{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, 1233{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." },
1234{ "Error","Fehler" }, 1234{ "Error","Fehler" },
1235{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, 1235{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." },
1236{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, 1236{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." },
1237{ "Warning","Warnung" }, 1237{ "Warning","Warnung" },
1238{ "Select week number","Wähle Wochen Nummer" }, 1238{ "Select week number","Wähle Wochen Nummer" },
1239{ "Februar","Februar" }, 1239{ "Februar","Februar" },
1240{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" }, 1240{ "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" },
1241{ "W","W" }, 1241{ "W","W" },
1242{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" }, 1242{ "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" },
1243{ "T: %1","T: %1" }, 1243{ "T: %1","T: %1" },
1244{ "Start: ","Start: " }, 1244{ "Start: ","Start: " },
1245{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " }, 1245{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " },
1246{ "Password for remote access:","Passwort für fernen Zugriff:" }, 1246{ "Password for remote access:","Passwort für fernen Zugriff:" },
1247{ "Remote IP address:","Ferne IP Adresse:" }, 1247{ "Remote IP address:","Ferne IP Adresse:" },
1248{ "Remote port number:","Ferne Port Nummer:" }, 1248{ "Remote port number:","Ferne Port Nummer:" },
1249{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." }, 1249{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." },
1250{ "Remote from: ","Fern von: " }, 1250{ "Remote from: ","Fern von: " },
1251{ "Local from: ","Lokal von: " }, 1251{ "Local from: ","Lokal von: " },
1252{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" }, 1252{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" },
1253{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, 1253{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
1254{ "Write back","Schreibe zurück" }, 1254{ "Write back","Schreibe zurück" },
1255{ "KO/Pi Synchronization","KO/Pi Synchronisation" }, 1255{ "KO/Pi Synchronization","KO/Pi Synchronisation" },
1256{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, 1256{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
1257{ "Received sync request","Sync Anfrage erhalten" }, 1257{ "Received sync request","Sync Anfrage erhalten" },
1258{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." }, 1258{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." },
1259{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, 1259{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
1260{ "Data saved to temp file!","Daten in temp Datei gespeichert!" }, 1260{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
1261{ "Sending file...","Sende Datei..." }, 1261{ "Sending file...","Sende Datei..." },
1262{ "Waiting for synced file...","Warte auf gesyncte Daten..." }, 1262{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
1263{ "Receiving synced file...","Gesyncte Daten erhalten..." }, 1263{ "Receiving synced file...","Gesyncte Daten erhalten..." },
1264{ "Received %1 bytes","%1 Bytes erhalten" }, 1264{ "Received %1 bytes","%1 Bytes erhalten" },
1265{ "Writing file to disk...","Speichere Datei..." }, 1265{ "Writing file to disk...","Speichere Datei..." },
1266{ "Pi-Sync successful!","Pi-Sync erfolgreich!" }, 1266{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
1267{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, 1267{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
1268{ "Synchronize!","Synchronisiere!" }, 1268{ "Synchronize!","Synchronisiere!" },
1269{ "High clock skew!","Großer Uhrzeitunterschied!" }, 1269{ "High clock skew!","Großer Uhrzeitunterschied!" },
1270{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, 1270{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
1271{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, 1271{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" },
1272{ "This is a %1 recurring todo.","Das ist eine %1 wiederholende Aufgabe." }, 1272{ "This is a %1 recurring todo.","Das ist eine %1 wiederholende Aufgabe." },
1273{ "<p><b>Start on:</b> %1</p>","<p><b>Start am:</b> %1</p>" }, 1273{ "<p><b>Start on:</b> %1</p>","<p><b>Start am:</b> %1</p>" },
1274{ "List week view","Listenwochenansicht" }, 1274{ "List week view","Listenwochenansicht" },
1275{ "List week","Listenwochenansicht" }, 1275{ "List week","Listenwochenansicht" },
1276{ "Next Week","Nächste Woche" }, 1276{ "Next Week","Nächste Woche" },
1277{ "Previous Week","Vorherige Woche" }, 1277{ "Previous Week","Vorherige Woche" },
1278{ "No items were found matching\nyour search expression.\nUse the wildcard characters\n'*' and '?' where needed.","Keine Einträge gefunden die\ndem Suchausdruck entsprechen.\nBenutze Platzhalter Zeichen\n'*' und '?' wo benötigt." }, 1278{ "No items were found matching\nyour search expression.\nUse the wildcard characters\n'*' and '?' where needed.","Keine Einträge gefunden die\ndem Suchausdruck entsprechen.\nBenutze Platzhalter Zeichen\n'*' und '?' wo benötigt." },
1279{ "Show in todo/event viewer:","Zeige in Termin/Todo Anzeige:" }, 1279{ "Show in todo/event viewer:","Zeige in Termin/Todo Anzeige:" },
1280{ "Details","Details" }, 1280{ "Details","Details" },
1281{ "Created time","Erstellt Zeit" }, 1281{ "Created time","Erstellt Zeit" },
1282{ "Last modified time","Geändert Zeit" }, 1282{ "Last modified time","Geändert Zeit" },
1283{ "Show in What'sThis quick overview:","Zeige in What'sThis Schnellübersicht:" }, 1283{ "Show in What'sThis quick overview:","Zeige in What'sThis Schnellübersicht:" },
1284{ "View Options","Anzeige Optionen" }, 1284{ "View Options","Anzeige Optionen" },
1285{ "<b>Created: ","<b>Erstellt am: " }, 1285{ "<b>Created: ","<b>Erstellt am: " },
1286{ "<b>Last modified: ","<b>Zuletzt geändert am: " }, 1286{ "<b>Last modified: ","<b>Zuletzt geändert am: " },
1287{ "Journal: ","Journal: " }, 1287{ "Journal: ","Journal: " },
1288{ "yearly","jährlich" }, 1288{ "yearly","jährlich" },
1289{ "(%1) ","%1-" }, 1289{ "(%1) ","%1-" },
1290{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" }, 1290{ "<p><b>K</b>: Week view in Month view syle</p>\n","<p><b>K</b>: Wochenansicht in Art der Monatsansicht</p>\n" },
1291{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" }, 1291{ "Enable tooltips displaying summary of ev.","Titel-Tooltips anzeigen" },
1292{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" }, 1292{ "Enable scrollbars in month view cells","Scrollbar in Zellen anzeigen" },
1293{ "Summary/Loc.","Titel/Ort" }, 1293{ "Summary/Loc.","Titel/Ort" },
1294{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." }, 1294{ "No items found. Use '*' and '?' where needed.","Nichts gefunden. Benutze '*' and '?' wo benötigt." },
1295{ "Week Number","Wochennummer" }, 1295{ "Week Number","Wochennummer" },
1296{ "Import","Importiere" }, 1296{ "Import","Importiere" },
1297{ "Export","Exportiere" }, 1297{ "Export","Exportiere" },
1298{ "Beam","Beame" }, 1298{ "Beam","Beame" },
1299{ "Export selected","Exportiere Selektierte" }, 1299{ "Export selected","Exportiere Selektierte" },
1300{ "As iCal (ics) file...","Als iCal (ics) Datei..." }, 1300{ "As iCal (ics) file...","Als iCal (ics) Datei..." },
1301{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." }, 1301{ "As vCal (vcs) file...","Als vCal (vcs) Datei..." },
1302{ "Journal/Details...","Journale/Details..." }, 1302{ "Journal/Details...","Journale/Details..." },
1303{ "Agenda View","Agenda Ansicht" }, 1303{ "Agenda View","Agenda Ansicht" },
1304{ "Show current time","Zeige aktuelle Zeit" }, 1304{ "Show current time","Zeige aktuelle Zeit" },
1305{ "Edit new item","Bearbeite neuen Eintrag" }, 1305{ "Edit new item","Bearbeite neuen Eintrag" },
1306{ "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" }, 1306{ "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" },
1307{ "There is no next alarm.","Es gibt keinen nächsten Alarm." }, 1307{ "There is no next alarm.","Es gibt keinen nächsten Alarm." },
1308{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" }, 1308{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" },
1309{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" }, 1309{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" },
1310{ "%1 days\n","%1 Tagen\n" }, 1310{ "%1 days\n","%1 Tagen\n" },
1311{ "1 day\n","1 Tag\n" }, 1311{ "1 day\n","1 Tag\n" },
1312{ "%1 hours\n","%1 Stunden\n" }, 1312{ "%1 hours\n","%1 Stunden\n" },
1313{ "1 hour\n","1 Stunde\n" }, 1313{ "1 hour\n","1 Stunde\n" },
1314{ "%1 minutes\n","%1 Minuten\n" }, 1314{ "%1 minutes\n","%1 Minuten\n" },
1315{ "1 minute\n","1 Minute\n" }, 1315{ "1 minute\n","1 Minute\n" },
1316{ "Only one toolbar","Nur eine Toolbar" }, 1316{ "Only one toolbar","Nur eine Toolbar" },
1317{ "Print","Drucke" }, 1317{ "Print","Drucke" },
1318{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." }, 1318{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." },
1319{ "There is nothing selected!","Es ist nichts ausgewählt!" }, 1319{ "There is nothing selected!","Es ist nichts ausgewählt!" },
1320{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " }, 1320{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " },
1321{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" }, 1321{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" },
1322{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden." },
1323{ "KO/Pi Printout","KO/Pi Ausdruck" },
1324{ "Print unscaled","Drucke unskaliert" },
1325{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." },
1326{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." },
1322{ "","" }, 1327{ "","" },
1323{ "","" }, 1328{ "","" },
1324{ "","" }, 1329{ "","" },
1325{ "","" }, 1330{ "","" },
1326 1331{ "","" }, \ No newline at end of file
1327
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp
index 445fc86..dbe0668 100644
--- a/korganizer/koeventviewer.cpp
+++ b/korganizer/koeventviewer.cpp
@@ -1,607 +1,618 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#include <qcstring.h> 20#include <qcstring.h>
21#include <qwhatsthis.h> 21#include <qwhatsthis.h>
22#include <qdialog.h> 22#include <qdialog.h>
23#include <qapplication.h> 23#include <qapplication.h>
24#include <qlabel.h> 24#include <qlabel.h>
25#include <qlayout.h> 25#include <qlayout.h>
26 26
27#include <klocale.h> 27#include <klocale.h>
28#include <kapplication.h> 28#include <kapplication.h>
29#include <libkcal/event.h> 29#include <libkcal/event.h>
30#include <libkcal/todo.h> 30#include <libkcal/todo.h>
31#include <kdebug.h> 31#include <kdebug.h>
32#include <kiconloader.h> 32#include <kiconloader.h>
33#include <krun.h> 33#include <krun.h>
34#include <kglobal.h> 34#include <kglobal.h>
35#include <kprocess.h> 35#include <kprocess.h>
36#include "koprefs.h" 36#include "koprefs.h"
37 37
38#include <kabc/stdaddressbook.h> 38#include <kabc/stdaddressbook.h>
39 39
40#ifndef KORG_NODCOP 40#ifndef KORG_NODCOP
41#include <dcopclient.h> 41#include <dcopclient.h>
42#include "korganizer.h" 42#include "korganizer.h"
43#include "koprefs.h" 43#include "koprefs.h"
44#include "actionmanager.h" 44#include "actionmanager.h"
45#endif 45#endif
46 46
47#include "koeventviewer.h" 47#include "koeventviewer.h"
48//#ifndef KORG_NOKABC 48//#ifndef KORG_NOKABC
49//#include <kabc/stdaddressbook.h> 49//#include <kabc/stdaddressbook.h>
50//#define size count 50//#define size count
51//#endif 51//#endif
52 52
53#ifdef DESKTOP_VERSION 53#ifdef DESKTOP_VERSION
54#include <kabc/addresseedialog.h> 54#include <kabc/addresseedialog.h>
55#include <kabc/addresseeview.h> 55#include <kabc/addresseeview.h>
56#include <qprinter.h> 56#include <qprinter.h>
57#include <qpainter.h> 57#include <qpainter.h>
58#include <qpaintdevicemetrics.h> 58#include <qpaintdevicemetrics.h>
59#else //DESKTOP_VERSION 59#else //DESKTOP_VERSION
60#include <externalapphandler.h> 60#include <externalapphandler.h>
61#include <qtopia/qcopenvelope_qws.h> 61#include <qtopia/qcopenvelope_qws.h>
62#endif //DESKTOP_VERSION 62#endif //DESKTOP_VERSION
63 63
64KOEventViewer::KOEventViewer(QWidget *parent,const char *name) 64KOEventViewer::KOEventViewer(QWidget *parent,const char *name)
65 : QTextBrowser(parent,name) 65 : QTextBrowser(parent,name)
66{ 66{
67 mSyncMode = false; 67 mSyncMode = false;
68 mColorMode = 0; 68 mColorMode = 0;
69} 69}
70 70
71KOEventViewer::~KOEventViewer() 71KOEventViewer::~KOEventViewer()
72{ 72{
73} 73}
74 74
75void KOEventViewer::printMe() 75void KOEventViewer::printMe()
76{ 76{
77#ifdef DESKTOP_VERSION 77#ifdef DESKTOP_VERSION
78
79 KOPrintPrefs pp ( this );
80 if (!pp.exec() )
81 return;
82 int scaleval = pp.printMode() ;
83
78 QPrinter printer; 84 QPrinter printer;
79 if (!printer.setup() ) 85 if (!printer.setup() )
80 return; 86 return;
81 QPainter p; 87 QPainter p;
82 p.begin ( &printer ); 88 p.begin ( &printer );
83 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); 89 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer );
84 float dx, dy; 90 float dx, dy;
85 int wid = (m.width() * 9)/10; 91 int wid = (m.width() * 9)/10;
86 dx = (float) wid/(float)contentsWidth (); 92 dx = (float) wid/(float)contentsWidth ();
87 dy = (float)(m.height()) / (float)contentsHeight (); 93 dy = (float)(m.height()) / (float)contentsHeight ();
88 float scale; 94 float scale;
89 // scale to fit the width or height of the paper 95 // scale to fit the width or height of the paper
90 if ( dx < dy ) 96 if ( dx < dy )
91 scale = dx; 97 scale = dx;
92 else 98 else
93 scale = dy; 99 scale = dy;
100
94 p.translate( m.width()/10,0 ); 101 p.translate( m.width()/10,0 );
95 p.scale( scale, scale ); 102 qDebug("Scale: %f ", scale );
103 if ( scaleval == 2 || scaleval == 1 && scale < 1.0 ) {
104 qDebug("SCALE ");
105 p.scale( scale, scale );
106 }
96 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); 107 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () );
97 p.end(); 108 p.end();
98#endif 109#endif
99 110
100} 111}
101void KOEventViewer::setSource(const QString& n) 112void KOEventViewer::setSource(const QString& n)
102{ 113{
103 114
104 if ( n.left(3) == "uid" ) 115 if ( n.left(3) == "uid" )
105#ifdef DESKTOP_VERSION 116#ifdef DESKTOP_VERSION
106 { 117 {
107 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 118 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
108 KABC::AddressBook::Iterator it; 119 KABC::AddressBook::Iterator it;
109 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 120 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
110 // LR I do not understand, why the uid string is different on zaurus and desktop 121 // LR I do not understand, why the uid string is different on zaurus and desktop
111 QString uid = "uid://"+(*it).uid(); 122 QString uid = "uid://"+(*it).uid();
112 123
113 //qDebug("for *%s* +%s+ ", n.latin1(), uid.latin1()); 124 //qDebug("for *%s* +%s+ ", n.latin1(), uid.latin1());
114 if (n == uid ) { 125 if (n == uid ) {
115 //qDebug("found %s ",(*it).mobileHomePhone().latin1() ); 126 //qDebug("found %s ",(*it).mobileHomePhone().latin1() );
116 QDialog dia( this,"dia123", true ); 127 QDialog dia( this,"dia123", true );
117 dia.setCaption( i18n("Details of attendee") ); 128 dia.setCaption( i18n("Details of attendee") );
118 QVBoxLayout lay ( &dia ); 129 QVBoxLayout lay ( &dia );
119 KABC::AddresseeView av ( &dia ); 130 KABC::AddresseeView av ( &dia );
120 av.setAddressee( (*it) ); 131 av.setAddressee( (*it) );
121 lay.addWidget( &av ); 132 lay.addWidget( &av );
122 if ( QApplication::desktop()->width() < 480 ) 133 if ( QApplication::desktop()->width() < 480 )
123 dia.resize( 220, 240); 134 dia.resize( 220, 240);
124 else { 135 else {
125 dia.resize( 400,400); 136 dia.resize( 400,400);
126 } 137 }
127 dia.exec(); 138 dia.exec();
128 break; 139 break;
129 } 140 }
130 } 141 }
131 return; 142 return;
132 } 143 }
133#else 144#else
134 { 145 {
135 if ( "uid:organizer" == n ) { 146 if ( "uid:organizer" == n ) {
136 ExternalAppHandler::instance()->requestDetailsFromKAPI("", mCurrentIncidence->organizer(),""); 147 ExternalAppHandler::instance()->requestDetailsFromKAPI("", mCurrentIncidence->organizer(),"");
137 return; 148 return;
138 } 149 }
139 QPtrList<Attendee> attendees = mCurrentIncidence->attendees(); 150 QPtrList<Attendee> attendees = mCurrentIncidence->attendees();
140 if (attendees.count()) { 151 if (attendees.count()) {
141 Attendee *a; 152 Attendee *a;
142 for(a=attendees.first();a;a=attendees.next()) { 153 for(a=attendees.first();a;a=attendees.next()) {
143 if ( "uid:"+a->uid() == n ) { 154 if ( "uid:"+a->uid() == n ) {
144 bool res = ExternalAppHandler::instance()->requestDetailsFromKAPI(a->name(), a->email(), a->uid()); 155 bool res = ExternalAppHandler::instance()->requestDetailsFromKAPI(a->name(), a->email(), a->uid());
145 return; 156 return;
146 } 157 }
147 } 158 }
148 } 159 }
149 return; 160 return;
150 } 161 }
151 //requestNameEmailUidListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/); 162 //requestNameEmailUidListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/);
152 // the result should now arrive through method insertAttendees 163 // the result should now arrive through method insertAttendees
153 //QString uid = "uid:"+(*it).uid(); 164 //QString uid = "uid:"+(*it).uid();
154#endif 165#endif
155 if ( n.left(6) == "mailto" ) { 166 if ( n.left(6) == "mailto" ) {
156 // qDebug("KOEventViewer::setSource %s ", n.mid(7).latin1()); 167 // qDebug("KOEventViewer::setSource %s ", n.mid(7).latin1());
157#ifndef DESKTOP_VERSION 168#ifndef DESKTOP_VERSION
158 if ( n.mid(7,3) == "ALL" ) { 169 if ( n.mid(7,3) == "ALL" ) {
159 qDebug("all "); 170 qDebug("all ");
160 mailToAttendees( true ); 171 mailToAttendees( true );
161 } else if ( n.mid(7,4) == "RSVP" ) { 172 } else if ( n.mid(7,4) == "RSVP" ) {
162 mailToAttendees( false ); 173 mailToAttendees( false );
163 qDebug("rsvp "); 174 qDebug("rsvp ");
164 } else { 175 } else {
165 QCopEnvelope e("QPE/Application/ompi", "newMail(QString)" ); 176 QCopEnvelope e("QPE/Application/ompi", "newMail(QString)" );
166 e << n.mid(7); 177 e << n.mid(7);
167 } 178 }
168#endif 179#endif
169 180
170 } 181 }
171 182
172 183
173#ifndef KORG_NODCOP 184#ifndef KORG_NODCOP
174 kdDebug() << "KOEventViewer::setSource(): " << n << endl; 185 kdDebug() << "KOEventViewer::setSource(): " << n << endl;
175 QString tmpStr; 186 QString tmpStr;
176 if (n.startsWith("mailto:")) { 187 if (n.startsWith("mailto:")) {
177 KApplication::kApplication()->invokeMailer(n.mid(7),QString::null); 188 KApplication::kApplication()->invokeMailer(n.mid(7),QString::null);
178 //emit showIncidence(n); 189 //emit showIncidence(n);
179 return; 190 return;
180 } else if (n.startsWith("uid:")) { 191 } else if (n.startsWith("uid:")) {
181 DCOPClient *client = KApplication::kApplication()->dcopClient(); 192 DCOPClient *client = KApplication::kApplication()->dcopClient();
182 const QByteArray noParamData; 193 const QByteArray noParamData;
183 const QByteArray paramData; 194 const QByteArray paramData;
184 QByteArray replyData; 195 QByteArray replyData;
185 QCString replyTypeStr; 196 QCString replyTypeStr;
186#define PING_ABBROWSER (client->call("kaddressbook", "KAddressBookIface", "interfaces()", noParamData, replyTypeStr, replyData)) 197#define PING_ABBROWSER (client->call("kaddressbook", "KAddressBookIface", "interfaces()", noParamData, replyTypeStr, replyData))
187 bool foundAbbrowser = PING_ABBROWSER; 198 bool foundAbbrowser = PING_ABBROWSER;
188 199
189 if (foundAbbrowser) { 200 if (foundAbbrowser) {
190 //KAddressbook is already running, so just DCOP to it to bring up the contact editor 201 //KAddressbook is already running, so just DCOP to it to bring up the contact editor
191 //client->send("kaddressbook","KAddressBookIface", 202 //client->send("kaddressbook","KAddressBookIface",
192 QDataStream arg(paramData, IO_WriteOnly); 203 QDataStream arg(paramData, IO_WriteOnly);
193 arg << n.mid(6); 204 arg << n.mid(6);
194 client->send("kaddressbook", "KAddressBookIface", "showContactEditor( QString )", paramData); 205 client->send("kaddressbook", "KAddressBookIface", "showContactEditor( QString )", paramData);
195 return; 206 return;
196 } else { 207 } else {
197 /* 208 /*
198 KaddressBook is not already running. Pass it the UID of the contact via the command line while starting it - its neater. 209 KaddressBook is not already running. Pass it the UID of the contact via the command line while starting it - its neater.
199 We start it without its main interface 210 We start it without its main interface
200 */ 211 */
201 KIconLoader* iconLoader = new KIconLoader(); 212 KIconLoader* iconLoader = new KIconLoader();
202 QString iconPath = iconLoader->iconPath("go",KIcon::Small); 213 QString iconPath = iconLoader->iconPath("go",KIcon::Small);
203 ActionManager::setStartedKAddressBook(true); 214 ActionManager::setStartedKAddressBook(true);
204 tmpStr = "kaddressbook --editor-only --uid "; 215 tmpStr = "kaddressbook --editor-only --uid ";
205 tmpStr += KProcess::quote(n.mid(6)); 216 tmpStr += KProcess::quote(n.mid(6));
206 KRun::runCommand(tmpStr,"KAddressBook",iconPath); 217 KRun::runCommand(tmpStr,"KAddressBook",iconPath);
207 return; 218 return;
208 } 219 }
209 } else { 220 } else {
210 //QTextBrowser::setSource(n); 221 //QTextBrowser::setSource(n);
211 } 222 }
212#endif 223#endif
213} 224}
214void KOEventViewer::mailToAttendees( bool all ) 225void KOEventViewer::mailToAttendees( bool all )
215{ 226{
216 QPtrList<Attendee> attendees = mCurrentIncidence->attendees(); 227 QPtrList<Attendee> attendees = mCurrentIncidence->attendees();
217 if (attendees.count() == 0) return; 228 if (attendees.count() == 0) return;
218 QStringList nameList; 229 QStringList nameList;
219 QStringList emailList; 230 QStringList emailList;
220 QStringList uidList; 231 QStringList uidList;
221 Attendee* a; 232 Attendee* a;
222 for(a=attendees.first();a;a=attendees.next()) { 233 for(a=attendees.first();a;a=attendees.next()) {
223 if ( !all && !a->RSVP() ) continue; 234 if ( !all && !a->RSVP() ) continue;
224 if (!a->email().isEmpty()) { 235 if (!a->email().isEmpty()) {
225 nameList.append (a->name() ); 236 nameList.append (a->name() );
226 emailList.append (a->email() ); 237 emailList.append (a->email() );
227 uidList.append (a->uid() ); 238 uidList.append (a->uid() );
228 } 239 }
229 } 240 }
230 QString uid = "ComposeMailUIpick2"+mMailSubject; 241 QString uid = "ComposeMailUIpick2"+mMailSubject;
231#ifndef DESKTOP_VERSION 242#ifndef DESKTOP_VERSION
232 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); 243 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList);
233#endif 244#endif
234 245
235} 246}
236void KOEventViewer::addTag(const QString & tag,const QString & text) 247void KOEventViewer::addTag(const QString & tag,const QString & text)
237{ 248{
238 int number=text.contains("\n"); 249 int number=text.contains("\n");
239 QString str = "<" + tag + ">"; 250 QString str = "<" + tag + ">";
240 QString tmpText=text; 251 QString tmpText=text;
241 QString tmpStr=str; 252 QString tmpStr=str;
242 if(number !=-1) 253 if(number !=-1)
243 { 254 {
244 if (number > 0) { 255 if (number > 0) {
245 int pos=0; 256 int pos=0;
246 QString tmp; 257 QString tmp;
247 for(int i=0;i<=number;i++) { 258 for(int i=0;i<=number;i++) {
248 pos=tmpText.find("\n"); 259 pos=tmpText.find("\n");
249 tmp=tmpText.left(pos); 260 tmp=tmpText.left(pos);
250 tmpText=tmpText.right(tmpText.length()-pos-1); 261 tmpText=tmpText.right(tmpText.length()-pos-1);
251 tmpStr+=tmp+"<br>"; 262 tmpStr+=tmp+"<br>";
252 } 263 }
253 } 264 }
254 else tmpStr += tmpText; 265 else tmpStr += tmpText;
255 tmpStr+="</" + tag + ">"; 266 tmpStr+="</" + tag + ">";
256 mText.append(tmpStr); 267 mText.append(tmpStr);
257 } 268 }
258 else 269 else
259 { 270 {
260 str += text + "</" + tag + ">"; 271 str += text + "</" + tag + ">";
261 mText.append(str); 272 mText.append(str);
262 } 273 }
263} 274}
264 275
265void KOEventViewer::setColorMode( int m ) 276void KOEventViewer::setColorMode( int m )
266{ 277{
267 mColorMode = m; 278 mColorMode = m;
268} 279}
269void KOEventViewer::appendEvent(Event *event, int mode ) 280void KOEventViewer::appendEvent(Event *event, int mode )
270{ 281{
271 mMailSubject = ""; 282 mMailSubject = "";
272 mCurrentIncidence = event; 283 mCurrentIncidence = event;
273 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 284 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
274 topLevelWidget()->setCaption(i18n("Event Viewer")); 285 topLevelWidget()->setCaption(i18n("Event Viewer"));
275 if ( mode == 0 ) { 286 if ( mode == 0 ) {
276 addTag("h2",deTag(event->summary())); 287 addTag("h2",deTag(event->summary()));
277 } 288 }
278 else { 289 else {
279 if ( mColorMode == 1 ) { 290 if ( mColorMode == 1 ) {
280 mText +="<font color=\"#00A000\">"; 291 mText +="<font color=\"#00A000\">";
281 } 292 }
282 if ( mColorMode == 2 ) { 293 if ( mColorMode == 2 ) {
283 mText +="<font color=\"#C00000\">"; 294 mText +="<font color=\"#C00000\">";
284 } 295 }
285 // mText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>"; 296 // mText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>";
286 if ( mode == 1 ) { 297 if ( mode == 1 ) {
287 addTag("h2",i18n( "Local: " ) +deTag(event->summary())); 298 addTag("h2",i18n( "Local: " ) +deTag(event->summary()));
288 } else { 299 } else {
289 addTag("h2",i18n( "Remote: " ) +deTag(event->summary())); 300 addTag("h2",i18n( "Remote: " ) +deTag(event->summary()));
290 } 301 }
291 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) ); 302 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) );
292 if ( mColorMode ) 303 if ( mColorMode )
293 mText += "</font>"; 304 mText += "</font>";
294 } 305 }
295 mMailSubject += i18n( "Meeting " )+ event->summary(); 306 mMailSubject += i18n( "Meeting " )+ event->summary();
296 if (event->cancelled ()) { 307 if (event->cancelled ()) {
297 mText +="<font color=\"#B00000\">"; 308 mText +="<font color=\"#B00000\">";
298 addTag("i",i18n("This event has been cancelled!")); 309 addTag("i",i18n("This event has been cancelled!"));
299 mText.append("<br>"); 310 mText.append("<br>");
300 mText += "</font>"; 311 mText += "</font>";
301 mMailSubject += i18n("(cancelled)"); 312 mMailSubject += i18n("(cancelled)");
302 } 313 }
303 if (!event->location().isEmpty()) { 314 if (!event->location().isEmpty()) {
304 addTag("b",i18n("Location: ")); 315 addTag("b",i18n("Location: "));
305 mText.append(deTag(event->location())+"<br>"); 316 mText.append(deTag(event->location())+"<br>");
306 mMailSubject += i18n(" at ") + event->location(); 317 mMailSubject += i18n(" at ") + event->location();
307 } 318 }
308 if (event->doesFloat()) { 319 if (event->doesFloat()) {
309 if (event->isMultiDay()) { 320 if (event->isMultiDay()) {
310 mText.append(i18n("<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>") 321 mText.append(i18n("<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>")
311 .arg(event->dtStartDateStr(shortDate)) 322 .arg(event->dtStartDateStr(shortDate))
312 .arg(event->dtEndDateStr(shortDate))); 323 .arg(event->dtEndDateStr(shortDate)));
313 } else { 324 } else {
314 mText.append(i18n("<p><b>On:</b> %1</p>").arg(event->dtStartDateStr( shortDate ))); 325 mText.append(i18n("<p><b>On:</b> %1</p>").arg(event->dtStartDateStr( shortDate )));
315 } 326 }
316 } else { 327 } else {
317 if (event->isMultiDay()) { 328 if (event->isMultiDay()) {
318 mText.append(i18n("<p><b>From:</b> %1</p> ") 329 mText.append(i18n("<p><b>From:</b> %1</p> ")
319 .arg(event->dtStartStr( shortDate))); 330 .arg(event->dtStartStr( shortDate)));
320 mText.append(i18n("<p><b>To:</b> %1</p>") 331 mText.append(i18n("<p><b>To:</b> %1</p>")
321 .arg(event->dtEndStr(shortDate))); 332 .arg(event->dtEndStr(shortDate)));
322 } else { 333 } else {
323 mText.append(i18n("<p><b>On:</b> %1</p> ") 334 mText.append(i18n("<p><b>On:</b> %1</p> ")
324 .arg(event->dtStartDateStr( shortDate ))); 335 .arg(event->dtStartDateStr( shortDate )));
325 mText.append(i18n("<p><b>From:</b> %1 <b>To:</b> %2</p>") 336 mText.append(i18n("<p><b>From:</b> %1 <b>To:</b> %2</p>")
326 .arg(event->dtStartTimeStr()) 337 .arg(event->dtStartTimeStr())
327 .arg(event->dtEndTimeStr())); 338 .arg(event->dtEndTimeStr()));
328 } 339 }
329 } 340 }
330 341
331 if (event->recurrence()->doesRecur()) { 342 if (event->recurrence()->doesRecur()) {
332 343
333 QString recurText = event->recurrence()->recurrenceText(); 344 QString recurText = event->recurrence()->recurrenceText();
334 addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>"); 345 addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>");
335 bool ok; 346 bool ok;
336 QDate start = QDate::currentDate(); 347 QDate start = QDate::currentDate();
337 QDateTime next; 348 QDateTime next;
338 next = event->getNextOccurence( QDateTime::currentDateTime() , &ok ); 349 next = event->getNextOccurence( QDateTime::currentDateTime() , &ok );
339 if ( ok ) { 350 if ( ok ) {
340 addTag("p",i18n("<b>Next recurrence is on:</b>") ); 351 addTag("p",i18n("<b>Next recurrence is on:</b>") );
341 addTag("p", KGlobal::locale()->formatDate( next.date(), shortDate )); 352 addTag("p", KGlobal::locale()->formatDate( next.date(), shortDate ));
342 mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( next, true ); 353 mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( next, true );
343 354
344 } else { 355 } else {
345 bool last; 356 bool last;
346 QDate nextd; 357 QDate nextd;
347 nextd = event->recurrence()->getPreviousDate( QDate::currentDate() , &last ); 358 nextd = event->recurrence()->getPreviousDate( QDate::currentDate() , &last );
348 if ( last ) { 359 if ( last ) {
349 addTag("p",i18n("<b>Last recurrence was on:</b>") ); 360 addTag("p",i18n("<b>Last recurrence was on:</b>") );
350 addTag("p", KGlobal::locale()->formatDate( nextd, shortDate )); 361 addTag("p", KGlobal::locale()->formatDate( nextd, shortDate ));
351 } 362 }
352 } 363 }
353 } else { 364 } else {
354 mMailSubject += i18n(" - " )+event->dtStartStr( true ); 365 mMailSubject += i18n(" - " )+event->dtStartStr( true );
355 366
356 } 367 }
357 368
358 369
359 if (event->isAlarmEnabled()) { 370 if (event->isAlarmEnabled()) {
360 Alarm *alarm =event->alarms().first() ; 371 Alarm *alarm =event->alarms().first() ;
361 QDateTime t = alarm->time(); 372 QDateTime t = alarm->time();
362 int min = t.secsTo( event->dtStart() )/60; 373 int min = t.secsTo( event->dtStart() )/60;
363 QString s =i18n("( %1 min before )").arg( min ); 374 QString s =i18n("( %1 min before )").arg( min );
364 addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); 375 addTag("p",i18n("<b>Alarm on: ") + s +" </b>");
365 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); 376 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate ));
366 //addTag("p",s); 377 //addTag("p",s);
367 } 378 }
368 379
369 addTag("b",i18n("Access: ")); 380 addTag("b",i18n("Access: "));
370 mText.append(event->secrecyStr()+"<br>"); 381 mText.append(event->secrecyStr()+"<br>");
371 382
372 383
373 if ( KOPrefs::instance()->mEVshowDetails ) { 384 if ( KOPrefs::instance()->mEVshowDetails ) {
374 if (!event->description().isEmpty()) { 385 if (!event->description().isEmpty()) {
375 addTag("p",i18n("<b>Details: </b>")); 386 addTag("p",i18n("<b>Details: </b>"));
376 addTag("p",deTag(event->description())); 387 addTag("p",deTag(event->description()));
377 } 388 }
378 } 389 }
379 formatCategories(event); 390 formatCategories(event);
380 391
381 formatReadOnly(event); 392 formatReadOnly(event);
382 formatAttendees(event); 393 formatAttendees(event);
383 394
384 if ( KOPrefs::instance()->mEVshowCreated ) { 395 if ( KOPrefs::instance()->mEVshowCreated ) {
385 addTag("p",i18n("<b>Created: ") +" </b>"); 396 addTag("p",i18n("<b>Created: ") +" </b>");
386 addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); 397 addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate ));
387 398
388 } 399 }
389 if ( KOPrefs::instance()->mEVshowChanged ) { 400 if ( KOPrefs::instance()->mEVshowChanged ) {
390 addTag("p",i18n("<b>Last modified: ") +" </b>"); 401 addTag("p",i18n("<b>Last modified: ") +" </b>");
391 addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); 402 addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ));
392 403
393 } 404 }
394 setText(mText); 405 setText(mText);
395 //QWhatsThis::add(this,mText); 406 //QWhatsThis::add(this,mText);
396 407
397} 408}
398 409
399void KOEventViewer::appendTodo(Todo *event, int mode ) 410void KOEventViewer::appendTodo(Todo *event, int mode )
400{ 411{
401 mMailSubject = ""; 412 mMailSubject = "";
402 mCurrentIncidence = event; 413 mCurrentIncidence = event;
403 topLevelWidget()->setCaption(i18n("Todo Viewer")); 414 topLevelWidget()->setCaption(i18n("Todo Viewer"));
404 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 415 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
405 if (mode == 0 ) 416 if (mode == 0 )
406 addTag("h2",deTag(event->summary())); 417 addTag("h2",deTag(event->summary()));
407 else { 418 else {
408 if ( mColorMode == 1 ) { 419 if ( mColorMode == 1 ) {
409 mText +="<font color=\"#00A000\">"; 420 mText +="<font color=\"#00A000\">";
410 } 421 }
411 if ( mColorMode == 2 ) { 422 if ( mColorMode == 2 ) {
412 mText +="<font color=\"#B00000\">"; 423 mText +="<font color=\"#B00000\">";
413 } 424 }
414 if ( mode == 1 ) { 425 if ( mode == 1 ) {
415 addTag("h2",i18n( "Local: " ) +deTag(event->summary())); 426 addTag("h2",i18n( "Local: " ) +deTag(event->summary()));
416 } else { 427 } else {
417 addTag("h2",i18n( "Remote: " ) +deTag(event->summary())); 428 addTag("h2",i18n( "Remote: " ) +deTag(event->summary()));
418 } 429 }
419 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) ); 430 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) );
420 if ( mColorMode ) 431 if ( mColorMode )
421 mText += "</font>"; 432 mText += "</font>";
422 } 433 }
423 mMailSubject += i18n( "Todo " )+ event->summary(); 434 mMailSubject += i18n( "Todo " )+ event->summary();
424 435
425 if ( event->percentComplete() == 100 && event->hasCompletedDate() ) { 436 if ( event->percentComplete() == 100 && event->hasCompletedDate() ) {
426 mText +="<font color=\"#B00000\">"; 437 mText +="<font color=\"#B00000\">";
427 addTag("i", i18n("<p><i>Completed on %1</i></p>").arg( event->completedStr(KOPrefs::instance()->mShortDateInViewer) ) ); 438 addTag("i", i18n("<p><i>Completed on %1</i></p>").arg( event->completedStr(KOPrefs::instance()->mShortDateInViewer) ) );
428 mText += "</font>"; 439 mText += "</font>";
429 } else { 440 } else {
430 mText.append(i18n("<p><i>%1 % completed</i></p>") 441 mText.append(i18n("<p><i>%1 % completed</i></p>")
431 .arg(event->percentComplete())); 442 .arg(event->percentComplete()));
432 } 443 }
433 444
434 if (event->cancelled ()) { 445 if (event->cancelled ()) {
435 mText +="<font color=\"#B00000\">"; 446 mText +="<font color=\"#B00000\">";
436 addTag("i",i18n("This todo has been cancelled!")); 447 addTag("i",i18n("This todo has been cancelled!"));
437 mText.append("<br>"); 448 mText.append("<br>");
438 mText += "</font>"; 449 mText += "</font>";
439 mMailSubject += i18n("(cancelled)"); 450 mMailSubject += i18n("(cancelled)");
440 } 451 }
441 452
442 if (!event->location().isEmpty()) { 453 if (!event->location().isEmpty()) {
443 addTag("b",i18n("Location: ")); 454 addTag("b",i18n("Location: "));
444 mText.append(deTag(event->location())+"<br>"); 455 mText.append(deTag(event->location())+"<br>");
445 mMailSubject += i18n(" at ") + event->location(); 456 mMailSubject += i18n(" at ") + event->location();
446 } 457 }
447 458
448 if (event->recurrence()->doesRecur()) { 459 if (event->recurrence()->doesRecur()) {
449 460
450 QString recurText = event->recurrence()->recurrenceText(); 461 QString recurText = event->recurrence()->recurrenceText();
451 addTag("p","<em>" + i18n("This is a %1 recurring todo.").arg(recurText ) + "</em>"); 462 addTag("p","<em>" + i18n("This is a %1 recurring todo.").arg(recurText ) + "</em>");
452 463
453 } 464 }
454 if (event->hasStartDate()) { 465 if (event->hasStartDate()) {
455 mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer))); 466 mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer)));
456 } 467 }
457 if (event->hasDueDate()) { 468 if (event->hasDueDate()) {
458 mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); 469 mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer)));
459 mMailSubject += i18n(" - " )+event->dtDueStr( true ); 470 mMailSubject += i18n(" - " )+event->dtDueStr( true );
460 } 471 }
461 addTag("b",i18n("Access: ")); 472 addTag("b",i18n("Access: "));
462 mText.append(event->secrecyStr()+"<br>"); 473 mText.append(event->secrecyStr()+"<br>");
463 if ( KOPrefs::instance()->mEVshowDetails ) { 474 if ( KOPrefs::instance()->mEVshowDetails ) {
464 if (!event->description().isEmpty()) { 475 if (!event->description().isEmpty()) {
465 addTag("p",i18n("<b>Details: </b>")); 476 addTag("p",i18n("<b>Details: </b>"));
466 addTag("p",deTag(event->description())); 477 addTag("p",deTag(event->description()));
467 } 478 }
468 } 479 }
469 480
470 formatCategories(event); 481 formatCategories(event);
471 482
472 mText.append(i18n("<p><b>Priority:</b> %2</p>") 483 mText.append(i18n("<p><b>Priority:</b> %2</p>")
473 .arg(QString::number(event->priority()))); 484 .arg(QString::number(event->priority())));
474 485
475 formatReadOnly(event); 486 formatReadOnly(event);
476 formatAttendees(event); 487 formatAttendees(event);
477 if ( event->relatedTo() ) { 488 if ( event->relatedTo() ) {
478 addTag("b",i18n("Parent todo:<br>")); 489 addTag("b",i18n("Parent todo:<br>"));
479 mText.append(deTag(event->relatedTo()->summary())+" [" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] <br>"); 490 mText.append(deTag(event->relatedTo()->summary())+" [" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] <br>");
480 } 491 }
481 QPtrList<Incidence> Relations = event->relations(); 492 QPtrList<Incidence> Relations = event->relations();
482 Incidence *to; 493 Incidence *to;
483 if ( Relations.first() ) 494 if ( Relations.first() )
484 addTag("b",i18n("Sub todos:<br>")); 495 addTag("b",i18n("Sub todos:<br>"));
485 for (to=Relations.first();to;to=Relations.next()) { 496 for (to=Relations.first();to;to=Relations.next()) {
486 mText.append( deTag(to->summary())+" [" +QString::number(to->priority()) + "/" + QString::number(((Todo*)to)->percentComplete())+"%]<br>"); 497 mText.append( deTag(to->summary())+" [" +QString::number(to->priority()) + "/" + QString::number(((Todo*)to)->percentComplete())+"%]<br>");
487 498
488 } 499 }
489 if ( KOPrefs::instance()->mEVshowCreated ) { 500 if ( KOPrefs::instance()->mEVshowCreated ) {
490 addTag("p",i18n("<b>Created: ") +" </b>"); 501 addTag("p",i18n("<b>Created: ") +" </b>");
491 addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); 502 addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate ));
492 503
493 } 504 }
494 if ( KOPrefs::instance()->mEVshowChanged ) { 505 if ( KOPrefs::instance()->mEVshowChanged ) {
495 addTag("p",i18n("<b>Last modified: ") +" </b>"); 506 addTag("p",i18n("<b>Last modified: ") +" </b>");
496 addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); 507 addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ));
497 508
498 } 509 }
499 setText(mText); 510 setText(mText);
500} 511}
501 512
502void KOEventViewer::formatCategories(Incidence *event) 513void KOEventViewer::formatCategories(Incidence *event)
503{ 514{
504 if (!event->categoriesStr().isEmpty()) { 515 if (!event->categoriesStr().isEmpty()) {
505 if (event->categories().count() == 1) { 516 if (event->categories().count() == 1) {
506 addTag("h3",i18n("Category")); 517 addTag("h3",i18n("Category"));
507 } else { 518 } else {
508 addTag("h3",i18n("Categories")); 519 addTag("h3",i18n("Categories"));
509 } 520 }
510 addTag("p",event->categoriesStr()); 521 addTag("p",event->categoriesStr());
511 } 522 }
512} 523}
513void KOEventViewer::formatAttendees(Incidence *event) 524void KOEventViewer::formatAttendees(Incidence *event)
514{ 525{
515 QPtrList<Attendee> attendees = event->attendees(); 526 QPtrList<Attendee> attendees = event->attendees();
516 if (attendees.count()) { 527 if (attendees.count()) {
517 528
518 529
519 QString iconPath = KGlobal::iconLoader()->iconPath("mailappt",KIcon::Small); 530 QString iconPath = KGlobal::iconLoader()->iconPath("mailappt",KIcon::Small);
520 QString NOiconPath = KGlobal::iconLoader()->iconPath("nomailappt",KIcon::Small); 531 QString NOiconPath = KGlobal::iconLoader()->iconPath("nomailappt",KIcon::Small);
521 addTag("h3",i18n("Organizer")); 532 addTag("h3",i18n("Organizer"));
522 mText.append("<ul><li>"); 533 mText.append("<ul><li>");
523#ifndef KORG_NOKABC 534#ifndef KORG_NOKABC
524 535
525#ifdef DESKTOP_VERSION 536#ifdef DESKTOP_VERSION
526 KABC::AddressBook *add_book = KABC::StdAddressBook::self(); 537 KABC::AddressBook *add_book = KABC::StdAddressBook::self();
527 KABC::Addressee::List addressList; 538 KABC::Addressee::List addressList;
528 addressList = add_book->findByEmail(event->organizer()); 539 addressList = add_book->findByEmail(event->organizer());
529 KABC::Addressee o = addressList.first(); 540 KABC::Addressee o = addressList.first();
530 if (!o.isEmpty() && addressList.size()<2) { 541 if (!o.isEmpty() && addressList.size()<2) {
531 mText += "<a href=\"uid:" + o.uid() + "\">"; 542 mText += "<a href=\"uid:" + o.uid() + "\">";
532 mText += o.formattedName(); 543 mText += o.formattedName();
533 mText += "</a>\n"; 544 mText += "</a>\n";
534 } else { 545 } else {
535 mText.append(event->organizer()); 546 mText.append(event->organizer());
536 } 547 }
537#else //DESKTOP_VERSION 548#else //DESKTOP_VERSION
538 mText += "<a href=\"uid:organizer\">"; 549 mText += "<a href=\"uid:organizer\">";
539 mText += event->organizer(); 550 mText += event->organizer();
540 mText += "</a>\n"; 551 mText += "</a>\n";
541#endif //DESKTOP_VERSION 552#endif //DESKTOP_VERSION
542 553
543 554
544#else 555#else
545 mText.append(event->organizer()); 556 mText.append(event->organizer());
546#endif 557#endif
547 558
548 if (iconPath) { 559 if (iconPath) {
549 mText += " <a href=\"mailto:" + event->organizer() + "\">"; 560 mText += " <a href=\"mailto:" + event->organizer() + "\">";
550 mText += "<IMG src=\"" + iconPath + "\">"; 561 mText += "<IMG src=\"" + iconPath + "\">";
551 mText += "</a>\n"; 562 mText += "</a>\n";
552 } 563 }
553 mText.append("</li></ul>"); 564 mText.append("</li></ul>");
554 565
555 addTag("h3",i18n("Attendees")); 566 addTag("h3",i18n("Attendees"));
556 Attendee *a; 567 Attendee *a;
557 mText.append("<ul>"); 568 mText.append("<ul>");
558 int a_count = 0; 569 int a_count = 0;
559 int a_count_nr = 0; 570 int a_count_nr = 0;
560 571
561 for(a=attendees.first();a;a=attendees.next()) { 572 for(a=attendees.first();a;a=attendees.next()) {
562#ifndef KORG_NOKABC 573#ifndef KORG_NOKABC
563#ifdef DESKTOP_VERSION 574#ifdef DESKTOP_VERSION
564 if (a->name().isEmpty()) { 575 if (a->name().isEmpty()) {
565 addressList = add_book->findByEmail(a->email()); 576 addressList = add_book->findByEmail(a->email());
566 KABC::Addressee o = addressList.first(); 577 KABC::Addressee o = addressList.first();
567 if (!o.isEmpty() && addressList.size()<2) { 578 if (!o.isEmpty() && addressList.size()<2) {
568 mText += "<a href=\"uid:" + o.uid() + "\">"; 579 mText += "<a href=\"uid:" + o.uid() + "\">";
569 mText += o.formattedName(); 580 mText += o.formattedName();
570 mText += "</a>\n"; 581 mText += "</a>\n";
571 } else { 582 } else {
572 mText += "<li>"; 583 mText += "<li>";
573 mText.append(a->email()); 584 mText.append(a->email());
574 mText += "\n"; 585 mText += "\n";
575 } 586 }
576 } else { 587 } else {
577 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 588 mText += "<li><a href=\"uid:" + a->uid() + "\">";
578 if (!a->name().isEmpty()) mText += a->name(); 589 if (!a->name().isEmpty()) mText += a->name();
579 else mText += a->email(); 590 else mText += a->email();
580 mText += "</a>\n"; 591 mText += "</a>\n";
581 } 592 }
582#else //DESKTOP_VERSION 593#else //DESKTOP_VERSION
583 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 594 mText += "<li><a href=\"uid:" + a->uid() + "\">";
584 if (!a->name().isEmpty()) mText += a->name(); 595 if (!a->name().isEmpty()) mText += a->name();
585 else mText += a->email(); 596 else mText += a->email();
586 mText += "</a>\n"; 597 mText += "</a>\n";
587#endif //DESKTOP_VERSION 598#endif //DESKTOP_VERSION
588#else 599#else
589 //qDebug("nokabc "); 600 //qDebug("nokabc ");
590 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 601 mText += "<li><a href=\"uid:" + a->uid() + "\">";
591 if (!a->name().isEmpty()) mText += a->name(); 602 if (!a->name().isEmpty()) mText += a->name();
592 else mText += a->email(); 603 else mText += a->email();
593 mText += "</a>\n"; 604 mText += "</a>\n";
594#endif 605#endif
595 606
596 607
597 if (!a->email().isEmpty()) { 608 if (!a->email().isEmpty()) {
598 if (iconPath) { 609 if (iconPath) {
599 mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">"; 610 mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">";
600 if ( a->RSVP() ) { 611 if ( a->RSVP() ) {
601 ++a_count_nr; 612 ++a_count_nr;
602 mText += "<IMG src=\"" + iconPath + "\">"; 613 mText += "<IMG src=\"" + iconPath + "\">";
603 } 614 }
604 else { 615 else {
605 ++a_count; 616 ++a_count;
606 mText += "<IMG src=\"" + NOiconPath + "\">"; 617 mText += "<IMG src=\"" + NOiconPath + "\">";
607 } 618 }
diff --git a/korganizer/koeventviewer.h b/korganizer/koeventviewer.h
index ca5bc15..6ecc233 100644
--- a/korganizer/koeventviewer.h
+++ b/korganizer/koeventviewer.h
@@ -1,78 +1,131 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19#ifndef KOEVENTVIEWER_H 19#ifndef KOEVENTVIEWER_H
20#define KOEVENTVIEWER_H 20#define KOEVENTVIEWER_H
21// 21//
22// Viewer widget for events. 22// Viewer widget for events.
23// 23//
24 24
25#include <qtextbrowser.h> 25#include <qtextbrowser.h>
26 26
27#include <libkcal/event.h> 27#include <libkcal/event.h>
28#include <libkcal/journal.h> 28#include <libkcal/journal.h>
29 29
30 30
31using namespace KCal; 31using namespace KCal;
32 32
33#ifdef DESKTOP_VERSION
34
35#include <qradiobutton.h>
36#include <qpushbutton.h>
37#include <qlayout.h>
38#include <qdialog.h>
39#include <qlabel.h>
40#include <qbuttongroup.h>
41#include <kglobal.h>
42
43class KOPrintPrefs : public QDialog
44{
45 public:
46 KOPrintPrefs( QWidget *parent=0, const char *name=0 ) :
47 QDialog( parent, name, true )
48 {
49 setCaption( i18n("KO/Pi Printout") );
50 QVBoxLayout* lay = new QVBoxLayout( this );
51 lay->setSpacing( 3 );
52 lay->setMargin( 3 );
53 QLabel * lab = new QLabel( i18n("This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog."), this );
54 lay->addWidget( lab );
55 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Printout Mode"), this );
56 lay->addWidget( format );
57 format->setExclusive ( true ) ;
58 pmNo = new QRadioButton(i18n("Print unscaled"), format );
59 pmScaledDown = new QRadioButton(i18n("Print scaled down to fit one page"), format );
60 new QRadioButton(i18n("Print scaled up/down to fit one page"), format );
61 pmScaledDown->setChecked( true );
62 QPushButton * ok = new QPushButton( i18n("OK"), this );
63 lay->addWidget( ok );
64 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
65 lay->addWidget( cancel );
66 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
67 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
68 resize( 200, 200 );
69 }
70
71 int printMode()
72 {
73 if ( pmNo->isChecked() )
74 return 0;
75 if ( pmScaledDown->isChecked() )
76 return 1;
77 return 2;
78 }
79private:
80 QRadioButton* pmNo;
81 QRadioButton* pmScaledDown;
82};
83
84#endif
85
33class KOEventViewer : public QTextBrowser { 86class KOEventViewer : public QTextBrowser {
34 Q_OBJECT 87 Q_OBJECT
35 public: 88 public:
36 KOEventViewer(QWidget *parent=0,const char *name=0); 89 KOEventViewer(QWidget *parent=0,const char *name=0);
37 virtual ~KOEventViewer(); 90 virtual ~KOEventViewer();
38 91
39 void setSource(const QString &); 92 void setSource(const QString &);
40 void setEvent(Event *event); 93 void setEvent(Event *event);
41 void addEvent(Event *event); 94 void addEvent(Event *event);
42 void setTodo(Todo *event, bool clearV = true ); 95 void setTodo(Todo *event, bool clearV = true );
43 void setJournal(Journal *jour, bool clearV = true ); 96 void setJournal(Journal *jour, bool clearV = true );
44 97
45 void appendEvent(Event *event, int mode = 0 ); 98 void appendEvent(Event *event, int mode = 0 );
46 void appendTodo(Todo *event, int mode = 0 ); 99 void appendTodo(Todo *event, int mode = 0 );
47 void appendJournal(Journal *jour, int mode = 0 ); 100 void appendJournal(Journal *jour, int mode = 0 );
48 101
49 void clearEvents(bool now=false); 102 void clearEvents(bool now=false);
50 103
51 void addText(QString text); 104 void addText(QString text);
52 void setSyncMode( bool ); 105 void setSyncMode( bool );
53 void setColorMode( int ); 106 void setColorMode( int );
54 void mailToAttendees( bool all ); 107 void mailToAttendees( bool all );
55 void printMe(); 108 void printMe();
56 109
57 protected: 110 protected:
58 int mColorMode; 111 int mColorMode;
59 void addTag(const QString & tag,const QString & text); 112 void addTag(const QString & tag,const QString & text);
60 113
61 void formatCategories(Incidence *event); 114 void formatCategories(Incidence *event);
62 void formatAttendees(Incidence *event); 115 void formatAttendees(Incidence *event);
63 void formatReadOnly(Incidence *event); 116 void formatReadOnly(Incidence *event);
64 void keyPressEvent ( QKeyEvent * e ); 117 void keyPressEvent ( QKeyEvent * e );
65 118
66 private: 119 private:
67 QTextBrowser *mEventTextView; 120 QTextBrowser *mEventTextView;
68 bool mSyncMode; 121 bool mSyncMode;
69 QString deTag(QString text); 122 QString deTag(QString text);
70 123
71 QString mText; 124 QString mText;
72 QString mMailSubject; 125 QString mMailSubject;
73 Incidence* mCurrentIncidence; 126 Incidence* mCurrentIncidence;
74 signals: 127 signals:
75 void launchaddressbook(QString uid); 128 void launchaddressbook(QString uid);
76}; 129};
77 130
78#endif 131#endif
diff --git a/korganizer/koeventviewerdialog.cpp b/korganizer/koeventviewerdialog.cpp
index ec55cca..35d084d 100644
--- a/korganizer/koeventviewerdialog.cpp
+++ b/korganizer/koeventviewerdialog.cpp
@@ -1,316 +1,308 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#include <klocale.h> 20#include <klocale.h>
21 21
22#include <libkcal/event.h> 22#include <libkcal/event.h>
23#include <qtimer.h> 23#include <qtimer.h>
24#include <qpushbutton.h> 24#include <qpushbutton.h>
25 25
26#include "koeventviewer.h" 26#include "koeventviewer.h"
27#include <kmessagebox.h> 27#include <kmessagebox.h>
28#include "koprefs.h" 28#include "koprefs.h"
29#include <libkcal/todo.h> 29#include <libkcal/todo.h>
30#include "qapp.h" 30#include "qapp.h"
31 31
32#include "koeventviewerdialog.h" 32#include "koeventviewerdialog.h"
33extern int globalFlagBlockAgenda; 33extern int globalFlagBlockAgenda;
34 34
35KOEventViewerDialog::KOEventViewerDialog(QWidget *parent,const char *name) 35KOEventViewerDialog::KOEventViewerDialog(QWidget *parent,const char *name)
36 : KDialogBase(parent,name, 36 : KDialogBase(parent,name,
37#ifndef DESKTOP_VERSION 37#ifndef DESKTOP_VERSION
38 true , 38 true ,
39#else 39#else
40 false, 40 false,
41#endif 41#endif
42 i18n("Event Viewer"),Ok|User1|Close,Close, false, i18n("Agenda")) 42 i18n("Event Viewer"),Ok|User1|Close,Close, false, i18n("Agenda"))
43{ 43{
44 sendSignalViewerClosed = true; 44 sendSignalViewerClosed = true;
45 mEventViewer = new KOEventViewer(this); 45 mEventViewer = new KOEventViewer(this);
46 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont ); 46 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont );
47 setMainWidget(mEventViewer); 47 setMainWidget(mEventViewer);
48 setButtonText(Ok, i18n("Edit") ); 48 setButtonText(Ok, i18n("Edit") );
49 49
50 QObject::connect(findButton( Ok ),SIGNAL(clicked()), 50 QObject::connect(findButton( Ok ),SIGNAL(clicked()),
51 SLOT(editIncidence())); 51 SLOT(editIncidence()));
52 QObject::connect(this,SIGNAL(user1Clicked()), 52 QObject::connect(this,SIGNAL(user1Clicked()),
53 SLOT(showIncidence())); 53 SLOT(showIncidence()));
54 mIncidence = 0; 54 mIncidence = 0;
55 // TODO: Set a sensible size (based on the content?). 55 // TODO: Set a sensible size (based on the content?).
56 //showMaximized(); 56 //showMaximized();
57 //qDebug("++++++++++++KOEventViewerDialog() "); 57 //qDebug("++++++++++++KOEventViewerDialog() ");
58 // if ( KOPrefs::instance()->mCompactDialogs ) { 58 // if ( KOPrefs::instance()->mCompactDialogs ) {
59// setFixedSize( 240,284 ); 59// setFixedSize( 240,284 );
60// move( 0, 15 ); 60// move( 0, 15 );
61// } else { 61// } else {
62// setMinimumSize(300,200); 62// setMinimumSize(300,200);
63// resize(320,300); 63// resize(320,300);
64// } 64// }
65 mSyncMode = false; 65 mSyncMode = false;
66 mSyncResult = 0; 66 mSyncResult = 0;
67 67
68} 68}
69 69
70KOEventViewerDialog::~KOEventViewerDialog() 70KOEventViewerDialog::~KOEventViewerDialog()
71{ 71{
72 //qDebug("-------~KOEventViewerDialog() "); 72 //qDebug("-------~KOEventViewerDialog() ");
73} 73}
74void KOEventViewerDialog::showMe() 74void KOEventViewerDialog::showMe()
75{ 75{
76 76
77#ifdef DESKTOP_VERSION 77#ifdef DESKTOP_VERSION
78 int x,y,w,h; 78 int x,y,w,h;
79 x = geometry().x(); 79 x = geometry().x();
80 y = geometry().y(); 80 y = geometry().y();
81 w = width(); 81 w = width();
82 h = height(); 82 h = height();
83 show(); 83 show();
84 setGeometry(x,y,w,h); 84 setGeometry(x,y,w,h);
85#else 85#else
86 showMaximized(); 86 showMaximized();
87#endif 87#endif
88 raise(); 88 raise();
89 setActiveWindow(); 89 setActiveWindow();
90 mEventViewer->setFocus(); 90 mEventViewer->setFocus();
91 //raise(); 91 //raise();
92 92
93} 93}
94void KOEventViewerDialog::print() 94void KOEventViewerDialog::print()
95{ 95{
96 qDebug("PRINT ");
97 int km = KMessageBox::warningContinueCancel(this,mIncidence->summary().left(35) +
98 i18n("\n\nDo you really want to print this item?"),
99 i18n("KO/Pi Print Confirmation"),i18n("Print"));
100 if ( km != KMessageBox::Continue ) {
101 qDebug("cancel ");
102 return;
103 }
104 mEventViewer->printMe(); 96 mEventViewer->printMe();
105 97
106} 98}
107void KOEventViewerDialog::setSyncMode( bool b ) 99void KOEventViewerDialog::setSyncMode( bool b )
108{ 100{
109 mSyncMode = b; 101 mSyncMode = b;
110 //qDebug("KOEventViewerDialog::setSyncMode %d ",mSyncMode ); 102 //qDebug("KOEventViewerDialog::setSyncMode %d ",mSyncMode );
111 if ( mSyncMode ) { 103 if ( mSyncMode ) {
112 findButton( Close )->setText( i18n("Cancel Sync")); 104 findButton( Close )->setText( i18n("Cancel Sync"));
113 findButton( Ok )->setText( i18n("Remote")); 105 findButton( Ok )->setText( i18n("Remote"));
114 findButton( User1 )->setText( i18n("Local")); 106 findButton( User1 )->setText( i18n("Local"));
115 } else { 107 } else {
116 findButton( Close )->setText( i18n("Close")); 108 findButton( Close )->setText( i18n("Close"));
117 findButton( Ok )->setText( i18n("Edit")); 109 findButton( Ok )->setText( i18n("Edit"));
118 findButton( User1 )->setText( i18n("Agenda")); 110 findButton( User1 )->setText( i18n("Agenda"));
119 } 111 }
120 mEventViewer->setSyncMode( b ); 112 mEventViewer->setSyncMode( b );
121} 113}
122void KOEventViewerDialog::setColorMode( int m ) 114void KOEventViewerDialog::setColorMode( int m )
123{ 115{
124 mEventViewer->setColorMode( m ); 116 mEventViewer->setColorMode( m );
125} 117}
126int KOEventViewerDialog::executeS( bool local ) 118int KOEventViewerDialog::executeS( bool local )
127{ 119{
128 mSyncResult = 3; 120 mSyncResult = 3;
129 if ( local ) 121 if ( local )
130 findButton( User1 )->setFocus(); 122 findButton( User1 )->setFocus();
131 else 123 else
132 findButton( Ok )->setFocus(); 124 findButton( Ok )->setFocus();
133 exec(); 125 exec();
134 return mSyncResult; 126 return mSyncResult;
135} 127}
136 128
137void KOEventViewerDialog::updateConfig() 129void KOEventViewerDialog::updateConfig()
138{ 130{
139 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont ); 131 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont );
140 132
141} 133}
142void KOEventViewerDialog::setEvent(Event *event) 134void KOEventViewerDialog::setEvent(Event *event)
143{ 135{
144 mEventViewer->setEvent(event); 136 mEventViewer->setEvent(event);
145 mIncidence = event; 137 mIncidence = event;
146 mEventViewer->setFocus(); 138 mEventViewer->setFocus();
147 //findButton( Close )->setFocus(); 139 //findButton( Close )->setFocus();
148 if ( !mSyncMode ) { 140 if ( !mSyncMode ) {
149 findButton( User1 )->setText( i18n("Agenda")); 141 findButton( User1 )->setText( i18n("Agenda"));
150 } 142 }
151} 143}
152void KOEventViewerDialog::setIncidence(Incidence *in ) 144void KOEventViewerDialog::setIncidence(Incidence *in )
153{ 145{
154 if ( in->type() == "Event" ) 146 if ( in->type() == "Event" )
155 setEvent( (Event*) in ); 147 setEvent( (Event*) in );
156 else if ( in->type() =="Todo" ) 148 else if ( in->type() =="Todo" )
157 setTodo( (Todo*) in ); 149 setTodo( (Todo*) in );
158 else if ( in->type() =="Journal" ) 150 else if ( in->type() =="Journal" )
159 setJournal( (Journal*) in ); 151 setJournal( (Journal*) in );
160} 152}
161void KOEventViewerDialog::addIncidence(Incidence *in) 153void KOEventViewerDialog::addIncidence(Incidence *in)
162{ 154{
163 if ( in->type() == "Event" ) 155 if ( in->type() == "Event" )
164 addEvent( (Event*) in ); 156 addEvent( (Event*) in );
165 else if ( in->type() =="Todo" ) 157 else if ( in->type() =="Todo" )
166 mEventViewer->setTodo( (Todo*) in, false ); 158 mEventViewer->setTodo( (Todo*) in, false );
167 else if ( in->type() =="Journal" ) 159 else if ( in->type() =="Journal" )
168 mEventViewer->setJournal( (Journal*) in, false ); 160 mEventViewer->setJournal( (Journal*) in, false );
169 if ( mSyncMode ) { 161 if ( mSyncMode ) {
170 findButton( User1 )->setFocus(); 162 findButton( User1 )->setFocus();
171 setCaption(i18n("Conflict! Please choose entry")); 163 setCaption(i18n("Conflict! Please choose entry"));
172 } 164 }
173} 165}
174 166
175void KOEventViewerDialog::addEvent(Event *event) 167void KOEventViewerDialog::addEvent(Event *event)
176{ 168{
177 mEventViewer->addEvent(event); 169 mEventViewer->addEvent(event);
178 mIncidence = event; 170 mIncidence = event;
179 mEventViewer->setFocus(); 171 mEventViewer->setFocus();
180 //findButton( Close )->setFocus(); 172 //findButton( Close )->setFocus();
181 if ( !mSyncMode ) { 173 if ( !mSyncMode ) {
182 findButton( User1 )->setText( i18n("Agenda")); 174 findButton( User1 )->setText( i18n("Agenda"));
183 } 175 }
184} 176}
185 177
186void KOEventViewerDialog::setTodo(Todo *event) 178void KOEventViewerDialog::setTodo(Todo *event)
187{ 179{
188 mEventViewer->setTodo(event); 180 mEventViewer->setTodo(event);
189 mIncidence = (Incidence*)event; 181 mIncidence = (Incidence*)event;
190 mEventViewer->setFocus(); 182 mEventViewer->setFocus();
191 //findButton( Close )->setFocus(); 183 //findButton( Close )->setFocus();
192 if ( !mSyncMode ) { 184 if ( !mSyncMode ) {
193 findButton( User1 )->setText( i18n("Set complete")); 185 findButton( User1 )->setText( i18n("Set complete"));
194 } 186 }
195} 187}
196void KOEventViewerDialog::setJournal(Journal *j) 188void KOEventViewerDialog::setJournal(Journal *j)
197{ 189{
198 mEventViewer->setJournal(j); 190 mEventViewer->setJournal(j);
199 mIncidence = (Incidence*)j; 191 mIncidence = (Incidence*)j;
200 mEventViewer->setFocus(); 192 mEventViewer->setFocus();
201 //findButton( Close )->setFocus(); 193 //findButton( Close )->setFocus();
202 if ( !mSyncMode ) { 194 if ( !mSyncMode ) {
203 findButton( User1 )->setText( i18n("Agenda")); 195 findButton( User1 )->setText( i18n("Agenda"));
204 } 196 }
205} 197}
206 198
207void KOEventViewerDialog::addText(QString text) 199void KOEventViewerDialog::addText(QString text)
208{ 200{
209 mEventViewer->addText(text); 201 mEventViewer->addText(text);
210 mEventViewer->setFocus(); 202 mEventViewer->setFocus();
211 //findButton( Close )->setFocus(); 203 //findButton( Close )->setFocus();
212} 204}
213void KOEventViewerDialog::editIncidence() 205void KOEventViewerDialog::editIncidence()
214{ 206{
215 sendSignalViewerClosed = false; 207 sendSignalViewerClosed = false;
216 if ( mSyncMode ) { 208 if ( mSyncMode ) {
217 mSyncResult = 2; 209 mSyncResult = 2;
218 accept(); 210 accept();
219 return; 211 return;
220 } 212 }
221 if ( mIncidence ){ 213 if ( mIncidence ){
222#ifndef DESKTOP_VERSION 214#ifndef DESKTOP_VERSION
223 hide(); 215 hide();
224#endif 216#endif
225 emit editIncidence( mIncidence ); 217 emit editIncidence( mIncidence );
226 } 218 }
227} 219}
228void KOEventViewerDialog::showIncidence() 220void KOEventViewerDialog::showIncidence()
229{ 221{
230 sendSignalViewerClosed = false; 222 sendSignalViewerClosed = false;
231 if ( mSyncMode ) { 223 if ( mSyncMode ) {
232 mSyncResult = 1; 224 mSyncResult = 1;
233 accept(); 225 accept();
234 return; 226 return;
235 } 227 }
236 228
237 if ( mIncidence ){ 229 if ( mIncidence ){
238#ifndef DESKTOP_VERSION 230#ifndef DESKTOP_VERSION
239 hide(); 231 hide();
240#endif 232#endif
241 QDate date; 233 QDate date;
242 if ( mIncidence->type() == "Todo" ) { 234 if ( mIncidence->type() == "Todo" ) {
243 /* 235 /*
244 if ( ((Todo*)mIncidence)->hasDueDate() ) 236 if ( ((Todo*)mIncidence)->hasDueDate() )
245 date = ((Todo*)mIncidence)->dtDue().date(); 237 date = ((Todo*)mIncidence)->dtDue().date();
246 else { 238 else {
247 globalFlagBlockAgenda = 2; 239 globalFlagBlockAgenda = 2;
248 emit showAgendaView( false ); 240 emit showAgendaView( false );
249 return; 241 return;
250 } 242 }
251 */ 243 */
252 ((Todo*)mIncidence)->setCompleted( true ); 244 ((Todo*)mIncidence)->setCompleted( true );
253 ((Todo*)mIncidence)->setCompleted(QDateTime::currentDateTime() ); 245 ((Todo*)mIncidence)->setCompleted(QDateTime::currentDateTime() );
254 hide(); 246 hide();
255 emit todoCompleted(((Todo*)mIncidence)); 247 emit todoCompleted(((Todo*)mIncidence));
256 return; 248 return;
257 249
258 } else 250 } else
259 date = mIncidence->dtStart().date(); 251 date = mIncidence->dtStart().date();
260 globalFlagBlockAgenda = 1; 252 globalFlagBlockAgenda = 1;
261 emit showAgendaView( false ); 253 emit showAgendaView( false );
262 globalFlagBlockAgenda = 2; 254 globalFlagBlockAgenda = 2;
263 emit jumpToTime( date ); 255 emit jumpToTime( date );
264 } 256 }
265} 257}
266void KOEventViewerDialog::keyPressEvent ( QKeyEvent * e ) 258void KOEventViewerDialog::keyPressEvent ( QKeyEvent * e )
267{ 259{
268 switch ( e->key() ) { 260 switch ( e->key() ) {
269 261
270 case Qt::Key_A : 262 case Qt::Key_A :
271 case Qt::Key_L : 263 case Qt::Key_L :
272 showIncidence(); 264 showIncidence();
273 break; 265 break;
274 case Qt::Key_E : 266 case Qt::Key_E :
275 case Qt::Key_R : 267 case Qt::Key_R :
276 editIncidence(); 268 editIncidence();
277 break; 269 break;
278 case Qt::Key_C: 270 case Qt::Key_C:
279 case Qt::Key_Escape: 271 case Qt::Key_Escape:
280 sendSignalViewerClosed = true; 272 sendSignalViewerClosed = true;
281 close(); 273 close();
282 break; 274 break;
283 case Qt::Key_I: 275 case Qt::Key_I:
284#ifndef DESKTOP_VERSION 276#ifndef DESKTOP_VERSION
285 sendSignalViewerClosed = true; 277 sendSignalViewerClosed = true;
286 close(); 278 close();
287#else 279#else
288 sendSignalViewerClosed = true; 280 sendSignalViewerClosed = true;
289 slotViewerClosed(); 281 slotViewerClosed();
290 //accept(); 282 //accept();
291#endif 283#endif
292 break; 284 break;
293 default: 285 default:
294 KDialogBase::keyPressEvent ( e ); 286 KDialogBase::keyPressEvent ( e );
295 break; 287 break;
296 } 288 }
297 289
298} 290}
299void KOEventViewerDialog::hideEvent ( QHideEvent * e ) 291void KOEventViewerDialog::hideEvent ( QHideEvent * e )
300{ 292{
301 KDialogBase::hideEvent ( e ); 293 KDialogBase::hideEvent ( e );
302 QTimer::singleShot( 1, this, SLOT (slotViewerClosed() ) ); 294 QTimer::singleShot( 1, this, SLOT (slotViewerClosed() ) );
303} 295}
304 296
305void KOEventViewerDialog::slotViewerClosed() 297void KOEventViewerDialog::slotViewerClosed()
306{ 298{
307 if ( mSyncMode ) 299 if ( mSyncMode )
308 return; 300 return;
309 301
310 if ( sendSignalViewerClosed ) { 302 if ( sendSignalViewerClosed ) {
311 //qDebug("KOEventViewerDialog::hideEvent "); 303 //qDebug("KOEventViewerDialog::hideEvent ");
312 emit signalViewerClosed(); 304 emit signalViewerClosed();
313 } 305 }
314 sendSignalViewerClosed = true; 306 sendSignalViewerClosed = true;
315} 307}
316 308
diff --git a/korganizer/kowhatsnextview.cpp b/korganizer/kowhatsnextview.cpp
index 66ff75d..53fe7d0 100644
--- a/korganizer/kowhatsnextview.cpp
+++ b/korganizer/kowhatsnextview.cpp
@@ -1,593 +1,603 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#include <qlayout.h> 20#include <qlayout.h>
21#include <qtextbrowser.h> 21#include <qtextbrowser.h>
22#include <qtextcodec.h> 22#include <qtextcodec.h>
23#include <qfileinfo.h> 23#include <qfileinfo.h>
24#include <qlabel.h> 24#include <qlabel.h>
25 25
26#include <qapplication.h> 26#include <qapplication.h>
27#ifdef DESKTOP_VERSION 27#ifdef DESKTOP_VERSION
28#include <qpaintdevicemetrics.h> 28#include <qpaintdevicemetrics.h>
29#endif 29#endif
30#include <kglobal.h> 30#include <kglobal.h>
31#include <klocale.h> 31#include <klocale.h>
32#include <kdebug.h> 32#include <kdebug.h>
33#include <kiconloader.h> 33#include <kiconloader.h>
34#include <kmessagebox.h> 34#include <kmessagebox.h>
35 35
36#include <libkcal/calendar.h> 36#include <libkcal/calendar.h>
37 37
38#ifndef KORG_NOPRINTER 38#ifndef KORG_NOPRINTER
39#include "calprinter.h" 39#include "calprinter.h"
40#endif 40#endif
41#include "koglobals.h" 41#include "koglobals.h"
42#include "koprefs.h" 42#include "koprefs.h"
43#include "koeventviewerdialog.h" 43#include "koeventviewerdialog.h"
44#include "koeventviewer.h"
44#include <qstylesheet.h> 45#include <qstylesheet.h>
45#include "kowhatsnextview.h" 46#include "kowhatsnextview.h"
46using namespace KOrg; 47using namespace KOrg;
47 48
48void WhatsNextTextBrowser::setSource(const QString& n) 49void WhatsNextTextBrowser::setSource(const QString& n)
49{ 50{
50 51
51 if (n.startsWith("event:")) { 52 if (n.startsWith("event:")) {
52 emit showIncidence(n); 53 emit showIncidence(n);
53 return; 54 return;
54 } else if (n.startsWith("todo:")) { 55 } else if (n.startsWith("todo:")) {
55 emit showIncidence(n); 56 emit showIncidence(n);
56 return; 57 return;
57 } else { 58 } else {
58 QTextBrowser::setSource(n); 59 QTextBrowser::setSource(n);
59 } 60 }
60} 61}
61void WhatsNextTextBrowser::printMe() 62void WhatsNextTextBrowser::printMe()
62{ 63{
63#ifdef DESKTOP_VERSION 64#ifdef DESKTOP_VERSION
65 KOPrintPrefs pp ( this );
66 if (!pp.exec() )
67 return;
68 int scaleval = pp.printMode() ;
69
64 QPrinter printer; 70 QPrinter printer;
65 if (!printer.setup() ) 71 if (!printer.setup() )
66 return; 72 return;
67 QPainter p; 73 QPainter p;
68 p.begin ( &printer ); 74 p.begin ( &printer );
69 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); 75 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer );
70 float dx, dy; 76 float dx, dy;
71 int wid = (m.width() * 9)/10; 77 int wid = (m.width() * 9)/10;
72 dx = (float) wid/(float)contentsWidth (); 78 dx = (float) wid/(float)contentsWidth ();
73 dy = (float)(m.height()) / (float)contentsHeight (); 79 dy = (float)(m.height()) / (float)contentsHeight ();
74 float scale; 80 float scale;
75 // scale to fit the width or height of the paper 81 // scale to fit the width or height of the paper
76 if ( dx < dy ) 82 if ( dx < dy )
77 scale = dx; 83 scale = dx;
78 else 84 else
79 scale = dy; 85 scale = dy;
80 p.translate( m.width()/10,0 ); 86 p.translate( m.width()/10,0 );
81 p.scale( scale, scale ); 87 qDebug("Scale: %f ", scale );
88 if ( scaleval == 2 || scaleval == 1 && scale < 1.0 ) {
89 qDebug("SCALE ");
90 p.scale( scale, scale );
91 }
82 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); 92 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () );
83 p.end(); 93 p.end();
84#endif 94#endif
85} 95}
86 96
87KOWhatsNextView::KOWhatsNextView(Calendar *calendar, QWidget *parent, 97KOWhatsNextView::KOWhatsNextView(Calendar *calendar, QWidget *parent,
88 const char *name) 98 const char *name)
89 : KOrg::BaseView(calendar, parent, name) 99 : KOrg::BaseView(calendar, parent, name)
90{ 100{
91 // mDateLabel = 101 // mDateLabel =
92 // new QLabel(KGlobal::locale()->formatDate(QDate::currentDate()),this); 102 // new QLabel(KGlobal::locale()->formatDate(QDate::currentDate()),this);
93 // mDateLabel->setMargin(2); 103 // mDateLabel->setMargin(2);
94 // mDateLabel->setAlignment(AlignCenter); 104 // mDateLabel->setAlignment(AlignCenter);
95 setFont( KOPrefs::instance()->mWhatsNextFont ); 105 setFont( KOPrefs::instance()->mWhatsNextFont );
96 mView = new WhatsNextTextBrowser(this); 106 mView = new WhatsNextTextBrowser(this);
97 connect(mView,SIGNAL(showIncidence(const QString &)),SLOT(showIncidence(const QString &))); 107 connect(mView,SIGNAL(showIncidence(const QString &)),SLOT(showIncidence(const QString &)));
98 QStyleSheet* stsh = mView->styleSheet(); 108 QStyleSheet* stsh = mView->styleSheet();
99 QStyleSheetItem * style ; 109 QStyleSheetItem * style ;
100 style = stsh->item ("h2" ); 110 style = stsh->item ("h2" );
101 if ( style ) { 111 if ( style ) {
102 style->setMargin(QStyleSheetItem::MarginAll,0); 112 style->setMargin(QStyleSheetItem::MarginAll,0);
103 } 113 }
104 style = stsh->item ("h3" ); 114 style = stsh->item ("h3" );
105 if ( style ) { 115 if ( style ) {
106 style->setMargin(QStyleSheetItem::MarginAll,0); 116 style->setMargin(QStyleSheetItem::MarginAll,0);
107 } 117 }
108 mEventViewer = 0; 118 mEventViewer = 0;
109 119
110 QBoxLayout *topLayout = new QVBoxLayout(this); 120 QBoxLayout *topLayout = new QVBoxLayout(this);
111 // topLayout->addWidget(mDateLabel); 121 // topLayout->addWidget(mDateLabel);
112 topLayout->addWidget(mView); 122 topLayout->addWidget(mView);
113 mTimer = new QTimer( this ); 123 mTimer = new QTimer( this );
114 connect(mTimer,SIGNAL( timeout() ),this, SLOT(updateView())); 124 connect(mTimer,SIGNAL( timeout() ),this, SLOT(updateView()));
115 125
116 connect(mView->horizontalScrollBar (),SIGNAL( sliderReleased () ),this, SLOT(restartTimer())); 126 connect(mView->horizontalScrollBar (),SIGNAL( sliderReleased () ),this, SLOT(restartTimer()));
117 connect(mView->verticalScrollBar (),SIGNAL( sliderReleased () ),this, SLOT(restartTimer())); 127 connect(mView->verticalScrollBar (),SIGNAL( sliderReleased () ),this, SLOT(restartTimer()));
118} 128}
119 129
120KOWhatsNextView::~KOWhatsNextView() 130KOWhatsNextView::~KOWhatsNextView()
121{ 131{
122} 132}
123 133
124int KOWhatsNextView::maxDatesHint() 134int KOWhatsNextView::maxDatesHint()
125{ 135{
126 return 0; 136 return 0;
127} 137}
128 138
129int KOWhatsNextView::currentDateCount() 139int KOWhatsNextView::currentDateCount()
130{ 140{
131 return 0; 141 return 0;
132} 142}
133 143
134QPtrList<Incidence> KOWhatsNextView::selectedIncidences() 144QPtrList<Incidence> KOWhatsNextView::selectedIncidences()
135{ 145{
136 QPtrList<Incidence> eventList; 146 QPtrList<Incidence> eventList;
137 147
138 return eventList; 148 return eventList;
139} 149}
140 150
141void KOWhatsNextView::printMe() 151void KOWhatsNextView::printMe()
142{ 152{
143#ifdef DESKTOP_VERSION 153#ifdef DESKTOP_VERSION
144 mView->printMe(); 154 mView->printMe();
145#endif 155#endif
146} 156}
147void KOWhatsNextView::printPreview(CalPrinter *calPrinter, const QDate &fd, 157void KOWhatsNextView::printPreview(CalPrinter *calPrinter, const QDate &fd,
148 const QDate &td) 158 const QDate &td)
149{ 159{
150#ifndef KORG_NOPRINTER 160#ifndef KORG_NOPRINTER
151 calPrinter->preview(CalPrinter::Day, fd, td); 161 calPrinter->preview(CalPrinter::Day, fd, td);
152#endif 162#endif
153} 163}
154void KOWhatsNextView::updateConfig() 164void KOWhatsNextView::updateConfig()
155{ 165{
156 setFont( KOPrefs::instance()->mWhatsNextFont ); 166 setFont( KOPrefs::instance()->mWhatsNextFont );
157 updateView(); 167 updateView();
158 168
159} 169}
160void KOWhatsNextView::showEvent ( QShowEvent * e ) 170void KOWhatsNextView::showEvent ( QShowEvent * e )
161{ 171{
162 //qDebug("KOWhatsNextView::showEvent "); 172 //qDebug("KOWhatsNextView::showEvent ");
163 restartTimer(); 173 restartTimer();
164 QWidget::showEvent ( e ); 174 QWidget::showEvent ( e );
165} 175}
166void KOWhatsNextView::hideEvent ( QHideEvent * e) 176void KOWhatsNextView::hideEvent ( QHideEvent * e)
167{ 177{
168 //qDebug(" KOWhatsNextView::hideEvent"); 178 //qDebug(" KOWhatsNextView::hideEvent");
169 mTimer->stop(); 179 mTimer->stop();
170 QWidget::hideEvent ( e ); 180 QWidget::hideEvent ( e );
171} 181}
172void KOWhatsNextView::restartTimer() 182void KOWhatsNextView::restartTimer()
173{ 183{
174 //qDebug("KOWhatsNextView::restartTimer() "); 184 //qDebug("KOWhatsNextView::restartTimer() ");
175 mTimer->start( 300000 ); 185 mTimer->start( 300000 );
176 //mTimer->start( 5000 ); 186 //mTimer->start( 5000 );
177} 187}
178void KOWhatsNextView::updateView() 188void KOWhatsNextView::updateView()
179{ 189{
180 //qDebug("KOWhatsNextView::updateView() "); 190 //qDebug("KOWhatsNextView::updateView() ");
181 if ( mTimer->isActive() ) 191 if ( mTimer->isActive() )
182 restartTimer(); 192 restartTimer();
183 //qDebug("KOWhatsNextView::updateView() "); 193 //qDebug("KOWhatsNextView::updateView() ");
184 // mDateLabel->setText(KGlobal::locale()->formatDate(QDate::currentDate())); 194 // mDateLabel->setText(KGlobal::locale()->formatDate(QDate::currentDate()));
185 KIconLoader kil("korganizer"); 195 KIconLoader kil("korganizer");
186 QString ipath;// = new QString(); 196 QString ipath;// = new QString();
187 // kil.loadIcon("korganizer",KIcon::NoGroup,32,KIcon::DefaultState,&ipath); 197 // kil.loadIcon("korganizer",KIcon::NoGroup,32,KIcon::DefaultState,&ipath);
188 //<big><big><strong>" + date + "</strong></big></big>\n"; 198 //<big><big><strong>" + date + "</strong></big></big>\n";
189 mText = "<table width=\"100%\">\n"; 199 mText = "<table width=\"100%\">\n";
190 //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; 200 //mText += "<tr bgcolor=\"#3679AD\"><td><h2>";
191#ifdef DESKTOP_VERSION 201#ifdef DESKTOP_VERSION
192 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h1>"; 202 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h1>";
193#else 203#else
194 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h2>"; 204 mText += "<tr bgcolor=\"#5699CD\"><td align=\"center\"><h2>";
195#endif 205#endif
196 // mText += "<img src=\""; 206 // mText += "<img src=\"";
197 // mText += ipath; 207 // mText += ipath;
198 // mText += "\">"; 208 // mText += "\">";
199 mEventDate = QDate::currentDate(); 209 mEventDate = QDate::currentDate();
200#ifdef DESKTOP_VERSION 210#ifdef DESKTOP_VERSION
201 mText += "<font color=\"#FFFFFF\"> <em>" + KGlobal::locale()->formatDate( mEventDate , false )+"</em></font></h1>"; 211 mText += "<font color=\"#FFFFFF\"> <em>" + KGlobal::locale()->formatDate( mEventDate , false )+"</em></font></h1>";
202#else 212#else
203 mText += "<font color=\"#FFFFFF\"> <em>" + KGlobal::locale()->formatDate( mEventDate , false )+"</em></font></h2>"; 213 mText += "<font color=\"#FFFFFF\"> <em>" + KGlobal::locale()->formatDate( mEventDate , false )+"</em></font></h2>";
204#endif 214#endif
205 mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>"; 215 mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>";
206 int iii; 216 int iii;
207 mTodos.clear(); 217 mTodos.clear();
208 QPtrList<Event> events; 218 QPtrList<Event> events;
209 QPtrList<Todo> todos = calendar()->todos(); 219 QPtrList<Todo> todos = calendar()->todos();
210 Todo * todo; 220 Todo * todo;
211 //mText += "<h2>" + i18n("Events: ") + "</h2>\n"; 221 //mText += "<h2>" + i18n("Events: ") + "</h2>\n";
212 int daysToShow = KOPrefs::instance()->mWhatsNextDays ; 222 int daysToShow = KOPrefs::instance()->mWhatsNextDays ;
213 bool itemAdded = false; 223 bool itemAdded = false;
214 for ( iii = 0; iii < daysToShow; ++iii ) { 224 for ( iii = 0; iii < daysToShow; ++iii ) {
215 QString date; 225 QString date;
216 itemAdded = false; 226 itemAdded = false;
217 events = calendar()->events( mEventDate, true ); 227 events = calendar()->events( mEventDate, true );
218 228
219 if ( iii == 0 ) { // today !!! 229 if ( iii == 0 ) { // today !!!
220 todo = todos.first(); 230 todo = todos.first();
221 while(todo) { 231 while(todo) {
222 if ( !todo->isCompleted() &&todo->hasDueDate() && todo->dtDue().date() < mEventDate ) { 232 if ( !todo->isCompleted() &&todo->hasDueDate() && todo->dtDue().date() < mEventDate ) {
223 if ( ! itemAdded ) { 233 if ( ! itemAdded ) {
224 appendDay ( iii, mEventDate ); 234 appendDay ( iii, mEventDate );
225 //itemAdded = true; 235 //itemAdded = true;
226 236
227 } //bool reply=false, bool notRed = true, bool appendTable = false); 237 } //bool reply=false, bool notRed = true, bool appendTable = false);
228 appendEvent(todo, false, false, !itemAdded ); 238 appendEvent(todo, false, false, !itemAdded );
229 itemAdded = true; 239 itemAdded = true;
230 } 240 }
231 todo = todos.next(); 241 todo = todos.next();
232 } 242 }
233 } 243 }
234 244
235 245
236 if (events.count() > 0) { 246 if (events.count() > 0) {
237 // mText += "<p></p>"; 247 // mText += "<p></p>";
238 // kil.loadIcon("month",KIcon::NoGroup,22,KIcon::DefaultState,&ipath); 248 // kil.loadIcon("month",KIcon::NoGroup,22,KIcon::DefaultState,&ipath);
239 // mText += "<h2>"; 249 // mText += "<h2>";
240 //mText += " <img src=\""; 250 //mText += " <img src=\"";
241 //mText += ipath; 251 //mText += ipath;
242 //mText += "\">"; 252 //mText += "\">";
243 if ( ! itemAdded ) { 253 if ( ! itemAdded ) {
244 appendDay ( iii, mEventDate ); 254 appendDay ( iii, mEventDate );
245 255
246 } 256 }
247 // for first day (iii == 0) 257 // for first day (iii == 0)
248 // we may have syncevents, or events in the past, which maybe should not be diaplayed 258 // we may have syncevents, or events in the past, which maybe should not be diaplayed
249 // for that reason we cannot append <table> in appendDay () for iii == 0 259 // for that reason we cannot append <table> in appendDay () for iii == 0
250 // we must append it in the first successful call of appendEvent() 260 // we must append it in the first successful call of appendEvent()
251 Event *ev = events.first(); 261 Event *ev = events.first();
252 while(ev) { 262 while(ev) {
253 //qDebug("+++++event append %s", ev->summary().latin1()); 263 //qDebug("+++++event append %s", ev->summary().latin1());
254 if ( true /*!ev->recurrence()->doesRecur() || ev->recursOn( mEventDate)*/) { 264 if ( true /*!ev->recurrence()->doesRecur() || ev->recursOn( mEventDate)*/) {
255 if ( appendEvent(ev, false , iii!= 0,!itemAdded ) ) 265 if ( appendEvent(ev, false , iii!= 0,!itemAdded ) )
256 itemAdded = true; 266 itemAdded = true;
257 } 267 }
258 ev = events.next(); 268 ev = events.next();
259 } 269 }
260 270
261 //mText += "</table>\n"; 271 //mText += "</table>\n";
262 } 272 }
263 273
264 todo = todos.first(); 274 todo = todos.first();
265 while(todo) { 275 while(todo) {
266 if ( !todo->isCompleted() &&todo->hasDueDate() && todo->dtDue().date() == mEventDate ) { 276 if ( !todo->isCompleted() &&todo->hasDueDate() && todo->dtDue().date() == mEventDate ) {
267 if ( ! itemAdded ) { 277 if ( ! itemAdded ) {
268 appendDay ( iii, mEventDate ); 278 appendDay ( iii, mEventDate );
269 //itemAdded = true; 279 //itemAdded = true;
270 } 280 }
271 appendEvent(todo, false , iii!= 0,!itemAdded); 281 appendEvent(todo, false , iii!= 0,!itemAdded);
272 itemAdded = true; 282 itemAdded = true;
273 } 283 }
274 todo = todos.next(); 284 todo = todos.next();
275 } 285 }
276 if ( !itemAdded && iii == 0 ) { 286 if ( !itemAdded && iii == 0 ) {
277 // appendDay ( iii, mEventDate ); 287 // appendDay ( iii, mEventDate );
278 //mText += "<table>"; 288 //mText += "<table>";
279 // mText += "<b><font color=\"#000080\"><em>"+i18n("No event, nothing to do.") +"</em></font></b>\n"; 289 // mText += "<b><font color=\"#000080\"><em>"+i18n("No event, nothing to do.") +"</em></font></b>\n";
280 mText += "<h3 align=\"center\"><font color=\"#008000\"><em>"+i18n("No event, nothing to do.") +"</em></font></h3>\n"; 290 mText += "<h3 align=\"center\"><font color=\"#008000\"><em>"+i18n("No event, nothing to do.") +"</em></font></h3>\n";
281 //mText +="</table>"; 291 //mText +="</table>";
282 } 292 }
283 if ( itemAdded ) 293 if ( itemAdded )
284 mText += "</table>\n"; 294 mText += "</table>\n";
285 mEventDate = mEventDate.addDays( 1 ); 295 mEventDate = mEventDate.addDays( 1 );
286 } 296 }
287 297
288 int topmostPrios = KOPrefs::instance()->mWhatsNextPrios; 298 int topmostPrios = KOPrefs::instance()->mWhatsNextPrios;
289 if (todos.count() > 0 && topmostPrios > 0 ) { 299 if (todos.count() > 0 && topmostPrios > 0 ) {
290 // kil.loadIcon("todo",KIcon::NoGroup,22,KIcon::DefaultState,&ipath); 300 // kil.loadIcon("todo",KIcon::NoGroup,22,KIcon::DefaultState,&ipath);
291 // mText += "<h2>"; 301 // mText += "<h2>";
292 //<img src=\""; 302 //<img src=\"";
293 // mText += ipath; 303 // mText += ipath;
294 // mText += "\">"; 304 // mText += "\">";
295 // mText += i18n("Overdue To-Do:") + "</h2>\n"; 305 // mText += i18n("Overdue To-Do:") + "</h2>\n";
296 306
297 //mText += "<ul>\n"; 307 //mText += "<ul>\n";
298 bool gotone = false; 308 bool gotone = false;
299 int priority = 1; 309 int priority = 1;
300 int priosFound = 0; 310 int priosFound = 0;
301#ifdef DESKTOP_VERSION 311#ifdef DESKTOP_VERSION
302 mText +="<p></p>"; 312 mText +="<p></p>";
303#endif 313#endif
304 314
305 mText +="<h2><em><font color=\"#000080\">" + i18n("Incomplete Todo:") + "</font></em></h2>\n"; 315 mText +="<h2><em><font color=\"#000080\">" + i18n("Incomplete Todo:") + "</font></em></h2>\n";
306 mText += "<ul>\n"; 316 mText += "<ul>\n";
307 while (!gotone && priority<6) { 317 while (!gotone && priority<6) {
308 todo = todos.first(); 318 todo = todos.first();
309 while(todo) { 319 while(todo) {
310 if (!todo->isCompleted() && (todo->priority() == priority) ) { 320 if (!todo->isCompleted() && (todo->priority() == priority) ) {
311 if ( appendTodo(todo) ) 321 if ( appendTodo(todo) )
312 gotone = true; 322 gotone = true;
313 } 323 }
314 todo = todos.next(); 324 todo = todos.next();
315 } 325 }
316 if ( gotone ) { 326 if ( gotone ) {
317 gotone = false; 327 gotone = false;
318 ++priosFound; 328 ++priosFound;
319 if ( priosFound == topmostPrios ) 329 if ( priosFound == topmostPrios )
320 break; 330 break;
321 } 331 }
322 priority++; 332 priority++;
323 // kdDebug() << "adding the todos..." << endl; 333 // kdDebug() << "adding the todos..." << endl;
324 } 334 }
325 mText += "</ul>\n"; 335 mText += "</ul>\n";
326 } 336 }
327 337
328 int replys = 0; 338 int replys = 0;
329 events = calendar()->events(QDate::currentDate(), QDate(2975,12,6)); 339 events = calendar()->events(QDate::currentDate(), QDate(2975,12,6));
330 if (events.count() > 0) { 340 if (events.count() > 0) {
331 Event *ev = events.first(); 341 Event *ev = events.first();
332 while(ev) { 342 while(ev) {
333 Attendee *me = ev->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email()); 343 Attendee *me = ev->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email());
334 if (me!=0) { 344 if (me!=0) {
335 if (me->status()==Attendee::NeedsAction && me->RSVP()) { 345 if (me->status()==Attendee::NeedsAction && me->RSVP()) {
336 if (replys == 0) { 346 if (replys == 0) {
337 mText += "<p></p>"; 347 mText += "<p></p>";
338 // kil.loadIcon("reply",KIcon::NoGroup,22,KIcon::DefaultState,&ipath); 348 // kil.loadIcon("reply",KIcon::NoGroup,22,KIcon::DefaultState,&ipath);
339 //mText += "<h2>"; 349 //mText += "<h2>";
340 //<img src=\""; 350 //<img src=\"";
341 // mText += ipath; 351 // mText += ipath;
342 // mText += "\">"; 352 // mText += "\">";
343 //mText += i18n("Events and To-Dos that need a reply:") + "</h2>\n"; 353 //mText += i18n("Events and To-Dos that need a reply:") + "</h2>\n";
344 mText +="<h2><em><font color=\"#000080\">" + i18n("Events and To-Dos that need a reply:") + "</font></em></h2>\n"; 354 mText +="<h2><em><font color=\"#000080\">" + i18n("Events and To-Dos that need a reply:") + "</font></em></h2>\n";
345 mText += "<table>\n"; 355 mText += "<table>\n";
346 } 356 }
347 replys++; 357 replys++;
348 appendEvent(ev,true); 358 appendEvent(ev,true);
349 } 359 }
350 } 360 }
351 ev = events.next(); 361 ev = events.next();
352 } 362 }
353 } 363 }
354 todos = calendar()->todos(); 364 todos = calendar()->todos();
355 if (todos.count() > 0) { 365 if (todos.count() > 0) {
356 Todo *to = todos.first(); 366 Todo *to = todos.first();
357 while(to) { 367 while(to) {
358 if ( !to->isCompleted() ){ 368 if ( !to->isCompleted() ){
359 Attendee *me = to->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email()); 369 Attendee *me = to->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email());
360 if (me!=0) { 370 if (me!=0) {
361 if (me->status()==Attendee::NeedsAction && me->RSVP()) { 371 if (me->status()==Attendee::NeedsAction && me->RSVP()) {
362 if (replys == 0) { 372 if (replys == 0) {
363 mText +="<h2><em><font color=\"#000080\">" + i18n("Events and To-Dos that need a reply:") + "</font></em></h2>\n"; 373 mText +="<h2><em><font color=\"#000080\">" + i18n("Events and To-Dos that need a reply:") + "</font></em></h2>\n";
364 mText += "<table>\n"; 374 mText += "<table>\n";
365 } 375 }
366 replys++; 376 replys++;
367 appendEvent(to, true); 377 appendEvent(to, true);
368 } 378 }
369 } 379 }
370 } 380 }
371 to = todos.next(); 381 to = todos.next();
372 } 382 }
373 } 383 }
374 if (replys > 0 ) mText += "</table>\n"; 384 if (replys > 0 ) mText += "</table>\n";
375 385
376 386
377 mText += "</td></tr>\n</table>\n"; 387 mText += "</td></tr>\n</table>\n";
378 388
379 mView->setText(mText); 389 mView->setText(mText);
380 mView->setFocus(); 390 mView->setFocus();
381 391
382 // QPixmap bPix = SmallIcon( "back" ); 392 // QPixmap bPix = SmallIcon( "back" );
383 // qDebug("xxxxxxxxxxxxxxxxxxxxx "); 393 // qDebug("xxxxxxxxxxxxxxxxxxxxx ");
384 // QWidget* test = new QWidget(); 394 // QWidget* test = new QWidget();
385 // test->setBackgroundMode(FixedPixmap ); 395 // test->setBackgroundMode(FixedPixmap );
386 // test->setBackgroundPixmap ( bPix ); 396 // test->setBackgroundPixmap ( bPix );
387 // test->resize( 300, 400 ); 397 // test->resize( 300, 400 );
388 // test->show(); 398 // test->show();
389 // mView->setBackgroundMode(FixedPixmap ); 399 // mView->setBackgroundMode(FixedPixmap );
390 // mView->setBackgroundPixmap ( bPix ); 400 // mView->setBackgroundPixmap ( bPix );
391 // qDebug("%s ",mText.latin1()); 401 // qDebug("%s ",mText.latin1());
392} 402}
393 403
394void KOWhatsNextView::appendDay( int i, QDate eventDate ) 404void KOWhatsNextView::appendDay( int i, QDate eventDate )
395{ 405{
396 QString date; 406 QString date;
397 QString day = KGlobal::locale()->formatDate( eventDate , KOPrefs::instance()->mShortDateInViewer); 407 QString day = KGlobal::locale()->formatDate( eventDate , KOPrefs::instance()->mShortDateInViewer);
398 if ( ! KOPrefs::instance()->mShortDateInViewer && QApplication::desktop()->width() < 320 ) { 408 if ( ! KOPrefs::instance()->mShortDateInViewer && QApplication::desktop()->width() < 320 ) {
399 if ( i == 0 ) { 409 if ( i == 0 ) {
400 //mText += "<table>\n"; 410 //mText += "<table>\n";
401 return;//date = "<em><font color=\"#008000\"><em>" + day+"</font></em>"; 411 return;//date = "<em><font color=\"#008000\"><em>" + day+"</font></em>";
402 } 412 }
403 else if ( i == 1 ) 413 else if ( i == 1 )
404 date = "<em><font color=\"#000080\">" + day + "</font></em>" ; 414 date = "<em><font color=\"#000080\">" + day + "</font></em>" ;
405 else date = "<em><font color=\"#000080\">" + day + "</font></em>"; 415 else date = "<em><font color=\"#000080\">" + day + "</font></em>";
406 mText += "<h2>" + date + "</h2>\n"; 416 mText += "<h2>" + date + "</h2>\n";
407 //mText += "<big><big><strong>" + date + "</strong></big></big>\n"; 417 //mText += "<big><big><strong>" + date + "</strong></big></big>\n";
408 mText += "<table>\n"; 418 mText += "<table>\n";
409 419
410 420
411 421
412 } else { 422 } else {
413 if ( i == 0 ) { 423 if ( i == 0 ) {
414 //mText += "<table>\n"; 424 //mText += "<table>\n";
415 return;// date = "<font color=\"#008000\"><em>" +i18n("Today: ") +"</em>" + day+"</font>"; 425 return;// date = "<font color=\"#008000\"><em>" +i18n("Today: ") +"</em>" + day+"</font>";
416 } 426 }
417 427
418#ifdef DESKTOP_VERSION 428#ifdef DESKTOP_VERSION
419 else if ( i == 1 ) { 429 else if ( i == 1 ) {
420 date = "<h2><em><font color=\"#000080\">" + i18n("Tomorrow: ") + day +"</font></em></h2>" ; 430 date = "<h2><em><font color=\"#000080\">" + i18n("Tomorrow: ") + day +"</font></em></h2>" ;
421 } 431 }
422 else date = "<h2><em><font color=\"#000080\">" + i18n("In %1 days: ").arg( i ) +day + "</font></em></h2>"; 432 else date = "<h2><em><font color=\"#000080\">" + i18n("In %1 days: ").arg( i ) +day + "</font></em></h2>";
423#else 433#else
424 else if ( i == 1 ) { 434 else if ( i == 1 ) {
425 date = "<em><font color=\"#000080\">" + i18n("Tomorrow: ") + day +"</font></em>" ; 435 date = "<em><font color=\"#000080\">" + i18n("Tomorrow: ") + day +"</font></em>" ;
426 } 436 }
427 else date = "<em><font color=\"#000080\">" + i18n("In %1 days: ").arg( i ) +day + "</font></em>"; 437 else date = "<em><font color=\"#000080\">" + i18n("In %1 days: ").arg( i ) +day + "</font></em>";
428 438
429#endif 439#endif
430 mText += "<h2>" + date + "</h2>\n"; 440 mText += "<h2>" + date + "</h2>\n";
431 //mText += "<big><big><strong>" + date + "</strong></big></big>\n"; 441 //mText += "<big><big><strong>" + date + "</strong></big></big>\n";
432 mText += "<table>\n"; 442 mText += "<table>\n";
433 } 443 }
434} 444}
435 445
436 446
437void KOWhatsNextView::showDates(const QDate &, const QDate &) 447void KOWhatsNextView::showDates(const QDate &, const QDate &)
438{ 448{
439 updateView(); 449 updateView();
440} 450}
441 451
442void KOWhatsNextView::showEvents(QPtrList<Event>) 452void KOWhatsNextView::showEvents(QPtrList<Event>)
443{ 453{
444} 454}
445 455
446void KOWhatsNextView::changeEventDisplay(Event *, int action) 456void KOWhatsNextView::changeEventDisplay(Event *, int action)
447{ 457{
448 switch(action) { 458 switch(action) {
449 case KOGlobals::EVENTADDED: 459 case KOGlobals::EVENTADDED:
450 updateView(); 460 updateView();
451 break; 461 break;
452 case KOGlobals::EVENTEDITED: 462 case KOGlobals::EVENTEDITED:
453 updateView(); 463 updateView();
454 break; 464 break;
455 case KOGlobals::EVENTDELETED: 465 case KOGlobals::EVENTDELETED:
456 updateView(); 466 updateView();
457 break; 467 break;
458 default: 468 default:
459 updateView(); 469 updateView();
460 kdDebug() << "KOWhatsNextView::changeEventDisplay(): Illegal action " << action << endl; 470 kdDebug() << "KOWhatsNextView::changeEventDisplay(): Illegal action " << action << endl;
461 } 471 }
462} 472}
463 473
464bool KOWhatsNextView::appendEvent(Incidence *ev, bool reply, bool notRed, bool appendTable ) 474bool KOWhatsNextView::appendEvent(Incidence *ev, bool reply, bool notRed, bool appendTable )
465{ 475{
466 if ( !KOPrefs::instance()->mShowSyncEvents && ev->uid().left(15) == QString("last-syncEvent-") ) 476 if ( !KOPrefs::instance()->mShowSyncEvents && ev->uid().left(15) == QString("last-syncEvent-") )
467 return false; 477 return false;
468 QDateTime cdt = QDateTime::currentDateTime(); 478 QDateTime cdt = QDateTime::currentDateTime();
469 QDateTime noc; 479 QDateTime noc;
470 QString tempText; 480 QString tempText;
471 if ( appendTable && !notRed ) { 481 if ( appendTable && !notRed ) {
472 tempText = "<table>"; 482 tempText = "<table>";
473 } 483 }
474 bool ok = true; 484 bool ok = true;
475 if ( reply ) { 485 if ( reply ) {
476 noc = ev->getNextOccurence( cdt, &ok ); 486 noc = ev->getNextOccurence( cdt, &ok );
477 if (! ok && ev->type() == "Event") 487 if (! ok && ev->type() == "Event")
478 return false; 488 return false;
479 } 489 }
480 bool bDay = false; 490 bool bDay = false;
481 if ( ev->isBirthday() || ev->isAnniversary() ) 491 if ( ev->isBirthday() || ev->isAnniversary() )
482 bDay = true; 492 bDay = true;
483 tempText += "<tr><td><b>"; 493 tempText += "<tr><td><b>";
484 if (ev->type()=="Event") { 494 if (ev->type()=="Event") {
485 if (reply) { 495 if (reply) {
486 if (!ev->doesFloat()) 496 if (!ev->doesFloat())
487 tempText += KGlobal::locale()->formatDateTime( noc , KOPrefs::instance()->mShortDateInViewer) +": "; 497 tempText += KGlobal::locale()->formatDateTime( noc , KOPrefs::instance()->mShortDateInViewer) +": ";
488 else 498 else
489 tempText += KGlobal::locale()->formatDate( noc.date() , KOPrefs::instance()->mShortDateInViewer) +": "; 499 tempText += KGlobal::locale()->formatDate( noc.date() , KOPrefs::instance()->mShortDateInViewer) +": ";
490 500
491 } else { 501 } else {
492 if (!ev->doesFloat()) { 502 if (!ev->doesFloat()) {
493 Event *event = static_cast<Event *>(ev); 503 Event *event = static_cast<Event *>(ev);
494 QDateTime st,end; 504 QDateTime st,end;
495 if ( event->recurrence()->doesRecur() ) { 505 if ( event->recurrence()->doesRecur() ) {
496 QDate recDate= mEventDate; 506 QDate recDate= mEventDate;
497 int days = event->dtStart().date().daysTo (event->dtEnd().date() ); 507 int days = event->dtStart().date().daysTo (event->dtEnd().date() );
498 while ( ! event->recursOn( recDate ) ) { 508 while ( ! event->recursOn( recDate ) ) {
499 recDate = recDate.addDays( -1 ); 509 recDate = recDate.addDays( -1 );
500 510
501 } 511 }
502 st = QDateTime ( recDate, event->dtStart().time() ); 512 st = QDateTime ( recDate, event->dtStart().time() );
503 end = QDateTime ( recDate.addDays( days ), event->dtEnd().time() ); 513 end = QDateTime ( recDate.addDays( days ), event->dtEnd().time() );
504 } 514 }
505 else { 515 else {
506 st = event->dtStart(); 516 st = event->dtStart();
507 end = event->dtEnd(); 517 end = event->dtEnd();
508 } 518 }
509 519
510 520
511 QString dateText; 521 QString dateText;
512 // qDebug("%s %s %s %s ", mEventDate.toString().latin1(),event->summary().latin1(), st .toString().latin1(),end.toString().latin1() ); 522 // qDebug("%s %s %s %s ", mEventDate.toString().latin1(),event->summary().latin1(), st .toString().latin1(),end.toString().latin1() );
513 if ( st.date() < mEventDate ) 523 if ( st.date() < mEventDate )
514 dateText = "++:++-"; 524 dateText = "++:++-";
515 else 525 else
516 dateText = event->dtStartTimeStr() + "-"; 526 dateText = event->dtStartTimeStr() + "-";
517 if ( end.date() > mEventDate ) 527 if ( end.date() > mEventDate )
518 dateText += "++:++"; 528 dateText += "++:++";
519 else 529 else
520 dateText += event->dtEndTimeStr(); 530 dateText += event->dtEndTimeStr();
521 if ( notRed ) 531 if ( notRed )
522 tempText += dateText; 532 tempText += dateText;
523 else { 533 else {
524 if ( end < cdt ) { 534 if ( end < cdt ) {
525 if ( !KOPrefs::instance()->mWNViewShowsPast ) 535 if ( !KOPrefs::instance()->mWNViewShowsPast )
526 return false; 536 return false;
527 tempText += "<font color=\"#F00000\">" + dateText + "</font>"; 537 tempText += "<font color=\"#F00000\">" + dateText + "</font>";
528 } 538 }
529 else if ( st < cdt ) 539 else if ( st < cdt )
530 tempText += "<font color=\"#008000\">" + dateText + "</font>"; 540 tempText += "<font color=\"#008000\">" + dateText + "</font>";
531 else 541 else
532 tempText += dateText; 542 tempText += dateText;
533 543
534 } 544 }
535 545
536 } else { 546 } else {
537 if ( bDay ) { 547 if ( bDay ) {
538 548
539 if ( ev->isBirthday()) 549 if ( ev->isBirthday())
540 tempText += "<font color=\"#00B000\">" + i18n("Birthday") +":</font>"; 550 tempText += "<font color=\"#00B000\">" + i18n("Birthday") +":</font>";
541 else 551 else
542 tempText += "<font color=\"#00B0000\">" + i18n("Anniversary")+":</font>"; 552 tempText += "<font color=\"#00B0000\">" + i18n("Anniversary")+":</font>";
543 } else { 553 } else {
544 tempText += i18n("Allday:"); 554 tempText += i18n("Allday:");
545 } 555 }
546 556
547 } 557 }
548 } 558 }
549 } else { 559 } else {
550 mTodos.append( ev ); 560 mTodos.append( ev );
551 tempText += i18n("ToDo:"); 561 tempText += i18n("ToDo:");
552 if (reply) { 562 if (reply) {
553 tempText += " "; 563 tempText += " ";
554 if ( noc != cdt ) { 564 if ( noc != cdt ) {
555 tempText += KGlobal::locale()->formatDate( noc.date() , KOPrefs::instance()->mShortDateInViewer) +": "; 565 tempText += KGlobal::locale()->formatDate( noc.date() , KOPrefs::instance()->mShortDateInViewer) +": ";
556 } 566 }
557 } else { 567 } else {
558 if ( ((Todo*)ev)->dtDue().date() < QDate::currentDate() ) { 568 if ( ((Todo*)ev)->dtDue().date() < QDate::currentDate() ) {
559 // tempText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>"; 569 // tempText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>";
560 QString dfs = KGlobal::locale()->dateFormatShort(); 570 QString dfs = KGlobal::locale()->dateFormatShort();
561 KGlobal::locale()->setDateFormatShort("%d.%b"); 571 KGlobal::locale()->setDateFormatShort("%d.%b");
562 tempText +="<font color=\"#F00000\">" + KGlobal::locale()->formatDate(((Todo*)ev)->dtDue().date(), true, KLocale::Userdefined) + "</font>"; 572 tempText +="<font color=\"#F00000\">" + KGlobal::locale()->formatDate(((Todo*)ev)->dtDue().date(), true, KLocale::Userdefined) + "</font>";
563 KGlobal::locale()->setDateFormatShort(dfs); 573 KGlobal::locale()->setDateFormatShort(dfs);
564 } else { 574 } else {
565 if (!ev->doesFloat() ) 575 if (!ev->doesFloat() )
566 if( ( (Todo*)ev)->dtDue() < cdt ) { 576 if( ( (Todo*)ev)->dtDue() < cdt ) {
567 tempText +="<font color=\"#F00000\">" + ((Todo*)ev)->dtDueTimeStr() + "</font>"; 577 tempText +="<font color=\"#F00000\">" + ((Todo*)ev)->dtDueTimeStr() + "</font>";
568 578
569 579
570 } else 580 } else
571 tempText +=((Todo*)ev)->dtDueTimeStr(); 581 tempText +=((Todo*)ev)->dtDueTimeStr();
572 mTodos.append( ev ); 582 mTodos.append( ev );
573 } 583 }
574 } 584 }
575 } 585 }
576 tempText += "</b></td><td>"; 586 tempText += "</b></td><td>";
577 bool needClose = false; 587 bool needClose = false;
578 if ( ev->cancelled() ) { 588 if ( ev->cancelled() ) {
579 tempText += "<font color=\"#F00000\">[c"; 589 tempText += "<font color=\"#F00000\">[c";
580 needClose =true; 590 needClose =true;
581 591
582 } 592 }
583 if ( ev->isAlarmEnabled() ) { 593 if ( ev->isAlarmEnabled() ) {
584 if ( !needClose) 594 if ( !needClose)
585 tempText +="["; 595 tempText +="[";
586 tempText += "a"; 596 tempText += "a";
587 needClose =true; 597 needClose =true;
588 598
589 } 599 }
590 if ( ev->description().length() > 0 ) { 600 if ( ev->description().length() > 0 ) {
591 if ( !needClose) 601 if ( !needClose)
592 tempText +="["; 602 tempText +="[";
593 tempText += "i"; 603 tempText += "i";