diff --git a/suite/common/pref/pref-cache.js b/suite/common/pref/pref-cache.js index a47ff20a60..6316cbe1de 100644 --- a/suite/common/pref/pref-cache.js +++ b/suite/common/pref/pref-cache.js @@ -1,80 +1,102 @@ -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * - */ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Communicator client code, released + * March 31, 1998. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * . + * Portions created by the Initial Developer are Copyright (C) 1998-1999 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Diego Biurrun + * Manuel Reimer + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ -const nsIFilePicker = Components.interfaces.nsIFilePicker; -const nsILocalFile = Components.interfaces.nsILocalFile; -const nsIProperties = Components.interfaces.nsIProperties; -const kCacheParentDirPref = "browser.cache.disk.parent_directory"; - -var gFolderField; -var gCacheParentDirectory; - -function Startup() +// because the cache is in kilobytes, and the UI is in megabytes. +function ReadCacheDiskCapacity() { - var prefWindow = parent.hPrefWindow; - gFolderField = document.getElementById("browserCacheDiskCacheFolder"); + var pref = document.getElementById("browser.cache.disk.capacity"); + return pref.value >> 10; +} - gCacheParentDirectory = prefWindow.getPref("localfile", kCacheParentDirPref); - if (gCacheParentDirectory == "!/!ERROR_UNDEFINED_PREF!/!") +function WriteCacheDiskCapacity(aField) +{ + return aField.value << 10; +} + +function ReadCacheFolder(aField) +{ + var pref = document.getElementById("browser.cache.disk.parent_directory"); + var file = pref.value; + + if (!file) { try { // no disk cache folder pref set; default to profile directory var dirSvc = Components.classes["@mozilla.org/file/directory_service;1"] - .getService(nsIProperties); + .getService(Components.interfaces.nsIProperties); if (dirSvc.has("ProfLD")) - gCacheParentDirectory = dirSvc.get("ProfLD", nsILocalFile); + file = dirSvc.get("ProfLD", Components.interfaces.nsILocalFile); else - gCacheParentDirectory = dirSvc.get("ProfD", nsILocalFile); - } - catch (ex) - { - gCacheParentDirectory = null; + file = dirSvc.get("ProfD", Components.interfaces.nsILocalFile); } + catch (ex) {} } - // if both pref and dir svc fail leave this field blank else show directory - if (gCacheParentDirectory) - gFolderField.value = (/Mac/.test(navigator.platform)) ? gCacheParentDirectory.leafName : gCacheParentDirectory.path; - - document.getElementById("chooseDiskCacheFolder").disabled = - prefWindow.getPrefIsLocked(kCacheParentDirPref); + if (file) + { + aField.file = file; + aField.label = (/Mac/.test(navigator.platform)) ? file.leafName : file.path; + } } - -function prefCacheSelectFolder() +function CacheSelectFolder() { + var pref = document.getElementById("browser.cache.disk.parent_directory"); + const nsIFilePicker = Components.interfaces.nsIFilePicker; var fp = Components.classes["@mozilla.org/filepicker;1"] .createInstance(nsIFilePicker); - var prefWindow = parent.hPrefWindow; var prefutilitiesBundle = document.getElementById("bundle_prefutilities"); var title = prefutilitiesBundle.getString("cachefolder"); fp.init(window, title, nsIFilePicker.modeGetFolder); - - fp.displayDirectory = gCacheParentDirectory; - + fp.displayDirectory = pref.value; fp.appendFilters(nsIFilePicker.filterAll); - var ret = fp.show(); - - if (ret == nsIFilePicker.returnOK) { - var localFile = fp.file.QueryInterface(nsILocalFile); - prefWindow.setPref("localfile", kCacheParentDirPref, localFile); - gFolderField.value = (/Mac/.test(navigator.platform)) ? fp.file.leafName : fp.file.path; - - gCacheParentDirectory = fp.file; - } + if (fp.show() == nsIFilePicker.returnOK) + pref.value = fp.file; } -function prefClearCache(aType) +function ClearDiskAndMemCache() { - var classID = Components.classes["@mozilla.org/network/cache-service;1"]; - var cacheService = classID.getService(Components.interfaces.nsICacheService); - cacheService.evictEntries(aType); -} - -function prefClearDiskAndMemCache() -{ - prefClearCache(Components.interfaces.nsICache.STORE_ANYWHERE); + Components.classes["@mozilla.org/network/cache-service;1"] + .getService(Components.interfaces.nsICacheService) + .evictEntries(Components.interfaces.nsICache.STORE_ANYWHERE); } diff --git a/suite/common/pref/pref-cache.xul b/suite/common/pref/pref-cache.xul index 0e18a5de66..aff05ace38 100644 --- a/suite/common/pref/pref-cache.xul +++ b/suite/common/pref/pref-cache.xul @@ -1,4 +1,4 @@ - + - + %brandDTD; - + %prefCacheDTD; ]> - + + - - - -