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

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

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

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

Сообщение B4rr4cuda »

v 1.5 beta
[/] Программа переписана с нуля.
[+] Отображение спец иконок для несуществующих программ и иконок. (UseBarIclIcons=1 включенно по умолчанию)
[+] Отображение em_ команд в броузере комманд.
[/] Локализация и параметры в отдельном файле.
[+] Опция AskToSaveOnExit - диалоговое окно при выходе если файл был изменён. (По умолчанию откл.)
[+] Кнопка для загрузки библиотеки иконок указанной в параметре DefIconLib в BarEditor.ini (По умолчанию DefIconLib=WCMICONS.DLL)
[+] Опция Language для указания языкового файла. Файл <имя>.lng должен находиться в папке программы.
[+] Опция wincmd для указания пути к файлу настроек ТС. Использовать в случае проблем или для уверенности :) .
[+] Генерация кеша происходит в случае изменений или отсутствия файла кеша.
Прямой линк

Просьба потестить, возможны баги.
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

B4rr4cuda
Это Весчь! Многочисленные респекты :)
Серьёзных багов не нашёл, кроме lng.
При первых запусках один раз поймал "List index out of bounds (-1)". Воспроизвести не удалось.

1.При "UseBarIclIcons=1" упорно отображается вторая иконка из BarEditor.icl (с EXE) для такой кнопки (сама кнопка работает правильно и редактор ТС иконку нормально показывает):

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

TOTALCMD#BAR#DATA
msconfig.exe

progman.exe,11
MS Config

0
-1
(добавлено и исправлено)
2.Я так понимаю, ты проверяешь команды на наличие пробелов и ставишь кавычки? Тут всплыла одна особенность. Перестают работать кнопки, у которых команда - путь к .bar файлу. Таким образом полностью отваливаются меню второго уровня в TCMenu :(

Дальше всё про языки
3.Параметр "Language=*" просто игнорируется, если имя файла задано правильно. А вот если неправильно - кричит "Не удается найти указанный файл." Но если просто запустить BarEditor.exe, без bar-файла, - *.lng цепляется нормально :shock:
4.Длинные строки из [params] при вызове уходят за край экрана (1024*768).
5.Очепятка "Сыылки в icl"
6.Откуда взялось "Панель:", если там 5065="Bar файл:"? ... Ага, понял. Это следствие из п.3.
Последний раз редактировалось Rodny Чт сен 27, 2007 00:47, всего редактировалось 1 раз.
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Rodny
Спасибо за добрые слова. :) И за тестирование.
List index out of bounds (-1)
Добавлю проверки...

Насчёт мсконфига - сам прикололся, эта бяка лежит в %WINDOWS%\pchealth\helpctr\binaries\msconfig.exe
и соответственно пути к ней в паф нет, ну и не находит её едитор... Майкросовтовцы и тут подос*али...
Добавлю в лист исключений...

Дааа, с локализацией я где-то намутил... По идее если локали нет, то он должен подхватить локализацию тотала, что собственно и происходит, игнорируя лнг файл. Обезжучу.
3.Длинные строки из [params] при вызове уходят за край экрана (1024*768).
А вот тут я бессилен. Советую подрезать подсказки.
5.Откуда взялось "Панель:", если там 5065="Bar файл:"?
ТС-кую локализацию подхватил. Где-то жучок. Поймаю - удавлю :).
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Я так понимаю, ты проверяешь команды на наличие пробелов и ставишь кавычки? Тут всплыла одна особенность. Перестают работать кнопки, у которых команда - путь к .bar файлу. Таким образом полностью отваливаются меню второго уровня в TCMenu
Ты прав. Буду доделывать....
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

Ага, про локализацию я уже додумался, пока исправлял - ты ответил. Посмотри про приколы в исправленном п.3 :)

опять добавил: кстати, а [params] то из .lng читается :lol: :mrgreen:
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

Длинное описание разбил на две строки. Если вторую сделать с отступом - она воспринимается нормально, именно как продолжение первой. Типа

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

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

Сообщение B4rr4cuda »

кстати, а [params] то из .lng читается
Ага. :) Так удобнее.
Хм, а насчёт меню - хороший хинт!


[*] Бар файлы не беруться в двойные кавычки
[*] Самовольный подхват локализации
[*] Игнор msconfig-a как несуществующего файла
версия с фиксами. Попробуй. Я погонял её вроде нормально с локалью.
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

