Columns Viewer

:warning: IMPORTANT: Needs at least DOpus v13.7.1
v1.4.0 (Jul 12, 2024) :

  • Added support for datetimeoriginal and datetimecreated columns.
  • Added support for minimize and maximize buttons in the titlebar.
2 Likes

:warning: IMPORTANT: Needs at least v13.9.1

v1.5.0 (Jul 28, 2024) :

  • Added support for Streams, Permissions, Availability, and Signed By columns.
  • Other minor improvements and updates.
1 Like

This is another great search tool! Thanks (again!).

Observations:

Columns Viewer 1.50 does not show its dialog when:

  • Starting in the ThisPC folder
  • Starting in a newly opened folder

As documented in the usage section above, before starting Columns Viewer, you must select a file or folder item if you are using ColumnsViewer without any additional startup arguments.

Suggestion:

  • Instead of showing nothing, show a message indicating the requirement.

Thanks for the feedback!

Noted.

That is a special type of path, different from a regular filesystem folder. IIt may work if you add an entry via the context menu in the 'Drive' file type. However, some corrections are needed in the way the command retrieves information in certain scenarios (Rename Preset abuse doesn’t work in this case). Most columns also won’t work there.

FWIW, I do have a version 2.0, which incorporates some things I’ve recently learned (mostly thanks to the ToolbarPalette command, which you’re already familiar with). It's still in a preview state, so anyone interested in testing it is welcome to DM me.

1 Like

Hi.
Since the scripts I’ve created—and some I’ve shared here—have received several internal updates that haven’t been published, I’ve decided it’s better to release them periodically rather than keep them to myself, letting them gather dust and fade into oblivion.
So, starting with this script, version 2.0a, introduces a lot of changes:

  • Speed! Significant performance improvements.
  • New Data Retrieval Method: A faster and more efficient approach without using temporary files.
  • Progress Bar: Now included within the dialog itself.
  • Internal Command Overhaul: Now uses two parallel tasks, contributing to the speed boost.
  • Now has support for even more built-in columns!
  • Improved Search Methods: Enhanced and more flexible search capabilities. Instant search is also improved.
  • Wildcard Support: Expanded to support Opus wildcard syntax.
  • Advanced Search Mode: A new, powerful way to refine results (see syntax below).
  • New Arguments: Now you can choose which columns to display!
    • INCLUDE: Include only the listed groups/columns (supports wildcards).
    • EXCLUDE: Exclude the listed groups/columns (supports wildcards).
    • Additional Switches: REGEX/S, CASE/S, WHOLEWORDS/S, DIACRITICS/S, WILDCARDS/S, ADVSEARCH/S.
  • Support for most of the columns in 'This PC', so you can actually use it in that context if you want to.
  • Some options in Script Config are no longer valid : values obtention method and dialog size mode.

Notes and some Technical Stuff:

  • Password-protected archives might prompt for a password, which is beyond the script’s scope to handle.
  • INCLUDE and EXCLUDE Arguments:
    • Values are separated by commas (e.g., mp3*,*count*).
    • To refer a "group" you can use grp: followed by the column's type (audio,pictures,script,etc).
    • These type of arguments (Keyword type) are treated and passed as single strings by Opus. So if a value includes spaces or commas, it might break the parsing (currently I'm just using split(',') :sweat_smile:). So, that might be another clue that using a comma or space in the actual keyword of a script/evaluator column is not a good idea.
      Advanced Search Syntax: Support the following syntax:
    • $n|l|h|v|t(==|!=)"value" ; where:
      • $n: Name
      • $l: Label
      • $h: Header
      • $v: Value
      • $t: Type (group)
    • Example: $t=="audio" AND $v != "" ; to list all the audio columns whose value is not empty.
    • In this mode, instant search is disabled, requiring you to press Enter to perform the filtering.

Important:

Since some features (like INCLUDE/EXCLUDE for customizing data) have been added very recently, there may be bugs. Please report any issues you encounter if you decide to test this command.

ColumnsViewer.opusscriptinstall (22.8 KB)

4 Likes

This is a great script that makes up for the lack of information displayed in the dopus built-in metadata pane.
There are some suggestions for improvement that I hope you can adopt:

  1. Embed the display pane to the right of the dopus lister like the metadata pane, and dynamically update the right pane information when the file on the left is selected.
  2. Added an optional option: Hide/exclude meta attributes with null values to save display space
  3. Added read/write support for some editable meta attributes

Thanks for the feedback.

  1. Already asked. Sign in and let's hope it can be implemented in the near future.
  2. Makes sense. I'll make a note.
  3. Actually I do have another version (unpublished :smile:) that play with that idea. A pseudo data grid that lets you edit some properties. Some ideas I've considered:
  • An "Edit Mode" button to toggle this feature, so you don't end changing something by mistake.
  • Since there's no such "one control" for that task, you have to "merge" the current available ones, and display the appropiate when the user double-clicks to edit a writable property (some ideas were dropped in here).
  • Not sure whether it should be a separate script command or an updated version of this one with these features. Either way, it's definitely on my roadmap.
  • (I’ve also added support for editing data for this experiment)

Hi everyone.
After reviewing the three points I mentioned earlier, I think I’m heading in the right direction.

In the video, you can see:

  • The ability to filter out empty values at runtime.
  • An option to edit certain values. When this mode is activated, only columns with editable values stay visible, while the others are hidden. Some parts of the UI also deactivate.
  • Support for OpusCustomFields, a script that lets you define custom fields, including reading and writing to them.

It’s obviously not fully polished yet—some fields still need a closer review regarding the types of data they can handle, and I’ve got a few ideas to improve the current flow. But so far, things are looking pretty promising.

What would really help is a few testers willing to try out the script and help identify bugs and bring some nice ideas. Ideally, people who are ready to provide feedback that goes beyond just throwing requests my way :slight_smile:

If you’re interested, feel free to PM me.

Best regards and happy holidays!

2 Likes

Version v2.0a generates an error as shown below when processing the attached file. The same error occurred in v1.5. I have resisted the urge to delve into the code myself. :sunglasses:

Navigator.opusscriptinstall (376.5 KB)

 25/12/2024 12:26:11.019 PM ExifTool:    0:033 ... Handing over 54 files to ExifTool...
 25/12/2024 12:26:11.019 PM ExifTool:    0:033 "C:\Program Files\exiftool\exiftool.exe" -@ "C:\Users\aussi\AppData\Local\Temp\dop202412250126100987.tmp"
 25/12/2024 12:26:11.020 PM ExifTool:  Error at line 335, position 13
 25/12/2024 12:26:11.020 PM ExifTool:  Error 0x80070002

What happens if you activate those columns in the lister?
If so, I think the report should go to lxp in the Exiftool columns thread.
This script just asks for those values just like when using a search filter.
And I imagine that after showing those errors the command should continue normally, right?

Updating ColumnExifTool to the latest version did the trick. Also speeded the process up dramatically.