ログUIの変更
https://twitter.com/sempreff/status/1274238623215489025
現在このような現象がありますが、これが改善されることを期待します。
確か OPENFILENAME.Flags に OFN_OVERWRITEPROMPT を入れ、OPENFILENAME.lpTemplateName を指定して GetSaveFileName() を呼んでいたと思います。
呼ぶ前に Append かどうかが分かればいいのですが、Append を選択するのは lpTemplateName のダイアログの中になるのでそれができません。
Append でないときに上書き確認を出さずに上書きされてしまうのと、Append なので必要のないアラートが出て鬱陶しいのとでは、前者の方が危険なので後者には我慢してもらっているかたちになります。
ところで、ダイアログをオリジナルで作成すると、それぞれの OS バージョンでの GetSaveFileName() のような外観?になるのでしょうか?
ログ、ファイル送信、転送(xmodemなど)、マクロ、状態を表示するダイアログが 巧みに実装されていて、各々に分離して変更するのが難しい感じです。
まずはログのUI部分を分離して ある程度ダイアログを実装したのでコミットしました(r8852)。 ファイル名のUnicode化、ログの文字コードの変更はもう少しかかりそうです。
ログファイルの存在チェック、文字コード(BOM)のチェックは入れてみましたが、 ファイル名を編集するたびにチェックが走るので USBなど遅いファイルシステム上ではイマイチかも知れません。
ファイル選択ダイアログは、OSのバージョンによって異なることになります。 Windows10ではファイル選択ダイアログはエクスプローラーに似ていて、 2ペイン、左にフォルダツリー、右にファイル一覧となるはずです。
https://ci.appveyor.com/project/matsuo/trunk/build/job/esm1rl71n0j6wkpn/artifacts
従来、1つの出力バッファを、マクロへの受信文字送信とログファイル書き込みで共有していました。 このため文字コードを各々で変更することができませんでした。
今回バッファを分離したので、ログの文字コードを変更できるようになりました。
それと、ログダイアログの動作を調整しました。 従来Appendはチェックボックスでした。 今回は、ラジオボタンにして、 新規or上書き/Append/がわかりやすいようにしてみました。
r8856 ... r8863
https://ci.appveyor.com/project/matsuo/trunk/build/job/361f6g7k9gwkv2qk/artifacts
ログ部分に手を入れやすくするためファイルを分離しようとしたのですが きれいに分離するには、ファイル送信、ファイル転送、各々のダイアログなど修正が必要になりそうです。 どうしようか考え中です。
ログは分離しました。(r8894)
文字コードUTF-8,UTF-16で保存できるようになりました。
ファイル選択ダイアログのカスタマイズをやめてダイアログを追加します。
ファイル選択ダイアログをカスタマイズすると 古いスタイルのダイアログになります。 UIの互換性を保つためだと思われます。
ダイアログのイメージは次のようにしようと考えています。