void AddUserDlg::resolveNickFinished() { JT_VCard *jt = (JT_VCard *)sender(); if(jt->success()) { QString nickname; const XMPP::VCard vcard = jt->vcard(); if ( !vcard.nickName().isEmpty() ) { nickname = vcard.nickName(); } else if ( !vcard.fullName().isEmpty() ) { nickname = vcard.fullName(); } else { nickname = vcard.givenName(); if ( nickname.isEmpty() ) { nickname = vcard.middleName(); } else if ( !vcard.middleName().isEmpty() ) { nickname += " " + vcard.middleName(); } if ( nickname.isEmpty() ) { nickname = vcard.familyName(); } else if ( !vcard.familyName().isEmpty() ) { nickname += " " + vcard.familyName(); } } if ( nickname.isEmpty() ) { nickname = jt->jid().bare(); } le_nick->setText(nickname); } }
void VCardFactory::selfVCardTaskFinished() { JT_VCard *task = (JT_VCard *)sender(); isFetchingMyVCard_ = false; hasFetchedMyVCard_ = true; myVCard_ = (task->success() ? task->vcard() : VCard()); emit selfVCardChanged(); }
/** * \brief Call this when you need to retrieve fresh vCard from server (and store it in cache afterwards) */ JT_VCard* VCardFactory::getVCard(const Jid &jid, Task *rootTask, const QObject *obj, const char *slot, bool cacheVCard) { JT_VCard *task = new JT_VCard( rootTask ); if ( cacheVCard ) task->connect(task, SIGNAL(finished()), this, SLOT(taskFinished())); task->connect(task, SIGNAL(finished()), obj, slot); task->get(Jid(jid.full())); task->go(true); return task; }
void VCardFactory::setSelfVCard(const VCard &myVCard) { // Prevent startSelfVCardUpdate from starting tasks if we're setting the avatar isFetchingMyVCard_ = true; JT_VCard *myVCardSetter = new JT_VCard(client_->rootTask()); connect(myVCardSetter, SIGNAL(finished()), SLOT(selfVCardTaskFinished())); myVCardSetter->set(myVCard); myVCardSetter->go(true); }
void VCardFactory::startSelfVCardUpdate() { if (!isFetchingMyVCard_) { isFetchingMyVCard_ = true; // Fetch our own vCard JT_VCard *myVCardFetchTask = new JT_VCard(client_->rootTask()); connect(myVCardFetchTask, SIGNAL(finished()), SLOT(selfVCardTaskFinished())); myVCardFetchTask->getSelfVCard(); myVCardFetchTask->go(true); } }
void VCardFactory::taskFinished() { JT_VCard *task = (JT_VCard *)sender(); if ( task->success() ) { Jid j = task->jid(); VCard *vcard = new VCard; *vcard = task->vcard(); checkLimit(j.userHost(), vcard); // save vCard to disk QFile file ( vCardsDir_ + "/" + JIDUtil::encode(j.userHost()).lower() + ".xml" ); file.open ( QIODevice::WriteOnly ); QTextStream out ( &file ); out.setEncoding ( QTextStream::UnicodeUTF8 ); QDomDocument doc; doc.appendChild( vcard->toXml ( &doc ) ); out << doc.toString(4); emit vcardChanged(j); } }
void AddUserDlg::resolveNickFinished() { JT_VCard *jt = (JT_VCard *)sender(); if(jt->success()) { if ( !jt->vcard().nickName().isEmpty() ) le_nick->setText( jt->vcard().nickName() ); else if( !jt->vcard().fullName().isEmpty() ) le_nick->setText( jt->vcard().fullName() ); } }