VCard: email list now displays and stores on server vcard
This commit is contained in:
parent
0b57e6a77f
commit
5bbacad84a
9 changed files with 235 additions and 7 deletions
|
@ -1361,6 +1361,23 @@ void Core::Account::onVCardReceived(const QXmppVCardIq& card)
|
|||
vCard.setOrgUnit(org.unit());
|
||||
vCard.setOrgTitle(org.title());
|
||||
|
||||
QList<QXmppVCardEmail> emails = card.emails();
|
||||
std::deque<Shared::VCard::Email>& myEmails = vCard.getEmails();
|
||||
for (const QXmppVCardEmail& em : emails) {
|
||||
Shared::VCard::Email mEm(em.address());
|
||||
QXmppVCardEmail::Type et = em.type();
|
||||
if (et & QXmppVCardEmail::Preferred) {
|
||||
mEm.prefered = true;
|
||||
}
|
||||
if (et & QXmppVCardEmail::Home && !(et & QXmppVCardEmail::Work)) {
|
||||
mEm.role = Shared::VCard::Email::home;
|
||||
} else if (!(et & QXmppVCardEmail::Home) && et & QXmppVCardEmail::Work) {
|
||||
mEm.role = Shared::VCard::Email::work;
|
||||
}
|
||||
|
||||
myEmails.emplace_back(mEm);
|
||||
}
|
||||
|
||||
if (item->hasAvatar()) {
|
||||
if (!item->isAvatarAutoGenerated()) {
|
||||
vCard.setAvatarType(Shared::Avatar::valid);
|
||||
|
@ -1483,6 +1500,24 @@ void Core::Account::onOwnVCardReceived(const QXmppVCardIq& card)
|
|||
vCard.setAvatarType(Shared::Avatar::empty);
|
||||
}
|
||||
|
||||
|
||||
QList<QXmppVCardEmail> emails = card.emails();
|
||||
std::deque<Shared::VCard::Email>& myEmails = vCard.getEmails();
|
||||
for (const QXmppVCardEmail& em : emails) {
|
||||
Shared::VCard::Email mEm(em.address());
|
||||
QXmppVCardEmail::Type et = em.type();
|
||||
if (et & QXmppVCardEmail::Preferred) {
|
||||
mEm.prefered = true;
|
||||
}
|
||||
if (et & QXmppVCardEmail::Home && !(et & QXmppVCardEmail::Work)) {
|
||||
mEm.role = Shared::VCard::Email::home;
|
||||
} else if (!(et & QXmppVCardEmail::Home) && et & QXmppVCardEmail::Work) {
|
||||
mEm.role = Shared::VCard::Email::work;
|
||||
}
|
||||
|
||||
myEmails.emplace_back(mEm);
|
||||
}
|
||||
|
||||
emit receivedVCard(getLogin() + "@" + getServer(), vCard);
|
||||
}
|
||||
|
||||
|
@ -1535,6 +1570,27 @@ void Core::Account::uploadVCard(const Shared::VCard& card)
|
|||
org.setTitle(card.getOrgTitle());
|
||||
iq.setOrganization(org);
|
||||
|
||||
const std::deque<Shared::VCard::Email>& myEmails = card.getEmails();
|
||||
QList<QXmppVCardEmail> emails;
|
||||
for (const Shared::VCard::Email& mEm : myEmails) {
|
||||
QXmppVCardEmail em;
|
||||
QXmppVCardEmail::Type t = QXmppVCardEmail::Internet;
|
||||
if (mEm.prefered) {
|
||||
t = t | QXmppVCardEmail::Preferred;
|
||||
}
|
||||
if (mEm.role == Shared::VCard::Email::home) {
|
||||
t = t | QXmppVCardEmail::Home;
|
||||
} else if (mEm.role == Shared::VCard::Email::work) {
|
||||
t = t | QXmppVCardEmail::Work;
|
||||
}
|
||||
em.setType(t);
|
||||
em.setAddress(mEm.address);
|
||||
|
||||
emails.push_back(em);
|
||||
}
|
||||
|
||||
iq.setEmails(emails);
|
||||
|
||||
bool avatarChanged = false;
|
||||
if (card.getAvatarType() == Shared::Avatar::empty) {
|
||||
if (avatarType.size() > 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue