On Thu May 3 2012 16:08:56 Ladislav Slezak wrote:
> Hi all,
>
> I found out that sorting a table in Yast does not work the same way in
> all UIs.
>
> The Qt UI respects the current locale, while ncurses and Gtk
> always use standard C (ASCII) sorting. That makes a trouble when sorting
> texts with accents.
>
> E.g. ["Z", "Ž", "á", "Á", "A", "a"] is in Qt sorted as users would
> expect ["a", "A", "á", "Á", "Z", "Ž"] (unless the locale is C/POSIX), while
> the others always display ["A", "Z", "a", "Á", "á", "Ž"], which is IMHO a
> bug.
>
>
> The problem is additionally complicated by the locale setting, i.e. it
> depends on invocation, ssh or su/kdesu keeps the current locale, but "su
> -" or logging in a text console sets POSIX locale (which results in C
> sorting).
>
>
> On the other hand locale sorting does not work correctly with numbers,
> in the repository module I pad priority number with spaces so in C sorting
> values " 90" and "100" are sorted correctly. However, this does not work
> when locale sorting is active, the values are in order like this: " 99", "
> 90", "105", "100", which looks strange. So C sorting would be good here.
>
>
> So how to solve all these problems?
>
> - I think table sorting should respect the current locale
> (so there is a bug in Gtk/ncurses)
I agree.
>
> - The numeric sorting problem can be solved by padding numbers with zeroes
> instead of spaces e.g. "090" instead of " 90" - it does not look nice but
> I haven't found any better solution. Any idea? (I tried some tricks with
> UTF-8 non-breakable space but that didn't help.)
I'd propose _NOT_ to add zeros to the ycp code, because it makes the table unreadable. It's an UI issue that needs to be fixed in the UI.
I just fixed the numeric sorting in yast2-qt (version 2.22.6). Columns that contain digits only are sorted in numeric order now.
Cheers,
Thomas
--
Thomas Goettlicher
SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer,
HRB 16746 (AG Nürnberg)
Maxfeldstraße 5
90409 Nürnberg
Germany