MantisBT - Doomseeker
View Issue Details
0003503Doomseeker[All Projects] Bugpublic2018-09-21 14:102018-10-06 09:24
WubTheCaptain 
Zalewa 
normaltrivialalways
closedfixed 
1.2 
1.21.2 
0003503: Qt4's assumption of Latin-1 encoding decodes UTF-8 characters in Doomseeker built with Qt4 incorrectly (about dialog)
One obvious place for incorrect decoding is Doomseeker's "About Doomseeker" dialog, accessible from Help → About navigation. For example: The copyright symbol, ©, shows up as Å© as in the attached screenshot, in Doomseeker built with Qt4.
To build Doomseeker with Qt4, use:

cmake -DFORCE_QT4=YES $DOOMSEEKER_SRC
make -j$(nproc)


where $DOOMSEEKER_SRC is the location of source code.
Not reproducible in Qt5, because Qt5 expects UTF-8 and UTF-8 only. The above issue with "About dialog" is not reproducible in Doomseeker 1.1.

'https://wiki.qt.io/index.php?title=Strings_and_encodings_in_Qt&oldid=23630 [^]'
No tags attached.
related to 0003534closed Zalewa Qt4's assumption of Latin-1 encoding decodes UTF-8 characters in Doomseeker built with Qt4 incorrectly (language configuration) 
png 2018-09-21-134347_1280x745_scrot-75%.png (218,822) 2018-09-21 14:10
https://zandronum.com/tracker/file_download.php?file_id=2400&type=bug
png
Issue History
2018-09-21 14:10WubTheCaptainNew Issue
2018-09-21 14:10WubTheCaptainFile Added: 2018-09-21-134347_1280x745_scrot-75%.png
2018-09-21 14:10WubTheCaptainNote Added: 0019593
2018-09-21 14:10WubTheCaptainNote Edited: 0019593bug_revision_view_page.php?bugnote_id=19593#r11872
2018-09-21 14:14WubTheCaptainDescription Updatedbug_revision_view_page.php?rev_id=11874#r11874
2018-09-21 14:14WubTheCaptainAdditional Information Updatedbug_revision_view_page.php?rev_id=11876#r11876
2018-09-21 14:22DrinkyBirdNote Added: 0019594
2018-09-21 14:34WubTheCaptainNote Added: 0019596
2018-09-21 14:35WubTheCaptainNote Edited: 0019596bug_revision_view_page.php?bugnote_id=19596#r11878
2018-09-21 14:36WubTheCaptainNote Edited: 0019596bug_revision_view_page.php?bugnote_id=19596#r11879
2018-09-22 15:53WubTheCaptainTarget Version1.2 =>
2018-09-22 16:00ZalewaAssigned To => Zalewa
2018-09-22 16:00ZalewaStatusnew => assigned
2018-09-22 21:17Blzut3Note Added: 0019656
2018-09-22 21:34ZalewaNote Added: 0019657
2018-09-22 23:05ZalewaNote Added: 0019671
2018-09-22 23:05ZalewaStatusassigned => needs testing
2018-09-23 00:15Blzut3Target Version => 1.2
2018-09-23 00:23WubTheCaptainNote Added: 0019679
2018-09-23 00:23WubTheCaptainStatusneeds testing => resolved
2018-09-23 00:23WubTheCaptainFixed in Version => 1.2
2018-09-23 00:23WubTheCaptainResolutionopen => fixed
2018-09-29 14:17WubTheCaptainStatusresolved => closed
2018-10-06 09:24WubTheCaptainRelationship addedrelated to 0003534

Notes
(0019593)
WubTheCaptain   
2018-09-21 14:10   
This is the likely cause of code not using QString::fromUtf8(), trUtf8():

Quote from src/core/gui/aboutdialog.cpp
QString AboutDialog::copyrightVerboseNotice() const {
    [...]
    // License
    paragraphs << tr("Copyright © %1 The Doomseeker Team").arg(Version::yearSpan());
    
[...]
}


Introduced in commit 8024bf89f4ccd6455ed1d1f8c907e0b668eb7f98.

(0019594)
DrinkyBird   
2018-09-21 14:22   
To be honest, why does Doomseeker still support Qt4? As far as I can tell Qt4 itself hasn't been supported for three years now, and it hasn't received a major features update for much longer.
(0019596)
WubTheCaptain   
2018-09-21 14:34   
(edited on: 2018-09-21 14:36)
Quote from AOSP
To be honest, why does Doomseeker still support Qt4?


I was thinking the same while creating this ticket. The only reason I support Qt4 for is issue 0003494 making Qt5 unviable on OpenBSD, until resolved.

Make a new issue for suggestion to remove Qt4 support in Doomseeker, if you'd like. But I guess that might mean Doomseeker 2.0.0 release in semantic versioning, not 1.2. (No big deal.)

I think the commit above is a hack, anyway.

(0019656)
Blzut3   
2018-09-22 21:17   
Qt4 is technically no longer supported (per 1.1 release announcement), but nothing has been a big enough effort to warrant actually going out of the way to remove it.

As of right now the main thing we'd get from dropping Qt4 out right would be better ability to use C++11/14. Last I checked (1.1 release) Zalewa wasn't super interested in bumping compiler requirements due to complexities with how we distribute Doomseeker and modern Visual Studio's universal CRT.

So until the time comes that it's worth removing it we might as well take the additional niche platform support that Qt4 provides.
(0019657)
Zalewa   
2018-09-22 21:34   
With newer Visual Studio CRTs this is how many DLLs (as opposed to the current 2) we'd need to add to the archive in order to be able to maintain the "unzip & run" installation model that we've been using so far. I'd rather reasses the performance of executables generated by modern versions of MinGW and be inclined to return to that compiler if there is no major performance drop. We'd also probably get back support for Windows 98 and just as v120_xp toolset only needs 2 CRT DLLs, so does MinGW.

For the time being and at this point in development, I'd rather be stuck with C++03 than go through the hassle of switching the compiler.
(0019671)
Zalewa   
2018-09-22 23:05   
© Qt4 problem should be fixed here:'https://bitbucket.org/Doomseeker/doomseeker/commits/071c9899d89474cd5b99d74b5f695bdb725f1a2b [^]'
(0019679)
WubTheCaptain   
2018-09-23 00:23   
Zalewa's commit fixes the © Unicode character issue.

Side-note: AOSP, dropping Qt4 support has ticket 0003514 now.