Bug 385695 Remove nsIAddressBook::modifyAddressBook - use nsIAbDirectory functions directly. r=bienvenu,sr=mscott
git-svn-id: svn://10.0.0.236/trunk@228760 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
f14b845b1c
commit
209eadb95c
@ -393,11 +393,7 @@ function AbOnCreateNewAddressBook(aName)
|
||||
|
||||
function AbOnRenameAddressBook(aName)
|
||||
{
|
||||
// When the UI code for renaming addrbooks (bug #17230) is ready, just
|
||||
// change 'properties.description' setting below and it should just work.
|
||||
// get select ab
|
||||
var selectedABURI = GetSelectedDirectory();
|
||||
//dump("In AbRenameAddressBook() selectedABURI=" + selectedABURI + "\n");
|
||||
|
||||
// the rdf service
|
||||
var RDF = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
@ -410,17 +406,7 @@ function AbOnRenameAddressBook(aName)
|
||||
// the RDF resource URI for LDAPDirectory will be like: "moz-abmdbdirectory://abook-3.mab"
|
||||
var selectedABDirectory = RDF.GetResource(selectedABURI).QueryInterface(Components.interfaces.nsIAbDirectory);
|
||||
|
||||
// Copy existing property items so they won't get reset.
|
||||
var oldProperties = selectedABDirectory.directoryProperties;
|
||||
|
||||
// Create and fill in properties info
|
||||
var properties = Components.classes["@mozilla.org/addressbook/properties;1"].createInstance(Components.interfaces.nsIAbDirectoryProperties);
|
||||
properties.URI = selectedABURI;
|
||||
properties.dirType = oldProperties.dirType;
|
||||
properties.description = aName;
|
||||
|
||||
// Now do the modification.
|
||||
addressbook.modifyAddressBook(addressbookDS, parentDir, selectedABDirectory, properties);
|
||||
selectedABDirectory.dirName = aName;
|
||||
}
|
||||
|
||||
function AbPrintCardInternal(doPrintPreview, msgType)
|
||||
|
||||
@ -278,9 +278,7 @@ function hasCharacters(number)
|
||||
|
||||
function onAccept()
|
||||
{
|
||||
var properties = Components.classes["@mozilla.org/addressbook/properties;1"].createInstance(Components.interfaces.nsIAbDirectoryProperties);
|
||||
var addressbook = Components.classes["@mozilla.org/addressbook;1"].createInstance(Components.interfaces.nsIAddressBook);
|
||||
properties.dirType = kLDAPDirectory;
|
||||
|
||||
try {
|
||||
var pref_string_content = "";
|
||||
@ -306,8 +304,6 @@ function onAccept()
|
||||
else if (results && hasCharacters(results))
|
||||
errorValue = "invalidResults";
|
||||
if (!errorValue) {
|
||||
properties.description = description;
|
||||
|
||||
ldapUrl.host = hostname;
|
||||
ldapUrl.dn = document.getElementById("basedn").value;
|
||||
ldapUrl.filter = document.getElementById("search").value;
|
||||
@ -327,33 +323,28 @@ function onAccept()
|
||||
if (secure.checked)
|
||||
ldapUrl.options |= ldapUrl.OPT_SECURE;
|
||||
|
||||
properties.URI = ldapUrl.spec;
|
||||
// check if we are modifying an existing directory or adding a new directory
|
||||
if (gCurrentDirectory) {
|
||||
gCurrentDirectory.dirName = description;
|
||||
gCurrentDirectory.lDAPURL = ldapUrl;
|
||||
window.opener.gNewServerString = gCurrentDirectory.dirPrefId;
|
||||
}
|
||||
else { // adding a new directory
|
||||
var properties = Components.classes["@mozilla.org/addressbook/properties;1"]
|
||||
.createInstance(Components.interfaces.nsIAbDirectoryProperties);
|
||||
|
||||
properties.dirType = kLDAPDirectory;
|
||||
properties.description = description;
|
||||
properties.URI = ldapUrl.spec;
|
||||
|
||||
addressbook.newAddressBook(properties);
|
||||
window.opener.gNewServerString = properties.prefName;
|
||||
}
|
||||
|
||||
// the rdf service
|
||||
var RDF = Components.classes["@mozilla.org/rdf/rdf-service;1"]
|
||||
.getService(Components.interfaces.nsIRDFService);
|
||||
|
||||
// check if we are modifying an existing directory or adding a new directory
|
||||
if (gCurrentDirectory) {
|
||||
// we are modifying an existing directory
|
||||
|
||||
// get the datasource for the addressdirectory
|
||||
var addressbookDS = RDF.GetDataSource("rdf:addressdirectory");
|
||||
|
||||
// moz-abdirectory:// is the RDF root to get all types of addressbooks.
|
||||
var parentDir = RDF.GetResource("moz-abdirectory://")
|
||||
.QueryInterface(Components.interfaces.nsIAbDirectory);
|
||||
|
||||
// Now do the modification.
|
||||
addressbook.modifyAddressBook(addressbookDS, parentDir,
|
||||
gCurrentDirectory, properties);
|
||||
window.opener.gNewServerString = gCurrentDirectory.dirPrefId;
|
||||
}
|
||||
else { // adding a new directory
|
||||
addressbook.newAddressBook(properties);
|
||||
window.opener.gNewServerString = properties.prefName;
|
||||
}
|
||||
|
||||
// XXX This is really annoying - both new/modify Address Book don't
|
||||
// give us back the new directory we just created - so go find it from
|
||||
// rdf so we can set a few final things up on it.
|
||||
|
||||
@ -69,7 +69,7 @@ interface nsIAbDirectoryProperties : nsISupports {
|
||||
attribute long position;
|
||||
};
|
||||
|
||||
[scriptable, uuid(2f8feba2-23fd-49cf-b154-41432506af8d)]
|
||||
[scriptable, uuid(215e6765-58d2-4809-9d9d-41991434143e)]
|
||||
interface nsIAbDirectory : nsISupports {
|
||||
|
||||
// Types of operation
|
||||
@ -87,8 +87,12 @@ interface nsIAbDirectory : nsISupports {
|
||||
// The supported operations
|
||||
readonly attribute long operations;
|
||||
|
||||
// The description of the directory
|
||||
attribute wstring dirName;
|
||||
/**
|
||||
* The description of the directory. If this directory is not a mailing list,
|
||||
* then setting this attribute will send round a "DirName" update via
|
||||
* nsIAddrBookSession.
|
||||
*/
|
||||
attribute AString dirName;
|
||||
|
||||
// XXX This should really be replaced by a QI or something better
|
||||
readonly attribute long dirType;
|
||||
@ -126,10 +130,6 @@ interface nsIAbDirectory : nsISupports {
|
||||
*/
|
||||
readonly attribute nsISimpleEnumerator childCards;
|
||||
|
||||
// Modifies a top level directory,
|
||||
// which also updates the preferences
|
||||
void modifyDirectory(in nsIAbDirectory directory, in nsIAbDirectoryProperties aProperties);
|
||||
|
||||
// Deletes either a mailing list or a top
|
||||
// level directory, which also updates the
|
||||
// preferences
|
||||
|
||||
@ -51,7 +51,7 @@ interface nsILDAPURL;
|
||||
* XXX This should really inherit from nsIAbDirectory, and some day it will.
|
||||
* But for now, doing that complicates implementation.
|
||||
*/
|
||||
[scriptable, uuid(dbb5cd0a-d646-46e2-a640-3da0d8d4d70a)]
|
||||
[scriptable, uuid(fb4adf7f-a299-49d1-ac47-9ce181e8e80d)]
|
||||
interface nsIAbLDAPDirectory : nsISupports
|
||||
{
|
||||
/**
|
||||
@ -102,6 +102,6 @@ interface nsIAbLDAPDirectory : nsISupports
|
||||
* url, e.g. ldap://localhost:389/ whereas the uri will give you the
|
||||
* directories rdf uri, e.g. moz-abldapdirectory://<pref base name>/.
|
||||
*/
|
||||
readonly attribute nsILDAPURL lDAPURL;
|
||||
attribute nsILDAPURL lDAPURL;
|
||||
};
|
||||
|
||||
|
||||
@ -137,7 +137,7 @@ interface nsAddrDBCommitType
|
||||
const long kCompressCommit = 3;
|
||||
};
|
||||
|
||||
[scriptable, uuid(E59ABE11-1E97-46ec-A1C4-500971BBC4B4)]
|
||||
[scriptable, uuid(244d95ab-ca93-436b-9809-80ef21118bd4)]
|
||||
interface nsIAddrDatabase : nsIAddrDBAnnouncer {
|
||||
|
||||
/**
|
||||
@ -199,7 +199,6 @@ interface nsIAddrDatabase : nsIAddrDBAnnouncer {
|
||||
void editMailList(in nsIAbDirectory mailList, in nsIAbCard listCard, in boolean aNotify);
|
||||
boolean containsMailList(in nsIAbDirectory mailList);
|
||||
void deleteCardFromMailList(in nsIAbDirectory mailList, in nsIAbCard card, in boolean aNotify);
|
||||
readonly attribute wstring directoryName;
|
||||
|
||||
/**
|
||||
* aUTF8Value needs to be in UTF-8
|
||||
|
||||
@ -48,7 +48,6 @@ interface nsIAbCard;
|
||||
interface nsIAddressBook : nsISupports
|
||||
{
|
||||
void newAddressBook(in nsIAbDirectoryProperties aProperties);
|
||||
void modifyAddressBook(in nsIRDFDataSource aDS, in nsIAbDirectory aParentDir, in nsIAbDirectory aDirectory, in nsIAbDirectoryProperties aProperties);
|
||||
void deleteAddressBooks(in nsIRDFDataSource aDS, in nsISupportsArray aParentDir, in nsISupportsArray aResourceArray);
|
||||
void exportAddressBook(in nsIDOMWindow aParentWin, in nsIAbDirectory aDirectory);
|
||||
nsIAddrDatabase getAbDatabaseFromURI(in string URI);
|
||||
|
||||
@ -379,11 +379,7 @@ function AbOnCreateNewAddressBook(aName)
|
||||
|
||||
function AbOnRenameAddressBook(aName)
|
||||
{
|
||||
// When the UI code for renaming addrbooks (bug #17230) is ready, just
|
||||
// change 'properties.description' setting below and it should just work.
|
||||
// get select ab
|
||||
var selectedABURI = GetSelectedDirectory();
|
||||
//dump("In AbRenameAddressBook() selectedABURI=" + selectedABURI + "\n");
|
||||
|
||||
// the rdf service
|
||||
var RDF = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
@ -396,17 +392,7 @@ function AbOnRenameAddressBook(aName)
|
||||
// the RDF resource URI for LDAPDirectory will be like: "moz-abmdbdirectory://abook-3.mab"
|
||||
var selectedABDirectory = RDF.GetResource(selectedABURI).QueryInterface(Components.interfaces.nsIAbDirectory);
|
||||
|
||||
// Copy existing property items so they won't get reset.
|
||||
var oldProperties = selectedABDirectory.directoryProperties;
|
||||
|
||||
// Create and fill in properties info
|
||||
var properties = Components.classes["@mozilla.org/addressbook/properties;1"].createInstance(Components.interfaces.nsIAbDirectoryProperties);
|
||||
properties.URI = selectedABURI;
|
||||
properties.dirType = oldProperties.dirType;
|
||||
properties.description = aName;
|
||||
|
||||
// Now do the modification.
|
||||
addressbook.modifyAddressBook(addressbookDS, parentDir, selectedABDirectory, properties);
|
||||
selectedABDirectory.dirName = aName;
|
||||
}
|
||||
|
||||
function AbPrintCardInternal(doPrintPreview, msgType)
|
||||
|
||||
@ -440,10 +440,10 @@ nsresult nsAbAutoCompleteSession::SearchCards(nsIAbDirectory* directory, nsAbAut
|
||||
pFirstNameStr.get(),
|
||||
pLastNameStr.get(), pEmailStr[i].get()))
|
||||
{
|
||||
nsString pDirName;
|
||||
nsString dirName;
|
||||
if (mAutoCompleteCommentColumn == 1)
|
||||
{
|
||||
rv = directory->GetDirName(getter_Copies(pDirName));
|
||||
rv = directory->GetDirName(dirName);
|
||||
if (NS_FAILED(rv))
|
||||
continue;
|
||||
}
|
||||
@ -451,7 +451,7 @@ nsresult nsAbAutoCompleteSession::SearchCards(nsIAbDirectory* directory, nsAbAut
|
||||
AddToResult(pNickNameStr.get(), pDisplayNameStr.get(),
|
||||
pFirstNameStr.get(), pLastNameStr.get(),
|
||||
pEmailStr[i].get(), pNotesStr.get(),
|
||||
pDirName.get(), popularityIndex, bIsMailList, PR_FALSE, results);
|
||||
dirName.get(), popularityIndex, bIsMailList, PR_FALSE, results);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -405,69 +405,6 @@ NS_IMETHODIMP nsAbBSDirectory::DeleteDirectory(nsIAbDirectory *directory)
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbBSDirectory::ModifyDirectory(nsIAbDirectory *directory, nsIAbDirectoryProperties *aProperties)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
NS_ENSURE_ARG_POINTER(directory);
|
||||
NS_ENSURE_ARG_POINTER(aProperties);
|
||||
|
||||
// if addressbook is not launched yet mSevers will not be initialized
|
||||
// calling GetChildNodes will initialize mServers
|
||||
if (!mInitialized) {
|
||||
nsCOMPtr<nsISimpleEnumerator> subDirectories;
|
||||
rv = GetChildNodes(getter_AddRefs(subDirectories));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
nsVoidKey key((void *)directory);
|
||||
DIR_Server *server = (DIR_Server* )mServers.Get(&key);
|
||||
|
||||
if (!server)
|
||||
return NS_ERROR_FAILURE;
|
||||
GetDirectories getDirectories (server);
|
||||
mServers.Enumerate (GetDirectories_getDirectory, (void *)&getDirectories);
|
||||
|
||||
nsAutoString description;
|
||||
nsCString uri;
|
||||
|
||||
rv = aProperties->GetDescription(description);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
NS_ConvertUTF8toUTF16 oldValue(server->description);
|
||||
NS_Free(server->description);
|
||||
NS_ConvertUTF16toUTF8 utf8str(description.get());
|
||||
server->description = ToNewCString(utf8str);
|
||||
|
||||
rv = aProperties->GetURI(getter_Copies(uri));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
NS_Free(server->uri);
|
||||
server->uri = ToNewCString(uri);
|
||||
|
||||
DIR_SavePrefsForOneServer(server);
|
||||
|
||||
if (!oldValue.Equals(description)) {
|
||||
nsCOMPtr<nsIAbDirectory> modifiedDir;
|
||||
getDirectories.directories->GetElementAt (0, getter_AddRefs(modifiedDir));
|
||||
|
||||
// First tell the directory it's new name
|
||||
rv = modifiedDir->SetDirName(description.get());
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Then tell everyone else.
|
||||
nsCOMPtr<nsIAddrBookSession> abSession =
|
||||
do_GetService(NS_ADDRBOOKSESSION_CONTRACTID, &rv);
|
||||
|
||||
if (NS_SUCCEEDED(rv))
|
||||
abSession->NotifyItemPropertyChanged(modifiedDir, "DirName", oldValue.get(), description.get());
|
||||
}
|
||||
|
||||
// Save modified address book into pref file.
|
||||
nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
return prefService->SavePrefFile(nsnull);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbBSDirectory::HasDirectory(nsIAbDirectory *dir, PRBool *hasDir)
|
||||
{
|
||||
if (!hasDir)
|
||||
|
||||
@ -57,7 +57,6 @@ public:
|
||||
NS_IMETHOD GetChildNodes(nsISimpleEnumerator* *result);
|
||||
NS_IMETHOD CreateNewDirectory(nsIAbDirectoryProperties *aProperties);
|
||||
NS_IMETHOD CreateDirectoryByURI(const PRUnichar *dirName, const char *uri, PRBool migrating);
|
||||
NS_IMETHOD ModifyDirectory(nsIAbDirectory *directory, nsIAbDirectoryProperties *aProperties);
|
||||
NS_IMETHOD DeleteDirectory(nsIAbDirectory *directory);
|
||||
NS_IMETHOD HasDirectory(nsIAbDirectory *dir, PRBool *hasDir);
|
||||
|
||||
|
||||
@ -47,6 +47,7 @@
|
||||
#include "prmem.h"
|
||||
#include "nsCRT.h"
|
||||
#include "rdf.h"
|
||||
#include "nsIAddrBookSession.h"
|
||||
|
||||
// From nsDirPrefs
|
||||
#define kDefaultPosition 1
|
||||
@ -89,25 +90,52 @@ NS_IMETHODIMP nsAbDirProperty::GetOperations(PRInt32 *aOperations)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbDirProperty::GetDirName(PRUnichar **aDirName)
|
||||
NS_IMETHODIMP nsAbDirProperty::GetDirName(nsAString &aDirName)
|
||||
{
|
||||
if (aDirName)
|
||||
{
|
||||
*aDirName = ToNewUnicode(m_DirName);
|
||||
if (!(*aDirName))
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
else
|
||||
return NS_OK;
|
||||
}
|
||||
else
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
if (m_IsMailList)
|
||||
{
|
||||
aDirName = m_ListDirName;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCString dirName;
|
||||
nsresult rv = GetLocalizedStringValue("description", EmptyCString(),
|
||||
dirName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
CopyUTF8toUTF16(dirName, aDirName);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbDirProperty::SetDirName(const PRUnichar * aDirName)
|
||||
// XXX Although mailing lists could use the NotifyItemPropertyChanged
|
||||
// mechanism here, it requires some rework on how we write/save data
|
||||
// relating to mailing lists, so we're just using the old method of a
|
||||
// local variable to store tha mailing list name.
|
||||
NS_IMETHODIMP nsAbDirProperty::SetDirName(const nsAString &aDirName)
|
||||
{
|
||||
if (aDirName)
|
||||
m_DirName = aDirName;
|
||||
return NS_OK;
|
||||
if (m_IsMailList)
|
||||
{
|
||||
m_ListDirName = aDirName;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Store the old value.
|
||||
nsString oldDirName;
|
||||
nsresult rv = GetDirName(oldDirName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Save the new value
|
||||
rv = SetStringValue("description", NS_ConvertUTF16toUTF8(aDirName));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIAddrBookSession> abSession =
|
||||
do_GetService(NS_ADDRBOOKSESSION_CONTRACTID, &rv);
|
||||
|
||||
if (NS_SUCCEEDED(rv))
|
||||
abSession->NotifyItemPropertyChanged(this, "DirName", oldDirName.get(),
|
||||
nsString(aDirName).get());
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbDirProperty::GetDirType(PRInt32 *aDirType)
|
||||
@ -217,16 +245,16 @@ NS_IMETHODIMP nsAbDirProperty::SetAddressLists(nsISupportsArray * aAddressLists)
|
||||
|
||||
NS_IMETHODIMP nsAbDirProperty::CopyMailList(nsIAbDirectory* srcList)
|
||||
{
|
||||
SetIsMailList(PR_TRUE);
|
||||
|
||||
nsString str;
|
||||
srcList->GetDirName(getter_Copies(str));
|
||||
SetDirName(str.get());
|
||||
srcList->GetDirName(str);
|
||||
SetDirName(str);
|
||||
srcList->GetListNickName(getter_Copies(str));
|
||||
SetListNickName(str.get());
|
||||
srcList->GetDescription(getter_Copies(str));
|
||||
SetDescription(str.get());
|
||||
|
||||
SetIsMailList(PR_TRUE);
|
||||
|
||||
nsCOMPtr <nsISupportsArray> pAddressLists;
|
||||
srcList->GetAddressLists(getter_AddRefs(pAddressLists));
|
||||
SetAddressLists(pAddressLists);
|
||||
@ -243,10 +271,6 @@ NS_IMETHODIMP
|
||||
nsAbDirProperty::GetChildCards(nsISimpleEnumerator **childCards)
|
||||
{ return NS_ERROR_NOT_IMPLEMENTED; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAbDirProperty::ModifyDirectory(nsIAbDirectory *directory, nsIAbDirectoryProperties *aProperties)
|
||||
{ return NS_ERROR_NOT_IMPLEMENTED; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAbDirProperty::DeleteDirectory(nsIAbDirectory *directory)
|
||||
{ return NS_ERROR_NOT_IMPLEMENTED; }
|
||||
|
||||
@ -77,9 +77,9 @@ protected:
|
||||
nsresult GetAttributeName(PRUnichar **aName, nsString& value);
|
||||
nsresult SetAttributeName(const PRUnichar *aName, nsString& arrtibute);
|
||||
|
||||
nsString m_DirName;
|
||||
PRUint32 m_LastModifiedDate;
|
||||
|
||||
nsString m_ListDirName;
|
||||
nsString m_ListName;
|
||||
nsString m_ListNickName;
|
||||
nsString m_Description;
|
||||
|
||||
@ -123,9 +123,6 @@ NS_IMETHODIMP nsAbLDAPDirFactory::CreateDirectory(nsIAbDirectoryProperties *aPro
|
||||
nsCOMPtr<nsIAbDirectory> directory(do_QueryInterface(resource, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = directory->SetDirName(description.get());
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
rv = directory->SetDirPrefId(prefName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
|
||||
@ -208,7 +208,7 @@ NS_IMETHODIMP nsAbLDAPDirectory::HasCard(nsIAbCard* card, PRBool* hasCard)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult nsAbLDAPDirectory::GetLDAPURL(nsILDAPURL** url)
|
||||
NS_IMETHODIMP nsAbLDAPDirectory::GetLDAPURL(nsILDAPURL** url)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(url);
|
||||
|
||||
@ -255,6 +255,17 @@ nsresult nsAbLDAPDirectory::GetLDAPURL(nsILDAPURL** url)
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbLDAPDirectory::SetLDAPURL(nsILDAPURL *aUrl)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aUrl);
|
||||
|
||||
nsCString tempLDAPURL;
|
||||
nsresult rv = aUrl->GetSpec(tempLDAPURL);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return SetStringValue("uri", tempLDAPURL);
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
* nsIAbDirectorySearch methods
|
||||
|
||||
@ -132,9 +132,6 @@ NS_IMETHODIMP nsAbMDBDirFactory::CreateDirectory(nsIAbDirectoryProperties *aProp
|
||||
nsCOMPtr<nsIAbDirectory> directory(do_QueryInterface(resource, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = directory->SetDirName(description.get());
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = directory->SetDirPrefId(prefName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
|
||||
@ -217,12 +217,6 @@ nsresult nsAbMDBDirectory::RemoveCardFromAddressList(nsIAbCard* card)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbMDBDirectory::ModifyDirectory(nsIAbDirectory *directory, nsIAbDirectoryProperties *aProperties)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsAbMDBDirectory::DeleteDirectory(nsIAbDirectory *directory)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
@ -932,11 +926,11 @@ NS_IMETHODIMP nsAbMDBDirectory::OnListEntryChange
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
if (bIsMailList) {
|
||||
nsString pListName;
|
||||
rv = list->GetDirName(getter_Copies(pListName));
|
||||
nsString listName;
|
||||
rv = list->GetDirName(listName);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
rv = NotifyPropertyChanged(list, "DirName", nsnull, pListName.get());
|
||||
rv = NotifyPropertyChanged(list, "DirName", nsnull, listName.get());
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
}
|
||||
}
|
||||
|
||||
@ -91,7 +91,6 @@ public:
|
||||
// nsIAbDirectory methods:
|
||||
NS_IMETHOD GetChildNodes(nsISimpleEnumerator* *result);
|
||||
NS_IMETHOD GetChildCards(nsISimpleEnumerator* *result);
|
||||
NS_IMETHOD ModifyDirectory(nsIAbDirectory *directory, nsIAbDirectoryProperties *aProperties);
|
||||
NS_IMETHOD DeleteDirectory(nsIAbDirectory *directory);
|
||||
NS_IMETHOD DeleteCards(nsISupportsArray *cards);
|
||||
NS_IMETHOD HasCard(nsIAbCard *cards, PRBool *hasCard);
|
||||
|
||||
@ -72,14 +72,8 @@ nsAbOSXDirFactory::CreateDirectory(nsIAbDirectoryProperties *aProperties,
|
||||
getter_AddRefs(resource));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIAbDirectory> directory = do_QueryInterface(resource, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = directory->SetDirName(description.get());
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIAbOSXDirectory> osxDirectory =
|
||||
do_QueryInterface(directory, &rv);
|
||||
do_QueryInterface(resource, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = osxDirectory->AssertChildNodes();
|
||||
|
||||
@ -205,14 +205,15 @@ NS_IMETHODIMP nsAbOutlookDirectory::Init(const char *aUri)
|
||||
else
|
||||
prefix.AssignLiteral("OE ");
|
||||
prefix.Append(unichars);
|
||||
SetDirName(prefix.get());
|
||||
|
||||
if (objectType == MAPI_DISTLIST) {
|
||||
SetDirName(unichars.get());
|
||||
SetIsMailList(PR_TRUE);
|
||||
SetDirName(unichars);
|
||||
}
|
||||
else
|
||||
else {
|
||||
SetIsMailList(PR_FALSE);
|
||||
SetDirName(prefix);
|
||||
}
|
||||
|
||||
return UpdateAddressList();
|
||||
}
|
||||
@ -421,12 +422,6 @@ NS_IMETHODIMP nsAbOutlookDirectory::DeleteCards(nsISupportsArray *aCardList)
|
||||
return NS_OK ;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbOutlookDirectory::ModifyDirectory(nsIAbDirectory *directory, nsIAbDirectoryProperties *aProperties)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsAbOutlookDirectory::DeleteDirectory(nsIAbDirectory *aDirectory)
|
||||
{
|
||||
if (mIsQueryURI) { return NS_ERROR_NOT_IMPLEMENTED ; }
|
||||
@ -544,7 +539,7 @@ NS_IMETHODIMP nsAbOutlookDirectory::EditMailListToDatabase(const char *aUri, nsI
|
||||
nsAbWinHelperGuard mapiAddBook (mAbWinType) ;
|
||||
|
||||
if (!mapiAddBook->IsOK()) { return NS_ERROR_FAILURE ; }
|
||||
retCode = GetDirName(getter_Copies(name)) ;
|
||||
retCode = GetDirName(name);
|
||||
NS_ENSURE_SUCCESS(retCode, retCode) ;
|
||||
if (!mapiAddBook->SetPropertyUString(*mMapiData, PR_DISPLAY_NAME_W, name.get())) {
|
||||
return NS_ERROR_FAILURE ;
|
||||
|
||||
@ -68,7 +68,6 @@ public:
|
||||
NS_IMETHOD HasCard(nsIAbCard *aCard, PRBool *aHasCard);
|
||||
NS_IMETHOD HasDirectory(nsIAbDirectory *aDirectory, PRBool *aHasDirectory);
|
||||
NS_IMETHOD DeleteCards(nsISupportsArray *aCardList);
|
||||
NS_IMETHOD ModifyDirectory(nsIAbDirectory *directory, nsIAbDirectoryProperties *aProperties);
|
||||
NS_IMETHOD DeleteDirectory(nsIAbDirectory *aDirectory);
|
||||
NS_IMETHOD AddCard(nsIAbCard *aData, nsIAbCard **addedCard);
|
||||
NS_IMETHOD ModifyCard(nsIAbCard *aModifiedCard);
|
||||
|
||||
@ -1698,7 +1698,7 @@ nsresult nsAddrDatabase::AddListAttributeColumnsToRow(nsIAbDirectory *list, nsIM
|
||||
{
|
||||
nsString unicodeStr;
|
||||
|
||||
list->GetDirName(getter_Copies(unicodeStr));
|
||||
list->GetDirName(unicodeStr);
|
||||
if (!unicodeStr.IsEmpty())
|
||||
AddUnicodeToColumn(listRow, m_ListNameColumnToken, m_LowerListNameColumnToken, unicodeStr.get());
|
||||
|
||||
@ -2979,7 +2979,7 @@ nsresult nsAddrDatabase::GetListFromDB(nsIAbDirectory *newList, nsIMdbRow* listR
|
||||
err = GetStringColumn(listRow, m_ListNameColumnToken, tempString);
|
||||
if (NS_SUCCEEDED(err) && !tempString.IsEmpty())
|
||||
{
|
||||
newList->SetDirName(tempString.get());
|
||||
newList->SetDirName(tempString);
|
||||
}
|
||||
err = GetStringColumn(listRow, m_ListNickNameColumnToken, tempString);
|
||||
if (NS_SUCCEEDED(err) && !tempString.IsEmpty())
|
||||
@ -3504,9 +3504,10 @@ nsresult nsAddrDatabase::CreateABList(nsIMdbRow* listRow, nsIAbDirectory **resul
|
||||
mdb_id existingID;
|
||||
dbmailList->GetDbRowID(&existingID);
|
||||
if (existingID != rowID) {
|
||||
// Ensure IsMailList is set up first.
|
||||
mailList->SetIsMailList(PR_TRUE);
|
||||
GetListFromDB(mailList, listRow);
|
||||
dbmailList->SetDbRowID(rowID);
|
||||
mailList->SetIsMailList(PR_TRUE);
|
||||
}
|
||||
|
||||
dbm_dbDirectory->AddMailListToDirectory(mailList);
|
||||
@ -3580,16 +3581,6 @@ NS_IMETHODIMP nsAddrDatabase::GetCardFromAttribute(nsIAbDirectory *aDirectory, c
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAddrDatabase::GetDirectoryName(PRUnichar **name)
|
||||
{
|
||||
if (m_dbDirectory && name)
|
||||
{
|
||||
return m_dbDirectory->GetDirName(name);
|
||||
}
|
||||
else
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAddrDatabase::AddListDirNode(nsIMdbRow * listRow)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
@ -266,7 +266,6 @@ public:
|
||||
|
||||
|
||||
NS_IMETHOD AddListDirNode(nsIMdbRow * listRow);
|
||||
NS_IMETHOD GetDirectoryName(PRUnichar **name);
|
||||
|
||||
NS_IMETHOD FindMailListbyUnicodeName(const PRUnichar *listName, PRBool *exist);
|
||||
|
||||
|
||||
@ -194,34 +194,6 @@ NS_IMETHODIMP nsAddressBook::NewAddressBook(nsIAbDirectoryProperties *aPropertie
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAddressBook::ModifyAddressBook
|
||||
(nsIRDFDataSource* aDS, nsIAbDirectory *aParentDir, nsIAbDirectory *aDirectory, nsIAbDirectoryProperties *aProperties)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aDS);
|
||||
NS_ENSURE_ARG_POINTER(aParentDir);
|
||||
NS_ENSURE_ARG_POINTER(aDirectory);
|
||||
NS_ENSURE_ARG_POINTER(aProperties);
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsISupportsArray> parentArray (do_CreateInstance(NS_SUPPORTSARRAY_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
nsCOMPtr<nsISupportsArray> resourceElement (do_CreateInstance(NS_SUPPORTSARRAY_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
nsCOMPtr<nsISupportsArray> resourceArray (do_CreateInstance(NS_SUPPORTSARRAY_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
parentArray->AppendElement(aParentDir);
|
||||
|
||||
nsCOMPtr<nsIRDFResource> dirSource(do_QueryInterface(aDirectory, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
resourceElement->AppendElement(dirSource);
|
||||
resourceElement->AppendElement(aProperties);
|
||||
resourceArray->AppendElement(resourceElement);
|
||||
|
||||
return DoCommand(aDS, NS_LITERAL_CSTRING(NC_RDF_MODIFY), parentArray, resourceArray);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAddressBook::DeleteAddressBooks
|
||||
(nsIRDFDataSource* aDS, nsISupportsArray *aParentDir, nsISupportsArray *aResourceArray)
|
||||
{
|
||||
|
||||
@ -55,7 +55,6 @@ class nsIAbDirectory;
|
||||
class nsIAbLDAPAttributeMap;
|
||||
|
||||
#define NC_RDF_NEWABCARD NC_NAMESPACE_URI "NewCard"
|
||||
#define NC_RDF_MODIFY NC_NAMESPACE_URI "Modify"
|
||||
#define NC_RDF_DELETE NC_NAMESPACE_URI "Delete"
|
||||
#define NC_RDF_DELETECARD NC_NAMESPACE_URI "DeleteCards"
|
||||
#define NC_RDF_NEWDIRECTORY NC_NAMESPACE_URI "NewDirectory"
|
||||
@ -99,7 +98,7 @@ public:
|
||||
NS_DECL_NSICONTENTHANDLER
|
||||
NS_DECL_NSISTREAMLOADEROBSERVER
|
||||
NS_DECL_NSICOMMANDLINEHANDLER
|
||||
|
||||
|
||||
protected:
|
||||
nsresult DoCommand(nsIRDFDataSource *db, const nsACString& command,
|
||||
nsISupportsArray *srcArray, nsISupportsArray *arguments);
|
||||
|
||||
@ -159,6 +159,10 @@ NS_IMETHODIMP DirPrefObserver::Observe(nsISupports *aSubject, const char *aTopic
|
||||
DIR_SetServerPosition(dir_ServerList, server, DIR_POS_DELETE);
|
||||
}
|
||||
}
|
||||
|
||||
if (id == idDescription)
|
||||
// Ensure the local copy of the description is kept up to date.
|
||||
server->description = DIR_GetStringPref(prefname, "description", nsnull);
|
||||
}
|
||||
/* If the server is not in the unified list, we may need to add it. Servers
|
||||
* are only added when the position, serverName and description are valid.
|
||||
|
||||
@ -69,7 +69,6 @@
|
||||
#define NC_RDF_SUPPORTSMAILINGLISTS "http://home.netscape.com/NC-rdf#SupportsMailingLists"
|
||||
|
||||
//Directory Commands
|
||||
#define NC_RDF_MODIFY "http://home.netscape.com/NC-rdf#Modify"
|
||||
#define NC_RDF_DELETECARDS "http://home.netscape.com/NC-rdf#DeleteCards"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
@ -162,8 +161,6 @@ nsAbDirectoryDataSource::Init()
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
rv = rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_DIRTREENAMESORT), getter_AddRefs(kNC_DirTreeNameSort));
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
rv = rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_MODIFY), getter_AddRefs(kNC_Modify));
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
rv = rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_DELETE),
|
||||
getter_AddRefs(kNC_Delete));
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
@ -357,8 +354,7 @@ nsAbDirectoryDataSource::IsCommandEnabled(nsISupportsArray/*<nsIRDFResource>*/*
|
||||
directory = do_QueryElementAt(aSources, i, &rv);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
// we don't care about the arguments -- directory commands are always enabled
|
||||
if (!((aCommand == kNC_Delete) || (aCommand == kNC_DeleteCards)
|
||||
||(aCommand == kNC_Modify))) {
|
||||
if (!((aCommand == kNC_Delete) || (aCommand == kNC_DeleteCards))) {
|
||||
*aResult = PR_FALSE;
|
||||
return NS_OK;
|
||||
}
|
||||
@ -377,11 +373,6 @@ nsAbDirectoryDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/* aSource
|
||||
nsresult rv = aSources->Count(&cnt);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (aCommand == kNC_Modify) {
|
||||
rv = DoModifyDirectory(aSources,aArguments);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((aCommand == kNC_Delete))
|
||||
rv = DoDeleteFromDirectory(aSources, aArguments);
|
||||
else {
|
||||
@ -393,7 +384,6 @@ nsAbDirectoryDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/* aSource
|
||||
rv = DoDeleteCardsFromDirectory(directory, aArguments);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//for the moment return NS_OK, because failure stops entire DoCommand process.
|
||||
return NS_OK;
|
||||
@ -422,37 +412,6 @@ NS_IMETHODIMP nsAbDirectoryDataSource::OnItemAdded(nsISupports *parentDirectory,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult nsAbDirectoryDataSource::DoModifyDirectory(nsISupportsArray *parentDir, nsISupportsArray *arguments)
|
||||
{
|
||||
PRUint32 itemCount;
|
||||
// Parent dir count should be 1.
|
||||
nsresult rv = parentDir->Count(&itemCount);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
NS_ASSERTION(itemCount == 1, "DoModifyDirectory() must have parent directory count = 1.");
|
||||
if (itemCount != 1)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIAbDirectory> parent = do_QueryElementAt(parentDir, 0, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Argument count should be 2. 1st one is nsIAbDirectory and 2nd is nsIAbDirectoryProperties.
|
||||
nsCOMPtr<nsISupportsArray> resourceArray = do_QueryElementAt(arguments, 0, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = resourceArray->Count(&itemCount);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
NS_ASSERTION(itemCount == 2, "DoModifyDirectory() must have resource argument count = 2.");
|
||||
if (itemCount != 2)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIAbDirectory> modifiedDir = do_QueryElementAt(resourceArray, 0, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
nsCOMPtr<nsIAbDirectoryProperties> properties = do_QueryElementAt(resourceArray, 1, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
if (modifiedDir && properties)
|
||||
rv = parent->ModifyDirectory(modifiedDir, properties);
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbDirectoryDataSource::OnItemRemoved(nsISupports *parentDirectory, nsISupports *item)
|
||||
{
|
||||
nsresult rv;
|
||||
@ -524,7 +483,7 @@ nsresult nsAbDirectoryDataSource::createDirectoryNameNode(nsIAbDirectory *direct
|
||||
nsIRDFNode **target)
|
||||
{
|
||||
nsString name;
|
||||
nsresult rv = directory->GetDirName(getter_Copies(name));
|
||||
nsresult rv = directory->GetDirName(name);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = createNode(name.get(), target);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
@ -638,7 +597,7 @@ nsresult
|
||||
nsAbDirectoryDataSource::createDirectoryTreeNameSortNode(nsIAbDirectory* directory, nsIRDFNode **target)
|
||||
{
|
||||
nsString name;
|
||||
nsresult rv = directory->GetDirName(getter_Copies(name));
|
||||
nsresult rv = directory->GetDirName(name);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
/* sort addressbooks in this order - Personal Addressbook, Collected Addresses, MDB, LDAP -
|
||||
|
||||
@ -132,8 +132,6 @@ protected:
|
||||
nsresult getDirectoryArcLabelsOut(nsIAbDirectory *directory,
|
||||
nsISupportsArray **arcs);
|
||||
|
||||
nsresult DoModifyDirectory(nsISupportsArray *parentDir,
|
||||
nsISupportsArray *arguments);
|
||||
nsresult DoDeleteFromDirectory(nsISupportsArray *parentDirs,
|
||||
nsISupportsArray *delDirs);
|
||||
nsresult DoDeleteCardsFromDirectory(nsIAbDirectory *directory,
|
||||
@ -161,7 +159,6 @@ protected:
|
||||
nsCOMPtr<nsICollation> mCollationKeyGenerator;
|
||||
|
||||
// commands
|
||||
nsCOMPtr<nsIRDFResource> kNC_Modify;
|
||||
nsCOMPtr<nsIRDFResource> kNC_Delete;
|
||||
nsCOMPtr<nsIRDFResource> kNC_DeleteCards;
|
||||
|
||||
|
||||
@ -4135,7 +4135,7 @@ nsresult nsMsgCompose::BuildMailListArray(nsIAddrDatabase* database, nsIAbDirect
|
||||
nsString listName;
|
||||
nsString listDescription;
|
||||
|
||||
directory->GetDirName(getter_Copies(listName));
|
||||
directory->GetDirName(listName);
|
||||
directory->GetDescription(getter_Copies(listDescription));
|
||||
|
||||
nsMsgMailList* mailList = new nsMsgMailList(listName,
|
||||
|
||||
@ -1014,23 +1014,10 @@ nsresult nsAbPalmHotSync::DeleteAB(long aCategoryIndex, const char * aABUrl)
|
||||
|
||||
nsresult nsAbPalmHotSync::RenameAB(long aCategoryIndex, const char * aABUrl)
|
||||
{
|
||||
// Fill in property info and call ModifyAB().
|
||||
nsresult rv;
|
||||
nsCOMPtr <nsIAbDirectoryProperties> properties(do_CreateInstance(NS_ABDIRECTORYPROPERTIES_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
// For modify to work, we only need to set description, uri and dir type.
|
||||
rv = properties->SetDescription(mAbName);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
rv = properties->SetURI(aABUrl);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
rv = properties->SetDirType(kPABDirectory); // pab dir type for PalmSync
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
PRUint32 modTimeInSec;
|
||||
PRTime2Seconds(PR_Now(), &modTimeInSec);
|
||||
|
||||
return ModifyAB(aABUrl, properties, modTimeInSec, aCategoryIndex);
|
||||
return ModifyAB(aABUrl, mAbName, modTimeInSec, aCategoryIndex);
|
||||
}
|
||||
|
||||
nsresult nsAbPalmHotSync::NewAB(const nsString& aAbName)
|
||||
@ -1049,25 +1036,11 @@ nsresult nsAbPalmHotSync::NewAB(const nsString& aAbName)
|
||||
|
||||
nsresult nsAbPalmHotSync::UpdateABInfo(PRUint32 aModTime, PRInt32 aCategoryIndex)
|
||||
{
|
||||
// Fill in property info and call ModifyAB().
|
||||
nsresult rv;
|
||||
nsCOMPtr <nsIAbDirectoryProperties> properties(do_CreateInstance(NS_ABDIRECTORYPROPERTIES_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
// For modify to work, we only need to set description, uri and
|
||||
// dir type. Then add mod time and category id we want to modify.
|
||||
rv = properties->SetDescription(mDescription);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
rv = properties->SetURI(mUri.get());
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
rv = properties->SetDirType(mDirType);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
return(ModifyAB(mUri.get(), properties, aModTime, aCategoryIndex));
|
||||
return(ModifyAB(mUri.get(), mDescription, aModTime, aCategoryIndex));
|
||||
}
|
||||
|
||||
nsresult nsAbPalmHotSync::ModifyAB(const char * aABUrl,
|
||||
nsIAbDirectoryProperties *aProperties,
|
||||
const nsString &aAbName,
|
||||
const PRUint32 aModTime,
|
||||
const PRInt32 aCategoryId)
|
||||
{
|
||||
@ -1091,20 +1064,12 @@ nsresult nsAbPalmHotSync::ModifyAB(const char * aABUrl,
|
||||
nsCOMPtr <nsIAbDirectory> selectedDirectory = do_QueryInterface(childResource, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = selectedDirectory->SetDirName(aAbName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Now set the mod time and category id directly via the selected directory.
|
||||
rv = selectedDirectory->SetIntValue("PalmSyncTimeStamp", aModTime);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = selectedDirectory->SetIntValue("PalmSyncCategoryId", aCategoryId);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// RDF data source for addrbook
|
||||
nsCOMPtr<nsIRDFDataSource> ds;
|
||||
rv = rdfService->GetDataSource("rdf:addressdirectory", getter_AddRefs(ds));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr <nsIAddressBook> ab = do_CreateInstance(NS_ADDRESSBOOK_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return(ab->ModifyAddressBook(ds, parentDirectory, selectedDirectory, aProperties));
|
||||
return selectedDirectory->SetIntValue("PalmSyncCategoryId", aCategoryId);
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ protected:
|
||||
void ConvertAssignPalmIDAttrib(PRUint32 id, nsIAbMDBCard * card);
|
||||
nsresult GetABInterface();
|
||||
nsresult UpdateABInfo(PRUint32 modTime, PRInt32 categoryId);
|
||||
nsresult ModifyAB(const char * ABUrl, nsIAbDirectoryProperties *properties,
|
||||
nsresult ModifyAB(const char * ABUrl, const nsString &aAbName,
|
||||
const PRUint32 aModTime, const PRInt32 aCategoryId);
|
||||
nsresult NewAB(const nsString& aAbName);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user