Visual method of creating multi-function buttons

DOpus is a very powerful file manager, with a little tweaking a user can accomplish much with only the features it ships with. take the script @Crash shared with me on this post: [Feature Request] Folder Creation From Multiple Files this is what i mean when i say with a little tweaking a button can be made to do a lot.

that being said, i'd like to see the various DOpus commands implemented as building blocks that can be assembled on a canvas to accomplish tasks that a user wants to carry out. this would enable a user to see visually the process behind a button's function as they assemble its components(commands) an example can be seen in Alfred's workflows feature:

or Mediachance's Photo Reactor with its nodal image processing:

in my view, this would make DOpus many features even more accessible as typing out the commands one needs or picking them out of a long list would be intimidating for some users. providing a canvas with the various commands as building blocks would make assembling complex button functions easy and perhaps fun.

The example in the linked thread only runs simple commands and modifiers. The button editor (if you click the Advanced option) already has a way to build those up using the UI, via the menus at the top of the edit field.

It isn't as fancy as the ones in your screenshots, but that kind of thing also does not really apply to simple commands, since they do not really chain into each other, nor have branching (beyond very limited branching that can be done using @modifiers).

Scripting has branching, and objects/outputs that feed into other objects/methods. But scripting is also far more complex than just putting blocks together, and would probably take years of development time to make that kind of UI for. (We're talking about Javascript and VBScript themselves, on top of the Opus-specific objects.)

thank you for replying so quickly.

understood concerning the scripts. i am aware of the advanced option in the button editor but it is a bit crowded which is why i suggested the building blocks method to go along with the menu option.

in the example i linked to the "Copy" command has fifty arguments. if i place a copy block i'd be presented with a list of arguments to pass to the copy command from a menu within the block. also you mentioned the term "build those up" the screenshots were examples of a canvas and blocks being used to accomplish a certain task. in DOpus, these blocks would stack. lets use that example:

@runonce:@set dirname={dlgstringS|Enter name of folder to move selection into|{file$|noext}}
Copy MOVE HERE FILE="{file$}" CREATEFOLDER="{$dirname}"

the modifiers would be building blocks, so if i wanted to include "@nofilenamequoting" in my button i'd only search for it and drag and drop it onto the canvas.
the commands would also be blocks and so a user would search for a command they want to include in a button, in this case "Copy", and drag it onto the canvas. the user would the select the required argument(s), in this case: MOVE, HERE, FILE, to pass to the command from a dropdown menu on the block. with the block system the above command would have four blocks; three for modifiers and one for the "Copy" command. this approach would also be more helpful if help was integrated via tooltips. so if a user selected "Copy" command or any of its arguments a tooltip with help content would appear explaining what the argument does as well as an example. like what we see in Visual Studio Code:

hopefully it is more clear what i have in mind for the button editor in this request.

Would't that just move the menu from one place to another? There are still fifty arguments in a menu.

You can already do that from the modifiers menu, can you not? I may be missing something, but other than a different look & feel, what would be functionally different?

Please also link your account to make feature requests, especially ones involving a huge amount of work. :slight_smile:

yes there will still be fifty arguments but a user will only have to move the mouse a few pixels to access them, rather than move the mouse all the way to the menus at the top especially if the commands/modifiers are getting long. i guess a compromise would be an autocomplete system like we have on the before mentioned Visual Studio Code.

what i'm thinking about is a search field for all the blocks(commands and modifers). if a user wanted to add the "@icon" modifier, they'd search for it by typing "@icon" in the search field and they would be presented with the "@icon" block which they can drag and drop onto the canvas. because the modifiers are large in number, the modifiers menu can look a bit overwhelming and so the search, drag & drop system can be faster than searching through the menu lists of commands and modifiers.


thanks again for indulging me.