diff --git a/app/widget/slider/rationalslider.cpp b/app/widget/slider/rationalslider.cpp index 30eaeaf40..a289e1e2a 100644 --- a/app/widget/slider/rationalslider.cpp +++ b/app/widget/slider/rationalslider.cpp @@ -20,12 +20,13 @@ namespace olive { -RationalSlider::RationalSlider(DisplayType display_type, rational timebase, QWidget *parent) : +RationalSlider::RationalSlider(rational timebase, QWidget *parent) : SliderBase(SliderBase::kRational, parent), - display_type_(display_type), + display_type_(kTimecode), decimal_places_(2), autotrim_decimal_places_(false), - timebase_(timebase) + timebase_(timebase), + lock_display_type_(false) { connect(this, SIGNAL(ValueChanged(QVariant)), this, SLOT(ConvertValue(QVariant))); connect(this, &SliderBase::changeRationalDisplayType, this, &RationalSlider::changeDisplayType); @@ -106,6 +107,16 @@ void RationalSlider::SetDisplayType(const RationalSlider::DisplayType &type) } } +void RationalSlider::SetLockDisplayType(bool e) +{ + lock_display_type_ = e; +} + +bool RationalSlider::LockDisplayType() +{ + return lock_display_type_; +} + QString RationalSlider::ValueToString(const QVariant &v) { double time = v.value().toDouble(); @@ -179,9 +190,11 @@ void RationalSlider::ConvertValue(QVariant v) void RationalSlider::changeDisplayType() { - // Loop through the display types - SetDisplayType(static_cast(((int)(display_type_)+1)%4)); - ForceLabelUpdate(); + if (!LockDisplayType()) { + // Loop through the display types + SetDisplayType(static_cast(((int)(display_type_) + 1) % 4)); + ForceLabelUpdate(); + } } void RationalSlider::ChangeTimecodeDisplayType() diff --git a/app/widget/slider/rationalslider.h b/app/widget/slider/rationalslider.h index 40ef1d98e..093714541 100644 --- a/app/widget/slider/rationalslider.h +++ b/app/widget/slider/rationalslider.h @@ -46,7 +46,7 @@ public: kFloat }; - RationalSlider(DisplayType display_type, rational timebase, QWidget* parent = nullptr); + RationalSlider(rational timebase, QWidget* parent = nullptr); /** * @brief Returns the sliders value as a rational @@ -58,6 +58,9 @@ public: */ void SetValue(const rational& d); + /** + * @brief Sets the sliders default value + */ void SetDefaultValue(const rational& r); /** @@ -85,6 +88,10 @@ public: */ void SetDisplayType(const DisplayType& type); + void SetLockDisplayType(bool e); + + bool LockDisplayType(); + void SetAutoTrimDecimalPlaces(bool e); protected: @@ -116,6 +123,7 @@ private: rational timebase_; + bool lock_display_type_; }; } diff --git a/app/widget/slider/sliderbase.cpp b/app/widget/slider/sliderbase.cpp index 5f5ec3dbe..770fc57ed 100644 --- a/app/widget/slider/sliderbase.cpp +++ b/app/widget/slider/sliderbase.cpp @@ -214,7 +214,6 @@ const QVariant &SliderBase::ClampValue(const QVariant &v) if (has_min_ && value < min) { return min_value_; }else if (has_max_ && value > max) { - printf("MAX: %f\n", max_value_.value().toDouble()); return max_value_; }