//! [0] AppModel::AppModel(QObject *parent) : QObject(parent), d(new AppModelPrivate) { //! [0] d->fcProp = new QQmlListProperty<WeatherData>(this, d, forecastAppend, forecastCount, forecastAt, forecastClear); d->geoReplyMapper = new QSignalMapper(this); d->weatherReplyMapper = new QSignalMapper(this); connect(d->geoReplyMapper, SIGNAL(mapped(QObject*)), this, SLOT(handleGeoNetworkData(QObject*))); connect(d->weatherReplyMapper, SIGNAL(mapped(QObject*)), this, SLOT(handleWeatherNetworkData(QObject*))); //! [1] // make sure we have an active network session d->nam = new QNetworkAccessManager(this); QNetworkConfigurationManager ncm; d->ns = new QNetworkSession(ncm.defaultConfiguration(), this); connect(d->ns, SIGNAL(opened()), this, SLOT(networkSessionOpened())); // the session may be already open. if it is, run the slot directly if (d->ns->isOpen()) this->networkSessionOpened(); // tell the system we want network d->ns->open(); }
MainWindow::MainWindow(const QVariantHash &programOptions, QWidget *parent) : QMainWindow(parent), m_programOptions(programOptions) { // Set Internet Access Point QNetworkConfigurationManager manager; const bool canStartIAP = (manager.capabilities() & QNetworkConfigurationManager::CanStartAndStopInterfaces); // Is there default access point, use it QNetworkConfiguration cfg = manager.defaultConfiguration(); if (!cfg.isValid() || (!canStartIAP && cfg.state() != QNetworkConfiguration::Active)) { QMessageBox::information(0, tr("Map Viewer Demo"), tr( "Available Access Points not found.")); qApp->quit(); return; } bool open_session = true; if (m_programOptions.contains("session")) open_session = m_programOptions["session"].toBool(); else if (m_programOptions.contains("nosession")) open_session = !m_programOptions["nosession"].toBool(); if (open_session) { m_session = new QNetworkSession(cfg, this); connect(m_session, SIGNAL(opened()), this, SLOT(networkSessionOpened())); connect(m_session, SIGNAL(error(QNetworkSession::SessionError)), this, SLOT(networkSessionError(QNetworkSession::SessionError))); m_session->open(); } else { qDebug("Bypassing session..."); networkSessionOpened(); } setWindowTitle("MapViewer"); resize(640, 480); }