re-implemented resizable scrollbar (still somewhat crude)

This commit is contained in:
itsmattkc
2020-03-05 00:34:39 +11:00
parent cd83729834
commit a41c0e65ac
6 changed files with 213 additions and 5 deletions
+8 -2
View File
@@ -10,7 +10,8 @@ TimeBasedWidget::TimeBasedWidget(bool ruler_text_visible, bool ruler_cache_statu
ruler_ = new TimeRuler(ruler_text_visible, ruler_cache_status_visible, this);
connect(ruler_, &TimeRuler::TimeChanged, this, &TimeBasedWidget::SetTimeAndSignal);
scrollbar_ = new QScrollBar(Qt::Horizontal, this);
scrollbar_ = new ResizableScrollBar(Qt::Horizontal, this);
connect(scrollbar_, &ResizableScrollBar::RequestScale, this, &TimeBasedWidget::ScrollBarResized);
}
void TimeBasedWidget::SetScaleAndCenterOnPlayhead(const double &scale)
@@ -65,12 +66,17 @@ void TimeBasedWidget::UpdateMaximumScroll()
scrollbar_->setMaximum(qMax(0, qCeil(TimeToScene(viewer_node_->Length())) - width()));
}
void TimeBasedWidget::ScrollBarResized(const double &multiplier)
{
SetScale(GetScale() * multiplier);
}
TimeRuler *TimeBasedWidget::ruler() const
{
return ruler_;
}
QScrollBar *TimeBasedWidget::scrollbar() const
ResizableScrollBar *TimeBasedWidget::scrollbar() const
{
return scrollbar_;
}
+5 -3
View File
@@ -1,10 +1,10 @@
#ifndef TIMEBASEDWIDGET_H
#define TIMEBASEDWIDGET_H
#include <QScrollBar>
#include <QWidget>
#include "node/output/viewer/viewer.h"
#include "widget/resizablescrollbar/resizablescrollbar.h"
#include "widget/timelinewidget/timelinescaledobject.h"
#include "widget/timeruler/timeruler.h"
@@ -54,7 +54,7 @@ protected slots:
void SetTimeAndSignal(const int64_t& t);
protected:
QScrollBar* scrollbar() const;
ResizableScrollBar* scrollbar() const;
virtual void TimebaseChangedEvent(const rational&) override;
@@ -88,13 +88,15 @@ private:
TimeRuler* ruler_;
QScrollBar* scrollbar_;
ResizableScrollBar* scrollbar_;
bool auto_max_scrollbar_;
private slots:
void UpdateMaximumScroll();
void ScrollBarResized(const double& multiplier);
};
#endif // TIMEBASEDWIDGET_H