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