ick...ick ick ick. Try to fix preferences.

This commit is contained in:
blakeross%telocity.com 2003-08-24 01:01:46 +00:00
Родитель 87562f5b7a
Коммит ad2c14ebc1
8 изменённых файлов: 48 добавлений и 52 удалений

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

@ -65,9 +65,8 @@ function GetFields()
return dataObject;
}
function SetFields()
function SetFields(dataObject)
{
var dataObject = window.opener.top.hPrefWindow.wsm.dataManager.pageData[window.location.href];
if ('cookies' in dataObject)
cookies = dataObject.cookies;
@ -129,7 +128,7 @@ function loadCookies() {
if (!cookiesTree)
cookiesTree = document.getElementById("cookiesTree");
var dataObject = window.opener.top.hPrefWindow.wsm.dataManager.pageData[window.location.href];
var dataObject = window.opener.top.hPrefWindow.wsm.dataManager.pageData[window.location.href].userData;
if (!('cookies' in dataObject)) {
// load cookies into a table
var enumerator = cookiemanager.enumerator;

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

@ -187,13 +187,11 @@ nsPrefWindow.prototype =
for( var pageTag in this.wsm.dataManager.pageData )
{
var pageData = this.wsm.dataManager.getPageData( pageTag );
if ("initialized" in pageData && pageData.initialized)
if ("initialized" in pageData && pageData.initialized && "elementIDs" in pageData)
{
for( var elementID in pageData )
for( var elementID in pageData.elementIDs )
{
if (elementID == "initialized") continue;
var itemObject = pageData[elementID];
if (typeof(itemObject) != "object") break;
var itemObject = pageData.elementIDs[elementID];
if ( "prefstring" in itemObject && itemObject.prefstring )
{
var elt = itemObject.localname;
@ -308,10 +306,11 @@ nsPrefWindow.prototype =
aWindow.document.documentElement.getAttribute("headertitle"));
}
if( !(aPageTag in this.wsm.dataManager.pageData) )
var pageData = this.wsm.dataManager.getPageData(aPageTag);
if(!('initialized' in pageData))
{
var prefElements = aWindow.document.getElementsByAttribute( "prefstring", "*" );
this.wsm.dataManager.pageData[aPageTag] = [];
for( var i = 0; i < prefElements.length; i++ )
{
var prefstring = prefElements[i].getAttribute( "prefstring" );
@ -350,12 +349,11 @@ nsPrefWindow.prototype =
}
}
this.wsm.setPageData( aPageTag, aWindow ); // do not set extra elements, accept hard coded defaults
if( 'Startup' in aWindow)
{
aWindow.Startup();
}
this.wsm.dataManager.pageData[aPageTag].initialized=true;
this.wsm.dataManager.pageData[aPageTag].initialized = true;
}
};

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

@ -39,7 +39,7 @@ function GetFields()
return dataObject;
}
function SetFields()
function SetFields(data)
{
var win;
if ('opener' in window && window.opener)
@ -47,14 +47,11 @@ function SetFields()
else
win = window.top;
var dataObject = win.hPrefWindow.wsm.dataManager.pageData[window.location.href];
if ('permissions' in dataObject)
permissions = dataObject.permissions;
if ('permissions' in data)
permissions = data.permissions;
if ('deletedPermissions' in dataObject)
deletedPermissions = dataObject.deletedPermissions;
return true;
if ('deletedPermissions' in data)
deletedPermissions = data.deletedPermissions;
}
var permissionsTreeView = {
@ -137,7 +134,7 @@ function loadPermissions() {
else
win = window.top;
var dataObject = win.hPrefWindow.wsm.dataManager.pageData[window.location.href];
var dataObject = win.hPrefWindow.wsm.dataManager.pageData[window.location.href].userData;
// load permissions into a table
if (!('permissions' in dataObject)) {

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

@ -121,7 +121,7 @@ function showFontsAndColors()
function saveFontPrefs()
{
var dataObject = top.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-fonts.xul"];
var dataObject = top.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-fonts.xul"].userData;
var pref = top.hPrefWindow.pref;
for (var language in dataObject.languageData) {
for (var type in dataObject.languageData[language].types) {
@ -188,7 +188,7 @@ function saveFontPrefs()
}
items = ["browserUseSystemColors", "browserUnderlineAnchors"];
prefs = ["browser.display.use_system_colors", "browser.underline_anchors"];
for (var i = 0; i < items.length; ++i) {
for (i = 0; i < items.length; ++i) {
prefvalue = dataObject.dataEls[items[i]].checked;
pref.SetBoolPref(prefs[i], prefvalue)
}
@ -199,7 +199,7 @@ function onPopupPrefsOK()
var permissionmanager = Components.classes["@mozilla.org/permissionmanager;1"].getService();
permissionmanager = permissionmanager.QueryInterface(Components.interfaces.nsIPermissionManager);
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData[window.location.href];
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-features.xul"].userData;
if ('deletedPermissions' in dataObject) {
for (var p = 0; p < dataObject.deletedPermissions.length; ++p) {
permissionmanager.remove(dataObject.deletedPermissions[p].host, dataObject.deletedPermissions[p].type);
@ -223,7 +223,7 @@ function onImagePrefsOK()
var permissionmanager = Components.classes["@mozilla.org/permissionmanager;1"].getService();
permissionmanager = permissionmanager.QueryInterface(Components.interfaces.nsIPermissionManager);
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-features-images.xul"];
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-features-images.xul"].userData;
if ('deletedPermissions' in dataObject) {
for (var p = 0; p < dataObject.deletedPermissions.length; ++p) {
permissionmanager.remove(dataObject.deletedPermissions[p].host, dataObject.deletedPermissions[p].type);

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

@ -95,7 +95,7 @@ function GetFields()
}
// manual data setting function for PrefWindow
function SetFields( aDataObject )
function SetFields(aDataObject)
{
languageData = "languageData" in aDataObject ? aDataObject.languageData : languageData ;
currentLanguage = "currentLanguage" in aDataObject ? aDataObject.currentLanguage : null ;
@ -479,7 +479,7 @@ function selectLanguage()
}
// and set the font sizes
var dataObject = gPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-fonts.xul"];
var dataObject = gPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-fonts.xul"].userData;
var langData = null;
try
{

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

@ -110,7 +110,7 @@ function unload()
function cookieViewerOnPrefsOK()
{
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/cookieviewer/CookieViewer.xul"];
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/cookieviewer/CookieViewer.xul"].userData;
if ('deletedCookies' in dataObject) {
var cookiemanager = Components.classes["@mozilla.org/cookiemanager;1"].getService();
cookiemanager = cookiemanager.QueryInterface(Components.interfaces.nsICookieManager);
@ -326,7 +326,7 @@ function onPrefsOK()
var permissionmanager = Components.classes["@mozilla.org/permissionmanager;1"].getService();
permissionmanager = permissionmanager.QueryInterface(Components.interfaces.nsIPermissionManager);
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/cookieviewer/CookieExceptions.xul"];
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/cookieviewer/CookieExceptions.xul"].userData;
if ('deletedPermissions' in dataObject) {
for (var p = 0; p < dataObject.deletedPermissions.length; ++p) {
permissionmanager.remove(dataObject.deletedPermissions[p].host, dataObject.deletedPermissions[p].type);

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

@ -51,7 +51,7 @@ catch(e) {}
function Startup()
{
gData = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-themes.xul"];
gData = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-themes.xul"].userData;
var list = document.getElementById( "skinsList" );
if ("loaded" in gData && "themeIndex" in gData) {
list.selectedIndex = gData.themeIndex;
@ -93,7 +93,7 @@ function Startup()
function applyTheme()
{
var data = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-themes.xul"];
var data = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-themes.xul"].userData;
if (data.name == null)
return;

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

@ -51,6 +51,13 @@ function nsWidgetStateManager (aFrameID)
{
if (!(aPageTag in this.pageData))
this.pageData[aPageTag] = { };
if (!('elementIDs' in this.pageData[aPageTag]))
this.pageData[aPageTag].elementIDs = new Object();
if (!('userData' in this.pageData[aPageTag]))
this.pageData[aPageTag].userData = new Object();
return this.pageData[aPageTag];
},
@ -58,14 +65,15 @@ function nsWidgetStateManager (aFrameID)
{
if (!(aPageTag in this.pageData))
this.pageData[aPageTag] = new Object();
this.pageData[aPageTag][aItemID] = aDataObject;
this.pageData[aPageTag].elementIDs[aItemID] = aDataObject;
},
getItemData: function (aPageTag, aItemID)
{
if (!(aItemID in this.pageData[aPageTag]))
this.pageData[aPageTag][aItemID] = new Object();
return this.pageData[aPageTag][aItemID];
if (!(aItemID in this.pageData[aPageTag].elementIDs))
this.pageData[aPageTag].elementIDs[aItemID] = new Object();
return this.pageData[aPageTag].elementIDs[aItemID];
}
}
@ -116,7 +124,7 @@ nsWidgetStateManager.prototype =
// save page data based on user supplied function in content area
var dataObject = gCurrentWindow.GetFields();
if (dataObject)
this.dataManager.setPageData(aPageTag, dataObject);
this.dataManager.pageData[aPageTag].userData = dataObject;
}
// Automatic element retrieval. This is done in two ways.
@ -146,10 +154,6 @@ nsWidgetStateManager.prototype =
var elementID = elements[ii].id;
var elementType = elements[ii].localName;
if (!(aPageTag in this.dataManager.pageData) )
this.dataManager.pageData[aPageTag] = new Object();
this.dataManager.pageData[aPageTag][elementID] = new Object();
// persist attributes
var get_Func = (elementType in this.handlers) ?
this.handlers[elementType].get :
@ -163,22 +167,20 @@ nsWidgetStateManager.prototype =
gCurrentWindow = aWindow || this.contentArea;
var pageData = this.dataManager.getPageData(aPageTag);
if ("SetFields" in gCurrentWindow) {
if (!gCurrentWindow.SetFields(pageData)) {
// If the function returns false (or null/undefined) then it
// doesn't want *us* to process the page data.
return;
}
}
if ("SetFields" in gCurrentWindow)
gCurrentWindow.SetFields(pageData.userData)
for (var elementID in pageData) {
if (!('elementIDs' in pageData))
return;
for (var elementID in pageData.elementIDs) {
var element = gCurrentWindow.document.getElementById(elementID);
if (element) {
var elementType = element.localName;
var set_Func = (elementType in this.handlers) ?
this.handlers[elementType].set :
this.handlers.default_handler.set;
set_Func(elementID, pageData[elementID]);
set_Func(elementID, pageData.elementIDs[elementID]);
}
}
},
@ -376,4 +378,4 @@ nsWidgetStateManager.prototype =
# there is no way out of here
# [The Master is] not dead as you know it. He is with us always..
# My name is Torgo, I take care of the place while the Master is away.
# The car won't start