OK, now I understand. You do in fact want two ordering methods.
Grouping a randomly ordered list (which is what calibre starts with) requires three things:
1) An ordering function to put the list into grouping order
2) An equivalence function to determine whether adjacent items are in the same group
3) An ordering function to put the items in a group into the desired order
In calibre, functions 1 and 3 are the same function, order by author sort, used by both the GUI and the tag browser. Function 2 is group by first letter of author_sort.
There are two situations under your scheme. First, there is no grouping, which is equivalent to 1 group. Items would be ordered by author sort. Second, there is grouping by first letter. Ordering function 1 would sort by author (as written), grouping would occur by comparing author's first letters, then each group would be ordered by author sort.
The scheme would have some "interesting" side effects. In the GUI and in the ungrouped authors list, David Brin and Emily Bronte would be adjacent under B, while Edgar Allan Poe would be in the Ps. After grouping, in the tab browser Bronte and Poe would be adjacent under E, while Brin would move to D, making adjacencies in the GUI very different from adjacencies in the tag browser. I can't imagine wanting this, but then I am not you.
I am not interested in doing the programming to implement allowing having different ordering functions 1 and 3. If you or someone else wishes to do so, contact Kovid to see if he would be open to accepting the change.
As I said before, you can get what you want at the expense of always ordering authors as they are written instead of by the "flipped" LN, FN name. In this case we revert to ordering function 1 and 3 being the same function, order by author-as-written. Because the GUI and the tag browser use the same ordering function, the adjacency anomalies disappear.
|