1 // @todo [6] [pref] Better strategy for getting the default editor: EDITOR env variable or view_source.editor.path
2 // @todo [8] [pref] Option to make the textarea uneditable when using editor.
5 * Open a filepicker to select the value of the editor.
7 function pref_editor_select() {
8 var locale = document.getElementById("strings");
10 var pref_editor = document.getElementById('pref_editor');
11 var nsIFilePicker = Components.interfaces.nsIFilePicker;
13 var fp = Components.classes["@mozilla.org/filepicker;1"].
14 createInstance(nsIFilePicker);
16 locale.getString('picker.window.title'),
17 nsIFilePicker.modeOpen);
18 fp.appendFilters(nsIFilePicker.filterApps);
20 var initdir = Components.classes["@mozilla.org/file/local;1"].
21 createInstance(Components.interfaces.nsILocalFile);
23 initdir.initWithPath(pref_editor.value);
24 initdir = initdir.parent;
25 if (initdir.exists() && initdir.isDirectory()) {
26 fp.displayDirectory = initdir;
29 // Ignore error, the pref may not have been set or who knows.
35 if (rv == nsIFilePicker.returnOK) {
37 pref_editor.value = file.path;
38 editor = document.getElementById('editor');
39 editor.style.color = 'inherit';
40 editor.style.backgroundColor = 'inherit';
44 function setHelp(text) {
45 var help = document.getElementById('help');
46 while (help.firstChild) {
47 help.removeChild(help.firstChild);
49 var textnode = document.createTextNode(text);
50 help.appendChild(textnode);
53 function pref_onload() {
54 var locale = document.getElementById("strings");
55 document.getElementById('browse').focus();
60 if (window['arguments'] && window['arguments'][0] && window['arguments'][0] == 'badeditor') {
61 editor = document.getElementById('editor');
62 editor.style.color = 'black';
63 editor.style.backgroundColor = '#fb4';
64 box = document.getElementById('help');
66 while (box.firstChild) {
67 box.removeChild(box.firstChild);
69 desc = document.createElement('description');
70 textnode = document.createTextNode(locale.getFormattedString('problem.editor', [editor.value]));
71 desc.appendChild(textnode);
72 desc.style.maxWidth = '18em';
73 box.appendChild(desc);
75 desc = document.createElement('description');
76 textnode = document.createTextNode(locale.getString('mac.hint'));
77 desc.appendChild(textnode);
78 desc.style.maxWidth = '18em';
79 box.appendChild(desc);