Изменить момент вызова FreeFindData

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Изменить момент вызова FreeFindData

Post by NightRoman »

Latest post of the previous page:

2848. Кое-что начало работать. Но не совсем. На панели 15 элементов (все "папки" если это важно), 2 из них начинаются с "С".

-- Запускаю поиск по *. GetFindDataW дает Фару 15 файлов, всем записан кастом FreeData. Находятся все 15, показываются в диалоге. Выхожу из диалога -- мое кастом освобождение вызывается 15 раз. ОК.

-- Запускаю поиск по С*. GetFindDataW дает Фару 15 файлов, всем записан кастом FreeData. Находятся 2 (при этом "аллокацию" я все равно делал 15 раз во время GetFindDataW). Закрываю диалог -- кастом освобождение вызывается 2 раза, а не 15, как ожидается.

(Если поспекулировать, то по идее, 13 раз должно было бы вызваться до показа диалога для ненайденных файлов и 2 раза при закрытии диалога для найденных.)
на первый взгляд при поиске как раз — знает. правда часть поиска придётся переделать.
Хорошо бы..
плюс SetDirectoryW не только из поиска вызывается.
Это да. В идеале, если делать, то уж везде. Но без поиска я пока выкручиваюсь хаком, получаю текущий элемент на панели сам, считая, что именно туда и входим, а у текущего элемента получаю кастом дата. Некрасиво, но работает. А с поиском и хак не годится, наверное, там понятие "текущий элемент" и не применимо.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Изменить момент вызова FreeFindData

Post by NightRoman »

Вспомнился еще один случай вызова SetDirectoryW - при переходе на найденный элемент при поиске из диалога найденных файлов. Тут непонятно, как Фар может выкрутиться, по идее надо юзер дата родительского элемента передавать плагину, а не этого. А это уже сложно архитектурно. Но в принципе и этот элемент годится, но плагину надо тогда давать знать при SetDirectoryW, что надо не "войти" в переданный элемент, а установить "папку переданного элемента". Так можно было бы жить, плагин у себя-то знает, что такое папка элемента.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Изменить момент вызова FreeFindData

Post by zg »

NightRoman wrote:-- Запускаю поиск по С*. GetFindDataW дает Фару 15 файлов, всем записан кастом FreeData. Находятся 2 (при этом "аллокацию" я все равно делал 15 раз во время GetFindDataW). Закрываю диалог -- кастом освобождение вызывается 2 раза, а не 15, как ожидается.
2849.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Изменить момент вызова FreeFindData

Post by NightRoman »

2849. Проверил с имеющимся юз-кейсом, работает нормально (освобождаются 13 файлов до диалога + 2 после).
Post Reply

Return to “Разработка плагинов”