Stacks are simply groupings of files that can be displayed and manipulated like single files. For audio files, the grouping might be a lossless file and a lossy version of it. For images it might be 20 pictures of a cat.
Each stack has one file that is the top. This is the file that is displayed in the Content Pane and used to represent and manipulate the underlying stack members.
Stack operations are available in the right click menu when selecting files in the Content Pane.
Stack and Unstack creates and destroys stacks, respectively. The underlying files are not physically affected, just their grouping inside of MC. When creating a stack, the top of stack starts out somewhat random. The application picks the largest file as the top for non images. For images it picks the largest dimension file of type jpeg.
Expand Stack and Collapse Stack control how the files are displayed. A collapsed stack only shows the top file, the others are not visible. An expanded stack shows all files. When expanded, Set as Top can be used to choose which file to use as the top of stack.
Autostack provides various options for automatically grouping a selection of files. When autostacking, the application will ask which file should be set as the top.
Search for stack files simply searches on all items in a given stack (or stacks), expands those stacks and runs the search.
When the top of a collapsed stack is tagged, most of those tags are copied to the stack members.
When the top of a collapsed stack is moved, the stack members are moved provided the stacked files have any commonality [ambiguous].
When the top of a collapsed stack is deleted, all stack members are deleted. If the stack top of an expanded stack is deleted, the top will be removed and a new top will be selected.
To manipulate individual stack members, first expand the stack, or use the ~d=a modifier to show all files in the database. This will show stack members even in collapsed stacks.
A stack can be identified by an icon that is available as a column in a Details view or as an overlay in the upper right corner of a Thumbnail view.
If the icon looks like a stack of cards with a black star on top, it is a collapsed stack.
If the icon looks like a single card with a black star, it is the top of an expanded stack.
If the icon looks like a single card with a grey outline of a star, it is a stack member of an expanded stack.
Stack information is also available in the tooltips.
Searching for Stacks
MC use hidden tags to identify and manage stacks. Some good information on these details can be found in the following post:
The following expression can be used to find all stacked files in the database:
isequal([Stack Top],-1) ~d=a
Stacks in Images
In the world of photos the stacks are pretty much user driven. (Although I would like to swap the existing RAW file cache out for one based on stacks.)
Stacks are intended to be used to hide versions of files that one would normally not be interested in seeing. So one might put a jpeg as the top of a stack and have the RAW image file that it came from as a hidden stack member.
Another example would be a single image with several purposed files underneath it. For instance one could be a representative jpeg with the RAW source file, a file sized for the web and another sized and sharpened for print. In general use one would only want to see the jpeg but if a sale was made the image sized and sharpened for print could be found quickly via a right click->Stacks->Search for stack files.
Stacks as Cache
Currently only available for the handheld conversions. When enabled under MC's Handheld options (select Cache converted file (via a stack) under Options->Handheld->Conversion->Conversion Cache), MC does several things.
If MC needs to convert a file, the files stack is searched for a file of the requested type. (MP3, WMA, etc.)
If the file is found under the stack location, it is used. Otherwise MC uses any available stack file of the appropriate type.
If no stack file is available, MC searches for the file where the conversion engine would put it. If found there, it is used and stacked with the original file (unless, of course, it already is in a stack).
If not found there, MC will convert the file, copy it to the stack location directory, and stack it with the original file.
Cache features planned
Size warning. Stacking revisions can use a lot of storage. Best to warn on selection.
Cache creation. The old system allowed one to pre build the conversion cache. This functionality will be added.
Cache deletion. We should also be able to delete entries created by the HH conversion engine. These files are tagged in the [stack tag] field.
The stacks need to be utilized by other pieces of the app. Library server, etc.