knowL: Knowledge Libraries
Loading...
Searching...
No Matches
QueryResultModel.h
1#pragma once
2
3#include <QAbstractListModel>
4
5#include <knowDBC/Forward.h>
6
7namespace knowDBC::Quick
8{
9 class QueryResultModel : public QAbstractListModel
10 {
11 Q_OBJECT
12 Q_PROPERTY(QStringList columnNames READ columnNames NOTIFY columnNamesChanged)
13 public:
14 enum class Type
15 {
16 CSV,
17 JSON,
18 SRX
19 };
20 Q_ENUM(Type)
21 public:
22 explicit QueryResultModel(QObject* parent = nullptr);
23 QueryResultModel(const knowDBC::Result& _result, QObject* parent = nullptr);
24 virtual ~QueryResultModel();
25 QStringList columnNames() const;
26 Q_INVOKABLE int roleIndex(const QString& _role) const;
27 Q_INVOKABLE bool saveTo(const QUrl& _filename, Type _type) const;
28 Q_INVOKABLE QByteArray serialise(const QString& _format);
29 protected:
30 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
31 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
32 QHash<int, QByteArray> roleNames() const override;
33 public:
34 knowDBC::Result result() const;
35 void setResult(const knowDBC::Result& _t);
36 signals:
37 void columnNamesChanged();
38 private:
39 struct Private;
40 Private* const d;
41 };
42} // namespace knowDBC::Quick
Definition Forward.h:10
Definition QueryResultModel.h:10
Definition Result.h:23
Definition QueryResultModel.cpp:16