mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 10:57:34 +09:00
Issue #1258 - Part 1: Import mailnews, ldap, and mork from comm-esr52.9.1
This commit is contained in:
parent
23e0d82436
commit
e400f4130a
1564 changed files with 510348 additions and 0 deletions
21
mailnews/import/public/moz.build
Normal file
21
mailnews/import/public/moz.build
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# vim: set filetype=python:
|
||||
# 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/.
|
||||
|
||||
XPIDL_SOURCES += [
|
||||
'nsIImportABDescriptor.idl',
|
||||
'nsIImportAddressBooks.idl',
|
||||
'nsIImportFieldMap.idl',
|
||||
'nsIImportFilters.idl',
|
||||
'nsIImportGeneric.idl',
|
||||
'nsIImportMail.idl',
|
||||
'nsIImportMailboxDescriptor.idl',
|
||||
'nsIImportMimeEncode.idl',
|
||||
'nsIImportModule.idl',
|
||||
'nsIImportService.idl',
|
||||
'nsIImportSettings.idl',
|
||||
]
|
||||
|
||||
XPIDL_MODULE = 'import'
|
||||
|
||||
70
mailnews/import/public/nsIImportABDescriptor.idl
Normal file
70
mailnews/import/public/nsIImportABDescriptor.idl
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
/* -*- 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/. */
|
||||
|
||||
/*
|
||||
|
||||
Interface for importing mail - ui provided by the import module. If
|
||||
you wish to provide your own UI then implement the nsIImportGeneric
|
||||
interface.
|
||||
|
||||
Can I get an attribute set method to take a const value???
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIFile;
|
||||
|
||||
/**
|
||||
* Implementation Note:
|
||||
*
|
||||
* The default implementation can be obtained from
|
||||
* nsIImportService::CreateNewABDescriptor();
|
||||
*
|
||||
* You should only be interested in using this class if you implement
|
||||
* the nsIImportAddressBooks interface in which case, just using the service to
|
||||
* create new ones should work fine for you. If not, implement your
|
||||
* own.
|
||||
*/
|
||||
[scriptable, uuid(2d8983b2-cea6-4ae2-9145-eb772481fa18)]
|
||||
interface nsIImportABDescriptor : nsISupports
|
||||
{
|
||||
/**
|
||||
* use the following 2 attributes however you'd like to
|
||||
* refer to a specific address book
|
||||
*/
|
||||
attribute unsigned long identifier;
|
||||
attribute unsigned long ref;
|
||||
|
||||
/**
|
||||
* Doesn't have to be accurate, this is merely used to report progress.
|
||||
* If you're importing a file, using file size and reporting progress
|
||||
* as the number of bytes processed so far makes sense. For other formats
|
||||
* returning the number of records may make more sense.
|
||||
*/
|
||||
attribute unsigned long size;
|
||||
|
||||
/**
|
||||
* The preferred name for this address book. Depending upon how the
|
||||
* user selected import, the caller of the nsIImportAddressBooks interface
|
||||
* may use this name to create the destination address book or it may
|
||||
* ignore it. However, this must be provided in all cases as it is
|
||||
* also displayed in the UI to the user.
|
||||
*/
|
||||
attribute AString preferredName;
|
||||
|
||||
/**
|
||||
* For address books that want a file descriptor to locate the address book.
|
||||
* For formats that do not, use identifier & ref to refer to the address book
|
||||
* OR implement your own nsIImportABDescriptor that contains additional data
|
||||
* necessary to identify specific address books,
|
||||
*/
|
||||
attribute nsIFile abFile;
|
||||
|
||||
/**
|
||||
* Set by the UI to indicate whether or not this address book should be imported.
|
||||
*/
|
||||
attribute boolean import;
|
||||
};
|
||||
153
mailnews/import/public/nsIImportAddressBooks.idl
Normal file
153
mailnews/import/public/nsIImportAddressBooks.idl
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/*
|
||||
Interface for importing address books using the standard UI. Address
|
||||
book import occurs in several forms (yuck!).
|
||||
The destination can be 1..n new address books corresponding to the source
|
||||
format. For instance a text file would import into a new address book
|
||||
with the same name as the text file.
|
||||
The destination can be 1 pre-defined address book, all entries will be
|
||||
added to the supplied address book - this allows the address book UI so provide
|
||||
an import command specific for an individual address book.
|
||||
|
||||
The source can import 1 or multiple address books.
|
||||
The address books can be auto-discoverable or user specified.
|
||||
The address books can require field mapping or not.
|
||||
|
||||
All of this is rather complicated but it should work out OK.
|
||||
1) The first UI
|
||||
panel will allow selection of the address book and will indicate to the user
|
||||
if the address book will be imported into an existing address book or new address
|
||||
books. (This could be 2 separate xul UI's?).
|
||||
2) The second panel will show field mapping if it is required - if it is required then
|
||||
there will be one panel per address book for formats that support multiple
|
||||
address books. If it is not required then there will be no second panel.
|
||||
3) Show the progress dialog for the import - this could be per address book if
|
||||
mapping is required? what to do, what to doooooo.....
|
||||
4) All done, maybe a what was done panel??
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIFile;
|
||||
interface nsIArray;
|
||||
interface nsIImportABDescriptor;
|
||||
interface nsIAddrDatabase;
|
||||
interface nsIImportFieldMap;
|
||||
|
||||
[scriptable, uuid(6bba48be-331c-41e3-bc9f-c2ea3754d977)]
|
||||
interface nsIImportAddressBooks : nsISupports
|
||||
{
|
||||
|
||||
/*
|
||||
Does this interface supports 1 or 1..n address books. You only
|
||||
get to choose 1 location so for formats where 1..n address books
|
||||
are imported from a directory, then return true. For a 1 to 1 relationship
|
||||
between location and address books return false.
|
||||
*/
|
||||
boolean GetSupportsMultiple();
|
||||
|
||||
/*
|
||||
If the address book is not found via a file location.then return true
|
||||
along with a description string of how or where the address book is
|
||||
located. If it is a file location then return false.
|
||||
If true, return a string like: "Outlook Express standard address book,
|
||||
also known as the Windows address book" or just "Outlook Express address book".
|
||||
If false, GetDefaultLocation will be called.
|
||||
*/
|
||||
|
||||
boolean GetAutoFind( out wstring description);
|
||||
|
||||
/*
|
||||
Returns true if the address book needs the user to specify a field map
|
||||
for address books imported from this format.
|
||||
*/
|
||||
boolean GetNeedsFieldMap( in nsIFile location);
|
||||
|
||||
/*
|
||||
If found and userVerify BOTH return false, then it is assumed that this
|
||||
means an error - address book cannot be found on this machine.
|
||||
If userVerify is true, the user will have an opportunity to specify
|
||||
a different location to import address book from.
|
||||
*/
|
||||
void GetDefaultLocation( out nsIFile location,
|
||||
out boolean found,
|
||||
out boolean userVerify);
|
||||
/*
|
||||
Returns an nsIArray which contains an nsIImportABDescriptor for each
|
||||
address book. The array is not sorted before display to the user.
|
||||
location is null if GetAutoFind returned true.
|
||||
*/
|
||||
nsIArray FindAddressBooks(in nsIFile location);
|
||||
|
||||
/*
|
||||
Fill in defaults (if any) for a field map for importing address
|
||||
books from this location.
|
||||
*/
|
||||
void InitFieldMap(in nsIImportFieldMap fieldMap);
|
||||
|
||||
/**
|
||||
* Import a specific address book into the destination file supplied.
|
||||
* If an error occurs that is non-fatal, the destination will be deleted and
|
||||
* other adress book will be imported. If a fatal error occurs, the
|
||||
* destination will be deleted and the import operation will abort.
|
||||
*
|
||||
* @param aSource The source data for the import.
|
||||
* @param aDestination The proxy database for the destination of the
|
||||
* import.
|
||||
* @param aFieldMap The field map containing the mapping of fields to be
|
||||
* used in cvs and tab type imports.
|
||||
* @param aSupportService An optional proxy support service (nullptr is
|
||||
* acceptable if it is not required), may be required
|
||||
* for certain import types (e.g. nsIAbLDIFService for
|
||||
* LDIF import).
|
||||
* @param aErrorLog The error log from the import.
|
||||
* @param aSuccessLog The success log from the import.
|
||||
* @param aFatalError True if there was a fatal error doing the import.
|
||||
*/
|
||||
void ImportAddressBook(in nsIImportABDescriptor aSource,
|
||||
in nsIAddrDatabase aDestination,
|
||||
in nsIImportFieldMap aFieldMap,
|
||||
in nsISupports aSupportService,
|
||||
out wstring aErrorLog,
|
||||
out wstring aSuccessLog,
|
||||
out boolean aFatalError);
|
||||
|
||||
/*
|
||||
Return the amount of the address book that has been imported so far. This number
|
||||
is used to present progress information and must never be larger than the
|
||||
size specified in nsIImportABDescriptor.GetSize(); May be called from
|
||||
a different thread than ImportAddressBook()
|
||||
*/
|
||||
unsigned long GetImportProgress();
|
||||
|
||||
/*
|
||||
Set the location for reading sample data, this should be the same
|
||||
as what is passed later to FindAddressBooks
|
||||
*/
|
||||
void SetSampleLocation( in nsIFile location);
|
||||
|
||||
/*
|
||||
* Return a string of sample data for a record, each field
|
||||
* is separated by a newline (which means no newlines in the fields!)
|
||||
* This is only supported by address books which use field maps and
|
||||
* is used by the field map UI to allow the user to properly
|
||||
* align fields to be imported.
|
||||
*
|
||||
* @param recordNumber index of the recrds, starting from 0.
|
||||
* @param recordExists true if the record exists.
|
||||
*
|
||||
* @returns a string of sample data for the desired record
|
||||
*/
|
||||
wstring GetSampleData(in long recordNumber, out boolean recordExists);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
%{ C++
|
||||
|
||||
%}
|
||||
72
mailnews/import/public/nsIImportFieldMap.idl
Normal file
72
mailnews/import/public/nsIImportFieldMap.idl
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/*
|
||||
Field map interface for importing address books
|
||||
|
||||
A field map is an arbitrary sized list of mozilla address book fields.
|
||||
The field map is used by import to map fields from the import format
|
||||
to mozilla fields.
|
||||
For export, the map contains the ordered list of mozilla fields to
|
||||
export!
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIAddrDatabase;
|
||||
interface nsIMdbRow;
|
||||
interface nsIAbCard;
|
||||
|
||||
[scriptable, uuid(deee9264-1fe3-47b1-b745-47b22de454e2)]
|
||||
interface nsIImportFieldMap : nsISupports
|
||||
{
|
||||
/*
|
||||
Flag to indicate whether or not to skip the first record,
|
||||
for instance csv files often have field names as the first
|
||||
record
|
||||
*/
|
||||
attribute boolean skipFirstRecord;
|
||||
|
||||
readonly attribute long numMozFields;
|
||||
readonly attribute long mapSize;
|
||||
|
||||
wstring GetFieldDescription( in long index);
|
||||
|
||||
/*
|
||||
Set the size of the field map, all unpopulated entries
|
||||
will default to -1
|
||||
*/
|
||||
void SetFieldMapSize( in long size);
|
||||
|
||||
/*
|
||||
Initialize the field map to a given size with default values
|
||||
*/
|
||||
void DefaultFieldMap( in long size);
|
||||
|
||||
/*
|
||||
Return the field number that this index maps to, -1 for no field
|
||||
*/
|
||||
long GetFieldMap( in long index);
|
||||
|
||||
/*
|
||||
Set the field that this index maps to, -1 for no field
|
||||
*/
|
||||
void SetFieldMap( in long index, in long fieldNum);
|
||||
|
||||
/*
|
||||
Return if this field is "active" in the map.
|
||||
*/
|
||||
boolean GetFieldActive( in long index);
|
||||
|
||||
/*
|
||||
Set the active state of this field
|
||||
*/
|
||||
void SetFieldActive( in long index, in boolean active);
|
||||
|
||||
/*
|
||||
Set the value of the given field in the database row
|
||||
*/
|
||||
void SetFieldValue( in nsIAddrDatabase database, in nsIMdbRow row, in long fieldNum, in wstring value);
|
||||
};
|
||||
32
mailnews/import/public/nsIImportFilters.idl
Normal file
32
mailnews/import/public/nsIImportFilters.idl
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/* -*- 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/. */
|
||||
|
||||
/*
|
||||
Interface for importing filters.
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIMsgAccount;
|
||||
interface nsIFile;
|
||||
|
||||
[scriptable, uuid(f2680ccf-d110-4b5b-954d-e072d4a16129)]
|
||||
interface nsIImportFilters : nsISupports
|
||||
{
|
||||
boolean AutoLocate( out wstring aDescription, out nsIFile aLocation);
|
||||
|
||||
void SetLocation( in nsIFile aLocation);
|
||||
|
||||
/*
|
||||
Import filters and put any problems in the error out parameter.
|
||||
*/
|
||||
boolean Import( out wstring aError);
|
||||
};
|
||||
|
||||
|
||||
|
||||
%{ C++
|
||||
|
||||
%}
|
||||
89
mailnews/import/public/nsIImportGeneric.idl
Normal file
89
mailnews/import/public/nsIImportGeneric.idl
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/*
|
||||
Interface for importing anything. You are responsible for opening
|
||||
up UI and doing all of the work to make it happen.
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsISupportsString;
|
||||
|
||||
[scriptable, uuid(469d7d5f-144c-4f07-9661-e49e40156348)]
|
||||
interface nsIImportGeneric : nsISupports
|
||||
{
|
||||
/* Use these to prepare for the import */
|
||||
/*
|
||||
"mailInterface" - nsIImportMail interface
|
||||
"mailBoxes" - nsIArray of nsIImportMailboxDescriptors
|
||||
"mailLocation" - nsIFile, source location for mail
|
||||
|
||||
"addressInterface" - nsIImportAddressBooks interface
|
||||
"addressBooks" - nsIArray of nsIImportABDescriptors
|
||||
"addressLocation" - src location of address books (if needed!)
|
||||
"addressDestination" - uri of destination address book or null if
|
||||
new address books will be created.
|
||||
*/
|
||||
nsISupports GetData( in string dataId);
|
||||
|
||||
void SetData( in string dataId, in nsISupports pData);
|
||||
|
||||
/*
|
||||
"isInstalled" - if true then mail can be automatically located.
|
||||
"canUserSetLocation" - if true then the user can specify the location
|
||||
to look for mail. If both are false, then there is no way
|
||||
to import mail from this format!
|
||||
TBD: How to specify whether or not a file or a directory
|
||||
should be specified?
|
||||
"autoFind" - for address books, is the address book located without
|
||||
using the file system - i.e. addressLocation is irrelevant.
|
||||
"supportsMultiple" - 1 or 1..n address books are imported by this format?
|
||||
|
||||
*/
|
||||
long GetStatus( in string statusKind);
|
||||
|
||||
/*
|
||||
When you are ready to import call this. If it returns TRUE then
|
||||
you must call BeginImport and then repeatedly call GetProgress until
|
||||
it returns 100 % done or until ContinueImport returns FALSE.
|
||||
If this returns FALSE then BeginImport will begin and finish the import
|
||||
before it returns.
|
||||
*/
|
||||
boolean WantsProgress();
|
||||
|
||||
/* Use these for the actual import */
|
||||
/* Begin import is expected to start a new thread UNLESS WantsProgress returned
|
||||
FALSE. It is REQUIRED to call WantsProgress before calling BeginImport.
|
||||
If WantsProgress was false then this will return the success or
|
||||
failure of the import. Failure can be reported even if WantsProgress
|
||||
returned TRUE.
|
||||
*/
|
||||
boolean BeginImport(in nsISupportsString successLog,
|
||||
in nsISupportsString errorLog);
|
||||
/*
|
||||
If WantsProgress returned TRUE then this will indicate if the import should
|
||||
continue. If this returns FALSE then no other methods should be called
|
||||
and the error log should be shown to the user.
|
||||
*/
|
||||
boolean ContinueImport();
|
||||
/*
|
||||
Returns the percentage done. When this returns 100 then the import is done.
|
||||
(only valid if WantsProgress returned true)
|
||||
*/
|
||||
long GetProgress();
|
||||
/*
|
||||
Cancel an import in progress. Again, this is only valid if WantsProgress
|
||||
returned true.
|
||||
*/
|
||||
void CancelImport();
|
||||
};
|
||||
|
||||
|
||||
|
||||
%{ C++
|
||||
|
||||
%}
|
||||
98
mailnews/import/public/nsIImportMail.idl
Normal file
98
mailnews/import/public/nsIImportMail.idl
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/*
|
||||
|
||||
Interface for importing mail - ui provided by the import module. If
|
||||
you wish to provide your own UI then implement the nsIImportGeneric
|
||||
interface.
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
If you support this interface then the standard mailbox import UI
|
||||
can be used to drive your import of mailboxes, which means you don't have
|
||||
to worry about anything other than implementing this interface
|
||||
(and nsIImportModule) to import mailboxes.
|
||||
*/
|
||||
|
||||
/*
|
||||
The general process is:
|
||||
1) Do you know where the mail is located
|
||||
2) Do you want the user to "verify" this location and have
|
||||
the option of specifying a different mail directory?
|
||||
3) Given a directory (either specified in 1 or 2) build a list
|
||||
of all of the mailboxes to be imported.
|
||||
4) Import each mail box to the destination provided!
|
||||
5) Update the portion of the mailbox imported so far. This should
|
||||
always be less than the mailbox size until you are done. This
|
||||
is used for progress bar updating and MAY BE CALLED FROM ANOTHER
|
||||
THREAD!
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIFile;
|
||||
interface nsIArray;
|
||||
interface nsIImportMailboxDescriptor;
|
||||
interface nsIMsgFolder;
|
||||
|
||||
[scriptable, uuid(a14a3308-0849-420b-86d3-13a2948b5504)]
|
||||
interface nsIImportMail : nsISupports
|
||||
{
|
||||
|
||||
/*
|
||||
If found and userVerify BOTH return false, then it is assumed that this
|
||||
means an error - mail cannot be found on this machine.
|
||||
If userVerify is true, the user will have an opportunity to specify
|
||||
a different location to import mail from.
|
||||
*/
|
||||
void GetDefaultLocation( out nsIFile location,
|
||||
out boolean found,
|
||||
out boolean userVerify);
|
||||
/*
|
||||
Returns an nsIArray which contains an nsIImportMailboxID for each
|
||||
mailbox. The array is not sorted before display to the user.
|
||||
*/
|
||||
nsIArray FindMailboxes(in nsIFile location);
|
||||
|
||||
/*
|
||||
Import a specific mailbox into the destination folder supplied. If an error
|
||||
occurs that is non-fatal, the destination will be deleted and other mailboxes
|
||||
will be imported. If a fatal error occurs, the destination will be deleted
|
||||
and the import operation will abort.
|
||||
*/
|
||||
void ImportMailbox(in nsIImportMailboxDescriptor source,
|
||||
in nsIMsgFolder dstFolder,
|
||||
out wstring errorLog,
|
||||
out wstring successLog,
|
||||
out boolean fatalError);
|
||||
|
||||
/*
|
||||
Return the amount of the mailbox that has been imported so far. This number
|
||||
is used to present progress information and must never be larger than the
|
||||
size specified in nsIImportMailboxID.GetSize(); May be called from
|
||||
a different thread than ImportMailbox()
|
||||
*/
|
||||
unsigned long GetImportProgress();
|
||||
|
||||
/*
|
||||
* When migrating the local folders from the import source into mozilla,
|
||||
* we want to translate reserved folder names from the import source to
|
||||
* equivalent values for Mozilla.
|
||||
* Localization Impact is unknown here.
|
||||
*/
|
||||
AString translateFolderName(in AString aFolderName);
|
||||
};
|
||||
|
||||
|
||||
|
||||
%{ C++
|
||||
#define kDestTrashFolderName "Trash"
|
||||
#define kDestUnsentMessagesFolderName "Unsent Messages"
|
||||
#define kDestSentFolderName "Sent"
|
||||
#define kDestInboxFolderName "Inbox"
|
||||
%}
|
||||
46
mailnews/import/public/nsIImportMailboxDescriptor.idl
Normal file
46
mailnews/import/public/nsIImportMailboxDescriptor.idl
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/*
|
||||
|
||||
Interface for importing mail - ui provided by the import module. If
|
||||
you wish to provide your own UI then implement the nsIImportGeneric
|
||||
interface.
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIFile;
|
||||
|
||||
[scriptable, uuid(69eba744-9c4f-4f79-a964-2134746b3656)]
|
||||
interface nsIImportMailboxDescriptor : nsISupports
|
||||
{
|
||||
attribute unsigned long identifier;
|
||||
attribute unsigned long depth;
|
||||
attribute unsigned long size;
|
||||
|
||||
wstring GetDisplayName();
|
||||
void SetDisplayName( [const] in wstring name);
|
||||
|
||||
attribute boolean import;
|
||||
readonly attribute nsIFile file;
|
||||
};
|
||||
|
||||
|
||||
|
||||
%{ C++
|
||||
|
||||
/*
|
||||
The default implementation can be obtained from
|
||||
nsIImportService::CreateNewMailboxDescriptor();
|
||||
|
||||
You should only be interested in using this class if you implement
|
||||
the nsIImportMail interface in which case, just using the service to
|
||||
create new ones should work fine for you. If not, implement your
|
||||
own.
|
||||
*/
|
||||
|
||||
%}
|
||||
42
mailnews/import/public/nsIImportMimeEncode.idl
Normal file
42
mailnews/import/public/nsIImportMimeEncode.idl
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/*
|
||||
Encodes a file from disk into an output stream including properly
|
||||
encoded mime headers.
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIFile;
|
||||
|
||||
[noscript, uuid(1d63892f-f660-465c-a550-95d4cb089de4)]
|
||||
interface nsIImportMimeEncode : nsISupports
|
||||
{
|
||||
|
||||
void EncodeFile( in nsIFile inFile, in nsIFile outFile, [const] in string fileName, [const] in string mimeType);
|
||||
|
||||
boolean DoWork( out boolean done);
|
||||
|
||||
long NumBytesProcessed();
|
||||
|
||||
boolean DoEncoding();
|
||||
void Initialize( in nsIFile inFile, in nsIFile outFile, [const] in string fileName, [const] in string mimeType);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
%{ C++
|
||||
|
||||
#define NS_IMPORTMIMEENCODE_CID \
|
||||
{ /* e4a1a340-8de2-11d3-a206-00a0cc26da63 */ \
|
||||
0xe4a1a340, \
|
||||
0x8de2, \
|
||||
0x11d3, \
|
||||
{0xa2, 0x06, 0x00, 0xa0, 0xcc, 0x26, 0xda, 0x63} \
|
||||
}
|
||||
|
||||
%}
|
||||
32
mailnews/import/public/nsIImportModule.idl
Normal file
32
mailnews/import/public/nsIImportModule.idl
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/* -*- 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/. */
|
||||
|
||||
/*
|
||||
|
||||
An import module.
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
|
||||
[scriptable, uuid(624f0280-173f-11d3-a206-00a0cc26da63)]
|
||||
interface nsIImportModule : nsISupports
|
||||
{
|
||||
readonly attribute wstring name;
|
||||
readonly attribute wstring description;
|
||||
readonly attribute string supports;
|
||||
readonly attribute boolean supportsUpgrade;
|
||||
|
||||
nsISupports GetImportInterface( in string importType);
|
||||
};
|
||||
|
||||
|
||||
%{ C++
|
||||
#define NS_IMPORT_MAIL_STR "mail"
|
||||
#define NS_IMPORT_ADDRESS_STR "addressbook"
|
||||
#define NS_IMPORT_SETTINGS_STR "settings"
|
||||
#define NS_IMPORT_FILTERS_STR "filters"
|
||||
%}
|
||||
59
mailnews/import/public/nsIImportService.idl
Normal file
59
mailnews/import/public/nsIImportService.idl
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/*
|
||||
|
||||
The import service.
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIImportModule;
|
||||
interface nsIImportMailboxDescriptor;
|
||||
interface nsIImportABDescriptor;
|
||||
interface nsIImportGeneric;
|
||||
interface nsIImportFieldMap;
|
||||
interface nsIMsgSendListener;
|
||||
interface nsIMsgIdentity;
|
||||
interface nsIMsgCompFields;
|
||||
interface nsIArray;
|
||||
|
||||
[scriptable, uuid(d0ed4c50-5997-49c9-8a6a-045f0680ed29)]
|
||||
interface nsIImportService : nsISupports
|
||||
{
|
||||
void DiscoverModules();
|
||||
|
||||
long GetModuleCount( in string filter);
|
||||
void GetModuleInfo( in string filter, in long index, out wstring name, out wstring description);
|
||||
wstring GetModuleName( in string filter, in long index);
|
||||
wstring GetModuleDescription( in string filter, in long index);
|
||||
nsIImportModule GetModule( in string filter, in long index);
|
||||
nsIImportModule GetModuleWithCID( in nsCIDRef cid);
|
||||
|
||||
nsIImportFieldMap CreateNewFieldMap();
|
||||
nsIImportMailboxDescriptor CreateNewMailboxDescriptor();
|
||||
nsIImportABDescriptor CreateNewABDescriptor();
|
||||
nsIImportGeneric CreateNewGenericMail();
|
||||
nsIImportGeneric CreateNewGenericAddressBooks();
|
||||
void CreateRFC822Message(in nsIMsgIdentity aIdentity,
|
||||
in nsIMsgCompFields aMsgFields,
|
||||
in string aBodytype,
|
||||
in ACString aBody,
|
||||
in boolean aCreateAsDraft,
|
||||
in nsIArray aLoadedAttachments,
|
||||
in nsIArray aEmbeddedObjects,
|
||||
in nsIMsgSendListener aListener);
|
||||
|
||||
};
|
||||
|
||||
%{ C++
|
||||
#define NS_IMPORTSERVICE_CID \
|
||||
{ /* 5df96d60-1726-11d3-a206-00a0cc26da63 */ \
|
||||
0x5df96d60, 0x1726, 0x11d3, \
|
||||
{0xa2, 0x06, 0x0, 0xa0, 0xcc, 0x26, 0xda, 0x63}}
|
||||
|
||||
#define NS_IMPORTSERVICE_CONTRACTID "@mozilla.org/import/import-service;1"
|
||||
%}
|
||||
39
mailnews/import/public/nsIImportSettings.idl
Normal file
39
mailnews/import/public/nsIImportSettings.idl
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/*
|
||||
Interface for importing settings. Settings can be auto-located or
|
||||
specified by a specific file. Depends upon the app that the settings
|
||||
are coming from.
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIMsgAccount;
|
||||
interface nsIFile;
|
||||
|
||||
[scriptable, uuid(1c0e3012-bc4d-4fb2-be6a-0335c7bab9ac)]
|
||||
interface nsIImportSettings : nsISupports
|
||||
{
|
||||
boolean AutoLocate( out wstring description, out nsIFile location);
|
||||
|
||||
void SetLocation( in nsIFile location);
|
||||
|
||||
/*
|
||||
Create all of the accounts, identities, and servers. Return an
|
||||
account where any local mail from this app should be imported.
|
||||
The returned account can be null which indicates that no suitable
|
||||
account for local mail was created and a new account specifically for
|
||||
the imported mail should be created.
|
||||
*/
|
||||
boolean Import( out nsIMsgAccount localMailAccount);
|
||||
};
|
||||
|
||||
|
||||
|
||||
%{ C++
|
||||
|
||||
%}
|
||||
Loading…
Add table
Add a link
Reference in a new issue