Page 2 of 2

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

Posted: Mon 15 Sep, 2014 11:27
by kozyavkin

Latest post of the previous page:

Far3 4040 x86

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

Posted: Mon 15 Sep, 2014 15:00
by John Doe
Чтобы работало - попросите автора 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, но в результате при большом количестве файлов на панели появится задержка)

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

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

Улучшение макросов из поставки фара

Posted: Tue 28 Nov, 2017 17:15
by John Doe
А в следующем макросе видимо было непонятно много телодвижений.
Если я ничего не упустил, то лучше записать так:

Code: Select all

local min_width = 11
local QView = 2
local DefaultMode = "Ctrl2"
Macro { description="QView: максимизировать панель";
  area="Shell"; key="CtrlQ";
  action=function()
    Keys("AKey")
    if PPanel.Type==QView then
      Keys("Ctrl6") --режим с одной колонкой
      local key = APanel.Left and "CtrlLeft" or "CtrlRight"
      Keys(("%i*%s"):format(APanel.Width-min_width,key))
    else
      Keys(DefaultMode,"CtrlClear")
    end
  end;
}
P.S.
Тестируя макрос наткнулся на проблему:
https://bugs.farmanager.com/view.php?id=3561 (исправлено)
 ! Message from: John Doe
Сообщение перенесено из другой темы, и вероятно не вполне соответствует контесту

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

