got a LOT of work down on the footage viewer
This commit is contained in:
+10
-6
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ protected:
|
||||
void focusOutEvent(QFocusEvent*);
|
||||
|
||||
private:
|
||||
void update_parents();
|
||||
|
||||
bool dragging;
|
||||
|
||||
bool resizing_workarea;
|
||||
|
||||
+20
-29
@@ -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
@@ -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
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user