tabbedwindow.cpp Example File
qgeoapiui/tabbedwindow.cpp
#include "tabbedwindow.h"
#include "servicestab.h"
#include <QApplication>
#include <QTabWidget>
#include <QVBoxLayout>
#include <QTimer>
#include <QMessageBox>
#include <QNetworkProxyFactory>
#ifdef Q_OS_SYMBIAN
#include <QNetworkConfigurationManager>
#endif
TabbedWindow::TabbedWindow(QWidget *parent)
: QMainWindow(parent), m_serviceProvider(NULL)
{
setWindowTitle(tr("QGeoApiUI Example"));
#ifdef Q_OS_SYMBIAN
QNetworkConfigurationManager manager;
const bool canStartIAP = (manager.capabilities()
& QNetworkConfigurationManager::CanStartAndStopInterfaces);
QNetworkConfiguration cfg = manager.defaultConfiguration();
if (!cfg.isValid() || (!canStartIAP && cfg.state() != QNetworkConfiguration::Active)) {
QMessageBox::information(this, tr("QGeoApiUI Example"), tr(
"Available Access Points not found."));
return;
}
m_session = new QNetworkSession(cfg, this);
m_session->open();
m_session->waitForOpened(-1);
#endif
QNetworkProxyFactory::setUseSystemConfiguration(true);
ServicesTab* servicesTab = new ServicesTab();
QObject::connect(servicesTab, SIGNAL(serviceProviderChanged(QString)), this,
SLOT(setProvider(QString)), Qt::QueuedConnection);
m_geocodingTab = new GeocodingTab();
m_reverseTab = new ReverseGeocodingTab();
m_routingTab = new RouteTab();
m_tabWidget = new QTabWidget;
m_tabWidget->addTab(servicesTab, tr("Service Providers"));
m_tabWidget->addTab(m_routingTab, tr("Route"));
m_tabWidget->addTab(m_geocodingTab, tr("Geocoding"));
m_tabWidget->addTab(m_reverseTab, tr("Reverse Geocoding"));
setCentralWidget(m_tabWidget);
QTimer::singleShot(0, servicesTab, SLOT(initialize()));
}
TabbedWindow::~TabbedWindow()
{
delete m_serviceProvider;
}
void TabbedWindow::setProvider(QString providerId)
{
if (m_serviceProvider)
delete m_serviceProvider ;
m_serviceProvider = new QGeoServiceProvider(providerId);
if (m_serviceProvider->error() != QGeoServiceProvider::NoError) {
QMessageBox::information(this, tr("QGeoApiUI Example"), tr(
"Unable to find the %1 geoservices plugin.").arg(providerId));
QTimer::singleShot(0, qApp, SLOT(quit()));
return;
}
m_geocodingTab->initialize(m_serviceProvider->searchManager());
m_reverseTab->initialize(m_serviceProvider->searchManager());
m_routingTab->initialize(m_serviceProvider->routingManager());
}