KDevelop UI cleanup initiative

Jens Dagerbo jens.dagerbo at swipnet.se
Sun May 30 08:24:30 UTC 2004


Hi,

I'm sure most would agree the default KDevelop UI is a bit "busy". This is a 
problem I think we should attempt to alleviate in KDevelop-3.1. The busyness 
is caused by several factors:

1. The default loading of all plugins.

 A new users first start of KDevelop with a C++ project loaded will have every 
available plugin under the sun loaded, including four VCS plugins and support 
for Gameboy development. It's hard to fault his/her feeling that KDevelop is 
"bloated", even if he/she is wrong.. ;)

This particular problem could hopefully be fixed with a little less 
enthusiastic loading of plugins, something I'm working on.


2. The fact that all toolviews are always shown, even when they don't contain 
anything.

It would for instance be nice if the debugger plugin didn't show all its 
toolviews when the debugger isn't running as they are completely useless 
then. And in fact, it does hide them, but they don't disappear. This is a 
problem of the isolated to the IDEAl UI mode, as the other modes can hide 
toolviews without removing them. I suspect we won't solve this, but it would 
have been nice. :)


3. The toolbar mess.

We have a lot of bugs related to the toolbars (for instance: 
http://bugs.kde.org/show_bug.cgi?id=79793). I have no idea if we're doing 
something fundamentally wrong somewhere or if the framework is busted, but we 
sorely need someone who understands this issue to take a look at it.


4. The large amount of menu entries, many of which are confusing and perhaps 
in the wrong place. This is the main point of this mail. :)

We need to resist the urge to put everything into menus just because we can. 
For instance: there is currently at least five(!) ways of closing a file that 
is not the active document. (add at least 3 more ways to do that). Can we say 
"enough"? :)

On my personal shit list:

# The Closer plugin - this serves no purpose now that the FileList can do the 
same thing (and more). I say we kill it.

# Close, Close All, Close All Others are in both the File and Window menu. 
Close and Close All Others are also in the Editor Context Menu  (ECM). 
I guess the File menu is more or less standard, I wouldn't mind them gone from 
the Window menu and at least the "Close All Others" form the ECM. Given that 
"Close All Others" is a special case of selective close anyway, we could just 
dump it completely and refer to the FileList for this functionality.

# "Watch" in the ECM. How often is that used? Very close to never. At least it 
should be made to only appear when the debugger is actually running.

# The new Documentation plugin is very cool, but what are the chances that the 
current word will actually find a match in a man or info page? IMHO, 
"Manpage", "Infopage" and "Look in index" should all be gone from the ECM, 
they are simply going to match too rarely to justify a context menu entry. 
"Search" is different.

# Switch Header/Implementation - a fantastically useful action, one which I 
use all the time as a shortcut, but it's of debatable value in the ECM. I say 
we remove it.

# Go to Declaration & Go to Definition in the ECM - this is quite horrible. I 
use a 1600x1200 resolution, and most of the time it fills my screen. I can't 
see how anyone actually uses this feature. The functionality is great, but 
should be offered through other means. Remove!!

# Go to ctags Declaration & Go to ctags Definition in the ECM- these are 
actually not too bad, but will automatically disappear with the retirement of 
the old CTAGS plugin. Should the new plugin offer both entries? Currently it 
only adds one entry, and only if the current word is actually a known tag. Is 
this a good approach?

# View -> Tool Views / Tool Docs and whatnot - of very questionable value in 
IDEAl where toolviews can't be hidden, only undocked and the tooldocks are 
readily available through buttons and shortcuts (such as they are). I'm not 
sure we can remove these though, IIRC they are merged in from KMDI.

# Tools -> Version Control -> CVS service (or other vcs) -> action submenu - 
as a menu that acts on the active file, this is quite nuts. The VCS menu is 
already accessible through the ECM and the FileContext (which is almost 
everywhere). I say we remove it from the already crowded Tools menu.

# Tools -> Difference Viewer... - I honestly don't see what good this is. So I 
can look at a diff, so what?

# There are at least seven (eight with the old CTAGS part - I guess the new 
one should have one as well) actions in the menus that are various forms of 
navigation, more will probably come. Perhaps a seperate menu - "Navigation"?


There are probably more..

Opinions?

jd 


[Yup.. more. the following added by Tobias Gläßer]

- The 'Build' - and 'Clean API Documentation' entries make more sense in
the Project than in the Build menu. The build menu should be reserved
for the actual code building proccess. API documentation is closely
related to projects.

- The 'Make Member' in the edit menu is useless, because Joe developer
won't find out how it works. Its functionality is context related,
therefore it may be considered to put it into the context menu. The
functionality will, if discovered, by the most developers used with a
shortcut. Letting it in the 'edit' menu just for the possibility that
someone discovers it is not a good reason and therefore I want to get
rid of the menu entry.

- The 'Project Distribution & Publishing' entry should be moved from the
'Tools' to the 'Project' menu. It should then be renamed to
'Distribution & Publishing'.

- The 'Tools' toolbar is useless at the moment, therefore I want add
icons for some of the entries in the 'Tools' menu, like valgrind, and
 add this to the toolbar.

// tobgle







More information about the KDevelop-devel mailing list