quicksilver/Quicksilver — pull request #1816 by skurfer (2014-04-06 15:17:47+00:00)
Title: Use Quicksilver “upside-down”

Hold this until after 1.2.0 is finalized. I’m just putting it out for discussion/demonstration.

It allows you to select an action first, then select what you want to run it on.

@brightOrigin wanted to something like this for actions in the Service Menu plug-in. But if it’s a good idea, it should be universal, so here’s a stab at it.

Things to note (mostly for edification):

* Changes to `QSCorePlugIn-Info.plist` had to be made in a text editor. If you try to change it in Xcode, it seems to rewrite the whole thing in a different order every time you change it. That leads to thousands of unrelated changes (and guaranteed merge conflicts if another branch has changed it too).
* The code and property list additions were pretty small, as predicted. But note all the strings files that you have to deal with when adding something new.
* This demonstrates an alternative way to keep the catalog entry fresh. It ignores the scheduled rescan completely and just rescans when it makes sense. Recent Objects and a couple of others also work this way.
* Populating the third pane turned out to be the tricky part. I’m not sure it’s right, and I don’t like how complicated it is, so consider it a crude example until we have more real-world experience with it. (Maybe it’s spot-on?)