MantisBT - CMake
View Issue Details
0006359CMakeQtDialogpublic2008-02-16 10:122009-10-06 13:37
Alex Neundorf 
Clinton Stimpson 
normalfeaturealways
closedfixed 
 
 
0006359: tree view for the variables
Big projects can have quite a lof of variables, so the listview can get very long and it's hard to get an overview.

Here's an idea, I already discussed that with Clinton:
Use a two level tree view for the variables, based on the variable prefixes.

Most variables in cmake are named <prefix>_<specific>.
Common prefixes (at least two characters before the first underscore) could be searched and these prefixes could be used to put all variables with this prefix as child nodes under that prefix.
Probably this should only be done if there are at least two variables with this prefix.
This could then look like:

[+] CMAKE
     +-CMAKE_C_COMPILER
     +-CMAKE_INSTALL_PREFIX
     +-...
[+] QT
     +- QT_MOC_EXECUTABLE
     +-QT_QTUI_LIBRARY
[+] JPEG
     +- JPEG_LIBRARY
     +- JPEG_INCLUDE_DIR
etc.

Alex
 
No tags attached.
Issue History
2008-02-16 10:12Alex NeundorfNew Issue
2008-02-16 10:12Alex NeundorfStatusnew => assigned
2008-02-16 10:12Alex NeundorfAssigned To => Clinton Stimpson
2008-02-21 00:52Philip LowmanNote Added: 0010611
2008-06-10 00:17Clinton StimpsonStatusassigned => resolved
2008-06-10 00:17Clinton StimpsonResolutionopen => fixed
2008-06-10 00:17Clinton StimpsonNote Added: 0012301
2008-06-10 17:10Alex NeundorfStatusresolved => feedback
2008-06-10 17:10Alex NeundorfResolutionfixed => reopened
2008-06-10 17:10Alex NeundorfNote Added: 0012303
2008-06-10 18:57Clinton StimpsonNote Added: 0012306
2008-06-10 19:00Clinton StimpsonNote Added: 0012307
2008-06-10 19:22Alex NeundorfNote Added: 0012308
2008-06-10 19:22Alex NeundorfNote Added: 0012309
2008-06-10 19:25Alex NeundorfNote Added: 0012310
2008-06-10 19:26Alex NeundorfNote Added: 0012311
2008-06-10 19:43Clinton StimpsonNote Deleted: 0012309
2008-06-10 19:44Clinton StimpsonNote Deleted: 0012310
2008-06-10 19:44Clinton StimpsonNote Deleted: 0012311
2008-06-10 20:17Clinton StimpsonNote Added: 0012312
2008-06-10 22:20Clinton StimpsonStatusfeedback => resolved
2008-06-10 22:20Clinton StimpsonResolutionreopened => fixed
2008-06-10 22:20Clinton StimpsonNote Added: 0012313
2008-06-11 14:44Bill HoffmanNote Added: 0012318
2008-06-11 15:07Clinton StimpsonStatusresolved => feedback
2008-06-11 15:07Clinton StimpsonResolutionfixed => reopened
2008-06-11 15:07Clinton StimpsonNote Added: 0012319
2008-06-11 15:24Bill HoffmanNote Added: 0012320
2008-06-11 15:55Brad KingNote Added: 0012321
2008-06-11 17:07Alex NeundorfNote Added: 0012322
2008-06-11 17:19Bill HoffmanNote Added: 0012323
2008-06-11 17:28Alex NeundorfNote Added: 0012324
2008-06-13 15:34Clinton StimpsonStatusfeedback => resolved
2008-06-13 15:34Clinton StimpsonResolutionreopened => fixed
2008-06-13 15:34Clinton StimpsonNote Added: 0012336
2008-06-14 13:25Alex NeundorfStatusresolved => feedback
2008-06-14 13:25Alex NeundorfResolutionfixed => reopened
2008-06-14 13:25Alex NeundorfNote Added: 0012340
2008-06-14 15:00Clinton StimpsonNote Added: 0012342
2008-06-14 15:09Bill HoffmanNote Added: 0012343
2008-07-05 13:30Clinton StimpsonNote Added: 0012628
2008-12-04 02:24Philip LowmanNote Added: 0014280
2008-12-18 10:09Clinton StimpsonNote Added: 0014400
2008-12-18 10:09Clinton StimpsonStatusfeedback => resolved
2008-12-18 10:09Clinton StimpsonResolutionreopened => fixed
2009-10-06 13:37Alex NeundorfNote Added: 0017976
2009-10-06 13:37Alex NeundorfStatusresolved => closed

