improved nodeparamview scroll behavior

This commit is contained in:
itsmattkc
2021-12-25 11:11:45 -08:00
parent 21165cb2ff
commit a8ac7edd51
2 changed files with 5 additions and 32 deletions
+4 -9
View File
@@ -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)
+1 -23
View File
@@ -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_;