[Autoit] Редактор комментариев descript.ion

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

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

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

yozhik писал(а):Вроде, всё по-фирменному выглядит: как в родительском, так и в дочернем.
Да, по-моему тоже всё отлично.
yozhik писал(а):Она больше похожа на «пасхалку», привет от программиста.
Всё может быть, но мне представляется, что сам факт отображения подсказки над ".." - это такой мелкий безобидный баг. Именно потому, что этот комментарий не отображается в колонках и его нельзя изменить стандартными средствами, а значит изменение и отображение этого комментария и не предусматривалось. Показ подсказки выпадает из общей картины, а значит скорее всего это непредусмотренное поведение. Хотя конечно, если бы редактирование осуществлялось только стандартными средствами, эту подсказку никто и никогда не увидел бы.

Впрочем, что это на самом деле - баг, фича или пасхалка - знает только Гислер.
yozhik писал(а):А здесь удалось сочинить ситуацию (пока только одну), когда эта команда может быть оправдана.
Еще команда могла бы быть оправданна в случае, если я просто правлю большой комментарий и не хочу его случайно потерять, но и окно закрывать не хочу. Но тут возникает проблема с мультикомментарием, который нельзя сохранить без применения.

Главный аргумент "за" в том, что результатом работы кнопки Применить будет только изменение в памяти, т.е. при последующем нажатии Отмена никакие изменения не сохраняются. А раз есть применение, должно быть и сохранение, кнопка F2 - не то, поскольку она фактически делает последовательно оба действия.

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

И по-видимому, сохранение все же не должно возвращать режим мультиправки, это было ошибкой. Возможно, также стоит добавить в заголовок звёздочку или надпись, если есть изменения. Добавить обновление панели, разумеется, тоже можно.

И еще одна проблема - с хоткеем. Разумеется, Ctrl+S значительно логичнее присвоить именно сохранению, но этот хоткей уже много лет задействован как псевдоним F2. Напоминает ситуацию с TC, когда появились вкладки, а Ctrl+T был подо что-то занят.
yozhik писал(а):Автозакрытие MsgBox'а о сохранении Template — приятный бонус. )) Правда, в первый раз я не ожидал, что он сам закроется и пытался в него мышкой попасть.
Вот эффект неожиданности - это как раз плохо... По-хорошему надо не в MsgBox таймаут добавлять, а совсем избавиться от него, но тут нужна какая-то обратная связь. Вообще я сейчас в скриптах в таких случаях делаю всплывающее уведомление в трее на пару секунд, но здесь, боюсь, это будет как-то "оторвано" от окна. Наверно, лучше какую-нибудь всплывашку на секунду на фоне окна редактора.
yozhik писал(а):А сейчас ради сокращения кликов мне представляется логичней вместо двух групп из двух пунктов, сделать одну группу из трёх пунктов:
Однозначно! Интересно, откуда вообще появилась эта идея с четырьмя переключателями... усложнение логики, лишние активации/деактивации и двойной заход в меню.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

В связи с командой Save, учитывая всё сказанное, у меня выстраивается такая иерархия (выполнения операций):

1) Apply — Применяем, Не сохраняем, Не закрываем.
2) Save — Применяем, Сохраняем, Не закрываем.
3) OK — Применяем, Сохраняем, Закрываем.

Вроде получается системно и легко запоминаемо. А при Save если не применять, то что тогда сохранять?! Если не применишь, то и сохранять нечего. Следовательно, и «проблема с мультикомментарием, который нельзя сохранить без применения» отпадает.

А с работой команды Save у меня выстраивается такая логика:

а) Результат выполнения Save зависит от того, какой режим активен (или какое окно открыто) в момент выполнения.

б) Если активен MULTIEDIT (вспоминаем, что он у нас просто так не бывает активен: либо мы с него начали, либо мы его осознанно активировали кнопкой), то Save применяет и сохраняет во всех комментариях то, что мы видим в поле редактирования. Противоречий тут нет, т.к. если он у нас активен, то значит мы его активировали сами и осознаём, что все комментарии у нас перезапишутся. При этом учитываются настройки [Replace, Add to Beginning, Add to End], а также учитывается настройка Replace macro для операции применения.

в) Если MULTIEDIT открыт, но не активен, то и команда Save тоже неактивна.

г) Если активен SINGLEEDIT, то Save сохраняет (и применяет, если есть что применить, и в зависимости от настройки Replace macro) только тот комментарий, который мы видим в поле редактирования. А другие не применяет и не сохраняет. Иначе будет нелогично. Логично так: что вижу, то и сохраняю. При этом состояние настройки [Replace, Add to Beginning, Add to End] здесь тоже может быть учтено.

д) Звёздочка (знак несохранённости) — идея хорошая. Появляется после внесения изменений в поле редактирования. Вопрос где ей появляться.

д.1) Если посложнее. В строке комбобокса, в самом начале строки. В режиме активного MULTI: если что-то изменили в поле редактирования. В режиме неактивного MULTI: если есть хоть один несохранённый комментарий. В режиме SINGLE: если что-то изменили в конкретном комментарии. Но тогда логически напрашиваются все эти звёздочки (их наличие или отсутствие) при открытии комбобокса, в выпадающем списке. Ой, уж что-то всего много получается, как реализовывать то )) Но теоретически вроде стройно.