Вроде нормально работает. По мелочам:
1.Не забудь "сыылки" :)
2.В окне "Файл изменён. Сохранить?" заголовок и кнопки можно в перевод добавить. (это я уже придираюсь)
3.В надписи "Выше всех" справа чуть-чуть обрезаны "ы" и "ш".

Всё, пойду спать.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

B4rr4cuda писал(а):Насчёт мсконфига - сам прикололся, эта бяка лежит в %WINDOWS%\pchealth\helpctr\binaries\msconfig.exe
и соответственно пути к ней в паф нет, ну и не находит её едитор... Майкросовтовцы и тут подос*али...
Добавлю в лист исключений...
От суки. Но я советую еще проверять и в %WINDOWS%\system32\dllcache\. Там и msconfig и еще кое-что лежит, что тоже в пути не находится, но запускается.

Еще небольшая трабла - неправильно показывается иконка для кнопок, в которых команды написаны без расширения. Например "calc" или "notepad". В принципе, наверно, не такая уж и трабла, могу и полностью "calc.exe" написать. Просто лень. :wink: В общем, как душа подскажет.

А вот с em_ командами у меня ничего не выходит. Как только клюкаю на строчку usercmd.ini BarEditor падает по access violation. Абыдна, да?

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

Сообщение B4rr4cuda »

2Rodny
2.В окне "Файл изменён. Сохранить?" заголовок и кнопки можно в перевод добавить. (это я уже придираюсь)
Это дефолтный дельфийский диалог. Его низззя локализовать.
3.В надписи "Выше всех" справа чуть-чуть обрезаны "ы" и "ш".
Ничего страшного, хуже когда по две буквы на строчку. Либо ы и ш впритык к краю либо:
Вы
ше
вс
ех
Про "сыылки" уже помню. :)

2VadiMGP
Но я советую еще проверять и в %WINDOWS%\system32\dllcache\. Там и msconfig и еще кое-что лежит, что тоже в пути не находится, но запускается
Добавлю в список проверяемых путей.

С расширениями поиграюсь, что-то я упустил из виду.
А вот с em_ командами у меня ничего не выходит. Как только клюкаю на строчку usercmd.ini BarEditor падает по access violation. Абыдна, да?
Не то слово! Выложи мне плиз свой usercmd.ini - буду ковырять... Да и местонахождение его укажи пожалуйста.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

2B4rr4cuda
usercmd.ini у меня вот такой (лежит рядом с коммандером).

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

[em_usercmd1]
button=wcmicons.dll,31
cmd=cm_Config
[em_usercmd2]
button=
cmd=SYNCOPEN
[em_SearchFSE]
button=
cmd=LOADSEARCH FSE
[em_tcmenu]
button=E:\Downloads\Программы\DjVuerin.exe
cmd=d:\myprog\TotalCommander\tcmenu\Debug\TCMenu.exe
param=d:\WINCMD\pgm.bar -$24
[em_send_mit]
button=
cmd=notepad
param=%p%n

[em_notepad]
button=
cmd=notepad
param=%p%n
[em_bc]
button=
cmd=c:\BC3\BIN\BC.EXE


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

Сообщение B4rr4cuda »

Спасибо. Сейчас пофиксю.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

2B4rr4cuda
Это, кстати, навевает мысли о том, что ты читаешь и парсируешь весь usercmd.ini сам, а не пользуешься GetPrivateProfileSectionNames?
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

2VadiMGP
Ага. Мне так удобнее. Я эти функции недавно для себя обнаружил, и не всегда получаю ожидаемый результат или иногда просто неудобно использовать. Поэтому пока что совмещаю. Хорошо хоть от inifiles сумел отказаться. :)

Лёгкий апдейт:
[*] Баг с пустыми строками в usercmd.ini
[*] Некоторые непереведённые надписи
[*] Показывает иконки для файлов без расширения
Здесь 211.6 кб
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

Все работает. Сенькс.
B4rr4cuda писал(а):Ага. Мне так удобнее.
[легкий оффтоп]
Вот я уже некоторое время размышляю - если через полгода (год?) появится юникодный ТС и, сответственно, все ini и bar файлы станут тоже юникодными, это не приведет к нехорошим сюрпризам в целом ряде плагинов и утилит? Не пришло ли время, плагинописателям озаботиться этим вопросом?
[/легкий оффтоп]
Ответить