Example #1
0
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);
	}
}
Example #7
0
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() );
	}
}