QString MyXmppClient::getNameByOrderID( int id ) { if (cachedRoster->count() >= id+1) { RosterItemModel *item = (RosterItemModel*)cachedRoster->getElementByID(id); if (item != 0) return item->name(); else return " "; } return " "; }
QString MyXmppClient::getPropertyByJid( QString bareJid, QString property ) { RosterItemModel *item = (RosterItemModel*)cachedRoster->find( bareJid ); if (item != 0) { if (property == "name") return item->name(); else if (property == "presence") return item->presence(); else if (property == "resource") return item->resource(); else if (property == "statusText") return item->statusText(); else if (property == "unreadMsg") return QString::number(item->unreadMsg()); } else return "(unknown)"; }
void MyXmppClient::initRoster() { qDebug() << "MyXmppClient::initRoster() called"; if (!rosterManager->isRosterReceived()) { qDebug() << "MyXmppClient::initRoster(): roster not available yet"; return; } cachedRoster->cleanList(); QStringList listBareJids = rosterManager->getRosterBareJids(); for( int j=0; j < listBareJids.length(); j++ ) { QString bareJid = listBareJids.at(j); cacheIM->addCacheJid( bareJid ); QXmppRosterIq::Item itemRoster = rosterManager->getRosterEntry( bareJid ); QString name = itemRoster.name(); vCardData vCdata = cacheIM->getVCard( bareJid ); if ( vCdata.isEmpty() && !disableAvatarCaching ) { qDebug() << "MyXmppClient::initRoster():" << bareJid << "has no VCard. Requesting."; vCardManager->requestVCard( bareJid ); } RosterItemModel *itemExists = (RosterItemModel*)cachedRoster->find(bareJid); if (itemExists == 0) { RosterItemModel *itemModel = new RosterItemModel( ); itemModel->setPresence( this->getPicPresence( QXmppPresence::Unavailable ) ); itemModel->setContactName( name ); itemModel->setJid( bareJid ); itemModel->setAvatar(cacheIM->getAvatarCache(bareJid)); cachedRoster->append(itemModel); itemModel = 0; delete itemModel; } else if (itemExists->name() != name) { itemExists->setContactName(name); emit contactRenamed(bareJid,name); } itemExists = 0; delete itemExists; } emit rosterChanged(); }