Bug 344159 - Reset the .selectedEngine pref when it matches the default setting, so that changes in the default show up, r=gavin

This commit is contained in:
benjamin%smedbergs.us 2006-08-02 14:08:12 +00:00
Родитель f8444ab93c
Коммит 5bb6381ad2
1 изменённых файлов: 14 добавлений и 18 удалений

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

@ -627,22 +627,6 @@ function getLocalizedPref(aPrefName, aDefault) {
return aDefault;
}
/**
* Wrapper for nsIPrefBranch::setComplexValue.
* @param aPrefName
* The name of the pref to set.
* @param aValue
* The value of the pref.
*/
function setLocalizedPref(aPrefName, aValue) {
var prefB = Cc["@mozilla.org/preferences-service;1"].
getService(Ci.nsIPrefBranch);
var pls = Cc["@mozilla.org/pref-localizedstring;1"].
createInstance(Ci.nsIPrefLocalizedString);
pls.data = aValue;
prefB.setComplexValue(aPrefName, Ci.nsIPrefLocalizedString, pls);
}
/**
* Wrapper for nsIPrefBranch::getBoolPref.
* @param aPrefName
@ -2686,8 +2670,20 @@ SearchService.prototype = {
Cr.NS_ERROR_UNEXPECTED);
this._currentEngine = newCurrentEngine;
setLocalizedPref(BROWSER_SEARCH_PREF + "selectedEngine",
this._currentEngine.name);
var currentEnginePref = BROWSER_SEARCH_PREF + "selectedEngine";
var prefB = Cc["@mozilla.org/preferences-service;1"].
getService(Ci.nsIPrefService).QueryInterface(Ci.nsIPrefBranch);
if (this._currentEngine == this.defaultEngine) {
if (prefB.prefHasUserValue(currentEnginePref))
prefB.clearUserPref(currentEnginePref);
}
else {
prefB.setCharPref(currentEnginePref, this._currentEngine.name);
}
notifyAction(this._currentEngine, SEARCH_ENGINE_CURRENT);
},