diff options
author | chocobo@google.com <chocobo@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-14 18:27:35 +0000 |
---|---|---|
committer | chocobo@google.com <chocobo@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-14 18:27:35 +0000 |
commit | a5d0f4bc0d2891cc7fa372d245ebf46332259d7d (patch) | |
tree | 2e03e2f94eb1744048a0bfdc3aa5127b55fa8edb /chrome/browser/chromeos | |
parent | 88949e6fc9c8d3b9313d652d918ce2b896b4e733 (diff) | |
download | chromium_src-a5d0f4bc0d2891cc7fa372d245ebf46332259d7d.zip chromium_src-a5d0f4bc0d2891cc7fa372d245ebf46332259d7d.tar.gz chromium_src-a5d0f4bc0d2891cc7fa372d245ebf46332259d7d.tar.bz2 |
Fix bug to select initial wifi network when options page opens.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/276023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28989 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r-- | chrome/browser/chromeos/settings_contents_view.cc | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/chrome/browser/chromeos/settings_contents_view.cc b/chrome/browser/chromeos/settings_contents_view.cc index fc828c2..86a229d 100644 --- a/chrome/browser/chromeos/settings_contents_view.cc +++ b/chrome/browser/chromeos/settings_contents_view.cc @@ -113,6 +113,10 @@ class NetworkSection : public OptionsPageView, virtual void InitContents(); private: + + // This method will change the combobox selection to the passed in wifi ssid. + void SelectWifi(const std::string& wifi_ssid); + // The View that contains the contents of the section. views::View* contents_; @@ -191,16 +195,7 @@ bool NetworkSection::OnPasswordDialogAccept(const std::string& ssid, } void NetworkSection::NetworkChanged(CrosNetworkLibrary* obj) { - if (wifi_ssid_model_.HasWifiNetworks()) { - for (int i = 1; i < wifi_ssid_model_.GetItemCount(); i++) { - if (wifi_ssid_model_.GetWifiNetworkAt(i).ssid == obj->wifi_ssid()) { - last_selected_wifi_ssid_index_ = i; - if (wifi_ssid_combobox_) - wifi_ssid_combobox_->SetSelectedItem(i); - return; - } - } - } + SelectWifi(obj->wifi_ssid()); } void NetworkSection::InitControlLayout() { @@ -248,6 +243,28 @@ void NetworkSection::InitContents() { layout->StartRow(0, single_column_view_set_id); layout->AddView(wifi_ssid_combobox_); layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); + + // Select the initial connected wifi network. + SelectWifi(CrosNetworkLibrary::Get()->wifi_ssid()); +} + +void NetworkSection::SelectWifi(const std::string& wifi_ssid) { + if (wifi_ssid_model_.HasWifiNetworks() && wifi_ssid_combobox_) { + // If we are not connected to any wifi network, wifi_ssid will be empty. + // So we select the first item. + if (wifi_ssid.empty()) { + wifi_ssid_combobox_->SetSelectedItem(0); + } else { + // Loop through the list and select the ssid that matches. + for (int i = 1; i < wifi_ssid_model_.GetItemCount(); i++) { + if (wifi_ssid_model_.GetWifiNetworkAt(i).ssid == wifi_ssid) { + last_selected_wifi_ssid_index_ = i; + wifi_ssid_combobox_->SetSelectedItem(i); + return; + } + } + } + } } //////////////////////////////////////////////////////////////////////////////// |