PanelFilter — фильтр панели

Здесь обсуждается всё, что касается макросов.
Post Reply
Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter — фильтр панели

Post by Shmuel » Mon 28 Dec, 2015 12:34

Это скрипт из комплекта fl_scripts, адаптированный в макрос и несколько усовершенствованный.
Описание работы - в самом файле.
panelfilter_20170218.7z
(1.67 KiB) Downloaded 57 times

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter - фильтр панели

Post by Shmuel » Tue 29 Dec, 2015 11:47

Обновление в шапке:
1. Клавиши Left и Right более не перенаправляются: они нужны для редактирования фильтра.
2. Fix: курсор прыгал в конец после каждого изменения в строке фильтра.

User avatar
Dennis_Moore
Posts: 235
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 5 times
Been thanked: 10 times

PanelFilter — фильтр панели

Post by Dennis_Moore » Sat 18 Feb, 2017 15:31

Спасибо за скрипт Shmuel! У меня похоже сегодня день багов.

Вызываю скрипт и пробую ввести, например, слово target но фильтр идет только по одной букве т.к. после ввода каждой делается выделение строки. Таким образом для фильтрации более чем одной буквы нужно после ввода каждой нажимать "Right".
Буду благодарен за исправление.
Last edited by Dennis_Moore on Sat 18 Feb, 2017 15:32, edited 1 time in total.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter — фильтр панели

Post by Shmuel » Sat 18 Feb, 2017 15:36

Dennis_Moore wrote: после ввода каждой делается выделение строки
Исправлю, если смогу воспроизвести. У меня выделения не происходит.

User avatar
Dennis_Moore
Posts: 235
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 5 times
Been thanked: 10 times

PanelFilter — фильтр панели

Post by Dennis_Moore » Sat 18 Feb, 2017 15:46

Shmuel wrote:
Dennis_Moore wrote: после ввода каждой делается выделение строки
Исправлю, если смогу воспроизвести. У меня выделения не происходит.
Макросы не виноваты, а вот если убрать все плагины кроме luamacro то проблема исчезает. Как узнаю кто плагин-виновник напишу сюда.

User avatar
Dennis_Moore
Posts: 235
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 5 times
Been thanked: 10 times

PanelFilter — фильтр панели

Post by Dennis_Moore » Sat 18 Feb, 2017 15:54

Виновник был определен быстро: DlgSelect. Можно ли подружить макрос с плагином или плагин придется убрать?

P.S. Прошу прощения за ложный баг-репорт.
Last edited by Dennis_Moore on Sat 18 Feb, 2017 15:56, edited 1 time in total.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter — фильтр панели

Post by Shmuel » Sat 18 Feb, 2017 16:37

Dennis_Moore wrote: Можно ли подружить макрос с плагином
Вставьте после строки if Coord ... следующую строку:
mf.postmacro(handle.send,handle,F.DM_SETSELECTION,1,{BlockType=0})

User avatar
Dennis_Moore
Posts: 235
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 5 times
Been thanked: 10 times

PanelFilter — фильтр панели

Post by Dennis_Moore » Sat 01 Apr, 2017 20:40

Дописал в конце скрипта макрос удаления фильтра:

Code: Select all

Macro {
  description="Remove <Panel Filter> filtration";
  area="Shell"; key="CtrlShiftP";
  action=function() Keys("CtrlI RAlt _ l u a f i l t e r _ Del Enter Esc"); end;
}
и теперть при нажатии Ctrl-Shift-P выводится меню с выбором действия. Удобно что не занимает дополнительное сочетание.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter — фильтр панели

Post by Shmuel » Sat 01 Apr, 2017 20:48

Dennis_Moore wrote: при нажатии Ctrl-Shift-P выводится меню с выбором действия. Удобно что не занимает дополнительное сочетание.
Нажали Ctrl-Shift-P и шорткат из меню - два нажатия. В исходном варианте нужно нажать Ctrl-Shift-P и Esc - те же 2 нажатия. Поэтому не очень ясно, что мы выигрываем этой модификацией.

User avatar
Dennis_Moore
Posts: 235
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 5 times
Been thanked: 10 times

PanelFilter — фильтр панели

Post by Dennis_Moore » Sat 01 Apr, 2017 20:55