Notes
(0010611)
Philip Lowman   
2008-02-21 00:52   
This would be a really nice feature to have added to the gui
(0012301)
Clinton Stimpson   
2008-06-10 00:17   
Here it is. It now uses a tree instead of a flat table view.

/cvsroot/CMake/CMake/Source/QtDialog/CMakeSetupDialog.cxx,v <-- CMakeSetupDialog.cxx
new revision: 1.52; previous revision: 1.51
/cvsroot/CMake/CMake/Source/QtDialog/CMakeSetupDialog.ui,v <-- CMakeSetupDialog.ui
new revision: 1.19; previous revision: 1.18
/cvsroot/CMake/CMake/Source/QtDialog/QCMakeCacheView.cxx,v <-- QCMakeCacheView.cxx
new revision: 1.29; previous revision: 1.28
/cvsroot/CMake/CMake/Source/QtDialog/QCMakeCacheView.h,v <-- QCMakeCacheView.h
new revision: 1.20; previous revision: 1.19
(0012303)
Alex Neundorf   
2008-06-10 17:10   
Wow, cool !
Great work, this rocks ! :-)

Only two minor comments:
-items "expand all"/"collapse all" in the maybe "Options" menu would be nice.

-currently for all entries branches are created, also for entries which are the only ones with their prefix (e.g. "RANDOM_FILE" in the cmake build tree) and also for single entries which don't have a prefix (e.g. "MAKECOMMAND" in cmake). Maybe these single-entry branches could be collected into one common branch ?

Alex
(0012306)
Clinton Stimpson   
2008-06-10 18:57   
Group together items with no prefix and items that won't be grouped with others.
/cvsroot/CMake/CMake/Source/QtDialog/QCMakeCacheView.cxx,v <-- QCMakeCacheView.cxx
new revision: 1.30; previous revision: 1.29

This addresses Alex's second comment.

Please try it out. Do you have a suggestion for the group name? Right now its a plus sign with no label next to it.
Another idea I had was to not group these items at all. What do you think of that?
(0012307)
Clinton Stimpson   
2008-06-10 19:00   
Another comment... if they aren't grouped at all, then they are still in alphabetical order. Re-grouping them makes them out of order.
(0012308)
Alex Neundorf   
2008-06-10 19:22   
No, I don't have a good suggestion (I was hoping you would have one ;-)

If you don't group them at all, will they be mixed with the "groups" ? This wouldn't be so nice IMO.
If they would be all together at the beginning (or the end) this would probably be also ok.

Alex
(0012312)
Clinton Stimpson   
2008-06-10 20:17   
Yes, if they weren't grouped together, they'd mix with the groups, and not have a [+] next to them.

I think with the search capability, and a clear label for the ungrouped properties (actually grouped in another group), it won't be a problem for people to find the property they are looking for.

I've added the label "Ungrouped Properties"
/cvsroot/CMake/CMake/Source/QtDialog/QCMakeCacheView.cxx,v <-- QCMakeCacheView.cxx
new revision: 1.31; previous revision: 1.30
(0012313)
Clinton Stimpson   
2008-06-10 22:20   
Adding expand/collapse options.

/cvsroot/CMake/CMake/Source/QtDialog/CMakeSetupDialog.cxx,v <-- CMakeSetupDialog.cxx
new revision: 1.53; previous revision: 1.52

Feel free to leave more feedback.
(0012318)
Bill Hoffman   
2008-06-11 14:44   
I am not sure I like this tree view stuff.... The search box is very efficient in finding things. If I want to see QT, I just type QT. Now I have to type QT and expand the QT tree. Perhaps this could be made to be an option, tree view/classic view?
(0012319)
Clinton Stimpson   
2008-06-11 15:07   
(reopening so I can add comments)

The tree view doesn't add much value to me (but I had to try it).
Mostly because of the search capability.
And it does require a couple more clicks.

I'm fine with a choice under the options menu between tree view and flat view.
If we do that, what's the default?
(0012320)
Bill Hoffman   
2008-06-11 15:24   
I prefer the flat view.
(0012321)
Brad King   
2008-06-11 15:55   
I also prefer the flat view but wouldn't mind an option for the "tree view". However, I think the name "tree" is inaccurate since it's only one level. Perhaps the name should be "grouped". This name is consistent with the "Ungrouped Entries" group name.

