Forráskód Böngészése

Merge branch 'ctkcheckablepushbutton-emit-toggled'

* ctkcheckablepushbutton-emit-toggled:
  ctkCheckablePushButton emits toggled signal when set uncheckable
Julien Finet 13 éve
szülő
commit
d76ebaac22
1 módosított fájl, 9 hozzáadás és 1 törlés
  1. 9 1
      Libs/Widgets/ctkCheckablePushButton.cpp

+ 9 - 1
Libs/Widgets/ctkCheckablePushButton.cpp

@@ -231,13 +231,21 @@ void ctkCheckablePushButton::setCheckState(Qt::CheckState checkState)
     return;
     return;
     }
     }
   d->CheckState = checkState;
   d->CheckState = checkState;
+  bool emitToggled = false;
   if (d->CheckBoxFlags & Qt::ItemIsEnabled)
   if (d->CheckBoxFlags & Qt::ItemIsEnabled)
     {
     {
+    bool wasChecked = this->isChecked();
+    // QCheckBox::setCheckable() doesn't emit toggled signal
     this->setCheckable(checkState == Qt::Checked);
     this->setCheckable(checkState == Qt::Checked);
+    emitToggled = (wasChecked != this->isChecked());
+    }
+  if (emitToggled)
+    {
+    emit toggled(this->isChecked());
     }
     }
-  this->update();
   emit checkStateChanged(d->CheckState);
   emit checkStateChanged(d->CheckState);
   emit checkBoxToggled(d->CheckState == Qt::Checked);
   emit checkBoxToggled(d->CheckState == Qt::Checked);
+  this->update();
 }
 }
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------