From c3772bfd4c52c453179b7e121900c06f72ed36a2 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 14 Mar 2016 12:10:13 +0100 Subject: [PATCH] ProxyAction: Break endless loop Updating the ProxyAction first disconnects from the action and then connects again. Looks like reconnecting while being in QMetaObject::activate can lead to never ending handling of the activation, so use a QueuedConnection instead. Change-Id: Ia06f926413fd4492d847dfea4461f2ccfdd37ffc Reviewed-by: Eike Ziller --- src/libs/utils/proxyaction.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/proxyaction.cpp b/src/libs/utils/proxyaction.cpp index 7ccc5dcc967..ecb853751c0 100644 --- a/src/libs/utils/proxyaction.cpp +++ b/src/libs/utils/proxyaction.cpp @@ -72,7 +72,8 @@ void ProxyAction::disconnectAction() void ProxyAction::connectAction() { if (m_action) { - connect(m_action.data(), &QAction::changed, this, &ProxyAction::actionChanged); + connect(m_action.data(), &QAction::changed, this, &ProxyAction::actionChanged, + Qt::QueuedConnection); connect(this, &QAction::triggered, m_action.data(), &QAction::triggered); connect(this, &ProxyAction::toggled, m_action.data(), &QAction::setChecked); }