ouvrir une fenêtre de sélection de fichier (filepicker)

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
Répondre
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

ouvrir une fenêtre de sélection de fichier (filepicker)

Message par pcdingo »

Bonjour,

Je suis en train de me mettre à la programmation XUL en me programmant une petite application, grâce à différents tuturiaux que j'ai pu voir sur le net dont xulplanet j'ai pu pas mal avancer, cependant j'ai un problème lorsque je souhaite ouvrir une boite de dialogue de sélection de fichier.
Pour ce faire j'ai trouvé et utilisé le code suivant :

Code : Tout sélectionner

function selectFile()
{
var nsIFilePicker = Components.interfaces.nsIFilePicker;
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
fp.init(window, "Select a File", nsIFilePicker.modeOpen);
fp.appendFilters(nsIFilePicker.filterXML | nsIFilePicker.filterAll);
var res=fp.show();
if (res==nsIFilePicker.returnOK){
  var thefile=fp.file;
}
}
Je ne comprends pas pourquoi mais j'obtiens avec ce code toujours l'erreur suivant :
Erreur : uncaught exception: Permission refusée d'obtenir la propriété UnnamedClass.classes
Par cette erreur j'ai l'impression qu'il ne comprend pas la première ligne, peut être y a t'il une bibliothèque à indiquer :?: ajouter quelque chose dans le fichier Xul :?:
nmoreau
Salamandre
Messages : 33
Inscription : 27 août 2003, 20:09

Message par nmoreau »

Il faut enregistrer ton application dans le chome et l'appeler avec une url du type chrome://

Tu peux aussi essayer d'ajouter cette ligne :

Code : Tout sélectionner

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
Ca te demandera une confirmation pour utiliser cette application avec certains privilèges
Dernière modification par nmoreau le 06 mai 2004, 08:14, modifié 1 fois.
--
Nicolas Moreau
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

Message par pcdingo »

Merci nmoreau ça marche en ajoutant la ligne que tu m'as indiqué :)
Par contre pour ce qui est d'enregistrer l'application dans le chrome je c pas trop comment on fait? ça serait cool si on pouvait me donner une petite piste.
Pour l'instant j'ai mon fichier Xul et quelques js dans le répertoire /monappli/content/monappli
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message par chBok »

Tu peux faire une inscription "manuelle" dans le répertoire chrome (global ou local), mais ce n'est pas très simple. :?

Ou alors, tu tentes de te faire un petit XPI en créant un install.js adapté. Ce n'est pas si compliqué et ca remplit les fichiers manifest de chrome plus simplement.

J'ai fait quelques traductions sur le sujet à partir du site de xulplanet.
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

Message par pcdingo »

Ok chBok je vois ce qu'il faut faire, par contre j'en déduis donc que pour faire une appli Xul même si elle n'est qu'au stade du développement il faut l'enregistrer soit manuellement soit en faisant un fichier xpi,
dans le cas contraire on as pas accés au XPCOM c'est bien ça :?:

Merci pour toutes ces réponses rapide , peut être que plus tard je ferai une extension pour la communauté :wink:
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message par chBok »

Pour être franc, j'ai essayé manuellement, mais c'est usant quand tu formes mal les balises <rdf>.
J'ai donc récupré une extension qui fonctionne, j'ai pompé le fichier install.js, hacké le tout, et j'ai fait ma propre installation.

En revanche, je te conseille de faire une extension sur un profil tout neuf, et de faire l'installation sur ce profil et non en global... juste au cas où :D
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

Message par pcdingo »

ok merci chBok, sont malins les gros lézards on dirait ;)
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message par chBok »

pcdingo a écrit :ok merci chBok, sont malins les gros lézards on dirait ;)
Pas tant que ca, car après je n'arrive guère à développer un embryon d'extension sans erreurs. Il faut dire aussi que je mets toujours la barre un peu haute, et peu de temps à y consacrer.

Par ex :arrow: comment mettre un évènement sur un objet browser (en gros, un onglet) pour qu'il exécute un script dès que le code html est chargé, et pas forcément ses dépendances comme les images... :roll:
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

Message par pcdingo »

mouais tu débutes aussi donc on dirait? :wink:
Pour ton pb j'ai n'ai pas encore vu ce genre d'objet, je pense à onload pour ton pb mais bon ça doit pas être ça...
J'espère que tu vas trouver ta réponse ;)
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message par chBok »

Je pensais à un addEventListener("onload", ...) mais je n'ai pas encore testé. Si quelqu'un connait la réponse, je prends :wink:
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité