git / moonbite-core / src/qt/csvmodelwriter.h · raw
// Copyright (c) 2011-2020 The Bitcoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#ifndef BITCOIN_QT_CSVMODELWRITER_H#define BITCOIN_QT_CSVMODELWRITER_H#include <QList>#include <QObject>QT_BEGIN_NAMESPACEclass QAbstractItemModel;QT_END_NAMESPACE/** Export a Qt table model to a CSV file. This is useful for analyzing or post-processing the data in a spreadsheet. */class CSVModelWriter : public QObject{ Q_OBJECTpublic: explicit CSVModelWriter(const QString &filename, QObject *parent = nullptr); void setModel(const QAbstractItemModel *model); void addColumn(const QString &title, int column, int role=Qt::EditRole); /** Perform export of the model to CSV. @returns true on success, false otherwise */ bool write();private: QString filename; const QAbstractItemModel *model; struct Column { QString title; int column; int role; }; QList<Column> columns;};#endif // BITCOIN_QT_CSVMODELWRITER_H