Don't close tags menu when toggling items (#15098)

The issue was resolved by using QAction::toggled signal instead of
QAction::triggered. In QT 5.15+ the latter signal causes a QMenu
to close, whereas the former does not. Closes #13492.
This commit is contained in:
tgregerson
2021-06-16 09:57:56 -05:00
committed by GitHub
parent 2bd2490539
commit e74ad86f14
5 changed files with 20 additions and 16 deletions

View File

@@ -38,7 +38,7 @@
TriStateWidget::TriStateWidget(const QString &text, QWidget *parent)
: QWidget {parent}
, m_closeOnTriggered {true}
, m_closeOnInteraction {true}
, m_checkState {Qt::Unchecked}
, m_text {text}
{
@@ -51,9 +51,9 @@ void TriStateWidget::setCheckState(const Qt::CheckState checkState)
m_checkState = checkState;
}
void TriStateWidget::setCloseOnTriggered(const bool enabled)
void TriStateWidget::setCloseOnInteraction(const bool enabled)
{
m_closeOnTriggered = enabled;
m_closeOnInteraction = enabled;
}
QSize TriStateWidget::minimumSizeHint() const
@@ -104,7 +104,7 @@ void TriStateWidget::mouseReleaseEvent(QMouseEvent *event)
{
toggleCheckState();
if (m_closeOnTriggered)
if (m_closeOnInteraction)
{
// parent `triggered` signal will be emitted
QWidget::mouseReleaseEvent(event);
@@ -112,7 +112,7 @@ void TriStateWidget::mouseReleaseEvent(QMouseEvent *event)
else
{
update();
// need to emit parent `triggered` signal manually
// need to emit `triggered` signal manually
emit triggered(m_checkState == Qt::Checked);
}
}
@@ -124,7 +124,7 @@ void TriStateWidget::keyPressEvent(QKeyEvent *event)
{
toggleCheckState();
if (!m_closeOnTriggered)
if (!m_closeOnInteraction)
{
update();
// need to emit parent `triggered` signal manually