Shmuel wrote:
Dennis_Moore wrote: при нажатии Ctrl-Shift-P выводится меню с выбором действия. Удобно что не занимает дополнительное сочетание.
Нажали Ctrl-Shift-P и шорткат из меню - два нажатия. В исходном варианте нужно нажать Ctrl-Shift-P и Esc - те же 2 нажатия. Поэтому не очень ясно, что мы выигрываем этой модификацией.
Если отфильтровать и нажать Enter то фильтр потом можно снять или удалением его из списка или повторным вызовом скрипта и очисткой строки фильтрации. Мне показалось удобнее сделать так как выше поскольку во время фильтрации не работают функциональные клавиши, а по Esc фильтр убирается (Esc если просто смотрю наличие элементов, Enter если хочу провести операции над отфильтрованными элементами).

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter — фильтр панели

Post by Shmuel » Sat 01 Apr, 2017 21:02

Обычно стараются минимизировать число нажатий. Ваш вариант не уменьшает число нажатий при отключении, а при включении фильтра - увеличивает с 1 до 2. Хотя - дело вкуса.

User avatar
Dennis_Moore
Posts: 235
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 5 times
Been thanked: 10 times

PanelFilter — фильтр панели

Post by Dennis_Moore » Sat 01 Apr, 2017 21:22

Shmuel wrote: Обычно стараются минимизировать число нажатий. Ваш вариант не уменьшает число нажатий при отключении, а при включении фильтра - увеличивает с 1 до 2. Хотя - дело вкуса.
Я не знаю как еще это можно сделать. Разве что после 34-й строки дописать delfilter(),
тогда можно будет удалить фильтр нажав Ctrl-Shift-P, Enter/Esc (правда немного пострадает функционал - не будет подставлен текущий фильтр). Но если у вас есть предложение как это сделать изящнее буду рад (Ctrl-Shift-P, 2 по-моему удобнее нажимать чем Ctrl+I Del Enter Enter (это если _luafilter_ первый в списке))

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter — фильтр панели

Post by Shmuel » Sat 01 Apr, 2017 21:32

Dennis_Moore, или я туплю, или вы неясно выражаетесь.
Вы дописали макрос удаления фильтра. Получили при вызове меню с 2-мя пунктами: включить и удалить. В оригинальном варианте для удаления надо активизировать фильтр (если он не активен) и нажать Esc. Для этого вовсе не требуется очищать строку, а только нужно нажать Esc.

User avatar
Dennis_Moore
Posts: 235
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 5 times
Been thanked: 10 times

PanelFilter — фильтр панели

Post by Dennis_Moore » Sat 01 Apr, 2017 21:40

Shmuel wrote: Dennis_Moore, или я туплю, или вы неясно выражаетесь.
Вы дописали макрос удаления фильтра. Получили при вызове меню с 2-мя пунктами: включить и удалить. В оригинальном варианте для удаления надо активизировать фильтр (если он не активен) и нажать Esc. Для этого вовсе не требуется очищать строку, а только нужно нажать Esc.
Фильтрую панель, встаю на нужный элемент, хочу отредактировать или скопировать, а F4/F5 не работают пока вызван скрипт. Нажимаю Enter (т.е. выхожу из скрипта и оставляю фильтр), редактирую/копирую/перемещаю/удаляю все что нужно после чего нужно удалить фильтр.

Остановился на варианте с добавлением delfilter() (свой макрос естественно убираю) т.к. так даже удобнее - вон быстрый поиск в панелях тоже не сохраняет строку и никто вроде-бы не жалуется.

Upd. Похоже день дурака не прошел для меня бесследно. Все работает как вы и написали, извините. Но delfilter() пожалуй оставлю - не придется очищать строку, да и фильтр можно будет удалять еще и по Enter.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter — фильтр панели

Post by Shmuel » Sat 01 Apr, 2017 21:49

Dennis_Moore wrote: редактирую/копирую/перемещаю/удаляю все что нужно после чего нужно удалить фильтр.
Ну я в этом раскладе нажимаю CtrlShiftP Esc - фильтр снят и удалён. Это у вас не работает? ... я до сих пор не врубаюсь в потаённый смысл :(

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

PanelFilter — фильтр панели

Post by Shmuel » Sun 02 Apr, 2017 08:33

Скрипт в 1-м посте обновлён с учётом исправления от 18 февраля.

Post Reply

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