д.2) Если попроще. В заголовке окна File comment, после заголовка. В режиме MULTI: если есть общие изменения или есть изменения хоть в одном комменте. В режиме SINGLE: если есть изменение в конкретном открытом комменте. Хотя, может это и не «проще», всё равно же надо запоминать состояния что сохранёно, что не сохранёно. Или тогда уж вообще со звёздочками не связываться.

е) При таком раскладе возвращение активности MULTI при выполнении Save совсем не логично. Одно с другим не связано.

ж) С хоткеем Ctrl+S прямо-таки гамлетовские сомнения: либо ему быть, либо не быть. Однозначно Ctrl+S ассоциируется в первую очередь с сохранением без закрытия. Относительно ломания при этом устоявшихся традиций я не советчик, ибо по характеру консерватор. Только шёпотом скажу: я бы поломал. :D

Ох, Вы уже не сочтите за нескромность, реализовывать то Вам. Я просто стараюсь быть чем-то полезным.

Добавлено спустя 13 минут:
Loopback писал(а):лучше какую-нибудь всплывашку на секунду на фоне окна редактора
Такое решение мне очень нравится. И чем она будет проще, тем лучше. Идеальный вариант без кнопок вообще. Я в своих маленьких вспомогательных скриптиках так всегда и делаю, и уже к этому привык. Вот, например, в InDesign при экспорте так (на Маке, правда, как оно на Windows пока не смотрел, но думаю, что тоже будет неплохо):
Изображение

А вот в AkelPad при сборе статистики по документу вообще минимализм:
Изображение
Эту я подсмотрел в скриптах у KDJ и с тех пор везде её вставляю. А всплываха в системном трее неуместна хотя бы потому, что у ТСМСЕ нет там иконки.

Добавлено спустя 16 минут:

Не утерпел, попробовал на Windows. Кнопочка всё равно отображается, хотя и запрещена в скрипте:
Изображение
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

yozhik писал(а):Вроде получается системно и легко запоминаемо.
Да, наверно это лучший возможный вариант. Увы, сохранение без применения здесь бессмысленно.
yozhik писал(а):только тот комментарий, который мы видим в поле редактирования. А другие не применяет и не сохраняет. Иначе будет нелогично.
Так не получится, комментарии изменяются сразу в процессе набора/вставки, и если применить еще можно только один, то сохранить их можно только все сразу.

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

Все равно кое-где логика будет хромать, чувствую, придется смириться. Все равно стало лучше, чем было до.
yozhik писал(а):Ой, уж что-то всего много получается, как реализовывать то ))
Отпадает сразу, комбо динамически менять не хочу.
yozhik писал(а):В заголовке окна File comment, после заголовка.
Планировался именно тут.
Чисто по логике, даже не нужно завязываться на режимы. Если изменен один или несколько комментариев (индивидуально или после нажатия Apply) - есть маркер. Save его сбрасывает. Активность пункта Save связана с этим же состоянием.
yozhik писал(а):При таком раскладе возвращение активности MULTI при выполнении Save совсем не логично.
Именно, я об этом и писал.
yozhik писал(а):Только шёпотом скажу: я бы поломал.
Я бы наверно тоже. Если будет запрос потом - всегда можно добавить опцию.
yozhik писал(а):Идеальный вариант без кнопок вообще.
Да, так уже и сделал, вариант как в Akelpad.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Бета-версия 2021-08-30

* чистка кода и перевода, доработка справки
+ хоткей сохранения шаблона
+ всплывающие подсказки для длинных строк в списках
+ опция для задания режима замены/вставки по умолчанию
* упрощена логика опций замены/вставки

Если каких-то критичных проблем не всплывет, это будет последняя версия перед релизом.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Loopback
На мой не искушённый взгляд в Win10/TC10 x64 всё очень удобно и работает без ошибок. Для тех кто в теме, супер-утилита получилась.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback
Я тоже утилитой не нарадуюсь. Но до пары моментов всё же докопался.

Косячок: после применения Ctrl+S фокус улетает в панель Тотала. И вернуть его в окно ТСМСЕ можно только мышью, с клавиатуры никак.

Побочный эффект. Воспроизводим:
1) Открываю ТСМСЕ. Утилита в фокусе.
2) По Alt+Tab переключаюсь на другую программу.
3) По Alt+Tab переключаюсь обратно в Тотал. Фокус в панели Тотала. Утилита не в фокусе.
Я вначале подумал, что может и хорошо, что родительское окно не блокируем. Вроде можно при открытой утилите пощёлкать что-то в Тотале, поменять набор колонок на Комментарии, например. А теперь смотрю: потеря фокуса, пожалуй, это ощутимое неудобство, лучше уж тогда блокировать родительское.

Сообщение о сохранении Template может сделать на секунду побольше? Или на две. Очень быстро пропадает, не успеваю полюбоваться. :) Правда, очень красивое получилось, аккуратное такое. А вообще, пмсм, времени сейчас маловато, чтобы успеть восприять написанное.

