[Util] BarEditor - Редактирование *.bar файлов

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Такс, настроение у меня что ни есть садомазохическое - сижу разбираюсь с em_ командами.
Вопрос: Чем отличаються команды хранимые в usercmd.ini от wincmd_rus.ini (локализация флинта)?
Только местоположением?
Может ли файл wincmd_rus.ini находиться не в каталоге с локализацией, и если может, то как его тогда искать?
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

VadiMGP Нашёл подходящий модуль для работы с icl, обдумываю тему кеша.
Я считаю что надо реализовать 2 метода кеша:
1. Тупо перенаправить в icl ссылки.
2. Добавить в bar дополнительную запись с ссылкой на icl.
Т.е. именно кеш, без потери ссылок на файлы с иконками.

Первый метод я сделаю в любом случае, а второй нужен только в связке с Тсменю.
Что скажешь?
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

Так, сначала, про дефолтную библиотеку.
B4rr4cuda писал(а):достаточно ввести имя файла с иконками,
Так я и не хочу вводить его руками! Что, такая проблема вместо "wcmicons.dll" взять имя из ini файла. В общем, смотри сам. Понятно, что фича их разряда "кофе в постель", так что я особо биться не стану.
B4rr4cuda писал(а):Чем отличаються команды хранимые в usercmd.ini от wincmd_rus.ini
А что такое wincmd_rus.ini? Специально скачал флинтовскую локализацию - нету там такого. :shock:
B4rr4cuda писал(а):Нашёл подходящий модуль для работы с icl,
Какой? Дельфийский? Поделись ссылкой, плиз. Если его можно использовать в С++, возможно я тоже им воспользуюсь.
B4rr4cuda писал(а):2. Добавить в bar дополнительную запись с ссылкой на icl.
Ты имеешь в виду добавить в .bar файл секцию [Cache] и пачку строк типа CacheIndexNN=XX? Мысль хорошая.
Аватара пользователя
Bomm
Сообщения: 245
Зарегистрирован: Сб янв 15, 2005 14:39
Откуда: Москва

Сообщение Bomm »

Вопрос: Чем отличаються команды хранимые в usercmd.ini от wincmd_rus.ini (локализация флинта)?
Только местоположением?
Может ли файл wincmd_rus.ini находиться не в каталоге с локализацией, и если может, то как его тогда искать?
Я думаю, ничем не отличаются, кроме того, что из usercmd.ini выполняются для всех пользователей, а из wcmd_rus.ini (у меня так!) только для этого языка
Поэтому этот файл должен находиться в каталоге Language\, также как файлы Wcmd_rus.lng, Wcmd_rus.inc, Wcmd_rus.mnu и Wcmd_rus.сhm
Юрий Бомштейн
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

VadiMGP
Что, такая проблема вместо "wcmicons.dll" взять имя из ini файла
Да втом то и фишка, что берёться номер иконки в wcmicons.dll из wcmicons.inc. Кто заменяет wcmicons.dll, получает собственно, уже другие иконки. Заменил номера в wcmicons.inc - получаешь ожидаемые результаты и в баредиторе и в тоталовском настройщике.
А подвязка дефолтной библиотеки... Разве что кнопочку дополнительную. Кликнул - загрузилась дефолтная.
A что такое wincmd_rus.ini? Специально скачал флинтовскую локализацию - нету там такого.
А ты в диалоге настройки в команд броузере в разделе wincmd_rus.ini создай пункт ЕМ_.
В каталоге лангуадже создаёться этот файл.
Какой? Дельфийский? Поделись ссылкой, плиз. Если его можно использовать в С++, возможно я тоже им воспользуюсь.
Дельфийский вестимо. IconLib Чёткая штука - и иконки качественно держит (причём все размеры и форматы) и с иконлибами работает на уровне...
Ты имеешь в виду добавить в .bar файл секцию [Cache] и пачку строк типа CacheIndexNN=XX? Мысль хорошая.
Можно без секции, просто для каждой кнопки добавлять строчку типа
Cache1=бла-бла-бла
Я проверил, тотал её даже не замечает, так что урону никакого,
a польза огромная и визуально никакой разницы для пользователя.

Bomm
Я думаю, ничем не отличаются, кроме того, что из usercmd.ini выполняются для всех пользователей, а из wcmd_rus.ini (у меня так!) только для этого языка
Т.е. меня не касаеться как пользователь их использует - моё дело записать их в выбраный раздел? Это меня радует!
Поэтому этот файл должен находиться в каталоге Language\, также как файлы Wcmd_rus.lng, Wcmd_rus.inc, Wcmd_rus.mnu и Wcmd_rus.сhm
А это вообще отлично. Путь к локализованному инку такой же - так что никаких дополнительных опций в инишник прописывать не надо.
Спасибо за разъяснения.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

B4rr4cuda писал(а):Разве что кнопочку дополнительную. Кликнул - загрузилась дефолтная.
Ну, хоть так. На безрыбье...
B4rr4cuda писал(а):А ты в диалоге настройки в команд броузере в разделе wincmd_rus.ini создай пункт ЕМ_.
Гхм... Нету у меня раздела wincmd_rus.ini. Ну и пес с ним. Ты и так разобрался.
B4rr4cuda писал(а):Можно без секции, просто для каждой кнопки добавлять строчку
В принципе можно, но я, по идеологическим соображениям, все ж таки, советовал бы сделать это отдельной секцией. Разделить сферы влияния. Ты не вмешиваешься в то, что читает (и пишет!) ТС, а он ни сном ни духом не ведает про твою секцию.
Юзер ведь может .bar отредактировать и с помощью ТС . И даже Notepad-ом.

