KXMLGUI question

Christoph Cullmann crossfire at babylon2k.de
Sun Apr 21 16:36:29 BST 2002


On Sunday 21 April 2002 16:56, Ellis Whitehead wrote:
> On Sunday 21 April 2002 08:23, Christoph Cullmann wrote:
> > but only the icons in the menus/toolbars get
> > the new actions, the shortcuts always be the shortcuts of the last
> > created Kate::view. even after removeClient :(.
>
> Could you explain exactly what you mean by "last create Kate::view"?  It
> sounds like you're saying the following: Let's say we have View A, B, and
> C, with bindings A, B, and C.  When we first activate View A, presumably
> the Bindings A are also active.  But then we create/activate View B, and
> Bindings A are still active.  Now we create/activate View C and ... are
> Binding B now active?  Or Bindings A?
>
> View		Binding
> A		A
> B		A?
> C		B?

Wait, try to explain it my way ;) (as I don'T really know what your stuff 
means, too ;)

(starting with no active views)

1. we create a view A (A will be added to the guifactory)
-> working shortcuts for B

2. we create a second view B (B added to guifactory, A removed from 
guifactory)
-> working shortcuts for B

3. we change from view B to view A (A added to guifactory, B removed from 
guifactory)
-> bindings of B will still be used by the shortcuts, error, if you hit for 
example CTRL-X the stuff will be cut from view B !

4. we create a new view C  (C added to guifactory, A removed from guifactory)
-> working shortcuts for C

5. we change from view C to any other view (other view added to guifactory, C 
removed from guifactory)
-> bindings of C will still be used by the shortcuts, error, if you hit for 
example CTRL-X the stuff will be cut from view C !


Code which does that on viewChange (if you create a view that is counted as 
viewchange too, as the newly created view will become active):

// was there allready a activeView
if (activeView)
  guiFactory()->removeClient (activeView);
 
// set new active View 
activeView = view;
    
// add the new view to the factory
if (activeView)
 guiFactory ()->addClient( activeView );


Is that a better example ?


cu
Christoph
 


-- 
Christoph "Crossfire" Cullmann
Kate/KDE developer
cullmann at kde.org
http://kate.kde.org




More information about the kde-core-devel mailing list