Quick Drop Enthusiasts

cancel
Showing results for 
Search instead for 
Did you mean: 

How does QD filter the VIs in the ctrl-key shortcut menu?

I'm just curious about the QD filtering on the ctrl-key shortcut menu. Is it looking at the connector pane? I realized that just because a VI is in the plugins directory, doesn't mean it will show up in the QD ctrl-key shortcuts (i.e. subVIs you may use in your top level QD VI). This is obviously fine, because I don't want these VIs to be selected as QD plugins, but I was just looking for clarification.

0 Kudos
Message 1 of 7
(6,829 Views)

Until the definitive answer arrives I will say that it appears that placing magic text in the VI description gets it into the list, and backwards compatibility is maintained by assuming all VIs with single letter names are shortcuts. Type checking (ie. the ConPane) is apparently not checked until it is time to run it.

0 Kudos
Message 2 of 7
(5,331 Views)

WARNING:  This is probably more than anybody (besides me) ever wanted to know about how Quick Drop determines the validity of keyboard shortcut plugin VIs.

Depending on the LabVIEW version, different approaches are taken to determine which Ctrl-Key shortcuts are available.  In each scenario below, I use the following path abbreviations:

[resourceplugins] - <LabVIEW>\resource\dialog\QuickDrop\plugins

[lvdataplugins] - <LabVIEW Data>\Quick Drop Plugins

  • LabVIEW 8.6 - Ctrl-Key Shortcuts not supported.
  • LabVIEW 2009 - Every .vi file in the [resourceplugins] folder with no filtering.  The filename (a.vi, b.vi, etc.) is used to assign the shortcut key.
  • LabVIEW 2010 - Every .vi file in the [resourceplugins] and [lvdataplugins] folder with the following filters:
    • If the VI description has the string 'PLUGIN_DEFAULT_SHORTCUT' in it, then it is considered a valid shortcut and added to the list.
    • If the VI filename is a single character, then it is considered a valid shortcut (probably a 2009 version) and added to the list.
    • All other VIs are ignored and not added to the list.
  • LabVIEW 2011 and later - Every .vi file in the [resourceplugins] and [lvdataplugins] folder with the following filters:
    • A pre-filter that checks the connector pane data type of the VI against the connector pane data type of <LabVIEW>\resource\dialog\QuickDrop\QuickDrop Plugin Template.vi.  Only plugins that exactly match the connector pane of this template VI are checked...all other VIs are ignored.
    • The "PLUGIN_DEFAULT_SHORTCUT" tag was deprecated in LabVIEW 2011 (but it is still checked, for backwards compatability). It turns out that Default Shortcut - in the VI description is much easier to localize than PLUGIN_DEFAULT_SHORTCUT: r.  Who knew? 
    • If the VI filename is a single character, then it is considered a valid shortcut (probably a 2009 version) and added to the list.
    • If the VI description ends with a character in brackets, that character is considered the default shortcut and this plugin is added to the list.  This is the preferred mechanism for defining keyboard shortcuts going forward.
    • All other VIs are ignored and not added to the list.

I'd like to unpassword-protect some of the VIs that do this parsing so y'all can take a look for yourselves if you so desire.  However, there are a couple of private VI Server calls that I'd need to get publicized before I can do that.  I'll see what I can do for LabVIEW 2013.

0 Kudos
Message 3 of 7
(5,331 Views)

Thanks Darren! A side note with regard to templates: could you possible set the template as a .vit? On more than one occasion I have saved without being forced to rename, and my VI becomes the template

0 Kudos
Message 4 of 7
(5,331 Views)

for(imstuck) wrote:

A side note with regard to templates: could you possible set the template as a .vit?

That's a reasonable suggestion.  I've posted it here for discussion.  Please add your thoughts there...I'm particularly interested to know if the file rename will have any adverse effects that I can't think of.

0 Kudos
Message 5 of 7
(5,331 Views)

Bumping this ancient thread.

 

Did we ever get access to the VIs that filter the QD list?

 

One thing I'd love to do is modify the filtering to prioritize my project's PPL Actor Framework methods over the vi.lib Actor Framework messages. If there are any hooks I can use to modify this sort of thing, that would be great.

0 Kudos
Message 6 of 7
(2,080 Views)

Hey Mike,

 

This thread is referring to the plugin VIs that implement Quick Drop Keyboard Shortcuts (pressing Ctrl-[key] to launch a tool from Quick Drop). It sounds like you're asking about the list of objects in Quick Drop itself, and wanting to customize the order in which items appear, as you are using a built PPL of the Actor Framework instead of the original Actor Framework itself. For example in the situation you describe, if you type 'launch root actor' in Quick Drop, you would see this:

af1.png

 

You would rather see the PPL version of the VI appear first in the list. Am I understanding the issue correctly? If so, can I offer a very low-tech solution? Just type 'libp' before typing the name of the method you want:

 

af2.png

 

For project items, Quick Drop uses simple string matching, so if the string appears anywhere in the item name, it will be a match. So in this case, since we know all of the AF PPL methods will be in "Actor Framework.lvlibp", we can type a string that is unique to that library (in this case, 'libp' is unique enough) to filter the Quick Drop list appropriately.

 

This is the approach I use when doing a search in Quick Drop for project items... when I know the thing I want is in a particular class or library, I'll type a few characters of the class/library name and then start typing the name of the VI and it usually works well.

 

I hope this low-tech solution is sufficient, because I just dug into the Quick Drop code and it looks like palette matches are always placed above project matches in the list, and there's no way to customize that (without editing the password-protected main Quick Drop VI).

0 Kudos
Message 7 of 7
(2,063 Views)