integrated waveform with scrollable playhead

This commit is contained in:
itsmattkc
2018-12-09 02:15:53 +11:00
parent 5d89afb639
commit e623b8640e
5 changed files with 54 additions and 28 deletions
+24 -17
View File
@@ -3,6 +3,8 @@
#include <QWidget>
#include <QResizeEvent>
#include "viewerwidget.h"
// enforces aspect ratio
ViewerContainer::ViewerContainer(QWidget *parent) :
QWidget(parent),
@@ -11,26 +13,31 @@ ViewerContainer::ViewerContainer(QWidget *parent) :
{}
void ViewerContainer::adjust() {
if (child != NULL) {
QSize widget_size = size();
int widget_x = 0;
int widget_y = 0;
int widget_width = widget_size.width();
int widget_height = widget_size.height();
float widget_ar = (float) widget_width /(float) widget_height;
if (child != NULL) {
if (child->waveform) {
child->move(0, 0);
child->resize(size());
} else {
QSize widget_size = size();
int widget_x = 0;
int widget_y = 0;
int widget_width = widget_size.width();
int widget_height = widget_size.height();
float widget_ar = (float) widget_width /(float) widget_height;
bool widget_is_larger_than_sequence = widget_ar > aspect_ratio;
bool widget_is_larger_than_sequence = widget_ar > aspect_ratio;
if (widget_is_larger_than_sequence) {
widget_width = widget_height * aspect_ratio;
widget_x = (widget_size.width() / 2) - (widget_width / 2);
} else {
widget_height = widget_width / aspect_ratio;
widget_y = (widget_size.height() / 2) - (widget_height / 2);
}
if (widget_is_larger_than_sequence) {
widget_width = widget_height * aspect_ratio;
widget_x = (widget_size.width() / 2) - (widget_width / 2);
} else {
widget_height = widget_width / aspect_ratio;
widget_y = (widget_size.height() / 2) - (widget_height / 2);
}
child->move(widget_x, widget_y);
child->resize(widget_width, widget_height);
child->move(widget_x, widget_y);
child->resize(widget_width, widget_height);
}
}
}