void Client::importRosterItem(const RosterItem &item) { QString substr; switch(item.subscription().type()) { case Subscription::Both: substr = "<-->"; break; case Subscription::From: substr = " ->"; break; case Subscription::To: substr = "<- "; break; case Subscription::Remove: substr = "xxxx"; break; case Subscription::None: default: substr = "----"; break; } QString dstr, str; str.sprintf(" %s %-32s", substr.latin1(), item.jid().full().latin1()); if(!item.name().isEmpty()) str += QString(" [") + item.name() + "]"; str += '\n'; // Remove if(item.subscription().type() == Subscription::Remove) { LiveRoster::Iterator it = d->roster.find(item.jid()); if(it != d->roster.end()) { rosterItemRemoved(*it); d->roster.remove(it); } dstr = "Client: (Removed) "; } // Add/Update else { LiveRoster::Iterator it = d->roster.find(item.jid()); if(it != d->roster.end()) { LiveRosterItem &i = *it; i.setFlagForDelete(false); i.setRosterItem(item); rosterItemUpdated(i); dstr = "Client: (Updated) "; } else { LiveRosterItem i(item); d->roster += i; // signal it rosterItemAdded(i); dstr = "Client: (Added) "; } } debug(dstr + str); }
void LiveRosterItem::setRosterItem(const RosterItem &i) { setJid(i.jid()); setName(i.name()); setGroups(i.groups()); setSubscription(i.subscription()); setAsk(i.ask()); setIsPush(i.isPush()); }