tahoma2d/toonz/sources/toonzqt/fxdata.h

57 lines
1.3 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#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 <QList>
#include <QPair>
using namespace TFxCommand;
//**********************************************************************
// FxsData declaration
//**********************************************************************
class FxsData final : public DvMimeData {
2016-06-15 18:43:10 +12:00
QList<TFxP> m_fxs;
QMap<TFx *, bool> m_visitedFxs;
QMap<TFx *, int> m_zeraryFxColumnSize;
QList<TXshColumnP> m_columns;
bool m_connected;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
FxsData();
2016-03-19 06:57:51 +13:00
2016-06-19 20:06:29 +12:00
FxsData *clone() const override;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
//! Set the FxsData. FxsData<-QList<TFxP>
void setFxs(const QList<TFxP> &selectedFxs, const QList<Link> &selectedLinks,
const QList<int> &columnIndexes, TXsheet *xsh);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
//! Get the FxsData. FxsData->QList<TFxP>
void getFxs(QList<TFxP> &selectedFxs, QMap<TFx *, int> &zeraryFxColumnSize,
QList<TXshColumnP> &columns) const;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
//! Return true if copied fxs makes a connected graph.
bool isConnected() const { return m_connected; }
2016-03-19 06:57:51 +13:00
private:
2016-06-15 18:43:10 +12:00
void checkConnectivity();
void visitFx(TFx *fx);
bool areLinked(TFx *outFx, TFx *inFx);
2016-03-19 06:57:51 +13:00
};
2016-06-15 18:43:10 +12:00
#endif // FXDATA_H