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

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

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

Post by buniak_a_h »

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

Начиная с этой версии я перестал выкладывать текст скрипта в сообщении (уж больно трудоёмко стало, т.к. он вырос). Тем более что “Select all” на сайте опять перестал работать. Теперь только во вложении в виде 7z-архива.


Вместе с файлом самого скрипта поставляются языковые файлы ClickToTitleDirRus.lng и ClickToTitleDirEng.lng и файл помощи ClickToTitleDirRus.hlf.

ClickToTitleDir-1.4.7.7z
(22.83 KiB) Downloaded 59 times
Last edited by HaRT on Wed 06 Nov, 2019 20:42, edited 62 times in total.

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

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

Post by HaRT »

Latest post of the previous page:

buniak_a_h wrote:
Mon 28 Oct, 2019 21:26
Как предотвратить реакцию DI_EDIT-а на эти клавиши - я не знаю пока
А если обрабатывать эти события на уровне диалога (сразу за AltShiftF9) и возвращать соответствующий код («обработано»)?
buniak_a_h wrote:
Mon 28 Oct, 2019 21:26
На самом деле и нажатие на кнопку тоже ведёт себя странно, если весь путь в поле не помещается. Буду смотреть...
Раз будете смотреть, то я бы предложил именно прокручивать текст, притом «постранично», возможно, с каким-то перекрытием, например, в один компонент пути, но не больше 10% и не меньше 5% (ну или как сочтёте нужным). Прокручивать по одному компоненту — это, на мой взгляд, слишком расточительно с точки зрения количества действий, необходимых для решения пользователем своей задачи.
Last edited by HaRT on Mon 28 Oct, 2019 21:48, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Mon 28 Oct, 2019 21:46
возвращать соответствующий код («обработано»)
Да, уже увидел.
HaRT wrote:
Mon 28 Oct, 2019 21:46
прокручивать текст, притом «постранично»
Ну да, я об этом писал когда-то.

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

Опубликована версия 1.4.0:
  1. Изменено чтение строки с заголовками таблицы: теперь используется не граббер, а API консоли.
  2. Контроль горизонтальной координаты перенесён в condition и несколько изменён: теперь макрос реагирует только на клик ЛКМ и ПКМ по самому заголовку и соседнему с ним знакоместу (слева и справа) и по счётчику открытых редакторов/просмотровщиков в левой части экрана, а на клик колёсиком - в любом месте строки.
  3. Изменена логика прокрутки текста в диалоговом режиме: сначала текст прокручивается на ширину поля, затем в видимой части происходит переход на первый / последний слэш в зависимости от направления прокрутки. При этом если реальной прокрутки не было, то происходит переход на следующий слэш.
  4. Исправлена процедура определения "целевой" панели для случаев, если одна из панелей - широкая.

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Mon 28 Oct, 2019 18:18
у меня есть редакторские правки в файл Справки (и, соответственно в добавленную секцию whatsnew «шапки» скрипта).
Т.к. вышла новая версия, то стало неактуально. А в справку добавьте, пож.

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

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

Post by HaRT »

buniak_a_h wrote:
Sun 29 Sep, 2019 07:51
Известное ограничение:
Скрипт пока не работает, если пассивная панель - широкая, и часть её заслоняет активная панель.
не помогает? Или просто пока руки не дошли?
buniak_a_h wrote:
Tue 29 Oct, 2019 05:23
А в справку добавьте, пож.
Выложу дифф ближе к вечеру.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Tue 29 Oct, 2019 12:39
не помогает? Или просто пока руки не дошли?
Не могу разобрать прочитанную с экрана строку, чтоб определить, где кончается одна панель и начинается заголовок другой. Вот пример:
═══ D:\Arm_2007 ═══════╗nti07 ══════════╤═══════════╗

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 29 Oct, 2019 05:23
Я не нашёл никаких упоминаний (неправильной) строки whatnew в ScriptsBrowser 0.2, а (правильную) строку whatsnew нашёл только в одном месте, где перечисляются вроде бы маски файлов документации. Зачем нужно это дублирование текста Справки в скрипте? Не лучше ли по мере реализации дописывать сразу в Истороию версий в файле Справки?
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 29 Oct, 2019 12:49
Не могу разобрать прочитанную с экрана строку, чтоб определить, где кончается одна панель и начинается заголовок другой.
Предлагаю в подобной (т.е. такой и симметричной ей) ситуации в непосредственном режиме взаимодействовать только с видимой частью заголовка, в диалоговый режим входить по ней же, а сам диалог размещать от начала заголовка левой панели до конца заголовка правой панели. Как вам такая идея?
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

