From c1ab89cf2c21b14445c6e30843e3940b4a485ad1 Mon Sep 17 00:00:00 2001 From: Filippo Tarpini Date: Sun, 17 Jan 2021 20:47:49 +0200 Subject: [PATCH] Qt: Fix stock input profiles being deletable Also avoid files without a name before the extension (name: ".ini") from being added to the list because then they wouldn't be saveable and it would appear with an empty name anyway. --- .../DolphinQt/Config/Mapping/MappingWindow.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp b/Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp index c079bd6b59..ea8811895d 100644 --- a/Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp +++ b/Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp @@ -16,6 +16,7 @@ #include "Core/Core.h" +#include "Common/CommonPaths.h" #include "Common/FileSearch.h" #include "Common/FileUtil.h" #include "Common/IniFile.h" @@ -195,7 +196,9 @@ void MappingWindow::UpdateProfileButtonState() if (m_profiles_combo->findText(m_profiles_combo->currentText()) != -1) { const QString profile_path = m_profiles_combo->currentData().toString(); - builtin = profile_path.startsWith(QString::fromStdString(File::GetSysDirectory())); + std::string sys_dir = File::GetSysDirectory(); + sys_dir = ReplaceAll(sys_dir, "\\", DIR_SEP); + builtin = profile_path.startsWith(QString::fromStdString(sys_dir)); } m_profiles_save->setEnabled(!builtin); @@ -459,7 +462,8 @@ void MappingWindow::PopulateProfileSelection() { std::string basename; SplitPath(filename, nullptr, &basename, nullptr); - m_profiles_combo->addItem(QString::fromStdString(basename), QString::fromStdString(filename)); + if (!basename.empty()) // Ignore files with an empty name to avoid multiple problems + m_profiles_combo->addItem(QString::fromStdString(basename), QString::fromStdString(filename)); } m_profiles_combo->insertSeparator(m_profiles_combo->count()); @@ -470,9 +474,12 @@ void MappingWindow::PopulateProfileSelection() { std::string basename; SplitPath(filename, nullptr, &basename, nullptr); - // i18n: "Stock" refers to input profiles included with Dolphin - m_profiles_combo->addItem(tr("%1 (Stock)").arg(QString::fromStdString(basename)), - QString::fromStdString(filename)); + if (!basename.empty()) + { + // i18n: "Stock" refers to input profiles included with Dolphin + m_profiles_combo->addItem(tr("%1 (Stock)").arg(QString::fromStdString(basename)), + QString::fromStdString(filename)); + } } m_profiles_combo->setCurrentIndex(-1);