Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Enregistrer une liste de boolPref à la volée

Envoyé par : frindsssss

Date : 06/06/2008 22:00

Bonjour, j'ai créé une interface de préférences, et j'y met un bouton "par défaut" qui réinitialise toutes les préférences, hors pour les charpref il n'y a pas de problème ça ce remet bien par défaut, mais pour les boolPref les cases changent d'état mais leur changement ne se sauvegarde pas et donc lors ce que je relance la page des choix de préférences les cases booléenne ce remettent comme si je n'avais pas cliqué sur "par défaut".

function saveChanges() {
for(var i=0;i<charPref.length;i++) {		
    var valeur = document.getElementById(charPref[i]).value;
	preferences.setCharPref(prefixe+"."+charPref[i],  valeur);
	}
for(var j=0; j<boolPref.length; j++) {
    var valeur = preferences.getBoolPref(prefixe+"."+boolPref[j]);
	document.getElementById(boolPref[j]).checked = valeur;
}
}
function parDefaut() {
document.getElementById("conexionAuto").checked = true;
   document.getElementById("toolbarActivated").checked = true;
document.getElementById("height").value = "100";
document.getElementById("width").value = "100";
saveChanges();
}

Si quelqu'un a une idée pour résoudre ce problème, merci. http://gamuzclient.free.fr/pref.txt Pour voir le script complet de ma page de pref.

# Re: Enregistrer une liste de boolPref à la volée

Envoyé par : Raphael

Date : 06/06/2008 22:12

Bon, ça va peut-être te paraitre bête mais perso, j'ai jamais réussi à bien sauvegarder des booléens comme tu fais... Du coup, je fais comme ça mais si c'est pas très joli :

if ($("main_modules_cardexplorer").checked) { prfs.setCharPref("main.modules.cardexplorer", true); }
else { prfs.setCharPref("main.modules.cardexplorer", false); }

# Re: Enregistrer une liste de boolPref à la volée

Envoyé par : frindsssss

Date : 15/06/2008 13:44

Re bonjour, je poste la solution que j'ai décidé d'utilisé dès fois que ça puisse aider quelqu'un:

Sur ma page xul :

<checkbox id="conexionAuto" label="Connexion automatique" oncommand="connexionAutomatique()" checked="false"/>
<button id="dimensions2" image="chrome://cs/content/icons/reset.gif" label=" Par défaut" oncommand="parDefaut()"/>

Dans ma page .js :

var preferences = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var prefixe = "nomextention";
var boolPref = new Array("conexionAuto");
function parDefaut() {
document.getElementById("conexionAuto").checked = true;
customizeToolBar(conexionAuto);
}
function customizeToolBar(i) {
var checked = document.getElementById(i).checked;
preferences.setBoolPref(prefixe+"."+i, checked);
}

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.