2012年5月18日金曜日

InDesign CS6で、file.openDlgの動作がおかしい?

ブログに公開した方が良いと思うのでこちらに。
InDesign CS6 体験版にて、会社の製品のスクリプトの検証をしていて、おかしな動作を見つけた。
テスト環境:Mac OS X 10.6.8, InDesign CS6 バージョン8.0 (体験版)
var indFile = app.activeDocument.fullName;
var selectFile = indFile.openDlg('テキストファイルを選択');
というスクリプトを書いて、スクリプトパネルから実行する。
すると、あれれれ?
拡張子が.inddファイルしか選択できない。テキストを選択させたいんですが……。

選択元になってるファイルの拡張子が影響するのかな?と思い
var myFile = new File('/works/script_test/tmp.txt');
var selectFile = myFile.openDlg('テキストファイルを選択');
テキストファイルだけが選択される。ふむ。

デフォルトで変なフィルタがかかっているなら、フィルタを設定し直せば直るんじゃないかと思い、
var indFile = app.activeDocument.fullName;
var selectFile = indFile.openDlg(
    'テキストファイルを選択',
    function(f){/\.txt$/i.test(f.name)}
);
なにも選択できなくなってしまった!

ちなみに、Windows版ではこの問題が発生しなかった。
また、File.openDialogを使った場所にも、問題はなかった。

バグ報告はしたけれど…直るのかなこれ。