Beginning of a Standard Action Configuration KCM (copy, paste .... )

David Faure faure at
Thu Jun 12 19:44:12 BST 2008

On Saturday 07 June 2008, Michael Jansen wrote:
> Hi
> Patches attached.
> I'm lost on how to save the changes. There is an API function 
> KStandardShortcuts::saveShortcut(). Am i really expected to walk over all 
> actions in the collection, somehow find out which shortcuts is behind the 
> action and save it?
> Then i could forget the standard actions and try to work directly with the 
> standard shortcuts but that doesn't seem to be right either.
> Call KActionCollection::writeSettings could possibly be convinced to do the 
> right thing but the we would have these changes not active in the application. 
> Reload the standard shortcuts after saving them?
> Someone ideas?

A QMap? Or, better,
after creating it, and add member var
KActionCollection* m_actionCollection;
and then
void StandardActionsModule::save()
    Q_FOREACH(QAction* action, m_actionCollection->actions()) {
        int id = action->data().toInt();
        KStandardShortcut::saveShortcut(id, action->shortcut());

Ah, but the StandardAction enum is not the StandardShortcut enum.
We need a way to access pInfo->idAccel in kstandardaction.cpp.
How about add this to kstandardaction?
   KDEUI_EXPORT KStandardShortcut::StandardShortcut shortcutForAction(StandardAction id);
(requires #include <kstandardshortcut.h>, but that's fine)

Then you can call this before doing the setData, i.e. associate each qaction
with the StandardShortcut value for it.

David, who likes pseudo-coding and letting others doing all the bugfixing :-)

David Faure, faure at, sponsored by Trolltech to work on KDE,
Konqueror (, and KOffice (

More information about the kde-core-devel mailing list