ファイル削除チェックが二重に発動しますNo.09562
でるもんたいいじま さん 17/09/23 15:13
 
でるもんた・いいじまです。

以前、マクロでファイルをゴミ箱に捨てる処理について試していたの
ですが(hidesoft.4:08556)、それに関連して、ドラッグ&ドロップで
ファイルをゴミ箱に捨てる細の処理の不具合を今さっき見つけてしまい
ました。

「その他→動作環境」で「上級者向け設定」をONにして、「ファイル→
排他制御2」ページにある「ファイルが削除されていないか時々チェック
する」をONにします。

その状態で、ファイル名のついた秀丸ウィンドウのタイトルバーのアイ
コンをゴミ箱にドラック&ドロップすると、削除チェックが二重に発動
してしまいます。

具体的には私の環境の場合、まず先に「…時々チェックする」のほうの
チェックが発動して、

> 削除されたファイルの確認
>
> xxx.txt は見つかりません。
> 操作を選択してください。
>   ・内容を維持して、(新規)(更新)状態にする(&K)
>   ・内容を消して、(新規)状態にする(&N)
>   ・キャンセル

というウィンドウが出ます。その状態でどれを選んでも、その直後に
ドラッグ&ドロップ時専用の処理(前回のスレッドで教えていただいた
機能です)が発動して、

> 秀丸エディタ
>
> ファイルが削除または移動されました。
> 破棄して終了しますか?
> はい(&Y) いいえ(&N)

というウィンドウが出てしまいます。

これではややこしいので、「…時々チェックする」がONのときにはこの
ふたつの処理が二重には発動しないようにしていただけないでしょうか。

個人的には、「時々チェックする」のスイッチがOFFになっている時には
今まで通りに「削除または移動されました」が出るようにしていただける
とありがたいです。

その条件で色々と考えてみたのですが、実装としては、

  「ドラッグ開始→ドラッグ終了→数秒後にファイルの確認→
  問い合わせ」までの間はプロセス内部のフラグ(新設)を
  立てておき、この間に「…時々チェックする」のほうの
  処理が起動した場合にはノーチェックで返す。
  #これにより、「削除または移動されました」よりも先に
  #「…時々チェックする」のほうのダイアログが出ることが
  #なくなります。
      ↓
  「破棄して終了しますか?」にNOと答えた時点で上記のフラグ
  を下ろし、代わりに、「ファイル名の変更」機能でディスク
  上のファイルはそのままにした場合に準じて、当該ファイルを
  「(新規)(更新)」の状態にする。
  #「新規」フラグが立っていれば、「…時々チェックする」の
  #ほうのチェックは当該ファイルには働かないはずです。

というのが分かりやすいと思います。

このうち、後段は今までの挙動(「新規」フラグを立てないでそのまま
残す)から動作を変更することになりますが、これはあえて変更した
ほうが、「ファイル名の変更」やその後の判断などとも一貫性が出て
分かりやすくなると思います。

もしどうしても自動起動マクロ等との互換性が気になるようなら、その
場合は環境設定に設定項目を追加する(ページは「排他制御2」でしょう
か?)ということでお願いします。

☆ ☆ ☆

それと、「時々チェックする」のほうのダイアログを今回はじめて目に
したのですが、使い勝手が分かりにくいと感じました。

それについて2点ほど。

  (1)こちらにも「破棄して終了する」という選択肢があった
  ほうがいいと思います。

  (2)このダイアログの「キャンセル」という選択肢ですが、
  実際の挙動を考えると「そのまま編集を続行」(または
  「無視して編集を続行」)という表現のほうが分かりやすい
  と思います。

☆ ☆ ☆

以上、よろしくご検討のほどお願いします。

[ ]
RE:09562 ファイル削除チェックが二重に発No.09563
秀丸担当 さん 17/09/25 09:49
 

バグ情報ありがとうございます。
「ファイルが削除されていないか時々チェックする」は昔は無くて後からできた
オプションで、確かにチェックが二重になってしまっていました。
「ファイルが削除されていないか時々チェックする」が働くときはドラッグ&ド
ロップのチェックは働かせぜ二重とならないように修正させていただきます。

[ ]