From 8b06ffc4e33e82b07c13f846300da694af015068 Mon Sep 17 00:00:00 2001 From: Keisuke Ogaki Date: May 24 2016 06:11:55 +0000 Subject: :lipstick: force encoding in SJIS for psd layer name --- diff --git a/toonz/sources/image/psd/tiio_psd.cpp b/toonz/sources/image/psd/tiio_psd.cpp index 1e48db3..6d00c14 100644 --- a/toonz/sources/image/psd/tiio_psd.cpp +++ b/toonz/sources/image/psd/tiio_psd.cpp @@ -1,9 +1,9 @@ - - #include "tiio_psd.h" #include "trasterimage.h" #include "timageinfo.h" +#include + // forward declaration //class TImageReaderLayerPsd; @@ -39,8 +39,9 @@ TLevelReaderPsd::TLevelReaderPsd(const TFilePath &path) #ifdef REF_LAYER_BY_NAME if (layerStr != "frames") { + QTextCodec* layerNameCodec = QTextCodec::codecForName( "SJIS" ); TPSDParser psdparser(m_path); - m_layerId = psdparser.getLevelIdByName(layerStr.toStdString()); + m_layerId = psdparser.getLevelIdByName(layerNameCodec->fromUnicode(layerStr).toStdString()); } else m_layerId = layerStr.toInt(); #else diff --git a/toonz/sources/toonzlib/txshsimplelevel.cpp b/toonz/sources/toonzlib/txshsimplelevel.cpp index ef5bdda..548d442 100644 --- a/toonz/sources/toonzlib/txshsimplelevel.cpp +++ b/toonz/sources/toonzlib/txshsimplelevel.cpp @@ -1,5 +1,3 @@ - - #include "toonz/txshsimplelevel.h" #include "imagebuilders.h" @@ -40,6 +38,7 @@ #include #include #include +#include #include "../common/psdlib/psd.h" @@ -1100,14 +1099,14 @@ TFilePath getLevelPathAndSetNameWithPsdLevelName(TXshSimpleLevel *xshLevel) if (list.size() >= 2 && list.at(1) != "frames") { bool hasLayerId; int layid = list.at(1).toInt(&hasLayerId); + QTextCodec* layerNameCodec = QTextCodec::codecForName( "SJIS" ); if (hasLayerId) { // An explicit photoshop layer id must be converted to the associated level name TPSDParser psdparser(xshLevel->getScene()->decodeFilePath(retfp)); std::string levelName = psdparser.getLevelNameWithCounter(layid); // o_o what about UNICODE names?? - list[1] = QString::fromStdString(levelName); - + list[1] = layerNameCodec->toUnicode(levelName.c_str()); std::wstring wLevelName = list.join("#").toStdWString(); retfp = retfp.withName(wLevelName);