Merge branch 'master' into rational_slider
This commit is contained in:
@@ -39,6 +39,7 @@ SliderBase::SliderBase(Mode mode, QWidget *parent) :
|
||||
dragged_diff_(0),
|
||||
require_valid_input_(true),
|
||||
tristate_(false),
|
||||
format_plural_(false),
|
||||
drag_ladder_(nullptr),
|
||||
ladder_element_count_(0),
|
||||
dragged_(false)
|
||||
@@ -102,9 +103,10 @@ bool SliderBase::IsDragging() const
|
||||
return drag_ladder_;
|
||||
}
|
||||
|
||||
void SliderBase::SetFormat(const QString &s)
|
||||
void SliderBase::SetFormat(const QString &s, const bool plural)
|
||||
{
|
||||
custom_format_ = s;
|
||||
format_plural_ = plural;
|
||||
ForceLabelUpdate();
|
||||
}
|
||||
|
||||
@@ -114,6 +116,11 @@ void SliderBase::ClearFormat()
|
||||
ForceLabelUpdate();
|
||||
}
|
||||
|
||||
bool SliderBase::IsFormatPlural() const
|
||||
{
|
||||
return format_plural_;
|
||||
}
|
||||
|
||||
void SliderBase::ForceLabelUpdate()
|
||||
{
|
||||
UpdateLabel(Value());
|
||||
@@ -228,10 +235,17 @@ QString SliderBase::GetFormat() const
|
||||
}
|
||||
}
|
||||
|
||||
bool SliderBase::UsingLadders() const
|
||||
{
|
||||
return ladder_element_count_ > 0 && Config::Current()[QStringLiteral("UseSliderLadders")].toBool();
|
||||
}
|
||||
|
||||
void SliderBase::UpdateLabel(const QVariant &v)
|
||||
{
|
||||
if (tristate_) {
|
||||
label_->setText("---");
|
||||
} else if (format_plural_) {
|
||||
label_->setText(tr(GetFormat().toUtf8().constData(), nullptr, v.toInt()));
|
||||
} else {
|
||||
label_->setText(GetFormat().arg(ValueToString(v)));
|
||||
}
|
||||
@@ -322,7 +336,7 @@ void SliderBase::LadderDragged(int value, double multiplier)
|
||||
|
||||
drag_ladder_->SetValue(ValueToString(clamped_temp_dragged_value_));
|
||||
|
||||
if (!Config::Current()[QStringLiteral("UseSliderLadders")].toBool()) {
|
||||
if (!UsingLadders()) {
|
||||
RepositionLadder();
|
||||
}
|
||||
|
||||
@@ -437,7 +451,7 @@ void SliderBase::ResetValue()
|
||||
void SliderBase::RepositionLadder()
|
||||
{
|
||||
if (drag_ladder_) {
|
||||
if (Config::Current()[QStringLiteral("UseSliderLadders")].toBool()) {
|
||||
if (UsingLadders()) {
|
||||
drag_ladder_->move(QCursor::pos() - QPoint(drag_ladder_->width()/2, drag_ladder_->height()/2));
|
||||
} else {
|
||||
QPoint label_global_pos = label_->mapToGlobal(label_->pos());
|
||||
|
||||
@@ -61,9 +61,11 @@ public:
|
||||
|
||||
bool IsDragging() const;
|
||||
|
||||
void SetFormat(const QString& s);
|
||||
void SetFormat(const QString& s, const bool plural=false);
|
||||
void ClearFormat();
|
||||
|
||||
bool IsFormatPlural() const;
|
||||
|
||||
void SetLadderElementCount(int b)
|
||||
{
|
||||
ladder_element_count_ = b;
|
||||
@@ -102,6 +104,8 @@ private:
|
||||
|
||||
QString GetFormat() const;
|
||||
|
||||
bool UsingLadders() const;
|
||||
|
||||
SliderLabel* label_;
|
||||
|
||||
FocusableLineEdit* editor_;
|
||||
@@ -130,6 +134,8 @@ private:
|
||||
|
||||
QString custom_format_;
|
||||
|
||||
bool format_plural_;
|
||||
|
||||
SliderLadder* drag_ladder_;
|
||||
|
||||
int ladder_element_count_;
|
||||
|
||||
@@ -77,7 +77,7 @@ SliderLadder::SliderLadder(double drag_multiplier, int nb_outer_values, QString
|
||||
drag_timer_.setInterval(10);
|
||||
connect(&drag_timer_, &QTimer::timeout, this, &SliderLadder::TimerUpdate);
|
||||
|
||||
if (Config::Current()[QStringLiteral("UseSliderLadders")].toBool()) {
|
||||
if (UsingLadders()) {
|
||||
drag_start_x_ = -1;
|
||||
} else {
|
||||
#if defined(Q_OS_MAC)
|
||||
@@ -95,7 +95,7 @@ SliderLadder::SliderLadder(double drag_multiplier, int nb_outer_values, QString
|
||||
|
||||
SliderLadder::~SliderLadder()
|
||||
{
|
||||
if (Config::Current()[QStringLiteral("UseSliderLadders")].toBool()) {
|
||||
if (UsingLadders()) {
|
||||
|
||||
} else {
|
||||
#if defined(Q_OS_MAC)
|
||||
@@ -143,7 +143,7 @@ void SliderLadder::TimerUpdate()
|
||||
int ladder_right = this->x() + this->width() - 1;
|
||||
int now_pos = QCursor::pos().x();
|
||||
|
||||
if (Config::Current()[QStringLiteral("UseSliderLadders")].toBool()) {
|
||||
if (UsingLadders()) {
|
||||
|
||||
bool is_under_mouse = (now_pos >= ladder_left && now_pos <= ladder_right);
|
||||
|
||||
@@ -227,7 +227,12 @@ void SliderLadder::TimerUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
SliderLadderElement::SliderLadderElement(const double &multiplier, QString width_hint, QWidget *parent) :
|
||||
bool SliderLadder::UsingLadders() const
|
||||
{
|
||||
return elements_.size() > 1;
|
||||
}
|
||||
|
||||
SliderLadderElement::SliderLadderElement(const double &multiplier, QString width_hint, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
multiplier_(multiplier),
|
||||
highlighted_(false),
|
||||
|
||||
@@ -83,6 +83,8 @@ signals:
|
||||
void Released();
|
||||
|
||||
private:
|
||||
bool UsingLadders() const;
|
||||
|
||||
int drag_start_x_;
|
||||
int drag_start_y_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user