Update new Zerary columns to use Implicit Holds
This commit is contained in:
parent
09c244429d
commit
755955236b
3 changed files with 31 additions and 9 deletions
|
@ -11,6 +11,7 @@
|
|||
#include "toonz/tcolumnfx.h"
|
||||
#include "toonz/fxdag.h"
|
||||
#include "toonz/txshlevelcolumn.h"
|
||||
#include "toonz/preferences.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
@ -194,7 +195,12 @@ void TCellData::cloneZeraryFx(int index, std::vector<TXshCell> &cells) const {
|
|||
newFxLevel->setColumn(newFxColumn);
|
||||
// replace the zerary fx cells by the new fx
|
||||
int r;
|
||||
for (r = firstNotEmptyIndex; r < (index + 1) * m_rowCount; r++)
|
||||
cells[r] = TXshCell(newFxLevel, m_cells[r].getFrameId());
|
||||
for (r = firstNotEmptyIndex; r < (index + 1) * m_rowCount; r++) {
|
||||
if (Preferences::instance()->isImplicitHoldEnabled() &&
|
||||
m_cells[r].getFrameId().isEmptyFrame())
|
||||
cells[r] = TXshCell(0, m_cells[r].getFrameId());
|
||||
else
|
||||
cells[r] = TXshCell(newFxLevel, m_cells[r].getFrameId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "toonz/tfxhandle.h"
|
||||
#include "toonz/tcolumnhandle.h"
|
||||
#include "toonz/tscenehandle.h"
|
||||
#include "toonz/preferences.h"
|
||||
#include "historytypes.h"
|
||||
|
||||
// TnzBase includes
|
||||
|
@ -309,7 +310,9 @@ TXshZeraryFxColumn *FxCommandUndo::createZeraryFxColumn(TXsheet *xsh, TFx *zfx,
|
|||
int frameCount = xsh->getScene()->getFrameCount() - row;
|
||||
|
||||
TXshZeraryFxColumn *column =
|
||||
new TXshZeraryFxColumn(frameCount > 0 ? frameCount : 100);
|
||||
new TXshZeraryFxColumn(Preferences::instance()->isImplicitHoldEnabled()
|
||||
? 1
|
||||
: (frameCount > 0 ? frameCount : 100));
|
||||
column->getZeraryColumnFx()->setZeraryFx(zfx);
|
||||
column->insertEmptyCells(0, row);
|
||||
|
||||
|
@ -2541,7 +2544,9 @@ void UndoPasteFxs::initialize(const std::map<TFx *, int> &zeraryFxColumnSize,
|
|||
// column with
|
||||
// the specified column size
|
||||
std::map<TFx *, int>::const_iterator it = zeraryFxColumnSize.find(fx);
|
||||
int rows = (it == zeraryFxColumnSize.end()) ? 100 : it->second;
|
||||
int rows = Preferences::instance()->isImplicitHoldEnabled()
|
||||
? 1
|
||||
: ((it == zeraryFxColumnSize.end()) ? 100 : it->second);
|
||||
|
||||
TXshZeraryFxColumn *column = new TXshZeraryFxColumn(rows);
|
||||
TZeraryColumnFx *zcfx = column->getZeraryColumnFx();
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "toonz/txsheet.h"
|
||||
#include "toonz/fxdag.h"
|
||||
#include "toonz/txshzeraryfxlevel.h"
|
||||
#include "toonz/preferences.h"
|
||||
|
||||
#include "tstream.h"
|
||||
|
||||
|
@ -21,6 +22,7 @@ TXshZeraryFxColumn::TXshZeraryFxColumn(int frameCount)
|
|||
m_zeraryColumnFx->setColumn(this);
|
||||
m_zeraryFxLevel->addRef();
|
||||
m_zeraryFxLevel->setColumn(this);
|
||||
if (frameCount <= 0) return;
|
||||
for (int i = 0; i < frameCount; i++)
|
||||
setCell(i, TXshCell(m_zeraryFxLevel, TFrameId(1)));
|
||||
}
|
||||
|
@ -37,8 +39,13 @@ TXshZeraryFxColumn::TXshZeraryFxColumn(const TXshZeraryFxColumn &src)
|
|||
m_zeraryFxLevel->setColumn(this);
|
||||
m_first = src.m_first;
|
||||
int i;
|
||||
for (i = 0; i < (int)src.m_cells.size(); i++)
|
||||
m_cells.push_back(TXshCell(m_zeraryFxLevel, src.m_cells[i].getFrameId()));
|
||||
for (i = 0; i < (int)src.m_cells.size(); i++) {
|
||||
if (Preferences::instance()->isImplicitHoldEnabled() &&
|
||||
src.m_cells[i].getFrameId().isEmptyFrame())
|
||||
m_cells.push_back(TXshCell(0, src.m_cells[i].getFrameId()));
|
||||
else
|
||||
m_cells.push_back(TXshCell(m_zeraryFxLevel, src.m_cells[i].getFrameId()));
|
||||
}
|
||||
assert((int)src.m_cells.size() == (int)m_cells.size());
|
||||
TFx *fx = src.getZeraryColumnFx()->getZeraryFx();
|
||||
if (fx) {
|
||||
|
@ -104,9 +111,13 @@ bool TXshZeraryFxColumn::setCells(int row, int rowCount,
|
|||
bool isEmptyColumn = isEmpty() && getZeraryColumnFx()->getZeraryFx() == 0;
|
||||
int i;
|
||||
for (i = 0; i < rowCount; i++) {
|
||||
if (isEmptyColumn)
|
||||
newCells.push_back(TXshCell(m_zeraryFxLevel, cells[i].getFrameId()));
|
||||
else
|
||||
if (isEmptyColumn) {
|
||||
if (Preferences::instance()->isImplicitHoldEnabled() &&
|
||||
cells[i].getFrameId().isEmptyFrame())
|
||||
newCells.push_back(TXshCell(0, cells[i].getFrameId()));
|
||||
else
|
||||
newCells.push_back(TXshCell(m_zeraryFxLevel, cells[i].getFrameId()));
|
||||
} else
|
||||
newCells.push_back(cells[i]);
|
||||
}
|
||||
// Sto settando delle celle in una colonna nuova, devo settare anche
|
||||
|
|
Loading…
Reference in a new issue