Qt: Don't display two popup messages on card open failure

This commit is contained in:
Stenzek
2025-11-15 17:33:26 +10:00
parent c025da4e5c
commit c5f60c13b3

View File

@@ -3179,17 +3179,27 @@ void MainWindow::onCheckForUpdatesActionTriggered()
void MainWindow::openMemoryCardEditor(const QString& card_a_path, const QString& card_b_path)
{
bool any_cards_exist = false;
for (const QString& card_path : {card_a_path, card_b_path})
{
if (!card_path.isEmpty() && !QFile::exists(card_path))
if (!card_path.isEmpty())
{
if (QtUtils::MessageBoxQuestion(
this, tr("Memory Card Not Found"),
tr("Memory card '%1' does not exist. Do you want to create an empty memory card?").arg(card_path),
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
if (QFile::exists(card_path))
{
any_cards_exist = true;
}
else if (QtUtils::MessageBoxQuestion(
this, tr("Memory Card Not Found"),
tr("Memory card '%1' does not exist. Do you want to create an empty memory card?").arg(card_path),
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
{
Error error;
if (!MemoryCardEditorWindow::createMemoryCard(card_path, &error))
if (MemoryCardEditorWindow::createMemoryCard(card_path, &error))
{
any_cards_exist = true;
}
else
{
QtUtils::MessageBoxCritical(this, tr("Memory Card Not Found"),
tr("Failed to create memory card '%1': %2")
@@ -3200,6 +3210,10 @@ void MainWindow::openMemoryCardEditor(const QString& card_a_path, const QString&
}
}
// don't open the editor if no cards exist and we requested one
if (!any_cards_exist && (!card_a_path.isEmpty() || !card_b_path.isEmpty()))
return;
if (!m_memory_card_editor_window)
m_memory_card_editor_window = new MemoryCardEditorWindow();