1つのnsIFilePicker.appendFilters()
で複数の拡張子のフィルタを追加する時、定数の小さな順にドロップダウンに登録される。ので、任意の順番にしたい場合は複数のnsIFilePicker.appendFilters()
を並べてやる必要がある。
1つのnsIFilePicker.appendFilters()
var nsIFilePicker = Components.interfaces.nsIFilePicker;
var filePicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
filePicker.init(window, "Select a File", nsIFilePicker.modeOpen);
filePicker.appendFilters(nsIFilePicker.filterHTML | nsIFilePicker.filterText | nsIFilePicker.filterAll);
var res = filePicker.show();
![1つのnsIFilePicker.appendFilters()でフィルタを追加した場合のプレビュー。](/img/blog/single-appendfilters-preview.png)
appendFilters()
の引数の順序には意味がない。
複数のnsIFilePicker.appendFilters()
var nsIFilePicker = Components.interfaces.nsIFilePicker;
var filePicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
filePicker.init(window, "Select a File", nsIFilePicker.modeOpen);
filePicker.appendFilters(nsIFilePicker.filterHTML);
filePicker.appendFilters(nsIFilePicker.filterText);
filePicker.appendFilters(nsIFilePicker.filterAll);
var res = filePicker.show();
![複数のnsIFilePicker.appendFilters()でフィルタを追加した場合のプレビュー。](/img/blog/multiple-appendfilters-preview.png)
それぞれのappendFilters()
の順序に従ってフィルタが追加される。
というメモ。