Latest post of the previous page:
Всё что после if not selected_cycle then return end можно заменить на вызов Home/EndPanel.JumpToSelectedFile.lua — прыжки по выделенным файлам
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: Panel.JumpToSelectedFile.lua
Да! Сейчас поправлю (у меня циклического перебора вообще не было, поторопился добавить )John Doe wrote:Всё что после if not selected_cycle then return end можно заменить на вызов Home/End
Разум когда-нибудь победит.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: Panel.JumpToSelectedFile.lua
Другое дело.
Теперь я сам буду выступать за то, чтобы заменить штатный вариант вашим.
За лаконичность.
Теперь я сам буду выступать за то, чтобы заменить штатный вариант вашим.
За лаконичность.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: Panel.JumpToSelectedFile.lua
Хотя всё-таки вариант, где за все 4 действия отвечает одна функция, мне кажется более концептуальным.
Вот, разгрузил функцию, вынес наружу инициализацию параметров, теперь она принимает (from,to) Получилось так же лаконично.
Вот, разгрузил функцию, вынес наружу инициализацию параметров, теперь она принимает (from,to) Получилось так же лаконично.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: Panel.JumpToSelectedFile.lua
Попробовал с отметкой текущего файла. Если без цикличности, тоже лаконичный вариант.
С цикличностью менее красиво будет, из-за дополнительных проверок. И что-то лень делать
Добавил цикличность
Code: Select all
local function selected_jump3( dir )
local current = Panel.SetPosIdx(0,0)
local nosel = not Panel.Item(0,0,8)
if nosel then Panel.Select(0,1,1) end
Panel.SetPosIdx(0,Panel.SetPosIdx(0,0,1)+dir,1)
if nosel then Panel.Select(0,0,1,current) end
if selected_cycle and Panel.SetPosIdx(0,0)==current then -- если не переместились, зацикливаем
Panel.SetPosIdx(0,(dir>0 and 1 or APanel.SelCount),1)
end
end
Добавил цикличность
Разум когда-нибудь победит.