ファイル削除後のフォーカスとプレビューNo.07912
ASH_LYNX さん 19/05/14 16:10
 
表示 > サイドバー > プレビューで,JPEG画像をプレビューさせながら「不要ファ
イルはdeleteキーで削除」という使い方をしています。

複数ファイルがあるフォルダ内で,全ファイルではない1つ若しくは複数ファイルを
選択して削除した場合,残ったファイルの1つに破線枠のフォーカスが当たります。

しかし,選択(?)されているわけではないので,プレビューが元画像のままです。


ファイル削除後,「破線枠フォーカスが当たっているファイルを選択状態」にして,
かつ「プレビューも更新」できないでしょうか?

現在は,削除後「スペースを押す」もしくは「クリック」してプレビューを更新させ
ています。

[ ]
RE:07912 ファイル削除後のフォーカスとプNo.07913
秀丸担当 さん 19/05/14 17:17
 

プレビューは、確かに削除後の選択が無くなった状態でも残っています。
普通に選択を解除しただけでも残ってしまっています。
ファイル一覧でキー操作するごとにプレビューが完了するのを待つと、キー操作がそ
の都度固まったりするための都合もあるのですが、本来であれば選択が無くなれば、
プレビューも無くなるべきだと思います。
選択が無い場合はプレビューも無くなるように検討したいと思います。

削除後に選択した状態になるというのはまた別の話になりますが、やるとしたら、そ
ういうオプションの追加ということになると思います。
そういうオプションもできたらいいということで参考にさせていただきます。

[ ]
RE:07913 ファイル削除後のフォーカスとプNo.07914
ASH_LYNX さん 19/05/14 19:47
 
ありがとうございます。

私の使い方がファイラーとしての機能だけでなく「画像ビューアとしても」なのであ
って,プレビュー需要が少ないのかもしれません。

しかしPCが古く(2011年夏モデル HP Dv7-6100tx Core i7-2820QM 2.3Ghz Windows7
64bit SSD+HDD)」でも,メモリを16GBにしているおかげなのか,カーソルキーでフ
ァイルの選択状態を次々に変えてもプレビューはステレスなく追従します。
(画像ファイルは,1〜2MB)


選択が無い場合にプレビューが無くなるのは,実現すれば素晴らしいことです。

しかし,ファイル削除後,せっかく破線枠でフォーカスが当たっているのに,そのフ
ァイルが「選択状態ではない」のがもったいないというか…。



事例としては「ファイル削除後のプレビュー更新」でしたが,「フォルダペインでフ
ォルダを選ぶ」>Tabキーで飛ばして「ファイル等一覧ペインにFocusを移す」と破線
枠になりますね。

これを「一番上のファイル(やフォルダ)」に,フォーカスだけでなく「選択された
状態」まで持っていって欲しいという感じでしょうか…。



と,ここまで書いておいてマクロで「deleteキーでファイルが削除されたあと,SPAC
Eキーを押す」とすれば良いのか!と気づきましたが,それこそSPACEキーを押すタイ
ミングが判らなかった…。

削除するファイル数によって処理時間が前後するでしょうし,「ファイル削除完了を
何らかの方法で感知してからSPACEを送る」というマクロは書けないものか…。


すみません。
環境にもよるのでしょうが,相当昔のPCでも「プレビューはあんまりストレスない」
ということが言いたいのでした。


ぜひぜひ,ご検討をお願いいたします。

[ ]
RE:07914 ファイル削除後のフォーカスとプNo.07915
さん 19/05/14 19:57
 
 こんにちは。
 1ユーザーですが、横からすみません。

>事例としては「ファイル削除後のプレビュー更新」でしたが,「フォルダペインで
>フォルダを選ぶ」>Tabキーで飛ばして「ファイル等一覧ペインにFocusを移す」と
>破線枠になりますね。
>
>これを「一番上のファイル(やフォルダ)」に,フォーカスだけでなく「選択され
>た状態」まで持っていって欲しいという感じでしょうか…。

 これでしたら、「ツール」→「オプション」を開いて、「表示」タブにある「デザ
イン/操作」ボタンを押して出てくる画面の「ファイル一覧3」にある「初期状態で先
頭項目を選択」にチェックをつけることで実現可能ではないでしょうか。
 オプション画面の「上級者向け設定」がオンになっている場合は、ツリービューの
「デザイン/操作」を展開して、その中の「ファイル一覧3」の中に「初期状態で先頭
項目を選択」があります。
 ご希望の動作と違うようでしたら申し訳ありません。

 参考になれば幸いです。

 それでは。

[ ]
RE:07915 ファイル削除後のフォーカスとプNo.07916
ASH_LYNX さん 19/05/14 20:04
 
コメントありがとうございます。

フォルダ切替時はこれで行けますね!


ファイルを削除した場合でも,ファイル一覧の再描画が終わったタイミングで,これ
と同じ動作になれば!と思いました。

[ ]
RE:07916 ファイル削除後のフォーカスとプNo.07917
ASH_LYNX さん 19/05/14 20:37
 
>ファイルを削除した場合でも,ファイル一覧の再描画が終わったタイミングで,こ
>れと同じ動作になれば!と思いました。

