Merge pull request #3120 from shun-iwasawa/g/fix_palette_loading_on_recleanup
Fix Palette Loading on Re-Cleanup
This commit is contained in:
commit
4d64c8158d
1 changed files with 28 additions and 27 deletions
|
@ -932,6 +932,33 @@ QString CleanupPopup::setupLevel() {
|
||||||
notLineProcessed = (sl->getType() != TZP_XSHLEVEL);
|
notLineProcessed = (sl->getType() != TZP_XSHLEVEL);
|
||||||
|
|
||||||
if (lineProcessing) {
|
if (lineProcessing) {
|
||||||
|
/*--- Keep original palette which will be reverted after cleanup ---*/
|
||||||
|
if (m_keepOriginalPalette) {
|
||||||
|
if ((sl->getType() == TZP_XSHLEVEL || sl->getType() == TZI_XSHLEVEL) &&
|
||||||
|
sl->getPalette() != NULL)
|
||||||
|
m_originalPalette = sl->getPalette()->clone();
|
||||||
|
else /*--- In case the level has been already cleanupped,
|
||||||
|
and is cleanupped again from raster level ---*/
|
||||||
|
{
|
||||||
|
/*--- Load and keep the palette from destination TLV ---*/
|
||||||
|
TFilePath targetPalettePath = outputPath.getParentDir() +
|
||||||
|
TFilePath(outputPath.getName() + ".tpl");
|
||||||
|
TFileStatus pfs(targetPalettePath);
|
||||||
|
if (pfs.doesExist() && pfs.isReadable()) {
|
||||||
|
TIStream is(targetPalettePath);
|
||||||
|
std::string tagName;
|
||||||
|
if (!is.matchTag(tagName) || tagName != "palette") {
|
||||||
|
DVGui::warning(QString(
|
||||||
|
"CleanupDefaultPalette file: This is not palette file"));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
m_originalPalette = new TPalette();
|
||||||
|
m_originalPalette->loadData(is);
|
||||||
|
} else
|
||||||
|
m_originalPalette = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (notLineProcessed) {
|
if (notLineProcessed) {
|
||||||
/*-- Type, Pathを切り替えてTLVにする --*/
|
/*-- Type, Pathを切り替えてTLVにする --*/
|
||||||
// The level type changes to TLV
|
// The level type changes to TLV
|
||||||
|
@ -968,32 +995,6 @@ QString CleanupPopup::setupLevel() {
|
||||||
TPaletteP palette =
|
TPaletteP palette =
|
||||||
TCleanupper::instance()->createToonzPaletteFromCleanupPalette();
|
TCleanupper::instance()->createToonzPaletteFromCleanupPalette();
|
||||||
|
|
||||||
/*--- Cleanup後にPaletteを元に戻すため、Paletteを保持しておく ---*/
|
|
||||||
if (m_keepOriginalPalette) {
|
|
||||||
if ((sl->getType() == TZP_XSHLEVEL || sl->getType() == TZI_XSHLEVEL) &&
|
|
||||||
sl->getPalette() != NULL)
|
|
||||||
m_originalPalette = sl->getPalette()->clone();
|
|
||||||
else /*--- 既にCleanup済みだが、再びTIFファイルからCleanupを行う場合 ---*/
|
|
||||||
{
|
|
||||||
/*--- Cleanup先のPaletteをロードして取っておく ---*/
|
|
||||||
TFilePath targetPalettePath = outputPath.getParentDir() +
|
|
||||||
TFilePath(outputPath.getName() + ".tpl");
|
|
||||||
TFileStatus pfs(targetPalettePath);
|
|
||||||
if (pfs.doesExist() && pfs.isReadable()) {
|
|
||||||
TIStream is(targetPalettePath);
|
|
||||||
std::string tagName;
|
|
||||||
if (!is.matchTag(tagName) || tagName != "palette") {
|
|
||||||
DVGui::warning(QString(
|
|
||||||
"CleanupDefaultPalette file: This is not palette file"));
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
m_originalPalette = new TPalette();
|
|
||||||
m_originalPalette->loadData(is);
|
|
||||||
} else
|
|
||||||
m_originalPalette = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sl->setPalette(palette.getPointer());
|
sl->setPalette(palette.getPointer());
|
||||||
|
|
||||||
/*--- カレントPaletteを切り替える ---*/
|
/*--- カレントPaletteを切り替える ---*/
|
||||||
|
@ -1569,7 +1570,7 @@ void CleanupPopup::onImgViewBoxToggled(bool on) {
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/*! Show the progress in the mainwindow's title bar
|
/*! Show the progress in the mainwindow's title bar
|
||||||
*/
|
*/
|
||||||
void CleanupPopup::updateTitleString() {
|
void CleanupPopup::updateTitleString() {
|
||||||
if (!TApp::instance()->getMainWindow()) return;
|
if (!TApp::instance()->getMainWindow()) return;
|
||||||
MainWindow *mainWin =
|
MainWindow *mainWin =
|
||||||
|
|
Loading…
Reference in a new issue