| Index: chrome/browser/views/importing_progress_view.cc
|
| ===================================================================
|
| --- chrome/browser/views/importing_progress_view.cc (revision 4885)
|
| +++ chrome/browser/views/importing_progress_view.cc (working copy)
|
| @@ -22,14 +22,13 @@
|
| int16 items,
|
| ImporterHost* coordinator,
|
| ImportObserver* observer,
|
| - HWND parent_window)
|
| + HWND parent_window,
|
| + bool bookmarks_import)
|
| : state_bookmarks_(new views::CheckmarkThrobber),
|
| state_searches_(new views::CheckmarkThrobber),
|
| state_passwords_(new views::CheckmarkThrobber),
|
| state_history_(new views::CheckmarkThrobber),
|
| state_cookies_(new views::CheckmarkThrobber),
|
| - label_info_(new views::Label(l10n_util::GetStringF(
|
| - IDS_IMPORT_PROGRESS_INFO, source_name))),
|
| label_bookmarks_(new views::Label(
|
| l10n_util::GetString(IDS_IMPORT_PROGRESS_STATUS_BOOKMARKS))),
|
| label_searches_(new views::Label(
|
| @@ -44,7 +43,12 @@
|
| coordinator_(coordinator),
|
| import_observer_(observer),
|
| items_(items),
|
| - importing_(true) {
|
| + importing_(true),
|
| + bookmarks_import_(bookmarks_import) {
|
| + std::wstring info_text = bookmarks_import ?
|
| + l10n_util::GetString(IDS_IMPORT_BOOKMARKS) :
|
| + l10n_util::GetStringF(IDS_IMPORT_PROGRESS_INFO, source_name);
|
| + label_info_ = new views::Label(info_text);
|
| coordinator_->SetObserver(this);
|
| label_info_->SetMultiLine(true);
|
| label_info_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
|
| @@ -78,6 +82,17 @@
|
| RemoveChildView(label_passwords_.get());
|
| RemoveChildView(label_history_.get());
|
| RemoveChildView(label_cookies_.get());
|
| +
|
| + if (importing_) {
|
| + // We're being deleted while importing, clean up state so that the importer
|
| + // doesn't have a reference to us and cancel the import. We can get here
|
| + // if our parent window is closed, which closes our window and deletes us.
|
| + importing_ = false;
|
| + coordinator_->SetObserver(NULL);
|
| + coordinator_->Cancel();
|
| + if (import_observer_)
|
| + import_observer_->ImportComplete();
|
| + }
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -217,6 +232,11 @@
|
|
|
| const int single_column_view_set_id = 0;
|
| ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id);
|
| + if (bookmarks_import_) {
|
| + column_set->AddColumn(GridLayout::CENTER, GridLayout::CENTER, 0,
|
| + GridLayout::FIXED, ps.width(), 0);
|
| + column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing);
|
| + }
|
| column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
|
| GridLayout::USE_PREF, 0, 0);
|
| const int double_column_view_set_id = 1;
|
| @@ -230,10 +250,12 @@
|
| column_set->AddPaddingColumn(0, kUnrelatedControlLargeHorizontalSpacing);
|
|
|
| layout->StartRow(0, single_column_view_set_id);
|
| + if (bookmarks_import_)
|
| + layout->AddView(state_bookmarks_.get());
|
| layout->AddView(label_info_);
|
| layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing);
|
|
|
| - if (items_ & FAVORITES) {
|
| + if (items_ & FAVORITES && !bookmarks_import_) {
|
| layout->StartRow(0, double_column_view_set_id);
|
| layout->AddView(state_bookmarks_.get());
|
| layout->AddView(label_bookmarks_.get());
|
| @@ -277,7 +299,8 @@
|
| bool first_run) {
|
| DCHECK(items != 0);
|
| ImportingProgressView* v = new ImportingProgressView(
|
| - source_profile.description, items, coordinator, observer, parent_window);
|
| + source_profile.description, items, coordinator, observer, parent_window,
|
| + source_profile.browser_type == BOOKMARKS_HTML);
|
| views::Window* window =
|
| views::Window::CreateChromeWindow(parent_window, gfx::Rect(), v);
|
|
|
|
|