add: if ( event->customProperty("KABC","BIRTHDAY")== "YES" ) { tmpStr+=eventViewerFormatBirthday( event ); return tmpStr; }
context: static QString eventViewerFormatEvent( Event *event ){  if ( !event ) return QString::null;  QString tmpStr( eventViewerAddTag( "h1", event->summary() ) );  if ( !event->location().isEmpty() ) {    tmpStr += eventViewerAddTag( "b", i18n("Location: ") );    tmpStr += event->location();    tmpStr += "<br>";  }  if ( event->doesFloat() ) {    if ( event->isMultiDay() ) {      tmpStr += i18n("<b>From:</b> %1 <b>To:</b> %2")                    .arg( event->dtStartDateStr() )                    .arg( event->dtEndDateStr() );    } else {      tmpStr += i18n("<b>On:</b> %1").arg( event->dtStartDateStr() );    }  } else {    if ( event->isMultiDay() ) {      tmpStr += i18n("<b>From:</b> %1 <b>To:</b> %2")                    .arg( event->dtStartStr() )                    .arg( event->dtEndStr() );    } else {      tmpStr += i18n("<b>On:</b> %1 <b>From:</b> %2 <b>To:</b> %3")                    .arg( event->dtStartDateStr() )                    .arg( event->dtStartTimeStr() )                    .arg( event->dtEndTimeStr() );    }  }  if ( !event->description().isEmpty() )    tmpStr += eventViewerAddTag( "p", event->description() );  tmpStr += eventViewerFormatCategories( event );  if ( event->doesRecur() ) {    QDateTime dt = event->recurrence()->getNextDateTime(                                          QDateTime::currentDateTime() );    tmpStr += eventViewerAddTag( "p", "<em>" +      i18n("This is a recurring event. The next occurrence will be on %1.").arg(      KGlobal::locale()->formatDateTime( dt, true ) ) + "</em>" );  }  tmpStr += eventViewerFormatReadOnly( event );  tmpStr += eventViewerFormatAttendees( event );  tmpStr += eventViewerFormatAttachments( event );  return tmpStr;}