phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkstatus.cpp
changeset 45 6b911d05207e
child 65 2a5d4ab426d3
equal deleted inserted replaced
37:ba76fc04e6c2 45:6b911d05207e
       
     1 /*
       
     2  * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description:  
       
    15  *
       
    16  */
       
    17 #include <cpsettingformitemdata.h>
       
    18 #include <hbicon.h>
       
    19 #include "cpnetworkstatus.h"
       
    20 #include "cppluginlogging.h"
       
    21 
       
    22 
       
    23 /*!
       
    24   CpNetworkStatus::CpNetworkStatus
       
    25  */
       
    26 CpNetworkStatus::CpNetworkStatus() : 
       
    27     QObject(0),
       
    28     m_settingFormItemData(NULL)
       
    29 {
       
    30     DPRINT << ": IN";
       
    31     
       
    32     m_networkInfo.reset(new QSystemNetworkInfo);
       
    33     
       
    34     m_deviceInfo.reset(new QSystemDeviceInfo);
       
    35     
       
    36     connect(m_networkInfo.data(), 
       
    37             SIGNAL(networkNameChanged(
       
    38                     QSystemNetworkInfo::NetworkMode, QString)), 
       
    39             this, 
       
    40             SLOT(networkNameChanged(
       
    41                     QSystemNetworkInfo::NetworkMode, QString)));
       
    42     
       
    43     connect(m_networkInfo.data(), 
       
    44             SIGNAL(networkStatusChanged(
       
    45                     QSystemNetworkInfo::NetworkMode, 
       
    46                     QSystemNetworkInfo::NetworkStatus)),
       
    47             this, 
       
    48             SLOT(networkStatusChanged(
       
    49                     QSystemNetworkInfo::NetworkMode, 
       
    50                     QSystemNetworkInfo::NetworkStatus)));
       
    51         
       
    52     DPRINT << ": OUT";
       
    53 }
       
    54 
       
    55 
       
    56 /*!
       
    57   CpNetworkStatus::~CpNetworkStatus
       
    58  */
       
    59 CpNetworkStatus::~CpNetworkStatus()
       
    60 {
       
    61     DPRINT << ": IN";
       
    62     
       
    63     disconnect(m_networkInfo.data(), 
       
    64             SIGNAL (networkNameChanged(
       
    65                     QSystemNetworkInfo::NetworkMode,QString)),
       
    66             this, 
       
    67             SLOT(networkNameChanged(
       
    68                     QSystemNetworkInfo::NetworkMode, QString)));
       
    69                 
       
    70     disconnect(m_networkInfo.data(), 
       
    71             SIGNAL(networkStatusChanged(
       
    72                     QSystemNetworkInfo::NetworkMode, 
       
    73                     QSystemNetworkInfo::NetworkStatus)), 
       
    74             this, 
       
    75             SLOT(networkStatusChanged(
       
    76                     QSystemNetworkInfo::NetworkMode, 
       
    77                     QSystemNetworkInfo::NetworkStatus)));
       
    78     
       
    79     DPRINT << ": OUT";
       
    80 }
       
    81 
       
    82     
       
    83 /*!
       
    84   CpNetworkStatus::statusText
       
    85  */
       
    86 QString CpNetworkStatus::statusText() const
       
    87 {
       
    88     DPRINT << ": IN";
       
    89     
       
    90     QString statusText;
       
    91     
       
    92     if ((QSystemDeviceInfo::SimNotAvailable == m_deviceInfo->simStatus()) ||
       
    93         (QSystemDeviceInfo::OfflineProfile == m_deviceInfo->currentProfile())) {   
       
    94         statusText = hbTrId("txt_cp_dblist_mobile_network_val_off");
       
    95     } else if (connectedToNetwork()) {
       
    96         statusText = m_networkInfo->networkName(QSystemNetworkInfo::WcdmaMode);
       
    97         if(statusText.isEmpty()) {
       
    98             statusText = m_networkInfo->networkName(QSystemNetworkInfo::GsmMode);
       
    99         }
       
   100     } else {
       
   101         statusText = hbTrId("txt_cp_dblist_mobile_network_val_not_connected");
       
   102     }
       
   103     
       
   104     DPRINT << ": OUT";
       
   105     return statusText;
       
   106 }
       
   107 
       
   108 /*!
       
   109   CpNetworkStatus::statusIcon
       
   110  */
       
   111 HbIcon CpNetworkStatus::statusIcon() const
       
   112 {
       
   113     DPRINT << ": IN";
       
   114     
       
   115     HbIcon statusIcon(statusIconLocicalName());
       
   116     
       
   117     DPRINT << ": OUT";
       
   118     return statusIcon;
       
   119 }
       
   120 
       
   121 /*!
       
   122   CpNetworkStatus::statusIconLocicalName
       
   123  */
       
   124 QString CpNetworkStatus::statusIconLocicalName() const
       
   125 {
       
   126     DPRINT << ": IN";
       
   127     
       
   128     QString statusIcon("");
       
   129     
       
   130     if ((QSystemDeviceInfo::SimNotAvailable == m_deviceInfo->simStatus()) ||
       
   131         (QSystemDeviceInfo::OfflineProfile == m_deviceInfo->currentProfile())) {   
       
   132         statusIcon = QString("qtg_large_network_off");
       
   133     } else if (connectedToNetwork()) {
       
   134         statusIcon = QString("qtg_large_network");
       
   135     } else {
       
   136         statusIcon = QString("qtg_large_network_off");
       
   137     }
       
   138     
       
   139     DPRINT << ": OUT";
       
   140     return statusIcon;
       
   141 }
       
   142 
       
   143 /*!
       
   144   CpNetworkStatus::networkNameChanged
       
   145  */
       
   146 void CpNetworkStatus::networkNameChanged(
       
   147         QSystemNetworkInfo::NetworkMode mode, const QString &)
       
   148 {
       
   149     DPRINT << ": IN";
       
   150     
       
   151     if (m_settingFormItemData &&
       
   152         ((QSystemNetworkInfo::GsmMode == mode) || 
       
   153         (QSystemNetworkInfo::WcdmaMode == mode) || 
       
   154         (QSystemNetworkInfo::UnknownMode == mode))) {
       
   155         m_settingFormItemData->setDescription(statusText());
       
   156         m_settingFormItemData->setIcon(statusIconLocicalName());
       
   157     }
       
   158     
       
   159     DPRINT << ": OUT";
       
   160 }
       
   161 
       
   162 /*!
       
   163   CpNetworkStatus::networkStatusChanged
       
   164  */
       
   165 void CpNetworkStatus::networkStatusChanged(
       
   166         QSystemNetworkInfo::NetworkMode mode, QSystemNetworkInfo::NetworkStatus)
       
   167 {
       
   168     DPRINT << ": IN";
       
   169     
       
   170     if (m_settingFormItemData &&
       
   171         ((QSystemNetworkInfo::GsmMode == mode) || 
       
   172         (QSystemNetworkInfo::WcdmaMode == mode) || 
       
   173         (QSystemNetworkInfo::UnknownMode == mode))) {
       
   174         m_settingFormItemData->setDescription(statusText());
       
   175         m_settingFormItemData->setIcon(statusIconLocicalName());
       
   176     }
       
   177     
       
   178     DPRINT << ": OUT";
       
   179 }
       
   180 /*!
       
   181   CpNetworkStatus::setSettingFormItemData
       
   182  */
       
   183 void CpNetworkStatus::setSettingFormItemData(CpSettingFormItemData *data)
       
   184 {
       
   185     m_settingFormItemData = data;
       
   186 }
       
   187 
       
   188 /*!
       
   189   CpNetworkStatus::connectedToNetwork
       
   190  */
       
   191 bool CpNetworkStatus::connectedToNetwork() const
       
   192 {
       
   193     DPRINT << ": IN";
       
   194     
       
   195     bool connected(false);
       
   196     QSystemNetworkInfo::NetworkStatus wcdmaStatus = 
       
   197             m_networkInfo->networkStatus(QSystemNetworkInfo::WcdmaMode);
       
   198     QSystemNetworkInfo::NetworkStatus gsmStatus = 
       
   199             m_networkInfo->networkStatus(QSystemNetworkInfo::GsmMode);
       
   200     
       
   201     if (QSystemNetworkInfo::Connected == wcdmaStatus ||
       
   202         QSystemNetworkInfo::HomeNetwork == wcdmaStatus ||
       
   203         QSystemNetworkInfo::Roaming == wcdmaStatus ||
       
   204         QSystemNetworkInfo::Connected == gsmStatus ||
       
   205         QSystemNetworkInfo::HomeNetwork == gsmStatus ||
       
   206         QSystemNetworkInfo::Roaming == gsmStatus) {
       
   207         connected = true;
       
   208     }
       
   209     
       
   210     DPRINT << ": OUT";
       
   211     return connected;
       
   212 }
       
   213