Details
-
Bug
-
Resolution: Out of scope
-
Not Evaluated
-
None
-
5.14.0
-
None
-
Tested under Arch linux with Qt 5.14 and also tested with 5.11.3 from debian buster.
Description
Test code:
QSettings test("/home/username/tmp/aaa.ini", QSettings::IniFormat);
qDebug() << test.allKeys();
Expect:
qDebug print all five keys in aaa.ini
Actual Result:
qDebug print: ("KeyOne", "KeyThree", "KeyTwo")
---------------------------
I got this issue when I use QSettings parse .desktop file with something like:
QSettings settings("/path/to/file.desktop", QSettings::IniFormat)
While I know .desktop file is not the very same thing as .ini format file, but using QSettings to get all keys should works. Then I found it cannot find the key of a .desktop file from GNOME Evolution properly (org.gnome.Evolution.desktop). I did a quick debug and found once it read at the line of 'Comment[he]' key, it will read the entire following data as the value of that key probably because it cannot find the LF('\n') character.
Since it's still not an INI format file, I modified that file and make the file as simple as possible and hopefully I didn't get it wrong, and the attachment is the files which can be used for testing. The `aaa.orig.desktop` is a copy of the original `org.gnome.Evolution.desktop` file which I get from Debian buster Evolution package, `aaa.desktop` is just the same file but removed a few lines above the 'Comment[he]' key, and the `aaa.ini` is my approach to make it as a valid INI format file(by convert LF to CR LF, and rename the section name and key name).
Here is the content of the INI file:
[General] KeyOne=Xestione o seu correo, contactos e programación KeyTwo=તમારું ઈમેઈલ, સંપર્કો અને સમયક્રમની વ્યવસ્થા કરો KeyThree=נהל את הדוא"ל, אנשי הקשר ולוח הזמנים שלך KeyFour=अपना ईमेल संपर्क व योजना प्रबंधित करें KeyFive=Upravljanje poštom, kontaktima i rasporedom
For the given .ini file (and also the `aaa.desktop`), if we use QSettings with QSettings::IniFormat to parse the file and use QSettings::allKeys() to get the keys, we can see we only get the first three keys, it's "KeyOne", "KeyThree", "KeyTwo" for the ini file and it's "Desktop Entry/Comment[gl]", "Desktop Entry/Comment[gu]", "Desktop Entry/Comment[he]" for the aaa.desktop file.
I'm not sure if it's an issue of QSettings or it's not a valid INI format file. Sorry if I did something wrong.