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