Filter by Column : Powerful filtering/searching tool for all columns

Update v1.4.9 Beta 1 :

CHANGELOG :

GENERAL :

  • New option in Configuration : enable_wilcards .
    • Allows to use Opus Standard Pattern Matching (only in text type values).
    • Now Evaluator is used when enable_wilcards is enabled (Wildcard escape flag and use_filter_builtin were merged to avoid contradictions).
    • In that case, preferred_filter_mode and labels_access are ignored.
  • Other minor corrections.

FAYT :

  • New value for default_implicit_column : current highlighted , which allows implicit reference to the first selected column. To do this, the whole column must be selected beforehand, using right click + Ctrl (see the video below).

  • New Flag : Filter only what is visible, allows to apply the filter only on the currently visible items. useful if you want to apply 2 filters in a row (one on the results of the other).

COMMAND :

  • Removed ESCWILD.

  • New argument USEWILD, to enable the use of wilcards via command (overrides enable_wilcards in configuration).

  • FILTER has a new value : visible to use Filter only what is visible via command.

  • New argument DIALOG, shows a dialog that makes the filtering process easier (The ultimate Excel-like filter function!).

    • No other arguments are valid when using DIALOG.

    • Allows simple visual filtering and access to more advanced filtering using an advanced dialog.

    • Multi values columns (tags, label, etc) allows using logical AND.

    • Supported values are :

      • filterall, to use all items in the tab (by default it only uses the ones currently visible)
      • Any column keyword (built-in,script,evaluator,shell).
      • A name previously defined in custom_column_names.
      • At least one column is needed to start, since is the first one enabled at startup. The other columns can still be accessed from the same dialog later (only the built-in ones unfortunately).
    • It has some quick filters depending on the column type (string, number, date, etc), via More Options and Customize... or by pressing F4

    • In this mode, you can change in runtime the category (string,number,etc) of a custom column, if It's not registered. Optionally allows to save the option in configuration for future use (both in FAYT and command mode).

    • Queries via command are also saved in the history (with DIALOG, only those using Search in the advanced dialog).

    • You can export the results to a collection, using the To Coll button.

      • Use configured values for collection name and create subcollections.
      • Press together with shift to store in the background and continue using the dialog.
    • The buttons (icons?) at the bottom from left to right :

      • Swap, to invert the current selection
      • Clear, to clear the selection
      • Refresh, to re-read the values (NOTE: Using this means using ALL items in the tab, not only the ones initially visible)
    • Hotkeys :

      • F3 : Focus to edit control
      • F4 : Access to the advanced dialog
      • F5 : Similar to pressing the Refresh icon, already explained.

NOTES :

  • The reading time of each column values for the dialog is directly proportional to the number of items to be processed. It also increases if the column was not currently visible, and if It's a custom column.
  • You can close the dialog if it occurs to you to use it with 10000 items and you think it takes too long. For built-in columns, it should also stop the process. For custom columns it's a different story.
  • The custom columns values are obtained by a trick with Evaluator (first introduced in my other script Columns Viewer), and once the operation is started it can't be stopped (at least with everything I've tried). (So it's better to use them only when they are already visible, and therefore already calculated).
  • The dialog allows to interact with the Lister, so performing some actions with the dialog open could affect it in unknown ways.
    • If you close, update or change the path in the tab with the dialog open, the dialog closes.
  • The filter in the dialog is NOT SIMILAR AND DOES NOT HAVE THE SAME SYNTAXIS as the command itself. It's a simple filter for the list below. If you want something similar, you can use the advanced dialog (Customize...) and click on 'Filter', or directly use the FAYT mode or the other command arguments. For example, you can set default_implicit_column to current highlighted, check on Filter only what is visible and then use it like this:

LIMITATIONS / TODO / IDEAS:

  • If you use advanced dialog (via More Options), the options in the list are not updated to match the results. This is understandable, since the options were not supposed to be the necessary ones, but since it can cause some confusion I imagine that it should be updated as well...
  • Currently you get the values each time a column is accessed via the combobox. The ideal would be to do that once for all items (even if they are hidden) and then in subsequent calls, filter those not currently visible based on the values already calculated. As this implies more work on my part, it can be implemented in later versions (so use/change columns or refresh the dialog list when necessary, especially for custom columns that create a cache in an exotic way).
  • Implement timers for the three buttons at the bottom, this in order to avoid overloading Opus, since someone can think of pressing them continuously :slight_smile:
  • If the Lister is refreshed, update also the dialog ? (I'll have to see how complicated it would be to implement that).
  • Handle the Attributes column as multi value, with more friendly options (e.g. archive instead of a). (Done in current beta)
  • Add more quick filters in More Options (I'm open to suggestions :blush:).
5 Likes