diff --git a/app/widget/curvewidget/curveview.cpp b/app/widget/curvewidget/curveview.cpp index 6da91edd9..b2dee4cff 100644 --- a/app/widget/curvewidget/curveview.cpp +++ b/app/widget/curvewidget/curveview.cpp @@ -269,11 +269,13 @@ void CurveView::VerticalScaleChangedEvent(double scale) { Q_UNUSED(scale) - QMap::const_iterator iterator; - - for (iterator=item_map().begin();iterator!=item_map().end();iterator++) { + for (auto iterator=item_map().begin();iterator!=item_map().end();iterator++) { SetItemYFromKeyframeValue(iterator.value()->key(), iterator.value()); } + + foreach (BezierControlPointItem* item, bezier_control_points_) { + item->SetYScale(scale); + } } void CurveView::wheelEvent(QWheelEvent *event) @@ -319,11 +321,13 @@ void CurveView::CreateBezierControlPoints(KeyframeViewItem* item) { BezierControlPointItem* bezier_in_pt = new BezierControlPointItem(item->key(), NodeKeyframe::kInHandle, item); bezier_in_pt->SetXScale(GetScale()); + bezier_in_pt->SetYScale(GetYScale()); bezier_control_points_.append(bezier_in_pt); connect(bezier_in_pt, &QObject::destroyed, this, &CurveView::BezierControlPointDestroyed, Qt::DirectConnection); BezierControlPointItem* bezier_out_pt = new BezierControlPointItem(item->key(), NodeKeyframe::kOutHandle, item); bezier_out_pt->SetXScale(GetScale()); + bezier_out_pt->SetYScale(GetYScale()); bezier_control_points_.append(bezier_out_pt); connect(bezier_out_pt, &QObject::destroyed, this, &CurveView::BezierControlPointDestroyed, Qt::DirectConnection); } @@ -350,10 +354,9 @@ void CurveView::KeyframeTypeChanged() void CurveView::SelectionChanged() { // Clear current bezier handles - foreach (BezierControlPointItem* item, bezier_control_points_) { - delete item; + while (!bezier_control_points_.isEmpty()) { + delete bezier_control_points_.first(); } - bezier_control_points_.clear(); QList selected = scene()->selectedItems();