diff options
Diffstat (limited to 'tests/manual/bearerex/bearerex.cpp')
-rw-r--r-- | tests/manual/bearerex/bearerex.cpp | 569 |
1 files changed, 0 insertions, 569 deletions
diff --git a/tests/manual/bearerex/bearerex.cpp b/tests/manual/bearerex/bearerex.cpp deleted file mode 100644 index d9b916907b..0000000000 --- a/tests/manual/bearerex/bearerex.cpp +++ /dev/null @@ -1,569 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "bearerex.h" -#include "datatransferer.h" - -#include <QtNetwork> -#include <QtWidgets> - -BearerEx::BearerEx(QWidget* parent) - : QMainWindow(parent) -{ - setupUi(this); - - createMenus(); - - connect(&m_NetworkConfigurationManager, SIGNAL(updateCompleted()), this, SLOT(configurationsUpdateCompleted())); - connect(&m_NetworkConfigurationManager, SIGNAL(configurationAdded(QNetworkConfiguration)), - this, SLOT(configurationAdded(QNetworkConfiguration))); - connect(&m_NetworkConfigurationManager, SIGNAL(configurationRemoved(QNetworkConfiguration)), - this, SLOT(configurationRemoved(QNetworkConfiguration))); - connect(&m_NetworkConfigurationManager, SIGNAL(onlineStateChanged(bool)), - this, SLOT(onlineStateChanged(bool))); - connect(&m_NetworkConfigurationManager, SIGNAL(configurationChanged(QNetworkConfiguration)), - this, SLOT(configurationChanged(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, QVariant::fromValue(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, QVariant::fromValue(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 = qvariant_cast<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 = qvariant_cast<QNetworkConfiguration>(item->data(Qt::UserRole)); - int newTabIndex = mainTabWidget->count(); - SessionTab* newTab = new SessionTab(&networkConfiguration,&m_NetworkConfigurationManager,eventListWidget,newTabIndex-1); - QString label = QLatin1Char('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); -} - -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() - + QLatin1Char(')')); - } else if (apNetworkConfiguration->type() == QNetworkConfiguration::ServiceNetwork) { - snapLineEdit->setText(apNetworkConfiguration->name()+ " (" + apNetworkConfiguration->identifier() - + QLatin1Char(')')); - } - bearerLineEdit->setText(apNetworkConfiguration->bearerTypeName()); - 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 { - 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(QNetworkConfiguration,bool)), - this, SLOT(preferredConfigurationChanged(QNetworkConfiguration,bool))); - alrButton->setText("Disable ALR"); - m_alrEnabled = true; - } else { - disconnect(m_NetworkSession, SIGNAL(preferredConfigurationChanged(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() + QLatin1Char(')')); - } 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() + QLatin1Char('?')); - 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(QLatin1Char('S') + QString::number(m_index) + QLatin1String(" - 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() + QLatin1Char(')')); - } - } - 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(QLatin1Char('S') + QString::number(m_index) + QLatin1String(" - 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(QLatin1Char('S') + QString::number(m_index) + QLatin1String(" - ") + 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() + QLatin1Char(')')); - bearerLineEdit->setText(config.bearerTypeName()); - } - } else { - bearerLineEdit->setText(m_NetworkSession->configuration().bearerTypeName()); - } - - 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(QLatin1Char('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() invocation). - 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 - |