/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" interface nsIFile; interface nsIProfileStartup; [scriptable, uuid(fca38a7a-c43f-4b28-adbd-61e5cc942508)] interface nsIMailProfileMigrator : nsISupports { /** * profile items to migrate. use with migrate(). */ const unsigned short ALL = 0x0000; const unsigned short SETTINGS = 0x0001; const unsigned short ACCOUNT_SETTINGS = 0x0002; const unsigned short ADDRESSBOOK_DATA = 0x0004; const unsigned short JUNKTRAINING = 0x0008; const unsigned short PASSWORDS = 0x0010; const unsigned short OTHERDATA = 0x0020; const unsigned short NEWSDATA = 0x0040; const unsigned short MAILDATA = 0x0080; const unsigned short FILTERS = 0x0100; /** * Copy user profile information to the current active profile. * @param aItems list of data items to migrate. see above for values. * @param aReplace replace or append current data where applicable. * @param aProfile profile to migrate from, if there is more than one. */ void migrate(in unsigned short aItems, in nsIProfileStartup aStartup, in wstring aProfile); /** * A bit field containing profile items that this migrator * offers for import. * @param aProfile the profile that we are looking for available data * to import * @param aStarting "true" if the profile is not currently being used. * @returns bit field containing profile items (see above) */ unsigned short getMigrateData(in wstring aProfile, in boolean aDoingStartup); /** * Whether or not there is any data that can be imported from this * mailer (i.e. whether or not it is installed, and there exists * a user profile) */ readonly attribute boolean sourceExists; /** * Whether or not the import source implementing this interface * has multiple user profiles configured. */ readonly attribute boolean sourceHasMultipleProfiles; /** * An array of available profile names. If the import source does not support * profiles, this attribute is empty. */ readonly attribute Array sourceProfiles; /** * An array of available profile locations. If the import source does not * support profiles, this attribute is empty. */ readonly attribute Array sourceProfileLocations; };