[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Heads up: new KAccel classes
From: Ellis Whitehead <kde () ellisw ! net>
Date: 2001-11-19 3:37:03
[Download RAW message or body]
To all:
As long as I haven't missed any commits, the following modules now compile:
kdeadmin, kdeartwork, kdemultimedia.
The following modules probably compile now, but I haven't verified it:
kdepim, kdegames.
If anyone tries kdegraphics and it isn't working due to something accelerator
related, please let me know.
On Saturday 17 November 2001 11:53 am, Simon Hausmann wrote:
> On Sat, Nov 17, 2001 at 12:24:52PM -0500, Ellis Whitehead wrote:
> > On Saturday 17 November 2001 15:29, Simon Hausmann wrote:
> > > A possibly stupid question, but why does KAccel no more inherit from
> > > QAccel, and why does it aggregate KAccelBase instead of inheriting
> > > from it?
> >
> > 1) to lighten up the includes.
> > 2) to reduce re-compilation requirements.
> >
> > kaccelbase.h is 'heavy', and I'll still be modifying it a lot before 3.0
> > is released. If KAccel inherited from KAccelBase, then everything which
> > includes kaccel.h (a _lot_) would want to be recompiled for each
> > modification. That was a major time waster for me in the 2.2 cycle.
>
> [ as long as the change is binary compatible (which it has to be
> after 3.0) it doesn't really matter, does it? -- I mean, it's a bit
> like API oddness versus compilation time ;-) ]
The development process is simply too painful if everything is in kaccel.
The difference for me is one of waiting 20 minutes for a fully updated
compile of kdelibs & kdebase, versus 1 hour. I'll try to reduce the oddness
to a minimum by creating a few more wrapper functions and writing
documentation. If you or anyone else has any input on this, I'd be glad to
hear it.
> [snip]
> A question about the KAccel-does-not-inherit-from-QAccel-anymore change:
> Is it because the new KAccel works fundamentally different than
> QAccel?
>
> (although it confuses me that the very first thing KAccel internally does
> is creating a new QAccel instance)
The old KAccel/KGlobalAccel classes had dozens and dozens of overloaded
functions and lots of other code that didn't really belong in them (such as
key conversion and some menu handling). One of my goals was to simplify this
as much as reasonable for the sake of maintainability, especially since the
code has become conceptually complex and will become more so as the user
interface to the emacs-style shortcuts is implemented. Part of the
maintainability idea is to implement KAccel & KGlobalAccel in similar styles,
and deriving KAccel from QAccel would throw that off. Since I haven't seen
any instances of QAccel being used via a KAccel object, I would be reluctant
to trade off internal consistency for what could only have either poor or
obscure and rare application.
> P.S.: sorry for the rants/questions :-} -- independant from what I
> wrote above I really like the stuff you're doing, especially
> the emacs-like shortcut support :)
Thanks. The UI to these shortcuts still needs to be implemented though.
Ciao,
Ellis
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic