--- a/qtmobility/tests/bearerex/bearerex.cpp Thu Aug 19 10:43:30 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,585 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Mobility Components.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "bearerex.h"
-#include "datatransferer.h"
-
-#include <QtNetwork>
-
-Q_DECLARE_METATYPE(QNetworkConfiguration)
-
-BearerEx::BearerEx(QWidget* parent)
- : QMainWindow(parent)
-{
- setupUi(this);
-
- createMenus();
-
- connect(&m_NetworkConfigurationManager, SIGNAL(updateCompleted()), this, SLOT(configurationsUpdateCompleted()));
- connect(&m_NetworkConfigurationManager, SIGNAL(configurationAdded(const QNetworkConfiguration&)),
- this, SLOT(configurationAdded(const QNetworkConfiguration&)));
- connect(&m_NetworkConfigurationManager, SIGNAL(configurationRemoved(const QNetworkConfiguration&)),
- this, SLOT(configurationRemoved(const QNetworkConfiguration&)));
- connect(&m_NetworkConfigurationManager, SIGNAL(onlineStateChanged(bool)),
- this, SLOT(onlineStateChanged(bool)));
- connect(&m_NetworkConfigurationManager, SIGNAL(configurationChanged(const QNetworkConfiguration&)),
- this, SLOT(configurationChanged(const QNetworkConfiguration&)));
- showConfigurations();
-}
-
-void BearerEx::createMenus()
-{
- QAction* act1 = new QAction(tr("Show Details"), this);
- menuBar()->addAction(act1);
- connect(act1, SIGNAL(triggered()), this, SLOT(on_showDetailsButton_clicked()));
-
- QAction* exitAct = new QAction(tr("Exit"), this);
- menuBar()->addAction(exitAct);
- connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
-}
-
-void BearerEx::showConfigurations()
-{
- listWidget->clear();
- QListWidgetItem* listItem;
-
- QNetworkConfiguration defaultConfig = m_NetworkConfigurationManager.defaultConfiguration();
- if (defaultConfig.type() == QNetworkConfiguration::UserChoice) {
- listItem = new QListWidgetItem();
- QFont font = listItem->font();
- font.setBold(true);
- font.setUnderline(true);
- listItem->setFont(font);
- listItem->setText(" UserChoice");
- listItem->setData(Qt::UserRole, qVariantFromValue(defaultConfig));
- listWidget->addItem(listItem);
- }
-
- QList<QNetworkConfiguration> configurations = m_NetworkConfigurationManager.allConfigurations();
- for (int i=0; i<configurations.count(); i++)
- {
- listItem = new QListWidgetItem();
- QString text;
- if (configurations[i].type() == QNetworkConfiguration::InternetAccessPoint) {
- text.append("(IAP,");
- } else if (configurations[i].type() == QNetworkConfiguration::ServiceNetwork) {
- text.append("(SNAP,");
- }
-
- if ((configurations[i].state() & QNetworkConfiguration::Active) == QNetworkConfiguration::Active) {
- text.append("Act) ");
- } else if ((configurations[i].state() & QNetworkConfiguration::Discovered) == QNetworkConfiguration::Discovered) {
- text.append("Disc) ");
- } else {
- text.append("Def) ");
- }
- text.append(configurations[i].name());
-
- if (defaultConfig.isValid() && defaultConfig == configurations[i]) {
- QFont font = listItem->font();
- font.setBold(true);
- font.setUnderline(true);
- listItem->setFont(font);
- }
- listItem->setText(text);
- listItem->setData(Qt::UserRole, qVariantFromValue(configurations[i]));
- listWidget->addItem(listItem);
- }
-}
-
-void BearerEx::on_updateConfigurationsButton_clicked()
-{
- m_NetworkConfigurationManager.updateConfigurations();
-}
-
-void BearerEx::on_updateListButton_clicked()
-{
- showConfigurations();
-}
-
-void BearerEx::on_showDetailsButton_clicked()
-{
- QListWidgetItem* item = listWidget->currentItem();
- if (!item) {
- return;
- }
-
- QNetworkConfiguration networkConfiguration = qVariantValue<QNetworkConfiguration>(item->data(Qt::UserRole));
- DetailedInfoDialog infoDialog(&networkConfiguration,this);
- infoDialog.exec();
-}
-
-void BearerEx::on_createSessionButton_clicked()
-{
- QListWidgetItem* item = listWidget->currentItem();
- if (!item) {
- return;
- }
- QNetworkConfiguration networkConfiguration = qVariantValue<QNetworkConfiguration>(item->data(Qt::UserRole));
- int newTabIndex = mainTabWidget->count();
- SessionTab* newTab = new SessionTab(&networkConfiguration,&m_NetworkConfigurationManager,eventListWidget,newTabIndex-1);
- QString label = QString("S")+QString::number(newTabIndex-1);
- mainTabWidget->insertTab(newTabIndex,newTab,label);
- mainTabWidget->setCurrentIndex(newTabIndex);
-}
-
-void BearerEx::on_clearEventListButton_clicked()
-{
- eventListWidget->clear();
-}
-
-void BearerEx::configurationAdded(const QNetworkConfiguration& config)
-{
- QListWidgetItem* listItem = new QListWidgetItem();
- listItem->setText(QString("Added: ")+config.name());
- eventListWidget->addItem(listItem);
-}
-
-void BearerEx::configurationRemoved(const QNetworkConfiguration& config)
-{
- QListWidgetItem* listItem = new QListWidgetItem();
- listItem->setText(QString("Removed: ")+config.name());
- eventListWidget->addItem(listItem);
-}
-
-void BearerEx::onlineStateChanged(bool isOnline)
-{
- QListWidgetItem* listItem = new QListWidgetItem();
- QFont font = listItem->font();
- font.setBold(true);
- listItem->setFont(font);
- if (isOnline) {
- listItem->setText(QString("> Online"));
- } else {
- listItem->setText(QString("< Offline"));
- }
- eventListWidget->addItem(listItem);
-}
-
-void BearerEx::configurationChanged(const QNetworkConfiguration & config)
-{
- QListWidgetItem* listItem = new QListWidgetItem();
- QString state;
- switch (config.state())
- {
- case QNetworkConfiguration::Undefined:
- state = "Undef : ";
- break;
- case QNetworkConfiguration::Defined:
- state = "Def : ";
- break;
- case QNetworkConfiguration::Discovered:
- state = "Disc : ";
- break;
- case QNetworkConfiguration::Active:
- state = "Act : ";
- break;
- }
- listItem->setText(state+config.name());
- eventListWidget->addItem(listItem);
-}
-
-void BearerEx::configurationsUpdateCompleted()
-{
- QMessageBox msgBox;
- msgBox.setStandardButtons(QMessageBox::Close);
- msgBox.setText("Configurations update completed.");
- msgBox.exec();
-}
-
-DetailedInfoDialog::DetailedInfoDialog(QNetworkConfiguration* apNetworkConfiguration, QWidget * parent)
- : QDialog(parent)
-{
- setupUi(this);
-
- tableWidget->setColumnCount(2);
- int rowCount = 2;
-
- if (apNetworkConfiguration->type() == QNetworkConfiguration::ServiceNetwork) {
- rowCount = rowCount + apNetworkConfiguration->children().count();
- }
-
- tableWidget->setRowCount(rowCount);
- tableWidget->setColumnWidth(1,250);
- tableWidget->setItem(0, 0, new QTableWidgetItem(tr("Name")));
- tableWidget->setItem(0, 1, new QTableWidgetItem(apNetworkConfiguration->name()));
- tableWidget->setItem(1, 0, new QTableWidgetItem(tr("Id")));
- tableWidget->setItem(1, 1, new QTableWidgetItem(apNetworkConfiguration->identifier()));
- if (apNetworkConfiguration->type() == QNetworkConfiguration::ServiceNetwork) {
- for (int i=0; i<apNetworkConfiguration->children().count(); i++) {
- tableWidget->setItem(i+2, 0, new QTableWidgetItem(QString("IAP")+QString::number(i+1)));
- tableWidget->setItem(i+2, 1, new QTableWidgetItem(apNetworkConfiguration->children()[i].name()));
- }
- }
-
- tableWidget->setFocusPolicy(Qt::NoFocus);
-
-#ifdef Q_OS_SYMBIAN
- this->showMaximized();
-#endif
-}
-
-SessionTab::SessionTab(QNetworkConfiguration* apNetworkConfiguration,
- QNetworkConfigurationManager* configManager,
- QListWidget* eventListWidget,
- int index,
- BearerEx * parent)
- : QWidget(parent), m_dataTransferer(0), m_eventListWidget(eventListWidget),
- m_index(index), m_alrEnabled (false)
-{
- setupUi(this);
-
- m_ConfigManager = configManager;
- m_NetworkSession = new QNetworkSession(*apNetworkConfiguration);
-
- // Update initial Session state to UI
- newState(m_NetworkSession->state());
-
- connect(m_NetworkSession, SIGNAL(newConfigurationActivated()), this, SLOT(newConfigurationActivated()));
- connect(m_NetworkSession, SIGNAL(stateChanged(QNetworkSession::State)),
- this, SLOT(stateChanged(QNetworkSession::State)));
- connect(m_NetworkSession, SIGNAL(opened()), this, SLOT(opened()));
- connect(m_NetworkSession, SIGNAL(closed()), this, SLOT(closed()));
- connect(m_NetworkSession, SIGNAL(error(QNetworkSession::SessionError)), this, SLOT(error(QNetworkSession::SessionError)));
-
- if (apNetworkConfiguration->type() == QNetworkConfiguration::InternetAccessPoint) {
- snapLabel->hide();
- snapLineEdit->hide();
- alrButton->hide();
- iapLineEdit->setText(apNetworkConfiguration->name()+" ("+apNetworkConfiguration->identifier()+")");
- } else if (apNetworkConfiguration->type() == QNetworkConfiguration::ServiceNetwork) {
- snapLineEdit->setText(apNetworkConfiguration->name()+" ("+apNetworkConfiguration->identifier()+")");
- }
- bearerLineEdit->setText(apNetworkConfiguration->bearerName());
- sentRecDataLineEdit->setText(QString::number(m_NetworkSession->bytesWritten())+
- QString(" / ")+
- QString::number(m_NetworkSession->bytesReceived()));
- snapLineEdit->setFocusPolicy(Qt::NoFocus);
- iapLineEdit->setFocusPolicy(Qt::NoFocus);
- bearerLineEdit->setFocusPolicy(Qt::NoFocus);
- sentRecDataLineEdit->setFocusPolicy(Qt::NoFocus);
- stateLineEdit->setFocusPolicy(Qt::NoFocus);
-}
-
-SessionTab::~SessionTab()
-{
- delete m_NetworkSession; m_NetworkSession = 0;
- delete m_dataTransferer; m_dataTransferer = 0;
-}
-
-void SessionTab::on_createQNetworkAccessManagerButton_clicked()
-{
- if (m_dataTransferer) {
- disconnect(m_dataTransferer, 0, 0, 0);
- delete m_dataTransferer;
- m_dataTransferer = 0;
- }
- // Create new object according to current selection
- QString type(comboBox->currentText());
- if (type == "QNAM") {
- m_dataTransferer = new DataTransfererQNam(this);
- } else if (type == "QTcpSocket") {
- m_dataTransferer = new DataTransfererQTcp(this);
- } else if (type == "QHttp") {
- m_dataTransferer = new DataTransfererQHttp(this);
- } else {
- qDebug("BearerEx Warning, unknown data transfer object requested, not creating anything.");
- return;
- }
- createQNetworkAccessManagerButton->setText("Recreate");
- connect(m_dataTransferer, SIGNAL(finished(quint32, qint64, QString)), this, SLOT(finished(quint32, qint64, QString)));
-}
-
-void SessionTab::on_sendRequestButton_clicked()
-{
- if (m_dataTransferer) {
- if (!m_dataTransferer->transferData()) {
- QMessageBox msgBox;
- msgBox.setStandardButtons(QMessageBox::Close);
- msgBox.setText("Data transfer not started. \nVery likely data transfer ongoing.");
- msgBox.exec();
- }
- } else {
- QMessageBox msgBox;
- msgBox.setStandardButtons(QMessageBox::Close);
- msgBox.setText("Data object not created.\nCreate data object first.");
- msgBox.exec();
- }
-}
-
-void SessionTab::on_openSessionButton_clicked()
-{
- m_NetworkSession->open();
- if (m_NetworkSession->isOpen()) {
- newState(m_NetworkSession->state());
- }
-}
-
-void SessionTab::on_closeSessionButton_clicked()
-{
- m_NetworkSession->close();
- if (!m_NetworkSession->isOpen()) {
- newState(m_NetworkSession->state());
- }
-}
-
-void SessionTab::on_stopConnectionButton_clicked()
-{
- m_NetworkSession->stop();
-}
-
-void SessionTab::on_alrButton_clicked()
-{
- if (!m_alrEnabled) {
- connect(m_NetworkSession, SIGNAL(preferredConfigurationChanged(const QNetworkConfiguration&, bool)),
- this, SLOT(preferredConfigurationChanged(const QNetworkConfiguration&, bool)));
- alrButton->setText("Disable ALR");
- m_alrEnabled = true;
- } else {
- disconnect(m_NetworkSession, SIGNAL(preferredConfigurationChanged(const QNetworkConfiguration&, bool)), 0, 0);
- alrButton->setText("Enable ALR");
- m_alrEnabled = false;
- }
-}
-
-void SessionTab::on_deleteSessionButton_clicked()
-{
- setWindowTitle("Bearer Example");
- delete this;
-}
-
-void SessionTab::newConfigurationActivated()
-{
- QMessageBox msgBox;
- msgBox.setText("New configuration activated.");
- msgBox.setInformativeText("Do you want to accept new configuration?");
- msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
- msgBox.setDefaultButton(QMessageBox::Yes);
- if (msgBox.exec() == QMessageBox::Yes) {
- m_NetworkSession->accept();
- iapLineEdit->setText(m_config.name()+" ("+m_config.identifier()+")");
- } else {
- m_NetworkSession->reject();
- }
-}
-
-void SessionTab::preferredConfigurationChanged(const QNetworkConfiguration& config, bool /*isSeamless*/)
-{
- m_config = config;
- QMessageBox msgBox;
- msgBox.setText("Roaming to new configuration.");
- msgBox.setInformativeText("Do you want to migrate to "+config.name()+"?");
- msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
- msgBox.setDefaultButton(QMessageBox::Yes);
- if (msgBox.exec() == QMessageBox::Yes) {
- m_NetworkSession->migrate();
- } else {
- m_NetworkSession->ignore();
- }
-}
-
-void SessionTab::opened()
-{
- QListWidgetItem* listItem = new QListWidgetItem();
- QFont font = listItem->font();
- font.setBold(true);
- listItem->setFont(font);
- listItem->setText(QString("S")+QString::number(m_index)+QString(" - ")+QString("Opened"));
- m_eventListWidget->addItem(listItem);
-
- QVariant identifier = m_NetworkSession->sessionProperty("ActiveConfiguration");
- if (!identifier.isNull()) {
- QString configId = identifier.toString();
- QNetworkConfiguration config = m_ConfigManager->configurationFromIdentifier(configId);
- if (config.isValid()) {
- iapLineEdit->setText(config.name()+" ("+config.identifier()+")");
- }
- }
- newState(m_NetworkSession->state()); // Update the "(open)"
-
- if (m_NetworkSession->configuration().type() == QNetworkConfiguration::UserChoice) {
- QVariant identifier = m_NetworkSession->sessionProperty("UserChoiceConfiguration");
- if (!identifier.isNull()) {
- QString configId = identifier.toString();
- QNetworkConfiguration config = m_ConfigManager->configurationFromIdentifier(configId);
- if (config.isValid() && (config.type() == QNetworkConfiguration::ServiceNetwork)) {
- snapLineEdit->setText(config.name());
- }
- }
- }
-}
-
-void SessionTab::closed()
-{
- QListWidgetItem* listItem = new QListWidgetItem();
- QFont font = listItem->font();
- font.setBold(true);
- listItem->setFont(font);
- listItem->setText(QString("S")+QString::number(m_index)+QString(" - ")+QString("Closed"));
- m_eventListWidget->addItem(listItem);
-}
-
-QString SessionTab::stateString(QNetworkSession::State state)
-{
- QString stateString;
- switch (state)
- {
- case QNetworkSession::Invalid:
- stateString = "Invalid";
- break;
- case QNetworkSession::NotAvailable:
- stateString = "NotAvailable";
- break;
- case QNetworkSession::Connecting:
- stateString = "Connecting";
- break;
- case QNetworkSession::Connected:
- stateString = "Connected";
- break;
- case QNetworkSession::Closing:
- stateString = "Closing";
- break;
- case QNetworkSession::Disconnected:
- stateString = "Disconnected";
- break;
- case QNetworkSession::Roaming:
- stateString = "Roaming";
- break;
- }
- return stateString;
-}
-
-void SessionTab::on_dataObjectChanged(const QString &newObjectType)
-{
- qDebug() << "BearerEx SessionTab dataObjectChanged to: " << newObjectType;
- if (m_dataTransferer) {
- disconnect(m_dataTransferer, 0, 0, 0);
- delete m_dataTransferer; m_dataTransferer = 0;
- qDebug() << "BearerEx SessionTab, previous data object deleted.";
- }
- createQNetworkAccessManagerButton->setText("Create");
-}
-
-
-void SessionTab::stateChanged(QNetworkSession::State state)
-{
- newState(state);
-
- QListWidgetItem* listItem = new QListWidgetItem();
- listItem->setText(QString("S")+QString::number(m_index)+QString(" - ")+stateString(state));
- m_eventListWidget->addItem(listItem);
-}
-
-void SessionTab::newState(QNetworkSession::State state)
-{
- QVariant identifier = m_NetworkSession->sessionProperty("ActiveConfiguration");
- if (state == QNetworkSession::Connected && !identifier.isNull()) {
- QString configId = identifier.toString();
- QNetworkConfiguration config = m_ConfigManager->configurationFromIdentifier(configId);
- if (config.isValid()) {
- iapLineEdit->setText(config.name()+" ("+config.identifier()+")");
- bearerLineEdit->setText(config.bearerName());
- }
- } else {
- bearerLineEdit->setText(m_NetworkSession->configuration().bearerName());
- }
-
- QString active;
- if (m_NetworkSession->isOpen()) {
- active = " (open)";
- }
- stateLineEdit->setText(stateString(state)+active);
-}
-
-void SessionTab::error(QNetworkSession::SessionError error)
-{
- QListWidgetItem* listItem = new QListWidgetItem();
- QMessageBox msgBox;
- msgBox.setStandardButtons(QMessageBox::Close);
-
- QString errorString;
- switch (error)
- {
- case QNetworkSession::UnknownSessionError:
- errorString = "UnknownSessionError";
- break;
- case QNetworkSession::SessionAbortedError:
- errorString = "SessionAbortedError";
- break;
- case QNetworkSession::RoamingError:
- errorString = "RoamingError";
- break;
- case QNetworkSession::OperationNotSupportedError:
- errorString = "OperationNotSupportedError";
- break;
- case QNetworkSession::InvalidConfigurationError:
- errorString = "InvalidConfigurationError";
- break;
- }
- listItem->setText(QString("S")+QString::number(m_index)+QString(" - ")+errorString);
- m_eventListWidget->addItem(listItem);
-
- msgBox.setText(errorString);
- msgBox.exec();
-}
-
-void SessionTab::finished(quint32 errorCode, qint64 dataReceived, QString errorType)
-{
- QMessageBox msgBox;
- msgBox.setStandardButtons(QMessageBox::Close);
- msgBox.setText(QString("Data transfer completed. \nError code: ") + QString::number((int)errorCode) +
- "\nError type: " + errorType +
- "\nBytes received: " +
- QString::number(dataReceived));
- msgBox.exec();
- // Check if the networksession still exists - it may have gone after returning from
- // the modal dialog (in the case that app has been closed, and deleting QHttp will
- // trigger the done() invokation).
- if (m_NetworkSession) {
- sentRecDataLineEdit->setText(QString::number(m_NetworkSession->bytesWritten())+
- QString(" / ")+
- QString::number(m_NetworkSession->bytesReceived()));
- } else {
- sentRecDataLineEdit->setText("Data amounts not available.");
- }
-}
-
-// End of file
-