From a8ac7edd519a9568e13922651c366c34484492fb Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sat, 25 Dec 2021 11:11:45 -0800 Subject: [PATCH] improved nodeparamview scroll behavior --- app/widget/nodeparamview/nodeparamview.cpp | 13 ++++-------- app/widget/nodeparamview/nodeparamview.h | 24 +--------------------- 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 268bf4af0..b04f41011 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -56,8 +56,7 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : splitter->addWidget(param_scroll_area_); // Param widget - param_widget_container_ = new NodeParamViewParamContainer(); - connect(param_widget_container_, &NodeParamViewParamContainer::Resized, this, &NodeParamView::UpdateGlobalScrollBar); + param_widget_container_ = new QWidget(); param_scroll_area_->setWidget(param_widget_container_); param_widget_area_ = new NodeParamViewDockArea(); @@ -100,6 +99,8 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : // Connect scrollbars together connect(param_scroll_area_->verticalScrollBar(), &QScrollBar::valueChanged, vertical_scrollbar_, &QScrollBar::setValue); + connect(param_scroll_area_->verticalScrollBar(), &QScrollBar::rangeChanged, vertical_scrollbar_, &QScrollBar::setRange); + connect(param_scroll_area_->verticalScrollBar(), &QScrollBar::rangeChanged, this, &NodeParamView::UpdateGlobalScrollBar); connect(vertical_scrollbar_, &QScrollBar::valueChanged, param_scroll_area_->verticalScrollBar(), &QScrollBar::setValue); if (create_keyframe_view) { @@ -287,8 +288,6 @@ void NodeParamView::resizeEvent(QResizeEvent *event) super::resizeEvent(event); vertical_scrollbar_->setPageStep(vertical_scrollbar_->height()); - - UpdateGlobalScrollBar(); } void NodeParamView::ScaleChangedEvent(const double &scale) @@ -457,13 +456,9 @@ void NodeParamView::SortItemsInContext(NodeParamViewContext *context_item) void NodeParamView::UpdateGlobalScrollBar() { - int height_offscreen = param_widget_container_->height() + scrollbar()->height(); - if (keyframe_view_) { - keyframe_view_->SetMaxScroll(height_offscreen + 2000); + keyframe_view_->SetMaxScroll(param_widget_container_->height() - ruler()->height()); } - - vertical_scrollbar_->setRange(0, height_offscreen - param_scroll_area_->height()); } void NodeParamView::PinNode(bool pin) diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index b7eb50edd..d9f7985de 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -33,28 +33,6 @@ namespace olive { -class NodeParamViewParamContainer : public QWidget -{ - Q_OBJECT -public: - NodeParamViewParamContainer(QWidget* parent = nullptr) : - QWidget(parent) - { - } - -protected: - virtual void resizeEvent(QResizeEvent *event) override - { - QWidget::resizeEvent(event); - - emit Resized(event->size().height()); - } - -signals: - void Resized(int new_height); - -}; - class NodeParamView : public TimeBasedWidget { Q_OBJECT @@ -129,7 +107,7 @@ private: QScrollArea* param_scroll_area_; - NodeParamViewParamContainer* param_widget_container_; + QWidget* param_widget_container_; NodeParamViewDockArea* param_widget_area_;