-rw-r--r-- | kabc/addresseeview.cpp | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp index 8f104e0..aa96210 100644 --- a/kabc/addresseeview.cpp +++ b/kabc/addresseeview.cpp | |||
@@ -198,135 +198,171 @@ void AddresseeView::setAddressee( const KABC::Addressee& mAddressee ) | |||
198 | QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace(); | 198 | QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace(); |
199 | //US formattedAddress = formattedAddress.replace( '\n', "<br>" ); | 199 | //US formattedAddress = formattedAddress.replace( '\n', "<br>" ); |
200 | //qDebug("adresss %s ",formattedAddress.latin1() ); | 200 | //qDebug("adresss %s ",formattedAddress.latin1() ); |
201 | formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" ); | 201 | formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" ); |
202 | //qDebug("AddresseeView::setAddressee has to be verified."); | 202 | //qDebug("AddresseeView::setAddressee has to be verified."); |
203 | 203 | ||
204 | dynamicPart += QString( | 204 | dynamicPart += QString( |
205 | "<tr><td align=\"right\"><b>%1</b></td>" | 205 | "<tr><td align=\"right\"><b>%1</b></td>" |
206 | "<td align=\"left\">%2</td></tr>" ) | 206 | "<td align=\"left\">%2</td></tr>" ) |
207 | .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) | 207 | .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) |
208 | .arg( formattedAddress ); | 208 | .arg( formattedAddress ); |
209 | } else { | 209 | } else { |
210 | 210 | ||
211 | dynamicPart += QString( | 211 | dynamicPart += QString( |
212 | "<tr><td align=\"right\"><b>%1</b></td>" | 212 | "<tr><td align=\"right\"><b>%1</b></td>" |
213 | "<td align=\"left\">%2</td></tr>" ) | 213 | "<td align=\"left\">%2</td></tr>" ) |
214 | .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) | 214 | .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) |
215 | //US .arg( (*addrIt).label().replace( '\n', "<br>" ) ); | 215 | //US .arg( (*addrIt).label().replace( '\n', "<br>" ) ); |
216 | .arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ ); | 216 | .arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ ); |
217 | 217 | ||
218 | } | 218 | } |
219 | } | 219 | } |
220 | 220 | ||
221 | QString notes; | 221 | QString notes; |
222 | if ( !mAddressee.note().isEmpty() ) { | 222 | if ( !mAddressee.note().isEmpty() ) { |
223 | notes = QString( | 223 | notes = QString( |
224 | "<tr>" | 224 | "<tr>" |
225 | "<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label | 225 | "<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label |
226 | "<td align=\"left\">%2</td>" // note | 226 | "<td align=\"left\">%2</td>" // note |
227 | "</tr>" ).arg( i18n( "Notes" ) ) | 227 | "</tr>" ).arg( i18n( "Notes" ) ) |
228 | //US .arg( mAddressee.note().replace( '\n', "<br>" ) ); | 228 | //US .arg( mAddressee.note().replace( '\n', "<br>" ) ); |
229 | .arg( mAddressee.note().replace( QRegExp("\n"), "<br>" ) ); | 229 | .arg( mAddressee.note().replace( QRegExp("\n"), "<br>" ) ); |
230 | //qDebug("AddresseeView::setAddressee has to be verified."); | 230 | //qDebug("AddresseeView::setAddressee has to be verified."); |
231 | } | 231 | } |
232 | 232 | ||
233 | QString aRole = ""; | 233 | QString aRole = ""; |
234 | QString aOrga = ""; | 234 | QString aOrga = ""; |
235 | if ( true /*!mAddressee.role().isEmpty()*/ ) { | 235 | if ( true /*!mAddressee.role().isEmpty()*/ ) { |
236 | aRole = "<tr>" | 236 | aRole = "<tr>" |
237 | "<td align=\"left\">" + mAddressee.role() + "</td>" | 237 | "<td align=\"left\">" + mAddressee.role() + "</td>" |
238 | "</tr>"; | 238 | "</tr>"; |
239 | } | 239 | } |
240 | if ( true /*!mAddressee.organization().isEmpty()*/ ) { | 240 | if ( true /*!mAddressee.organization().isEmpty()*/ ) { |
241 | aOrga = "<tr>" | 241 | aOrga = "<tr>" |
242 | "<td align=\"left\">" + mAddressee.organization() + "</td>" | 242 | "<td align=\"left\">" + mAddressee.organization() + "</td>" |
243 | "</tr>"; | 243 | "</tr>"; |
244 | } | 244 | } |
245 | mText = ""; | 245 | mText = ""; |
246 | QString picString = ""; | 246 | QString picString = ""; |
247 | KABC::Picture picture = mAddressee.photo(); | 247 | KABC::Picture picture = mAddressee.photo(); |
248 | bool picAvailintern = false; | 248 | bool picAvailintern = false; |
249 | bool picAvailUrl = false; | 249 | bool picAvailUrl = false; |
250 | if (! picture.undefined() ) { | 250 | if (! picture.undefined() ) { |
251 | picAvailintern = (picture.isIntern() && !picture.data().isNull()); | 251 | picAvailintern = (picture.isIntern() && !picture.data().isNull()); |
252 | picAvailUrl = !picture.isIntern() && QFile::exists(picture.url() ); | 252 | picAvailUrl = !picture.isIntern() && QFile::exists(picture.url() ); |
253 | } | 253 | } |
254 | if ( picAvailUrl || picAvailintern || QApplication::desktop()->width() > 320 ) { | 254 | if ( picAvailUrl || picAvailintern || QApplication::desktop()->width() > 320 ) { |
255 | picString = "<img src=\"myimage\" width=\"50\" height=\"70\">"; | 255 | picString = "<img src=\"myimage\" width=\"50\" height=\"70\">"; |
256 | if ( picAvailintern ) { | 256 | if ( picAvailintern ) { |
257 | QMimeSourceFactory::defaultFactory()->setImage( "myimage", picture.data() ); | 257 | QMimeSourceFactory::defaultFactory()->setImage( "myimage", picture.data() ); |
258 | } else { | 258 | } else { |
259 | if ( picAvailUrl ) { | 259 | if ( picAvailUrl ) { |
260 | QMimeSourceFactory::defaultFactory()->setPixmap( "myimage", QPixmap( picture.url() )); | 260 | QMimeSourceFactory::defaultFactory()->setPixmap( "myimage", QPixmap( picture.url() )); |
261 | } else { | 261 | } else { |
262 | static bool setDefaultImage = false; | 262 | if ( !mAddressee.custom( "KADDRESSBOOK", "X-Children" ).isEmpty() ) { |
263 | if ( !setDefaultImage ) { | 263 | static bool setDefaultImageChildren = false; |
264 | qDebug("Setting default pixmap "); | 264 | if ( !setDefaultImageChildren ) { |
265 | QMimeSourceFactory::defaultFactory()->setPixmap( "defaultPenguin", KGlobal::iconLoader()->loadIcon( "package_toys", KIcon::Desktop, 128 ) ); | 265 | QMimeSourceFactory::defaultFactory()->setPixmap( "familyIcon", KGlobal::iconLoader()->loadIcon( "ic_kids", KIcon::Desktop, 128 ) ); |
266 | setDefaultImage = true; | 266 | setDefaultImageChildren = true; |
267 | } | ||
268 | picString = "<img src=\"familyIcon\" width=\"64\" height=\"64\">"; | ||
269 | |||
270 | } else if ( !mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ).isEmpty() ) { | ||
271 | static bool setDefaultImagepouses = false; | ||
272 | if ( !setDefaultImagepouses ) { | ||
273 | QMimeSourceFactory::defaultFactory()->setPixmap( "SpousesIcon", KGlobal::iconLoader()->loadIcon( "ic_family", KIcon::Desktop, 128 ) ); | ||
274 | setDefaultImagepouses = true; | ||
275 | } | ||
276 | picString = "<img src=\"SpousesIcon\" width=\"64\" height=\"64\">"; | ||
277 | } else { | ||
278 | QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); | ||
279 | if ( gen == "male" ) { | ||
280 | static bool setDefaultImageMale = false; | ||
281 | if ( !setDefaultImageMale ) { | ||
282 | QMimeSourceFactory::defaultFactory()->setPixmap( "MaleIcon", KGlobal::iconLoader()->loadIcon( "ic_male", KIcon::Desktop, 128 ) ); | ||
283 | setDefaultImageMale = true; | ||
284 | } | ||
285 | picString = "<img src=\"MaleIcon\" width=\"64\" height=\"64\">"; | ||
286 | |||
287 | } else if ( gen == "female" ) { | ||
288 | static bool setDefaultImageFemale = false; | ||
289 | if ( !setDefaultImageFemale ) { | ||
290 | QMimeSourceFactory::defaultFactory()->setPixmap( "FemaleIcon", KGlobal::iconLoader()->loadIcon( "ic_female", KIcon::Desktop, 128 ) ); | ||
291 | setDefaultImageFemale = true; | ||
292 | } | ||
293 | picString = "<img src=\"FemaleIcon\" width=\"64\" height=\"64\">"; | ||
294 | |||
295 | } else { | ||
296 | static bool setDefaultImage = false; | ||
297 | if ( !setDefaultImage ) { | ||
298 | qDebug("Setting default pixmap "); | ||
299 | QMimeSourceFactory::defaultFactory()->setPixmap( "defaultIcon", KGlobal::iconLoader()->loadIcon( "ic_penguin", KIcon::Desktop, 128 ) ); | ||
300 | setDefaultImage = true; | ||
301 | } | ||
302 | picString = "<img src=\"defaultIcon\" width=\"64\" height=\"64\">"; | ||
303 | } | ||
267 | } | 304 | } |
268 | picString = "<img src=\"defaultPenguin\" width=\"64\" height=\"64\">"; | ||
269 | } | 305 | } |
270 | } | 306 | } |
271 | mText = QString::fromLatin1( | 307 | mText = QString::fromLatin1( |
272 | "<html>" | 308 | "<html>" |
273 | "<body text=\"%1\" bgcolor=\"%2\">" // text and background color | 309 | "<body text=\"%1\" bgcolor=\"%2\">" // text and background color |
274 | "<table>" | 310 | "<table>" |
275 | "<tr>" | 311 | "<tr>" |
276 | "<td rowspan=\"3\" align=\"right\" valign=\"top\">" | 312 | "<td rowspan=\"3\" align=\"right\" valign=\"top\">" |
277 | "%3" | 313 | "%3" |
278 | "</td>" | 314 | "</td>" |
279 | "<td align=\"left\"><font size=\"+2\"><b>%4</b></font></td>" // name | 315 | "<td align=\"left\"><font size=\"+2\"><b>%4</b></font></td>" // name |
280 | "</tr>" | 316 | "</tr>" |
281 | "%5" // role | 317 | "%5" // role |
282 | "%6" // organization | 318 | "%6" // organization |
283 | "<td colspan=\"2\"> </td>" | 319 | "<td colspan=\"2\"> </td>" |
284 | "%7" // dynamic part | 320 | "%7" // dynamic part |
285 | "%8" // notes | 321 | "%8" // notes |
286 | "</table>" | 322 | "</table>" |
287 | "</body>" | 323 | "</body>" |
288 | "</html>") | 324 | "</html>") |
289 | //US | 325 | //US |
290 | .arg( /*KGlobalSettings::textColor().name()*/ "black" ) | 326 | .arg( /*KGlobalSettings::textColor().name()*/ "black" ) |
291 | //US | 327 | //US |
292 | .arg( /*KGlobalSettings::baseColor().name()*/ "white" ) | 328 | .arg( /*KGlobalSettings::baseColor().name()*/ "white" ) |
293 | .arg( picString ) | 329 | .arg( picString ) |
294 | .arg( name ) | 330 | .arg( name ) |
295 | .arg( aRole ) | 331 | .arg( aRole ) |
296 | .arg( aOrga ) | 332 | .arg( aOrga ) |
297 | .arg( dynamicPart ) | 333 | .arg( dynamicPart ) |
298 | .arg( notes ); | 334 | .arg( notes ); |
299 | 335 | ||
300 | } else { // no picture! | 336 | } else { // no picture! |
301 | 337 | ||
302 | mText = "<table width=\"100%\">\n"; | 338 | mText = "<table width=\"100%\">\n"; |
303 | //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; | 339 | //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; |
304 | #ifdef DESKTOP_VERSION | 340 | #ifdef DESKTOP_VERSION |
305 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h1>"; | 341 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h1>"; |
306 | mText += "<font color=\"#FFFFFF\">" + name +"</font></h1>"; | 342 | mText += "<font color=\"#FFFFFF\">" + name +"</font></h1>"; |
307 | #else | 343 | #else |
308 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h3>"; | 344 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h3>"; |
309 | mText += "<font color=\"#FFFFFF\"> " + name +"</font></h3>"; | 345 | mText += "<font color=\"#FFFFFF\"> " + name +"</font></h3>"; |
310 | #endif | 346 | #endif |
311 | 347 | ||
312 | mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>"; | 348 | mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>"; |
313 | 349 | ||
314 | mText += "<table><td colspan=\"2\"> </td>"; | 350 | mText += "<table><td colspan=\"2\"> </td>"; |
315 | /* | 351 | /* |
316 | mText += QString("<tr><td align=\"right\"><b2>%1</b2></td>" | 352 | mText += QString("<tr><td align=\"right\"><b2>%1</b2></td>" |
317 | "<td align=\"left\"><b>%2</b></td></tr>" ) | 353 | "<td align=\"left\"><b>%2</b></td></tr>" ) |
318 | .arg( i18n(" ") ) | 354 | .arg( i18n(" ") ) |
319 | .arg( name ); | 355 | .arg( name ); |
320 | */ | 356 | */ |
321 | if ( ! mAddressee.role().isEmpty() ) | 357 | if ( ! mAddressee.role().isEmpty() ) |
322 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" | 358 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" |
323 | "<td align=\"left\">%2</td></tr>" ) | 359 | "<td align=\"left\">%2</td></tr>" ) |
324 | .arg( i18n(" ") ) | 360 | .arg( i18n(" ") ) |
325 | .arg( mAddressee.role()); | 361 | .arg( mAddressee.role()); |
326 | if ( ! mAddressee.organization().isEmpty() ) | 362 | if ( ! mAddressee.organization().isEmpty() ) |
327 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" | 363 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" |
328 | "<td align=\"left\">%2</td></tr>" ) | 364 | "<td align=\"left\">%2</td></tr>" ) |
329 | .arg( i18n(" ") ) | 365 | .arg( i18n(" ") ) |
330 | .arg( mAddressee.organization()); | 366 | .arg( mAddressee.organization()); |
331 | mText += dynamicPart; | 367 | mText += dynamicPart; |
332 | mText += notes; | 368 | mText += notes; |