Кстати, надо решить, что делать со ссылкой в кэш при copy-paste. Игнорировать?
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

В принципе можно, но я, по идеологическим соображениям, все ж таки, советовал бы сделать это отдельной секцией. Разделить сферы влияния. Ты не вмешиваешься в то, что читает (и пишет!) ТС, а он ни сном ни духом не ведает про твою секцию.
Да ты прав. Лучше писать в секцию "кеш".
Свою секцию тотал переписывает каждый раз. Я не обратил на это внимание когда проверял. А вот чужую секцию не трогает.

Кстати, надо решить, что делать со ссылкой в кэш при copy-paste. Игнорировать?
А зачем игнорировать, добавлю в буф 9-ю строку. Тотал обрабатывает первые 8, баредитор будет обрабатывать 9.
Обратная совместимость сохраняеться.
Вот гляди:

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

TOTALCMD#BAR#DATA
cm_SrcExecs

wcmicons.dll,12
Активная: только программы

0
-1
This is sample path for cache!\asd\asda\asdas\dasdas\
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

B4rr4cuda писал(а):Обратная совместимость сохраняеться.
Тогда, все тип-топ.

Когда будем определяться с интерфейсом между нами? Предлагаю:
- все ICL называть по имени соответствующего .bar файла, писать его в то же место где лежит сам .bar файл.
- секцию назвать [AlternativeCache]
- для каждой кнопки (от 1 до buttoncount) писать строку CacheIndexNN=xx, где NN - номер кнопки, а xx - индекс иконки в ICL.
- если решишь давать юзеру возможность сохранять кэш в произвольном месте, то в секции [AlternativeCache] добавить строку CacheFile=.

Что-то забыл?
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Насчёт произвольного местоположения кеша - а зачем нагружать юзверя лишними подробностями? Пусть кеш лежит рядом с баром.
А так, всё принято.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

B4rr4cuda
Ты мог бы дать мне какой-нибудь ICL файл, созданный через BarEditor? Просто, чтобы убедиться, что нет никакой несовместимости у наших ICL-компонентов и иконки у меня нормально читаются.
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Я ещё только в середине пути. Как закончу кеширование выложу ицлку.
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Хотя, чего это я туплю? Вот ицлка созданая с помощью этого модуля...
Аватара пользователя
kalikanzaros
Сообщения: 90
Зарегистрирован: Вт июл 03, 2007 19:09

Сообщение kalikanzaros »

B4rr4cuda

сегодня столкнулся с такой штукой, создал новый bar файл (shift+f5) отрыл его через tcmemu потом запустил bareditor удалил все кнопки, кроме одной, закрыл.
стал его копиривать и тут заметил, что размер первого (в котором были кнопки) равен размеру второго (почти пустого)
удивился открыл блокнотом, ужаснулся ;)
стал проверять другие bar файлы, ситуация аналогична, к примеру:
в одном из них кнопок у меня 23 а в bar файле обнаружились записи о 33 кнопках, 10 из которых были удалены и непоказывались, но записи о них удалены не были, это как "фича" классифицировать не получиться, скорее всего баг.

второе кнопка "разбросана" по bar файлу, к примеру:

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

button2=T:\Program Files\Adobe\Adobe Photoshop CS2\Photoshop.exe,0
cmd2=T:\Program Files\Adobe\Adobe Photoshop CS2\Photoshop.exe
path2=T:\Program Files\Adobe\Adobe Photoshop CS2\
menu2=Photoshop
button3=T:\Program Files\Adobe\Adobe Photoshop CS2\ImageReady.exe,0
cmd3=T:\Program Files\Adobe\Adobe Photoshop CS2\ImageReady.exe
path3=T:\Program Files\Adobe\Adobe Photoshop CS2\
menu3=ImageReady
button4=D:\Program Files\IrfanView\i_view32.exe,0
menu4=Irfan view 4.00
потом идут кнопки в кол-ве 33 штук, потом (в самом конце файла):

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

menu13=catalog 
param1=
iconic1=0
param2=%A
iconic2=0
param3=%A
iconic3=0
cmd4=D:\Program Files\IrfanView\i_view32.exe
param4=%A
path4=D:\Program Files\IrfanView\
iconic4=0
param5=%A
iconic5=0
param6=%A
я заметил, что что-то подобное проскальзовало в этой ветке, но все-таки очень хотелось чтобы кнопка "существовала" как одно целое, а не была "размазана" по всему bar файлу, несколько строк в начале, одна в середине и одна в конце

если это как-то можно исправить, был бы крайне признателен...
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

B4rr4cuda
Сенкс. Вроде, нормально читается. Бум ждать конечного результата.

По поводу штуки, про которую писал kalikanzaros. Ты работаешь с .bar файлом как с ini файлом? Тогда, перед тем, как сохранять кнопки вызови сначала WritePrivateProfileSection с пустой строкой. Это вычистит всю секцию полностью.
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Секцию уже обнуляю. В новой версии ессесно.
Ответить