summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp')
-rw-r--r--Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp b/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp
index 84ba377337..44bc67e3f0 100644
--- a/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp
+++ b/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp
@@ -20,8 +20,14 @@
#include "InputCommon/ControllerInterface/ControllerInterface.h"
#include "InputCommon/ControllerInterface/Device.h"
+static QString EscapeAmpersand(QString&& string)
+{
+ return string.replace(QStringLiteral("&"), QStringLiteral("&&"));
+}
+
MappingButton::MappingButton(MappingWidget* widget, ControlReference* ref)
- : ElidedButton(QString::fromStdString(ref->expression)), m_parent(widget), m_reference(ref)
+ : ElidedButton(EscapeAmpersand(QString::fromStdString(ref->expression))), m_parent(widget),
+ m_reference(ref)
{
Connect();
}
@@ -73,7 +79,7 @@ void MappingButton::OnButtonPressed()
void MappingButton::OnButtonTimeout()
{
- setText(QString::fromStdString(m_reference->expression));
+ setText(EscapeAmpersand(QString::fromStdString(m_reference->expression)));
}
void MappingButton::Clear()
@@ -87,7 +93,7 @@ void MappingButton::Update()
{
const auto lock = ControllerEmu::EmulatedController::GetStateLock();
m_reference->UpdateReference(g_controller_interface, m_parent->GetParent()->GetDeviceQualifier());
- setText(QString::fromStdString(m_reference->expression));
+ setText(EscapeAmpersand(QString::fromStdString(m_reference->expression)));
m_parent->SaveSettings();
}