New Action UIs
In DMDirc 0.6, we have made some back-end improvements to the functionality actions groups which allow authors of action packs to specify meta-data such as a description of the pack, and also list the settings available. We obviously wanted to include this new information into the actions UI, and we were aware that the current actions editor wasn’t as user-friendly as it could be, so we took the opportunity to redesign and rewrite the actions UIs.
As you can see from the screenshot we now show an info blurb, version and author for all action groups that provide them. In the future, we plan to allow users to edit action groups’ meta-data from inside the UI. This will make it a lot easier for end users to create action packs and make them available to a wider audience through our addons site, but for the moment only the name of the group is editable.
Settings for a particular group are now displayed underneath the group and are editable using the same components as the preferences dialog. Exposing these to the end user has added a lot more flexibility to actions and should enable them to be used in much nicer ways.
Finally, in the previous incarnation ‘wrapped’ actions groups (such as profiles and aliases) were visible but appeared empty. This was rather odd behaviour, so we remedied this and now show the contents of all groups. This allows users to edit the automatically created actions, so they can see how they work or use more advanced features that the wrapper UI doesn’t expose. The new UI is also a lot more pleasing to the eye.
Of course, the Actions Manager is only half of the actions UI; the Actions Editor has also undergone a revamp in 0.6. In DMDirc 0.5.5, we introduced Condition trees, but at the time they were only usable if you manually edited the action’s file in your profile, something which we don’t expect normal users to do. The new Actions Editor UI exposes condition trees and allows for easy selection of ‘AND’ and ‘OR’ trees, which should bring the added power of condition trees to more users.
As with the Actions Manager, we think the new Action Editor is much more user friendly than its previous version. You can, for instance, now see all the information about the action on one screen and edit them easily without having to switch between tabs. Of course, we’re always willing to improve further, so if you have any suggestions, please leave a comment!
Condition Trees (aka: making actions even more incomprehensible)
I’ve just committed changes to DMDirc that allow you to make use of what I call “condition trees” in actions. These basically allow you to specify how conditions should be evaluated. In DMDirc 0.5.1 (and earlier), all action conditions had to be true in order for the action to be executed. Condition trees allow you to use any combination of AND, OR, NOT and brackets to alter this behaviour.
An example condition tree looks like this: (0&(1|2)&!(1&2)). The numbers refer to the outcome of the conditions (in this case my action has three conditions, which get numbered 0, 1 and 2), and &, |, ! and the brackets have their expected meanings. If you’re not too fluent in boolean logic, the condition tree translates roughly as “condition 0 is true, and exactly one of conditions 1 and 2 are true”, or “condition 0 and (condition 1 XOR condition 2)” if you want.
At a basic level, condition trees allow you to reduce the number of actions you have (for example: if you want to do something whenever someone mentions your nickname OR when someone starts a message with “!hello”, in DMDirc 0.5.1 and below you need two actions with duplicate trigger/response/format settings; in DMDirc 0.6 you will only need one action with a condition tree set). Beyond that, condition trees allow a much closer approximation to ‘if’ statements in scripting languages, thus enabling extremely complex conditionals without the overhead of a scripting language or the learning curve of one.
(more…)
Actions UI improvements, part 2
Further to the changes to the actions UI previously mentioned, there are now several more enhancements: one exposing substitutions and two UIs wrapping around actions simplifying common tasks — aliases and performs.
(more…)
Actions UI improvements, part 1
One of the best things about DMDirc is, in my opinion, its robust actions system. Actions allow you to do virtually anything you can do in a far more complex scripting language, with the benefit of being fairly easy to hide behind a nice user interface.
Unfortunately, with something as flexible as actions, it’s hard to get the UI right the first time around. For DMDirc 0.5 we’re introducing a few minor changes which will hopefully make creating and editing actions easier.
The first of our two tweaks is a change in the behaviour of the actions manager. In DMDirc 0.4, to edit an action you need to click the group tab (if it’s not selected), move your mouse down to the action, click on it, and then mouse all the way over to the edit button (taking care not to hit any of the six other buttons that line the bottom of the manager). In DMDirc 0.5, you can simply double click on an action to open it in the editor.
The second tweak is a change to the “Trigger” drop down menu in the actions editor. In DMDirc 0.4, this is a long list that only has a vague sense of order (in fact, the order of items in the list is the order we defined them in code, which is generally based more on when they were added, rather than what they’re for). In DMDirc 0.5, the triggers list is split into distinct groups, and the triggers within a group are sorted alphabetically, making it much easier to find what you’re looking for. Before and after pictures are below, although they don’t do the changes much justice, thanks to the rather limited size of the dropdown menu.


We have several more improvements planned for the actions UI before 0.5 is released, and we also have some brand new UI to make using certain types of actions even easier, which we’ll be blogging about later.
Actions: now with added UI
Following on from my previous post, the front-end for actions is just about complete. Here are some preview images:

The actions manager lists all known actions, sorted into groups (which correspond to directories on the disk).

The “general” tab of the actions editor allows you to select which triggers the action responds to, as well as specifying its friendly name.

The “conditions” tab allows you to specify conditions for the action. The pencil icon brings up the condition editor for that condition (see next image), while the cross button deletes the corresponding condition.

The conditions editor allows you to add or modify an action condition. Once you select an argument, the components list is updated to contain only the applicable components, and when you select a component the comparison list is updated similarly.

Finally, the response tab allows you to specify how the client should respond if this action is triggered. The commands are executed as though you typed them in the window that triggered the event.