Three different tab implementations

Jörg Walter jwalt-kde at garni.ch
Fri Jan 31 12:49:13 GMT 2003


On Friday, 31. January 2003 12:12, Neil Stevens wrote:

> > On Friday 31 January 2003 01:14, Rob Kaper wrote:
> > > There are currently three different tab implementations in KDE:
> > > Konqueror, Konsole and Kopete each have their own framework for tabs,
> > > with different keybinding shortcuts and different behavior.
> > >
> > > Is anyone considering to merge all this into a single tabbing
> > > framework to be reused in applications? If people can't handle SDI,
> > > fine, but that's no reason for code duplication.
> >
> > I think it was already established some time ago that we should have
> > better support in kdelibs for consistency among MDI applications. Now is
> > an excellent time to work on that.
>
> OK.  Shall I remove the document interface standards page then (along with
> fixing the links)?  Doesn't make sense to have standardizing on SDI or MDI
> if KDE isn't going to have a standard anymore.
>
> http://developer.kde.org/documentation/standards/kde/style/basics/windows.h
>tml

Hi!

I think before thinking of fundamentally changing any guidelines, it should be 
established what the users (and thus, KDE) want. To do so, we need use cases. 
Why are people using tabs instead of SDI, when do users prefer SDI, and might 
there even be cases when they prefere classic MDI?

I can only talk of myself, but I am using each of the three modes in the 
appropriate situation.

I'll show the use cases I encountered using kate, kmail and kvirc as examples. 
I currently use two (different resolution) screens with Xinerama enabled, and 
a single screen on the laptop. My considerations apply to both situations.

First of all, I prefer tabbed MDI most. All three applications support this, 
though all three now use a listbox or tree widget as "tabs". The reason is 
simple: If i'm going to read mail, I want to do just that. If I rework some 
web site/program/perl modules/... I want to do that efficiently, with easy 
switching between the involved files. If I'm chatting, ... you get the idea.
The reason is simply that the global task bar doesn't give me the fast, easy 
and correct navigation a tab bar gives me: The tab bar is usually nearer at 
the mouse cursor, thus more easily reachable. It offers (context-wise) the 
best choices. And it doesn't require a mental switch to outside the current 
window.

Then there is the multi-screen issue, and this applies to single screens as 
well, for example when using multiple virtual desktops. I often double-click 
an email to put it beside the work I have to do - on a different screen 
and/or desktop. I wouldn't want the whole of kmail lying there. Likewise for 
kate/kwrite: viewing the source of a web page to see what's wrong, it opens 
kwrite, which is very appropriate since I can put it beside the web browser 
and the screenshot of the expected result. And the chat: kvirc allows you to 
detach MDI windows into top-level windows, so I can ignore the chat and leave 
it alone on a different desktop until I take a break, but can chat with that 
one person I really want to talk to beside my work. These are the classic 
pro-SDI scenarios.

But even old MDI isn't that bad. In kvirc, I usually "work" MDI-full-screen 
(i.e., tabbed). Yet sometimes it is useful to open 6 windows and let kvirc 
tile them inside the MDI workspace so I can see them all, _but still confine 
them to the total size I chose_ (they shouldn't occupy the whole screen!).
The same goes for konqueror and it's "split window" feature. The important 
factor here is that I can arrange things I want, and then move the whole 
thing around without destroying the internal arrangement, and that I can have 
it auto-arranged for me while restricting it to the amount of screen space I 
chose.

I wouldn't want to miss any of the three modes, and that many apps support two 
or three of them is a good indicator that others won't, either.
There was a suggestion that the WM should handle this through a generic 
protocol. In theory I consider this the best idea, and doable (even in the 
face of keybindings, tree widgets, different toolkits, ...), but it surely 
needs a lot of thoughts and cooperation from all sides to get that right. I 
don't particularly like the Flux example, it looks 'bolted-on'.
But in any case, it definitely is horrible to have 5 tabbing codes with either 
alt-left, shift-left, ctrl-shift-tab, ctrl-left and whatever keybindings 
might be there, each one looking and behaving slightly different.
IMHO, there could be _one_ "Real Tabs" tab mode, one "Listbox like in kate" 
mode and one "Tree" mode to be re-used by applications (not user-choosable).

As for the style guide, I suggest adding that MDI/tabbed MDI may make sense, 
depending on application context, but that no app should ever think of not 
supporting SDI as well (even if it is technically seen a different app, like  
the kate/kwrite combo).

And a very personal opinion: I think "Controlled SDI" (see the style guide) is 
rubbish. If you have 2000 documents, Listbox-style or Tree-style tabbed MDI 
is way better to handle this amount efficiently. Since you (hopefully) have 
the option to open a document in SDI mode manually, you don't lose 
flexibility.

-- 
CU
  Joerg

PGP Public Key at http://ich.bin.kein.hoschi.de/~trouble/public_key.asc
PGP Key fingerprint = D34F 57C4 99D8 8F16 E16E  7779 CDDC 41A4 4C48 6F94





More information about the kde-core-devel mailing list