RFC: rename or kill KShortcut / add new triggers to KAction
faure at kde.org
Fri Nov 3 09:47:15 GMT 2006
On Fri Nov 3 2006, Andreas Hartmetz wrote:
> 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
Well it's only "very different" because it supports multiple alternative shortcuts, no?
The above code with QList<QKeySequence> would look a bit uglier.
Maybe KShortcut should be KShortcuts? ;)
> What I propose is to:
> -remove KShortcut
> -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.
Hmm. I guess this proposal alone wouldn't make much sense (more complicated name)
but if that class also holds mouse gestures then I guess it does make sense.
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
More information about the kde-core-devel