summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authordilmah@chromium.org <dilmah@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-10 14:53:57 +0000
committerdilmah@chromium.org <dilmah@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-10 14:53:57 +0000
commitda0cd7bb5e4d479c87d9f90f2d5141afd338dbdf (patch)
tree3825cf07e5b15ec2f61cc6af8c98c2aa466364dc /chrome/browser/chromeos
parentead9ab0562c0bb4316c39e5ff6f2dfcd133ee595 (diff)
downloadchromium_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.cc26
-rw-r--r--chrome/browser/chromeos/login/network_selection_view.h3
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_;