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

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

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

Post by buniak_a_h » Sun 29 Sep, 2019 07:51

Макрос навеян этим:
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 44 times
Last edited by HaRT on Wed 06 Nov, 2019 20:42, edited 62 times in total.

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

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

Post by HaRT » Tue 08 Oct, 2019 17:24

Latest post of the previous page:

SUSim wrote:
Tue 08 Oct, 2019 17:13
А как такие пути могут появиться в заголовке панели?
UNC-пути (\\Host\Share\Path\to\my\dir) — через cd или переходом, например, из стандартного плагина Network, а пути с префиксами \\?\ и \\?\UNC\ — через cd из командной строки. А, ну ещё те и другие переходом к редактируемому файлу (CtrlF10 из редактора), а тот мог быть вызван по ShiftF4.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1145
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 83 times
Been thanked: 50 times
Contact:

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

Post by buniak_a_h » Tue 08 Oct, 2019 17:43

HaRT wrote:
Tue 08 Oct, 2019 17:09
Я не столь оптимистичен — в скрипте нет такой важной фичи, как поддержка UNC-путей, а также путей (как обычных, так и UNC) с префиксами \\?\ и \\?\UNC\ за компанию.
Ещё не поддерживается плагиновая панель (например, в архиве можно было бы организовать переход вместо SetPath посылкой нескольких CtrlPgDn (для выхода наверх). Ограничил я (чтоб не загружать). Хотя вот стал разбираться с разницей Path и Path0 (что из них в заголовке. Оказалось ни то и ни то), так и желание добить и плагиновые панели появилось.

buniak_a_h
Posts: 1145
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 83 times
Been thanked: 50 times
Contact:

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

Post by buniak_a_h » Tue 08 Oct, 2019 18:25

HaRT wrote:
Mon 07 Oct, 2019 10:17
у меня локально есть кое-какие небольшие исправления для диалогового режима
Хотелось бы подробнее. Заинтриговали и молчите!

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

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

Post by HaRT » Tue 08 Oct, 2019 19:04

buniak_a_h wrote:
Tue 08 Oct, 2019 18:25
Хотелось бы подробнее. Заинтриговали и молчите!
Вот как раз сейчас активно объединяю, а также исправляю тексты.
Кстати, раз уж теперь история версий есть в Справке, может, убрать её из кода, чтобы не поддерживать ещё и в третьем месте?
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by HaRT » Tue 08 Oct, 2019 19:46

buniak_a_h wrote:
Tue 08 Oct, 2019 10:02
Вот, всё кажется. В первом сообщении темы. Добавляйте...
Проблемка: невозможно сохранить настройки из-за отсутствия BAX.BaxUtils.DialogItemVal. А в таких условиях я не могу нормально протестировать свои изменения. А непротестированные изменения я, в отличие от некоторых, не выкладываю. ;)
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1145
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 83 times
Been thanked: 50 times
Contact:

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

Post by buniak_a_h » Tue 08 Oct, 2019 20:42

HaRT wrote:
Tue 08 Oct, 2019 19:46
непротестированные изменения я, в отличие от некоторых, не выкладываю
Извините.

P/S Исправлено первое сообщение
Last edited by buniak_a_h on Tue 08 Oct, 2019 20:43, edited 1 time in total.

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

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

Post by HaRT » Tue 08 Oct, 2019 22:17

buniak_a_h wrote:
Tue 08 Oct, 2019 18:25
Хотелось бы подробнее.
Версия 1.1.2 от 09.10.2019
1. buniak_a_h: исправлено сохранение настроек.
2. buniak_a_h: история изменений удалена из кода скрипта.
3. Исправлено позиционирование интерактивных элементов диалога (по ПКМ) при постоянно показанном главном меню.
4. В диалоговом режиме исправлен заголовок консольного окна.
5. Исправлено действие настройки «С заголовком».
6. Устранено пустое закрашенное знакоместо справа от кнопки «►» в диалоговом режиме.
7. Исправлены опечатки в идентификаторах LNG-файла и в файле справки, улучшены формулировки.
8. Добавлены горячие клавиши в диалоге настроек.
9. Присвоен UUID и придано Описание макросу на щелчок СКМ (средней кнопкой мыши).
ClickToTitleDir-1.1.2.7z
(11.76 KiB) Downloaded 23 times
Думаю, что этот же файл можно вставить в заглавное сообщение, не перезаливая.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1145
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 83 times
Been thanked: 50 times
Contact:

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

Post by buniak_a_h » Tue 08 Oct, 2019 23:37

