[Kst] branches/work/kst/portto4/kst/src/datasources/ascii

Nicolas Brisset nicolas.brisset at eurocopter.com
Thu Apr 22 08:14:59 CEST 2010


SVN commit 1117430 by brisset:

When reading a file with the ASCII datasource, always load ASCII defaults before attempting to load file-specific settings (asciisourceconfig.cpp).
Also avoid overriding those defaults with hard-coded values when no key exists for the given file (namedparameter.h). That issue is actually more a problem that the test in asciisourceconfig.cpp / AsciiSourceConfig::readGroup is not specific enough: fileName.isEmpty() triggers too easily => if the file has no settings stored, we still try to read its settings and since we find nothing we revert to hard-coded default values. With this patch, the constructor sets hard-coded defaults, then we override them with the ASCII source's general defaults, then with file-specific values, but only if there are some in QSettings. If you think this patch is wrong, we have to find a way to test for the existence of settings for the given file instead of just testing whether the filename is empty.

BUG: 234396

 M  +2 -3      asciisourceconfig.cpp  
 M  +1 -3      namedparameter.h  


--- branches/work/kst/portto4/kst/src/datasources/ascii/asciisourceconfig.cpp #1117429:1117430
@@ -115,9 +115,8 @@
 
 void AsciiSourceConfig::readGroup(QSettings& cfg, const QString& fileName) {
   cfg.beginGroup(AsciiSource::asciiTypeKey());
-  if (fileName.isEmpty()) {
-    read(cfg);
-  } else {
+  read(cfg);
+  if (!fileName.isEmpty()) {
     cfg.beginGroup(fileName);
     read(cfg);
     cfg.endGroup();
--- branches/work/kst/portto4/kst/src/datasources/ascii/namedparameter.h #1117429:1117430
@@ -40,9 +40,7 @@
 
   void operator<<(QSettings& settings) {
     const QVariant var = settings.value(Key);
-    if (var.isNull())
-      setValue(_default_value);
-    else
+    if (!var.isNull())
       setValue(var.value<T>());
   }
 


More information about the Kst mailing list