placepresenter.cpp Example File
geoservicedemo/placepresenter.cpp
#include "placepresenter.h"
#include <qgeoaddress.h>
PlacePresenter::PlacePresenter(QTreeWidget *treeWidget, const QGeoSearchReply* codingReply)
: GeoPresenter(treeWidget), m_codingReply(codingReply)
{
}
void PlacePresenter::show()
{
m_treeWidget->clear();
QTreeWidgetItem* placesItem = new QTreeWidgetItem(m_treeWidget);
placesItem->setText(0, "places");
QTreeWidgetItem* countItem = new QTreeWidgetItem(placesItem);
countItem->setText(0, "count");
countItem->setText(1, QString().setNum(m_codingReply->places().size()));
QList<QGeoPlace> places = m_codingReply->places();
for (int i = 0; i < places.length(); i++) {
showPlace(placesItem, places[i]);
}
}
void PlacePresenter::showPlace(QTreeWidgetItem* top, const QGeoPlace& place)
{
QTreeWidgetItem* placeItem = new QTreeWidgetItem(top);
placeItem->setText(0, "place");
if (place.viewport().isValid())
showBoundingBox(placeItem, place.viewport());
QTreeWidgetItem* positionItem = new QTreeWidgetItem(placeItem);
positionItem->setText(0, "position");
positionItem->setText(1, formatGeoCoordinate(place.coordinate()));
if (!place.address().isEmpty()) {
QTreeWidgetItem* addressItem = new QTreeWidgetItem(placeItem);
addressItem->setText(0, "address");
showAddress(addressItem, place.address());
}
}
void PlacePresenter::showAddress(QTreeWidgetItem* addrItem, const QGeoAddress& address)
{
QString s = address.country();
if (!s.isEmpty()) {
QTreeWidgetItem* countryItem = new QTreeWidgetItem(addrItem);
countryItem->setText(0, "country");
countryItem->setText(1, s);
}
s = address.countryCode();
if (!s.isEmpty()) {
QTreeWidgetItem* coutryCodeItem = new QTreeWidgetItem(addrItem);
coutryCodeItem->setText(0, "country code");
coutryCodeItem->setText(1, s);
}
s = address.state();
if (!s.isEmpty()) {
QTreeWidgetItem* stateItem = new QTreeWidgetItem(addrItem);
stateItem->setText(0, "state");
stateItem->setText(1, s);
}
s = address.county();
if (!s.isEmpty()) {
QTreeWidgetItem* countyItem = new QTreeWidgetItem(addrItem);
countyItem->setText(0, "county");
countyItem->setText(1, s);
}
s = address.city();
if (!s.isEmpty()) {
QTreeWidgetItem* cityItem = new QTreeWidgetItem(addrItem);
cityItem->setText(0, "city");
cityItem->setText(1, s);
}
s = address.district();
if (!s.isEmpty()) {
QTreeWidgetItem* districtItem = new QTreeWidgetItem(addrItem);
districtItem->setText(0, "district");
districtItem->setText(1, s);
}
s = address.street();
if (!s.isEmpty()) {
QTreeWidgetItem* streetNameItem = new QTreeWidgetItem(addrItem);
streetNameItem->setText(0, "street name");
streetNameItem->setText(1, s);
}
s = address.postcode();
if (!s.isEmpty()) {
QTreeWidgetItem* postCodeItem = new QTreeWidgetItem(addrItem);
postCodeItem->setText(0, "post code");
postCodeItem->setText(1, s);
}
}
[+] Documentation Feedback