Страница 26 из 68

Добавлено: Ср дек 29, 2010 08:19
Rustn
Хотел поинтересоваться, почему вижу в дебаге 10 строк - [Total7zip] ContentGetSupportedField.
Может стоит уже задуматься об оптимизации кода?

Добавлено: Ср дек 29, 2010 09:36
Total7zip
Rustn вопрос хороший, только задать его надо автору тотал коммандера. то что вы видите - это результат того, что зачем-то список полей получается несколько раз.

я вам даже больше скажу - когда коммандер начинает спрашивать содержимое полей, он делает это так - говорит имя файла и номер колонки. у него нет понятия о начале и конце операции работы с одним файлом. если я возвращаю на каждый файл значения для 4х колонок, то следуя логике коммандера я должен 4 раза открыть каждый файл. конечно это неэффективный бред, и я вставил кэширование на своей стороне.

если не верите - http://ghisler.fileburst.com/content/wdx_id3_src.zip
это плагин написанный угадайте кем. исходники. с оффициальной странички.
так вот этот "Very small and fast plugin" при получении каждого поля делает следующее:

Код: Выделить всё

int __stdcall ContentGetValue(char* FileName,int FieldIndex,int UnitIndex,void* FieldValue,int maxlen,int flags)
{
......
	
	f=CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,
		OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
	if (f==INVALID_HANDLE_VALUE)
		return ft_fileerror;

	SetFilePointer(f,-128,NULL,FILE_END);
	memset(&id3buf,0,sizeof(id3buf));
	if (ReadFile(f,&id3buf,128,&bytesread,NULL) && bytesread==128) {
		CloseHandle(f);
....
то есть, для того что бы заполнить 10 колонок ghisler(Author) один и тот же mp3 файл откроет и прочитает 10 раз, и назовет это "Very small and fast".

знаете, есть такой плагин - DirSizeCalc, он работает как раз как контент плагин, и страшно тормозит.
а есть другой - VisualDirSize - он работает как плагин листера и показывает размеры папок в несколько раз быстрее.

Добавлено: Ср дек 29, 2010 09:40
Loopback
Rustn
Тут ничего не оптимизируешь, это особенности реализации WDX API тотала. Для получения полей он несколько раз вызывает функцию ContentGetSupportedField, которая в каждый вызов возвращает одно поле.

То же самое он проделывает и для получения информации по полям. Для файлов с достаточно долгим временем получения информации без кэша никак не обойтись.

Add: Немного опоздал :)

Добавлено: Ср дек 29, 2010 09:56
Rustn
Спасибо за разъяснения...
Что ж, ничто не совершенно в нашем мире :)

Добавлено: Чт дек 30, 2010 00:28
Serge Yolkin
Total7zip
Не хочу мешать активной работе над плагином, но раз уж он использует 7zg, нельзя ли, по наличию желания/времени, написать к нему ланчер, чтобы в реестр не лазил? Чтобы его и без плагина использовать. В идеале - возможность хранить несколько профилей, а не только последний.

Добавлено: Чт дек 30, 2010 14:13
Total7zip
Total7zip версия 0.7.0.1

закончен Contetn плагин, жду отзывов.
RC на www.totalcmd.net

http://narod.ru/disk/2455565001/wcx_Tot ... 1.rar.html

Добавлено: Чт дек 30, 2010 16:50
Rustn
Мда, работает, info оооочень много всего, нужного и не нужного.
Ну в принципе работает! Можно выпускать :)

Добавлено: Чт дек 30, 2010 17:18
mrmerak
Total7zip
Отлично! Особенно files\folders - это пять!

И сразу же реквест. Добавить wlx-интерфейс. Это не шутка :) Делать он должен только одно - те же колонки что и у wdx показывать с столбик.

Это я возвращаюсь к теме замены плагинов ArchView\FileInfo. Очень удобно было быстро глянуть инфу для файла под курсором.

Добавлено: Чт дек 30, 2010 17:19
Total7zip
согласен.
не сегодня!

Добавлено: Чт дек 30, 2010 17:33
mrmerak
Total7zip
Бог мой, канечно нет... можешь даже в след. году ;)

немного размышлений по-поводу каким должен быть wlx (пиши в todo ;) ):
1. Настраиваемый шрифт\размер\цвет (круто это сделано в TCTorrent). Вопрос где хранить для этого настройки... по-моему хороший вариант, все в том же Total7zip.xml, разделить типа такого:

Код: Выделить всё

<settingsWCX>
  <gui lang="" />
  ...
</settings>

<settingsWLX>
  ...
</settings>
2. РУС\ENG фейсы... по идеи можно брать с Lang\ru.txt, но тогда исходя из предыдущего поста должны быть каки-то общие параметры, как <gui lang="" />

Кстати, почему у меня установлено <gui lang="ru" /> но колонки в wdx на инглише?

Добавлено: Чт дек 30, 2010 17:36
Total7zip
колонки wdx не поддерживают Unicode и их надо локализовать через какие-то lng файлы.
я пока не стал вникать в это.

Добавлено: Чт дек 30, 2010 17:49
mrmerak
Total7zip
тогда для плага нужно создать свои языковые файлы - общие для wdx\wlx.

И кста я знаю когда можно назначить версию 1.0 - после wlx и gui-настроек :roll:

Добавлено: Чт дек 30, 2010 18:49
Total7zip
0.7.0.2

http://narod.ru/disk/2463569001/wcx_Tot ... 2.rar.html

фикс - в 0.7.0.1 было зависание при обновлении архива, если в корне была только папка...

Добавлено: Пт дек 31, 2010 16:30
Total7zip
Total7zip v0.7.0.3 релиз.
http://wincmd.ru/plugring/Total7zip.html
С Новым Годом!

Добавлено: Пт дек 31, 2010 17:15
Flasher
Спасибо за релиз! Всё-таки лучше ссылку на русфоруме давать не на английское зеркало, а на наш сайт.
Files два раза в колонках встречается.
ИМХО, колонки, которые есть в shelldetails, здесь не нужны.
Ждём подхвата lng.