MVV wrote: |
Кэширование в контентном плагине - большая проблема. К сожалению, ТК получает поля не по файлам, получая последовательно все поля для каждого отдельно взятого файла, а по колонкам, запрашивая вначале первое поле для каждого файла, затем второе и т.п. Так что или без кэширования, или с кэшированием всех полей для всей папки. Кстати, интересно, предлагали ли Гислеру запрашивать поля по строкам (файлам), а не по столбцам.
А на порядок сортировки файлов в панели лучше вообще не смотреть. |
Code: |
|
Code: |
avifile.dll 1 2 3 4 5 |
Code: |
avifile.dll 842 843 807 844 845 |
Code: |
avifile.dll 1 63 2 64 65 |
Quote: |
Если включить сортировку по полю плагина, то ТК вначале запросит это поле для всех файлов, а затем последовательно запросит остальные поля в обычном режиме. |
Quote: |
[...]
> If sorting order is by name or ext, ContentGetValueW return: > 1. File1 FieldIndex (my fieldindex) = 0; > 2. File1 FieldIndex (my fieldindex) = 1; > 3. File2 FieldIndex (my fieldindex) = 0; > 4. File2 FieldIndex (my fieldindex) = 1; > Its work nice so I can cach last file in buffer. |
Quote: |
> But if click on my column (any), to sort it, and then enter to folder again, ContentGetValueW return:
> 1. File1 FieldIndex (my fieldindex) = 0; > 2. File2 FieldIndex (my fieldindex) = 0; > 3. File1 FieldIndex (my fieldindex) = 1; > 4. File2 FieldIndex (my fieldindex) = 1; |
MVV wrote: |
Ну вообще да, смысл есть, поля ведь запрашиваются в фоновом потоке, а сортировка должна быть выполнена в первую очередь.
Кэшировать по идее можно все равно - ну будет в 2 раза медленнее с учетом того, что вначале сортировочные колонки будут получаться, а потом остальные... Или сам храни в мэпе данные для всего каталога, и выбирай нужное... |
Code: |
if (Flags&CONTENT_DELAYIFSLOW) return ft_delayed; |
Code: |
int __stdcall ContentGetValueW(WCHAR* FileName, int FieldIndex, int UnitIndex, void* FieldValue, int MaxLen, int Flags) { |
Quote: |
А ты не забывай про фоновый подсчет содержимого поля - ты сам должен сказать ТК, что поле можно подсчитать в фоне: |
output generated using printer-friendly topic mod. All times are GMT + 4 Hours