Index: chrome/browser/gtk/import_dialog_gtk.cc |
=================================================================== |
--- chrome/browser/gtk/import_dialog_gtk.cc (revision 71352) |
+++ chrome/browser/gtk/import_dialog_gtk.cc (working copy) |
@@ -1,216 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/gtk/import_dialog_gtk.h" |
- |
-#include <string> |
- |
-#include "app/l10n_util.h" |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/gtk/accessible_widget_helper_gtk.h" |
-#include "chrome/browser/gtk/gtk_util.h" |
-#include "chrome/browser/importer/importer_data_types.h" |
-#include "grit/generated_resources.h" |
-#include "grit/locale_settings.h" |
- |
-namespace { |
- |
-// Returns true if the checkbox is checked. |
-gboolean IsChecked(GtkWidget* widget) { |
- return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); |
-} |
- |
-} // namespace |
- |
-// static |
-void ImportDialogGtk::Show(GtkWindow* parent, Profile* profile, |
- int initial_state) { |
- new ImportDialogGtk(parent, profile, initial_state); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// ImportObserver implementation: |
-void ImportDialogGtk::ImportCanceled() { |
- ImportComplete(); |
-} |
- |
-void ImportDialogGtk::ImportComplete() { |
- gtk_widget_destroy(dialog_); |
- delete this; |
-} |
- |
-ImportDialogGtk::ImportDialogGtk(GtkWindow* parent, Profile* profile, |
- int initial_state) |
- : parent_(parent), |
- profile_(profile), |
- importer_host_(new ImporterHost(this)), |
- initial_state_(initial_state) { |
- // Build the dialog. |
- std::string dialog_name = l10n_util::GetStringUTF8( |
- IDS_IMPORT_SETTINGS_TITLE); |
- dialog_ = gtk_dialog_new_with_buttons( |
- dialog_name.c_str(), |
- parent, |
- (GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR), |
- GTK_STOCK_CANCEL, |
- GTK_RESPONSE_REJECT, |
- NULL); |
- |
- accessible_widget_helper_.reset(new AccessibleWidgetHelper( |
- dialog_, profile)); |
- accessible_widget_helper_->SendOpenWindowNotification(dialog_name); |
- |
- importer_host_->set_parent_window(GTK_WINDOW(dialog_)); |
- |
- // Add import button separately as we might need to disable it, if |
- // no supported browsers found. |
- import_button_ = gtk_util::AddButtonToDialog(dialog_, |
- l10n_util::GetStringUTF8(IDS_IMPORT_COMMIT).c_str(), |
- GTK_STOCK_APPLY, GTK_RESPONSE_ACCEPT); |
- GTK_WIDGET_SET_FLAGS(import_button_, GTK_CAN_DEFAULT); |
- gtk_dialog_set_default_response(GTK_DIALOG(dialog_), GTK_RESPONSE_ACCEPT); |
- |
- GtkWidget* content_area = GTK_DIALOG(dialog_)->vbox; |
- gtk_box_set_spacing(GTK_BOX(content_area), gtk_util::kContentAreaSpacing); |
- |
- GtkWidget* combo_hbox = gtk_hbox_new(FALSE, gtk_util::kLabelSpacing); |
- GtkWidget* from = gtk_label_new( |
- l10n_util::GetStringUTF8(IDS_IMPORT_FROM_LABEL).c_str()); |
- gtk_box_pack_start(GTK_BOX(combo_hbox), from, FALSE, FALSE, 0); |
- |
- combo_ = gtk_combo_box_new_text(); |
- gtk_box_pack_start(GTK_BOX(combo_hbox), combo_, TRUE, TRUE, 0); |
- |
- gtk_box_pack_start(GTK_BOX(content_area), combo_hbox, FALSE, FALSE, 0); |
- |
- GtkWidget* vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); |
- |
- GtkWidget* description = gtk_label_new( |
- l10n_util::GetStringUTF8(IDS_IMPORT_ITEMS_LABEL).c_str()); |
- gtk_misc_set_alignment(GTK_MISC(description), 0, 0); |
- gtk_box_pack_start(GTK_BOX(vbox), description, FALSE, FALSE, 0); |
- |
- bookmarks_ = gtk_check_button_new_with_label( |
- l10n_util::GetStringUTF8(IDS_IMPORT_FAVORITES_CHKBOX).c_str()); |
- gtk_box_pack_start(GTK_BOX(vbox), bookmarks_, FALSE, FALSE, 0); |
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bookmarks_), |
- (initial_state_ & importer::FAVORITES) != 0); |
- g_signal_connect(bookmarks_, "toggled", |
- G_CALLBACK(OnDialogWidgetClickedThunk), this); |
- |
- search_engines_ = gtk_check_button_new_with_label( |
- l10n_util::GetStringUTF8(IDS_IMPORT_SEARCH_ENGINES_CHKBOX).c_str()); |
- gtk_box_pack_start(GTK_BOX(vbox), search_engines_, FALSE, FALSE, 0); |
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(search_engines_), |
- (initial_state_ & importer::SEARCH_ENGINES) != 0); |
- g_signal_connect(search_engines_, "toggled", |
- G_CALLBACK(OnDialogWidgetClickedThunk), this); |
- |
- passwords_ = gtk_check_button_new_with_label( |
- l10n_util::GetStringUTF8(IDS_IMPORT_PASSWORDS_CHKBOX).c_str()); |
- gtk_box_pack_start(GTK_BOX(vbox), passwords_, FALSE, FALSE, 0); |
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(passwords_), |
- (initial_state_ & importer::PASSWORDS) != 0); |
- g_signal_connect(passwords_, "toggled", |
- G_CALLBACK(OnDialogWidgetClickedThunk), this); |
- |
- history_ = gtk_check_button_new_with_label( |
- l10n_util::GetStringUTF8(IDS_IMPORT_HISTORY_CHKBOX).c_str()); |
- gtk_box_pack_start(GTK_BOX(vbox), history_, FALSE, FALSE, 0); |
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(history_), |
- (initial_state_ & importer::HISTORY) !=0); |
- g_signal_connect(history_, "toggled", |
- G_CALLBACK(OnDialogWidgetClickedThunk), this); |
- |
- gtk_box_pack_start(GTK_BOX(content_area), vbox, FALSE, FALSE, 0); |
- |
- // Let the user know profiles are being loaded. |
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo_), |
- l10n_util::GetStringUTF8(IDS_IMPORT_LOADING_PROFILES).c_str()); |
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo_), 0); |
- |
- // Disable controls until source profiles are loaded. |
- SetDialogControlsSensitive(false); |
- |
- g_signal_connect(dialog_, "response", |
- G_CALLBACK(OnDialogResponseThunk), this); |
- |
- UpdateDialogButtons(); |
- |
- gtk_util::ShowDialogWithLocalizedSize(dialog_, |
- IDS_IMPORT_DIALOG_WIDTH_CHARS, |
- -1, // height |
- false); // resizable |
-} |
- |
-ImportDialogGtk::~ImportDialogGtk() { |
-} |
- |
-void ImportDialogGtk::SourceProfilesLoaded() { |
- // Detect any supported browsers that we can import from and fill |
- // up the combo box. If none found, disable all controls except cancel. |
- int profiles_count = importer_host_->GetAvailableProfileCount(); |
- SetDialogControlsSensitive(profiles_count != 0); |
- gtk_combo_box_remove_text(GTK_COMBO_BOX(combo_), 0); |
- if (profiles_count > 0) { |
- for (int i = 0; i < profiles_count; i++) { |
- std::wstring profile = importer_host_->GetSourceProfileNameAt(i); |
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo_), |
- WideToUTF8(profile).c_str()); |
- } |
- gtk_widget_grab_focus(import_button_); |
- } else { |
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo_), |
- l10n_util::GetStringUTF8(IDS_IMPORT_NO_PROFILE_FOUND).c_str()); |
- } |
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo_), 0); |
-} |
- |
-void ImportDialogGtk::OnDialogResponse(GtkWidget* widget, int response) { |
- gtk_widget_hide_all(dialog_); |
- if (response == GTK_RESPONSE_ACCEPT) { |
- uint16 items = GetCheckedItems(); |
- if (items == 0) { |
- ImportComplete(); |
- } else { |
- const ProfileInfo& source_profile = |
- importer_host_->GetSourceProfileInfoAt( |
- gtk_combo_box_get_active(GTK_COMBO_BOX(combo_))); |
- StartImportingWithUI(parent_, items, importer_host_.get(), |
- source_profile, profile_, this, false); |
- } |
- } else { |
- ImportCanceled(); |
- } |
-} |
- |
-void ImportDialogGtk::OnDialogWidgetClicked(GtkWidget* widget) { |
- UpdateDialogButtons(); |
-} |
- |
-void ImportDialogGtk::UpdateDialogButtons() { |
- gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog_), GTK_RESPONSE_ACCEPT, |
- GetCheckedItems() != 0); |
-} |
- |
-void ImportDialogGtk::SetDialogControlsSensitive(bool sensitive) { |
- gtk_widget_set_sensitive(bookmarks_, sensitive); |
- gtk_widget_set_sensitive(search_engines_, sensitive); |
- gtk_widget_set_sensitive(passwords_, sensitive); |
- gtk_widget_set_sensitive(history_, sensitive); |
- gtk_widget_set_sensitive(import_button_, sensitive); |
-} |
- |
-uint16 ImportDialogGtk::GetCheckedItems() { |
- uint16 items = importer::NONE; |
- if (IsChecked(bookmarks_)) |
- items |= importer::FAVORITES; |
- if (IsChecked(search_engines_)) |
- items |= importer::SEARCH_ENGINES; |
- if (IsChecked(passwords_)) |
- items |= importer::PASSWORDS; |
- if (IsChecked(history_)) |
- items |= importer::HISTORY; |
- return items; |
-} |