slider: improved dragging behavior when min/max are set

This commit is contained in:
itsmattkc
2021-04-01 17:08:18 +11:00
parent f3efab1da1
commit 2adb6447a1
2 changed files with 8 additions and 12 deletions
+7 -12
View File
@@ -121,7 +121,7 @@ void SliderBase::ForceLabelUpdate()
const QVariant &SliderBase::Value() const
{
if (IsDragging()) {
return temp_dragged_value_;
return clamped_temp_dragged_value_;
}
return value_;
@@ -288,22 +288,17 @@ void SliderBase::LadderDragged(int value, double multiplier)
temp_dragged_value_ = drag_val;
}
QVariant clamped = ClampValue(temp_dragged_value_);
clamped_temp_dragged_value_ = ClampValue(temp_dragged_value_);
if (clamped != temp_dragged_value_) {
temp_dragged_value_ = clamped;
dragged_diff_ = temp_dragged_value_.toDouble() - value_.toDouble();
}
UpdateLabel(clamped_temp_dragged_value_);
UpdateLabel(temp_dragged_value_);
drag_ladder_->SetValue(ValueToString(temp_dragged_value_));
drag_ladder_->SetValue(ValueToString(clamped_temp_dragged_value_));
if (!Config::Current()[QStringLiteral("UseSliderLadders")].toBool()) {
RepositionLadder();
}
emit ValueChanged(temp_dragged_value_);
emit ValueChanged(clamped_temp_dragged_value_);
break;
}
}
@@ -322,10 +317,10 @@ void SliderBase::LadderReleased()
// No-op
break;
case kInteger:
SetValue(temp_dragged_value_.toInt());
SetValue(clamped_temp_dragged_value_.toInt());
break;
case kFloat:
SetValue(temp_dragged_value_.toDouble());
SetValue(clamped_temp_dragged_value_.toDouble());
break;
}
+1
View File
@@ -117,6 +117,7 @@ private:
double dragged_diff_;
QVariant temp_dragged_value_;
QVariant clamped_temp_dragged_value_;
QVariant offset_;