Page 1 of 1

Shift-F6 в панели плагина

Posted: Sat 28 Jul, 2018 20:57
by Shmuel
Случайно нажал Shift-F6 в панели плагина Polygon (при этом в панели отображалась таблица с большим количеством записей).
Увидел, что Фар перечитывает панель, аналогично Ctrl-R.
В коде плагина это кнопкосочетание не используется. Макросы и прочие плагины отключены.
В справке Фара ничего об этом не нашёл. Старые билды Фар (вплоть до 4430) ведут себя так же.
???

Shift-F6 в панели плагина

Posted: Sun 05 Aug, 2018 16:31
by DrKnS
Shmuel wrote:
Sat 28 Jul, 2018 20:57
???
Так было еще у Рошала - панель обновляется независимо от того, что вернул плагин.
Починить можно (не проверял).

Shift-F6 в панели плагина

Posted: Sun 05 Aug, 2018 17:33
by Shmuel
DrKnS wrote:
Sun 05 Aug, 2018 16:31
панель обновляется независимо от того, что вернул плагин.
Это точно, недавно заметил на F8 - плагин возвращает false из DeleteFilesW, но Фар перечитывает панель. Тут, конечно, API плагинов у нас недоработан, потому что не разделяются варианты (1) полной неудачи, (2) частичной неудачи - удалились не все помеченные файлы и (3) отмены операции пользователем.
DrKnS wrote:
Sun 05 Aug, 2018 16:31
Починить можно ... (не проверял).
Я уже побаиваюсь инициировать что-либо :)
Пока для F8 выход (для ShiftF6 тоже подойдёт) - перехватываю нажатие клавиши, вывожу запрос, в случае отмены пользователем говорю Фару, что клавиша обработана, и таким образом дело не доходит до DeleteFilesW.

Shift-F6 в панели плагина

Posted: Sun 05 Aug, 2018 18:25
by DrKnS
Shmuel wrote:
Sun 05 Aug, 2018 17:33
не разделяются варианты (1) полной неудачи, (2) частичной неудачи - удалились не все помеченные файлы и (3) отмены операции пользователем
А разве отмену пользователем нельзя считать частичной неудачей? Посткондишн как бы тот же - "удалились не все помеченные файлы".

Shift-F6 в панели плагина

Posted: Sun 05 Aug, 2018 18:48
by Shmuel
Отмена, на мой взгляд, это полная неудача - то есть не удалился ни один файл. В случае полной неудачи перечитывание панели - лишнее. Перечитывать панель следует при (1) удаче и (2) частичной неудаче.

Shift-F6 в панели плагина

Posted: Sun 05 Aug, 2018 22:45
by DrKnS
Shmuel wrote:
Sun 05 Aug, 2018 18:48
Отмена, на мой взгляд, это полная неудача - то есть не удалился ни один файл
А, это ситуация "плагин показал диалог [точно удалять? Да/Нет], пользователь сказал нет"? Тогда да.
Я имел в виду несколько иное - "пользователь согласился, но уже в процессе передумал и нажал Esc".

Shift-F6 в панели плагина

Posted: Mon 06 Aug, 2018 09:58
by Shmuel
DrKnS wrote:
Sun 05 Aug, 2018 16:31
панель обновляется независимо от того, что вернул плагин
В случае с Shift-F6 плагин не может ничего вернуть, поскольку не экспортирует функцию GetFilesW. В этом случае все обновления панели по F5, Shift-F5, F6, Shift-F6 однозначно лишние.

Shift-F6 в панели плагина

Posted: Mon 06 Aug, 2018 13:16
by DrKnS
Shmuel wrote:
Mon 06 Aug, 2018 09:58
В случае с Shift-F6 плагин не может ничего вернуть, поскольку не экспортирует функцию GetFilesW
В этом случае -1 возвращает заглушка внутри Far, да.