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. >