summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authorchocobo@google.com <chocobo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-14 18:27:35 +0000
committerchocobo@google.com <chocobo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-14 18:27:35 +0000
commita5d0f4bc0d2891cc7fa372d245ebf46332259d7d (patch)
tree2e03e2f94eb1744048a0bfdc3aa5127b55fa8edb /chrome/browser/chromeos
parent88949e6fc9c8d3b9313d652d918ce2b896b4e733 (diff)
downloadchromium_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.cc37
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;
+ }
+ }
+ }
+ }
}
////////////////////////////////////////////////////////////////////////////////