HaRT wrote:
Tue 08 Oct, 2019 22:17
Версия 1.1.2 от 09.10.2019
Спасибо
HaRT wrote:
Tue 08 Oct, 2019 17:24
UNC-пути (\\Host\Share\Path\to\my\dir) — через cd или переходом, например, из стандартного плагина Network
Я убрал возможно лишнее ограничение на not Panel.Plugin, и с минимальными переделками скрипт стал работать как в архиве, так и на сети (если путь такой, как Вы написали). Ну, с некоторыми ограничениями типа клик на имени хоста не приводит к выходу на панель плагина Network с выбором шары; клик на имени файла архива не приводит к выходу из архива. Просто я пока не знаю, как определить для таких плагиновых панелей заголовок. Но, раскинув тем, что у меня на месте моска, я подумал, что лучше ограниченная функциональность, чем отсутствие оной.
С путями с префиксами \\?\ и \\?\UNC\ я не стал разбираться. На самом деле в той статье, ссылку на которую Вы прислали, написано что-то странное. "Длина пути ограничена 260 символов, если не используется префикс \\?\" - как Вы понимаете, это неправда. "Т.к. вы не можете использовать префикс \\?\ с относительными путями, то относительный путь ограничен MAX_PATH (260 байт)" - как Вы понимаете, это - тоже не так. Или я неправильно перевёл? Или статья сильно устарела. Но даже если путь указан с префиксами, функционал скрипта не порушен (кроме выбора диска по клику левее буквы диска).

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

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

Post by HaRT » Tue 08 Oct, 2019 23:51

buniak_a_h wrote:
Tue 08 Oct, 2019 23:37
На самом деле в той статье, ссылку на которую Вы прислали, написано что-то странное.
Это часть официальной документации WinAPI. Я не хотел бы тут вдаваться в обсуждение того, где оно применимо и в какой степени. Ссылку я привёл только в качестве обоснования правомерности таких путей и желательности их поддержки.

По работе скрипта у меня есть ещё несколько небольших замечаний и предложений, но это уже не сегодня.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1145
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 83 times
Been thanked: 50 times
Contact:

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

Post by buniak_a_h » Wed 09 Oct, 2019 01:14

HaRT wrote:
Tue 08 Oct, 2019 22:17
3. Исправлено позиционирование интерактивных элементов диалога (по ПКМ) при постоянно показанном главном меню.
У меня, честно говоря, получается, что не исправлено, а испорчено.
Сделал каталог %Temp%\190930\1qqqqqqqqqqqqqqq qqqqqqqqqqqqqqqq qqqqqqqqqqqqq\2eeeeeee eeeeeeeee eeeeeeeeeee\3wwwwwwwwww wwwwwwwwwww wwwwww
Нажал ПКМ на заголовке. Получил:

Code: Select all

