78882 - Dragging a bookmark into the personal toolbar causes all items to be deleted, r=ben, sr=alecf
git-svn-id: svn://10.0.0.236/trunk@235741 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -45,6 +45,9 @@ interface nsIBookmarksService : nsISupports
|
||||
void AddBookmarkToFolder(in string aURI, in nsIRDFResource aFolder,
|
||||
in wstring aTitle, in wstring docCharSet);
|
||||
|
||||
void insertBookmarkInFolder(in string aURI, in wstring aTitle, in wstring docCharSet,
|
||||
in nsIRDFResource aFolder, in long aIndex);
|
||||
|
||||
void UpdateBookmarkLastVisitedDate(in string aURL, in wstring docCharset);
|
||||
|
||||
string FindShortcut(in wstring aName);
|
||||
|
||||
@@ -396,7 +396,8 @@ public:
|
||||
const char* aShortcutURL,
|
||||
nsIRDFResource* aNodeType,
|
||||
nsIRDFResource** bookmarkNode,
|
||||
const PRUnichar* aCharset);
|
||||
const PRUnichar* aCharset,
|
||||
PRInt32 aIndex);
|
||||
|
||||
nsresult SetIEFavoritesRoot(const char *IEFavoritesRootURL)
|
||||
{
|
||||
@@ -1366,7 +1367,8 @@ BookmarkParser::AddBookmark(nsCOMPtr<nsIRDFContainer> aContainer,
|
||||
const char* aShortcutURL,
|
||||
nsIRDFResource* aNodeType,
|
||||
nsIRDFResource** bookmarkNode,
|
||||
const PRUnichar* aCharset)
|
||||
const PRUnichar* aCharset,
|
||||
PRInt32 aIndex)
|
||||
{
|
||||
nsresult rv;
|
||||
nsAutoString fullURL;
|
||||
@@ -1464,7 +1466,10 @@ BookmarkParser::AddBookmark(nsCOMPtr<nsIRDFContainer> aContainer,
|
||||
}
|
||||
|
||||
// The last thing we do is add the bookmark to the container. This ensures the minimal amount of reflow.
|
||||
rv = aContainer->AppendElement(bookmark);
|
||||
if (aIndex < 0)
|
||||
rv = aContainer->AppendElement(bookmark);
|
||||
else
|
||||
rv = aContainer->InsertElementAt(bookmark, aIndex, PR_TRUE);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to add bookmark to container");
|
||||
return(rv);
|
||||
}
|
||||
@@ -2481,6 +2486,17 @@ nsBookmarksService::AddBookmarkToFolder(const char *aURI,
|
||||
nsIRDFResource *aFolder,
|
||||
const PRUnichar* aTitle,
|
||||
const PRUnichar *aCharset)
|
||||
{
|
||||
return InsertBookmarkInFolder(aURI, aTitle, aCharset, aFolder, -1);
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBookmarksService::InsertBookmarkInFolder(const char *aURI,
|
||||
const PRUnichar* aTitle,
|
||||
const PRUnichar *aCharset,
|
||||
nsIRDFResource *aFolder,
|
||||
PRInt32 aIndex)
|
||||
{
|
||||
// XXX Constructing a parser object to do this is bad.
|
||||
// We need to factor AddBookmark() into its own little
|
||||
@@ -2510,7 +2526,7 @@ nsBookmarksService::AddBookmarkToFolder(const char *aURI,
|
||||
LL_L2I(now32, now64);
|
||||
|
||||
rv = parser.AddBookmark(container, aURI, aTitle, now32,
|
||||
0L, 0L, nsnull, kNC_Bookmark, nsnull, aCharset);
|
||||
0L, 0L, nsnull, kNC_Bookmark, nsnull, aCharset, aIndex);
|
||||
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
@@ -4345,7 +4361,7 @@ nsBookmarksService::WriteBookmarksContainer(nsIRDFDataSource *ds, nsOutputFileSt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
strm << indentation;
|
||||
strm << " ";
|
||||
if (isContainer == PR_TRUE)
|
||||
|
||||
Reference in New Issue
Block a user