got a LOT of work down on the footage viewer

This commit is contained in:
itsmattkc
2018-10-18 11:43:21 +11:00
parent 20a264554c
commit b8deb5d415
19 changed files with 117 additions and 120 deletions
+10 -6
View File
@@ -72,7 +72,7 @@ void TimelineHeader::set_in_point(long new_in) {
}
undo_stack.push(new SetTimelineInOutCommand(viewer->seq, true, new_in, new_out));
panel_timeline->repaint_timeline(false);
update_parents();
}
void TimelineHeader::set_out_point(long new_out) {
@@ -83,7 +83,7 @@ void TimelineHeader::set_out_point(long new_out) {
new_in = 0;
}
undo_stack.push(new SetTimelineInOutCommand(viewer->seq, true, new_in, new_out));
panel_timeline->repaint_timeline(false);
update_parents();
}
void TimelineHeader::show_text(bool enable) {
@@ -159,7 +159,7 @@ void TimelineHeader::mouseMoveEvent(QMouseEvent* event) {
temp_workarea_out = qMin(qMax(temp_workarea_in+1, frame), sequence_end);
}
panel_timeline->repaint_timeline(false);
update_parents();
} else if (dragging_markers) {
long frame_movement = getHeaderFrameFromScreenPoint(event->pos().x()) - getHeaderFrameFromScreenPoint(drag_start);
@@ -186,7 +186,7 @@ void TimelineHeader::mouseMoveEvent(QMouseEvent* event) {
viewer->seq->markers[selected_markers.at(i)].frame = selected_marker_original_times.at(i) + frame_movement;
}
panel_timeline->repaint_timeline(false);
update_parents();
} else {
set_playhead(event->pos().x());
}
@@ -239,7 +239,7 @@ void TimelineHeader::mouseReleaseEvent(QMouseEvent*) {
dragging = false;
dragging_markers = false;
panel_timeline->snapped = false;
panel_timeline->repaint_timeline(false);
update_parents();
}
}
@@ -248,6 +248,10 @@ void TimelineHeader::focusOutEvent(QFocusEvent*) {
update();
}
void TimelineHeader::update_parents() {
viewer->update_parents();
}
void TimelineHeader::update_zoom(double z) {
zoom = z;
update();
@@ -260,7 +264,7 @@ void TimelineHeader::delete_markers() {
dma->markers.append(selected_markers.at(i));
}
undo_stack.push(dma);
panel_timeline->repaint_timeline(false);
update_parents();
}
}
+2
View File
@@ -34,6 +34,8 @@ protected:
void focusOutEvent(QFocusEvent*);
private:
void update_parents();
bool dragging;
bool resizing_workarea;
+20 -29
View File
@@ -78,7 +78,7 @@ void TimelineWidget::right_click_ripple() {
if (can_ripple) {
undo_stack.push(new RippleCommand(sequence, rc_ripple_min, rc_ripple_min - rc_ripple_max));
panel_timeline->repaint_timeline(true);
update_ui(true);
}
}
@@ -362,7 +362,7 @@ void TimelineWidget::dragMoveEvent(QDragMoveEvent *event) {
if (sequence != NULL && panel_timeline->importing) {
QPoint pos = event->pos();
update_ghosts(pos);
panel_timeline->repaint_timeline(false);
update_ui(false);
}
}
@@ -388,7 +388,7 @@ void TimelineWidget::dragLeaveEvent(QDragLeaveEvent*) {
if (sequence != NULL && panel_timeline->importing) {
panel_timeline->ghosts.clear();
panel_timeline->importing = false;
panel_timeline->repaint_timeline(false);
update_ui(false);
}
}
@@ -503,7 +503,7 @@ void TimelineWidget::dropEvent(QDropEvent* event) {
setFocus();
panel_timeline->repaint_timeline(true);
update_ui(true);
}
}
@@ -518,7 +518,7 @@ void TimelineWidget::mouseDoubleClickEvent(QMouseEvent *event) {
s.out = clip->timeline_out;
s.track = clip->track;
sequence->selections.append(s);
panel_timeline->repaint_timeline(false);
update_ui(false);
}
}
}
@@ -681,7 +681,7 @@ void TimelineWidget::mousePressEvent(QMouseEvent *event) {
panel_timeline->rect_select_init = true;
}
panel_timeline->repaint_timeline(false);
update_ui(false);
}
}
break;
@@ -693,7 +693,7 @@ void TimelineWidget::mousePressEvent(QMouseEvent *event) {
{
panel_timeline->splitting = true;
panel_timeline->split_tracks.append(panel_timeline->drag_track_start);
panel_timeline->repaint_timeline(false);
update_ui(false);
}
break;
}
@@ -707,9 +707,8 @@ void TimelineWidget::mouseReleaseEvent(QMouseEvent *event) {
bool alt = (event->modifiers() & Qt::AltModifier);
bool shift = (event->modifiers() & Qt::ShiftModifier);
if (event->button() == Qt::LeftButton) {
bool repaint = false;
bool redraw = false;
if (event->button() == Qt::LeftButton) {
bool changed = false;
ComboAction* ca = new ComboAction();
bool push_undo = false;
@@ -782,7 +781,7 @@ void TimelineWidget::mouseReleaseEvent(QMouseEvent *event) {
panel_timeline->delete_areas_and_relink(ca, areas);
push_undo = true;
redraw = true;
changed = true;
if (!shift) {
panel_timeline->creating = false;
@@ -790,7 +789,6 @@ void TimelineWidget::mouseReleaseEvent(QMouseEvent *event) {
}
}
} else if (panel_timeline->moving_proc) {
repaint = true;
if (panel_timeline->ghosts.size() > 0) {
const Ghost& first_ghost = panel_timeline->ghosts.at(0);
@@ -955,10 +953,10 @@ void TimelineWidget::mouseReleaseEvent(QMouseEvent *event) {
}
}
push_undo = true;
redraw = true;
changed = true;
}
} else if (panel_timeline->selecting || panel_timeline->rect_select_proc) {
repaint = true;
changed = true;
} else if (panel_timeline->splitting) {
bool split = false;
for (int i=0;i<panel_timeline->split_tracks.size();i++) {
@@ -969,7 +967,7 @@ void TimelineWidget::mouseReleaseEvent(QMouseEvent *event) {
}
if (split) {
push_undo = true;
redraw = true;
changed = true;
}
panel_timeline->split_cache.clear();
}
@@ -1006,14 +1004,7 @@ void TimelineWidget::mouseReleaseEvent(QMouseEvent *event) {
pre_clips.clear();
post_clips.clear();
if (redraw) {
panel_timeline->repaint_timeline(true);
} else {
panel_timeline->update_effect_controls();
if (repaint) {
panel_timeline->repaint_timeline(false);
}
}
update_ui(changed);
}
}
}
@@ -1342,8 +1333,8 @@ void TimelineWidget::mouseMoveEvent(QMouseEvent *event) {
if (config.edit_tool_also_seeks) {
panel_sequence_viewer->seek(qMin(panel_timeline->drag_frame_start, panel_timeline->cursor_frame));
} else {
panel_timeline->repaint_timeline(false);
} else {
panel_timeline->repaint_timeline();
}
} else if (panel_timeline->moving_init) {
if (track_resizing) {
@@ -1544,7 +1535,7 @@ void TimelineWidget::mouseMoveEvent(QMouseEvent *event) {
panel_timeline->moving_proc = true;
}
panel_timeline->repaint_timeline(false);
update_ui(true);
} else if (panel_timeline->splitting) {
int track_start = qMin(panel_timeline->cursor_track, panel_timeline->drag_track_start);
int track_end = qMax(panel_timeline->cursor_track, panel_timeline->drag_track_start);
@@ -1568,7 +1559,7 @@ void TimelineWidget::mouseMoveEvent(QMouseEvent *event) {
}
}
}
panel_timeline->repaint_timeline(false);
update_ui(true);
} else if (panel_timeline->rect_select_init) {
if (panel_timeline->rect_select_proc) {
panel_timeline->rect_select_w = event->pos().x() - panel_timeline->rect_select_x;
@@ -1630,7 +1621,7 @@ void TimelineWidget::mouseMoveEvent(QMouseEvent *event) {
s.old_track = s.track = clip->track;
}
panel_timeline->repaint_timeline(false);
panel_timeline->repaint_timeline();
} else {
panel_timeline->rect_select_x = event->pos().x();
panel_timeline->rect_select_y = event->pos().y();
@@ -1641,7 +1632,7 @@ void TimelineWidget::mouseMoveEvent(QMouseEvent *event) {
}
} else if (isLiveEditing()) {
// redraw because we have a cursor
panel_timeline->repaint_timeline(false);
panel_timeline->repaint_timeline();
} else if (panel_timeline->tool == TIMELINE_TOOL_POINTER ||
panel_timeline->tool == TIMELINE_TOOL_RIPPLE ||
panel_timeline->tool == TIMELINE_TOOL_ROLLING) {
+5 -6
View File
@@ -29,8 +29,7 @@ extern "C" {
ViewerWidget::ViewerWidget(QWidget *parent) :
QOpenGLWidget(parent),
rendering(false),
default_fbo(NULL),
display_sequence(NULL)
default_fbo(NULL)
{
QSurfaceFormat format;
format.setDepthBufferSize(24);
@@ -44,7 +43,7 @@ ViewerWidget::ViewerWidget(QWidget *parent) :
void ViewerWidget::deleteFunction() {
// destroy all textures as well
makeCurrent();
closeActiveClips(display_sequence, true);
closeActiveClips(viewer->seq, true);
doneCurrent();
}
@@ -165,8 +164,8 @@ GLuint ViewerWidget::draw_clip(QOpenGLFramebufferObject* fbo, GLuint texture) {
}
GLuint ViewerWidget::compose_sequence(Clip* nest, bool render_audio) {
Sequence* s = display_sequence;
long playhead = display_sequence->playhead;
Sequence* s = viewer->seq;
long playhead = s->playhead;
if (nest != NULL) {
s = static_cast<Sequence*>(nest->media);
@@ -453,7 +452,7 @@ void ViewerWidget::paintGL() {
// compose video preview
glClearColor(0, 0, 0, 0);
compose_sequence(NULL, (panel_sequence_viewer->playing || rendering));
compose_sequence(NULL, (viewer->playing || rendering));
if (texture_failed) {
if (rendering) {
+2 -2
View File
@@ -9,8 +9,8 @@
#include <QMutex>
#include <QWaitCondition>
class Viewer;
struct Clip;
struct Sequence;
class QOpenGLFramebufferObject;
class ViewerWidget : public QOpenGLWidget
@@ -22,7 +22,7 @@ public:
bool rendering;
void paintGL();
void initializeGL();
Sequence* display_sequence;
Viewer* viewer;
QOpenGLFramebufferObject* default_fbo;
protected: