Page 1 of 5

Автофильтр вместо быстрого поиска

Posted: Mon 22 Dec, 2014 20:53
by John Doe
Предлагаемый набор макросов реализует в панелях автофильтр, применяющийся динамически, по мере набора текста.
В качестве поля ввода используется панель Быстрого поиска (Search).
Автофильтр может использоваться как вместо Быстрого поиска, так и независимо от него.

Использование:
  • Клавиша активации: Alt (одиночное нажатие) в панелях — открывает панельку автофильтра.
    — Если в активной панели в настоящий момент не установлен фильтр, то подставляется маска *.
    — Если панель уже отфильтрована, то подставляется строка активного фильтра (по возможности: ).
  • По умолчанию действия левой и правой клавиши несколько отличаются:
    • LAlt запускает автофильтр в "немодальном" режиме, удобном для использования вместо Быстрого поиска:
      NB! При закрытии панельки (по Esc, или после выполнения какого-либо действия) фильтр панели сразу снимается.
    • RAlt запускает автофильтр в "постоянном" режиме, т.е. фильтр панели панели не сбросится до тех пор, пока пользователь не снимет его явно.
      NB! Для быстрого снятия фильтра достаточно нажать Esc в панелях.
    • Любое из действий (или оба) можно переназначить на другую комбинацию клавиш:
  • В панельке автофильтра действуют те же клавиши, что и при Быстром поиске, в частности:
    Большинство остальных клавиш передаются в панели, выполняя соответствующие действия в панелях, при этом панелька автофильтра закрывается.
    NB: есть возможность в options задать список клавиш, которые не будут закрывать автофильтр:
Дополнительно:

Credits:

Требования: FAR 3.0 build >= 5416

Автофильтр вместо быстрого поиска

Posted: Wed 24 Dec, 2014 14:17
by fml2
Замечательный макрос, спасибо! Буду пользоваться! Часто это именно то, что надо.

У меня еще пара предложений есть:

1. (Если возможно) менять заголовочек в окне ввода фильтра в зависимости от текущего режима (сейчас там всегда "Search"). При смене режима высвечивается короткое сообщение, но если режим не меняется?

2. Если в режиме фильтра стереть все символы фильтра, т.е. сделать фильтр пустым, то, по сути, ничего не фильтруется, однако в панели рядом с символом сортировки стоит звездочка -- как будто есть какой-то фильтр. Нельзя ли эту звездочку убирать?

Автофильтр вместо быстрого поиска

Posted: Wed 24 Dec, 2014 15:56
by John Doe
fml2 wrote: (Если возможно) менять заголовочек в окне ввода фильтра в зависимости от текущего режима
Поменять заголовок штатной панельки Search невозможно. Но цветом наверно можно поиграть.

Вообще, согласно названия темы, стоит подумать над тем, как не переключать режимы, а всегда пользоваться автофильтром вместо быстрого поиска.
(Тут возможны варианты, пока думаю как лучше)
fml2 wrote: Нельзя ли эту звездочку убирать?
А чем именно она мешает?

Автофильтр вместо быстрого поиска

Posted: Wed 24 Dec, 2014 18:21
by fml2
John Doe wrote:
fml2 wrote:Source of the post Нельзя ли эту звездочку убирать?

А чем именно она мешает?
Мешает тем, что создает впечатление, что что-то отфильтровано. И надо снова вызавать фильтр, чтобы убедиться, что на самом деле ничего не фильтруется. Ведь со времени последнего редактирования фильтра может пройти какое-то время, после которого я лично уже не буду помнить, что же я там установил при последнем редактировании. Ну или если несколько экземпляров Фара открыто.

Насчет фильтра вместо поиска: я считаю, что если фильтр (а не поиск) устанавливается по умолчанию, то сохранить функцию быстрого поиска можно, но не обязательно. Клавиша переключения режимов достаточно "трудная", так что так, как оно сейчас, вполне неплохо.

Автофильтр вместо быстрого поиска

Posted: Wed 24 Dec, 2014 21:57
by John Doe
fml2 wrote: Мешает тем, что создает впечатление, что что-то отфильтровано.
А, понял наконец о какой звёздочке речь.
Конечно её не должно быть при пустом фильтре (у меня сейчас на рабочей версии не воспроизводится).
Возможно какой-то другой фильтр включен? Откройте список по CtrlI и поотключайте ненужное.
fml2 wrote: Насчет фильтра вместо поиска:
В следующей версии будет максимально упрощено отключение фильтра, после этого можно действительно попробовать отказаться от быстрого поиска.

Или же оставить быстрый поиск, назначив его (например) на RAlt.
Альтернативно: одна из функций может запускаться если набирать удерживая Alt (а если без удержания, то запускается вторая функция)

Автофильтр вместо быстрого поиска

Posted: Wed 24 Dec, 2014 22:11
by John Doe
John Doe wrote: В следующей версии будет максимально упрощено отключение фильтра, после этого можно действительно попробовать отказаться от быстрого поиска.
Чтобы фильтр не путался под ногами, его надо автоматически отключать после любого действия.
Вот думаю, не слишком ли радикально получится...

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 11:27
by fml2
John Doe wrote:Чтобы фильтр не путался под ногами, его надо автоматически отключать после любого действия.
Вот думаю, не слишком ли радикально получится...
Думаю, будет слишком радикально. Большие изменения без действий пользователя, специально направленных на это.

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 11:34
by fml2
John Doe wrote: Конечно её не должно быть при пустом фильтре (у меня сейчас на рабочей версии не воспроизводится).
У меня воспроизводится 100%. Запускаем Фар, никакого фильтра (и поэтому звездочки) нету. Нажимаем Alt и начинаем набирать буквы f, o (в моем случае). Список файлов в панели фильтруется, рядом с n (сортировка по имени) появляется звездочка. Не выходя из режима фильтра, стираем набранные буквы f и o. Список файлов становится полным, но звездочка не пропадает. Нажимаем Esc, чтобы убрать поле ввода фильтра. Все остается как было, т.е., по сути, никакого фильтра, но звездочка имеется. При нажатии Ctrl+I вижу такую первую строчку: + _panelfilter_Right │ .............................. ... │ * Это автоматически создаваемый фильтр? Если да, то нельзя ли его как-нибудь более осмысленно назвать?

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 11:47
by John Doe
fml2 wrote: Большие изменения без действий пользователя, специально направленных на это.
Мы сейчас рассматриваем фильтр как замену быстрого поиска.
Быстрый поиск немодален, т.е. после перехода на файл и выполнения какого-либо действия наличие фильтра будет неожиданно.

А для "закрепления" фильтра можно выделить свою комбинацию клавиш.
fml2 wrote: У меня воспроизводится 100%
Разбираться со старой версией смысла нет, а в новой этой проблемы не будет.
fml2 wrote: Если да, то нельзя ли его как-нибудь более осмысленно назвать?
Например?

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 13:43
by fml2
John Doe wrote: Разбираться со старой версией смысла нет, а в новой этой проблемы не будет.
Хорошо, будем ждать новой версии. Тем более, что в нынешней я обнаружил еще одну странность / неинтуитивность.
John Doe wrote: fml2 wrote:Source of the post Если да, то нельзя ли его как-нибудь более осмысленно назвать?

Например?
Может, что-нибудь типа "Быстрый фильтр справа" ("Right ad hoc filter")? Ну и аналогично слева.

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 13:53
by HaRT
fml2 wrote: "Быстрый фильтр справа" ("Right ad hoc filter")
Тогда уж “Right-side ad hoc filter”.

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 13:57
by John Doe
fml2 wrote: Может, что-нибудь типа "Быстрый фильтр справа" ("Right ad hoc filter")? Ну и аналогично слева.
Мне это всё равно.
Имя настраивается: local filtername="_panelfilter_"
fml2 wrote: в нынешней я обнаружил еще одну странность / неинтуитивность
?

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 18:51
by fml2
Набираем фильтр "fo". Файлы в панели фильтруются. Выходим из фильтра (нажимаем Esc). Теперь нам хочется отфильтровать файлы, начинающиеся с "g". Нажимаем Alt и, не отпуская ее, набираем g. Появляется поле фильтра, но оно пусто. g туда не вводится (т.к. файлов, начинающихця на "fog" нет?) Выход из ситуации пока такой: нажимаем и отпускаем Alt -- появляется фильтр с "fo". Стираем fo, набираем g.

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 19:41
by John Doe
fml2 wrote: (т.к. файлов, начинающихця на "fog" нет?)
Потому что на текущей уже отфильтрованной панели нет файлов, содержащих g.
fml2 wrote: Нажимаем Alt и, не отпуская ее, набираем g.
Все возможные комбинации с Alt перехватывать мы не станем, поэтому надо предварительно сбросить имеющийся фильтр.
В следующей версии для этого будет достаточно нажать Esc в панелях.

Автофильтр вместо быстрого поиска

Posted: Thu 25 Dec, 2014 20:43
by fml2
John Doe wrote: Потому что на текущей уже отфильтрованной панели нет файлов, содержащих g.
Это объяснение сошло бы, если бы ввод фильтра при уже действующем фильтре фильтровал бы "повторно" (или "дополнительным уровнем"). Но это не так: если при имеющемся фильтре "fo" ввести фильтр "*2", то показаваются все файлы на панели, имеющие 2 в имени, а не только те, что начинаются с "fo" и содержат 2.

Дождемся новой версии, зачем обсуждать уже не существующие?