wlanutilities/cpwlansettingsplugin/src/cpwlansettingsgroupitemdata.cpp
changeset 56 de27cc8389dd
parent 50 d4198dcb9983
equal deleted inserted replaced
50:d4198dcb9983 56:de27cc8389dd
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 // System includes
    19 // System includes
    20 
    20 
    21 #include <HbGlobal>
       
    22 #include <HbDataFormModelItem>
       
    23 #include <HbLineEdit>
       
    24 #include <HbValidator>
       
    25 #include <HbMessageBox>
       
    26 #include <QStringList>
    21 #include <QStringList>
    27 #include <cpsettingformitemdata.h>
    22 #include <cpsettingformitemdata.h>
    28 
    23 
    29 // User includes
    24 // User includes
    30 
    25 
    43 */
    38 */
    44 
    39 
    45 // External function prototypes
    40 // External function prototypes
    46 
    41 
    47 // Local constants
    42 // Local constants
    48 /**  Maximum Value for Scan Interval. */
    43 
    49 const int KMaximumScanInterval = 30;
    44 //! To Enable the setting of a widget propery. */
    50 /**  Minimum Value for Scan Interval. */
    45 static const int KEnableOption = 1;
    51 const int KMinimumScanInterval = 0;
    46 //! Maximum widgets allowed for this Item Data. */
    52 /**  To Enable the setting of a widget propery. */
    47 static const int KMaxWidgets = 4;
    53 const int KEnableOption = 1;
    48 //! Index of Slider widget for Scan Interval. */
    54 /**  Maximum widgets allowed for this Item Data. */
    49 static const int KSliderIndex = 2;
    55 const int KMaxWidgets = 4;
    50 //! Default value for user defined scan interval
    56 /**  Index of Slider widget for Scan Interval. */
    51 static const int KDefaultUserDefinedScanInterval = 5;
    57 const int KSliderIndex = 2;
    52 
    58 
    53 
    59 // ======== MEMBER FUNCTIONS ========
    54 // ======== MEMBER FUNCTIONS ========
    60 
    55 
    61 /*!
    56 /*!
    62     Constructor.
    57     Constructor.
    66         CpItemDataHelper &itemDataHelper) :
    61         CpItemDataHelper &itemDataHelper) :
    67     CpSettingFormItemData(HbDataFormModelItem::GroupItem, hbTrId(
    62     CpSettingFormItemData(HbDataFormModelItem::GroupItem, hbTrId(
    68             "txt_occ_subhead_wlan_settings")),
    63             "txt_occ_subhead_wlan_settings")),
    69             mItemDataHelper(itemDataHelper)
    64             mItemDataHelper(itemDataHelper)
    70 {
    65 {
    71     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY, this);
    66     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY );
    72     
    67 
    73     initialise();
    68     initialise();
    74     
       
    75     createWlanSettingItems();
    69     createWlanSettingItems();
    76     
    70 
    77     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT, this);
    71     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT );
    78 }
    72 }
    79 
    73 
    80 /*!
    74 /*!
    81     Destructor.
    75     Destructor.
    82 */
    76 */
    83 
    77 
    84 CpWlanSettingsGroupItemData::~CpWlanSettingsGroupItemData()
    78 CpWlanSettingsGroupItemData::~CpWlanSettingsGroupItemData()
    85 {
    79 {
    86     OstTraceFunctionEntry1(DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY, this);
    80     OstTraceFunctionEntry0( DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY );
    87     OstTraceFunctionExit1(DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT, this);
    81     OstTraceFunctionExit0( DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT );
    88 }
    82 }
    89 
    83 
    90 /*!
    84 /*!
    91     Initialises the member variables and reads the values of WLAN Settings.
    85     Initialises the member variables and reads the values of WLAN Settings.
    92 */
    86 */
    93 
    87 
    94 void CpWlanSettingsGroupItemData::initialise()
    88 void CpWlanSettingsGroupItemData::initialise()
    95 {
    89 {
    96     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_INITIALISE_ENTRY, this);
    90     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_INITIALISE_ENTRY );
    97     
    91     
    98     mWlanSettings.reset(new WlanSettings);
    92     mWlanSettings.reset(new WlanSettings);
    99     
    93     
       
    94     bool connectStatus = connect(
       
    95         mWlanSettings.data(),
       
    96         SIGNAL(devicePowerSavingUpdated()),
       
    97         this,
       
    98         SLOT(devicePowerSavingChanged()));
       
    99     Q_ASSERT(connectStatus);
       
   100 
   100     //Error needs to be handled.
   101     //Error needs to be handled.
   101     int error = mWlanSettings->init();
   102     int error = mWlanSettings->init();
   102     
   103     
   103     //Error needs to be handled.
   104     //Error needs to be handled.
   104     error = mWlanSettings->loadSettings();
   105     error = mWlanSettings->loadSettings();
   105     
   106 
       
   107     mUserDefinedScanInterval = KDefaultUserDefinedScanInterval;
   106     mUserDefinedItem = NULL;
   108     mUserDefinedItem = NULL;
   107     
   109     
   108     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_INITIALISE_EXIT, this);
   110     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_INITIALISE_EXIT );
   109 }
   111 }
   110 
   112 
   111 /*!
   113 /*!
   112     Creates the Widgets for displaying WLAN Settings.
   114     Creates the Widgets for displaying WLAN Settings.
   113 */
   115 */
   114 
   116 
   115 void CpWlanSettingsGroupItemData::createWlanSettingItems()
   117 void CpWlanSettingsGroupItemData::createWlanSettingItems()
   116 {
   118 {
   117     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINITEMS_ENTRY, this);
   119     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINGITEMS_ENTRY );
   118     
   120     
   119     mJoinWlanItem = new CpSettingFormItemData(
   121     mJoinWlanItem = new CpSettingFormItemData(
   120         HbDataFormModelItem::ComboBoxItem,
   122         HbDataFormModelItem::ComboBoxItem,
   121         hbTrId("txt_occ_setlabel_join_wlan_networks"));
   123         hbTrId("txt_occ_setlabel_join_wlan_networks"));
   122     // name the object for test automation purposes
   124     // name the object for test automation purposes
   170 
   172 
   171     WlanSettings::ScanNetworkType scanType = mWlanSettings->scanNetworkType();
   173     WlanSettings::ScanNetworkType scanType = mWlanSettings->scanNetworkType();
   172 
   174 
   173     mScanNetworkItem->setContentWidgetData("currentIndex", scanType);
   175     mScanNetworkItem->setContentWidgetData("currentIndex", scanType);
   174 
   176 
   175     if (scanType == WlanSettings::EScanNetworkUserDefined) {
   177     //In case of PSM mode for device user-defined value is not 
       
   178     //allowed,make it automatic forcefully.
       
   179     if (mWlanSettings->isDevicePowerSavingEnabled()) {
       
   180         mScanNetworkItem->setContentWidgetData(
       
   181             "currentIndex",
       
   182             WlanSettings::EScanNetworkAuto);
       
   183         mScanNetworkItem->setContentWidgetData("enabled", false);
       
   184     } else if (scanType == WlanSettings::EScanNetworkUserDefined) {
   176         createScanIntervalItem();
   185         createScanIntervalItem();
   177         this->appendChild(mUserDefinedItem);
   186     }
   178     }
   187     
   179 
       
   180     mPowerSavingItem = new CpSettingFormItemData(
   188     mPowerSavingItem = new CpSettingFormItemData(
   181         HbDataFormModelItem::ComboBoxItem,
   189         HbDataFormModelItem::ComboBoxItem,
   182         hbTrId("txt_occ_setlabel_power_saving"));
   190         hbTrId("txt_occ_setlabel_power_saving"));
   183     // name the object for test automation purposes
   191     // name the object for test automation purposes
   184     mPowerSavingItem->setObjectName("powerSaving");
   192     mPowerSavingItem->setObjectName("powerSaving");
   193 
   201 
   194     mPowerSavingItem->setContentWidgetData("items", powerSavingItems);
   202     mPowerSavingItem->setContentWidgetData("items", powerSavingItems);
   195 
   203 
   196     mPowerSavingItem->setContentWidgetData(
   204     mPowerSavingItem->setContentWidgetData(
   197         "currentIndex",
   205         "currentIndex",
   198         mWlanSettings->isPowerSavingEnabled());
   206         mWlanSettings->isWlanPowerSavingEnabled());
   199 
   207 
   200     mItemDataHelper.addConnection(
   208     mItemDataHelper.addConnection(
   201         mPowerSavingItem,
   209         mPowerSavingItem,
   202         SIGNAL(currentIndexChanged (int)),
   210         SIGNAL(currentIndexChanged (int)),
   203         this,
   211         this,
   204         SLOT(powerSavingItemChanged (int)));
   212         SLOT(powerSavingItemChanged (int)));
   205 
   213 
   206     this->appendChild(mPowerSavingItem);
   214     this->appendChild(mPowerSavingItem);
   207 
   215 
   208     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINITEMS_EXIT, this);
   216     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINGITEMS_EXIT );
   209 }
   217 }
   210 
   218 
   211 /*!
   219 /*!
   212     Creates the slider widget for displaying scan interval value.
   220     Creates the slider widget for displaying scan interval value.
   213 */
   221 */
   214 
   222 
   215 void CpWlanSettingsGroupItemData::createScanIntervalItem()
   223 void CpWlanSettingsGroupItemData::createScanIntervalItem()
   216 {
   224 {
   217     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_ENTRY, this);
   225     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_ENTRY );
   218     
   226     
   219     mUserDefinedItem = new CpSettingFormItemData(
   227     //Add Scan Interval Slider, if it doesn't already exist.
   220         HbDataFormModelItem::SliderItem,
   228     if (this->childCount() < KMaxWidgets) {
   221         hbTrId("txt_occ_setlabel_scan_interval_minutes"));
   229         mUserDefinedItem = new CpSettingFormItemData(
   222 
   230             HbDataFormModelItem::SliderItem,
   223     mUserDefinedItem->setContentWidgetData("maximum", KMaximumScanInterval);
   231             hbTrId("txt_occ_setlabel_scan_interval_minutes"));
   224     mUserDefinedItem->setContentWidgetData("minimum", KMinimumScanInterval);
   232     
   225     mUserDefinedItem->setContentWidgetData("toolTipVisible", KEnableOption);
   233         mUserDefinedItem->setContentWidgetData("maximum", WlanSettings::ScanNetworkMax);
   226     mUserDefinedItem->setContentWidgetData("tracking", KEnableOption);
   234         mUserDefinedItem->setContentWidgetData("minimum", WlanSettings::ScanNetworkMin);
   227 
   235         mUserDefinedItem->setContentWidgetData("toolTipVisible", KEnableOption);
       
   236         mUserDefinedItem->setContentWidgetData("tracking", KEnableOption);
       
   237     
       
   238         mItemDataHelper.addConnection(
       
   239             mUserDefinedItem,
       
   240             SIGNAL(valueChanged (int)),
       
   241             this,
       
   242             SLOT(scanValueChanged (int)));
       
   243         
       
   244         mItemDataHelper.addConnection(
       
   245             mUserDefinedItem,
       
   246             SIGNAL(sliderReleased ()),
       
   247             this,
       
   248             SLOT(scanSliderReleased ()));
       
   249         
       
   250         mItemDataHelper.addConnection(
       
   251             mUserDefinedItem,
       
   252             SIGNAL(sliderPressed ()),
       
   253             this,
       
   254             SLOT(scanSliderPressed ()));
       
   255 
       
   256         int interval = mWlanSettings->scanInterval();
       
   257         if (interval == WlanSettings::ScanNetworkAuto) {
       
   258             interval = mUserDefinedScanInterval;
       
   259         }
       
   260         mUserDefinedItem->setContentWidgetData("value", interval);
       
   261     
       
   262         this->insertChild(KSliderIndex, mUserDefinedItem);
       
   263     }
       
   264 
       
   265     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_EXIT );
       
   266 }
       
   267 
       
   268 /*!
       
   269     Removes the slider widget, if it exists.
       
   270 */
       
   271 
       
   272 void CpWlanSettingsGroupItemData::removeScanIntervalItem()
       
   273 {
       
   274     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_REMOVESCANINTERVALITEM_ENTRY );
       
   275     
       
   276     if (KMaxWidgets == this->childCount()) {
       
   277         this->removeChild(KSliderIndex);
       
   278         mUserDefinedItem = NULL;    //removeChild() will delete the item.
       
   279     }
       
   280 
       
   281     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_REMOVESCANINTERVALITEM_EXIT );
       
   282 }
       
   283 
       
   284 /*!
       
   285     Slot for handling pressed signal of scan interval slider widget.
       
   286 */
       
   287 
       
   288 void CpWlanSettingsGroupItemData::scanSliderPressed()
       
   289 {
       
   290     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_ENTRY );
       
   291 
       
   292     int interval = mWlanSettings->scanInterval();
       
   293     if (interval == WlanSettings::ScanNetworkAuto) {
       
   294         interval = mUserDefinedScanInterval;
       
   295     }
       
   296     mUserDefinedItem->setContentWidgetData(
       
   297         "text",
       
   298         QString("%1").arg(interval));
       
   299     
       
   300     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_EXIT );
       
   301 }
       
   302 
       
   303 /*!
       
   304     Slot for handling value changed signal of scan interval slider widget.
       
   305 */
       
   306 
       
   307 void CpWlanSettingsGroupItemData::scanValueChanged(int value)
       
   308 {
       
   309     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_ENTRY );
       
   310     
       
   311     mUserDefinedItem->setContentWidgetData("text",QString("%1").arg(value));
       
   312     mUserDefinedScanInterval = value;
       
   313     
       
   314     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_EXIT );
       
   315 }
       
   316 
       
   317 /*!
       
   318     Slot for handling Released signal of scan interval slider widget.
       
   319     Current value will be commited to database.
       
   320 */
       
   321 
       
   322 void CpWlanSettingsGroupItemData::scanSliderReleased()
       
   323 {
       
   324     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_ENTRY );
       
   325     
       
   326     mWlanSettings->setWlanScanInterval(mUserDefinedScanInterval);
       
   327     
       
   328     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_EXIT );
       
   329 }
       
   330 
       
   331 /*!
       
   332     Slot for handling item changed signal of Scan for network combo box widget.
       
   333 */
       
   334 
       
   335 void CpWlanSettingsGroupItemData::scanItemChanged(const QString &text)
       
   336 {
       
   337     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_ENTRY );
       
   338     
       
   339     if (hbTrId("txt_occ_setlabel_scan_for_networks_val_userdefine") == text) {
       
   340         // User defined mode
       
   341         mWlanSettings->setWlanScanInterval(mUserDefinedScanInterval);
       
   342         createScanIntervalItem();
       
   343     } else {
       
   344         // Automatic mode
       
   345         removeScanIntervalItem();
       
   346         mWlanSettings->setWlanScanInterval(WlanSettings::ScanNetworkAuto);
       
   347     }
       
   348     
       
   349     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_EXIT );
       
   350 }
       
   351 
       
   352 /*!
       
   353     Slot for handling item changed signal of Power saving combo box widget.
       
   354 */
       
   355 
       
   356 void CpWlanSettingsGroupItemData::powerSavingItemChanged(int index)
       
   357 {
       
   358     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_ENTRY );
       
   359     
       
   360     mWlanSettings->setWlanPowerSaving(index);
       
   361     
       
   362     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_EXIT );
       
   363 }
       
   364 
       
   365 /*!
       
   366     Slot for handling item changed signal of Join WLAN networks combo box widget.
       
   367 */
       
   368 
       
   369 void CpWlanSettingsGroupItemData::joinWlanItemChanged(int index)
       
   370 {
       
   371     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_ENTRY );
       
   372     
       
   373     mWlanSettings->setJoinWlanMode(index);
       
   374     
       
   375     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_EXIT );
       
   376 }
       
   377 
       
   378 /*!
       
   379     Slot for handling device power saving mode update signal.
       
   380 */
       
   381 
       
   382 void CpWlanSettingsGroupItemData::devicePowerSavingChanged()
       
   383 {
       
   384     OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_DEVICEPOWERSAVINGCHANGED_ENTRY );
       
   385     
       
   386     // Disconnect the handling of currentIndexChanged, because
       
   387     // we will programmatically update the index in this function.
       
   388     mItemDataHelper.removeConnection(
       
   389         mScanNetworkItem,
       
   390         SIGNAL(currentIndexChanged (const QString &)),
       
   391         this,
       
   392         SLOT(scanItemChanged (const QString &)));
       
   393     
       
   394     if (mWlanSettings->isDevicePowerSavingEnabled()) {
       
   395         // If device power saving mode is activated, force the scan
       
   396         // setting to automatic, and disable the setting combo box
       
   397         mScanNetworkItem->setContentWidgetData(
       
   398             "currentIndex",
       
   399             WlanSettings::EScanNetworkAuto);
       
   400         mScanNetworkItem->setContentWidgetData("enabled", false);
       
   401         removeScanIntervalItem();
       
   402     } else {
       
   403         // If device power saving mode is deactivated, enable the
       
   404         // setting combo box, and make sure the setting is in the
       
   405         // same mode it was before power saving mode was activated
       
   406         mScanNetworkItem->setContentWidgetData("enabled", true);
       
   407         if (mWlanSettings->scanNetworkType() ==
       
   408             WlanSettings::EScanNetworkUserDefined) {
       
   409             mScanNetworkItem->setContentWidgetData(
       
   410                 "currentIndex",
       
   411                 WlanSettings::EScanNetworkUserDefined);
       
   412             createScanIntervalItem();
       
   413         }
       
   414     }
       
   415 
       
   416     // Reconnect the handling of currentIndexChanged since we are
       
   417     // done with the updates.
   228     mItemDataHelper.addConnection(
   418     mItemDataHelper.addConnection(
   229         mUserDefinedItem,
   419         mScanNetworkItem,
   230         SIGNAL(valueChanged (int)),
   420         SIGNAL(currentIndexChanged (const QString &)),
   231         this,
   421         this,
   232         SLOT(scanValueChanged (int)));
   422         SLOT(scanItemChanged (const QString &)));
   233     
   423 
   234     mItemDataHelper.addConnection(
   424     OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_DEVICEPOWERSAVINGCHANGED_EXIT );
   235         mUserDefinedItem,
   425 }
   236         SIGNAL(sliderReleased ()),
       
   237         this,
       
   238         SLOT(scanSliderReleased ()));
       
   239     
       
   240     mItemDataHelper.addConnection(
       
   241         mUserDefinedItem,
       
   242         SIGNAL(sliderPressed ()),
       
   243         this,
       
   244         SLOT(scanSliderPressed ()));
       
   245 
       
   246     mScanInterval = mWlanSettings->scanInterval();
       
   247 
       
   248     mUserDefinedItem->setContentWidgetData("value", mScanInterval);
       
   249     
       
   250     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_EXIT, this);
       
   251 }
       
   252 
       
   253 /*!
       
   254     Slot for handling pressed singal of scan interval slider widget.
       
   255 */
       
   256 
       
   257 void CpWlanSettingsGroupItemData::scanSliderPressed()
       
   258 {
       
   259     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_ENTRY, this);
       
   260     
       
   261     mUserDefinedItem->setContentWidgetData("text",QString("%1").arg(mScanInterval));
       
   262     
       
   263     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_EXIT, this);
       
   264 }
       
   265 
       
   266 /*!
       
   267     Slot for handling value changed singal of scan interval slider widget.
       
   268 */
       
   269 
       
   270 void CpWlanSettingsGroupItemData::scanValueChanged(int value)
       
   271 {
       
   272     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_ENTRY, this);
       
   273     
       
   274     mUserDefinedItem->setContentWidgetData("text",QString("%1").arg(value));
       
   275     mScanInterval = value;
       
   276     
       
   277     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_EXIT, this);
       
   278 }
       
   279 
       
   280 /*!
       
   281     Slot for handling Released singal of scan interval slider widget.
       
   282     Current value will be commited to database.
       
   283 */
       
   284 
       
   285 void CpWlanSettingsGroupItemData::scanSliderReleased()
       
   286 {
       
   287     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_ENTRY, this);
       
   288     
       
   289     mWlanSettings->setWlanScanInterval(mScanInterval);
       
   290     
       
   291     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_EXIT, this);
       
   292 }
       
   293 
       
   294 /*!
       
   295     Slot for handling item changed singal of Scan for network combo box widget.
       
   296 */
       
   297 
       
   298 void CpWlanSettingsGroupItemData::scanItemChanged(const QString &text)
       
   299 {
       
   300     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_ENTRY, this);
       
   301     
       
   302     if (hbTrId("txt_occ_setlabel_scan_for_networks_val_userdefine") == text) {
       
   303         //In case of PSM mode for device user-defined value is not 
       
   304         //allowed,make it automatic forcefully.
       
   305         if (mWlanSettings->isPsmEnabled()) {
       
   306             //Need to check for dimming of the combobox option.
       
   307             mScanNetworkItem->setContentWidgetData("currentIndex",
       
   308                     WlanSettings::EScanNetworkAuto);
       
   309         }
       
   310         else {
       
   311             //Add Scan Interval Slider, if it was not added.
       
   312             if (this->childCount() < KMaxWidgets) {
       
   313                 createScanIntervalItem();
       
   314                 this->insertChild(KSliderIndex,mUserDefinedItem);
       
   315                 mWlanSettings->setWlanScanInterval(mWlanSettings->scanInterval());
       
   316             }
       
   317         }
       
   318     }
       
   319     else {
       
   320         //Remove Scan Interval slider, if user selects automatic option
       
   321         //for Scan network setting and if slider was added earlier.
       
   322         if (KMaxWidgets == this->childCount()) {
       
   323             this->removeChild(KSliderIndex);
       
   324             mUserDefinedItem = NULL;    //removeChild() will delete the item.
       
   325             mWlanSettings->setWlanScanInterval(KWlanSettingsScanNetworkAuto);
       
   326         }
       
   327     }
       
   328     
       
   329     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_EXIT, this);
       
   330 }
       
   331 
       
   332 /*!
       
   333     Slot for handling item changed singal of Power saving combo box widget.
       
   334 */
       
   335 
       
   336 void CpWlanSettingsGroupItemData::powerSavingItemChanged(int index)
       
   337 {
       
   338     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_ENTRY, this);
       
   339     
       
   340     mWlanSettings->setWlanPowerSaving(index);
       
   341     
       
   342     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_EXIT, this);
       
   343 }
       
   344 
       
   345 /*!
       
   346     Slot for handling item changed singal of Join WLAN networks combo box widget.
       
   347 */
       
   348 
       
   349 void CpWlanSettingsGroupItemData::joinWlanItemChanged(int index)
       
   350 {
       
   351     OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_ENTRY, this);
       
   352     
       
   353     mWlanSettings->setJoinWlanMode(index);
       
   354     
       
   355     OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_EXIT, this);
       
   356 }