Skip to content

Commit

Permalink
fixup export as pc if unknown
Browse files Browse the repository at this point in the history
  • Loading branch information
sithlord48 committed Jul 31, 2022
1 parent 8e8a541 commit 06876fa
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 48 deletions.
8 changes: 5 additions & 3 deletions src/blackchocobo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ BlackChocobo::BlackChocobo(QWidget *parent)
init_connections();
actionNewGame_triggered();
partyTab->pressCharacterButton(FF7Char::Cloud);
ff7->setFormat(FF7SaveInfo::FORMAT::UNKNOWN);
ff7->setFileModified(false, 0);
}

Expand Down Expand Up @@ -972,10 +973,11 @@ bool BlackChocobo::actionSaveFileAs_triggered()
typeMap[FF7SaveInfo::instance()->typeFilter(FF7SaveInfo::FORMAT::PS3)] = FF7SaveInfo::FORMAT::PS3;
typeMap[FF7SaveInfo::instance()->typeFilter(FF7SaveInfo::FORMAT::PGE)] = FF7SaveInfo::FORMAT::PGE;
typeMap[FF7SaveInfo::instance()->typeFilter(FF7SaveInfo::FORMAT::PDA)] = FF7SaveInfo::FORMAT::PDA;
QString selectedType = typeMap.key(ff7->format(), QString());
const QStringList typeKeys = typeMap.keys();

QString selectedType = ff7->format() == FF7SaveInfo::FORMAT::UNKNOWN ? FF7SaveInfo::instance()->typeFilter(FF7SaveInfo::FORMAT::PC) : typeMap.key(ff7->format(), QString());
QString selectedFile = ff7->format() == FF7SaveInfo::FORMAT::UNKNOWN ? QStringLiteral("save00.ff7") : QFile(ff7->fileName()).fileName();
QString path;

if (ff7->format() == FF7SaveInfo::FORMAT::PC)
path = BCSettings::value(SETTINGS::PCSAVEPATH).toString();
else if ((ff7->format() == FF7SaveInfo::FORMAT::VMC)
Expand All @@ -989,7 +991,7 @@ bool BlackChocobo::actionSaveFileAs_triggered()
path,
typeKeys.join(QStringLiteral(";;")),
&selectedType,
QFile(ff7->fileName()).fileName());
selectedFile);

if (fileName.isEmpty())
return false;
Expand Down
84 changes: 39 additions & 45 deletions src/dialogs/bcdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,56 +93,50 @@ QString BCDialog::getSaveFileName(QWidget *parent, const QString &region, const
dialog->setFileMode(QFileDialog::AnyFile);
dialog->setAcceptMode(QFileDialog::AcceptSave);

if(initSelection.isEmpty()) {
dialog->setNameFilter(FF7SaveInfo::typeFilter(FF7SaveInfo::FORMAT::PC));
dialog->setDefaultSuffix(QStringLiteral(".ff7"));
dialog->selectFile(QStringLiteral("save00.%1").arg(dialog->defaultSuffix()));
if(nameFilters.contains(QStringLiteral(".char"))) {
dialog->setDefaultSuffix(QStringLiteral(".char"));
} else {
QObject::connect(dialog, &QFileDialog::filterSelected, [dialog, region](const QString &filter) {
QString name;
if(filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PSX).join(" "))) {
dialog->setDefaultSuffix(QString());
name = region;
} else if(filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PGE).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".mcs"));
name = region;
} else if(filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PDA).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".mcb"));
name = region;
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PS3).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".PSV"));
name = region.mid(0, 12).append(QTextCodec::codecForName("Shift-JIS")->fromUnicode(region.mid(12)).toHex().toUpper());
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PC).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".ff7"));
name = QStringLiteral("save00");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::SWITCH).join(" "))) {
dialog->setDefaultSuffix(QString());
name = QStringLiteral("ff7slot00");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PSP).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".VMP"));
name = QStringLiteral("SCEVMC0");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::VMC).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".mcr"));
name = QStringLiteral("vmcCard");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::DEX).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".gme"));
name = QStringLiteral("dexCard");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::VGS).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".vgs"));
name = QStringLiteral("vgsCard");
}
name.append(QStringLiteral("%1").arg(dialog->defaultSuffix()));
dialog->selectFile(name);
});
}

if(!chosenType->isEmpty())
dialog->selectNameFilter(chosenType->mid(0));

if(nameFilters.contains(QStringLiteral(".char")))
dialog->setDefaultSuffix(QStringLiteral(".char"));

QObject::connect(dialog, &QFileDialog::filterSelected, [dialog, region](const QString &filter) {
QString name;
if(filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PSX).join(" "))) {
dialog->setDefaultSuffix(QString());
name = region;
} else if(filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PGE).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".mcs"));
name = region;
} else if(filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PDA).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".mcb"));
name = region;
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PS3).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".PSV"));
name = region.mid(0, 12).append(QTextCodec::codecForName("Shift-JIS")->fromUnicode(region.mid(12)).toHex().toUpper());
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PC).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".ff7"));
name = QStringLiteral("save00");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::SWITCH).join(" "))) {
dialog->setDefaultSuffix(QString());
name = QStringLiteral("ff7slot00");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::PSP).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".VMP"));
name = QStringLiteral("SCEVMC0");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::VMC).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".mcr"));
name = QStringLiteral("vmcCard");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::DEX).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".gme"));
name = QStringLiteral("dexCard");
} else if (filter.contains(FF7SaveInfo::instance()->typeExtension(FF7SaveInfo::FORMAT::VGS).join(" "))) {
dialog->setDefaultSuffix(QStringLiteral(".vgs"));
name = QStringLiteral("vgsCard");
}

name.append(QStringLiteral(".%1").arg(dialog->defaultSuffix()));
dialog->selectFile(name);
});

if(dialog->exec() == QFileDialog::Accepted) {
if (!nameFilters.contains(QStringLiteral(".char")) && chosenType)
chosenType->replace(chosenType->mid(0), dialog->selectedNameFilter());
Expand Down

0 comments on commit 06876fa

Please sign in to comment.