[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    RE: KSelectAction troubles
From:       Lotzi Boloni <boloni () cs ! purdue ! edu>
Date:       2000-03-01 16:12:36
[Download RAW message or body]


  Simon, David 

  thanks for the input. So:

-I will do the stuff with the separators this afternoon. 
-And I will solve the signal problem by disabling the signals explicitly. 

        Lotzi

On Wed, 1 Mar 2000, David Faure wrote:

> >   Hi guys
> > 
> >   I was just converting some menus in konsole to KSelectAction, and I
> > found two missing functionality. 
> > 
> > 1. The ability to add separators in selections. For example 
> > there was a
> > separation between /tiny,small,medium,large,huge/ and /linux/ and
> > /custom/. There may be some more cases like this, especially for
> > separating the custom field (or whatever grouping: Blue 
> > pokemons form Pink pokemons). 
> :-)
> 
> >    Suggestion: allow a special list element, for example the 
> > empty string
> > to be a separator and it would act as such both in menus and 
> > toolbars. 
> 
> Sounds good.
> 
> > 2. There is no way of setting the current item without triggering the
> > signal. For example when I want to set if the current size is 
> > "80x25" (the
> > user happened to resize it by hand that way) I check the menu 
> > item, but
> > that triggers the signal, that triggers the detection again 
> > ---> infinite
> > cycle. Yes, I can break it using an external boolean, but it 
> > would be nice
> > to have:
> > 
> >    KSelectAction::setCurrentItem(int index, bool emitSignal=TRUE);
> 
> Doesn't sound too good.
> The same problem exists with most Q/K actions (think of [QK]ToggleAction 
> for instance) and needs to be solved in a more general way.
> 
> Up to now I've seen two ways to solve (or rather work around) this problem.
> 
>  * Simon's way : create the action without connecting it, then set
> the action default (checked/unchecked...) and then connect to the slot.
> This is what gives the "can't connect to null:null" warnings on the terminal
> when starting konqueror - but we could easily add checks in [QK]Action
> to avoid those.
> 
>  * Kurt's way : when you create a standard "show menubar" action, it is
> checked by default. i.e. the initial value is _part_ of the action creation.
> Hmm, wait, behind the scenes it's probably just the same. Oh, that's why
> there 
> are so many "can't connect to null:null" warnings. Eh, I've learned
> something.
> 
>  * Ok, the second way is Simon's way again then : disabling the
> effects of the action temporarily - which looks like a hack.
> Something like 
> m_ptaShowDirTree->blockSignals( true );
> m_ptaShowDirTree->setChecked( true );
> m_ptaShowDirTree->blockSignals( false );
> 
> Well. I don't know what we could add to [QK]Action to make this simpler,
> but if you call blockSignals then you can set the current item in
> KSelectAction
> without the slot being triggered.
> 
> David.
> 

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic