Panel.CtrlQ.lua — широкая панель быстрого просмотра

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 11991
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 27 times
Been thanked: 136 times

Re: Panel.CtrlQ.lua — широкая панель быстрого просмотра

Post by John Doe » Mon 15 Sep, 2014 15:00

Latest post of the previous page:

Чтобы работало - попросите автора picture.lua исправить строку 323 на

Code: Select all

mf.postmacro(function() Keys"Esc" if eval(key,2)==-2 then Keys(key) end end)
И ещё один момент: picture.lua срабатывает во время исполнения макропоследовательности, раздвигающей панель.
Это тоже скорее всего стоит исправлять там.
(Можно и в Panel.CtrlQ.lua, но в результате при большом количестве файлов на панели появится задержка)

kozyavkin
Posts: 13
Joined: Thu 25 Feb, 2010 12:08

Re: Panel.CtrlQ.lua — широкая панель быстрого просмотра

Post by kozyavkin » Mon 15 Sep, 2014 17:40

Спасибо! Теперь работает, хорошо.
upd
Работает с макросом из стандартной поставки.
С макросом размещенным здесь, теперь не работает открытие (расширение перед переключением в быстрый просмотр при запуске на картинке) :)
Видимо это связано с тем, что "...picture.lua срабатывает во время исполнения макропоследовательности, раздвигающей панель."

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

Panel.CtrlQ.lua — широкая панель быстрого просмотра

Post by John Doe » Sat 08 Sep, 2018 16:10

Новая итерация, макрос сильно упрощён, за счёт некоторого компромисса в функциональности.
  1. -- This macro is intended to open QView panel with maximum width
  2. -- narrowing filepanel (ideally to width of it's single column)
  3.  
  4. -- IMPORTANT!!:
  5. -- panel mode should be set to have it's first column width as static value
  6. -- e.g. width can be '15', but not '0' and not '40%'
  7.  
  8. -- by default the macro uses panel mode 6 (Descriptions) so you should
  9. -- open Options/File panel modes/Descriptions and fix the value manually
  10.  
  11. -- alternatively you can setup separate mode, and change constant
  12. -- below to it's number
  13.  
  14. local QViewMode  = 6  -- Default: 6 (Descriptions)
  15. local CommonMode = 2  -- Default: 2 (Medium)
  16.  
  17. local MinWidth = 15   -- better if ==first column width
  18.  
  19. local function setQViewMode(P)
  20.   if panel.GetPanelInfo(nil,P).ViewMode==CommonMode then
  21.     panel.SetViewMode(nil,P,QViewMode)
  22.   end
  23. end
  24. local function setCommonMode(P)
  25.   if panel.GetPanelInfo(nil,P).ViewMode==QViewMode then
  26.     panel.SetViewMode(nil,P,CommonMode)
  27.   end
  28. end
  29.  
  30. local QVIEW,APANEL,PPANEL = 2,1,0
  31. Macro {
  32.   description="Toggle 'maximized' quick view panel";
  33.   area="Shell Search"; key="CtrlQ";
  34.   condition=function() --http://bugs.farmanager.com/view.php?id=2692
  35.     return not APanel.Folder or PPanel.Type==QVIEW
  36.   end;
  37.   action=function()
  38.     Keys"CtrlQ"
  39.     if PPanel.FilePanel then
  40.       setCommonMode(APANEL)
  41.       Keys"CtrlClear"
  42.     else
  43.       setQViewMode(APANEL)
  44.       local key = PPanel.Left and "CtrlRight" or "CtrlLeft"
  45.       for i=1,APanel.Width-MinWidth-2 do Keys(key) end
  46.     end
  47.   end;
  48. }
  49.  
  50. Macro {
  51.   description="Toggle 'maximized' quick view panel";
  52.   area="QView"; key="CtrlQ";
  53.   action=function()
  54.     Keys"CtrlQ"
  55.     if PPanel.FilePanel then
  56.       Keys"CtrlClear"
  57.       setCommonMode(PPANEL)
  58.     end
  59.   end;
  60. }
По сравнению с текущим штатным:
  1. В комментарии описана необходимая предварительная настройка, без которой макрос сильно теряет в удобстве (штатный тоже)
  2. areas: +Search (https://bugs.farmanager.com/view.php?id=2853)
  3. condition: Макрос отключён на папках, чтобы избежать проблемы с невозможностью прервать сканирование папок: (http://bugs.farmanager.com/view.php?id=2692)
  4. Дополнительный макрос, учитывающий возможность нажатия CtrlQ в самой панели быстрого просмотра
  5. Минимальная ширина панели теперь настраивается константой (в идеале должна численно совпадать с шириной первой колонки в настройках режима панели)
  6. Номера режимов (общий, и одноколоночный, используемый при QView) теперь настраиваются константами
  7. Режим панели меняется только если совпадает с заданным константой, что особенно важно для панелей, подобных временной, использующих свой кастомизированный режим.

Post Reply

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