| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/gtk/options/content_page_gtk.h" | 5 #include "chrome/browser/gtk/options/content_page_gtk.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "app/gtk_util.h" | 9 #include "app/gtk_util.h" |
| 10 #include "app/l10n_util.h" | 10 #include "app/l10n_util.h" |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 InitBrowsingDataGroup(), false); | 107 InitBrowsingDataGroup(), false); |
| 108 #endif | 108 #endif |
| 109 options_builder->AddOptionGroup( | 109 options_builder->AddOptionGroup( |
| 110 l10n_util::GetStringUTF8(IDS_APPEARANCE_GROUP_NAME), | 110 l10n_util::GetStringUTF8(IDS_APPEARANCE_GROUP_NAME), |
| 111 InitThemesGroup(), false); | 111 InitThemesGroup(), false); |
| 112 page_ = options_builder->get_page_widget(); | 112 page_ = options_builder->get_page_widget(); |
| 113 | 113 |
| 114 // Add preferences observers. | 114 // Add preferences observers. |
| 115 ask_to_save_passwords_.Init(prefs::kPasswordManagerEnabled, | 115 ask_to_save_passwords_.Init(prefs::kPasswordManagerEnabled, |
| 116 profile->GetPrefs(), this); | 116 profile->GetPrefs(), this); |
| 117 enable_form_autofill_.Init(prefs::kAutoFillEnabled, | |
| 118 profile->GetPrefs(), this); | |
| 119 | 117 |
| 120 if (browser_defaults::kCanToggleSystemTitleBar) { | 118 if (browser_defaults::kCanToggleSystemTitleBar) { |
| 121 use_custom_chrome_frame_.Init(prefs::kUseCustomChromeFrame, | 119 use_custom_chrome_frame_.Init(prefs::kUseCustomChromeFrame, |
| 122 profile->GetPrefs(), this); | 120 profile->GetPrefs(), this); |
| 123 } | 121 } |
| 124 | 122 |
| 125 // Load initial values. | 123 // Load initial values. |
| 126 NotifyPrefChanged(NULL); | 124 NotifyPrefChanged(NULL); |
| 127 | 125 |
| 128 registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED, | 126 registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 156 initializing_ = true; | 154 initializing_ = true; |
| 157 if (!pref_name || *pref_name == prefs::kPasswordManagerEnabled) { | 155 if (!pref_name || *pref_name == prefs::kPasswordManagerEnabled) { |
| 158 if (ask_to_save_passwords_.GetValue()) { | 156 if (ask_to_save_passwords_.GetValue()) { |
| 159 gtk_toggle_button_set_active( | 157 gtk_toggle_button_set_active( |
| 160 GTK_TOGGLE_BUTTON(passwords_asktosave_radio_), TRUE); | 158 GTK_TOGGLE_BUTTON(passwords_asktosave_radio_), TRUE); |
| 161 } else { | 159 } else { |
| 162 gtk_toggle_button_set_active( | 160 gtk_toggle_button_set_active( |
| 163 GTK_TOGGLE_BUTTON(passwords_neversave_radio_), TRUE); | 161 GTK_TOGGLE_BUTTON(passwords_neversave_radio_), TRUE); |
| 164 } | 162 } |
| 165 } | 163 } |
| 166 if (!pref_name || *pref_name == prefs::kAutoFillEnabled) { | |
| 167 if (enable_form_autofill_.GetValue()) { | |
| 168 gtk_toggle_button_set_active( | |
| 169 GTK_TOGGLE_BUTTON(form_autofill_enable_radio_), TRUE); | |
| 170 gtk_widget_set_sensitive(autofill_button_, TRUE); | |
| 171 } else { | |
| 172 gtk_toggle_button_set_active( | |
| 173 GTK_TOGGLE_BUTTON(form_autofill_disable_radio_), TRUE); | |
| 174 gtk_widget_set_sensitive(autofill_button_, FALSE); | |
| 175 } | |
| 176 } | |
| 177 if (browser_defaults::kCanToggleSystemTitleBar && | 164 if (browser_defaults::kCanToggleSystemTitleBar && |
| 178 (!pref_name || *pref_name == prefs::kUseCustomChromeFrame)) { | 165 (!pref_name || *pref_name == prefs::kUseCustomChromeFrame)) { |
| 179 if (use_custom_chrome_frame_.GetValue()) { | 166 if (use_custom_chrome_frame_.GetValue()) { |
| 180 gtk_toggle_button_set_active( | 167 gtk_toggle_button_set_active( |
| 181 GTK_TOGGLE_BUTTON(system_title_bar_hide_radio_), TRUE); | 168 GTK_TOGGLE_BUTTON(system_title_bar_hide_radio_), TRUE); |
| 182 } else { | 169 } else { |
| 183 gtk_toggle_button_set_active( | 170 gtk_toggle_button_set_active( |
| 184 GTK_TOGGLE_BUTTON(system_title_bar_show_radio_), TRUE); | 171 GTK_TOGGLE_BUTTON(system_title_bar_show_radio_), TRUE); |
| 185 } | 172 } |
| 186 } | 173 } |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 G_CALLBACK(OnShowPasswordsButtonClickedThunk), this); | 228 G_CALLBACK(OnShowPasswordsButtonClickedThunk), this); |
| 242 gtk_box_pack_start(GTK_BOX(button_hbox), show_passwords_button, FALSE, | 229 gtk_box_pack_start(GTK_BOX(button_hbox), show_passwords_button, FALSE, |
| 243 FALSE, 0); | 230 FALSE, 0); |
| 244 | 231 |
| 245 return vbox; | 232 return vbox; |
| 246 } | 233 } |
| 247 | 234 |
| 248 GtkWidget* ContentPageGtk::InitFormAutoFillGroup() { | 235 GtkWidget* ContentPageGtk::InitFormAutoFillGroup() { |
| 249 GtkWidget* vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); | 236 GtkWidget* vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); |
| 250 | 237 |
| 251 // Enable radio button. | |
| 252 form_autofill_enable_radio_ = gtk_radio_button_new_with_label(NULL, | |
| 253 l10n_util::GetStringUTF8(IDS_OPTIONS_AUTOFILL_ENABLE).c_str()); | |
| 254 g_signal_connect(G_OBJECT(form_autofill_enable_radio_), "toggled", | |
| 255 G_CALLBACK(OnAutoFillRadioToggledThunk), this); | |
| 256 gtk_box_pack_start(GTK_BOX(vbox), form_autofill_enable_radio_, FALSE, | |
| 257 FALSE, 0); | |
| 258 | |
| 259 // Disable radio button. | |
| 260 form_autofill_disable_radio_ = gtk_radio_button_new_with_label_from_widget( | |
| 261 GTK_RADIO_BUTTON(form_autofill_enable_radio_), | |
| 262 l10n_util::GetStringUTF8(IDS_OPTIONS_AUTOFILL_DISABLE).c_str()); | |
| 263 g_signal_connect(G_OBJECT(form_autofill_disable_radio_), "toggled", | |
| 264 G_CALLBACK(OnAutoFillRadioToggledThunk), this); | |
| 265 gtk_box_pack_start(GTK_BOX(vbox), form_autofill_disable_radio_, FALSE, | |
| 266 FALSE, 0); | |
| 267 | |
| 268 GtkWidget* button_hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing); | 238 GtkWidget* button_hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing); |
| 269 gtk_container_add(GTK_CONTAINER(vbox), button_hbox); | 239 gtk_container_add(GTK_CONTAINER(vbox), button_hbox); |
| 270 | 240 |
| 271 // AutoFill button. | 241 // AutoFill button. |
| 272 autofill_button_ = gtk_button_new_with_label( | 242 GtkWidget* autofill_button = gtk_button_new_with_label( |
| 273 l10n_util::GetStringUTF8(IDS_AUTOFILL_OPTIONS).c_str()); | 243 l10n_util::GetStringUTF8(IDS_AUTOFILL_OPTIONS).c_str()); |
| 274 if (!profile()->GetPrefs()->GetBoolean(prefs::kAutoFillEnabled)) | |
| 275 gtk_widget_set_sensitive(autofill_button_, FALSE); | |
| 276 | 244 |
| 277 g_signal_connect(G_OBJECT(autofill_button_), "clicked", | 245 g_signal_connect(G_OBJECT(autofill_button), "clicked", |
| 278 G_CALLBACK(OnAutoFillButtonClickedThunk), this); | 246 G_CALLBACK(OnAutoFillButtonClickedThunk), this); |
| 279 gtk_box_pack_start(GTK_BOX(button_hbox), autofill_button_, FALSE, FALSE, 0); | 247 gtk_box_pack_start(GTK_BOX(button_hbox), autofill_button, FALSE, FALSE, 0); |
| 280 | 248 |
| 281 return vbox; | 249 return vbox; |
| 282 } | 250 } |
| 283 | 251 |
| 284 GtkWidget* ContentPageGtk::InitBrowsingDataGroup() { | 252 GtkWidget* ContentPageGtk::InitBrowsingDataGroup() { |
| 285 GtkWidget* button_box = gtk_hbox_new(FALSE, gtk_util::kControlSpacing); | 253 GtkWidget* button_box = gtk_hbox_new(FALSE, gtk_util::kControlSpacing); |
| 286 | 254 |
| 287 // Import button. | 255 // Import button. |
| 288 GtkWidget* import_button = gtk_button_new_with_label( | 256 GtkWidget* import_button = gtk_button_new_with_label( |
| 289 l10n_util::GetStringUTF8(IDS_OPTIONS_IMPORT_DATA_BUTTON).c_str()); | 257 l10n_util::GetStringUTF8(IDS_OPTIONS_IMPORT_DATA_BUTTON).c_str()); |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 UserMetricsRecordAction(UserMetricsAction("Options_PasswordManager_Enable"), | 500 UserMetricsRecordAction(UserMetricsAction("Options_PasswordManager_Enable"), |
| 533 profile()->GetPrefs()); | 501 profile()->GetPrefs()); |
| 534 } else { | 502 } else { |
| 535 UserMetricsRecordAction( | 503 UserMetricsRecordAction( |
| 536 UserMetricsAction("Options_PasswordManager_Disable"), | 504 UserMetricsAction("Options_PasswordManager_Disable"), |
| 537 profile()->GetPrefs()); | 505 profile()->GetPrefs()); |
| 538 } | 506 } |
| 539 ask_to_save_passwords_.SetValue(enabled); | 507 ask_to_save_passwords_.SetValue(enabled); |
| 540 } | 508 } |
| 541 | 509 |
| 542 void ContentPageGtk::OnAutoFillRadioToggled(GtkWidget* widget) { | |
| 543 if (initializing_) | |
| 544 return; | |
| 545 | |
| 546 // We get two signals when selecting a radio button, one for the old radio | |
| 547 // being toggled off and one for the new one being toggled on. Ignore the | |
| 548 // signal for the toggling off the old button. | |
| 549 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) | |
| 550 return; | |
| 551 | |
| 552 bool enabled = gtk_toggle_button_get_active( | |
| 553 GTK_TOGGLE_BUTTON(form_autofill_enable_radio_)); | |
| 554 if (enabled) { | |
| 555 UserMetricsRecordAction(UserMetricsAction("Options_FormAutofill_Enable"), | |
| 556 profile()->GetPrefs()); | |
| 557 gtk_widget_set_sensitive(autofill_button_, TRUE); | |
| 558 } else { | |
| 559 UserMetricsRecordAction(UserMetricsAction("Options_FormAutofill_Disable"), | |
| 560 profile()->GetPrefs()); | |
| 561 gtk_widget_set_sensitive(autofill_button_, FALSE); | |
| 562 } | |
| 563 enable_form_autofill_.SetValue(enabled); | |
| 564 } | |
| 565 | |
| 566 void ContentPageGtk::OnSyncStartStopButtonClicked(GtkWidget* widget) { | 510 void ContentPageGtk::OnSyncStartStopButtonClicked(GtkWidget* widget) { |
| 567 DCHECK(sync_service_); | 511 DCHECK(sync_service_); |
| 568 | 512 |
| 569 if (sync_service_->HasSyncSetupCompleted()) { | 513 if (sync_service_->HasSyncSetupCompleted()) { |
| 570 GtkWidget* dialog = gtk_message_dialog_new( | 514 GtkWidget* dialog = gtk_message_dialog_new( |
| 571 GTK_WINDOW(gtk_widget_get_toplevel(widget)), | 515 GTK_WINDOW(gtk_widget_get_toplevel(widget)), |
| 572 static_cast<GtkDialogFlags>(GTK_DIALOG_MODAL), | 516 static_cast<GtkDialogFlags>(GTK_DIALOG_MODAL), |
| 573 GTK_MESSAGE_WARNING, | 517 GTK_MESSAGE_WARNING, |
| 574 GTK_BUTTONS_NONE, | 518 GTK_BUTTONS_NONE, |
| 575 "%s", | 519 "%s", |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 611 sync_service_->ShowLoginDialog(); | 555 sync_service_->ShowLoginDialog(); |
| 612 } | 556 } |
| 613 | 557 |
| 614 void ContentPageGtk::OnStopSyncDialogResponse(GtkWidget* widget, int response) { | 558 void ContentPageGtk::OnStopSyncDialogResponse(GtkWidget* widget, int response) { |
| 615 if (response == GTK_RESPONSE_ACCEPT) { | 559 if (response == GTK_RESPONSE_ACCEPT) { |
| 616 sync_service_->DisableForUser(); | 560 sync_service_->DisableForUser(); |
| 617 ProfileSyncService::SyncEvent(ProfileSyncService::STOP_FROM_OPTIONS); | 561 ProfileSyncService::SyncEvent(ProfileSyncService::STOP_FROM_OPTIONS); |
| 618 } | 562 } |
| 619 gtk_widget_destroy(widget); | 563 gtk_widget_destroy(widget); |
| 620 } | 564 } |
| OLD | NEW |