-
Bug
-
Resolution: Invalid
-
Not Evaluated
-
None
-
4.7.0
-
None
QSettings save bad value of array's size, when program correct only one element of array.
In attachment I add little program, wich show that error.
For example:
Program add 10 element to QSettings array(begin/endArray)
After that program rewrite value for first element (begin/endArray).
Now QSettings::beginReadArray(...) return 1, but must return 10.
#include <QSettings> #define TEST_ARRAY "test_array" #define TEST_KEY "test_key" int main(int argc, char *argv[]) { QSettings settings("./test.ini",QSettings::IniFormat); settings.beginWriteArray(TEST_ARRAY); for(int i=0; i<10; ++i) { settings.setArrayIndex(i); settings.setValue(TEST_KEY,i); } settings.endArray(); int sizeBefore = settings.beginReadArray(TEST_ARRAY); settings.endArray(); qDebug("Array size before = %d",sizeBefore); settings.beginWriteArray(TEST_ARRAY); settings.setArrayIndex(0); settings.setValue(TEST_KEY,-1); settings.endArray(); int sizeAfter = settings.beginReadArray(TEST_ARRAY); settings.endArray(); qDebug("Array size after = %d",sizeAfter); return 0; }
- relates to
-
QTBUG-11878 qsettings problems with beginReadArray or maybe beginWriteArray
-
- Closed
-