qtmobility/examples/bearermonitor/bearermonitor.cpp
branchRCL_3
changeset 6 eb34711bcc75
parent 0 cfcbf08528c4
child 13 4203353e74ea
equal deleted inserted replaced
3:87be51aa5b5b 6:eb34711bcc75
     4 ** All rights reserved.
     4 ** All rights reserved.
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
     6 **
     6 **
     7 ** This file is part of the Qt Mobility Components.
     7 ** This file is part of the Qt Mobility Components.
     8 **
     8 **
     9 ** $QT_BEGIN_LICENSE:LGPL$
     9 ** $QT_BEGIN_LICENSE:BSD$
    10 ** No Commercial Usage
    10 ** You may use this file under the terms of the BSD license as follows:
    11 ** This file contains pre-release code and may not be distributed.
    11 **
    12 ** You may use this file in accordance with the terms and conditions
    12 ** "Redistribution and use in source and binary forms, with or without
    13 ** contained in the Technology Preview License Agreement accompanying
    13 ** modification, are permitted provided that the following conditions are
    14 ** this package.
    14 ** met:
    15 **
    15 **   * Redistributions of source code must retain the above copyright
    16 ** GNU Lesser General Public License Usage
    16 **     notice, this list of conditions and the following disclaimer.
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
    17 **   * Redistributions in binary form must reproduce the above copyright
    18 ** General Public License version 2.1 as published by the Free Software
    18 **     notice, this list of conditions and the following disclaimer in
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
    19 **     the documentation and/or other materials provided with the
    20 ** packaging of this file.  Please review the following information to
    20 **     distribution.
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
    21 **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    22 **     the names of its contributors may be used to endorse or promote
    23 **
    23 **     products derived from this software without specific prior written
    24 ** In addition, as a special exception, Nokia gives you certain additional
    24 **     permission.
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
    25 **
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    26 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    27 **
    27 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    28 ** If you have questions regarding the use of this file, please contact
    28 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    29 ** Nokia at qt-info@nokia.com.
    29 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    30 **
    30 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    31 **
    31 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    32 **
    32 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    33 **
    33 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    34 **
    34 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    35 **
    35 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    36 **
    36 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
    37 **
       
    38 ** $QT_END_LICENSE$
    37 ** $QT_END_LICENSE$
    39 **
    38 **
    40 ****************************************************************************/
    39 ****************************************************************************/
    41 
    40 
    42 #include "bearermonitor.h"
    41 #include "bearermonitor.h"
    43 #include "sessionwidget.h"
    42 #include "sessionwidget.h"
    44 
    43 
    45 #include <QDebug>
    44 #include <QDebug>
    46 
    45 #include <QMessageBox>
    47 #ifdef Q_OS_WIN
    46 #ifdef Q_OS_WIN
    48 #include <winsock2.h>
    47 #include <winsock2.h>
    49 #undef interface
    48 #undef interface
    50 
    49 
    51 #ifndef NS_NLA
    50 #ifndef NS_NLA
    55 
    54 
    56 BearerMonitor::BearerMonitor(QWidget *parent)
    55 BearerMonitor::BearerMonitor(QWidget *parent)
    57 :   QWidget(parent)
    56 :   QWidget(parent)
    58 {
    57 {
    59     setupUi(this);
    58     setupUi(this);
       
    59 #if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
       
    60     newSessionButton->hide();
       
    61     deleteSessionButton->hide();
       
    62 #else
    60     delete tabWidget->currentWidget();
    63     delete tabWidget->currentWidget();
    61     sessionGroup->hide();
    64     sessionGroup->hide();
    62 #if defined (Q_OS_SYMBIAN) || defined(Q_OS_WINCE)	
    65 #endif
       
    66 #if defined (Q_OS_SYMBIAN) || defined(Q_OS_WINCE) || defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
    63     setWindowState(Qt::WindowMaximized);
    67     setWindowState(Qt::WindowMaximized);
    64 #endif
    68 #endif
    65     updateConfigurations();
    69     updateConfigurations();
    66 
    70 #if !defined(Q_WS_MAEMO_5) && !defined(Q_WS_MAEMO_6)
    67     onlineStateChanged(!manager.allConfigurations(QNetworkConfiguration::Active).isEmpty());
    71     onlineStateChanged(!manager.allConfigurations(QNetworkConfiguration::Active).isEmpty());
    68 
    72 #endif
    69     QNetworkConfiguration defaultConfiguration = manager.defaultConfiguration();
    73     QNetworkConfiguration defaultConfiguration = manager.defaultConfiguration();
    70     for (int i = 0; i < treeWidget->topLevelItemCount(); ++i) {
    74     for (int i = 0; i < treeWidget->topLevelItemCount(); ++i) {
    71         QTreeWidgetItem *item = treeWidget->topLevelItem(i);
    75         QTreeWidgetItem *item = treeWidget->topLevelItem(i);
    72 
    76 
    73         if (item->data(0, Qt::UserRole).toString() == defaultConfiguration.identifier()) {
    77         if (item->data(0, Qt::UserRole).toString() == defaultConfiguration.identifier()) {
    99     connect(treeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
   103     connect(treeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
   100             this, SLOT(showConfigurationFor(QTreeWidgetItem*)));
   104             this, SLOT(showConfigurationFor(QTreeWidgetItem*)));
   101 
   105 
   102     connect(newSessionButton, SIGNAL(clicked()),
   106     connect(newSessionButton, SIGNAL(clicked()),
   103             this, SLOT(createNewSession()));
   107             this, SLOT(createNewSession()));
       
   108 #if !defined(Q_WS_MAEMO_5) && !defined(Q_WS_MAEMO_6)
   104     connect(deleteSessionButton, SIGNAL(clicked()),
   109     connect(deleteSessionButton, SIGNAL(clicked()),
   105             this, SLOT(deleteSession()));
   110             this, SLOT(deleteSession()));
   106 
   111 #endif
   107     connect(scanButton, SIGNAL(clicked()),
   112     connect(scanButton, SIGNAL(clicked()),
   108             this, SLOT(performScan()));
   113             this, SLOT(performScan()));
   109 }
   114 }
   110 
   115 
   111 BearerMonitor::~BearerMonitor()
   116 BearerMonitor::~BearerMonitor()
   232 }
   237 }
   233 
   238 
   234 void BearerMonitor::onlineStateChanged(bool isOnline)
   239 void BearerMonitor::onlineStateChanged(bool isOnline)
   235 {
   240 {
   236     if (isOnline)
   241     if (isOnline)
       
   242 #if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
       
   243         QMessageBox::information(this, "Connection state changed", "Online", QMessageBox::Close);
       
   244     else
       
   245         QMessageBox::information(this, "Connection state changed", "Offline", QMessageBox::Close);
       
   246 #else
   237         onlineState->setText(tr("Online"));
   247         onlineState->setText(tr("Online"));
   238     else
   248     else
   239         onlineState->setText(tr("Offline"));
   249         onlineState->setText(tr("Offline"));
       
   250 #endif
   240 }
   251 }
   241 
   252 
   242 #ifdef Q_OS_WIN
   253 #ifdef Q_OS_WIN
   243 void BearerMonitor::registerNetwork()
   254 void BearerMonitor::registerNetwork()
   244 {
   255 {
   245     QTreeWidgetItem *item = treeWidget->currentItem();
   256     QTreeWidgetItem *item = treeWidget->currentItem();
       
   257     if (!item) return;
   246 
   258 
   247     QNetworkConfiguration configuration =
   259     QNetworkConfiguration configuration =
   248         manager.configurationFromIdentifier(item->data(0, Qt::UserRole).toString());
   260         manager.configurationFromIdentifier(item->data(0, Qt::UserRole).toString());
   249 
   261 
   250     const QString name = configuration.name();
   262     const QString name = configuration.name();
   262 }
   274 }
   263 
   275 
   264 void BearerMonitor::unregisterNetwork()
   276 void BearerMonitor::unregisterNetwork()
   265 {
   277 {
   266     QTreeWidgetItem *item = treeWidget->currentItem();
   278     QTreeWidgetItem *item = treeWidget->currentItem();
       
   279     if (!item) return;
   267 
   280 
   268     QNetworkConfiguration configuration =
   281     QNetworkConfiguration configuration =
   269         manager.configurationFromIdentifier(item->data(0, Qt::UserRole).toString());
   282         manager.configurationFromIdentifier(item->data(0, Qt::UserRole).toString());
   270 
   283 
   271     const QString name = configuration.name();
   284     const QString name = configuration.name();
   360 
   373 
   361     SessionWidget *session = new SessionWidget(conf);
   374     SessionWidget *session = new SessionWidget(conf);
   362 
   375 
   363     tabWidget->addTab(session, conf.name());
   376     tabWidget->addTab(session, conf.name());
   364 
   377 
       
   378 #if !defined(Q_WS_MAEMO_5) && !defined(Q_WS_MAEMO_6)
   365     sessionGroup->show();
   379     sessionGroup->show();
       
   380 #endif
   366 
   381 
   367     sessionWidgets.append(session);
   382     sessionWidgets.append(session);
   368 }
   383 }
   369 
   384 
   370 void BearerMonitor::createNewSession()
   385 void BearerMonitor::createNewSession()
   371 {
   386 {
   372     QTreeWidgetItem *item = treeWidget->currentItem();
   387     QTreeWidgetItem *item = treeWidget->currentItem();
       
   388     if (!item) return;
   373 
   389 
   374     createSessionFor(item);
   390     createSessionFor(item);
   375 }
   391 }
   376 
   392 
       
   393 #if !defined(Q_WS_MAEMO_5) && !defined(Q_WS_MAEMO_6)
   377 void BearerMonitor::deleteSession()
   394 void BearerMonitor::deleteSession()
   378 {
   395 {
   379     SessionWidget *session = qobject_cast<SessionWidget *>(tabWidget->currentWidget());
   396     SessionWidget *session = qobject_cast<SessionWidget *>(tabWidget->currentWidget());
   380     if (session) {
   397     if (session) {
   381         sessionWidgets.removeAll(session);
   398         sessionWidgets.removeAll(session);
   384 
   401 
   385         if (tabWidget->count() == 0)
   402         if (tabWidget->count() == 0)
   386             sessionGroup->hide();
   403             sessionGroup->hide();
   387     }
   404     }
   388 }
   405 }
       
   406 #endif
   389 
   407 
   390 void BearerMonitor::performScan()
   408 void BearerMonitor::performScan()
   391 {
   409 {
   392     scanButton->hide();
   410     scanButton->hide();
   393     progressBar->show();
   411     progressBar->show();