How funny. I spent whole weekend doing exactly that, only in any path.
It uses both script and a button.
I am sure the script is not perfect, as it is my first script ever in DOpus.
I don't even know why i did it, as I barely listen to music outside Spotify
The script is here:
PlayAll.js.txt (1.8 KB)
And the button here:
<?xml version="1.0"?>
<button backcol="#ff8000" display="both" icon_size="large" label_pos="right" separate="yes" textcol="#ffffff">
<label>PLAY ALL!</label>
<tip>Play all audio files</tip>
<icon1>#S-DOX II DE Additional Icon Set:media_play</icon1>
<function type="script">
<instruction>@hideif:!$tab:musicfiles</instruction>
<instruction>@if:common</instruction>
<instruction>@toggle:update</instruction>
<instruction>@script JScript</instruction>
<instruction>function OnClick(clickData)</instruction>
<instruction>{</instruction>
<instruction />
<instruction>var D = DOpus;</instruction>
<instruction>var tabVars = DOpus.listers.lastactive.activetab.vars;</instruction>
<instruction>var tabVarName = 'musicFiles';</instruction>
<instruction>D.Output(D.Typeof(tabVars.Get(tabVarName)))</instruction>
<instruction>var cmd = clickData.func.command;</instruction>
<instruction>D.Output(DOpus.Typeof(tabVars.Get(tabVarName)))</instruction>
<instruction>cmd.addFiles(tabVars.Get(tabVarName))</instruction>
<instruction />
<instruction>cmd.RunCommand("ContextMenu VERB=open");</instruction>
<instruction> </instruction>
<instruction>}</instruction>
</function>
</button>
I struggled a bit with understanding @toggle and tab update stuff and very rare occasions button appears only after you click at anything in the file list. But it is rare and not really a problem, I think.