debugger shortcuts

Andras Mantia amantia at kde.org
Fri Jul 1 14:59:07 UTC 2005


On Friday 01 July 2005 15:15, Vladimir Prus wrote:
> On Friday 01 July 2005 16:00, Andras Mantia wrote:
> > > Hmm.. is it possible to disable those? I guess those shortcuts
> > > are specified when katepart creates it's KAction's. Can KDevelop
> > > override those?
> >
> > it is possible to disable them, altough it doesn't make much sense
> > because:
> > - other editors can be used inside KDevelop
> > - Katepart might change its shortcuts in the future.
>
> Huh, suppose we decide to use Cntrl+Alt+Shift+Win+Menu+'S' for
> "Step". Then:
>
> 1. What if "other editor" uses exactly same shortcut?
> 2. What if katepart is changed to use this shortcut?

Bad things will happen. :-)

> I realize that clean solution might not be trivial, but some solution
> is certainly needed. 

Right, but it would be needed in some upper level (KXMLGUI framework).

> The problem exists *now* -- if two plugins try 
> to use the same keyboard shortcut, it's not clear what happens. So,
> katerpart tooks some keys, and we need to invent other shortcuts for
> the debugger in hope that there won't be clashes with some other
> plugin.

Right, and this is not a KDevelop specific problem, but it happens for 
every app using KParts, including Konqueror.

Here is an example how to disable/change the shortcut:
  KAction *a = 
m_part->actionCollection()->action("the_name_of_the_action");
  if (a)
    a->setShortcut(KShortCut()); 

As you see it depends on the name of the action which is in the xmlgui 
file for the part.

Other solution is to iterate over all the part's actions that are in 
m_part->actionCollection(), check the shortcuts, and it the part is 
using a shortcut that you need as well, disable it. 
But I find this technique useful in the main application (here the 
KDevelop shell), where you want to have global shortcuts not 
conflicting with any other plugin shortcut, but if you do the same in a 
plugin, it will be a little confusing. Not talking about the fact that 
when the plugin is loaded it must iterate over all existing plugin's 
actioncollection and should do the same for every later loaded plugin. 
With the KDevelop framework I'm not sure that you can get a signal when 
a plugin is loaded.

Andras

-- 
Quanta Plus developer - http://quanta.kdewebdev.org
K Desktop Environment - http://www.kde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20050701/43a9e476/attachment.sig>


More information about the KDevelop-devel mailing list