Posted: Sat 08 Sep, 2018 16:10
by John Doe
Новая итерация, макрос сильно упрощён, за счёт некоторого компромисса в функциональности.
  1. -- This macro is intended to open QView panel with maximum width
  2.  
  3. -- narrowing filepanel (ideally to width of it's single column)
  4.  
  5.  
  6.  
  7. -- IMPORTANT!!:
  8.  
  9. -- panel mode should be set to have it's first column width as static value
  10.  
  11. -- e.g. width can be '15', but not '0' and not '40%'
  12.  
  13.  
  14.  
  15. -- by default the macro uses panel mode 6 (Descriptions) so you should
  16.  
  17. -- open Options/File panel modes/Descriptions and fix the value manually
  18.  
  19.  
  20.  
  21. -- alternatively you can setup separate mode, and change constant
  22.  
  23. -- below to it's number
  24.  
  25.  
  26.  
  27. local QViewMode  = 6  -- Default: 6 (Descriptions)
  28.  
  29. local CommonMode = 2  -- Default: 2 (Medium)
  30.  
  31.  
  32.  
  33. local MinWidth = 15   -- better if ==first column width
  34.  
  35.  
  36.  
  37. local function setQViewMode(P)
  38.  
  39.   if panel.GetPanelInfo(nil,P).ViewMode==CommonMode then
  40.  
  41.     panel.SetViewMode(nil,P,QViewMode)
  42.  
  43.   end
  44.  
  45. end
  46.  
  47. local function setCommonMode(P)
  48.  
  49.   if panel.GetPanelInfo(nil,P).ViewMode==QViewMode then
  50.  
  51.     panel.SetViewMode(nil,P,CommonMode)
  52.  
  53.   end
  54.  
  55. end
  56.  
  57.  
  58.  
  59. local QVIEW,APANEL,PPANEL = 2,1,0
  60.  
  61. Macro {
  62.  
  63.   description="Toggle 'maximized' quick view panel";
  64.  
  65.   area="Shell Search"; key="CtrlQ";
  66.  
  67.   condition=function() --http://bugs.farmanager.com/view.php?id=2692
  68.  
  69.     return not APanel.Folder or PPanel.Type==QVIEW
  70.  
  71.   end;
  72.  
  73.   action=function()
  74.  
  75.     Keys"CtrlQ"
  76.  
  77.     if PPanel.FilePanel then
  78.  
  79.       setCommonMode(APANEL)
  80.  
  81.       Keys"CtrlClear"
  82.  
  83.     else
  84.  
  85.       setQViewMode(APANEL)
  86.  
  87.       local key = PPanel.Left and "CtrlRight" or "CtrlLeft"
  88.  
  89.       for i=1,APanel.Width-MinWidth-2 do Keys(key) end
  90.  
  91.     end
  92.  
  93.   end;
  94.  
  95. }
  96.  
  97.  
  98.  
  99. Macro {
  100.  
  101.   description="Toggle 'maximized' quick view panel";
  102.  
  103.   area="QView"; key="CtrlQ";
  104.  
  105.   action=function()
  106.  
  107.     Keys"CtrlQ"
  108.  
  109.     if PPanel.FilePanel then
  110.  
  111.       Keys"CtrlClear"
  112.  
  113.       setCommonMode(PPANEL)
  114.  
  115.     end
  116.  
  117.   end;
  118.  
  119. }
По сравнению с текущим штатным:
  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. Режим панели меняется только если совпадает с заданным константой, что особенно важно для панелей, подобных временной, использующих свой кастомизированный режим.

Улучшение макросов из поставки фара

Posted: Fri 22 Nov, 2019 14:50
by Xerox
Я тут в стандартном %FARHOME%\Addons\Macros\Panel.CtrlQ.lua улучшил функиональность и причесал
Из улучшений (неполный список):
* Зачем в оригинале был насильственный Ктрл-Ф3 Ctrl2 ?
* Tеперь при отмене Ктрл-Кью (воврат из быстрого просмотра) возвращется к прежнему виду без каких-либо изменений layout, в оригинале этого не было
* Добавил авто-переход в "no-wrap"
* возможно что-то еще, не помню

Code: Select all

-- Far Group (tm) + XeroX (tm) (CopyLeft) 2019
-- based on: 
-- %FARHOME%\Addons\Macros\Panel.CtrlQ.lua
-- fixed and imporoved
-- Panel.CtrlQ.lua.XeroX.lua

Macro { description="Toggle quick view panel"; 
	area="Shell QView"; 
	key="CtrlQ"; 	
	action = function()
		if not Area.QView then
			Keys('Tab')
			is_tab_test = true
		end 
		if Area.QView then
			is_canceled = true
			for ii=1,APanel.Width - APanel_Width__prev do Keys(APanel.Left and 'CtrlLeft' or 'CtrlRight') end
		else
			APanel_Width__prev = APanel.Width
			for ii=1,PPanel.Width - 10 do Keys(APanel.Left and 'CtrlRight' or 'CtrlLeft') end
			is_canceled = false
		end
		if is_tab_test then Keys('Tab') end 
		Keys('CtrlQ') 
		if not is_canceled and not APanel.Folder then 
		--	fix for text lines wrapping: 
			Keys('Tab F2 Tab')
		end 
	end;
}

Улучшение макросов из поставки фара

Posted: Fri 22 Nov, 2019 15:17
by John Doe
Xerox wrote: Fri 22 Nov, 2019 14:50 Зачем в оригинале был насильственный Ктрл-Ф3?
Где?

Вообще корни большинства макросов идут с древних времён, когда многих средств макрозыка ещё не было.
И хоть сейчас макросы и были переведены на луа, но зачастую это было сделано в лоб.

Вот такой вариант не пропустили?
viewtopic.php?p=147589#p147589
(Локально у меня другой, не помню выкладывался ли)

Улучшение макросов из поставки фара

Posted: Fri 22 Nov, 2019 15:32
by Xerox
John Doe, исправил, речь про Ктрл+2:

Code: Select all

if Area.QView then
  Keys('Tab Ctrl2 Tab CtrlClear')
else..

Улучшение макросов из поставки фара

Posted: Fri 22 Nov, 2019 15:36
by Xerox
John Doe wrote: Fri 22 Nov, 2019 15:17 Вот такой вариант не пропустили?
viewtopic.php?p=147589#p147589
пропустил, там есть интересный способ:

Code: Select all

Keys(("%i*%s"):format(APanel.Width-min_width,key))
Но там что мне не нравится есть опять навязывания Ктрл2 (одна колонка), и нужны манипуляции с DefaultMode, и не вижу возврата к "як и було".

Улучшение макросов из поставки фара

Posted: Fri 22 Nov, 2019 15:37
by Xerox
John Doe wrote: Fri 22 Nov, 2019 15:17 (Локально у меня другой, не помню выкладывался ли)
ну выкладывай уже, не томи душу

Улучшение макросов из поставки фара

Posted: Fri 22 Nov, 2019 15:56
by John Doe
Ctrl2 тут очень даже важно, поскольку при отключении 'широкой панели' необходимо вернуться к прежнему режиму противоположной панели, который в общем случае неизвестен, и запомнить его нетривиально.

Улучшение макросов из поставки фара

Posted: Fri 22 Nov, 2019 16:06
by Xerox
John Doe, ну собсна потом и кровью я и решил эту нетривиальную проблему, и уместилось в несколько строк всего лишь.
все возвращается в "як и було".
можно еще ужать исползуя фишку:

Code: Select all

Keys(("%i*%s"):format(APanel.Width-min_width,key))
но я не буду, итак уже тошнит ..
А работает почти идеально и натурально.
Надо только еще потестрировать с разными панелями, в архивах например мне казалось что подглючивает
Ну да бох с ним, есть кнопка центрирования если что

Улучшение макросов из поставки фара

Posted: Fri 22 Nov, 2019 16:21
by John Doe
Xerox wrote: Fri 22 Nov, 2019 16:06 А работает почти идеально и натурально.
У меня нет возможности протестировать ваш вариант сейчас.
Возможно отвечу позже, когда дойдут руки.
 ! Message from: John Doe
Выяснилось, что макрос независимо обсуждался в двух темах.
Объединил.

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

Posted: Sun 08 Dec, 2019 15:47
by Xerox
John Doe,
Так что, не удалось простестировать мой вариант?
По моему все довольно ультимативно хорошо и как ожидаемо работает.
T.е. - не нужно никаких преднастраиваний, заданий режимов.
Сделали КонтролКью - расширился экран, в режиме "no wrap"
(вроде все хотят "no wrap", но кто не хочет пусть уберет из скрипта, там одна строчка)
Отменили КонтролКью - экран вернулся ровно в те же размеры где и был, без никаких бы то ни было изменений
Если будет где глючить, -скажите где, я подправлю

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

Posted: Wed 15 Jan, 2020 13:54
by citRiks
Очередную вариацию сабжевого скрипта (автор Xerox) можно взять на ГитХабе.
Panel.CtrlQ.XeRoX.lua
(3.13 KiB) Downloaded 66 times

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

Posted: Sat 22 Feb, 2020 15:37
by citRiks
citRiks wrote: Wed 15 Jan, 2020 13:54 Очередную вариацию сабжевого скрипта
Очередная "очередная версия" тут:
https://github.com/dr-dba/LUA-FAR-STUFF ... .XeR0X.lua
@XeRoX wrote: У тебя он не срабатывал раньше, теперь исправлено.
там есть сейчас еще выход по Escape из QuickView, и заодно из InfoPAnel (CtrlL)
какие-то еще улучшения