Author |
Topic |
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 08 2007 : 05:38:30 AM
|
Please, pay some attention at my notes. I was dreaming of something like VA Outline since long ago. And now I really want to help make it useful tool, to make it shine.
Each time VA Outline meets public, protected or private section in a class, it creates a distinct sub-branch for this specifier in VA Outline window.
My idea is that sub-branches for public, protected and private are bringing too much noise into the outline picture. Since public, protected and private members have different visual icons in VA Outline, you should better reside the members in a flat manner, without any sub-branches for each section.
To make it even better, you can draw a dotted horizontal line between these flat sections, where the public(protected, private) is encountered. Like that line, used for he whole outline tree.
I am sure that it will greatly cleans the outline picture and will boost readability.
Thank you. |
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 08 2007 : 05:46:45 AM
|
As a development of this topic, there should be the option "Display non-public members" or "Display private members". Just near existing "Display comments" option. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 08 2007 : 08:05:09 AM
|
If we keep these parents then you can simply collapse them, hiding the private and protected members of the class. If we remove them, or add an option to remove them, then we need to add in quite a lot of functionality to get back what we have removed.
If you group your class members so that you have just one private, one protected and one public then you will only have three blocks inside the class. |
zen is the art of being at one with the two'ness |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 08 2007 : 09:26:07 AM
|
Look at this class and its display in VA Outline: class Implementation : public Interface1 , public Interface2 , protected Interface3 { public: // Interface 1
virtual void method1(); virtual void method2();
public: // Interface 2
virtual void method3(); virtual void method4();
protected: // Interface3
virtual void method5(); virtual void method6();
private:
int m_p1; int m_p2;
private:
void helper1(); void helper2(); }
Don't you think that proposed(paint-brushed) images are more clear and readable? Especially in cases, when the source file contains a bunch of such classes and many other items. I still insist that collapsible public(etc.) items are too noisy.
What concerns ability to collapse blocks, there are exist many good solutions too. |
Edited by - Esone on May 14 2007 05:50:55 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 08 2007 : 12:34:29 PM
|
I agree it is easier to read, but you are talking about adding menu options to Live Outline to achieve this.
Given the code you have posted what if VA merged the public and private blocks together, so you would only have 3 children?
I am thinking that if a public node follows a public node then they can be merged together, but if you go public, private, public they would not be merged.
I am looking for a simple and "obvious" solution, something that will make sense to as many people as possible without them having to read the manual |
zen is the art of being at one with the two'ness |
|
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - May 08 2007 : 1:06:49 PM
|
A treenode for "public:", "private:" and "protected:" has an another advantage: all member under "public:", etc. can be dragged at once. |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 08 2007 : 1:21:40 PM
|
All is IMHO:
1) In any case, the blue book icon is too bright and brings in much noise by itself.
2) Merging same neigbour blocks(public, etc) into the one is better, than leaving as is it now.
3) I still think that collapsible blocks are noisy. Judge yourself: you write "public:"(protected:, private:), while items' icons already have a public(protected, private)-specific signature. Logical redundance, non-orthogonality here, at least.
4) What menu items are you talking about? I think that the best solution here would be a small top menu for VA Outline window with 2-state buttons for public, protected and private. Just like in floating buttons toolbar in Improved Intellisense.
The states of buttons in the toolbar can apply either to all VA Outline view, or(more powerful) to the currently selected tree branch and its children.
By default, all members(public, protected, private) are dispalyed the way I proposed on the picture "Full view". And when the user(even newbie) wants to hide, say, privates, she sees beautiful top menu buttons, and plays with them. I am assured - no need to read any manuals for that. BTW, the button "Display comments" may be also put into this menu.
Please, try to look at things from my point a bit. :) |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 08 2007 : 1:29:20 PM
|
quote: Originally posted by accord
A treenode for "public:", "private:" and "protected:" has an another advantage: all member under "public:", etc. can be dragged at once.
Multiple selection of the group of contiguos items may be done in two simpliest steps: 1) Mouse click on the top item, 2) Shift + Mouse click on the bottom item.
So, no need to tradeoff readability here.
Hmm, but where are you going to drag specific public group? Just to reposition it within a class borders?
|
|
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - May 08 2007 : 10:09:14 PM
|
Yes, the book icon is very loud.
The outline is more of a file view - not a class view. If you hide particular members or visibility labels, then we would disable drag and drop. Hiding visibility labels would cause the display to be cleaner for C++ class declarations but what would purpose would the outline then serve? It's as if you want a better class view - in which case it would make more sense to refine the HCB rather than to try to turn the file outline into a class view.
|
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 10 2007 : 03:15:29 AM
|
quote: Originally posted by sean
The outline is more of a file view - not a class view. If you hide particular members or visibility labels, then we would disable drag and drop. Hiding visibility labels would cause the display to be cleaner for C++ class declarations but what would purpose would the outline then serve? It's as if you want a better class view - in which case it would make more sense to refine the HCB rather than to try to turn the file outline into a class view.
Well, I want it to be a beatiful file outline, not a class browser.
Here is my clear point: 1) VA Outline display for a class should look as "Proposed, Full View" on the picture above. 2) No need to hide or collapse anything inside a class. The class itself remains collapsible.
Why 1-2): to make the VA Outline more clear and readable for medium and large source files.
I am not finding drag and drop feature very useful for myself yet. Nevertheless, I see that it works OK with any collapsed items in VA Outline now: it is possible to drag collapsed class or namespace. So, maybe ability to hide certain items is still discussible? Since we see that it is not a showstopper for the drag'n'drop. |
Edited by - Esone on May 10 2007 03:53:25 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 10 2007 : 08:03:13 AM
|
If you hide items, then you can no longer drag / drop around them, since VA will not know where you are trying to drag to. Collapsed items are different, since if you are dragging a collapsed node then VA still knows where you are placing it.
I understand your point about long files looking messy, but Live Outline is accurately showing you what the file looks like.
We need to think about this. |
zen is the art of being at one with the two'ness |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 10 2007 : 08:31:52 AM
|
quote: Originally posted by feline I understand your point about long files looking messy, but Live Outline is accurately showing you what the file looks like.
The changes I propose are for eliminating some visual overhead, for even more accurate display of source file content. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 11 2007 : 07:46:03 AM
|
That is debatable. If I want to drag / drop items in VA Outline then removing the private / protected / public lines makes the outline less accurate, and means that I cannot reliably drag a class member into a specific block, and may end up dropping it into a public block when I wanted to drop it into a private block.
Which is why drag and drop would have to be turned off if something like this is turned on.
The current design of VA Outline is to show you what the file looks like. In these examples the file its self contains "a lot", so there is a lot to show. |
zen is the art of being at one with the two'ness |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 11 2007 : 08:11:37 AM
|
1) Personally I would definitely sacrify Live Outline drag'n'drop feature in favour of better readability. Should I need to move something within class/file, the copy/paste approach in the source editor would be fast solution and reliable in terms of preserving the proper formatting around moved lines. And a good Live Outline would be just a helping navigator in this task.
2) Nevertheless, the both worlds(readability and drag'n'drop) still can coexist. If you look at my picture(Proposed, Full view) attentively, there are horizontal lines between different accessibility sections of the class(public, protected, private). And by members' icons in certain section, one can see it's type(public, protected or private). Then, drag'n'drop pointer may look as a line, matching between some two neighbour elements, so that dropping what you drag into specific group becomes simple task.
|
Edited by - Esone on May 11 2007 08:14:01 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 11 2007 : 3:28:54 PM
|
What are you trying to achieve from VA Outline? If you mainly want to easily scan a list of items, and to jump to the item you want, then what about the alt-m list? This already has the appearance of your ideal picture, and it is filtered as you type to help you find the item you want.
Personally I do not re-order functions in my files by hand, since I find it to much fuss. If the functions are 3 lines long then it is easy to select them, but once you end up with longer, more complex functions re-ordering them starts to be sufficient work by hand that I do not bother.
So to me there is an immediate and very real appeal to drag and drop in VA Outline. To me personally, sitting here as a programmer looking at it, this is one of its main features. This is why I want to use it.
To simply navigate through my code, to see the current scope, I already have and use the alt-m list and the context and definition fields. |
zen is the art of being at one with the two'ness |
|
|
rhummer
Tomato Guru
USA
527 Posts |
Posted - May 11 2007 : 5:19:15 PM
|
Personally I love the drag and drop to reorder a file. It's all done via the mouse, than having to use a more cumbersome method of using mouse/keyboard to navigate around in the code.
The tree view showing how things are, makes it so much easer to reorder a file. I find the purposed views to lack the information I would expect to see when using VA Outline to reorder my files, and it isn't that readable IMO.
I want to know if I'm moving a block and it will still be private and not suddenly become protected because I dragged it above this dotted line. Yeah I could pay attention to the Icons, but I would much rather look at the text than the Icons. Scanning the tree view the text is more readable than the Icons IMO.
For me the use of VA Outline is to see how messy and unorganized my files are, so I can rearrange them in that view. There are other features in VA X that let me do other things, like Alt+M if I want to jump to a method, or the HCB for other things. |
Tools Engineer - Raven Software VS2005 SP2/VS2008 SP1 - VAX <LATEST> - Win 7 x64
|
Edited by - rhummer on May 11 2007 5:20:11 PM |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 14 2007 : 05:48:49 AM
|
For me, the main purpose of Live Outline is _outline_ of the file, it's plan, layout. When I need to look at someone's source file, or mine, but created months ago, I need to assess it's structure. The Live Outline is a wonderful solution here: I can see the structure of the source, nested namespaces, classes, free functions. Besides, I can easily navigate the code from Live Outline to look into inside details. At that, the more clear the Live Outline view, the better my experience with it.
From previous two posting I see that people need drag'n'drop, as well as explicit names of sections there(public, protected, private). I must agree.
Here are still actual points: -------------------------------
1) The loud blue book icon: let's replace it with something more quiet. Either some blind icon, or no icon at all, but only those gray dotted lines instead.
2) Those signatures: "public:", "protected:", "private:". Let's change font color for them from black to gray. This will put more accent on members themselves, while section still remain well seen.
3) Let's get rid of extra nesting level, where class's members sit in a sub-branch of an access specifier(public, protected, private).
This is what we get, when 1-3) applied:
IMHO, the picture is clear, blocks remain collapsible and drag'n'droppable. Can we go this way? |
Edited by - Esone on May 14 2007 05:53:33 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 14 2007 : 07:23:06 AM
|
I have put in a request to change / remove the book icon, it is rather load as you say:
case=6561
point 2 - I am a little confused by your comment about changing the font for "private" from black to grey. For me they are shown in blue, which is the colour I have assigned to keywords. We cannot simply hard code colours, since this causes problems when people use a custom colour scheme. To me it makes sense to use the keyword colour for a keyword in this outline.
point 3 - I dislike this idea, because this is not how standard tree controls look or behave. In this picture it makes sense, but when you have a block of 40 private items followed by a block of 30 public items you cannot use the indent levels to help tell you which node they belong to. |
zen is the art of being at one with the two'ness |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 14 2007 : 08:10:00 AM
|
quote: Originally posted by feline point 2 - I am a little confused by your comment about changing the font for "private" from black to grey. For me they are shown in blue, which is the colour I have assigned to keywords. We cannot simply hard code colours, since this causes problems when people use a custom colour scheme. To me it makes sense to use the keyword colour for a keyword in this outline.
Do we mean the same here? I talk about the signature "private:", the signature itself, but NOT about the private members(m_p1, m_p2 on the picture above). I mean that the color of label "private:" has to be gray, instead of black.
quote: Originally posted by feline point 3 - I dislike this idea, because this is not how standard tree controls look or behave. In this picture it makes sense, but when you have a block of 40 private items followed by a block of 30 public items you cannot use the indent levels to help tell you which node they belong to.
Honestly, I don't understand you here. If a block of 40 privates is followed by 30 publics in the same class, than they have same indent level. And to see which node they belong to, one has either to look at items' icons, or look atop to see the label of this block("public:", etc.). Both cases work for the picture that I proposed in my previous post. Moreover, note that the items at the picture have certain indent from their block label. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 14 2007 : 6:34:26 PM
|
We seem to be talking about different things. I am seeing this blue text:
|
zen is the art of being at one with the two'ness |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 15 2007 : 04:19:31 AM
|
Oh, thank you for the clear picture! Now I see it working, so the font color issue is resolved.
What still remains here is the Case=6561 : request to change/remove the book icon. That's nice! BTW, is that change expected in the next VAX build? How about other VA Live Outline cases(bugs)?
|
Edited by - Esone on May 15 2007 04:34:22 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 15 2007 : 08:04:25 AM
|
Some of the VA outline bugs are due to be fixed in the next couple of builds. This is mainly any bug where the outline is showing the wrong information, or where drag / drop is producing the wrong result.
Currently I have no estimate on case=6561 |
zen is the art of being at one with the two'ness |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 15 2007 : 08:21:47 AM
|
May be you can point me to the place(exe, dll), where the "blue book" icon is stored, so that I could replace it with binary resource editor, until case=6561 is implemented?
I tried to find it myself, but not successed. |
|
|
rhummer
Tomato Guru
USA
527 Posts |
Posted - May 15 2007 : 09:08:47 AM
|
Aren't those Icon's the IDE uses? I haven't used the IDE SDK, but maybe they have methods you can get to their icons? |
Tools Engineer - Raven Software VS2005 SP2/VS2008 SP1 - VAX <LATEST> - Win 7 x64
|
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 15 2007 : 10:52:43 AM
|
I don't know, if this is IDE's icon. I believe that the developer who has brought this icon into the game can point to its source in a second. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 15 2007 : 10:59:34 AM
|
I have asked |
zen is the art of being at one with the two'ness |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 16 2007 : 09:46:34 AM
|
Esone the icon is stored as a BMP in VA_X.dll
Please be aware that we do not recommend, or support, trying to edit the VAX dll's |
zen is the art of being at one with the two'ness |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 16 2007 : 11:10:43 AM
|
Thank you, feline. I'll try that as soon as the version of VA Live Outline becomes available, that is free of rough bugs. |
|
|
Esone
Tomato Guru
Russia
115 Posts |
Posted - May 16 2007 : 11:19:55 AM
|
I have triple-checked all bitmaps of VA_X.dll ver.10.3.1555.0, but there is no any book icons. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 17 2007 : 1:11:32 PM
|
That is the answer I got. Depending on what happened to the dll the resources inside of it may not be visible. |
zen is the art of being at one with the two'ness |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - May 31 2007 : 12:03:36 AM
|
case=6561 fixed in build 1557 |
Edited by - support on May 31 2007 12:39:31 AM |
|
|
Topic |
|