mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-21 07:57:22 -06:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user