Fix replace fx nodes (#2417)

This commit is contained in:
manongjohn 2018-12-26 20:49:03 -05:00 committed by shun-iwasawa
parent 55fa854812
commit ffd27d4dce

View file

@ -1152,7 +1152,13 @@ void ReplaceFxUndo::initialize() {
fx = zcfx->getZeraryFx();
}
if (has_fx_column(fx)) {
TZeraryColumnFx *zcrepfx = dynamic_cast<TZeraryColumnFx *>(repFx);
if (zcrepfx) repFx = zcrepfx->getZeraryFx();
bool fxHasCol = has_fx_column(fx);
bool repfxHasCol = has_fx_column(repFx);
if (fxHasCol && repfxHasCol) {
if (zcfx) {
// Build a column with the same source cells pattern
m_repColumn = new TXshZeraryFxColumn(*zcfx->getColumn());
@ -1170,6 +1176,10 @@ void ReplaceFxUndo::initialize() {
m_repColIdx = xsh->getFirstFreeColumnIndex();
m_repFx = static_cast<TZeraryColumnFx *>(m_repColumn->getFx());
}
} else if (!fxHasCol && repfxHasCol) {
m_repColumn = FxCommandUndo::createZeraryFxColumn(xsh, repFx);
m_repColIdx = xsh->getFirstFreeColumnIndex();
m_repFx = static_cast<TZeraryColumnFx *>(m_repColumn->getFx());
}
FxCommandUndo::cloneGroupStack(fx, m_repFx.getPointer());