Ignore:
Timestamp:
May 5, 2011, 5:36:53 AM (14 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/demos/embedded/flightinfo/flightinfo.cpp

    r651 r846  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    4444#include <QtNetwork>
    4545
    46 #if defined (Q_OS_SYMBIAN)
    47 #include "sym_iap_util.h"
    48 #endif
    49 
    5046#include "ui_form.h"
    5147
     
    10197    QDate m_searchDate;
    10298    QPixmap m_map;
     99    QNetworkAccessManager m_manager;
     100    QList<QNetworkReply *> mapReplies;
    103101
    104102public:
     
    116114
    117115        setWindowTitle("Flight Info");
    118         QTimer::singleShot(0, this, SLOT(delayedInit()));
    119116
    120117        // Rendered from the public-domain vectorized aircraft
     
    128125        connect(searchYesterdayAction, SIGNAL(triggered()), SLOT(yesterday()));
    129126        connect(randomAction, SIGNAL(triggered()), SLOT(randomFlight()));
     127        connect(&m_manager, SIGNAL(finished(QNetworkReply*)),
     128                this, SLOT(handleNetworkData(QNetworkReply*)));
    130129#if defined(Q_OS_SYMBIAN)
    131130        menuBar()->addAction(searchTodayAction);
     
    141140
    142141private slots:
    143     void delayedInit() {
    144 #if defined(Q_OS_SYMBIAN)
    145         qt_SetDefaultIap();
    146 #endif
    147     }
    148 
    149142
    150143    void handleNetworkData(QNetworkReply *networkReply) {
    151144        if (!networkReply->error()) {
    152             // Assume UTF-8 encoded
    153             QByteArray data = networkReply->readAll();
    154             QString xml = QString::fromUtf8(data);
    155             digest(xml);
     145            if (!mapReplies.contains(networkReply)) {
     146                // Assume UTF-8 encoded
     147                QByteArray data = networkReply->readAll();
     148                QString xml = QString::fromUtf8(data);
     149                digest(xml);
     150            } else {
     151                mapReplies.removeOne(networkReply);
     152                m_map.loadFromData(networkReply->readAll());
     153                update();
     154            }
    156155        }
    157156        networkReply->deleteLater();
    158         networkReply->manager()->deleteLater();
    159     }
    160 
    161     void handleMapData(QNetworkReply *networkReply) {
    162         if (!networkReply->error()) {
    163             m_map.loadFromData(networkReply->readAll());
    164             update();
    165         }
    166         networkReply->deleteLater();
    167         networkReply->manager()->deleteLater();
    168157    }
    169158
     
    186175        ui.flightStatus->hide();
    187176        ui.flightName->setText("Enter flight number");
     177        ui.flightEdit->setFocus();
     178#ifdef QT_KEYPAD_NAVIGATION
     179        ui.flightEdit->setEditFocus(true);
     180#endif
    188181        m_map = QPixmap();
    189182        update();
     
    225218        }
    226219
    227         QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    228         connect(manager, SIGNAL(finished(QNetworkReply*)),
    229                 this, SLOT(handleNetworkData(QNetworkReply*)));
    230         manager->get(QNetworkRequest(m_url));
     220        m_manager.get(QNetworkRequest(m_url));
    231221    }
    232222
     
    249239            QString airport = regex.cap(1);
    250240            m_url.addEncodedQueryItem("dpap", QUrl::toPercentEncoding(airport));
    251             QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    252             connect(manager, SIGNAL(finished(QNetworkReply*)),
    253                     this, SLOT(handleNetworkData(QNetworkReply*)));
    254             manager->get(QNetworkRequest(m_url));
     241            m_manager.get(QNetworkRequest(m_url));
    255242            return;
    256243        }
     
    288275                if (xml.name() == "img" && inFlightMap) {
    289276                    QString src = xml.attributes().value("src").toString();
    290                     src.prepend("http://mobile.flightview.com");
     277                    src.prepend("http://mobile.flightview.com/");
    291278                    QUrl url = QUrl::fromPercentEncoding(src.toAscii());
    292                     QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    293                     connect(manager, SIGNAL(finished(QNetworkReply*)),
    294                             this, SLOT(handleMapData(QNetworkReply*)));
    295                     manager->get(QNetworkRequest(url));
     279                    mapReplies.append(m_manager.get(QNetworkRequest(url)));
    296280                }
    297281            }
Note: See TracChangeset for help on using the changeset viewer.