Косметика (на работу не влияет, но глаз царапает): при сохранении комментов по Ctrl+S не обновляется надпись текущей кодировки. Точнее так: надпись кодировки рассогласована с действием Ctr+S. Воспроизводим:
а) В папке нет файла descript.ion. Вызываем ТСМСЕ и видим надпись None в углу кодировок. Всё правильно.
б) Набираем комменты. Жмём Ctrl+S (или мышью) – сохранили комменты.
в) А в углу кодировок по-прежнему None, хотя по факту None там уже быть не может, descript.ion то создали только что.
г) А если теперь ещё поменять кодировку из комбобокса и сохранить по Ctrl+S, то всё равно останется None.
д) И если вместо None была кодировка, и я её поменял и сохранил по Ctrl+S, в надписи так и останется предыдущая кодировка.
е) А если я сохранил по Ctrl+S и после этого поменял кодировку в комбобоксе, у меня Ctrl+S остаётся неактивно, хотя кодировка то поменялась, а может я именно новую кодировку хочу сохранить.

Корректура readme_ru.txt (пара очепяток, пара забытых точек, одно имя собственное, одна вставка, одна смысловая ракировка).

Корректура readme_en.txt (пара очепяток, один лишний абзац, одна точка).
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

yozhik писал(а): после применения Ctrl+S фокус улетает в панель Тотала.
Это потому, что теперь окну тотала отправляется сообщение обновить панель. А окно не модальное.
yozhik писал(а):Побочный эффект. Воспроизводим:
Да, я об этом писал, что было временно отключено. Обновил по той же ссылке с включенной модальностью, надо было сегодня сразу включить. Лазить по тоталу во время работы точно не стоит.
yozhik писал(а):Сообщение о сохранении Template может сделать на секунду побольше? Или на две. Очень быстро пропадает, не успеваю полюбоваться.
Это сейчас так, потом большая задержка начнёт раздражать :) Мне две секунды уже реально некомфортно. Сделаю полторы, если будет очень надо - потом можно будет в коде поменять.
yozhik писал(а):при сохранении комментов по Ctrl+S не обновляется надпись текущей кодировки
Ага, конечно. Раньше же не было возможности сохранить файл без закрытия окна. Исправлю.
yozhik писал(а):е) А если я сохранил по Ctrl+S и после этого поменял кодировку в комбобоксе, у меня Ctrl+S остаётся неактивно, хотя кодировка то поменялась, а может я именно новую кодировку хочу сохранить.
Кстати, тоже момент. Считать смену кодировки изменением или нет.
yozhik писал(а):пара очепяток
Спасибо, обновлю.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Версия 3.0 от 2021-09-09

+ смена кодировки устанавливает флаг модификации
- исправлено состояние кодировки после сохранения

Спасибо всем, кто помогал и участвовал в разработке!
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Loopback
В TC 10.50 появилась возможность
17.04.22 Added: Ctrl+Z on [..] now allows to edit the comment of the folder itself (32/64)
Возможно ли и MCE (и так классную) привести в соответствие с новой фишкой? Может уже после выхода финала ТС.
И ещё может ли есть возможность опционально увеличить кегль шрифта в окне редактирования? А то слепошарые и в очках щурятся :)
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

imig73
Видел, пока подожду, может что-то еще поменяется. В том виде как она реализована сейчас польза и удобство мне кажутся сомнительными, но уж что имеем. Так или иначе, мультиправка на [..] работать не будет, только одиночное редактирование.

По шрифту, думаю, вполне возможно, опцией через ini. Просто изначально стояла цель, чтобы окно редактора максимально повторяло стандартное, шрифты в том числе.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Loopback
По первой части вопроса всё так, абсолютно согласен и не только я.

Если с кеглей получится, будет респект от меня персональный, обещаю. :)
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Раз уж в финале ничего не поменялось, будет как есть.

Версия 3.1 от 2022-07-10

- мелкие исправления
+ настраиваемый шрифт окна редактора
+ поддержка нового поведения ТК на ".." в каталогах (только одиночное редактирование)
Seyran72
Сообщения: 2
Зарегистрирован: Вт июл 11, 2023 15:31

поиск и замена в комментариях

Сообщение Seyran72 »

спасибо за утилиту, Loopback. Но - пара вопросов%

Как сделать, чтобы при запуске НЕ менялся язык ввода текста?! По умолчанию Ваша программка меняет на латиницу. Мне это совсем не нужно!

Нет ли возможности добавить функцию ЗАМЕНЫ текста, а не просто добавления. То есть: найдено в 6 файлах в комментариях слово "Х" и надо заменить пакетно на слово "Y"
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Seyran72
Там по умолчанию и есть замена вместо добавления. Но всего текста, без всякого поиска.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Seyran72
Сообщения: 2
Зарегистрирован: Вт июл 11, 2023 15:31

Сообщение Seyran72 »

если бы меня устраивала замена ВСЕГО текста, я бы не писал сообщение )))
Ответить