timeruler more or less done

This commit is contained in:
itsmattkc
2019-07-25 00:11:32 -07:00
parent 3564e71c1c
commit abecd2f999
8 changed files with 131 additions and 33 deletions
+30 -4
View File
@@ -20,8 +20,9 @@
#include "viewer.h"
#include <QVBoxLayout>
#include <QLabel>
#include <QResizeEvent>
#include <QVBoxLayout>
ViewerWidget::ViewerWidget(QWidget *parent) :
QWidget(parent)
@@ -38,6 +39,13 @@ ViewerWidget::ViewerWidget(QWidget *parent) :
// Create time ruler
ruler_ = new TimeRuler(false, this);
layout->addWidget(ruler_);
connect(ruler_, SIGNAL(TimeChanged(int64_t)), this, SLOT(RulerTimeChange(int64_t)));
// Create scrollbar
scrollbar_ = new QScrollBar(Qt::Horizontal, this);
layout->addWidget(scrollbar_);
connect(scrollbar_, SIGNAL(valueChanged(int)), ruler_, SLOT(SetScroll(int)));
scrollbar_->setPageStep(ruler_->width());
// Create lower controls
controls_ = new PlaybackControls(this);
@@ -46,16 +54,34 @@ ViewerWidget::ViewerWidget(QWidget *parent) :
layout->addWidget(controls_);
// FIXME: Test code
connect(controls_, SIGNAL(PlayClicked()), this, SLOT(TemporaryTestFunction()));
SetTimebase(rational(1001, 30000));
// End test code
}
void ViewerWidget::SetTimebase(const rational &r)
{
time_base_ = r;
ruler_->SetTimebase(r);
controls_->SetTimebase(r);
}
void ViewerWidget::SetTexture(GLuint tex)
{
gl_widget_->SetTexture(tex);
}
void ViewerWidget::TemporaryTestFunction()
void ViewerWidget::RulerTimeChange(int64_t i)
{
emit TimeChanged(69);
rational time_set = rational(i, 1) * time_base_;
controls_->SetTime(time_set);
emit TimeChanged(time_set);
}
void ViewerWidget::resizeEvent(QResizeEvent *event)
{
// Set scrollbar page step to the width
scrollbar_->setPageStep(event->size().width());
}
+13 -3
View File
@@ -21,9 +21,10 @@
#ifndef VIEWER_WIDGET_H
#define VIEWER_WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QPushButton>
#include <QScrollBar>
#include <QWidget>
#include "common/rational.h"
#include "viewerglwidget.h"
@@ -43,6 +44,8 @@ public:
void SetTimeRulerEnabled(bool enabled);
void SetTimebase(const rational& r);
public slots:
/**
* @brief Set the texture to draw and draw it
@@ -56,6 +59,9 @@ public slots:
signals:
void TimeChanged(const rational&);
protected:
virtual void resizeEvent(QResizeEvent *event) override;
private:
ViewerGLWidget* gl_widget_;
@@ -63,8 +69,12 @@ private:
TimeRuler* ruler_;
QScrollBar* scrollbar_;
rational time_base_;
private slots:
void TemporaryTestFunction();
void RulerTimeChange(int64_t i);
};
#endif // VIEWER_WIDGET_H