Feedback on documentation needed! :)

You might know that we are bringing the documentation to devnet these days, and in that process we are looking into making a couple of design changes in the way the that the class documentation is displayed. Traditionally the page is built up by a selection of lists providing shortcuts for all members of the class; this is followed by e detailed description of the class itself, and at last all the members are listed with their complete description. See example: http://doc.qt.nokia.com/4.7-snapshot/qwidget.html

The problem with this setup, is that we end up with very long pages which you have to scroll up and down forever. We would like to get your opinion on our suggested solution to this.

Problem with the new way is, that you can not quickly scan the list visually. BTW: there has been usability testing on the docs at the DevDays in 2009. Perhaps you should use that research instead of starting over?

Well, I usually use the search function of my browser to jump to the correct function I need. I think you should include a function to expand/collapse everything on the page and have registered users set their preferences as to whether they want it expanded or collapsed by default.

I never use the docs site to look up things: It is just too clunky. So do whatever you want, as long as you do not mess up the pages in assistant. So please keep Qt Creator and assistant in mind when changing the stylesheets.

loladiro: Indeed, that is a very good suggestion. I also discovered a challenge - with the help of one of the other devnet users - that while hidden, it is impossible to find the text while doing a CTRL+F search.
The solution to the challenge would be to expand all the sections as you press CTRL+F. I will test this next week.

Tobias: No worries - this version is for devnot only and is not part of the Qt library at all. However, I believer that the doc team would be happy to know about any suggestions on how to make the documentation better :)

I do think there are benefits, if the mentioned downsides can be fixed. One suggestion though, would be to remove the short explanation line. This line makes a quick visual scan more difficult. Instead, you could offer this information when hovering the item (make it expand a little at mouse over or as a tooltip-like popup), and of course show it when the item is expanded.

Also, I think the expand button should go in front of the item, not behind it. That is where expand buttons normally are (in tree-view like items and for code folding in Creator).

I personally don't like the inline expansion. I often just scan the functions to check what exists. And if you open one, you have to close it again, otherwise there is too much between 2 functions from the list.
And think of people, checking 5 functions, with similar signatures or names, they open all 5 and then want to scan the list again, they would have to open all 5 (which are one under the other) and close all of them again. In the old docs, you jump to one with one click and have all 5 one under the other. And going back to the list is just one click then.

Nokia Certified Qt Specialist.
Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

would be fine with a expand all for when its needed however if we decided to keep the old style being able to link to the return type and paramater types from the list of methods at the top of the page would be a useful additional feature

Would it be a good idea to have the possibility to also show the inherited methods in the overview in a nice way? It is easy to miss methods or signals that have been defined in base classes, and it would be nice if you could augment the current overview with them. Coolest would be if you could that step-by-step. For instance, if you are viewing the docs on QSslSocket, you could expand the docs like this:

QSslSocket specific stuff (default view)

add QTcpSocket specific methods (the ones not reimplemented by QSslSocket)

add QAbstractSocket specific methods (the ones not reimplemented by the above subclasses)

add QIODevice specific methods (the ones not reimplemented by the above subclasses)

finally add QObject methods.

Methods added to the docs from a baseclass, should probably be marked as such with an [Inherited from <ClassName>] kind of label.

Like others said, expand button goes to the beginning of the line. Generally function names are of various character lengths. If we have expand button at the end, we may need to search for them.

Do we need this line explanation for each method. Does it convey any useful information. If we remove it, its almost same as good old layout, and we gave expand buttons added at the beginning of each method / property.

We need to have collapse all button readily available somewhere in each page. Otherwise we end up with same problem that we have now.

Andre: I agree that inherited members should be displayed in a better way. Actually, they are now in the lists with the other class members, so they should be easy to find now. It can probably be done (with the current documentation XML source) in the way that you describe, but it will require a heavy reconstruction. It will be up to the web team to decide upon this. I’ll make sure to put it in the pile of requests. :)

Vijay: Thanks, we are testing different solutions right now. I’m including your input in the case. :)

timoph: Thanks, we have discovered a flaw in the syntax highlighter, so we will remove the links inside code snippets for now.

Most of the qt function names are self explanatory, don't know how much benefit we get by adding one line description to them.

When a method is in expanded state, we can add "collapse all" button next to collapse button of the method

And there should be a global "collapse all" button available.

Along with #include for the header file, it would be nice to say if there is any qt module that needs to be included in .pro file. I have seen lot of posts in the internet complaining about compile time errors with out including needed qt modules in .pro file.