re-implemented resizable scrollbar (still somewhat crude)
This commit is contained in:
@@ -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_;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user