1 #pragma once 2 3 #ifndef FXDATA_H 4 #define FXDATA_H 5 6 // TnzBase includes 7 #include "tfx.h" 8 9 // TnzLib includes 10 #include "toonz/fxcommand.h" 11 #include "toonz/txshcolumn.h" 12 #include "toonz/tcolumnfx.h" 13 14 // TnzQt includes 15 #include "toonzqt/dvmimedata.h" 16 17 // Qt includes 18 #include <QList> 19 #include <QPair> 20 21 using namespace TFxCommand; 22 23 //********************************************************************** 24 // FxsData declaration 25 //********************************************************************** 26 27 class FxsData final : public DvMimeData { 28 QList<TFxP> m_fxs; 29 QMap<TFx *, bool> m_visitedFxs; 30 QMap<TFx *, int> m_zeraryFxColumnSize; 31 QList<TXshColumnP> m_columns; 32 bool m_connected; 33 34 public: 35 FxsData(); 36 37 FxsData *clone() const override; 38 39 //! Set the FxsData. FxsData<-QList<TFxP> 40 void setFxs(const QList<TFxP> &selectedFxs, const QList<Link> &selectedLinks, 41 const QList<int> &columnIndexes, TXsheet *xsh); 42 43 //! Get the FxsData. FxsData->QList<TFxP> 44 void getFxs(QList<TFxP> &selectedFxs, QMap<TFx *, int> &zeraryFxColumnSize, 45 QList<TXshColumnP> &columns) const; 46 47 //! Return true if copied fxs makes a connected graph. isConnected()48 bool isConnected() const { return m_connected; } 49 50 private: 51 void checkConnectivity(); 52 void visitFx(TFx *fx); 53 bool areLinked(TFx *outFx, TFx *inFx); 54 }; 55 56 #endif // FXDATA_H 57