Bug 129428: Paste doesn't work in bookmark manager. Patch by ben@netscape.com, r=pierrechanial@netscape.net, sr=jag, a=drivers, a=adt

git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_0_BRANCH@120988 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
jaggernaut%netscape.com
2002-05-07 21:55:49 +00:00
parent ef779b7b11
commit 80bafa48f9
2 changed files with 15 additions and 30 deletions

View File

@@ -817,31 +817,31 @@ var BookmarksUtils = {
cloneFolder: function (aFolder, aParent, aRelativeItem)
{
const kBMDS = this.RDF.GetDataSource("rdf:bookmarks");
var BMDS = this.RDF.GetDataSource("rdf:bookmarks");
const krNameArc = this.RDF.GetResource(NC_NS + "Name");
var rName = kBMDS.GetTarget(aFolder, krNameArc, true);
var nameArc = this.RDF.GetResource(NC_NS + "Name");
var rName = BMDS.GetTarget(aFolder, nameArc, true);
rName = rName.QueryInterface(Components.interfaces.nsIRDFLiteral);
const krNewFolder = this.createFolderWithID(rName.Value, aRelativeItem.Value, aParent.Value);
var newFolder = this.createFolderWithID(rName.Value, aRelativeItem, aParent);
// Now need to append kiddies.
try {
const kRDFCContractID = "@mozilla.org/rdf/container;1";
const kRDFCIID = Components.interfaces.nsIRDFContainer;
const ksRDFC = Components.classes[kRDFCContractID].getService(kRDFCIID);
ksRDFC.Init(kBMDS, aFolder);
var RDFC = Components.classes[kRDFCContractID].getService(kRDFCIID);
RDFC.Init(BMDS, aFolder);
const kElts = ksRDFC.GetElements();
ksRDFC.Init(kBMDS, krNewFolder);
while (kElts.hasMoreElements()) {
var curr = kElts.getNext().QueryInterface(Components.interfaces.nsIRDFResource);
ksRDFC.AppendElement(curr);
var elts = RDFC.GetElements();
RDFC.Init(BMDS, newFolder);
while (elts.hasMoreElements()) {
var curr = elts.getNext().QueryInterface(Components.interfaces.nsIRDFResource);
RDFC.AppendElement(curr);
}
}
catch (e) {
}
return krNewFolder;
return newFolder;
},
createFolderWithID: function (aTitle, aRelativeItem, aParentFolder)
@@ -854,9 +854,9 @@ var BookmarksUtils = {
RDFC.Init(BMDS, aParentFolder);
}
catch (e) {
return;
return null;
}
var ix = kRDFC.IndexOf(aRelativeItem);
var ix = RDFC.IndexOf(aRelativeItem);
var BMSvc = BMDS.QueryInterface(Components.interfaces.nsIBookmarksService);
return BMSvc.createFolderWithDetails(aTitle, aParentFolder, ix);

View File

@@ -3079,24 +3079,9 @@ nsBookmarksService::GetSynthesizedType(nsIRDFResource *aNode, nsIRDFNode **aType
// else is annotated)
PRBool isContainer = PR_FALSE;
(void)gRDFC->IsSeq(mInner, aNode, &isContainer);
if (isContainer)
{
*aType = kNC_Folder;
NS_ADDREF(*aType);
}
else
{
// only return bookmark type for nodes that actually exist
PRBool isBookmarkedFlag = PR_FALSE;
rv = IsBookmarkedInternal(aNode, &isBookmarkedFlag);
if (NS_FAILED(rv) || (rv == NS_RDF_NO_VALUE))
return(rv);
if (isBookmarkedFlag == PR_FALSE)
return(NS_RDF_NO_VALUE);
*aType = kNC_Bookmark;
*aType = isContainer ? kNC_Folder : kNC_Bookmark;
NS_ADDREF(*aType);
}
}
return(NS_OK);
}