QVariant ContactsTreeModel::entityData( const Item &item, int column, int role ) const { if ( item.mimeType() == KABC::Addressee::mimeType() ) { if ( !item.hasPayload<KABC::Addressee>() ) { // Pass modeltest if ( role == Qt::DisplayRole ) return item.remoteId(); return QVariant(); } const KABC::Addressee contact = item.payload<KABC::Addressee>(); if ( role == Qt::DecorationRole ) { if ( column == 0 ) { const KABC::Picture picture = contact.photo(); if ( picture.isIntern() ) { return picture.data().scaled( QSize( 16, 16 ), Qt::KeepAspectRatio ); } else { return KIcon( QLatin1String( "x-office-contact" ) ); } } return QVariant(); } else if ( (role == Qt::DisplayRole) || (role == Qt::EditRole) ) { switch ( mColumns.at( column ) ) { case FullName: return contact.realName(); break; case Birthday: if ( contact.birthday().isValid() ) return KGlobal::locale()->formatDate( contact.birthday().date() ); break; case HomeAddress: { const KABC::Address address = contact.address( KABC::Address::Home ); if ( !address.isEmpty() ) return address.formattedAddress(); } break; case BusinessAddress: { const KABC::Address address = contact.address( KABC::Address::Work ); if ( !address.isEmpty() ) return address.formattedAddress(); } break; case PhoneNumbers: { QStringList values; const KABC::PhoneNumber::List numbers = contact.phoneNumbers(); foreach ( const KABC::PhoneNumber &number, numbers ) values += number.number(); return values.join( "\n" ); } break; case PreferredEmail: return contact.preferredEmail(); break; case AllEmails: return contact.emails().join( "\n" ); break; case Organization: return contact.organization(); break; case Homepage: return contact.url().url(); break; case Note: return contact.note(); break; } } } else if ( item.mimeType() == KABC::ContactGroup::mimeType() ) {
QString KWMailMergeKABC::getValue( const QString &name, int record ) const { kdDebug() << "KWMailMergeKABC::getValue(" << name << ", " << record << ")" << endl; if ( record < 0 ) return name; // This doesn't ever happen, right? So why is it there? Dirk Schmidt if ( record == -1 && _iterator == _addressBook->end() ) return ""; // // Set the iterator to the asked Addressee. // bool uidAvailable = false; if ( record != -1 ) { int counter = 0; for ( _UIDIterator = _exclusiveUIDs.begin(); _UIDIterator != _exclusiveUIDs.end() && counter < record; _UIDIterator++ ) { counter++; } for ( _iterator = _addressBook->begin(); _iterator != _addressBook->end(); ++_iterator ) { if( _iterator->uid() == *_UIDIterator ) { uidAvailable = true; break; } } } if( !uidAvailable ) { return ( i18n ( "KAddressbook entry '%1' not available." ).arg( *_UIDIterator ) ); } KABC::Addressee addr = *_iterator; _iterator++; // Don't know why. Could be removed? Dirk Schmidt // // Return the asked variable. // if ( name == "KAddressbook identifier" ) return addr.uid(); if ( name == "Name" ) return addr.name(); if ( name == "Formatted name" ) return addr.formattedName(); if ( name == "Family names" ) return addr.familyName(); if ( name == "Given name" ) return addr.givenName(); if ( name == "Additional names" ) return addr.additionalName(); if ( name == "Honorific prefixes" ) return addr.prefix(); if ( name == "Honorific suffixes" ) return addr.suffix(); if ( name == "Nick name" ) return addr.nickName(); if ( name == "Birthday" ) return KGlobal::locale()->formatDate( addr.birthday().date() ); if ( name == "Home address: Street" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.street(); } if ( name == "Home address: Locality" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.locality(); } if ( name == "Home address: Region" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.region(); } if ( name == "Home address: Postal code" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.postalCode(); } if ( name == "Home address: Country" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.country(); } if ( name == "Home address: Label" ) { KABC::Address a = addr.address( KABC::Address::Home ); return a.label(); } if ( name == "Business address: Street" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.street(); } if ( name == "Business address: Locality" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.locality(); } if ( name == "Business address: Region" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.region(); } if ( name == "Business address: Postal code" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.postalCode(); } if ( name == "Business address: Country" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.country(); } if ( name == "Business address: Label" ) { KABC::Address a = addr.address( KABC::Address::Work ); return a.label(); } if ( name == "Prefered address: Street" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.street(); } if ( name == "Prefered address: Locality" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.locality(); } if ( name == "Prefered address: Region" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.region(); } if ( name == "Prefered address: Postal code" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.postalCode(); } if ( name == "Prefered address: Country" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.country(); } if ( name == "Prefered address: Label" ) { KABC::Address a = addr.address( KABC::Address::Pref ); return a.label(); } if ( name == "Home phone" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Home ); return phone.number(); } if ( name == "Business phone" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Work ); return phone.number(); } if ( name == "Mobile phone" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Cell ); return phone.number(); } if ( name == "Home fax" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax ); return phone.number(); } if ( name == "Business fax" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax ); return phone.number(); } if ( name == "Car phone" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Car ); return phone.number(); } if ( name == "ISDN" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Isdn ); return phone.number(); } if ( name == "Pager" ) { KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Pager ); return phone.number(); } if ( name == "Email" ) return addr.preferredEmail(); if ( name == "Mailer" ) return addr.mailer(); if ( name == "Time zone" ) { KABC::TimeZone zone = addr.timeZone(); return QString::number( zone.offset() ); } if ( name == "Geographic position" ) { KABC::Geo geo = addr.geo(); QString lat; QString longi; if( geo.latitude()<0 ) lat = QString( i18n("%1 South") ).arg( -geo.latitude() ); else lat = QString( i18n("%1 North") ).arg( geo.latitude() ); if( geo.longitude()<0 ) // There is something going wrong, because "W" is replaced by "q ". // Needs fix. longi = QString( i18n("%1 West") ).arg( -geo.longitude() ); else longi = QString( i18n("%1 East") ).arg( geo.longitude() ); return i18n( "Geographic coordinates", "%1, %2" ).arg ( lat, longi ); } if ( name == "Title" ) return addr.title(); if ( name == "Role" ) return addr.role(); if ( name == "Organization" ) return addr.organization(); if ( name == "Note" ) return addr.note(); if ( name == "productId" ) return addr.productId(); if ( name == "Revision" ) return KGlobal::locale()->formatDate( addr.revision().date() ); if ( name == "sortString" ) return addr.sortString(); if ( name == "URL" ) return addr.url().url(); if ( name == "Secrecy" ) { KABC::Secrecy secrecy = addr.secrecy(); return KABC::Secrecy::typeLabel( secrecy.type() ); } return ( i18n("Unkown mail merge variable: %1").arg ( name ) ) ; }
bool ContactListView::event( QEvent *e ) { if( e->type() != QEvent::ToolTip ) return K3ListView::event( e ); if ( !tooltips() ) return true; QHelpEvent * he = static_cast< QHelpEvent * >( e ); QPoint pnt = viewport()->mapFromGlobal( mapToGlobal( he->pos() ) ); Q3ListViewItem * item = itemAt ( pnt ); if ( item ) { ContactListViewItem *plvi = static_cast<ContactListViewItem *>( item ); QString s; //kDebug(5720) <<"Tip rec:" << r.x() <<"," << r.y() <<"," << r.width() // << "," << r.height(); KABC::Addressee a = plvi->addressee(); if (a.isEmpty()) return true; s += i18nc("label: value", "%1: %2", a.formattedNameLabel(), a.formattedName()); s += '\n'; s += i18nc("label: value", "%1: %2", a.organizationLabel(), a.organization()); QString notes = a.note().trimmed(); if ( !notes.isEmpty() ) { notes += '\n'; s += '\n' + i18nc("label: value", "%1: \n", a.noteLabel()); QFontMetrics fm( font() ); // Begin word wrap code based on QMultiLineEdit code int i = 0; bool doBreak = false; int linew = 0; int lastSpace = -1; int a = 0; int lastw = 0; while ( i < int(notes.length()) ) { doBreak = false; if ( notes[i] != '\n' ) linew += fm.width( notes[i] ); if ( lastSpace >= a && notes[i] != '\n' ) if (linew >= parentWidget()->width()) { doBreak = true; if ( lastSpace > a ) { i = lastSpace; linew = lastw; } else i = qMax( a, i-1 ); } if ( notes[i] == '\n' || doBreak ) { s += notes.mid( a, i - a + (doBreak?1:0) ) +'\n'; a = i + 1; lastSpace = a; linew = 0; } if ( notes[i].isSpace() ) { lastSpace = i; lastw = linew; } if ( lastSpace <= a ) { lastw = linew; } ++i; } } if ( s.isEmpty() ) QToolTip::hideText(); else QToolTip::showText( he->globalPos(), s ); } return true; }
QString CSVTemplate::fieldText(int column, const KABC::Addressee& addressee) const { if (column < 0 || addressee.isEmpty()) return QString(); if (m_columnToField.isEmpty()) return QString(); QMap<int, int>::const_iterator it = m_columnToField.find(column); if (it == m_columnToField.end()) return QString(); QString text; switch (it.value()) { case 0: // "Formatted Name" text = addressee.formattedName(); break; case 1: // "Family Name" text = addressee.familyName(); break; case 2: // "Given Name" text = addressee.givenName(); break; case 3: // "Additional Names" text = addressee.additionalName(); break; case 4: // "Honorific Prefixes" text = addressee.prefix(); break; case 5: // "Honorific Suffixes" text = addressee.suffix(); break; case 6: // "Nick Name" text = addressee.nickName(); break; case 7: // "Birthday" text = formatDate(addressee.birthday()); break; case 8: // "Home Address Street" text = addressee.address(Address::Home).street(); break; case 9: // "Home Address Locality" text = addressee.address(Address::Home).locality(); break; case 10: // "Home Address Region" text = addressee.address(Address::Home).region(); break; case 11: // "Home Address Postal Code" text = addressee.address(Address::Home).postalCode(); break; case 12: // "Home Address Country" text = addressee.address(Address::Home).country(); break; case 13: // "Home Address Label" text = addressee.address(Address::Home).label(); break; case 14: // "Business Address Street" text = addressee.address(Address::Work).street(); break; case 15: // "Business Address Locality" text = addressee.address(Address::Work).locality(); break; case 16: // "Business Address Region" text = addressee.address(Address::Work).region(); break; case 17: // "Business Address Postal Code" text = addressee.address(Address::Work).postalCode(); break; case 18: // "Business Address Country" text = addressee.address(Address::Work).country(); break; case 19: // "Business Address Label" text = addressee.address(Address::Work).label(); break; case 20: // "Home Phone" text = addressee.phoneNumber(PhoneNumber::Home).number(); break; case 21: // "Business Phone" text = addressee.phoneNumber(PhoneNumber::Work).number(); break; case 22: // "Mobile Phone" text = addressee.phoneNumber(PhoneNumber::Cell).number(); break; case 23: // "Home Fax" text = addressee.phoneNumber(PhoneNumber::Fax | PhoneNumber::Home).number(); break; case 24: // "Business Fax" text = addressee.phoneNumber(PhoneNumber::Fax | PhoneNumber::Work).number(); break; case 25: // "Car Phone" text = addressee.phoneNumber(PhoneNumber::Car).number(); break; case 26: // "Isdn" text = addressee.phoneNumber(PhoneNumber::Isdn).number(); break; case 27: // "Pager" text = addressee.phoneNumber(PhoneNumber::Pager).number(); break; case 28: // "Email Address" text = addressee.preferredEmail(); break; case 29: // "Mail Client" text = addressee.mailer(); break; case 30: // "Title" text = addressee.title(); break; case 31: // "Role" text = addressee.role(); break; case 32: // "Organization" text = addressee.organization(); break; case 33: // "Note" text = addressee.note(); break; case 34: // "URL" text = addressee.url().prettyUrl(); break; case 35: // "Department" break; case 36: // "Profession" break; case 37: // "Assistant's Name" break; case 38: // "Manager's Name" break; case 39: // "Spouse's Name" break; case 40: // "Office" break; case 41: // "IM Address" break; case 42: // "Anniversary" break; default: break; } return text; }
static QString getNote(const KABC::Addressee &addressee) { return addressee.note(); }