Introduced new library for pglab code which I want to unit test.

Not everything can go into core because that would result in circular dependencies between core and pgsql.
This commit is contained in:
eelke 2017-12-13 18:04:10 +01:00
parent b8505ce451
commit ad9ed1b698
10 changed files with 98 additions and 21 deletions

61
pglablib/ParamListModel.h Normal file
View file

@ -0,0 +1,61 @@
#ifndef PARAMLISTMODEL_H
#define PARAMLISTMODEL_H
#include <QAbstractTableModel>
#include <vector>
#include "Pgsql_declare.h"
class Param {
public:
QString value; ///< the value of the parameter (currently this is passed directly)
QString type; ///< the type of the parameter
Param() = default;
Param(const QString &v, const QString t)
: value(v), type(t)
{}
};
using t_ParamList = std::vector<Param>;
class ParamListModel : public QAbstractTableModel {
Q_OBJECT
public:
enum e_Column {
ColValue = 0,
ColType,
ColumnCount // Keep last not a column just the count
};
explicit ParamListModel(QObject *parent = 0);
// Header:
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
// bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) override;
// Basic functionality:
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
// Editable:
bool setData(const QModelIndex &index, const QVariant &value,
int role = Qt::EditRole) override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override;
bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override;
// auto begin() const { return m_paramList.begin(); }
// auto end() const { return m_paramList.end(); }
const t_ParamList& GetParams() const;
void SetParams(t_ParamList params);
private:
t_ParamList m_paramList;
};
#endif // PARAMLISTMODEL_H