diff options
author | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-20 00:11:09 +0000 |
---|---|---|
committer | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-20 00:11:09 +0000 |
commit | 84b3b581783280f253d01afd38d5a0a84fc0b3e3 (patch) | |
tree | ef46e41400cf68f4507aa20434023b135447cb71 | |
parent | db7312247e90aea03c1dc41f88f9d7b2b35d0c24 (diff) | |
download | chromium_src-84b3b581783280f253d01afd38d5a0a84fc0b3e3.zip chromium_src-84b3b581783280f253d01afd38d5a0a84fc0b3e3.tar.gz chromium_src-84b3b581783280f253d01afd38d5a0a84fc0b3e3.tar.bz2 |
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
-rw-r--r-- | chrome/browser/cocoa/importer_lock_dialog.h | 14 | ||||
-rw-r--r-- | chrome/browser/cocoa/importer_lock_dialog.mm | 36 | ||||
-rw-r--r-- | chrome/browser/importer/importer.cc | 5 | ||||
-rwxr-xr-x | chrome/chrome.gyp | 2 |
4 files changed, 55 insertions, 2 deletions
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 <Cocoa/Cocoa.h> + +#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<NSAlert> 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', |