void TlenPersonalInfoWidget::personalInfoAvailable(Buddy buddy)
{
	kdebugmf (KDEBUG_INFO,"personal info available");
	NickName->setText(buddy.nickName());
	FirstName->setText(buddy.firstName());
	LastName->setText(buddy.lastName());
	Sex->setCurrentIndex((int)buddy.gender());
	BirthYear->setText(QString::number(buddy.birthYear()));
	City->setText(buddy.city());
	EMail->setText(buddy.email());

	// TODO 0.6.6: dangerous - no details means not this account?
	FetchOk = false;

	// always one contact
	Contact contact = buddy.contacts()[0];
	if (contact.isNull())
		return;

	TlenContactDetails *tlenDetails = dynamic_cast<TlenContactDetails *>(contact.details());
	if (!tlenDetails)
		return;

	LookingFor->setCurrentIndex((int) tlenDetails->lookingFor());
	Job->setCurrentIndex((int) tlenDetails->job());
	TodayPlans->setCurrentIndex((int) tlenDetails->todayPlans());

	ShowStatus->setChecked(tlenDetails->showStatus());
	HaveMic->setChecked(tlenDetails->haveMic());
	HaveCam->setChecked(tlenDetails->haveCam());
	FetchOk = true;
}
void TlenPersonalInfoService::updatePersonalInfo(Buddy buddy)
{
	kdebugf();

	client = Protocol->client();
	if (!client || !client->isConnected())
		return;

	// always 1 contact
	Contact contact = buddy.contacts()[0];
	if (contact.isNull())
	{
		emit personalInfoUpdated(false);
		return;
	}

	TlenContactDetails *tlenDetails = dynamic_cast<TlenContactDetails *>(contact.details());
	if (!tlenDetails)
	{
		emit personalInfoUpdated(false);
		return;
	}

	// TODO add email!!
	client->setPubDirInfo(buddy.firstName(), buddy.lastName(), buddy.nickName(), buddy.email(),
		 buddy.city(), buddy.birthYear(), (int)buddy.gender(),
		(int) tlenDetails->lookingFor(), (int) tlenDetails->job(),
		(int) tlenDetails->todayPlans(), tlenDetails->showStatus(),
		tlenDetails->haveMic(), tlenDetails->haveCam());
}
GaduContactDataManager::GaduContactDataManager(Contact data, QObject *parent) :
		ConfigurationContactDataManager(data, parent), Data(dynamic_cast<GaduContactDetails *>(data.details()))
{
}