From 84b3b581783280f253d01afd38d5a0a84fc0b3e3 Mon Sep 17 00:00:00 2001 From: "mirandac@chromium.org" Date: Tue, 20 Oct 2009 00:11:09 +0000 Subject: Add dialog to tell user to close Firefox during import, if it's open and blocking. OS-Mac only. BUG= http://crbug.com/20899 TEST= Open Firefox; start up Chrome and try to import settings from Firefox. Dialog box warns you to close Firefox. Review URL: http://codereview.chromium.org/283023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29481 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/cocoa/importer_lock_dialog.h | 14 +++++++++++ chrome/browser/cocoa/importer_lock_dialog.mm | 36 ++++++++++++++++++++++++++++ chrome/browser/importer/importer.cc | 5 ++-- chrome/chrome.gyp | 2 ++ 4 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 chrome/browser/cocoa/importer_lock_dialog.h create mode 100644 chrome/browser/cocoa/importer_lock_dialog.mm diff --git a/chrome/browser/cocoa/importer_lock_dialog.h b/chrome/browser/cocoa/importer_lock_dialog.h new file mode 100644 index 0000000..26bc70e --- /dev/null +++ b/chrome/browser/cocoa/importer_lock_dialog.h @@ -0,0 +1,14 @@ +// Copyright (c) 2009 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. + +#ifndef CHROME_BROWSER_COCOA_IMPORTER_LOCK_DIALOG_H_ +#define CHROME_BROWSER_COCOA_IMPORTER_LOCK_DIALOG_H_ + +class ImporterHost; + +// Bridge from Importer.cc to ImporterLockDialog. +void ImportLockDialogCocoa(ImporterHost* importer); + +#endif // CHROME_BROWSER_COCOA_IMPORTER_LOCK_DIALOG_H_ + diff --git a/chrome/browser/cocoa/importer_lock_dialog.mm b/chrome/browser/cocoa/importer_lock_dialog.mm new file mode 100644 index 0000000..831b243 --- /dev/null +++ b/chrome/browser/cocoa/importer_lock_dialog.mm @@ -0,0 +1,36 @@ +// Copyright (c) 2009 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. + +#import + +#import "importer_lock_dialog.h" + +#include "app/l10n_util_mac.h" +#include "base/mac_util.h" +#include "base/message_loop.h" +#include "base/scoped_nsobject.h" +#include "chrome/browser/importer/importer.h" +#include "grit/chromium_strings.h" +#include "grit/generated_resources.h" + +void ImportLockDialogCocoa(ImporterHost* importer) { + scoped_nsobject lock_alert; + lock_alert.reset([[NSAlert alloc] init]); + [lock_alert addButtonWithTitle:l10n_util::GetNSStringWithFixup( + IDS_IMPORTER_LOCK_OK)]; + [lock_alert addButtonWithTitle:l10n_util::GetNSStringWithFixup( + IDS_IMPORTER_LOCK_CANCEL)]; + [lock_alert setInformativeText:l10n_util::GetNSStringWithFixup( + IDS_IMPORTER_LOCK_TEXT)]; + [lock_alert setMessageText:l10n_util::GetNSStringWithFixup( + IDS_IMPORTER_LOCK_TITLE)]; + + if ([lock_alert runModal] == NSAlertFirstButtonReturn) { + MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( + importer, &ImporterHost::OnLockViewEnd, true)); + } else { + MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( + importer, &ImporterHost::OnLockViewEnd, false)); + } +} diff --git a/chrome/browser/importer/importer.cc b/chrome/browser/importer/importer.cc index f42d9c5..65f2848 100644 --- a/chrome/browser/importer/importer.cc +++ b/chrome/browser/importer/importer.cc @@ -41,6 +41,8 @@ #include "views/window/window.h" #elif defined(OS_LINUX) #include "chrome/browser/gtk/import_lock_dialog_gtk.h" +#elif defined(OS_MACOSX) +#include "chrome/browser/cocoa/importer_lock_dialog.h" #endif using webkit_glue::PasswordForm; @@ -469,8 +471,7 @@ void ImporterHost::ShowWarningDialog() { #elif defined(OS_LINUX) ImportLockDialogGtk::Show(parent_window_, this); #else - // TODO(port): Need CreateChromeWindow. - NOTIMPLEMENTED(); + ImportLockDialogCocoa(this); #endif } } diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index ce254bd..f597f05 100755 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -1124,6 +1124,8 @@ 'browser/cocoa/hung_renderer_controller.mm', 'browser/cocoa/import_progress_dialog.h', 'browser/cocoa/import_progress_dialog.mm', + 'browser/cocoa/importer_lock_dialog.h', + 'browser/cocoa/importer_lock_dialog.mm', 'browser/cocoa/infobar.h', 'browser/cocoa/infobar_container_controller.h', 'browser/cocoa/infobar_container_controller.mm', -- cgit v1.1