EMenu: Explorer Context Menu — Контекстное меню Проводника

Здесь можно обсудить ваш любимый плагин.
User avatar
Wave
Posts: 1772
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by Wave »

Latest post of the previous page:

Эх, меня больше всего достаёт, что есть пункты меню -- картинка -- Их у меня три штуки и тупо по позициям запоминаю, где который.
Пользуюсь ФАРом больше 20 лет © собирательный.

User avatar
John Doe
Бюрократ
Posts: 12832
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by John Doe »

Актуализированная версия стандартных макросов.
Attachments
eMenu.lua.7z
(648 Bytes) Downloaded 130 times

User avatar
John Doe
Бюрократ
Posts: 12832
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by John Doe »

Это просто перевод штатного макроса на "новые рельсы", без каких-либо изменений.
А изменения требуются, я вижу как минимум 2.

1. Запрет вызова на плагиновых панелях
2. Команда "paste" должна выполняться не над выделенными объектами, а в текущую панель.

1 и 2 надо протестировать с Сетью и Деревом.

Кто возьмётся доделать?

P.S.
CtrlAltEnter вообще-то занимать не стоит, потому как на этой клавише сейчас важное действие.
Рекомендую CtrlShiftA

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

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by HaRT »

John Doe wrote:1. Запрет вызова на плагиновых панелях
Это слишком сильное ограничение.
Надо разрешать вызов меню даже для плагиновых панелях, если они показывают реальные файлы. Да, я знаю, что плагин отказывается работать на файлах из разных директорий (или в ФАР3 это уже не так?), но это недоработка в самом плагине, т.к. Проводник отлично показывает меню для многих файлов из разных директорий в результатах поиска.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12832
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by John Doe »

HaRT wrote:Надо разрешать вызов меню даже для плагиновых панелях, если они показывают реальные файлы.
Разумеется.

User avatar
John Doe
Бюрократ
Posts: 12832
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by John Doe »

Сейчас все команды даются посредством меню.
Несколько вложенных меню очевидно не рассчитаны на ручной вызов.
Но ведь и для макросов уже есть намного более правильное средство - Plugin.Call

Предлагается такой формат вызова Plugin.Call:

Code: Select all

Plugin.Call(<guid>[,action[, name], [files], [options]])

 Все параметры опциональны, т.е. могут быть "" или nil

 action: "txt"|"gui"|"cmd"|"item"
 name: имя команды (verb) или пункта меню - только для action ="cmd"|"item"
 files: список файлов
 options: опции, те же что в настройках плагина (пока не привожу), плюс здесь же указывается область действия команды (панель или MyComputer)

 Лучше если options будет не набором флагов, а для каждой настройки свой параметр-строка. Порядок перечисления не важен.

User avatar
Wave
Posts: 1772
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by Wave »

У меня в пользовательском меню есть несколько пунктов: repository update, repository commit, repository log, repository browser. А в системе установлены tortoisesvn, tortoisegit, tortoisehg. Так вот, эти пункты — макросы примерно такого поведения:

находим третий пункт меню -- картинка --, жмём энтер
если в нём есть пункт Shows the log…, жмём
если нет, выходим уровнем выше, находим первый пункт меню -- картинка --, жмём энтер
если там есть пункт Shows the log…, жмём
если нет, выходим, находим второй пункт меню -- картинка --, жмём его
находим Repository status changes и жмём
если же и такого нет, то дважды жмём эскейп.

Чё-та мне кажется, что Plugin.Call эту схему не реализует. Хотя у меня конечно извращённый случай и вообще, работающий механизм никуда не делся.
Ну и в очередной раз подниму вопрос по поводу пунктов меню -- картинка --
Пользуюсь ФАРом больше 20 лет © собирательный.

User avatar
John Doe
Бюрократ
Posts: 12832
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by John Doe »

У многих команд есть свой verb

Code: Select all

┌ Additional information in text menu ───┐
│ ( ) None                               │
│ ( ) Show helptext                      │
│ (•) Show commands                      │
│ [ ] Hide if the same                   │
└────────────────────────────────────────┘

User avatar
Wave
Posts: 1772
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by Wave »

от картинок это не спасает.
Пользуюсь ФАРом больше 20 лет © собирательный.

User avatar
John Doe
Бюрократ
Posts: 12832
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by John Doe »

С некоторых пор в меню дисков по правому клику (или по Apps) запускается eMenu.
(В списке плагинов по F11 его при этом нет, стоит добавить)

Plugin.Menu кстати тоже срабатывает: lm:post Keys'AltF1' Plugin.Menu("742910F1-02ED-4542-851F-DEE37C2E13B2")
Так что надо будет добавить в макросы ('окольными' путями и раньше можно было).

pp
Posts: 35
Joined: Wed 24 Jan, 2007 11:39
Location: Česká republika
Has thanked: 4 times
Contact:

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by pp »

Привет!
Is it possible to use rclk_cmd for commands which are in a "submenu"?




rclk_cmd:tsvn_update works ok, but for rclk_cmd:tsvn_log I'm getting "Can't invoke menu command." :(

2useven10
Posts: 4057
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by 2useven10 »

  1. Macro {
  2.   area="Shell"; key="CtrlShiftL"; flags="NoPluginPanels"; description="svn showchanges";
  3.   action = function()
  4.     local emenu = '742910F1-02ED-4542-851F-DEE37C2E13B2'
  5.     if APanel.Current == '.svn' then Keys('Home') end
  6.     Plugin.Command(emenu,'rclk_cmd:tsvn_log')
  7.   end;
  8. }
works for me...

BTW: Far.DisableHistory(0) -- enables all history

pp
Posts: 35
Joined: Wed 24 Jan, 2007 11:39
Location: Česká republika
Has thanked: 4 times
Contact:

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by pp »

Unfortunately I'm getting the same error :( Your macro works fine with rclk_cmd:tsvn_update or rclk_cmd:tsvn_commit, but not with anything from the sub-menu.

Shmuel
Posts: 6145
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 318 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by Shmuel »

I don't use EMenu, so can't help much.
But you can tell Tortoise SVN (via its "Settings") to place "SVN Show Log" in the top-level menu instead of a submenu.

2useven10
Posts: 4057
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by 2useven10 »

Unfortunately I'm getting the same error :( Your macro works fine with rclk_cmd:tsvn_update or rclk_cmd:tsvn_commit, but not with anything from the sub-menu.
You are right. I forgot, I've moved log to the upper level menu in the tortoise menu settings...

pp
Posts: 35
Joined: Wed 24 Jan, 2007 11:39
Location: Česká republika
Has thanked: 4 times
Contact:

Re: EMenu: Explorer Context Menu — Контекстное меню Проводни

Post by pp »

Shmuel, 2useven10: Thanks for the hint, I was not aware about this option in tortoise menu settings.

Post Reply

Return to “Обсуждение плагинов”