footage markers can now be edited in footage viewer
This commit is contained in:
+11
-2
@@ -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
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user