footage markers can now be edited in footage viewer

This commit is contained in:
itsmattkc
2019-02-04 01:53:08 +11:00
parent e83d87d6ba
commit ef6a9cb2a3
3 changed files with 23 additions and 10 deletions
+11 -2
View File
@@ -471,6 +471,7 @@ void Viewer::update_parents(bool reload_fx) {
update_ui(reload_fx);
} else {
update_viewer();
panel_timeline->repaint_timeline();
}
}
@@ -685,14 +686,17 @@ void Viewer::setup_ui() {
void Viewer::set_media(Media* m) {
main_sequence = false;
media = m;
clean_created_seq();
media = m;
clean_created_seq();
if (media != nullptr) {
switch (media->get_type()) {
case MEDIA_TYPE_FOOTAGE:
{
Footage* footage = media->to_footage();
marker_ref = &footage->markers;
seq = new Sequence();
created_sequence = true;
seq->wrapper_sequence = true;
@@ -856,10 +860,15 @@ void Viewer::set_sequence(bool main, Sequence *s) {
update_end_timecode();
viewer_container->adjust();
if (!created_sequence) {
marker_ref = &seq->markers;
}
} else {
update_playhead_timecode(0);
update_end_timecode();
}
update_window_title();
update_header_zoom();
+4 -1
View File
@@ -16,6 +16,8 @@ class LabelSlider;
class QPushButton;
class QLabel;
#include "project/marker.h"
bool frame_rate_is_droppable(float rate);
long timecode_to_frame(const QString& s, int view, double frame_rate);
QString frame_to_timecode(long f, int view, double frame_rate);
@@ -71,7 +73,8 @@ public:
ViewerWidget* viewer_widget;
Media* media;
Sequence* seq;
Sequence* seq;
QVector<Marker>* marker_ref;
void resizeEvent(QResizeEvent *event);
+8 -7
View File
@@ -5,6 +5,7 @@
#include "panels/timeline.h"
#include "project/sequence.h"
#include "project/undo.h"
#include "project/media.h"
#include "panels/viewer.h"
#include "io/config.h"
#include "debug.h"
@@ -142,8 +143,8 @@ void TimelineHeader::mousePressEvent(QMouseEvent* event) {
if (event->pos().y() > get_marker_offset()
&& (event->pos().x() < playhead_x-PLAYHEAD_SIZE
|| event->pos().x() > playhead_x+PLAYHEAD_SIZE)) {
for (int i=0;i<viewer->seq->markers.size();i++) {
int marker_pos = getHeaderScreenPointFromFrame(viewer->seq->markers.at(i).frame);
for (int i=0;i<viewer->marker_ref->size();i++) {
int marker_pos = getHeaderScreenPointFromFrame(viewer->marker_ref->at(i).frame);
if (event->pos().x() > marker_pos - MARKER_SIZE && event->pos().x() < marker_pos + MARKER_SIZE) {
bool found = false;
for (int j=0;j<selected_markers.size();j++) {
@@ -171,7 +172,7 @@ void TimelineHeader::mousePressEvent(QMouseEvent* event) {
if (clicked_on_marker) {
selected_marker_original_times.resize(selected_markers.size());
for (int i=0;i<selected_markers.size();i++) {
selected_marker_original_times[i] = viewer->seq->markers.at(selected_markers.at(i)).frame;
selected_marker_original_times[i] = viewer->marker_ref->at(selected_markers.at(i)).frame;
}
drag_start = event->pos().x();
dragging_markers = true;
@@ -224,7 +225,7 @@ void TimelineHeader::mouseMoveEvent(QMouseEvent* event) {
// move markers
for (int i=0;i<selected_markers.size();i++) {
viewer->seq->markers[selected_markers.at(i)].frame = selected_marker_original_times.at(i) + frame_movement;
viewer->marker_ref[0][selected_markers.at(i)].frame = selected_marker_original_times.at(i) + frame_movement;
}
update_parents();
@@ -263,7 +264,7 @@ void TimelineHeader::mouseReleaseEvent(QMouseEvent*) {
bool moved = false;
ComboAction* ca = new ComboAction();
for (int i=0;i<selected_markers.size();i++) {
Marker* m = &viewer->seq->markers[selected_markers.at(i)];
Marker* m = &viewer->marker_ref[0][selected_markers.at(i)];
if (selected_marker_original_times.at(i) != m->frame) {
ca->append(new MoveMarkerAction(m, selected_marker_original_times.at(i), m->frame));
moved = true;
@@ -403,8 +404,8 @@ void TimelineHeader::paintEvent(QPaintEvent*) {
}
// draw markers
for (int i=0;i<viewer->seq->markers.size();i++) {
const Marker& m = viewer->seq->markers.at(i);
for (int i=0;i<viewer->marker_ref->size();i++) {
const Marker& m = viewer->marker_ref->at(i);
int marker_x = getHeaderScreenPointFromFrame(m.frame);