diff --git a/Source/Core/Core/HW/CPU.cpp b/Source/Core/Core/HW/CPU.cpp index 487a33c6ff..70f973628b 100644 --- a/Source/Core/Core/HW/CPU.cpp +++ b/Source/Core/Core/HW/CPU.cpp @@ -10,6 +10,7 @@ #include "AudioCommon/AudioCommon.h" #include "Common/CommonTypes.h" #include "Common/Event.h" +#include "Common/Thread.h" #include "Common/Timer.h" #include "Core/CPUThreadConfigCallback.h" #include "Core/Config/MainSettings.h" @@ -69,6 +70,8 @@ void CPUManager::ExecutePendingJobs(std::unique_lock& state_lock) void CPUManager::StartTimePlayedTimer() { + Common::SetCurrentThreadName("Play Time Tracker"); + // Steady clock for greater accuracy of timing std::chrono::steady_clock timer; auto prev_time = timer.now(); diff --git a/Source/Core/DolphinQt/Config/CheatCodeEditor.cpp b/Source/Core/DolphinQt/Config/CheatCodeEditor.cpp index b8a62c36b6..4643e7a3f1 100644 --- a/Source/Core/DolphinQt/Config/CheatCodeEditor.cpp +++ b/Source/Core/DolphinQt/Config/CheatCodeEditor.cpp @@ -3,6 +3,8 @@ #include "DolphinQt/Config/CheatCodeEditor.h" +#include + #include #include #include @@ -251,12 +253,26 @@ bool CheatCodeEditor::AcceptGecko() return false; } - m_gecko_code->name = name.toStdString(); - m_gecko_code->creator = m_creator_edit->text().toStdString(); + m_gecko_code->name = name.trimmed().toStdString(); + m_gecko_code->creator = m_creator_edit->text().trimmed().toStdString(); m_gecko_code->codes = std::move(entries); m_gecko_code->notes = SplitString(m_notes_edit->toPlainText().toStdString(), '\n'); m_gecko_code->user_defined = true; + { + // The creator name is not expected to be present in the cheat code name. It will be extracted + // and moved into its dedicated "creator" field. + std::smatch matches; + if (std::regex_match(m_gecko_code->name, matches, std::regex{R"(^(.*)\[(.*)\]$)"})) + { + m_gecko_code->name = StripWhitespace(matches[1].str()); + if (m_gecko_code->creator.empty()) + { + m_gecko_code->creator = StripWhitespace(matches[2].str()); + } + } + } + return true; }