The option could simply be a check box in some dialog for "Grouped View".
(0012322)
Alex Neundorf   
2008-06-11 17:07   
I guess I'm biased, I like the tree view a lot:
http://www.neundorf.net/pics/cmake-gui-kdelibs.png [^]

Maybe it is not very useful in not-advanced view, but in advanced view it is very nice IMO.
So maybe the basic view could stay flat, and advanced once flat and once tree ?
If there is a checkbox "use grouped view" it would be nice if that setting would be saved, so the next time cmake-gui remembers that setting.

Alex
(0012323)
Bill Hoffman   
2008-06-11 17:19   
I still am not sold even in advanced view. The search box works very well, and with the groups on there is extra stuff, one extra line for the group, and you have to open the group as well as type in the thing you are searching for.

Having it remember the setting is fine with me. I don't think it should have one setting for advanced and one for not advanced.
(0012324)
Alex Neundorf   
2008-06-11 17:28   
If my grepping was correct, for kdelibs CMakeCache.txt contains 419 variables, INTERNAL variables already excluded. In advanced view this is just a huge list. With the tree view this is grouped into 27 groups, and you can get an overview very fast which stuff is used by that project.

(I'm not arguing what the default should be, I just wanted to say that I like the tree view really a lot).

Alex
(0012336)
Clinton Stimpson   
2008-06-13 15:34   
It now defaults to a flat view, with the option of a grouped view.
Whichever you had last is saved for next time it starts up.
(0012340)
Alex Neundorf   
2008-06-14 13:25   
Sorry for reopening, but I have one more comment.

Now there is the "Show advanced entries" checkbox above the listview, and the "Group entries" item is in the menu.
I think these two are very related and should be close to each other.

Additionally maybe it would make sense to offer just 3 modes (instead of 4):
-non-advanced, flat
-advanced, flat
-advanced, grouped

This could be done in the UI by replacing the "Show advanced entries" with a combo box with these three entries. Then it also wouldn't have to save whether the user wanted to have grouped or flat view.
Rationale: the non-advanced view should not have only that many variables that it is still easy to get an overview fast. So in this mode grouping just creates more work (having to open the small branches or having to disable the "Group entries" item).
In the advanced view there can be _many_ variables, there I love the grouping :-)

Alex
(0012342)
Clinton Stimpson   
2008-06-14 15:00   
That's an interesting idea. Why not offer the non-advanced grouped view? Anyone else have thoughts before I make those changes?
(0012343)
Bill Hoffman   
2008-06-14 15:09   
I have one more comment. Would it be possible to open the group view stuff when the search is used? As you type in group view, it would open the group that had the match.
(0012628)
Clinton Stimpson   
2008-07-05 13:30   
Combo box is now there.

/cvsroot/CMake/CMake/Source/QtDialog/CMakeSetupDialog.cxx,v <-- CMakeSetupDialog.cxx
new revision: 1.55; previous revision: 1.54
/cvsroot/CMake/CMake/Source/QtDialog/CMakeSetupDialog.h,v <-- CMakeSetupDialog.h
new revision: 1.29; previous revision: 1.28
/cvsroot/CMake/CMake/Source/QtDialog/CMakeSetupDialog.ui,v <-- CMakeSetupDialog.ui
new revision: 1.20; previous revision: 1.19
(0014280)
Philip Lowman   
2008-12-04 02:24   
Three comments:

1. Awesome! This should be the default when 2.8 ships at least until the user changes the setting.

2. I think a combo box doesn't make sense as a Grouped Non-Advanced option would be nice to have (there isn't one now). With a combo box you need 4 combinations, whereas with check boxes you would only need two boxes.

3. There are several variables belonging to CTest that are currently in the "ungrouped" category by virtue of not having been prefaced with "CTEST_". This is mostly the fault of CTest for not prefacing their variables within CMake.

Some work could be done here to identify which variables are created when ENABLE_TESTING() is called and you configure to use a dashboard and hide the relevant variables under the CTEST group provided the user is using CTEST. I'm thinking here of "SITE", "CVS_UPDATE_OPTIONS", "COVERAGE_COMMAND", etc.
(0014400)
Clinton Stimpson   
2008-12-18 10:09   
I have no more plans to change things related to this.
There is a treeview option now, and a way to change between a flat and tree view.

As for variables not named so they are grouped well, that's another issue.
(0017976)
Alex Neundorf   
2009-10-06 13:37   
Clinton marked it as resolved already.