diff --git a/ui/labelslider.cpp b/ui/labelslider.cpp index d83b2b9f7..faef270bd 100644 --- a/ui/labelslider.cpp +++ b/ui/labelslider.cpp @@ -12,17 +12,17 @@ LabelSlider::LabelSlider(QWidget* parent) : QLabel(parent) { frame_rate = 30; decimal_places = 1; - drag_start = false; + drag_start = false; drag_proc = false; - min_enabled = false; - max_enabled = false; + min_enabled = false; + max_enabled = false; set_color(); - setCursor(Qt::SizeHorCursor); - internal_value = -1; - set = false; - display_type = LABELSLIDER_NORMAL; + setCursor(Qt::SizeHorCursor); + internal_value = -1; + set = false; + display_type = LABELSLIDER_NORMAL; - set_default_value(0); + set_default_value(0); } void LabelSlider::set_frame_rate(double d) { @@ -35,23 +35,23 @@ void LabelSlider::set_display_type(int type) { } void LabelSlider::set_value(double v, bool userSet) { - set = true; - if (v != internal_value) { - if (min_enabled && v < min_value) { - internal_value = min_value; - } else if (max_enabled && v > max_value) { - internal_value = max_value; - } else { - internal_value = v; - } + set = true; + if (v != internal_value) { + if (min_enabled && v < min_value) { + internal_value = min_value; + } else if (max_enabled && v > max_value) { + internal_value = max_value; + } else { + internal_value = v; + } setText(valueToString(internal_value)); - if (userSet) emit valueChanged(); - } + if (userSet) emit valueChanged(); + } } bool LabelSlider::is_set() { - return set; + return set; } bool LabelSlider::is_dragging() { @@ -71,7 +71,7 @@ QString LabelSlider::valueToString(double v) { } double LabelSlider::getPreviousValue() { - return previous_value; + return previous_value; } void LabelSlider::set_previous_value() { @@ -84,11 +84,11 @@ void LabelSlider::set_color(QString c) { } double LabelSlider::value() { - return internal_value; + return internal_value; } void LabelSlider::set_default_value(double v) { - default_value = v; + default_value = v; if (!set) { set_value(v, false); set = false; @@ -96,83 +96,85 @@ void LabelSlider::set_default_value(double v) { } void LabelSlider::set_minimum_value(double v) { - min_value = v; - min_enabled = true; + min_value = v; + min_enabled = true; } void LabelSlider::set_maximum_value(double v) { - max_value = v; - max_enabled = true; + max_value = v; + max_enabled = true; } void LabelSlider::mousePressEvent(QMouseEvent *ev) { - drag_start_value = internal_value; - if (ev->modifiers() & Qt::AltModifier) { - if (internal_value != default_value && !qIsNaN(default_value)) { - set_previous_value(); - set_value(default_value, true); - } - } else { - if (qIsNaN(internal_value)) internal_value = 0; + if (ev->buttons() & Qt::LeftButton) { + drag_start_value = internal_value; + if (ev->modifiers() & Qt::AltModifier) { + if (internal_value != default_value && !qIsNaN(default_value)) { + set_previous_value(); + set_value(default_value, true); + } + } else { + if (qIsNaN(internal_value)) internal_value = 0; - qApp->setOverrideCursor(Qt::BlankCursor); - drag_start = true; - drag_start_x = cursor().pos().x(); - drag_start_y = cursor().pos().y(); - } - emit clicked(); + qApp->setOverrideCursor(Qt::BlankCursor); + drag_start = true; + drag_start_x = cursor().pos().x(); + drag_start_y = cursor().pos().y(); + } + emit clicked(); + } } void LabelSlider::mouseMoveEvent(QMouseEvent* event) { - if (drag_start) { + if (drag_start) { drag_proc = true; - double diff = (cursor().pos().x()-drag_start_x) + (drag_start_y-cursor().pos().y()); - if (event->modifiers() & Qt::ControlModifier) diff *= 0.01; - if (display_type == LABELSLIDER_PERCENT) diff *= 0.01; - set_value(internal_value + diff, true); - cursor().setPos(drag_start_x, drag_start_y); - } + double diff = (cursor().pos().x()-drag_start_x) + (drag_start_y-cursor().pos().y()); + if (event->modifiers() & Qt::ControlModifier) diff *= 0.01; + if (display_type == LABELSLIDER_PERCENT) diff *= 0.01; + set_value(internal_value + diff, true); + cursor().setPos(drag_start_x, drag_start_y); + } } void LabelSlider::mouseReleaseEvent(QMouseEvent*) { - if (drag_start) { - qApp->restoreOverrideCursor(); - drag_start = false; - if (drag_proc) { + if (drag_start) { + qApp->restoreOverrideCursor(); + drag_start = false; + if (drag_proc) { drag_proc = false; previous_value = drag_start_value; - emit valueChanged(); + emit valueChanged(); } else { double d = internal_value; if (display_type == LABELSLIDER_FRAMENUMBER) { QString s = QInputDialog::getText( this, - tr("Set Value"), - tr("New value:"), + tr("Set Value"), + tr("New value:"), QLineEdit::Normal, valueToString(internal_value) ); - if (s.isEmpty()) return; + if (s.isEmpty()) return; d = timecode_to_frame(s, config.timecode_view, frame_rate); // string to frame number } else { - bool ok; + bool ok; d = QInputDialog::getDouble( this, - tr("Set Value"), - tr("New value:"), + tr("Set Value"), + tr("New value:"), (display_type == LABELSLIDER_PERCENT) ? internal_value * 100 : internal_value, (min_enabled) ? min_value : INT_MIN, (max_enabled) ? max_value : INT_MAX, - decimal_places, - &ok + decimal_places, + &ok ); - if (!ok) return; - if (display_type == LABELSLIDER_PERCENT) d *= 0.01; + if (!ok) return; + if (display_type == LABELSLIDER_PERCENT) d *= 0.01; } if (d != internal_value) { - set_previous_value(); + set_previous_value(); set_value(d, true); } } - } + } }