diff -r 63be7eb3fc78 -r f28ada11abbf wlanutilities/cpwlansettingsplugin/src/cpwlansettingsgroupitemdata.cpp --- a/wlanutilities/cpwlansettingsplugin/src/cpwlansettingsgroupitemdata.cpp Tue Aug 31 16:18:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,425 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0"" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -// System includes - -#include -#include - -// User includes - -#include "cpwlansettingsgroupitemdata.h" -#include "wlansettings.h" - -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "cpwlansettingsgroupitemdataTraces.h" -#endif - -/*! - \class CpWlanSettingsGroupItemData - \brief CpWlanSettingsGroupItemData class creates all widgets required for Manage - WLAN Settings. -*/ - -// External function prototypes - -// Local constants - -//! To Enable the setting of a widget propery. */ -static const int KEnableOption = 1; -//! Maximum widgets allowed for this Item Data. */ -static const int KMaxWidgets = 4; -//! Index of Slider widget for Scan Interval. */ -static const int KSliderIndex = 2; -//! Default value for user defined scan interval -static const int KDefaultUserDefinedScanInterval = 5; - - -// ======== MEMBER FUNCTIONS ======== - -/*! - Constructor. -*/ - -CpWlanSettingsGroupItemData::CpWlanSettingsGroupItemData( - CpItemDataHelper &itemDataHelper) : - CpSettingFormItemData(HbDataFormModelItem::GroupItem, hbTrId( - "txt_occ_subhead_wlan_settings")), - mItemDataHelper(itemDataHelper) -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY ); - - initialise(); - createWlanSettingItems(); - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT ); -} - -/*! - Destructor. -*/ - -CpWlanSettingsGroupItemData::~CpWlanSettingsGroupItemData() -{ - OstTraceFunctionEntry0( DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY ); - OstTraceFunctionExit0( DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT ); -} - -/*! - Initialises the member variables and reads the values of WLAN Settings. -*/ - -void CpWlanSettingsGroupItemData::initialise() -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_INITIALISE_ENTRY ); - - mWlanSettings.reset(new WlanSettings); - - bool connectStatus = connect( - mWlanSettings.data(), - SIGNAL(devicePowerSavingUpdated()), - this, - SLOT(devicePowerSavingChanged())); - Q_ASSERT(connectStatus); - - //Error needs to be handled. - int error = mWlanSettings->init(); - - //Error needs to be handled. - error = mWlanSettings->loadSettings(); - - mUserDefinedScanInterval = KDefaultUserDefinedScanInterval; - mUserDefinedItem = NULL; - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_INITIALISE_EXIT ); -} - -/*! - Creates the Widgets for displaying WLAN Settings. -*/ - -void CpWlanSettingsGroupItemData::createWlanSettingItems() -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINGITEMS_ENTRY ); - - mJoinWlanItem = new CpSettingFormItemData( - HbDataFormModelItem::ComboBoxItem, - hbTrId("txt_occ_setlabel_join_wlan_networks")); - // name the object for test automation purposes - mJoinWlanItem->setObjectName("switchToWlan"); - - QStringList joinWlanItems; - - joinWlanItems.append( - hbTrId("txt_occ_setlabel_join_wlan_networks_val_known")); - - joinWlanItems.append( - hbTrId("txt_occ_setlabel_join_wlan_networks_val_manual")); - - mJoinWlanItem->setContentWidgetData("items", joinWlanItems); - - mItemDataHelper.addConnection( - mJoinWlanItem, - SIGNAL(currentIndexChanged (int)), - this, - SLOT(joinWlanItemChanged (int))); - - mJoinWlanItem->setContentWidgetData( - "currentIndex", - mWlanSettings->joinWlanMode()); - - this->appendChild(mJoinWlanItem); - - mScanNetworkItem = new CpSettingFormItemData( - HbDataFormModelItem::ComboBoxItem, - hbTrId("txt_occ_setlabel_scan_for_networks")); - // name the object for test automation purposes - mScanNetworkItem->setObjectName("scanNetworkItem"); - - QStringList scanNetworkItems; - - scanNetworkItems.append( - hbTrId("txt_occ_setlabel_scan_for_networks_val_automatic")); - - scanNetworkItems.append( - hbTrId("txt_occ_setlabel_scan_for_networks_val_userdefine")); - - mScanNetworkItem->setContentWidgetData("items", scanNetworkItems); - - mItemDataHelper.addConnection( - mScanNetworkItem, - SIGNAL(currentIndexChanged (const QString &)), - this, - SLOT(scanItemChanged (const QString &))); - - this->appendChild(mScanNetworkItem); - - WlanSettings::ScanNetworkType scanType = mWlanSettings->scanNetworkType(); - - mScanNetworkItem->setContentWidgetData("currentIndex", scanType); - - //In case of PSM mode for device user-defined value is not - //allowed,make it automatic forcefully. - if (mWlanSettings->isDevicePowerSavingEnabled()) { - mScanNetworkItem->setContentWidgetData( - "currentIndex", - WlanSettings::EScanNetworkAuto); - mScanNetworkItem->setContentWidgetData("enabled", false); - } else if (scanType == WlanSettings::EScanNetworkUserDefined) { - createScanIntervalItem(); - } - - mPowerSavingItem = new CpSettingFormItemData( - HbDataFormModelItem::ComboBoxItem, - hbTrId("txt_occ_setlabel_power_saving")); - // name the object for test automation purposes - mPowerSavingItem->setObjectName("powerSaving"); - - QStringList powerSavingItems; - - powerSavingItems.append( - hbTrId("txt_occ_setlabel_power_saving_val_disabled")); - - powerSavingItems.append( - hbTrId("txt_occ_setlabel_power_saving_val_enabled")); - - mPowerSavingItem->setContentWidgetData("items", powerSavingItems); - - mPowerSavingItem->setContentWidgetData( - "currentIndex", - mWlanSettings->isWlanPowerSavingEnabled()); - - mItemDataHelper.addConnection( - mPowerSavingItem, - SIGNAL(currentIndexChanged (int)), - this, - SLOT(powerSavingItemChanged (int))); - - this->appendChild(mPowerSavingItem); - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINGITEMS_EXIT ); -} - -/*! - Creates the slider widget for displaying scan interval value. -*/ - -void CpWlanSettingsGroupItemData::createScanIntervalItem() -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_ENTRY ); - - //Add Scan Interval Slider, if it doesn't already exist. - if (this->childCount() < KMaxWidgets) { - mUserDefinedItem = new CpSettingFormItemData( - HbDataFormModelItem::SliderItem, - hbTrId("txt_occ_setlabel_scan_interval_minutes")); - - mUserDefinedItem->setContentWidgetData("maximum", WlanSettings::ScanNetworkMax); - mUserDefinedItem->setContentWidgetData("minimum", WlanSettings::ScanNetworkMin); - mUserDefinedItem->setContentWidgetData("toolTipVisible", KEnableOption); - mUserDefinedItem->setContentWidgetData("tracking", KEnableOption); - - mItemDataHelper.addConnection( - mUserDefinedItem, - SIGNAL(valueChanged (int)), - this, - SLOT(scanValueChanged (int))); - - mItemDataHelper.addConnection( - mUserDefinedItem, - SIGNAL(sliderReleased ()), - this, - SLOT(scanSliderReleased ())); - - mItemDataHelper.addConnection( - mUserDefinedItem, - SIGNAL(sliderPressed ()), - this, - SLOT(scanSliderPressed ())); - - int interval = mWlanSettings->scanInterval(); - if (interval == WlanSettings::ScanNetworkAuto) { - interval = mUserDefinedScanInterval; - } - mUserDefinedItem->setContentWidgetData("value", interval); - - this->insertChild(KSliderIndex, mUserDefinedItem); - } - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_EXIT ); -} - -/*! - Removes the slider widget, if it exists. -*/ - -void CpWlanSettingsGroupItemData::removeScanIntervalItem() -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_REMOVESCANINTERVALITEM_ENTRY ); - - if (KMaxWidgets == this->childCount()) { - this->removeChild(KSliderIndex); - mUserDefinedItem = NULL; //removeChild() will delete the item. - } - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_REMOVESCANINTERVALITEM_EXIT ); -} - -/*! - Slot for handling pressed signal of scan interval slider widget. -*/ - -void CpWlanSettingsGroupItemData::scanSliderPressed() -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_ENTRY ); - - int interval = mWlanSettings->scanInterval(); - if (interval == WlanSettings::ScanNetworkAuto) { - interval = mUserDefinedScanInterval; - } - mUserDefinedItem->setContentWidgetData( - "text", - QString("%1").arg(interval)); - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_EXIT ); -} - -/*! - Slot for handling value changed signal of scan interval slider widget. -*/ - -void CpWlanSettingsGroupItemData::scanValueChanged(int value) -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_ENTRY ); - - mUserDefinedItem->setContentWidgetData("text",QString("%1").arg(value)); - mUserDefinedScanInterval = value; - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_EXIT ); -} - -/*! - Slot for handling Released signal of scan interval slider widget. - Current value will be commited to database. -*/ - -void CpWlanSettingsGroupItemData::scanSliderReleased() -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_ENTRY ); - - mWlanSettings->setWlanScanInterval(mUserDefinedScanInterval); - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_EXIT ); -} - -/*! - Slot for handling item changed signal of Scan for network combo box widget. -*/ - -void CpWlanSettingsGroupItemData::scanItemChanged(const QString &text) -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_ENTRY ); - - if (hbTrId("txt_occ_setlabel_scan_for_networks_val_userdefine") == text) { - // User defined mode - mWlanSettings->setWlanScanInterval(mUserDefinedScanInterval); - createScanIntervalItem(); - } else { - // Automatic mode - removeScanIntervalItem(); - mWlanSettings->setWlanScanInterval(WlanSettings::ScanNetworkAuto); - } - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_EXIT ); -} - -/*! - Slot for handling item changed signal of Power saving combo box widget. -*/ - -void CpWlanSettingsGroupItemData::powerSavingItemChanged(int index) -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_ENTRY ); - - mWlanSettings->setWlanPowerSaving(index); - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_EXIT ); -} - -/*! - Slot for handling item changed signal of Join WLAN networks combo box widget. -*/ - -void CpWlanSettingsGroupItemData::joinWlanItemChanged(int index) -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_ENTRY ); - - mWlanSettings->setJoinWlanMode(index); - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_EXIT ); -} - -/*! - Slot for handling device power saving mode update signal. -*/ - -void CpWlanSettingsGroupItemData::devicePowerSavingChanged() -{ - OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_DEVICEPOWERSAVINGCHANGED_ENTRY ); - - // Disconnect the handling of currentIndexChanged, because - // we will programmatically update the index in this function. - mItemDataHelper.removeConnection( - mScanNetworkItem, - SIGNAL(currentIndexChanged (const QString &)), - this, - SLOT(scanItemChanged (const QString &))); - - if (mWlanSettings->isDevicePowerSavingEnabled()) { - // If device power saving mode is activated, force the scan - // setting to automatic, and disable the setting combo box - mScanNetworkItem->setContentWidgetData( - "currentIndex", - WlanSettings::EScanNetworkAuto); - mScanNetworkItem->setContentWidgetData("enabled", false); - removeScanIntervalItem(); - } else { - // If device power saving mode is deactivated, enable the - // setting combo box, and make sure the setting is in the - // same mode it was before power saving mode was activated - mScanNetworkItem->setContentWidgetData("enabled", true); - if (mWlanSettings->scanNetworkType() == - WlanSettings::EScanNetworkUserDefined) { - mScanNetworkItem->setContentWidgetData( - "currentIndex", - WlanSettings::EScanNetworkUserDefined); - createScanIntervalItem(); - } - } - - // Reconnect the handling of currentIndexChanged since we are - // done with the updates. - mItemDataHelper.addConnection( - mScanNetworkItem, - SIGNAL(currentIndexChanged (const QString &)), - this, - SLOT(scanItemChanged (const QString &))); - - OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_DEVICEPOWERSAVINGCHANGED_EXIT ); -}