Showing with 64 additions and 109 deletions.
  1. +31 −52 src/datasources/ascii/asciisourceconfig.cpp
  2. +26 −50 src/datasources/ascii/asciisourceconfig.h
  3. +5 −5 src/datasources/ascii/namedparameter.h
  4. +2 −2 src/libkst/settings.cpp
83 changes: 31 additions & 52 deletions src/datasources/ascii/asciisourceconfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,56 +23,31 @@
#define DEFAULT_COLUMN_WIDTH 16


const char AsciiSourceConfig::Key_fileNamePattern[] = "Filename Pattern";
const char AsciiSourceConfig::Tag_fileNamePattern[] = "filenamepattern";
const char AsciiSourceConfig::Key_delimiters[] = "Comment Delimiters";
const char AsciiSourceConfig::Tag_delimiters[] = "delimiters";
const char AsciiSourceConfig::Key_indexVector[] ="Index";
const char AsciiSourceConfig::Tag_indexVector[] ="vector";
const char AsciiSourceConfig::Key_indexInterpretation[] = "Default INDEX Interpretation";
const char AsciiSourceConfig::Tag_indexInterpretation[] = "interpretation";
const char AsciiSourceConfig::Key_timeAsciiFormatString[] = "ASCII Time format";
const char AsciiSourceConfig::Tag_timeAsciiFormatString[] = "asciiTimeFormat";
const char AsciiSourceConfig::Key_columnType[] = "Column Type";
const char AsciiSourceConfig::Tag_columnType[] = "columntype";
const char AsciiSourceConfig::Key_columnDelimiter[] = "Column Delimiter";
const char AsciiSourceConfig::Tag_columnDelimiter[] = "columndelimiter";
const char AsciiSourceConfig::Key_columnWidth[] = "Column Width";
const char AsciiSourceConfig::Tag_columnWidth[] = "columnwidth";
const char AsciiSourceConfig::Key_columnWidthIsConst[] = "Column Width is const";
const char AsciiSourceConfig::Tag_columnWidthIsConst[] = "columnwidthisconst";
const char AsciiSourceConfig::Key_dataLine[] = "Data Start";
const char AsciiSourceConfig::Tag_dataLine[] = "headerstart";
const char AsciiSourceConfig::Key_readFields[] = "Read Fields";
const char AsciiSourceConfig::Tag_readFields[] = "readfields";
const char AsciiSourceConfig::Key_readUnits[] = "Read Units";
const char AsciiSourceConfig::Tag_readUnits[] = "readunits";
const char AsciiSourceConfig::Key_useDot[] = "Use Dot";
const char AsciiSourceConfig::Tag_useDot[] = "usedot";
const char AsciiSourceConfig::Key_fieldsLine[] = "Fields Line";
const char AsciiSourceConfig::Tag_fieldsLine[] = "fields";
const char AsciiSourceConfig::Key_unitsLine[] = "Units Line";
const char AsciiSourceConfig::Tag_unitsLine[] = "units";
const char AsciiSourceConfig::Key_limitFileBuffer[] = "Limit file buffer size";
const char AsciiSourceConfig::Tag_limitFileBuffer[] = "limitFileBuffer";
const char AsciiSourceConfig::Key_limitFileBufferSize[] = "Size of limited file buffer";
const char AsciiSourceConfig::Tag_limitFileBufferSize[] = "limitFileBufferSize";
const char AsciiSourceConfig::Key_useThreads[] = "Use threads when parsing Ascii data";
const char AsciiSourceConfig::Tag_useThreads[] = "useThreads";
const char AsciiSourceConfig::Key_dataRate[] = "Data Rate for index";
const char AsciiSourceConfig::Tag_dataRate[] = "dataRate";
const char AsciiSourceConfig::Key_offsetDateTime[] = "use an explicit date/time offset";
const char AsciiSourceConfig::Tag_offsetDateTime[] = "offsetDateTime";
const char AsciiSourceConfig::Key_offsetFileDate[] = "use file time/date as offset";
const char AsciiSourceConfig::Tag_offsetFileDate[] = "offsetFileDate";
const char AsciiSourceConfig::Key_offsetRelative[] = "use relative file time offset";
const char AsciiSourceConfig::Tag_offsetRelative[] = "offsetRelavive";
const char AsciiSourceConfig::Key_dateTimeOffset[] = "date/time offset";
const char AsciiSourceConfig::Tag_dateTimeOffset[] = "dateTimeOffset";
const char AsciiSourceConfig::Key_relativeOffset[] = "relative offset";
const char AsciiSourceConfig::Tag_relativeOffset[] = "relativeOffset";
const char AsciiSourceConfig::Key_nanValue[] = "NaN value";
const char AsciiSourceConfig::Tag_nanValue[] = "nanValue";
const char AsciiSourceConfig::Key_fileNamePattern[] = "filenamepattern";
const char AsciiSourceConfig::Key_delimiters[] = "delimiters";
const char AsciiSourceConfig::Key_indexVector[] ="vector";
const char AsciiSourceConfig::Key_indexInterpretation[] = "interpretation";
const char AsciiSourceConfig::Key_timeAsciiFormatString[] = "asciiTimeFormat";
const char AsciiSourceConfig::Key_columnType[] = "columntype";
const char AsciiSourceConfig::Key_columnDelimiter[] = "columndelimiter";
const char AsciiSourceConfig::Key_columnWidth[] = "columnwidth";
const char AsciiSourceConfig::Key_columnWidthIsConst[] = "columnwidthisconst";
const char AsciiSourceConfig::Key_dataLine[] = "headerstart";
const char AsciiSourceConfig::Key_readFields[] = "readfields";
const char AsciiSourceConfig::Key_readUnits[] = "readunits";
const char AsciiSourceConfig::Key_useDot[] = "usedot";
const char AsciiSourceConfig::Key_fieldsLine[] = "fields";
const char AsciiSourceConfig::Key_unitsLine[] = "units";
const char AsciiSourceConfig::Key_limitFileBuffer[] = "limitFileBuffer";
const char AsciiSourceConfig::Key_limitFileBufferSize[] = "limitFileBufferSize";
const char AsciiSourceConfig::Key_useThreads[] = "useThreads";
const char AsciiSourceConfig::Key_dataRate[] = "dataRate";
const char AsciiSourceConfig::Key_offsetDateTime[] = "offsetDateTime";
const char AsciiSourceConfig::Key_offsetFileDate[] = "offsetFileDate";
const char AsciiSourceConfig::Key_offsetRelative[] = "offsetRelavive";
const char AsciiSourceConfig::Key_dateTimeOffset[] = "dateTimeOffset";
const char AsciiSourceConfig::Key_relativeOffset[] = "relativeOffset";
const char AsciiSourceConfig::Key_nanValue[] = "nanValue";

