VariableModel2.h
68 lines
| 2.5 KiB
| text/x-c
|
CLexer
r21 | #ifndef SCIQLOP_VARIABLEMODEL2_H | |||
#define SCIQLOP_VARIABLEMODEL2_H | ||||
#include "CoreGlobal.h" | ||||
#include <Data/DateTimeRange.h> | ||||
#include <QAbstractTableModel> | ||||
#include <QLoggingCategory> | ||||
#include <Common/MetaTypes.h> | ||||
#include <Common/spimpl.h> | ||||
class IDataSeries; | ||||
class Variable; | ||||
class VariableController2; | ||||
r26 | enum VariableRoles { ProgressRole = Qt::UserRole }; | |||
r21 | /** | |||
* @brief The VariableModel class aims to hold the variables that have been created in SciQlop | ||||
*/ | ||||
class SCIQLOP_CORE_EXPORT VariableModel2 : public QAbstractTableModel { | ||||
Q_OBJECT | ||||
r27 | // read only mirror of VariableController2 content | |||
std::vector<std::shared_ptr<Variable>> _variables; | ||||
r21 | public: | |||
r27 | explicit VariableModel2(QObject *parent = nullptr); | |||
r21 | ||||
// /////////////////////////// // | ||||
// QAbstractTableModel methods // | ||||
// /////////////////////////// // | ||||
virtual int columnCount(const QModelIndex &parent = QModelIndex{}) const override; | ||||
virtual int rowCount(const QModelIndex &parent = QModelIndex{}) const override; | ||||
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; | ||||
virtual QVariant headerData(int section, Qt::Orientation orientation, | ||||
int role = Qt::DisplayRole) const override; | ||||
virtual Qt::ItemFlags flags(const QModelIndex &index) const override; | ||||
// ///////////////// // | ||||
// Drag&Drop methods // | ||||
// ///////////////// // | ||||
virtual Qt::DropActions supportedDropActions() const override; | ||||
virtual Qt::DropActions supportedDragActions() const override; | ||||
virtual QStringList mimeTypes() const override; | ||||
virtual QMimeData *mimeData(const QModelIndexList &indexes) const override; | ||||
virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, | ||||
const QModelIndex &parent) const override; | ||||
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, | ||||
const QModelIndex &parent) override; | ||||
r30 | const std::vector<std::shared_ptr<Variable>>& variables() const | |||
{return _variables;} | ||||
r21 | ||||
signals: | ||||
r27 | void createVariable(const QVariantHash &productData); | |||
void asyncChangeRange(const std::shared_ptr<Variable>& variable, const DateTimeRange& r); | ||||
public slots: | ||||
r21 | /// Slot called when data of a variable has been updated | |||
r32 | void variableUpdated(QUuid id) noexcept; | |||
r27 | void variableAdded(const std::shared_ptr<Variable>&); | |||
void variableDeleted(const std::shared_ptr<Variable>&); | ||||
r21 | }; | |||
#endif // SCIQLOP_VARIABLEMODEL2_H | ||||