RFC: rename or kill KShortcut / add new triggers to KAction
ahartmetz at gmail.com
Fri Nov 3 21:42:49 GMT 2006
2006/11/3, Hamish Rodda <rodda at kde.org>:
> On Friday 03 November 2006 20:47, David Faure wrote:
> > On Fri Nov 3 2006, Andreas Hartmetz wrote:
> > > Hi!
> > >
> > > I never liked the mess of KAction, KShortcut and KAccel. Hamish Rodda
> > > did a nice job cleaning it up and I still don't like the parts that
> > > are left.
> > > KShortcut is not much more than a QList<QKeySequence> now and I see no
> > > good reason to keep it. Applications may need to adapt, but a quick
> > > grep through kdebase didn't find any code that really needs KShortcut.
> > I'm afraid your grep program is broken :-)
> > Just one example from konqueror/konq_mainwindow.cc:
> > KShortcut reloadShortcut = KStdAccel::shortcut(KStdAccel::Reload);
> > reloadShortcut.append(Qt::CTRL + Qt::Key_R);
> > m_paReload = new KAction(KIcon("reload"), i18n( "&Reload" ),
> > actionCollection(), "reload" );
> > > Additionally, QShortcut exists now (since Qt 4.0) and it is something
> > > very different from KShortcut. This violates the principle of least
> > > surprise.
> > Well it's only "very different" because it supports multiple alternative
> > shortcuts, no?
> > The above code with QList<QKeySequence> would look a bit uglier.
> Actually, with QKeySequence's constructors not being explicit, wouldn't that
> just work with a typedef or a grep & replace? I actually thought about
> making the change to QList.
> > Maybe KShortcut should be KShortcuts? ;)
> Or KShortcutGroup or KShortcutList...
> > > What I propose is to:
> > > either
> > > -remove KShortcut
> > > or
> > > -rename KShortcut to KActionTriggerSet and make its API very similar
> > > to KAction's shortcuts manipulation API. KActionTriggerSet should hold
> > > exactly the triggers of one KAction including its default triggers,
> > > not more and not less.
> Other than the default/custom confusion which I am simply yet to rename, I
> don't particularly see why we should move global shortcuts etc all out to
> KShortcut. To change a global shortcut, you'd need to retrieve the old
> shortcut set, change it, and set it back again if we did this.
> > Hmm. I guess this proposal alone wouldn't make much sense (more
> > name) but if that class also holds mouse gestures then I guess it does
> > sense.
> Well, I think we could add mouse gestures to KAction. But I'd like to see
> code first...
Well, I can show you what I have - a patch against kdelibs. It's only
the basic mechanism with a very bare API.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 17576 bytes
Desc: not available
More information about the kde-core-devel