Bug 444453

Summary: The last character encoding combobox entries are unreachable by scrolling
Product: [Applications] okteta Reporter: Nagy Tibor <xnagytibor>
Component: generalAssignee: Friedrich W. H. Kossebau <kossebau>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version First Reported In: 0.26.6   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed/Implemented In: 0.26.7
Sentry Crash Report:
Attachments: Combobox behavior on scroll

Description Nagy Tibor 2021-10-26 21:03:38 UTC
Created attachment 142924 [details]
Combobox behavior on scroll

SUMMARY
When scrolling over the encoding combobox at the status bar of Okteta the last character encodings are unreachable. This happens because there are duplicate entries of "TIS-620" in this combobox. When you reach the second instance of this encoding, it warps you back to the first instance of "TIS-620", forming an infinite loop on scroll.

It would be great to deduplicate the encodings in this combobox to fix this issue.

SOFTWARE/OS VERSIONS
Operating System: KDE neon 5.23
KDE Plasma Version: 5.23.1
KDE Frameworks Version: 5.87.0
Qt Version: 5.15.3
Graphics Platform: X11
Comment 1 Friedrich W. H. Kossebau 2021-10-27 04:25:56 UTC
Hi, thanks for the report.

I can confirm the duplicated entry. Seems Qt broke here when switching to using ICU as backend, and request for TIS-620 and IBM874 are now both getting the same codec back. Meh. And seems there is quite some confusing naming for confusingly many variants of encodings for Latin/Thai. And Qt's code to connect to libicu is rather oversimplifying things, just caring for MIME and IANA naming now. Guess I have to escape into a custom codec then. Will think about the next days.

I can also reproduce the error. That seems a bug in Qt, which also happens when adding a different data and icon to each entry, while using the same string.

Ideally someone should file that bug with them.

But once the charset duplication is fixed, should not bother us here.
Comment 2 Friedrich W. H. Kossebau 2022-02-21 22:33:40 UTC
Git commit 95c1bdb937e06130b2a4c97f8981aef4d496e0bf by Friedrich W. H. Kossebau.
Committed on 21/02/2022 at 19:33.
Pushed by kossebau into branch '0.26'.

Implement own IBM874 codec, as Qt with ICU uses instead TIS-620
FIXED-IN: 0.26.7

M  +1    -0    core/CMakeLists.txt
M  +5    -1    core/codecs/charcodec.cpp
A  +88   -0    core/codecs/ibm874charcodec.cpp     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
A  +40   -0    core/codecs/ibm874charcodec.hpp     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
M  +1    -1    core/codecs/textcharcodec.cpp

https://invent.kde.org/utilities/okteta/commit/95c1bdb937e06130b2a4c97f8981aef4d496e0bf