ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Здесь обсуждается всё, что касается макросов.
buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Макрос навеян этим:
PieApple wrote:
Thu 23 Jan, 2014 12:57
Еще хотел бы поделиться идеей, реализованной в Проводнике с Windows 7, Total Commander, что если нажать мышкой на имя папки в адресной строке сверху, то происходит переход вверх на эту папку.
На самом деле получилось прикольно и, возможно, полезно (если Вы любите настольных грызунов).
Суть:
Клик мышой на заголовке панели, содержащей имя папки, вызывает переход (как в проводнике). А если клик приходится на разделитель (бэкслэш), то предоставляется выбор, в какую папку перейти.
Первоначальный макрос сваян «на коленке» за полчасика, потому не судите строго. Если будут отзывы и замечания — попробую «докрутить».

Начиная с этой версии я перестал выкладывать текст скрипта в сообщении (уж больно трудоёмко стало, т.к. он вырос). Тем более что “Select all” на сайте опять перестал работать. Теперь только во вложении в виде 7z-архива.
Сведения о версии:
Версия 1.4.8.
  1. При входе в диалоговый режим предусмотрено гашение выделения текста (неудачная попытка была предпринята в версии 1.4.6).
  2. Стилистические правки в файлах помощи и языковом
  3. Перекомпонован диалог настройки таким образом, чтоб всё помещалось
  4. В настроечном диалоге реализована краткая контекстная подсказка (аналог Hint, но не всплывающая, а выводимая в «подвале» формы.
Версия 1.4.9.
  • Исправлена ошибка, приводившая к "блокировке" скрипта в случае клика по рамке панели вне заголовка (вне «чувствительной зоны»).
    (Блокировка - неработоспособность скрипта до перезагрузки макросов командой macro:load)
Версия 1.4.10.
  • Изменён алгоритм синтаксического разбора строки заголовка для корректной обработки времени, заданного в американском формате (2:10 AM) при клике по правой панели
ClickToTitleDir-1.4.10.7z
(23.92 KiB) Downloaded 19 times

Вместе с файлом самого скрипта поставляются языковые файлы ClickToTitleDirRus.lng и ClickToTitleDirEng.lng и файл помощи ClickToTitleDirRus.hlf.
Last edited by buniak_a_h on Mon 04 May, 2020 12:18, edited 65 times in total.

User avatar
Taciturn
Posts: 419
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 33 times
Been thanked: 11 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by Taciturn »

Latest post of the previous page:

Far Manager v3.0 build 5454 (последняя стабильная сборка), просто распакованный архив, никаких настроек + распакованный ClickToTitleDir.1.2.2.lua.7z в scripts. Правый клик по верхней строчке выдаёт:

В Far Manager v3.0 build 5485 всё работает нормально. Если это нормально и для работы макроса требуется версия Far'а новее стабильной, то не могли бы вы это прямо написать в первом сообщении?

Заходим Far30b5485.x86.20191010.7z\Addons, клик по «Far30b5485.x86.20191010.7z» вызывает обычное меню. Нельзя ли вместо меню сделать переход в корень архива?
Last edited by Taciturn on Thu 10 Oct, 2019 08:36, edited 1 time in total.

buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Taciturn, забыл совсем... В одной из ночных сборок версии 5459 была исправлена ошибка в функциях match и find библиотеки unicode.utf8 (без изменения номер сборки, поэтому конкретный номер написать не могу). Я попробую сделать более толерантный вариант скрипта, но слишком уж часто там используются эти функции; нет никакой гарантии, что не вылезет в другом месте :-(
Спасибо за сигнал.

buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Taciturn wrote:
Thu 10 Oct, 2019 08:32
Если это нормально и для работы макроса требуется версия Far'а новее стабильной, то не могли бы вы это прямо написать в первом сообщении?
Увы, исправить для версии старше 5460 с наскока не получилось. Будем считать это ограничением. Добавил в Info параметр minfarversion и в первое сообщение тоже.
Taciturn wrote:
Thu 10 Oct, 2019 08:32
Нельзя ли вместо меню сделать переход в корень архива?
Сделаю... Возможно, и выход из архива тоже понравится. Просто время требуется.

buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Taciturn wrote:
Thu 10 Oct, 2019 08:32
Заходим Far30b5485.x86.20191010.7z\Addons, клик по «Far30b5485.x86.20191010.7z» вызывает обычное меню. Нельзя ли вместо меню сделать переход в корень архива?
Как выяснилось, разные плагины по-разному формируют APanel.Path . MultiARc формирует без первого слэша, а ArcLite вставляет в начало слэш. Это может усложнить обработку именно "левого" клика (левее первого
имени каталога). Так что не ждите быстро... Кстати! Вы каким плагином в архив "заходите"?
Беда с этими нестандартами...

User avatar
HaRT
Moderator
Posts: 9482
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 225 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote:
Wed 09 Oct, 2019 05:30
Мы не знаем, что юзеру в голову придёт! Заменит он пробел на Chr(160), а вертикальные - на вертикальную черту (что на одной клавише со слэшом) - и всё...
Мне не удалось найти, где этот символ используется в рисовании рамок (я заменил его на «бубны» (♦), но нигде в интерфейсе этого значка не встретил). Я имел в виду просто не рассматривать символы рисования рамок, начиная с той позиции.
buniak_a_h wrote:
Wed 09 Oct, 2019 05:30
проблему я решил так:
local BoxSymbols=Far.GetConfig"System.BoxSymbols":gsub("[ -я]", '')..'-+=|'
Вопрос: не приведёт ли это к некорректной работе, если путь содержит один из символов -, +, =? (Код пока не смотрел.)
buniak_a_h wrote:
Wed 09 Oct, 2019 05:30
Реакция на CtrlDown как раз пропала из=за пропавшей DM_REDRAW
Да у меня вроде и на версии 1.1.1 не работало. Если и на новейшей не работает, напишу отдельно.
buniak_a_h wrote:
Wed 09 Oct, 2019 05:37
Вы много где заменили hDlg:send("DM_... " ) на hDlg:send(F.DM_...). Это - из соображений эффективности?
Скорее из соображений единообразия. Да и вообще строковые данные стараюсь использовать только там, где не применить более строгую типизацию или где это даёт ощутимый выигрыш в выразительности кода.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Taciturn
Posts: 419
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 33 times
Been thanked: 11 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by Taciturn »

buniak_a_h wrote:
Thu 10 Oct, 2019 16:38
Кстати! Вы каким плагином в архив "заходите"?
Чаще всего ArcLite и Observer.

User avatar
HaRT
Moderator
Posts: 9482
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 225 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote:
Sun 29 Sep, 2019 07:51
Версия 1.2.2
  1. Доделана работа в плагиновой панели.
Это я тупой/слепой, или в заглавном сообщении и впрямь нет ни вложения, ни ссылки для скачивания?
Да и перебор загруженных файлов после версии 1.1.2 что-то не дал результатов… Похоже, архив с форума втихую удалили…
buniak_a_h wrote:
Tue 08 Oct, 2019 10:02
HaRT wrote:
Mon 07 Oct, 2019 10:17
P.S. Мне кажется, в диалоге настроек лучше будет так: Тип рамки: ( ) без рамки (•) одинарная ( ) двойная.
Извините, поздно заметил Ваш P.S. . Да, так краше. В следующей версии (если будет) учту.
Судя по истории изменений, это намерение потерялось…
Last edited by HaRT on Thu 10 Oct, 2019 20:16, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9482
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 225 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

Taciturn wrote:
Thu 10 Oct, 2019 08:32
ClickToTitleDir.1.2.2.lua.7z в scripts
Не поделитесь архивом версии?
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote:
Thu 10 Oct, 2019 18:42
Вопрос: не приведёт ли это к некорректной работе, если путь содержит один из символов -, +, =? (Код пока не смотрел.)
Приведёт. Минус и равенство - может и имеют значение, но плюс (также как и верт.черточка) - служебные символы. Надеюсь, что не встречающиеся в имени каталога.
На самом деле - да, есть ограничения в применении. Ну, если юзер такой умный, что использует символы псевдографики в имени папки, то ему не судьба пользоваться этим сервисом. Не уверен, что стоит предпринимать какие-то меры по проверке.
Впрочем, я сейчас переделываю. Возможно, это перестанет быть проблемой.

buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote:
Thu 10 Oct, 2019 19:48
Это я тупой/слепой, или в заглавном сообщении и впрямь нет ни вложения, ни ссылки для скачивания?
HaRT wrote:
Thu 10 Oct, 2019 20:31
Не поделитесь архивом версии?
Я не знаю, что случилось... При "Отправить" вылезла какая-то красная надпись (большими буквами). Я не стал разбираться, а отправил снова. В тексте надпись типа [Attachment] была. А куда девался сам архив - не знаю. Перезалил...

User avatar
HaRT
Moderator
Posts: 9482
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 225 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote:
Thu 10 Oct, 2019 21:39
Приведёт. Минус и равенство - может и имеют значение, но плюс (также как и верт.черточка) - служебные символы. Надеюсь, что не встречающиеся в имени каталога.
Ни плюс, ни минус, ни знак равенства не являются символами, запрещёнными в именах директорий или файлов. Более того, минус довольно популярен в качестве дефиса. Вообще одна из распространённых конвенций — это использовать минус, чтобы отделять номер версии от имени продукта. Например, прямо сейчас у меня в одной отдельно взятой папке есть , а . Т.ч. это ограничение гораздо серьёзнее, чем кажется, и оставлять его по умолчанию — это, на мой взгляд, неправильное решение. Учитывая долю пользователей, которым недоступна нормальная псевдографика, более разумно было бы написать для них, где что исправить, чтобы и у них заработало, а не ограничивать всех пользователей.
buniak_a_h wrote:
Thu 10 Oct, 2019 21:39
если юзер такой умный, что использует символы псевдографики в имени папки
Плюс, минус, равно, трубопровод — это ни в коем разе не псевдографика. Да и вообще подобные проблемы лишний раз указывают на основополагающий недостаток выбранного подхода для сопоставления позиции щелчка мыши и целевого действия.
buniak_a_h wrote:
Thu 10 Oct, 2019 21:39
Возможно, это перестанет быть проблемой.
Очень на это надеюсь, а то придётся патчить под себя каждую версию.
buniak_a_h wrote:
Thu 10 Oct, 2019 21:44
Перезалил
Спасибо
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT, насчёт минуса и равенства - согласен. Плюс между файлами указывает на append этих файлов; пайп, а также перенаправление '<' и '>' - это уже какая-то экзотика.
На самом деле я сам прекрасно вижу ограниченность и некорректность подхода. Увы, я не нашёл способа получить Panel.Title кроме как вычленив псевдографику (точнее, BoxSymbols из far:config). Конечно, если б была такая возможность, возможно было бы и проще, и надёжнее. Но если нет - приходится работать с тем, что есть.
Ещё можно было бы попробовать читать с экрана, используя API консоли (кто-то тут писал). Но я не в курсе. Сделаете - флаг в руки.

User avatar
HaRT
Moderator
Posts: 9482
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 225 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote:
Thu 10 Oct, 2019 22:51
Плюс между файлами указывает на append этих файлов
Это всего лишь особенность синтаксиса досовой команды copy, решается использованием кавычек: copy "a+b"+"c+d" "e+f". Вон, в командах cmd тоже есть много специальных символов: %^= и др. — но это же не означает, что надо запрещать использовать их в именах файлов. Запрещённые символы у Майкрософта задокументированы (и Проводник их перечисляет при попытке использования в переименовании), всё остальное разрешено.
buniak_a_h wrote:
Thu 10 Oct, 2019 22:51
если б была такая возможность, возможно было бы и проще, и надёжнее.
Я уже предлагал подход, но вы его отвергли, судя по всему, без серьёзного рассмотрения. О чём тут ещё спорить…
buniak_a_h wrote:
Thu 10 Oct, 2019 22:51
Сделаете - флаг в руки.
Или кто-нибудь другой…
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9482
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 225 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

buniak_a_h wrote:
Thu 10 Oct, 2019 21:44
Перезалил
Кстати, скажите, а для чего вы так настаиваете на наличии там у поля ввода флага DIF_CENTERGROUP? Ведь, судя по его документации и по моему пользовательскому опыту, он там ровно ничего не меняет, только код засоряет впустую да лишнее предупреждение от LuaCheck порождает из-за длинной строки.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote:
Thu 10 Oct, 2019 23:00
Я уже предлагал подход, но вы его отвергли, судя по всему, без серьёзного рассмотрения.
1. Повторить логику ФАРа я не смогу. Исходники ворошить не буду точно.
2.
HaRT wrote:
Wed 09 Oct, 2019 04:31
исходя из ширины панели и длины пути (
Вот самое смешное начинается когда путь не помещается. А для плагиновых панелей - совсем тоска: перед путём разные плагины разное пихают. Поэтому исходить надо нет от "длины пути", а от Panel.Title (которой, увы, нету). Например, в архиве перед путём вставляется кроме типа архива ещё и имя, а оно тоже может быть разной длины. Поэтому на длину пути завязываться никак нельзя.
Упрёк в том, что замечание проигнорировал, не принимается. Просто не знаю, как сделать.

buniak_a_h
Posts: 1926
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

HaRT wrote:
Thu 10 Oct, 2019 23:13
Кстати, скажите, а для чего вы так настаиваете на наличии там у поля ввода флага DIF_CENTERGROUP?
По лени. Чтоб не рассчитывать положения радиобутонов в зависимости от длины их капшенов и текста-заголовка. Которые, кстати, берутся из lng-файла. Т.е. без этого флага сначала прочитать, потом посчитать, потом внести в DlgItems...
HaRT wrote:
Thu 10 Oct, 2019 23:13
лишнее предупреждение от LuaCheck порождает из-за длинной строки.
У меня нет ни предупреждений, ни ошибок. Просто всё чисто.
Last edited by buniak_a_h on Thu 10 Oct, 2019 23:24, edited 1 time in total.

Post Reply

Return to “Обсуждение макросов”