正確にはこのオプションは「初期状態」で「先頭項目を選択」なのですね。

ファイル削除の場合は,削除されたファイルの次の行のファイル(削除しようと思っ
て選択状態にあったその次のファイル)に破線枠が行きますので「同じ動作」はちょ
っと表現が違いました。


「最新の情報に更新時にフォーカス位置を復元」に近いかもしれません。

「ファイル削除」すると,「ファイル一覧ペインが再描画」されるので「F5で更新」
したような感じであるが,選択状態であったファイルは既に無いので,新しくフォー
カスが当たった「次のファイル」が選択状態になる。


色々操作してみましたが「最新の情報に更新時にフォーカス位置を復元」は1ファイ
ル選択状態飲みですね。

複数ファイル「選択」時でも,もちろんフォーカスが当たっているのは1ファイルの
みなのですが,この場合はフォーカスが変わって一番上のファイルが「選択」状態に
なります。

[ ]
RE:07917 ファイル削除後のフォーカスとプNo.07918
さん 19/05/14 21:38
 
 こんばんは。

 簡単ですが、スクリプトを作ってみました。
 ただし、現状、ファイルはゴミ箱に入らずに、完全に削除されてしまうため、間違
ったファイルを削除すると、基本的に復旧できません。
 そのため、必ず削除対象のファイルが間違っていないかどうか事前に確認したうえ
で、削除を行ってください。
 個人的には事前にバックアップを取っておくことをお勧めします。

 下記のスクリプトを適当なファイル名で保存して、「ツール」→「ツールの整理」
から登録し、削除したいファイルを選んだ状態で、「ツール」メニューから実行して
ください。
 なお、スクリプトのファイルはJScriptで記述しているので、拡張子を「js」、文
字コードを「Shift-JIS」として保存してください。

----- スクリプト -----
// 秀丸ファイラーClassic用スクリプト
// 機能:
// ファイルの削除を行って、その後にファイルを選択します。

// 変数定義
var MB_OK = 0;
var MB_OKCANCEL = 1;
var MB_STOPRETRYIGNORE = 2;
var MB_YESNOCANCEL = 3;
var MB_YESNO = 4;
var MB_RETRYCANCEL = 5;
var MB_ICONSTOP = 16;
var MB_ICONQUESTION = 32;
var MB_ICONEXCLAMATION = 48;
var MB_ICONINFORMATION = 64;

strWScriptType = typeof( WScript );
if (strWScriptType.toLowerCase() == "object"){
 strMsg = "このスクリプトは秀丸ファイラーClassic専用です。\n" +
 "「ブックマークの整理」または「ツールの整理」で「追加」して、パスの右側の
「>>」ボタンの「スクリプトの参照」より、このファイルを指定して登録してくださ
い。\n"+
 "(パスの先頭に「script:」と書かれたパスとして登録)";
 dialog(strMsg, MB_ICONEXCLAMATION, "エラー");
 WScript.Quit();
}

curdir = getDirectory();
if (curdir == ""){
 EndMacro();
}
iItem=GetNextItem(-1,2);
if (iItem < 0){
 EndMacro();
}
s = [];
p = [];
firstItem = iItem;
while( iItem >= 0 ) {
 s.push(GetItemPath(iItem));
 p.push(GetItemText(iItem));
 lastItem = iItem;
 iItem=GetNextItem(iItem,2);
}
len = s.length;
if (len == 1){
 title = "ファイルの削除";
 body = "「"+p[0]+"」を削除してもよろしいですか?";
}else{
 title = "複数ファイルの削除";
 body = "これらの "+len+" 個のファイルを削除してもよろしいですか?";
}
result = dialog(body, MB_ICONQUESTION  | MB_YESNO, title);
if (result != 6){
 EndMacro();
}
 fso = new ActiveXObject("Scripting.FileSystemObject");
for (var i = 0, len = s.length; i < len; ++i){
 if (GetPathType(s[i]) == 1){
  fso.DeleteFile(s[i], true);
 }else if (GetPathType(s[i]) == 2){
  fso.DeleteFolder(s[i], true);
 }
}
Refresh(0);
if (GetItemCount() == 0){
 EndMacro();
}
if (firstItem + 1 > GetItemCount()){
 firstItem = GetItemCount() - 1;
}
SelectItem(firstItem);

function GetPathType(path){
 fso = new ActiveXObject("Scripting.FileSystemObject");
 if (fso.FileExists(path)){
  return 1;
 }else if (fso.FolderExists(path)){
  return 2;
 }else{
  return 0;
}
 fso = null;
}

function dialog(body, flg, title){
 var WshShell = new ActiveXObject("WScript.Shell");
 var stat = WshShell.Popup(body, 0, title, flg);
 return stat;
}
----- スクリプトここまで -----

 以上、参考になれば幸いです。


[ ]
RE:07918 ファイル削除後のフォーカスとプNo.07919
ASH_LYNX さん 19/05/17 13:33
 
ありがとうございます。

ファイルはクラウドに同期するようにしていて,削除されたファイルも一定期間は残
るようにしているので問題ありません。

秀丸ファイラーClassicが対応していただけるまで,のんびり待ちます。
(^^)

[ ]