GeoLocationDlg::GeoLocationDlg(QList<PsiAccount*> list) : QDialog(0), pa_(list)
{
	setAttribute(Qt::WA_DeleteOnClose);
	if(pa_.isEmpty())
		close();
	ui_.setupUi(this);
	setWindowIcon(IconsetFactory::icon("system/geolocation").icon());
	setModal(false);

	connect(ui_.pb_cancel, SIGNAL(clicked()), SLOT(close()));
 	connect(ui_.pb_ok, SIGNAL(clicked()), SLOT(setGeoLocation()));
	connect(ui_.pb_reset, SIGNAL(clicked()), SLOT(reset()));

	PsiAccount *pa = pa_.first();
	GeoLocation geoloc = pa->geolocation();
	if(geoloc.isNull())
		return;

	if (geoloc.alt().hasValue())
		ui_.le_altitude->setText(QString::number(geoloc.alt().value()));

	if (!geoloc.area().isEmpty())
		ui_.le_area->setText(geoloc.area());

	if (geoloc.bearing().hasValue())
		ui_.le_bearing->setText(QString::number(geoloc.bearing().value()));

	if (!geoloc.building().isEmpty())
		ui_.le_building->setText(geoloc.building());

	if (!geoloc.country().isEmpty())
		ui_.le_country->setText(geoloc.country());

	if (!geoloc.datum().isEmpty())
		ui_.le_datum->setText(geoloc.datum());

	if (!geoloc.description().isEmpty())
		ui_.le_description->setText(geoloc.description());

	if (geoloc.error().hasValue())
		ui_.le_error->setText(QString::number(geoloc.error().value()));

	if (!geoloc.floor().isEmpty())
		ui_.le_floor->setText(geoloc.floor());

	if (geoloc.lat().hasValue())
		ui_.le_latitude->setText(QString::number(geoloc.lat().value()));

	if (!geoloc.locality().isEmpty())
		ui_.le_locality->setText(geoloc.locality());

	if (geoloc.lon().hasValue())
		ui_.le_longitude->setText(QString::number(geoloc.lon().value()));

	if (!geoloc.postalcode().isEmpty())
		ui_.le_postalcode->setText(geoloc.postalcode());

	if (!geoloc.region().isEmpty())
		ui_.le_region->setText(geoloc.region());

	if (!geoloc.room().isEmpty())
		ui_.le_room->setText(geoloc.room());

	if (!geoloc.street().isEmpty())
		ui_.le_street->setText(geoloc.street());

	if (!geoloc.text().isEmpty())
		ui_.le_text->setText(geoloc.text());
}