AsciiSourceConfig::AsciiSourceConfig() :
_delimiters(DEFAULT_COMMENT_DELIMITERS),
Expand Down Expand Up @@ -135,7 +110,7 @@ void AsciiSourceConfig::save(QSettings& cfg) const {


void AsciiSourceConfig::saveGroup(QSettings& cfg, const QString& fileName) const {
cfg.beginGroup(AsciiSource::asciiTypeKey());
cfg.beginGroup(typeKey());
if (fileName.isEmpty()) {
save(cfg);
} else {
Expand Down Expand Up @@ -175,9 +150,13 @@ void AsciiSourceConfig::read(QSettings& cfg) {
_nanValue << cfg;
}

QString AsciiSourceConfig::typeKey() const {
QString typeKey = AsciiSource::asciiTypeKey();
return typeKey.replace(" ", "_");
}

void AsciiSourceConfig::readGroup(QSettings& cfg, const QString& fileName) {
cfg.beginGroup(AsciiSource::asciiTypeKey());
cfg.beginGroup(typeKey());
read(cfg);
if (!fileName.isEmpty()) {
cfg.beginGroup(fileName);
Expand Down
76 changes: 26 additions & 50 deletions src/datasources/ascii/asciisourceconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,55 +23,30 @@ class AsciiSourceConfig {

// TODO translate keys?
static const char Key_fileNamePattern[];
static const char Tag_fileNamePattern[];
static const char Key_delimiters[];
static const char Tag_delimiters[];
static const char Key_indexVector[];
static const char Tag_indexVector[];
static const char Key_indexInterpretation[];
static const char Tag_indexInterpretation[];
static const char Key_timeAsciiFormatString[];
static const char Tag_timeAsciiFormatString[];
static const char Key_columnType[];
static const char Tag_columnType[];
static const char Key_columnDelimiter[];
static const char Tag_columnDelimiter[];
static const char Key_columnWidth[];
static const char Tag_columnWidth[];
static const char Key_columnWidthIsConst[];
static const char Tag_columnWidthIsConst[];
static const char Key_dataLine[];
static const char Tag_dataLine[];
static const char Key_readFields[];
static const char Tag_readFields[];
static const char Key_readUnits[];
static const char Tag_readUnits[];
static const char Key_useDot[];
static const char Tag_useDot[];
static const char Key_fieldsLine[];
static const char Tag_fieldsLine[];
static const char Key_unitsLine[];
static const char Tag_unitsLine[];
static const char Key_limitFileBuffer[];
static const char Tag_limitFileBuffer[];
static const char Key_limitFileBufferSize[];
static const char Tag_limitFileBufferSize[];
static const char Key_useThreads[];
static const char Tag_useThreads[];
static const char Key_dataRate[];
static const char Tag_dataRate[];
static const char Key_offsetDateTime[];
static const char Tag_offsetDateTime[];
static const char Key_offsetFileDate[];
static const char Tag_offsetFileDate[];
static const char Key_offsetRelative[];
static const char Tag_offsetRelative[];
static const char Key_dateTimeOffset[];
static const char Tag_dateTimeOffset[];
static const char Key_relativeOffset[];
static const char Tag_relativeOffset[];
static const char Key_nanValue[];
static const char Tag_nanValue[];

public:
AsciiSourceConfig();
Expand All @@ -91,35 +66,36 @@ class AsciiSourceConfig {
enum Interpretation { Unknown = 0, NoInterpretation, CTime, Seconds, FormattedTime, FixedRate, IntEnd = 0xffff };
enum ColumnType { Whitespace = 0, Fixed, Custom, ColEnd = 0xffff };

NamedParameter<QString, Key_delimiters, Tag_delimiters> _delimiters;
NamedParameter<QString, Key_indexVector, Tag_indexVector> _indexVector;
NamedParameter<int, Key_indexInterpretation, Tag_indexInterpretation> _indexInterpretation;
NamedParameter<QString, Key_timeAsciiFormatString, Tag_timeAsciiFormatString> _timeAsciiFormatString;
NamedParameter<QString, Key_fileNamePattern, Tag_fileNamePattern> _fileNamePattern;
NamedParameter<int, Key_columnType, Tag_columnType> _columnType;
NamedParameter<QString, Key_columnDelimiter, Tag_columnDelimiter> _columnDelimiter;
NamedParameter<int, Key_columnWidth, Tag_columnWidth> _columnWidth;
NamedParameter<bool, Key_columnWidthIsConst, Tag_columnWidthIsConst> _columnWidthIsConst;
NamedParameter<int, Key_dataLine, Tag_dataLine> _dataLine;
NamedParameter<bool, Key_readFields, Tag_readFields> _readFields;
NamedParameter<bool, Key_readUnits, Tag_readUnits> _readUnits;
NamedParameter<int, Key_fieldsLine, Tag_fieldsLine> _fieldsLine;
NamedParameter<int, Key_unitsLine, Tag_unitsLine> _unitsLine;
NamedParameter<bool, Key_useDot, Tag_useDot> _useDot;
NamedParameter<bool, Key_limitFileBuffer, Tag_limitFileBuffer> _limitFileBuffer;
NamedParameter<qint64, Key_limitFileBufferSize, Tag_limitFileBufferSize> _limitFileBufferSize;
NamedParameter<int, Key_useThreads, Tag_useThreads> _useThreads;
NamedParameter<double, Key_dataRate, Tag_dataRate> _dataRate;
NamedParameter<bool, Key_offsetDateTime, Tag_offsetDateTime> _offsetDateTime;
NamedParameter<bool, Key_offsetFileDate, Tag_offsetFileDate> _offsetFileDate;
NamedParameter<bool, Key_offsetRelative, Tag_offsetRelative> _offsetRelative;
NamedParameter<QDateTime, Key_dateTimeOffset, Tag_dateTimeOffset> _dateTimeOffset;
NamedParameter<double, Key_relativeOffset, Tag_relativeOffset> _relativeOffset;
NamedParameter<int, Key_nanValue, Tag_nanValue> _nanValue;
NamedParameter<QString, Key_delimiters> _delimiters;
NamedParameter<QString, Key_indexVector> _indexVector;
NamedParameter<int, Key_indexInterpretation> _indexInterpretation;
NamedParameter<QString, Key_timeAsciiFormatString> _timeAsciiFormatString;
NamedParameter<QString, Key_fileNamePattern> _fileNamePattern;
NamedParameter<int, Key_columnType> _columnType;
NamedParameter<QString, Key_columnDelimiter> _columnDelimiter;
NamedParameter<int, Key_columnWidth> _columnWidth;
NamedParameter<bool, Key_columnWidthIsConst> _columnWidthIsConst;
NamedParameter<int, Key_dataLine> _dataLine;
NamedParameter<bool, Key_readFields> _readFields;
NamedParameter<bool, Key_readUnits> _readUnits;
NamedParameter<int, Key_fieldsLine> _fieldsLine;
NamedParameter<int, Key_unitsLine> _unitsLine;
NamedParameter<bool, Key_useDot> _useDot;
NamedParameter<bool, Key_limitFileBuffer> _limitFileBuffer;
NamedParameter<qint64, Key_limitFileBufferSize> _limitFileBufferSize;
NamedParameter<int, Key_useThreads> _useThreads;
NamedParameter<double, Key_dataRate> _dataRate;
NamedParameter<bool, Key_offsetDateTime> _offsetDateTime;
NamedParameter<bool, Key_offsetFileDate> _offsetFileDate;
NamedParameter<bool, Key_offsetRelative> _offsetRelative;
NamedParameter<QDateTime, Key_dateTimeOffset> _dateTimeOffset;
NamedParameter<double, Key_relativeOffset> _relativeOffset;
NamedParameter<int, Key_nanValue> _nanValue;

private:
void save(QSettings& cfg) const;
void read(QSettings& cfg);
QString typeKey() const;
};

Q_DECLARE_METATYPE(AsciiSourceConfig::Interpretation)
Expand Down
10 changes: 5 additions & 5 deletions src/datasources/ascii/namedparameter.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include <QXmlStreamAttributes>
#include <QDomElement>

template<class T, const char* Key, const char* Tag>
template<class T, const char* Key>
class NamedParameter
{
public:
Expand All @@ -43,16 +43,16 @@ class NamedParameter
}

void operator>>(QXmlStreamWriter& xml) {
xml.writeAttribute(Tag, QVariant(value()).toString());
xml.writeAttribute(Key, QVariant(value()).toString());
}

void operator<<(QXmlStreamAttributes& att) {
setValue(QVariant(att.value(Tag).toString()).value<T>());
setValue(QVariant(att.value(Key).toString()).value<T>());
}

void operator<<(const QDomElement& e) {
if (e.hasAttribute(Tag)) {
setValue(QVariant(e.attribute(Tag)).value<T>());
if (e.hasAttribute(Key)) {
setValue(QVariant(e.attribute(Key)).value<T>());
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/libkst/settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ QSettings& Kst::createSettings(const QString& scope)
{
const QString organization = "kst";
QSettings* setting =
//new QSettings(QApplication::applicationDirPath() + "/" + organization + "-" + scope + ".ini", QSettings::IniFormat);
new QSettings(organization, scope);
new QSettings(QApplication::applicationDirPath() + "/" + organization + "-" + scope + ".ini", QSettings::IniFormat);
//new QSettings(organization, scope);
s_settings << setting;
return *setting;
}
Expand Down