3 #include <QAbstractItemModel>
9 filename(filename), model(0)
28 static void writeValue(QTextStream &f,
const QString &
value)
30 QString escaped =
value;
31 escaped.replace(
'"',
"\"\"");
32 f <<
"\"" << escaped <<
"\"";
35 static void writeSep(QTextStream &f)
40 static void writeNewline(QTextStream &f)
48 if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
50 QTextStream out(&file);
55 numRows =
model->rowCount();
59 for(
int i=0; i<
columns.size(); ++i)
65 writeValue(out,
columns[i].title);
70 for(
int j=0; j<numRows; ++j)
72 for(
int i=0; i<
columns.size(); ++i)
79 writeValue(out, data.toString());
86 return file.error() == QFile::NoError;
void addColumn(const QString &title, int column, int role=Qt::EditRole)
const QAbstractItemModel * model
CSVModelWriter(const QString &filename, QObject *parent=0)
void setModel(const QAbstractItemModel *model)
bool write()
Perform export of the model to CSV.