172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/ui/gtk/importer/import_progress_dialog_gtk.h" 6dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 7dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include <gtk/gtk.h> 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/utf_string_conversions.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/importer/importer_host.h" 13dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/importer/importer_observer.h" 1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/ui/gtk/gtk_util.h" 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "grit/chromium_strings.h" 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "grit/generated_resources.h" 1772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/base/l10n/l10n_util.h" 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace { 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid SetItemImportStatus(GtkWidget* label, int res_id, bool is_done) { 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::string status = l10n_util::GetStringUTF8(res_id); 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Windows version of this has fancy throbbers to indicate progress. Here 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // we rely on text until we can have something equivalent on Linux. 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (is_done) 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch status = "\xE2\x9C\x94 " + status; // U+2714 HEAVY CHECK MARK 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch else 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch status.append(" ..."); 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_label_set_text(GTK_LABEL(label), status.c_str()); 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// static 35dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenvoid ImportProgressDialogGtk::StartImport( 36dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen GtkWindow* parent, 37dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen uint16 items, 38dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterHost* importer_host, 39dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterObserver* importer_observer, 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const importer::SourceProfile& source_profile, 41dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen Profile* profile, 42dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen bool first_run) { 43dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImportProgressDialogGtk* dialog = new ImportProgressDialogGtk( 44dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen parent, 45dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen items, 46dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importer_host, 47dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importer_observer, 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen source_profile.importer_name, 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen source_profile.importer_type == importer::BOOKMARKS_HTML); 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // In headless mode it means that we don't show the progress window, but it 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // still need it to exist. No user interaction will be required. 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (!importer_host->is_headless()) 54dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen dialog->ShowDialog(); 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 56dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importer_host->StartImportSettings( 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen source_profile, profile, items, new ProfileWriter(profile), first_run); 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 60dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenImportProgressDialogGtk::ImportProgressDialogGtk( 61dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen GtkWindow* parent, 62dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen uint16 items, 63dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterHost* importer_host, 64dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterObserver* importer_observer, 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const string16& importer_name, 66dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen bool bookmarks_import) 67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen : parent_(parent), 68dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen items_(items), 69dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importer_host_(importer_host), 70dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importer_observer_(importer_observer), 71dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importing_(true) { 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch importer_host_->SetObserver(this); 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Build the dialog. 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch dialog_ = gtk_dialog_new_with_buttons( 76c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_TITLE).c_str(), 77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch parent_, 78c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch (GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR), 79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch GTK_STOCK_CANCEL, 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch GTK_RESPONSE_REJECT, 81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NULL); 82c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch importer_host_->set_parent_window(GTK_WINDOW(dialog_)); 83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 84c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch GtkWidget* content_area = GTK_DIALOG(dialog_)->vbox; 85c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_box_set_spacing(GTK_BOX(content_area), gtk_util::kContentAreaSpacing); 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch GtkWidget* control_group = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 88c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch GtkWidget* import_info = gtk_label_new( 90c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch l10n_util::GetStringFUTF8(IDS_IMPORT_PROGRESS_INFO, 91ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen importer_name).c_str()); 9272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen gtk_util::SetLabelWidth(import_info, 400); 93c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_box_pack_start(GTK_BOX(control_group), import_info, FALSE, FALSE, 0); 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 95c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch GtkWidget* item_box = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 96c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 97dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen if (items_ & importer::HISTORY) { 98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch history_ = gtk_label_new( 99c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_STATUS_HISTORY).c_str()); 100c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_misc_set_alignment(GTK_MISC(history_), 0, 0.5); 101c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_box_pack_start(GTK_BOX(item_box), history_, FALSE, FALSE, 0); 102c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 103c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 104dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen if (items_ & importer::FAVORITES) { 105c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch bookmarks_ = gtk_label_new( 106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_STATUS_BOOKMARKS).c_str()); 107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_misc_set_alignment(GTK_MISC(bookmarks_), 0, 0.5); 108c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_box_pack_start(GTK_BOX(item_box), bookmarks_, FALSE, FALSE, 0); 109c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 110c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 111dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen if (items_ & importer::SEARCH_ENGINES) { 112c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch search_engines_ = gtk_label_new( 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_STATUS_SEARCH).c_str()); 114c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_misc_set_alignment(GTK_MISC(search_engines_), 0, 0.5); 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_box_pack_start(GTK_BOX(item_box), search_engines_, FALSE, FALSE, 0); 116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 117c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 118dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen if (items_ & importer::PASSWORDS) { 119c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch passwords_ = gtk_label_new( 120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch l10n_util::GetStringUTF8(IDS_IMPORT_PROGRESS_STATUS_PASSWORDS).c_str()); 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_misc_set_alignment(GTK_MISC(passwords_), 0, 0.5); 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_box_pack_start(GTK_BOX(item_box), passwords_, FALSE, FALSE, 0); 123c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 124c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 125c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_box_pack_start(GTK_BOX(control_group), gtk_util::IndentWidget(item_box), 126c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch FALSE, FALSE, 0); 127c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_box_pack_start(GTK_BOX(content_area), control_group, FALSE, FALSE, 0); 128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 129c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch g_signal_connect(dialog_, "response", 130dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen G_CALLBACK(OnResponseThunk), this); 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_window_set_resizable(GTK_WINDOW(dialog_), FALSE); 132c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 133c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 134731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickImportProgressDialogGtk::~ImportProgressDialogGtk() {} 135731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 136dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenvoid ImportProgressDialogGtk::OnResponse(GtkWidget* dialog, int response_id) { 137c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (!importing_) { 138c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch CloseDialog(); 139c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return; 140c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 141c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Only response to the dialog is to close it so we hide immediately. 143c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_widget_hide_all(dialog_); 144dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen if (response_id == GTK_RESPONSE_REJECT) 145c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch importer_host_->Cancel(); 146c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 147c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 148c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid ImportProgressDialogGtk::ShowDialog() { 149c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch gtk_widget_show_all(dialog_); 150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 151c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 152dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenvoid ImportProgressDialogGtk::CloseDialog() { 153dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen gtk_widget_destroy(dialog_); 154dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen dialog_ = NULL; 155dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen delete this; 156dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 157c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 158ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ImportProgressDialogGtk::ImportStarted() { 159ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen importing_ = true; 160ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 161ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 162dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenvoid ImportProgressDialogGtk::ImportItemStarted(importer::ImportItem item) { 163dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen DCHECK(items_ & item); 164dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen switch (item) { 165dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen case importer::FAVORITES: 166dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen SetItemImportStatus(bookmarks_, 167dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen IDS_IMPORT_PROGRESS_STATUS_BOOKMARKS, false); 168dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 169dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen case importer::SEARCH_ENGINES: 170dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen SetItemImportStatus(search_engines_, 171dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen IDS_IMPORT_PROGRESS_STATUS_SEARCH, false); 172dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 173dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen case importer::PASSWORDS: 174dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen SetItemImportStatus(passwords_, 175dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen IDS_IMPORT_PROGRESS_STATUS_PASSWORDS, false); 176dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 177dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen case importer::HISTORY: 178dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen SetItemImportStatus(history_, 179dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen IDS_IMPORT_PROGRESS_STATUS_HISTORY, false); 180dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 181dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen default: 182dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 183dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen } 184dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 185dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 186dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenvoid ImportProgressDialogGtk::ImportItemEnded(importer::ImportItem item) { 187dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen DCHECK(items_ & item); 188dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen switch (item) { 189dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen case importer::FAVORITES: 190dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen SetItemImportStatus(bookmarks_, 191dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen IDS_IMPORT_PROGRESS_STATUS_BOOKMARKS, true); 192dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 193dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen case importer::SEARCH_ENGINES: 194dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen SetItemImportStatus(search_engines_, 195dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen IDS_IMPORT_PROGRESS_STATUS_SEARCH, true); 196dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 197dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen case importer::PASSWORDS: 198dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen SetItemImportStatus(passwords_, 199dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen IDS_IMPORT_PROGRESS_STATUS_PASSWORDS, true); 200dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 201dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen case importer::HISTORY: 202dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen SetItemImportStatus(history_, 203dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen IDS_IMPORT_PROGRESS_STATUS_HISTORY, true); 204dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 205dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen default: 206dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen break; 207dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen } 208dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 209dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 210dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenvoid ImportProgressDialogGtk::ImportEnded() { 211dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importing_ = false; 212dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importer_host_->SetObserver(NULL); 213dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen if (importer_observer_) 214dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen importer_observer_->ImportCompleted(); 215dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen CloseDialog(); 216dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 217dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 218dc0f95d653279beabeb9817299e2902918ba123eKristian Monsennamespace importer { 219dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 220dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenvoid ShowImportProgressDialog(GtkWindow* parent, 221dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen uint16 items, 222dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterHost* importer_host, 223dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterObserver* importer_observer, 224ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const SourceProfile& source_profile, 225dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen Profile* profile, 226dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen bool first_run) { 227c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DCHECK_NE(0, items); 228dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImportProgressDialogGtk::StartImport( 229ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen parent, items, importer_host, importer_observer, source_profile, profile, 230dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen first_run); 231c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 232dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 233dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} // namespace importer 234