mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 19:55:39 +00:00
fix Bugzilla Bug 31623 Location of Bookmarks file cannot be changed
fix by gervase.markham@univ.ox.ac.uk r=timeless, sr=waterson, a=asa
This commit is contained in:
parent
0b64a39959
commit
11de9263a9
@ -1,4 +1,4 @@
|
||||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-file-style: "stroustrup" -*-
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
@ -3952,26 +3952,38 @@ nsBookmarksService::Flush()
|
||||
nsresult
|
||||
nsBookmarksService::GetBookmarksFile(nsFileSpec* aResult)
|
||||
{
|
||||
nsresult rv;
|
||||
nsresult rv;
|
||||
|
||||
// Look for bookmarks.html in the current profile
|
||||
// directory. This is as convoluted as it seems because we
|
||||
// want to 1) not break viewer (which has no profiles), and 2)
|
||||
// still deal reasonably (in the short term) when no
|
||||
// bookmarks.html is installed in the profile directory.
|
||||
|
||||
nsCOMPtr<nsIFile> bookmarksFile;
|
||||
rv = NS_GetSpecialDirectory(NS_APP_BOOKMARKS_50_FILE, getter_AddRefs(bookmarksFile));
|
||||
// First we see if the user has set a pref for the location of the
|
||||
// bookmarks file.
|
||||
NS_WITH_SERVICE(nsIPref, prefServ, kPrefCID, &rv);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
|
||||
// TODO: When the code which calls this can us nsIFIle
|
||||
// or nsILocalFile, this conversion from nsiFile to
|
||||
// nsFileSpec can go away.
|
||||
|
||||
nsXPIDLCString pathBuf;
|
||||
rv = bookmarksFile->GetPath(getter_Copies(pathBuf));
|
||||
if (NS_SUCCEEDED(rv))
|
||||
*aResult = (const char *)pathBuf;
|
||||
nsXPIDLCString prefVal;
|
||||
rv = prefServ->CopyCharPref("browser.bookmark_file",
|
||||
getter_Copies(prefVal));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
*aResult = prefVal;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
// Otherwise, we look for bookmarks.html in the current profile
|
||||
// directory using the magic directory service.
|
||||
nsCOMPtr<nsIFile> bookmarksFile;
|
||||
rv = NS_GetSpecialDirectory(NS_APP_BOOKMARKS_50_FILE,
|
||||
getter_AddRefs(bookmarksFile));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
|
||||
// XXX: When the code which calls this can us nsIFile
|
||||
// or nsILocalFile, this conversion from nsIFile to
|
||||
// nsFileSpec can go away. Bug 36974.
|
||||
|
||||
nsXPIDLCString pathBuf;
|
||||
rv = bookmarksFile->GetPath(getter_Copies(pathBuf));
|
||||
if (NS_SUCCEEDED(rv))
|
||||
*aResult = pathBuf.get();
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
|
Loading…
Reference in New Issue
Block a user