Browse Source

[qt] clarify orphaned profiles by showing GOOD uuids (#2850)

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>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2850
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
pull/2855/head
crueter 2 months ago
parent
commit
903faacaab
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 9
      src/core/hle/service/acc/profile_manager.cpp
  2. 1
      src/core/hle/service/acc/profile_manager.h
  3. 15
      src/qt_common/util/content.cpp

9
src/core/hle/service/acc/profile_manager.cpp

@ -488,7 +488,7 @@ void ProfileManager::ResetUserSaveFile()
ParseUserSaveFile(); ParseUserSaveFile();
} }
std::vector<std::string> ProfileManager::FindOrphanedProfiles()
std::vector<std::string> ProfileManager::FindGoodProfiles()
{ {
std::vector<std::string> good_uuids; std::vector<std::string> good_uuids;
@ -512,6 +512,13 @@ std::vector<std::string> ProfileManager::FindOrphanedProfiles()
// used for acnh, etc // used for acnh, etc
good_uuids.emplace_back("00000000000000000000000000000000"); 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 // TODO: fetch save_id programmatically
const auto path = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir) const auto path = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir)
/ "user/save/0000000000000000"; / "user/save/0000000000000000";

1
src/core/hle/service/acc/profile_manager.h

@ -105,6 +105,7 @@ public:
void ResetUserSaveFile(); void ResetUserSaveFile();
std::vector<std::string> FindGoodProfiles();
std::vector<std::string> FindOrphanedProfiles(); std::vector<std::string> FindOrphanedProfiles();
private: private:

15
src/qt_common/util/content.cpp

@ -330,6 +330,7 @@ void FixProfiles()
// TODO: better solution // TODO: better solution
system->GetProfileManager().ResetUserSaveFile(); system->GetProfileManager().ResetUserSaveFile();
std::vector<std::string> orphaned = system->GetProfileManager().FindOrphanedProfiles(); std::vector<std::string> orphaned = system->GetProfileManager().FindOrphanedProfiles();
std::vector<std::string> good = system->GetProfileManager().FindGoodProfiles();
// no orphaned dirs--all good :) // no orphaned dirs--all good :)
if (orphaned.empty()) if (orphaned.empty())
@ -346,15 +347,27 @@ void FixProfiles()
qorphaned = qorphaned % QStringLiteral("\n") % QString::fromStdString(s); 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( QtCommon::Frontend::Critical(
tr("Orphaned Profiles Detected!"), tr("Orphaned Profiles Detected!"),
tr("UNEXPECTED BAD THINGS MAY HAPPEN IF YOU DON'T READ THIS!\n" 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" "Eden has detected the following save directories with no attached profile:\n"
"%1\n\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" "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, " "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.") "delete all orphaned profiles, and move your copied contents to the good profile.")
.arg(qorphaned));
.arg(qorphaned, qgood));
QtCommon::Game::OpenSaveFolder(); QtCommon::Game::OpenSaveFolder();
} }

Loading…
Cancel
Save