In a script's OnInit
method it can call the ScriptInitData.AddColumn method to add custom columns to Opus.
These columns can be displayed in file displays and infotips, and can be
searched on using the Advanced Find function. Each
call to AddColumn returns a ScriptColumn
object that the script needs to initialize.
Property Name |
Return Type |
Description |
---|---|---|
autogroup |
bool |
If this is set to True (which is the default), and the file display is grouped by this column, Opus will generate the groups automatically based on the column value. If you set this to False, Opus will expect you to provide grouping information in your OnScriptColumn function. |
autorefresh |
bool or int |
Set to True (or 1) to force Opus to update the value for this column when a file changes. You can also set this value to 2 to force Opus to update the value when the file's attributes change (normally it would only update if the file modification time or size changed). |
defsort |
int |
This property lets you control the default sort behavior for your column. Normally when the user clicks the column header to sort by a column the column is initially sorted in ascending order, and then clicking again reverses the sort order. If you set defsort to -1, the first click on the column header will sort in descending order. Date and size fields have this behavior set by default. |
defwidth |
int or string |
Specifies a default width for your column, which will be used unless the file display has auto-sizing enabled. If you specify a simple integer value this represents a width measured in average characters (e.g. 12 specifies 12 average characters wide). You can also specify an absolute number of pixels by adding the px suffix (e.g. "150px" specifies 150 pixels). |
graph_colors |
object:Vector |
For graph columns, specifies the first graph color set. The graph will
be displayed in these colors as long as its percentage is below the
threshold. You can either specify a single color (in r,g,b or
#rrggbb format), in which case the graph will be a flat solid
color, or exactly five colors to configure the graph's gradient. In the
second case, the five colors correspond to outer bright,
inner bright, inner dark, outer dark, and
flat. The first four control the gradient and the fifth (flat) is
used when gradients are disabled. |
graph_colors2 |
object:Vector |
Similar to graph_colors, this property lets you configure a second set of colors for a graph column that will be used when the graph value exceeds the threshold. |
graph_threshold |
|
For graph columns, specifies the percentage threshold at which the graph will switch from the first color set to the second (e.g. a blue graph goes red to indicate a drive is nearly full). Set the threshold to -1 to disable the second color set altogether. |
grouporder |
string |
If the autogroup property is set to False, the grouporder property lets you control the order your column's groups appear in. Each group should be listed in the string in the desired order, separated by a semi-colon (e.g. "Never Modified;Modified"). If not provided, groups will default to sorting alphabetically. |
header |
string |
If this property is set, this defines the string that will be displayed in the column header when this column is added to a Lister. If not set, the label value will be used. |
infotiponly |
bool |
Set this to True if you want your column to be only available for use in Info Tips. You might want this if your column takes a significant amount of time to return a value, in which case the user would probably only want to use it in an Info Tip so they can see the value on demand. If set to False (the default) the column will be available everywhere. |
justify |
string |
This field lets you control the justification of your column. If not specified, columns default to left justify. Acceptable values are center, left, right and path. |
keyscroll |
bool |
If this is set to True, and the user has the Sort-field specific key scrolling Preferences option enabled, then your column will participate in this special mode. |
label |
string |
Use this to set a label for the column. This is displayed in the column header when the column is added to a Details/Power mode file display (unless overridden by the header property), and in various column lists such as in the Folder Options dialog. |
match |
Vector:string |
If you add strings to this Vector (e.g. via the push_back method) it will be used to provide a drop-down list of possible values when searching on this column using the Advanced Find function. |
maxstars |
int |
If the column type is set to stars this property lets you specify the maximum number of stars that will be used. This is used to ensure the column is sized correctly. |
method |
string |
This is the name of the method in your script that provides the actual
values for your new column. This would typically be set to OnXXXXX
where XXXXX is the name of the command, however any method
name can be used. |
multicol |
bool |
If your script implements multiple columns that require common
calculations to perform, you may wish to set the multicol
property. If this is set to True then your column handler
function has the option of returning data for multiple columns
simultaneously, rather than just the specific column it is being invoked
for. |
name |
string |
This is the raw name of the column. This determines the name that can
be used to control the column programmatically (for example, the
Set COLUMNSTOGGLE command can be used to toggle a column
on or off by name). |
namerefresh |
|
Set to True to force Opus to update the value for this column when a file's name changes. |
nogroup |
bool |
Set to True to prevent the file display being grouped by this column. |
nosort |
bool |
Set to True to prevent the file display being sorted by this column. |
timeout |
int |
Time, in milliseconds, before Opus may give up waiting for calculation of a column value. Defaults to 10000 (i.e. 10 seconds). Set to 0 (zero) to force Opus to wait forever in all situations. The timeout is not always applicable. When Opus asks a script for column data to show in a file display, the timeout is not used because the calculation happens in the background and doesn't hold anything up. But Opus can give up waiting if a column takes too long in situations where it does hold up other things. This is to avoid blocking forever when scripts get stuck in infinite loops. Find filters and the Print/Export Folder Listing dialog are two examples which use the timeout when requesting data from script columns. A column which calculates hashes of files with no size limit is an example which could be expected to take a long time and where it would make sense to increase the timeout or set it to 0. |
type |
string |
This field lets you set the default type of the column. If not specified, columns default to plain text. Acceptable values are:
For plain text columns, you can specify numericsort or nonumericsort to override the "numeric order filename sorting" setting in Folder Options. Similarly, wordsort or nowordsort can be used to override the "word sort (special handling for hyphens, etc.)" setting. You can also combine both options, e.g. nonumericsort,nowordsort to request only basic sorting. Leave the type unset, or set it to an empty string, for plain text data which respects the Folder Options sort settings. For date, time and datetime columns, you can also specify utc to have the values automatically converted from UTC to local time (e.g. datetime,utc). For number and double columns, you can also specify signed to have the values treated as signed rather than unsigned (e.g. number,signed). For the graph columns, you can use graph_colors, graph_colors2 and graph_threshold to configure the graph's appearance.
Your OnScriptColumn
method can override the type on a per-file basis, however
this field sets the default type and also controls the behavior of the Advanced
Find function when searching using your
column. |
userdata |
variant |
Allows you to associate a data value with a column. The value will be passed to your column handler in the ScriptColumnData.userdata property |