comboboxes - sorted lists in KDE4 - idea

Matthew Woehlke mw_triad at users.sourceforge.net
Fri Feb 23 18:09:20 GMT 2007


Ferdinand Gassauer wrote:
> We introduced one (or more)  group levels - separated by "----------------" 
> (like in help)
> and a "sort number" for each item.
> 
> the necessary attributes for every item are
> * group 
> * sort
> * item text
> 
> a list is always sorted by group, sort, item text.
> [snip]

I, for one, think that *having* this is an excellent idea (I won't take 
a stance on whether or not apps should be required to use it, but having 
it *available* would be awesome).

I think Ferdinand has the right idea. 'group' and 'sort' (I would call 
it 'key') should be *non-negative* numbers. Here's why:

const SORT_REUSE = -1;
const SORT_INC = -2;
const SORT_GROUP = -3;

...'reuse' would use the same value that was previously used (i.e. when 
adding items one after another), 'inc' would automatically use the next 
value. 'group' would specify that the item is not a key but the name of 
a group. This way you would have a list that looks like:

-- US sizes
Letter
Legal
-- Metric sizes
A0
...
A4

...where the group names are actually displayed (and can be translated, 
of course), and made distinct by being a different color or through some 
other means, and also are not selectable.

So the (pseudo)code to generate the above would look like:

addItem("US sizes", SORT_GROUP, 1);
addItem("Letter")
addItem("Legal")
addItem("Metric sizes", SORT_GROUP, 2);
addItem("A0");
...
addItem("A4");


...where 'addItem' is:
<type> addItem(QString name,
                int key = SORT_REUSE,
                int group = SORT_REUSE)

(Note that 'reuse' and 'inc' use 0 for the key after SORT_GROUP.)

You could of course specify a simple separator with e.g. "-" instead of 
needing to provide a group name.

And with this, lists would of course always be sorted. :-) We could even 
fight over the default for 'key' being SORT_INC instead of SORT_REUSE to 
make the 'least typing' behavior more like the current unsorted 
behavior, although I think I would argue against it.

-- 
Matthew
Vs lbh pna ernq guvf jvgubhg fbsgjner, lbh ner n FREVBHF areq! -- 
Nqncgrq sebz Znggurj Jva (ivz-qri znvyvat yvfg)





More information about the kde-core-devel mailing list