HaRT wrote:
Tue 29 Oct, 2019 12:58
Предлагаю в подобной (т.е. такой и симметричной ей) ситуации в непосредственном режиме взаимодействовать только с видимой частью заголовка, в диалоговый режим входить по ней же, а сам диалог размещать от начала заголовка левой панели до конца заголовка правой панели. Как вам такая идея?
1. «Взаимодействовать с видимой» - согласен (так и сделал, но потом из-за пункта (2) не включил)
2. «размещать от начала заголовка левой панели» - не гуд. И диалог съезжает фиг знает куда, и начало заголовка для определений, во что тыкнули в непосредственном режиме как-то неправильно. Хотя с непосредственным, если широкая пассивная панель - правая, наверно, можно разобраться (т.к. разбор идёт справа налево). Тут ведь вообще может быть ситуация такая:

Code: Select all

╔════════ D:\Arm_2007 ════════╗╤══════════════╤═╗
║n    Name     ║     Name     ║│   Created    │A║
║..            ║Add git.cmd   ▲│29.10.19 15:06│2║
Тут вообще нет заголовка правой панели.
Пробовал в такой ситуации переключить панели panel.SetActivePanel(nil,0), но почему-то с экрана читается всё равно та же строка. И даже panel.RedrawPanel не помогает.Это всё - про condition…
Я пока оставил предупреждение тут. Самое мерзкое, что скрипт вылетает с диагностикой. Это легко побороть, просто пока не стал заливать новое (вылет обнаружил уже после публикации). Если придумаем, как обойти - выложу исправленное. Иначе просто заблокирую ситуацию.

User avatar
zg
zero-gravity
Posts: 5701
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 134 times
Contact:

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

Post by zg »

buniak_a_h wrote:
Tue 29 Oct, 2019 13:17
И даже panel.RedrawPanel не помогает.
far.Text() именно так, без параметров.

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

Ну, кажется, проблема с частично прикрытой панелью решена. Сделано, как всегда, прокто-логично: пассивная панель "вытаскивается" наверх (делается активной), а потом "прячется" обратно. Если есть мысли, как сделать проще и правильнее - предложения принимаются. Версия 1.4.1.

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

P/S. Я, кажется, перестраховался: в скрипте вполне можно убрать строки if NeedSwitch … до и после far.Dialog (строки 971-974 и 976-979) Выложу позже, после получения правок к хелпу от HaRT

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

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

Post by HaRT »

А это как-нибудь прокомментируете?:
HaRT wrote:
Tue 29 Oct, 2019 12:50
buniak_a_h wrote:
Tue 29 Oct, 2019 05:23
Я не нашёл никаких упоминаний (неправильной) строки whatnew в ScriptsBrowser 0.2, а (правильную) строку whatsnew нашёл только в одном месте, где перечисляются вроде бы маски файлов документации. Зачем нужно это дублирование текста Справки в скрипте? Не лучше ли по мере реализации дописывать сразу в Истороию версий в файле Справки?
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 29 Oct, 2019 17:21
перестраховался: в скрипте вполне можно убрать строки
И раз теперь абсцисса проверяется в условии срабатывания, то зачем в коде до сих пор явная отправка F9 в двух местах?
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by HaRT »

buniak_a_h wrote:
Tue 29 Oct, 2019 17:21
после получения правок к хелпу от HaRT-а
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1399
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 96 times
Been thanked: 108 times
Contact:

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

Post by buniak_a_h »

Ой... А это чем обрабатывать?

Post Reply

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