Don't uncheck a radiobutton on second click.

This commit is contained in:
John Preston 2017-07-18 20:11:44 +03:00
parent 794ad7bda7
commit 077e128e9a
2 changed files with 11 additions and 10 deletions

View File

@ -408,9 +408,13 @@ void Checkbox::onStateChanged(State was, StateChangeSource source) {
auto now = state(); auto now = state();
if (!isDisabled() && (was & StateFlag::Over) && (now & StateFlag::Over)) { if (!isDisabled() && (was & StateFlag::Over) && (now & StateFlag::Over)) {
if ((was & StateFlag::Down) && !(now & StateFlag::Down)) { if ((was & StateFlag::Down) && !(now & StateFlag::Down)) {
handlePress();
}
}
}
void Checkbox::handlePress() {
setChecked(!checked()); setChecked(!checked());
}
}
} }
int Checkbox::resizeGetHeight(int newWidth) { int Checkbox::resizeGetHeight(int newWidth) {
@ -461,14 +465,9 @@ void Radiobutton::handleNewGroupValue(int value) {
} }
} }
void Radiobutton::onStateChanged(State was, StateChangeSource source) { void Radiobutton::handlePress() {
Checkbox::onStateChanged(was, source); if (!checkbox()->checked()) {
checkbox()->setChecked(true);
auto now = state();
if (!isDisabled() && (was & StateFlag::Over) && (now & StateFlag::Over)) {
if ((was & StateFlag::Down) && !(now & StateFlag::Down)) {
_group->setValue(_value);
}
} }
} }

View File

@ -148,6 +148,8 @@ protected:
QImage prepareRippleMask() const override; QImage prepareRippleMask() const override;
QPoint prepareRippleStartPosition() const override; QPoint prepareRippleStartPosition() const override;
virtual void handlePress();
void updateCheck() { void updateCheck() {
rtlupdate(_checkRect); rtlupdate(_checkRect);
} }
@ -209,7 +211,7 @@ public:
~Radiobutton(); ~Radiobutton();
protected: protected:
void onStateChanged(State was, StateChangeSource source) override; void handlePress() override;
private: private:
// Hide the names from Checkbox. // Hide the names from Checkbox.