footage markers can now be deleted in footage viewer
This commit is contained in:
@@ -387,6 +387,10 @@ void MainWindow::show_debug_log() {
|
||||
void MainWindow::delete_slot() {
|
||||
if (panel_timeline->headers->hasFocus()) {
|
||||
panel_timeline->headers->delete_markers();
|
||||
} else if (panel_footage_viewer->headers->hasFocus()) {
|
||||
panel_footage_viewer->headers->delete_markers();
|
||||
} else if (panel_sequence_viewer->headers->hasFocus()) {
|
||||
panel_sequence_viewer->headers->delete_markers();
|
||||
} else if (panel_timeline->focused()) {
|
||||
panel_timeline->delete_selection(sequence->selections, false);
|
||||
} else if (panel_effect_controls->is_focused()) {
|
||||
|
||||
+2
-1
@@ -76,6 +76,8 @@ public:
|
||||
Sequence* seq;
|
||||
QVector<Marker>* marker_ref;
|
||||
|
||||
TimelineHeader* headers;
|
||||
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
|
||||
public slots:
|
||||
@@ -120,7 +122,6 @@ private:
|
||||
|
||||
void setup_ui();
|
||||
|
||||
TimelineHeader* headers;
|
||||
ResizableScrollBar* horizontal_bar;
|
||||
ViewerContainer* viewer_container;
|
||||
LabelSlider* current_timecode_slider;
|
||||
|
||||
+5
-5
@@ -870,15 +870,15 @@ void MoveMarkerAction::redo() {
|
||||
mainWindow->setWindowModified(true);
|
||||
}
|
||||
|
||||
DeleteMarkerAction::DeleteMarkerAction(Sequence* s) :
|
||||
seq(s),
|
||||
DeleteMarkerAction::DeleteMarkerAction(QVector<Marker> *m) :
|
||||
active_array(m),
|
||||
sorted(false),
|
||||
old_project_changed(mainWindow->isWindowModified())
|
||||
{}
|
||||
|
||||
void DeleteMarkerAction::undo() {
|
||||
for (int i=markers.size()-1;i>=0;i--) {
|
||||
seq->markers.insert(markers.at(i), copies.at(i));
|
||||
active_array->insert(markers.at(i), copies.at(i));
|
||||
}
|
||||
mainWindow->setWindowModified(old_project_changed);
|
||||
}
|
||||
@@ -887,14 +887,14 @@ void DeleteMarkerAction::redo() {
|
||||
for (int i=0;i<markers.size();i++) {
|
||||
// correct future removals
|
||||
if (!sorted) {
|
||||
copies.append(seq->markers.at(markers.at(i)));
|
||||
copies.append(active_array->at(markers.at(i)));
|
||||
for (int j=i+1;j<markers.size();j++) {
|
||||
if (markers.at(j) > markers.at(i)) {
|
||||
markers[j]--;
|
||||
}
|
||||
}
|
||||
}
|
||||
seq->markers.removeAt(markers.at(i));
|
||||
active_array->removeAt(markers.at(i));
|
||||
}
|
||||
sorted = true;
|
||||
mainWindow->setWindowModified(true);
|
||||
|
||||
+2
-2
@@ -411,12 +411,12 @@ private:
|
||||
|
||||
class DeleteMarkerAction : public QUndoCommand {
|
||||
public:
|
||||
DeleteMarkerAction(Sequence* s);
|
||||
DeleteMarkerAction(QVector<Marker>* m);
|
||||
void undo();
|
||||
void redo();
|
||||
QVector<int> markers;
|
||||
private:
|
||||
Sequence* seq;
|
||||
QVector<Marker>* active_array;
|
||||
QVector<Marker> copies;
|
||||
bool sorted;
|
||||
bool old_project_changed;
|
||||
|
||||
@@ -305,7 +305,7 @@ double TimelineHeader::get_zoom() {
|
||||
|
||||
void TimelineHeader::delete_markers() {
|
||||
if (selected_markers.size() > 0) {
|
||||
DeleteMarkerAction* dma = new DeleteMarkerAction(viewer->seq);
|
||||
DeleteMarkerAction* dma = new DeleteMarkerAction(viewer->marker_ref);
|
||||
for (int i=0;i<selected_markers.size();i++) {
|
||||
dma->markers.append(selected_markers.at(i));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user