Make it possible to set the location of the bookmarks file. Bug 31623. r=timeless, sr=waterson. Pref for this is browser.bookmarks.file - you need to edit your pref.js manually. I seem to remember you need to double your backslashes on Windows...

This commit is contained in:
gerv%gerv.net 2001-05-19 15:57:08 +00:00
Родитель 8323d80929
Коммит 7a4ed2c26f
1 изменённых файлов: 31 добавлений и 19 удалений

Просмотреть файл

@ -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
@ -3907,26 +3907,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.bookmarks.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