Index: chrome/browser/gtk/import_progress_dialog_gtk.cc |
=================================================================== |
--- chrome/browser/gtk/import_progress_dialog_gtk.cc (revision 71352) |
+++ chrome/browser/gtk/import_progress_dialog_gtk.cc (working copy) |
@@ -1,229 +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_progress_dialog_gtk.h" |
- |
-#include <string> |
- |
-#include "app/l10n_util.h" |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/gtk/gtk_util.h" |
-#include "grit/chromium_strings.h" |
-#include "grit/generated_resources.h" |
- |
-using importer::ALL; |
-using importer::BOOKMARKS_HTML; |
-using importer::FAVORITES; |
-using importer::HISTORY; |
-using importer::HOME_PAGE; |
-using importer::ImportItem; |
-using importer::PASSWORDS; |
-using importer::ProfileInfo; |
-using importer::SEARCH_ENGINES; |
- |
-namespace { |
- |
-void SetItemImportStatus(GtkWidget* label, int res_id, bool is_done) { |
- std::string status = l10n_util::GetStringUTF8(res_id); |
- // Windows version of this has fancy throbbers to indicate progress. Here |
- // we rely on text until we can have something equivalent on Linux. |
- if (is_done) |
- status = "\xE2\x9C\x94 " + status; // U+2714 HEAVY CHECK MARK |
- else |
- status.append(" ..."); |
- gtk_label_set_text(GTK_LABEL(label), status.c_str()); |
-} |
- |
-} // namespace |
- |
-// static |
-void ImportProgressDialogGtk::StartImport(GtkWindow* parent, |
- int16 items, |
- ImporterHost* importer_host, |
- const ProfileInfo& browser_profile, |
- Profile* profile, |
- ImportObserver* observer, |
- bool first_run) { |
- ImportProgressDialogGtk* v = new ImportProgressDialogGtk( |
- WideToUTF16(browser_profile.description), items, importer_host, observer, |
- parent, browser_profile.browser_type == BOOKMARKS_HTML); |
- |
- // In headless mode it means that we don't show the progress window, but it |
- // still need it to exist. No user interaction will be required. |
- if (!importer_host->is_headless()) |
- v->ShowDialog(); |
- |
- importer_host->StartImportSettings(browser_profile, profile, items, |
- new ProfileWriter(profile), |
- first_run); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// ImporterHost::Observer implementation: |
-void ImportProgressDialogGtk::ImportItemStarted(importer::ImportItem item) { |
- DCHECK(items_ & item); |
- switch (item) { |
- case FAVORITES: |
- SetItemImportStatus(bookmarks_, |
- IDS_IMPORT_PROGRESS_STATUS_BOOKMARKS, false); |
- break; |
- case SEARCH_ENGINES: |
- SetItemImportStatus(search_engines_, |
- IDS_IMPORT_PROGRESS_STATUS_SEARCH, false); |
- break; |
- case PASSWORDS: |
- SetItemImportStatus(passwords_, |
- IDS_IMPORT_PROGRESS_STATUS_PASSWORDS, false); |
- break; |
- case HISTORY: |
- SetItemImportStatus(history_, |
- IDS_IMPORT_PROGRESS_STATUS_HISTORY, false); |
- break; |
- default: |
- break; |
- } |
-} |
- |
-void ImportProgressDialogGtk::ImportItemEnded(importer::ImportItem item) { |
- DCHECK(items_ & item); |
- switch (item) { |
- case FAVORITES: |
- SetItemImportStatus(bookmarks_, |
- IDS_IMPORT_PROGRESS_STATUS_BOOKMARKS, true); |
- break; |
- case SEARCH_ENGINES: |
- SetItemImportStatus(search_engines_, |
- IDS_IMPORT_PROGRESS_STATUS_SEARCH, true); |
- break; |
- case PASSWORDS: |
- SetItemImportStatus(passwords_, |
- IDS_IMPORT_PROGRESS_STATUS_PASSWORDS, true); |
- break; |
- case HISTORY: |
- SetItemImportStatus(history_, |
- IDS_IMPORT_PROGRESS_STATUS_HISTORY, true); |
- break; |
- default: |
- break; |
- } |
-} |
- |
-void ImportProgressDialogGtk::ImportStarted() { |
- importing_ = true; |
-} |
- |
-void ImportProgressDialogGtk::ImportEnded() { |
- importing_ = false; |
- importer_host_->SetObserver(NULL); |
- if (observer_) |
- observer_->ImportComplete(); |
- CloseDialog(); |
-} |
- |
-ImportProgressDialogGtk::ImportProgressDialogGtk(const string16& source_profile, |
- int16 items, ImporterHost* importer_host, ImportObserver* observer, |
- GtkWindow* parent, bool bookmarks_import) : |
- parent_(parent), importing_(true), observer_(observer), |
- items_(items), importer_host_(importer_host) { |
- importer_host_->SetObserver(this); |
- |
- // Build the dialog. |
- dialog_ = gtk_dialog_new_with_buttons( |
- l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_TITLE).c_str(), |
- parent_, |
- (GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR), |
- GTK_STOCK_CANCEL, |
- GTK_RESPONSE_REJECT, |
- NULL); |
- importer_host_->set_parent_window(GTK_WINDOW(dialog_)); |
- |
- GtkWidget* content_area = GTK_DIALOG(dialog_)->vbox; |
- gtk_box_set_spacing(GTK_BOX(content_area), gtk_util::kContentAreaSpacing); |
- |
- GtkWidget* control_group = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); |
- |
- GtkWidget* import_info = gtk_label_new( |
- l10n_util::GetStringFUTF8(IDS_IMPORT_PROGRESS_INFO, |
- source_profile).c_str()); |
- gtk_label_set_line_wrap(GTK_LABEL(import_info), TRUE); |
- gtk_widget_set_size_request(import_info, 350, -1); |
- gtk_box_pack_start(GTK_BOX(control_group), import_info, FALSE, FALSE, 0); |
- |
- GtkWidget* item_box = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); |
- |
- if (items_ & HISTORY) { |
- history_ = gtk_label_new( |
- l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_STATUS_HISTORY).c_str()); |
- gtk_misc_set_alignment(GTK_MISC(history_), 0, 0.5); |
- gtk_box_pack_start(GTK_BOX(item_box), history_, FALSE, FALSE, 0); |
- } |
- |
- if (items_ & FAVORITES) { |
- bookmarks_ = gtk_label_new( |
- l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_STATUS_BOOKMARKS).c_str()); |
- gtk_misc_set_alignment(GTK_MISC(bookmarks_), 0, 0.5); |
- gtk_box_pack_start(GTK_BOX(item_box), bookmarks_, FALSE, FALSE, 0); |
- } |
- |
- if (items_ & SEARCH_ENGINES) { |
- search_engines_ = gtk_label_new( |
- l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_STATUS_SEARCH).c_str()); |
- gtk_misc_set_alignment(GTK_MISC(search_engines_), 0, 0.5); |
- gtk_box_pack_start(GTK_BOX(item_box), search_engines_, FALSE, FALSE, 0); |
- } |
- |
- if (items_ & PASSWORDS) { |
- passwords_ = gtk_label_new( |
- l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_STATUS_PASSWORDS).c_str()); |
- gtk_misc_set_alignment(GTK_MISC(passwords_), 0, 0.5); |
- gtk_box_pack_start(GTK_BOX(item_box), passwords_, FALSE, FALSE, 0); |
- } |
- |
- gtk_box_pack_start(GTK_BOX(control_group), gtk_util::IndentWidget(item_box), |
- FALSE, FALSE, 0); |
- gtk_box_pack_start(GTK_BOX(content_area), control_group, FALSE, FALSE, 0); |
- |
- g_signal_connect(dialog_, "response", |
- G_CALLBACK(HandleOnResponseDialog), this); |
- gtk_window_set_resizable(GTK_WINDOW(dialog_), FALSE); |
-} |
- |
-ImportProgressDialogGtk::~ImportProgressDialogGtk() {} |
- |
-void ImportProgressDialogGtk::CloseDialog() { |
- gtk_widget_destroy(dialog_); |
- dialog_ = NULL; |
- delete this; |
-} |
- |
-void ImportProgressDialogGtk::OnDialogResponse(GtkWidget* widget, |
- int response) { |
- if (!importing_) { |
- CloseDialog(); |
- return; |
- } |
- |
- // Only response to the dialog is to close it so we hide immediately. |
- gtk_widget_hide_all(dialog_); |
- if (response == GTK_RESPONSE_REJECT) |
- importer_host_->Cancel(); |
-} |
- |
-void ImportProgressDialogGtk::ShowDialog() { |
- gtk_widget_show_all(dialog_); |
-} |
- |
- |
-void StartImportingWithUI(GtkWindow* parent, |
- uint16 items, |
- ImporterHost* importer_host, |
- const ProfileInfo& browser_profile, |
- Profile* profile, |
- ImportObserver* observer, |
- bool first_run) { |
- DCHECK_NE(0, items); |
- ImportProgressDialogGtk::StartImport(parent, items, importer_host, |
- browser_profile, profile, observer, |
- first_run); |
-} |