From 73092e81030786aa48df0b24fc50c10a013b320c 2017-10-26 15:34:10 From: Thibaud Rabillard Date: 2017-10-26 15:34:10 Subject: [PATCH] Drag of variables --- diff --git a/core/include/Variable/VariableController.h b/core/include/Variable/VariableController.h index 3e18ad1..b198dcd 100644 --- a/core/include/Variable/VariableController.h +++ b/core/include/Variable/VariableController.h @@ -68,6 +68,8 @@ public: */ void deleteVariables(const QVector > &variables) noexcept; + QByteArray mimeDataForVariables(const QList > &variables) const; + QList > variablesForMimeData(const QByteArray &mimeData) const; static AcquisitionZoomType getZoomType(const SqpRange &range, const SqpRange &oldRange); signals: diff --git a/core/include/Variable/VariableModel.h b/core/include/Variable/VariableModel.h index 960ea81..95da42c 100644 --- a/core/include/Variable/VariableModel.h +++ b/core/include/Variable/VariableModel.h @@ -18,6 +18,7 @@ enum VariableRoles { ProgressRole = Qt::UserRole }; class IDataSeries; class Variable; +class VariableController; /** * @brief The VariableModel class aims to hold the variables that have been created in SciQlop @@ -25,7 +26,7 @@ class Variable; class SCIQLOP_CORE_EXPORT VariableModel : public QAbstractTableModel { Q_OBJECT public: - explicit VariableModel(QObject *parent = nullptr); + explicit VariableModel(VariableController *parent = nullptr); /** * Adds an existing variable in the model. @@ -73,7 +74,20 @@ public: 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; void abortProgress(const QModelIndex &index); diff --git a/core/src/Variable/VariableController.cpp b/core/src/Variable/VariableController.cpp index d1865e6..5377542 100644 --- a/core/src/Variable/VariableController.cpp +++ b/core/src/Variable/VariableController.cpp @@ -12,6 +12,7 @@ #include #include