diff options
author | dilmah@chromium.org <dilmah@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-10 14:53:57 +0000 |
---|---|---|
committer | dilmah@chromium.org <dilmah@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-10 14:53:57 +0000 |
commit | da0cd7bb5e4d479c87d9f90f2d5141afd338dbdf (patch) | |
tree | 3825cf07e5b15ec2f61cc6af8c98c2aa466364dc /chrome/browser/chromeos | |
parent | ead9ab0562c0bb4316c39e5ff6f2dfcd133ee595 (diff) | |
download | chromium_src-da0cd7bb5e4d479c87d9f90f2d5141afd338dbdf.zip chromium_src-da0cd7bb5e4d479c87d9f90f2d5141afd338dbdf.tar.gz chromium_src-da0cd7bb5e4d479c87d9f90f2d5141afd338dbdf.tar.bz2 |
On locale changed: take care of continue button on network_selection screen.
Also on locale changed: preserve selection of network (previously network selection was reset to "No selection" on locale change)
BUG=http://crosbug.com/4944
TEST=Manual
Review URL: http://codereview.chromium.org/3054054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55567 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r-- | chrome/browser/chromeos/login/network_selection_view.cc | 26 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/network_selection_view.h | 3 |
2 files changed, 21 insertions, 8 deletions
diff --git a/chrome/browser/chromeos/login/network_selection_view.cc b/chrome/browser/chromeos/login/network_selection_view.cc index b2735bd..453e2cc 100644 --- a/chrome/browser/chromeos/login/network_selection_view.cc +++ b/chrome/browser/chromeos/login/network_selection_view.cc @@ -71,6 +71,7 @@ NetworkSelectionView::NetworkSelectionView(NetworkScreenDelegate* delegate) connecting_network_label_(NULL), continue_button_(NULL), throbber_(NULL), + continue_button_order_index_(-1), delegate_(delegate) { } @@ -143,8 +144,6 @@ void NetworkSelectionView::UpdateLocalizedStrings() { l10n_util::GetString(IDS_LANGUAGE_SELECTION_SELECT)); select_network_label_->SetText( l10n_util::GetString(IDS_NETWORK_SELECTION_SELECT)); - continue_button_->SetLabel( - l10n_util::GetString(IDS_NETWORK_SELECTION_CONTINUE_BUTTON)); UpdateConnectingNetworkLabel(); } @@ -158,12 +157,18 @@ void NetworkSelectionView::ChildPreferredSizeChanged(View* child) { void NetworkSelectionView::OnLocaleChanged() { UpdateLocalizedStrings(); + + int index_to_restore = GetSelectedNetworkItem(); NetworkModelChanged(); - // Explicitly set selected item - index 0 is a localized string. - if (GetSelectedNetworkItem() <= 0 && - delegate_->GetItemCount() > 0) { - SetSelectedNetworkItem(0); + index_to_restore = std::max(index_to_restore, 0); + index_to_restore = std::min<int>(index_to_restore, + delegate_->GetItemCount() - 1); + if (index_to_restore >= 0) { + // Only localized names of networking options has changed + // so we should restore networking option selected previously. + SetSelectedNetworkItem(index_to_restore); } + Layout(); SchedulePaint(); } @@ -299,9 +304,14 @@ void NetworkSelectionView::RecreateNativeControls() { // There is no way to get native button preferred size after the button was // sized so delete and recreate the button on text update. delete continue_button_; - continue_button_ = new views::NativeButton(delegate_, std::wstring()); + continue_button_ = new views::NativeButton( + delegate_, + l10n_util::GetString(IDS_NETWORK_SELECTION_CONTINUE_BUTTON)); continue_button_->SetEnabled(false); - AddChildView(continue_button_); + if (continue_button_order_index_ < 0) { + continue_button_order_index_ = GetChildViewCount(); + } + AddChildView(continue_button_order_index_, continue_button_); } void NetworkSelectionView::UpdateConnectingNetworkLabel() { diff --git a/chrome/browser/chromeos/login/network_selection_view.h b/chrome/browser/chromeos/login/network_selection_view.h index 9bfdac1..2a17b81 100644 --- a/chrome/browser/chromeos/login/network_selection_view.h +++ b/chrome/browser/chromeos/login/network_selection_view.h @@ -79,6 +79,9 @@ class NetworkSelectionView : public views::View { views::NativeButton* continue_button_; views::SmoothedThrobber* throbber_; + // Tab index of continue button. + int continue_button_order_index_; + // NetworkScreen delegate. NetworkScreenDelegate* delegate_; |