P wwwwww wwwwww ►eeeeeeeeee\3wwwwwwwwww wwwwwwwwwww wwwwww ╗
(на самом деле под "P" "прячется кнопка ◄, но её не видно. Ну и ширина поля значительно меньше, чем заголовок панели. Соответственно конец пути присутствует на экране дважды: в поле ввода и в заголовке панели. В общем, извините...
Ну и вдогонку. Зачем нужен DI_DOUBLEBOX, если (а) он высотой в один символ и (б) закрыт остальными элементами диалога?
Короче, диалог пока не принят.

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

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

Post by HaRT » Wed 09 Oct, 2019 01:52

buniak_a_h wrote:
Wed 09 Oct, 2019 01:14
У меня, честно говоря, получается, что не исправлено, а испорчено.
Исправление позиционирования было только вертикальное — то, где Y0 заменялся на 0. С тем, что вы описываете, попытаюсь разобраться, но позже. Быстро воспроизвести проблему не смог — ни на узкой панели, ни на широкой, ни с меню, ни без (что и не странно). Напишите, пожалуйста, подробно, как повторить эту ситуацию (притом без ConEmu).
У вас точно нет локальных изменений в скрипте? Не используются ли какие-то функции из ваших локальных модулей вместо тех, что в скрипте? Из изменений, которые могли бы иметь хоть какое-то отношение к наблюдаемому у вас поведению было только то, что я убрал DIF_CENTERGROUP за ненадобностью.
buniak_a_h wrote:
Wed 09 Oct, 2019 01:14
Зачем нужен DI_DOUBLEBOX, если (а) он высотой в один символ и (б) закрыт остальными элементами диалога?
Это заголовок диалога, который выносится Фаром в заголовок консольного окна. В том и состоит единственное назначение этого элемента.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1145
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 83 times
Been thanked: 50 times
Contact:

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

Post by buniak_a_h » Wed 09 Oct, 2019 02:04

HaRT, событие DN_CTLCOLORDLGITEM.
Вы сами пишете, что для DI_BUTTON используется две подтаблицы. Так почему Вы одну оставили, а одну - убрали?
Или я не понял документацию (что, в общем, естественно - там написана полная галиматья: нумерация элементов таблицы начинается с 1, а не с 0), то ли есть какие-то недокументированные возможности. Но пусть уж лучше будет. Так что тоже не принимается пока.
Ещё почему-то пропала проверка Param2.ButtonState при Param2.EventType == F.MOUSE_EVENT - я не понял, почему. И просьба на будущее форматирование только "расширять", но не упрощать, а то мне с плохим зрением трудно разобраться, если в одной строке несколько скобок
Пока перерыв...

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

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

Post by HaRT » Wed 09 Oct, 2019 02:10

buniak_a_h wrote:
Wed 09 Oct, 2019 02:04
почему Вы одну оставили, а одну - убрали?
Потому что её наличие ни на что не влияло (очевидно, значения по умолчанию работают). В документации действительно с индексами что-то не то.
buniak_a_h wrote:
Wed 09 Oct, 2019 02:04
почему-то пропала проверка Param2.ButtonState при Param2.EventType == F.MOUSE_EVENT
А вот это действительно ошибка, вкравшаяся при объединении изменений. Прошу прощения.
И ещё, гляжу, я там вот эту строку потерял: if Param2.EventType == F.KEY_EVENT then hDlg:send("DM_REDRAW") end
buniak_a_h wrote:
Wed 09 Oct, 2019 02:04
форматирование только "расширять", но не упрощать, а то мне с плохим зрением трудно разобраться
Хорошо, учту. Кстати, а вы редактируете код на Луа с подсветкой синтаксиса или без? Если без, то и с хорошим зрением многое трудно увидеть.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1145
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 83 times
Been thanked: 50 times
Contact:

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

Post by buniak_a_h » Wed 09 Oct, 2019 02:26

HaRT wrote:
Wed 09 Oct, 2019 01:52
Напишите, пожалуйста, подробно, как её повторить (притом без ConEmu).
Ещё подробнее???
1. Делаете каталог "%TEMP%\190930\1qqqqqqqqqqqqqqq qqqqqqqqqqqqqqqq qqqqqqqqqqqqq\2eeeeeee eeeeeeeee eeeeeeeeeee\3wwwwwwwwww wwwwwwwwwww wwwwww" (у меня TEMP=C:\Temp) и переходите в него (путь, естественно, на панели не помещается)
2. Клик ПКМ на заголовке (в любом месте)
3. Вот (левая панель):
Image
Фар запущен без ConEmu
Параметры консоли: ширина 120, высота 30 (и буфера, и экрана)
Прежняя версия консоли выключена.
Фар запущен в мобильном варианте (
(это я к тому, что мои имеющиеся скрипты и модули не влияют. Собственно, проверено: при удалении скрипта переход перестаёт работать. Сам скрипт (и все аддоны к нему) просто вытащен из Вашего архива.
HaRT wrote:
Wed 09 Oct, 2019 02:10
Кстати, а вы редактируете код на Луа с подсветкой синтаксиса или без?
Конечно, с подсветкой. Собственно, подсветка в colorer-е - это меньшее, для чего я его использую. Там и список функций, и поиск функции удобные, и переходя на скобки Без него совсем беда была бы.
Last edited by buniak_a_h on Wed 09 Oct, 2019 02:27, edited 1 time in total.

buniak_a_h
Posts: 1145
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 83 times
Been thanked: 50 times
Contact:

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

Post by buniak_a_h » Wed 09 Oct, 2019 02:34

HaRT wrote:
Wed 09 Oct, 2019 01:52
С тем, что вы описываете, попытаюсь разобраться, но позже.
Это правильно. А перед тем возьмёте то, что я выложу. Может, там все проблему уже будут решены.
Была проблема в частности, что поле DI_EDIT "налезало" на границу панели и даже с левой на правую. Ограничить пришлось.

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

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

Post by HaRT » Wed 09 Oct, 2019 02:39

buniak_a_h wrote:
Wed 09 Oct, 2019 02:26
Ещё подробнее???
Просто я проделал ровно эти шаги, и у меня
Но у меня Windows 8.1 (а сборка Фара на скриншоте под спойлером).
buniak_a_h wrote:
Wed 09 Oct, 2019 02:26
3. Вот (левая панель):
Image
Картинка, увы, не грузится, Хром говорит: “This site can’t be reachedThe webpage at https://i86.fastpic.ru/big/2019/1009/83 ... db683.jpeg might be temporarily down or it may have moved permanently to a new web address.
ERR_HTTP2_PROTOCOL_ERROR”
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by HaRT » Wed 09 Oct, 2019 02:46

buniak_a_h wrote:
Wed 09 Oct, 2019 02:34
Это правильно. А перед тем возьмёте то, что я выложу.
Я же со своей стороны прошу не общаться со мной таким тоном, как профессор с первокурсником. Это не способствует плодотворному сотрудничеству. Надеюсь на понимание.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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