diff --git a/panels/project.cpp b/panels/project.cpp index 19d19baab..50f13b6ae 100644 --- a/panels/project.cpp +++ b/panels/project.cpp @@ -16,7 +16,10 @@ #include "mainwindow.h" #include "io/config.h" #include "playback/cacher.h" +<<<<<<< HEAD #include "dialogs/replaceclipmediadialog.h" +======= +>>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 #include #include @@ -111,12 +114,17 @@ void Project::replace_selected_file() { if (selected_items.size() == 1) { QTreeWidgetItem* item = selected_items.at(0); if (get_type_from_tree(item) == MEDIA_TYPE_FOOTAGE) { +<<<<<<< HEAD replace_media(item, 0); +======= + replace_media(item, ""); +>>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 } } } void Project::replace_media(QTreeWidgetItem* item, QString filename) { +<<<<<<< HEAD Media* m = get_footage_from_tree(item); QStringList files; @@ -169,6 +177,42 @@ void Project::replace_clip_media() { dialog.exec(); } } +======= + Media* m = get_media_from_tree(item); + + // close any clips currently using this media + QVector all_sequences = list_all_project_sequences(); + for (int i=0;iclip_count();j++) { + Clip* c = s->get_clip(j); + if (c != NULL && c->media == m && c->open) { + close_clip(c); + c->cacher->wait(); + } + } + } + + QStringList files; + if (filename.isEmpty()) { + files.append(QFileDialog::getOpenFileName(this, "Replace '" + item->text(0) + "'", "", "All Files (*)")); + } else { + files.append(filename); + } + process_file_list(NULL, files, NULL, item); + + for (int i=0;iclip_count();j++) { + Clip* c = s->get_clip(j); + if (c != NULL && c->media == m) { + c->refresh(); + } + } + } + + panel_timeline->redraw_all_clips(true); +>>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 } void Project::new_sequence(TimelineAction *ta, Sequence *s, bool open, QTreeWidgetItem* parent) { @@ -476,7 +520,11 @@ void Project::process_file_list(bool recursive, QStringList& files, QTreeWidgetI if (replace != NULL) { item = replace; +<<<<<<< HEAD m = get_footage_from_tree(replace); +======= + m = get_media_from_tree(replace); +>>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 m->reset(); } else { item = new_item(); @@ -484,7 +532,11 @@ void Project::process_file_list(bool recursive, QStringList& files, QTreeWidgetI } import_file(item, m, file, files.at(i)); +<<<<<<< HEAD set_footage_of_tree(item, m); +======= + set_media_of_tree(item, m); +>>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 if (recursive) { parent->addChild(item); @@ -562,7 +614,20 @@ int get_type_from_tree(QTreeWidgetItem* item) { } void Project::delete_media(QTreeWidgetItem* item) { +<<<<<<< HEAD delete get_media_from_tree(item); +======= + int type = get_type_from_tree(item); + switch (type) { + case MEDIA_TYPE_FOOTAGE: + delete get_media_from_tree(item); + break; + case MEDIA_TYPE_SEQUENCE: + Sequence* s = get_sequence_from_tree(item); + delete s; + break; + } +>>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 } void Project::delete_clips_using_selected_media() { @@ -576,7 +641,11 @@ void Project::delete_clips_using_selected_media() { if (c != NULL) { QList items = source_table->selectedItems(); for (int j=0;j>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 if (c->media == m) { ta->delete_clip(sequence, i); deleted = true; diff --git a/panels/project.h b/panels/project.h index f10514fd3..766c9eb40 100644 --- a/panels/project.h +++ b/panels/project.h @@ -77,7 +77,10 @@ public slots: void duplicate_selected(); void delete_clips_using_selected_media(); void replace_selected_file(); +<<<<<<< HEAD void replace_clip_media(); +======= +>>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 private: Ui::Project *ui; QTreeWidgetItem* new_item(); diff --git a/ui/sourcetable.cpp b/ui/sourcetable.cpp index 7b71e7f61..9232a4dde 100644 --- a/ui/sourcetable.cpp +++ b/ui/sourcetable.cpp @@ -36,10 +36,16 @@ void SourceTable::show_context_menu(const QPoint& pos) { } else { if (selectedItems().size() == 1) { // replace footage +<<<<<<< HEAD int type = get_type_from_tree(selectedItems().at(0)); if (type == MEDIA_TYPE_FOOTAGE) { QAction* replace_action = menu.addAction("Replace/Relink Media"); connect(replace_action, SIGNAL(triggered(bool)), panel_project, SLOT(replace_selected_file())); +======= + if (get_type_from_tree(selectedItems().at(0)) == MEDIA_TYPE_FOOTAGE) { + QAction* replace_action = menu.addAction("Replace/Relink Media"); + connect(replace_action, SIGNAL(triggered(bool)), panel_project, SLOT(replace_media())); +>>>>>>> b8b99901d8f71ebc1583cb9b7c49e26d38e01ec9 } if (type != MEDIA_TYPE_FOLDER) { QAction* replace_clip_media = menu.addAction("Replace Clips Using This Media");