fix new level undo

This commit is contained in:
shun-iwasawa 2021-02-19 11:54:33 +09:00 committed by manongjohn
parent 00280c1da5
commit 3ce5e26b2d

View file

@ -525,23 +525,6 @@ bool LevelCreatePopup::apply() {
} }
} }
TXshLevel *level =
scene->createNewLevel(lType, levelName, TDimension(), 0, fp);
TXshSimpleLevel *sl = dynamic_cast<TXshSimpleLevel *>(level);
assert(sl);
// sl->setPath(fp, true);
if (lType == TZP_XSHLEVEL || lType == OVL_XSHLEVEL) {
sl->getProperties()->setDpiPolicy(LevelProperties::DP_ImageDpi);
sl->getProperties()->setDpi(dpi);
sl->getProperties()->setImageDpi(TPointD(dpi, dpi));
sl->getProperties()->setImageRes(TDimension(xres, yres));
}
if (lType == TZP_XSHLEVEL || lType == PLI_XSHLEVEL) {
TPalette *defaultPalette =
TApp::instance()->getPaletteController()->getDefaultPalette(lType);
if (defaultPalette) sl->setPalette(defaultPalette->clone());
}
/*-- これからLevelを配置しようとしているセルが空いているかどうかのチェック /*-- これからLevelを配置しようとしているセルが空いているかどうかのチェック
* --*/ * --*/
bool areColumnsShifted = false; bool areColumnsShifted = false;
@ -574,6 +557,23 @@ bool LevelCreatePopup::apply() {
new CreateLevelUndo(row, col, numFrames, step, areColumnsShifted); new CreateLevelUndo(row, col, numFrames, step, areColumnsShifted);
TUndoManager::manager()->add(undo); TUndoManager::manager()->add(undo);
TXshLevel *level =
scene->createNewLevel(lType, levelName, TDimension(), 0, fp);
TXshSimpleLevel *sl = dynamic_cast<TXshSimpleLevel *>(level);
assert(sl);
// sl->setPath(fp, true);
if (lType == TZP_XSHLEVEL || lType == OVL_XSHLEVEL) {
sl->getProperties()->setDpiPolicy(LevelProperties::DP_ImageDpi);
sl->getProperties()->setDpi(dpi);
sl->getProperties()->setImageDpi(TPointD(dpi, dpi));
sl->getProperties()->setImageRes(TDimension(xres, yres));
}
if (lType == TZP_XSHLEVEL || lType == PLI_XSHLEVEL) {
TPalette *defaultPalette =
TApp::instance()->getPaletteController()->getDefaultPalette(lType);
if (defaultPalette) sl->setPalette(defaultPalette->clone());
}
for (i = from; i <= to; i += inc) { for (i = from; i <= to; i += inc) {
TFrameId fid(i); TFrameId fid(i);
TXshCell cell(sl, fid); TXshCell cell(sl, fid);