Замена оверлейных иконок символами в отдельном колумне

Хотите предложить идею нового плагина или знаете, что улучшить в существующем? Пишите сюда.
Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Maximus5 » Thu 08 Mar, 2012 22:48

Latest post of the previous page:

В bis я сделал опциональное чтение C0 только для видимых файлов. Это немного облегчает ситуацию. Но да, развить апи или таки сделать "менеджер C0 плагинов" не помешало бы

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Max Rusov » Fri 09 Mar, 2012 08:07

Можно и асинхронно. Читать в отдельном потоке, обновлять по ACTL_Synchro...

User avatar
CyberShadow
Posts: 194
Joined: Sun 15 Apr, 2007 17:12
Been thanked: 1 time
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by CyberShadow » Fri 09 Mar, 2012 08:24

Синхронизация с главным покотом FAR это только часть проблемы. Остаются вопросы:

1) Можно передать новое значение колонки C0 FAR-у, когда оно будет знакомо?

Если нет, значит надо сохранить значение в памяти и попросить FAR спросить новые значения у плагина еще раз. Тогда остаются еще два вопроса:

2) Можно попросить FAR обновить панель, не перечитывая список файлов с диска?
3) Как правильно различить свежий запрос (при переходе в другую папку или нажатии на Ctrl+R) от повторного перезапроса для получения результата вычисленного в фоновом потоке?

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Max Rusov » Fri 09 Mar, 2012 08:57

CyberShadow wrote:2) Можно попросить FAR обновить панель, не перечитывая список файлов с диска?
Теоретически - FCTL_REDRAWPANEL. Если не поможет, то пусть перечитывает (FCTL_UPDATEPANEL), какие проблемы?...
CyberShadow wrote:3) Как правильно различить свежий запрос (при переходе в другую папку или нажатии на Ctrl+R) от повторного перезапроса для получения результата вычисленного в фоновом потоке?
Вызовы FCTL_ скорее всего синхронны, т.ч. простго lock'а должно быть достаточно...

User avatar
CyberShadow
Posts: 194
Joined: Sun 15 Apr, 2007 17:12
Been thanked: 1 time
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by CyberShadow » Fri 09 Mar, 2012 09:09

Max Rusov wrote:Если не поможет, то пусть перечитывает (FCTL_UPDATEPANEL), какие проблемы?...
Допустим что входим в папку с 1000 файлов. Поток считывает по одной иконке и просит FAR обновить панель. Получается что FindFirstFile вызывается 1000 раз, а FindNextFile - около миллиона...

(Можно конечно группировать обновления с таймаутами итд, но это далеко не лучший вариант.)

User avatar
Tim Sobolev
Posts: 705
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Tim Sobolev » Fri 09 Mar, 2012 10:07

CyberShadow wrote:Впрочем, если просто спрашивать у разных VCS статус как было предложено выше, думаю выйдет не лучше, так как у Tortoise* есть доработанные механизмы кеширования (этим занимаются процессы TSVNCache/TGitCache/TortoiseHgOverlayServer).
Тут вот какое дело... Процесс этот у меня отключён (Status cache - Shell), но в проводнике всё работает намного быстрее.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by Maximus5 » Fri 09 Mar, 2012 12:03

Так ведь проводник считывает только видимые иконки :D

User avatar
CyberShadow
Posts: 194
Joined: Sun 15 Apr, 2007 17:12
Been thanked: 1 time
Contact:

Re: Замена оверлейных иконок символами в отдельном колумне

Post by CyberShadow » Fri 09 Mar, 2012 23:56

Tim Sobolev wrote:Тут вот какое дело... Процесс этот у меня отключён (Status cache - Shell), но в проводнике всё работает намного быстрее.
Для иконок файлов этот процесс особо не нужен, а оверлеи над папками отображаются? Без кеширования непонятно как эффективно знать статус всех файлов в папке и всех подпапок.

Post Reply

Return to “Предложения и идеи”