summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/import_settings_dialog.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/import_settings_dialog.mm')
-rw-r--r--chrome/browser/cocoa/import_settings_dialog.mm245
1 files changed, 0 insertions, 245 deletions
diff --git a/chrome/browser/cocoa/import_settings_dialog.mm b/chrome/browser/cocoa/import_settings_dialog.mm
deleted file mode 100644
index d18dec8..0000000
--- a/chrome/browser/cocoa/import_settings_dialog.mm
+++ /dev/null
@@ -1,245 +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.
-
-#import "chrome/browser/cocoa/import_settings_dialog.h"
-
-#include "base/mac_util.h"
-#include "base/sys_string_conversions.h"
-#include "chrome/browser/importer/importer_data_types.h"
-#include "chrome/browser/importer/importer_list.h"
-#include "chrome/browser/profile.h"
-
-namespace {
-
-bool importSettingsDialogVisible = false;
-
-} // namespace
-
-@interface ImportSettingsDialogController ()
-
-@property(assign, readwrite, nonatomic) BOOL historyAvailable;
-@property(assign, readwrite, nonatomic) BOOL favoritesAvailable;
-@property(assign, readwrite, nonatomic) BOOL passwordsAvailable;
-@property(assign, readwrite, nonatomic) BOOL searchEnginesAvailable;
-
-@end
-
-@implementation ImportSettingsProfile
-
-@synthesize browserName = browserName_;
-@synthesize services = services_;
-
-+ (id)importSettingsProfileWithBrowserName:(NSString*)browserName
- services:(uint16)services {
- id settingsProfile = [[[ImportSettingsProfile alloc]
- initWithBrowserName:browserName
- services:services] autorelease];
- return settingsProfile;
-}
-
-- (id)initWithBrowserName:(NSString*)browserName
- services:(uint16)services {
- DCHECK(browserName && services);
- if ((self = [super init])) {
- if (browserName && services != 0) {
- browserName_ = [browserName retain];
- services_ = services;
- } else {
- [self release];
- self = nil;
- }
- }
- return self;
-}
-
-- (id)init {
- NOTREACHED(); // Should never be called.
- return [self initWithBrowserName:NULL services:0];
-}
-
-- (void)dealloc {
- [browserName_ release];
- [super dealloc];
-}
-
-@end
-
-@interface ImportSettingsDialogController (Private)
-
-// Initialize the dialog controller with either the default profile or
-// the profile for the current browser.
-- (id)initWithProfile:(Profile*)profile;
-
-// Present the app modal dialog.
-- (void)runModalDialog;
-
-// Close the modal dialog.
-- (void)closeDialog;
-
-@end
-
-@implementation ImportSettingsDialogController
-
-@synthesize sourceBrowserIndex = sourceBrowserIndex_;
-@synthesize importHistory = importHistory_;
-@synthesize importFavorites = importFavorites_;
-@synthesize importPasswords = importPasswords_;
-@synthesize importSearchEngines = importSearchEngines_;
-@synthesize historyAvailable = historyAvailable_;
-@synthesize favoritesAvailable = favoritesAvailable_;
-@synthesize passwordsAvailable = passwordsAvailable_;
-@synthesize searchEnginesAvailable = searchEnginesAvailable_;
-
-// Set bindings dependencies for importSomething property.
-+ (NSSet*)keyPathsForValuesAffectingImportSomething {
- return [NSSet setWithObjects:@"importHistory", @"importFavorites",
- @"importPasswords", @"importSearchEngines", nil];
-}
-
-+ (void)showImportSettingsDialogForProfile:(Profile*)profile {
- // Don't display if already visible.
- if (importSettingsDialogVisible)
- return;
- ImportSettingsDialogController* controller =
- [[ImportSettingsDialogController alloc] initWithProfile:profile];
- [controller runModalDialog];
-}
-
-- (id)initWithProfile:(Profile*)profile {
- // Collect profile information (profile name and the services which can
- // be imported from each) into an array of ImportSettingsProfile which
- // are bound to the Browser List array controller and the popup name
- // presentation. The services element is used to indirectly control
- // checkbox enabling.
- importerList_.reset(new ImporterList);
- ImporterList& importerList(*(importerList_.get()));
- importerList.DetectSourceProfiles();
- int profilesCount = importerList.GetAvailableProfileCount();
- // There shoule be at least the default profile so this should never be zero.
- DCHECK(profilesCount > 0);
- NSMutableArray* browserProfiles =
- [NSMutableArray arrayWithCapacity:profilesCount];
- for (int i = 0; i < profilesCount; ++i) {
- const importer::ProfileInfo& sourceProfile =
- importerList.GetSourceProfileInfoAt(i);
- NSString* browserName =
- base::SysWideToNSString(sourceProfile.description);
- uint16 browserServices = sourceProfile.services_supported;
- ImportSettingsProfile* settingsProfile =
- [ImportSettingsProfile
- importSettingsProfileWithBrowserName:browserName
- services:browserServices];
- [browserProfiles addObject:settingsProfile];
- }
- if ((self = [self initWithProfiles:browserProfiles])) {
- profile_ = profile;
- }
- return self;
-}
-
-- (id)initWithProfiles:(NSArray*)profiles {
- NSString* nibpath =
- [mac_util::MainAppBundle() pathForResource:@"ImportSettingsDialog"
- ofType:@"nib"];
- if ((self = [super initWithWindowNibPath:nibpath owner:self])) {
- sourceBrowsersList_.reset([profiles retain]);
- // Create and initialize an importerList_ when running unit tests.
- if (!importerList_.get()) {
- importerList_.reset(new ImporterList);
- ImporterList& importerList(*(importerList_.get()));
- importerList.DetectSourceProfiles();
- }
- }
- return self;
-}
-
-- (id)init {
- return [self initWithProfile:NULL];
-}
-
-- (void)awakeFromNib {
- // Force an update of the checkbox enabled states.
- [self setSourceBrowserIndex:0];
-}
-
-// Run application modal.
-- (void)runModalDialog {
- importSettingsDialogVisible = true;
- [NSApp runModalForWindow:[self window]];
-}
-
-- (IBAction)ok:(id)sender {
- [self closeDialog];
- const importer::ProfileInfo& sourceProfile =
- importerList_.get()->GetSourceProfileInfoAt([self sourceBrowserIndex]);
- uint16 items = sourceProfile.services_supported;
- uint16 servicesToImport = items & [self servicesToImport];
- if (servicesToImport) {
- if (profile_) {
- ImporterHost* importerHost = new ExternalProcessImporterHost;
- // Note that a side effect of the following call is to cause the
- // importerHost to be disposed once the import has completed.
- StartImportingWithUI(nil, servicesToImport, importerHost,
- sourceProfile, profile_, nil, false);
- }
- } else {
- LOG(WARNING) << "There were no settings to import from '"
- << sourceProfile.description << "'.";
- }
-}
-
-- (IBAction)cancel:(id)sender {
- [self closeDialog];
-}
-
-- (void)closeDialog {
- importSettingsDialogVisible = false;
- [[self window] orderOut:self];
- [NSApp stopModal];
- [self autorelease];
-}
-
-#pragma mark Accessors
-
-- (NSArray*)sourceBrowsersList {
- return sourceBrowsersList_.get();
-}
-
-// Accessor which cascades selected-browser changes into a re-evaluation of the
-// available services and the associated checkbox enable and checked states.
-- (void)setSourceBrowserIndex:(NSUInteger)browserIndex {
- sourceBrowserIndex_ = browserIndex;
- ImportSettingsProfile* profile =
- [sourceBrowsersList_.get() objectAtIndex:browserIndex];
- uint16 items = [profile services];
- [self setHistoryAvailable:(items & importer::HISTORY) ? YES : NO];
- [self setImportHistory:[self historyAvailable]];
- [self setFavoritesAvailable:(items & importer::FAVORITES) ? YES : NO];
- [self setImportFavorites:[self favoritesAvailable]];
- [self setPasswordsAvailable:(items & importer::PASSWORDS) ? YES : NO];
- [self setImportPasswords:[self passwordsAvailable]];
- [self setSearchEnginesAvailable:(items & importer::SEARCH_ENGINES) ?
- YES : NO];
- [self setImportSearchEngines:[self searchEnginesAvailable]];
-}
-
-- (uint16)servicesToImport {
- uint16 servicesToImport = 0;
- if ([self importHistory]) servicesToImport |= importer::HISTORY;
- if ([self importFavorites]) servicesToImport |= importer::FAVORITES;
- if ([self importPasswords]) servicesToImport |= importer::PASSWORDS;
- if ([self importSearchEngines]) servicesToImport |=
- importer::SEARCH_ENGINES;
- return servicesToImport;
-}
-
-// KVO accessor which returns YES if at least one of the services
-// provided by the selected profile has been marked for importing
-// and bound to the OK button's enable property.
-- (BOOL)importSomething {
- return [self importHistory] || [self importFavorites] ||
- [self importPasswords] || [self importSearchEngines];
-}
-
-@end