Page 1 of 1

Копирование содержимого меню и списков

Posted: Tue 07 Jul, 2015 17:18
by John Doe
По мотивам http://forum.farmanager.com/viewtopic.p ... 13#p131013
  • CtrlAltShiftIns — копировать в буфер обмена элемент под курсором

    CtrlAltShiftC — копировать в буфер обмена все элементы списка
  1. local function isList()
  2.  
  3.   return not Area.Dialog or Dlg.ItemType==far.Flags.DI_LISTBOX
  4.  
  5. end
  6.  
  7.  
  8.  
  9. Macro { description="Copy list's item to clipboard";
  10.  
  11.   area="Menu MainMenu UserMenu Dialog"; key="CtrlAltShiftIns";
  12.  
  13.   id="01B81353-4AE6-41A9-8DAE-B37CF1718EBE";
  14.  
  15.   condition=isList;
  16.  
  17.   action=function()
  18.  
  19.     far.CopyToClipboard(Menu.Value)
  20.  
  21.   end;
  22.  
  23. }
  24.  
  25.  
  26.  
  27. Macro { description="Copy all list's items to clipboard";
  28.  
  29.   area="Menu MainMenu UserMenu Dialog"; key="CtrlAltShiftC";
  30.  
  31.   id="2DD088FB-C840-43A3-9D58-B9B8C03D5174";
  32.  
  33.   condition=isList;
  34.  
  35.   action=function()
  36.  
  37.     local hDlg = far.AdvControl("ACTL_GETWINDOWINFO").Id
  38.  
  39.     if hDlg==0 then Keys"AKey"; return end --HMenu
  40.  
  41.     local list = far.GetDlgItem(hDlg,1)[6]
  42.  
  43.     local txt = {}
  44.  
  45.     for i=1,#list do
  46.  
  47.       txt[i] = list[i].Text:gsub("^&","")
  48.  
  49.     end
  50.  
  51.     far.CopyToClipboard(table.concat(txt,"\n"))
  52.  
  53.   end;
  54.  
  55. }

Копирование содержимого меню

Posted: Tue 07 Jul, 2015 17:24
by Shmuel
John Doe wrote: Однако есть загвоздка: назначив такие общие макросы мы потеряем возможность обрабатывать CtrlIns и CtrlC в диалогах/меню...
Назначить на другие сочетания, например, добавить Alt.

Копирование содержимого меню

Posted: Tue 07 Jul, 2015 18:15
by HaRT
Спасибо!
Из списка сообщений luacheck почему-то не копируются восклицательные знаки из начала элементов списка…
Shmuel wrote: Назначить на другие сочетания, например, добавить Alt.
Я себе назначил на CtrlAltShiftC и CtrlAltShiftIns соответственно.

Копирование содержимого меню

Posted: Tue 07 Jul, 2015 18:24
by John Doe
HaRT wrote: Из списка сообщений luacheck почему-то не копируются восклицательные знаки из начала элементов списка…
Потому что они не являются частью текста.
(я их вообще для себя добавляю, luacheck ничего такого не выдаёт)

Копирование содержимого меню

Posted: Wed 08 Jul, 2015 10:52
by John Doe
Обновил макросы. Теперь работают в любых меню и списках.

Копирование содержимого меню и списков

Posted: Wed 08 Jul, 2015 11:04
by HaRT
John Doe wrote: Теперь работают в любых меню и списках.
Спасибо!

Копирование содержимого меню и списков

Posted: Sat 28 Dec, 2019 05:21
by Xerox
Я вот что не понимаю
Я как-то думал что КтрлАльтШифт делает временное исчезание (до отпускания) текущего окна
НАпример, если мы в панелях шелла, то это убират панели и видно окно вывода.
Если же мы стоим на меню, то менюс убирается таким же образом.
и вот я когда делаю КТрлАЛЬтШифт+C, то у меня окно и исчезает (как бы не дожидаясЬ "C") и копирования не происxодит
КТрлАЛЬтШифт - это системная же прибамбасина, нe так ли?
Что с этим делать?

Копирование содержимого меню и списков

Posted: Sat 28 Dec, 2019 08:15
by citRiks
Xerox,

Насчёт Ctrl+Alt+Shift смотрите System.AllCtrlAltShiftRule и System.CASRule в far:config

Копирование содержимого меню и списков

Posted: Sat 28 Dec, 2019 10:46
by Xerox
citRiks, вот оно чо, михалыч ..
но это не по умолчанию получаются настройки,
поэтому надо бы предупреждать как-то! )