right clicking in the source code brings up a popup menu, see below.
Some of its items are dimmed or adapted to the context. For example, 'Format File' versus 'Format Selection'. This is nice and as I would expect it for a context menu!
Unfortunately, there are some entries that are available even if they are more ore less superfluous.
For example, 'Edit DAQ task' shows up even if no DAQ is installed. Selecting this menu entry only shows 'This feature requires DAQmx' - so why not dim it if no DAQmx library is available?
The same is true for 'Edit IVI Specific Driver Attributes...' and the IVI library.
But also 'Recall Function Panel', 'Browse Identifier' and 'Find UI object' don't care about their context.
'Open Quoted Text' for example, does! (which is good)
So I would suggest to have the popup menu act more consistently and only provide commands that are meaningful.
When operating graphs in Labview, it is easy to change the scale of an axis of a graph (at runtime): to change e.g. the maximum value, you select the current maximum value with your mouse, type in the maximum number you want and hit enter. To achieve the same in Labwindows, you have to use a numeric control and a button, which is a bit cumbersome. The same applies for zooming: In Labview, you can click a small button attached to the graph and select the way you want to zoom, and then just use the mouse. In Labwindows, you have to know that zooming is done using the ctrl button, ctrl+space restores the previous setting, etc. It would also be nice to be able to enable autoscale by right-clicking on an axis and having a popup menu which allows to do so (just like in Labview). And if the user changes e.g. the maximum value while autoscale is enabled, it would be nice to automatically disable autoscale (unlike in Labview).
So in general, it would be nice to have more comfort in operating graph controls.
I have had severe problems in development, due to a high synergy between my lack of attention and CVI behavior in search/replace dialogs.
I am talking about the fact that Find/Replace parameters [namely search directories] are stored at REGISTRY level, so that they remain the same across different workspaces.
Having to work with different version of the same software product, I have found myself looking into the wrong sources, or even doing mass updates, due to the fact that different projects have identically named sources and includes, just in different directory trees, and rapidly switching from one workspace
to the next I didn't "mind the step"
My suggestion, thus, is to store find/replace parameters at workspace or project level, so as to avoid the aforementioned inconvenience
While developing code, having correct indentations is very helping in making sure you have all the right brackets and to see where your structures are nested easily. Sometimes, whether by copying and pasting or just rapidly getting out a section of code, a whole segment might have incorrect indentation, which is tedious to correct.
This is where an auto indent tool could be a big time saver. From somewhere like the Edit menu, where similar functionality is located in other development environments, you could select Format Selection to do a highlighted section or Format File to do the whole file. Then, CVI can format the tabs for you:
Although this is a simple example, auto indent becomes even more useful when you have multiple nested structures and decide, for instance, to add or remove another nested loop.
Improve the Breakpoints Window, so that breakpoints can be more easily managed.
1. Change the Breakpoints Window, from a modal dialog to a dockable window (similar to the Watch Window). Debugging can be more easy this way.
2. Allow breakpoints to be grouped, disabled/enabled and edited in user defined categories. This allows users to easily collectively manage several breakpoints at a time. It also helps the user to logically group breakpoints, depending on various issues issues that he might be working on.
3. Breakpoints could also be sorted from a pop-up menu by filename, line, hit count, etc.
Starting from CVI2010, the User Interface Browser and the Attribute Browser are both located on the right of the UIR editor in the Workspace window.
I'd like to be able to hide these windows when required: when working on small screens like when you use a laptop these windows occupy a lot of space even if you reduce their size at the minimum.
In addition, the ability to choose which window to display on the bottom left could be a good option: up to version 2009 the bottom left side of the workspace window switched between the library tree (source editor) and the attribute browser (UIR editor).
Ideally, while in the UIR editor I would like to be able to:
Currently, CVI sorts all the entries from the Source Code Browser alphabetically. While this is useful for finding items, it is less practical when tracking items.
If we have, for instance
int a = 0, c = 0;
// 1000 lines of code
int b = 0;
In the source code browser, under Variables, we will have:
a (line 3)
b (line 1000+)
c (line 3)
I believe that having an option to sort the items either alphabetically or by occurence would give users a better view of their code.
while editing operations on a panel can be undone this seems not possible for menus. For example, if I have changed the item name of a menu in the UI editor this can not be undone using CTRL-Z. I have to remember my last action and undo it myself.
If you have, say, three controls called MAX_1, MAX_2, MAX_3 arranged vertically. If I select them all, copy and paste, the new controls appear as MAX_4, MAX_5 and MAX_6 but in the wrong order to what you would expect.
A similar issue occurs with assigning a group of controls to a control array, they always seem to be in the wrong order, usually reversed.
I would like to have the possibility to store the uir-file not as a tui-file (old-fashioned ini file), instead as a xml file.
building on this suggestion I'd like to see a more comfortable panel of the UI editor for editing label/value pairs, see below:
It has been suggested much earlier here, but obviously passed out of mind:
When using 'Go to Definition' (CTrl+I) while in release configuration, CVI tells that no source code information was found for the identifier '...', because 'Browse information is not available in the Release configuration'... (still true for CVI2010)
This can and should be improved!
And it might be a good opportunity to also add the reverse process, 'Goto Declaration', suggested here
imho the nice tool tips feature provided by the Programmer's Toolbox leads a miserable existence, because it is extra effort integrating it into a GUI.
I would love to see the tool tips integrated into the IDE, that is, when editing a control in the GUI editor, I would like to be able to also set the tool tips text and if it is initially enabled, just like it is possible to enter a control label text. This would include moving the tool tips from the Toolbox to the regular user interface library.
Even after using CVI for many years I still find the DirSelectPopup confusing, because it provides a file selector, displays files, and even allows to select files...
I would prefer an improved/modified function such that the DirSelectPopup only shows directories, does not provide a file selector, etc.... This should make it much more obvious that one is selecting a directory, not a file...
This would make it a bit easier to edit an old project without the issue of upgraded UIRs because it might get loaded by the wrong CVI version and one edits and accidentally saves it before noticing.
Visual Studio installs a helper EXE which launches the right Studio for any SLN.
If MS didn't patent this , it would be a nice feature for CVI (and LabView?), too.
Currently, there is no way to access the historical data on a stripchart. The only way to manage this data is to maintain a separate buffer and update it whenever you add data to the strip chart, which is inefficient and tedious. Accessing data is possible for graph controls using the data attribute:
GetPlotAttribute (panel, PANEL_GRAPH, plotHandle, ATTR_PLOT_XDATA, &data);
Something similar should be implemented for the strip chart, either as an attribute in the getTraceAttribute function, or as a standalone function (getTraceData, etc.)
I am still happy that the tooltips have been moved from the Programmer's Toolbox to the UI editor.
Now when using them on a more regular basis it turns out that the programmer might grant the user the option to show / hide them. As a result, I would need to programmatically browse through all controls to change the respective parameter (the same is true for the delay time).
Hence I propose providing two new, more or less global attributes (these could possibly be panel attributes) that set the tooltip enable/disable status and the on/off delay times for all tooltips (on a panel).
This feature is not urgent as it can be implemented already now with some effort, but it might make code a bit shorter and simpler
The more 'urgent' tooltip requests are here...
Similiar to LabVIEW, I would like to have a "save as" option to store all files within the prj-file to a new location (maybe also for store a cws, res all mentioned prj-files).
Would make it easier to handle over a CVI-project.
Tables are often used to display test results organized in columns, which means the user very often has to search a particular column for a specific value. At present the "search vertically" checkbox is not checked by default in Find in Table Cells dialog, which means the user has to explicitly select it otherwise the search could locate the wrong cell.
What I would like to have is the ability to programmatically set the relevant default options on the dialog before it is shown. With this I mean:
( Tested with CVI 2012SP1. Not yet installed 2013 )
This is a minor thing (I mean aesy to improve)
On the Welcome page when you click the "Browse" folder icon the file dialog looks for .prj by default :
I believe it make sense to look for "Workspace" by default
Doing so one can find out his workspaces directly (NewSamples.cws for example) rather than get the Open File dialog box on screen, then select workspace in the type list then look for his .cws
Does it make sense?
Yes because even single project based project are included in a workspece so it does not change anything for the one looking for "simple" project
Yes because more and more CVI users have more than one project in a workspace and so changing the default behavior will save time (1 or 2 seconds) for most of us.
Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.
The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.