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:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user