half way through keyframes data

This commit is contained in:
itsmattkc
2018-08-19 15:53:35 +10:00
parent dacf0efd9a
commit 859a17dfda
22 changed files with 352 additions and 238 deletions
+12 -7
View File
@@ -16,12 +16,6 @@
KeyframeView::KeyframeView(QWidget *parent) : QWidget(parent), mouseover(false), visible_in(0), visible_out(0) {
setFocusPolicy(Qt::ClickFocus);
setMouseTracking(true);
reload();
}
void KeyframeView::reload() {
enable_reload = true;
update();
}
void KeyframeView::paintEvent(QPaintEvent*) {
@@ -30,6 +24,7 @@ void KeyframeView::paintEvent(QPaintEvent*) {
setMinimumWidth(getScreenPointFromFrame(panel_effect_controls->zoom, visible_out - visible_in));
rowY.clear();
rows.clear();
for (int i=0;i<effects.size();i++) {
Effect* e = effects.at(i);
if (e->container->is_expanded()) {
@@ -39,6 +34,8 @@ void KeyframeView::paintEvent(QPaintEvent*) {
long frame = 20;
int keyframe_y = label->y() + (label->height()>>1) + mapFrom(panel_effect_controls, contents->mapTo(panel_effect_controls, contents->pos())).y() - e->container->title_bar->height();
draw_keyframe(p, getScreenPointFromFrame(panel_effect_controls->zoom, frame), keyframe_y, false);
rows.append(e->row(j));
rowY.append(keyframe_y);
}
}
@@ -51,7 +48,7 @@ void KeyframeView::paintEvent(QPaintEvent*) {
}
if (mouseover && mouseover_row < rowY.size()) {
draw_keyframe(p, getScreenPointFromFrame(panel_effect_controls->zoom, mouseover_frame) - visible_in, rowY.at(mouseover_row), true);
draw_keyframe(p, getScreenPointFromFrame(panel_effect_controls->zoom, mouseover_frame - visible_in), rowY.at(mouseover_row), true);
}
}
@@ -63,6 +60,10 @@ void KeyframeView::draw_keyframe(QPainter &p, int x, int y, bool semiTransparent
p.drawPolygon(points, KEYFRAME_POINT_COUNT);
}
void KeyframeView::mousePressEvent(QMouseEvent *event) {
qDebug() << "create keyframe @ clip frame" << mouseover_frame - visible_in + (rows.at(mouseover_row)->parent_effect->parent_clip->clip_in) << "effect row" << mouseover_row;
}
void KeyframeView::mouseMoveEvent(QMouseEvent* event) {
unsetCursor();
bool new_mo = false;
@@ -80,3 +81,7 @@ void KeyframeView::mouseMoveEvent(QMouseEvent* event) {
}
mouseover = new_mo;
}
void KeyframeView::mouseReleaseEvent(QMouseEvent* event) {
}
+2 -4
View File
@@ -16,14 +16,12 @@ public:
long visible_in;
long visible_out;
public slots:
void reload();
private:
QVector<int> rowY;
QVector<EffectRow*> rows;
void mousePressEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
/*void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent *event);*/
void mouseReleaseEvent(QMouseEvent *event);
void paintEvent(QPaintEvent *event);
void draw_keyframe(QPainter& p, int x, int y, bool semiTransparent);
bool enable_reload;
+1 -1
View File
@@ -177,7 +177,7 @@ void ViewerWidget::compose_sequence(QVector<Clip*>& nests, bool render_audio) {
QOpenGLShaderProgram shader;
for (int j=0;j<c->effects.size();j++) {
if (c->effects.at(j)->enable_opengl && c->effects.at(j)->is_enabled()) c->effects.at(j)->process_gl(shader, &anchor_x, &anchor_y);
if (c->effects.at(j)->enable_opengl && c->effects.at(j)->is_enabled()) c->effects.at(j)->process_gl(panel_timeline->playhead-c->timeline_in+c->clip_in, shader, &anchor_x, &anchor_y);
}
if (c->opening_transition != NULL) {