#pragma once #ifndef FXDATA_H #define FXDATA_H // TnzBase includes #include "tfx.h" // TnzLib includes #include "toonz/fxcommand.h" #include "toonz/txshcolumn.h" #include "toonz/tcolumnfx.h" // TnzQt includes #include "toonzqt/dvmimedata.h" // Qt includes #include #include using namespace TFxCommand; //********************************************************************** // FxsData declaration //********************************************************************** class FxsData final : public DvMimeData { QList m_fxs; QMap m_visitedFxs; QMap m_zeraryFxColumnSize; QList m_columns; bool m_connected; public: FxsData(); FxsData *clone() const override; //! Set the FxsData. FxsData<-QList void setFxs(const QList &selectedFxs, const QList &selectedLinks, const QList &columnIndexes, TXsheet *xsh); //! Get the FxsData. FxsData->QList void getFxs(QList &selectedFxs, QMap &zeraryFxColumnSize, QList &columns) const; //! Return true if copied fxs makes a connected graph. bool isConnected() const { return m_connected; } private: void checkConnectivity(); void visitFx(TFx *fx); bool areLinked(TFx *outFx, TFx *inFx); }; #endif // FXDATA_H