set premultiply and added level name type
This commit is contained in:
parent
9a3beb198e
commit
a4bcc91cc3
4 changed files with 41 additions and 6 deletions
|
@ -1242,10 +1242,11 @@ bool IoCmd::saveSceneIfNeeded(QString msg) {
|
|||
|
||||
//--- If both the level and scene is clean, then open the quit confirmation
|
||||
// dialog
|
||||
//if (!isLevelOrSceneIsDirty && msg == "Quit") {
|
||||
// if (!isLevelOrSceneIsDirty && msg == "Quit") {
|
||||
// QString question("Are you sure ?");
|
||||
// int ret =
|
||||
// DVGui::MsgBox(question, QObject::tr("OK"), QObject::tr("Cancel"), 0);
|
||||
// DVGui::MsgBox(question, QObject::tr("OK"), QObject::tr("Cancel"),
|
||||
// 0);
|
||||
// if (ret == 0 || ret == 2) {
|
||||
// // cancel (or closed message box window)
|
||||
// return false;
|
||||
|
@ -2122,6 +2123,7 @@ static int loadPSDResource(IoCmd::LoadResourceArguments &args,
|
|||
} else {
|
||||
TFilePath psdpath = popup->getPsdPath(i);
|
||||
TXshLevel *xl = 0;
|
||||
|
||||
try {
|
||||
xl = ::loadResource(scene, psdpath, args.castFolder, row0, col0, row1,
|
||||
col1, !popup->subxsheet());
|
||||
|
@ -2129,6 +2131,9 @@ static int loadPSDResource(IoCmd::LoadResourceArguments &args,
|
|||
error(QString::fromStdWString(e.getMessage()));
|
||||
}
|
||||
if (xl) {
|
||||
if (xl->getSimpleLevel()) // just in case
|
||||
xl->getSimpleLevel()->getProperties()->setDoPremultiply(true);
|
||||
|
||||
// lo importo nell'xsheet
|
||||
if (popup->subxsheet() && childXsh) {
|
||||
childXsh->exposeLevel(0, subCol0, xl);
|
||||
|
|
|
@ -169,9 +169,19 @@ PsdSettingsPopup::PsdSettingsPopup()
|
|||
m_createSubXSheet->setMaximumHeight(WidgetHeight);
|
||||
m_createSubXSheet->setEnabled(false);
|
||||
|
||||
m_levelNameType = new QComboBox();
|
||||
QStringList types;
|
||||
types << tr("FileName#LayerName") << tr("LayerName");
|
||||
m_levelNameType->addItems(types);
|
||||
m_levelNameType->setFixedHeight(WidgetHeight);
|
||||
m_levelNameType->setEnabled(false);
|
||||
|
||||
QLabel *modeLbl = new QLabel(tr("Load As:"));
|
||||
modeLbl->setObjectName("TitleTxtLabel");
|
||||
|
||||
QLabel *levelNameLbl = new QLabel(tr("Level Name:"));
|
||||
levelNameLbl->setObjectName("TitleTxtLabel");
|
||||
|
||||
QGridLayout *gridMode = new QGridLayout();
|
||||
gridMode->setColumnMinimumWidth(0, 65);
|
||||
gridMode->setMargin(0);
|
||||
|
@ -179,6 +189,8 @@ PsdSettingsPopup::PsdSettingsPopup()
|
|||
gridMode->addWidget(m_loadMode, 0, 1, Qt::AlignLeft);
|
||||
gridMode->addWidget(m_modeDescription, 1, 1, Qt::AlignLeft);
|
||||
gridMode->addWidget(m_createSubXSheet, 2, 1, Qt::AlignLeft);
|
||||
gridMode->addWidget(levelNameLbl, 3, 0, Qt::AlignRight);
|
||||
gridMode->addWidget(m_levelNameType, 3, 1, Qt::AlignLeft);
|
||||
QHBoxLayout *modeLayout = new QHBoxLayout;
|
||||
modeLayout->addLayout(gridMode);
|
||||
modeLayout->addStretch();
|
||||
|
@ -247,11 +259,16 @@ bool PsdSettingsPopup::subxsheet() {
|
|||
return (m_createSubXSheet->isEnabled() && m_createSubXSheet->isChecked());
|
||||
}
|
||||
|
||||
int PsdSettingsPopup::levelNameType() {
|
||||
return m_levelNameType->currentIndex();
|
||||
}
|
||||
|
||||
void PsdSettingsPopup::onModeChanged(const QString &mode) {
|
||||
if (mode == "Single Image") {
|
||||
m_mode = FLAT;
|
||||
m_modeDescription->setText(modesDescription[0]);
|
||||
m_createSubXSheet->setEnabled(false);
|
||||
m_levelNameType->setEnabled(false);
|
||||
QList<QAbstractButton *> buttons = m_psdFolderOptions->buttons();
|
||||
while (!buttons.isEmpty()) {
|
||||
QAbstractButton *btn = buttons.takeFirst();
|
||||
|
@ -261,6 +278,7 @@ void PsdSettingsPopup::onModeChanged(const QString &mode) {
|
|||
m_mode = FRAMES;
|
||||
m_modeDescription->setText(modesDescription[1]);
|
||||
m_createSubXSheet->setEnabled(false);
|
||||
m_levelNameType->setEnabled(false);
|
||||
QList<QAbstractButton *> buttons = m_psdFolderOptions->buttons();
|
||||
while (!buttons.isEmpty()) {
|
||||
QAbstractButton *btn = buttons.takeFirst();
|
||||
|
@ -274,6 +292,7 @@ void PsdSettingsPopup::onModeChanged(const QString &mode) {
|
|||
m_mode = COLUMNS;
|
||||
m_modeDescription->setText(modesDescription[2]);
|
||||
m_createSubXSheet->setEnabled(true);
|
||||
m_levelNameType->setEnabled(true);
|
||||
QList<QAbstractButton *> buttons = m_psdFolderOptions->buttons();
|
||||
while (!buttons.isEmpty()) {
|
||||
QAbstractButton *btn = buttons.takeFirst();
|
||||
|
@ -342,7 +361,10 @@ void PsdSettingsPopup::doPsdParser() {
|
|||
int layerId = m_psdparser->getLevelId(i);
|
||||
std::string name = m_path.getName();
|
||||
if (layerId > 0 && m_mode != FRAMES) {
|
||||
if (m_levelNameType->currentIndex() == 0) // FileName#LevelName
|
||||
name += "#" + std::to_string(layerId);
|
||||
else // LevelName
|
||||
name += "##" + std::to_string(layerId);
|
||||
}
|
||||
if (mode != "") name += mode;
|
||||
name += m_path.getDottedType();
|
||||
|
|
|
@ -44,7 +44,7 @@ class PsdSettingsPopup final : public DVGui::Dialog {
|
|||
Mode m_mode;
|
||||
QPushButton *m_okBtn;
|
||||
QPushButton *m_cancelBtn;
|
||||
QComboBox *m_loadMode;
|
||||
QComboBox *m_loadMode, *m_levelNameType;
|
||||
DVGui::CheckBox *m_createSubXSheet;
|
||||
QButtonGroup *m_psdFolderOptions;
|
||||
|
||||
|
@ -70,6 +70,7 @@ public:
|
|||
bool isFolder(int levelIndex);
|
||||
bool isSubFolder(int levelIndex, int frameIndex);
|
||||
bool subxsheet();
|
||||
int levelNameType();
|
||||
|
||||
int getFolderOption();
|
||||
int getSubfolderLevelIndex(int psdLevelIndex, int frameIndex);
|
||||
|
|
|
@ -1018,7 +1018,12 @@ static TFilePath getLevelPathAndSetNameWithPsdLevelName(
|
|||
TFilePath retfp = xshLevel->getPath();
|
||||
|
||||
QString name = QString::fromStdWString(retfp.getWideName());
|
||||
QStringList list = name.split("#");
|
||||
bool removeFileName = name.contains("##");
|
||||
if (removeFileName) {
|
||||
retfp = TFilePath(
|
||||
QString::fromStdWString(retfp.getWideString()).replace("##", "#"));
|
||||
}
|
||||
QStringList list = name.split("#", QString::SkipEmptyParts);
|
||||
|
||||
if (list.size() >= 2 && list.at(1) != "frames") {
|
||||
bool hasLayerId;
|
||||
|
@ -1037,6 +1042,8 @@ static TFilePath getLevelPathAndSetNameWithPsdLevelName(
|
|||
std::wstring wLevelName = list.join("#").toStdWString();
|
||||
retfp = retfp.withName(wLevelName);
|
||||
|
||||
if (removeFileName) wLevelName = list[1].toStdWString();
|
||||
|
||||
TLevelSet *levelSet = xshLevel->getScene()->getLevelSet();
|
||||
if (levelSet &&
|
||||
levelSet->hasLevel(
|
||||
|
|
Loading…
Reference in a new issue