Browse Source
[qt] clarify orphaned profiles by showing GOOD uuids
Shows what profile UUIDs are actually good so the user knows which one
to copy their saves to.
Signed-off-by: crueter <crueter@eden-emu.dev>
pull/2850/head
crueter
4 months ago
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
3 changed files with
24 additions and
3 deletions
-
src/core/hle/service/acc/profile_manager.cpp
-
src/core/hle/service/acc/profile_manager.h
-
src/qt_common/util/content.cpp
|
|
|
@ -488,7 +488,7 @@ void ProfileManager::ResetUserSaveFile() |
|
|
|
ParseUserSaveFile(); |
|
|
|
} |
|
|
|
|
|
|
|
std::vector<std::string> ProfileManager::FindOrphanedProfiles() |
|
|
|
std::vector<std::string> ProfileManager::FindGoodProfiles() |
|
|
|
{ |
|
|
|
std::vector<std::string> good_uuids; |
|
|
|
|
|
|
|
@ -512,6 +512,13 @@ std::vector<std::string> ProfileManager::FindOrphanedProfiles() |
|
|
|
// used for acnh, etc
|
|
|
|
good_uuids.emplace_back("00000000000000000000000000000000"); |
|
|
|
|
|
|
|
return good_uuids; |
|
|
|
} |
|
|
|
|
|
|
|
std::vector<std::string> ProfileManager::FindOrphanedProfiles() |
|
|
|
{ |
|
|
|
std::vector<std::string> good_uuids = FindGoodProfiles(); |
|
|
|
|
|
|
|
// TODO: fetch save_id programmatically
|
|
|
|
const auto path = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir) |
|
|
|
/ "user/save/0000000000000000"; |
|
|
|
|
|
|
|
@ -105,6 +105,7 @@ public: |
|
|
|
|
|
|
|
void ResetUserSaveFile(); |
|
|
|
|
|
|
|
std::vector<std::string> FindGoodProfiles(); |
|
|
|
std::vector<std::string> FindOrphanedProfiles(); |
|
|
|
|
|
|
|
private: |
|
|
|
|
|
|
|
@ -330,6 +330,7 @@ void FixProfiles() |
|
|
|
// TODO: better solution
|
|
|
|
system->GetProfileManager().ResetUserSaveFile(); |
|
|
|
std::vector<std::string> orphaned = system->GetProfileManager().FindOrphanedProfiles(); |
|
|
|
std::vector<std::string> good = system->GetProfileManager().FindGoodProfiles(); |
|
|
|
|
|
|
|
// no orphaned dirs--all good :)
|
|
|
|
if (orphaned.empty()) |
|
|
|
@ -346,15 +347,27 @@ void FixProfiles() |
|
|
|
qorphaned = qorphaned % QStringLiteral("\n") % QString::fromStdString(s); |
|
|
|
} |
|
|
|
|
|
|
|
QString qgood; |
|
|
|
|
|
|
|
// max. of 8 good profiles is fair, I think
|
|
|
|
// 33 = 32 (UUID) + 1 (\n)
|
|
|
|
qgood.reserve(8 * 33); |
|
|
|
|
|
|
|
for (const std::string& s : good) { |
|
|
|
qgood = qgood % QStringLiteral("\n") % QString::fromStdString(s); |
|
|
|
} |
|
|
|
|
|
|
|
QtCommon::Frontend::Critical( |
|
|
|
tr("Orphaned Profiles Detected!"), |
|
|
|
tr("UNEXPECTED BAD THINGS MAY HAPPEN IF YOU DON'T READ THIS!\n" |
|
|
|
"Eden has detected the following save directories with no attached profile:\n" |
|
|
|
"%1\n\n" |
|
|
|
"The following profiles are valid:\n" |
|
|
|
"%2\n\n" |
|
|
|
"Click \"OK\" to open your save folder and fix up your profiles.\n" |
|
|
|
"Hint: copy the contents of the largest or last-modified folder elsewhere, " |
|
|
|
"delete all orphaned profiles, and move your copied contents to the good profile.") |
|
|
|
.arg(qorphaned)); |
|
|
|
.arg(qorphaned, qgood)); |
|
|
|
|
|
|
|
QtCommon::Game::OpenSaveFolder(); |
|
|
|
} |
|
|
|
|