This commit is contained in:
itsmattkc
2018-11-19 11:17:13 +11:00
6 changed files with 31 additions and 13 deletions
-1
View File
@@ -115,7 +115,6 @@ void PreviewGenerator::parse_media() {
bool PreviewGenerator::retrieve_preview(const QString& hash) {
// returns true if generate_waveform must be run, false if we got all previews from cached files
if (retrieve_duration) {
return true;
}
+4 -4
View File
@@ -41,7 +41,7 @@
#include <QInputDialog>
#include <QRegExp>
QMainWindow* mainWindow;
MainWindow* mainWindow;
#define OLIVE_FILE_FILTER "Olive Project (*.ove)"
@@ -184,7 +184,7 @@ MainWindow::MainWindow(QWidget *parent) :
if (QFile::exists(autorecovery_filename)) {
if (QMessageBox::question(NULL, "Auto-recovery", "Olive didn't close properly and an autorecovery file was detected. Would you like to open it?", QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) {
updateTitle(autorecovery_filename);
panel_project->load_project();
panel_project->load_project(true);
}
}
autorecovery_timer.setInterval(60000);
@@ -487,7 +487,7 @@ void MainWindow::on_action_Open_Project_triggered()
QString fn = QFileDialog::getOpenFileName(this, "Open Project...", "", OLIVE_FILE_FILTER);
if (!fn.isEmpty() && can_close_project()) {
updateTitle(fn);
panel_project->load_project();
panel_project->load_project(false);
undo_stack.clear();
}
}
@@ -745,7 +745,7 @@ void MainWindow::load_recent_project() {
}
} else if (can_close_project()) {
updateTitle(recent_url);
panel_project->load_project();
panel_project->load_project(false);
}
}
+3 -3
View File
@@ -8,8 +8,6 @@ class EffectControls;
class Viewer;
class Timeline;
extern QMainWindow* mainWindow;
namespace Ui {
class MainWindow;
}
@@ -20,6 +18,7 @@ class MainWindow : public QMainWindow
public:
explicit MainWindow(QWidget *parent = 0);
void updateTitle(const QString &url);
~MainWindow();
public slots:
@@ -212,7 +211,8 @@ private:
bool save_project_as();
bool save_project();
bool can_close_project();
void updateTitle(const QString &url);
};
extern MainWindow* mainWindow;
#endif // MAINWINDOW_H
+21 -3
View File
@@ -848,7 +848,8 @@ bool Project::load_worker(QFile& f, QXmlStreamReader& stream, int type) {
}
}
} else if (type == LOAD_TYPE_URL) {
internal_proj_dir = QFileInfo(stream.readElementText()).absoluteDir();
internal_proj_url = stream.readElementText();
internal_proj_dir = QFileInfo(internal_proj_url).absoluteDir();
} else {
while (!(stream.name() == root_search && stream.isEndElement())) {
stream.readNext();
@@ -1188,7 +1189,7 @@ bool Project::load_worker(QFile& f, QXmlStreamReader& stream, int type) {
return true;
}
void Project::load_project() {
void Project::load_project(bool autorecovery) {
new_project();
/*LoadDialog ld;
@@ -1207,6 +1208,7 @@ void Project::load_project() {
*/
proj_dir = QFileInfo(project_url).absoluteDir();
internal_proj_dir = QFileInfo(project_url).absoluteDir();
internal_proj_url = project_url;
QXmlStreamReader stream(&file);
@@ -1240,6 +1242,22 @@ void Project::load_project() {
// find project's internal URL
cont = load_worker(file, stream, LOAD_TYPE_URL);
if (autorecovery) {
QString orig_filename = internal_proj_url;
int insert_index = internal_proj_url.lastIndexOf(".ove", -1, Qt::CaseInsensitive);
if (insert_index == -1) insert_index = internal_proj_url.length();
int counter = 1;
while (QFileInfo::exists(orig_filename)) {
orig_filename = internal_proj_url;
QString recover_text = "recovered";
if (counter > 1) {
recover_text += " " + QString::number(counter);
}
orig_filename.insert(insert_index, " (" + recover_text + ")");
counter++;
}
mainWindow->updateTitle(orig_filename);
}
// load folders first
if (cont) {
@@ -1290,7 +1308,7 @@ void Project::load_project() {
if (open_seq != NULL) set_sequence(open_seq);
update_ui(false);
mainWindow->setWindowModified(false);
mainWindow->setWindowModified(autorecovery);
for (int i=0;i<loaded_media_items.size();i++) {
start_preview_generator(loaded_media_items.at(i), loaded_media.at(i), true);
+2 -1
View File
@@ -62,7 +62,7 @@ public:
bool reveal_media(void* media, QTreeWidgetItem *parent = 0);
void new_project();
void load_project();
void load_project(bool autorecovery);
void save_project(bool autorecovery);
QTreeWidgetItem* new_folder(QString name);
@@ -106,6 +106,7 @@ private:
QString get_file_name_from_path(const QString &path);
QDir proj_dir;
QDir internal_proj_dir;
QString internal_proj_url;
private slots:
void rename_media(QTreeWidgetItem* item, int column);
void clear_recent_projects();
+1 -1
View File
@@ -1347,7 +1347,7 @@ void TimelineWidget::update_ghosts(const QPoint& mouse_pos, bool lock_frame) {
}
// apply changes to selections
if (panel_timeline->tool != TIMELINE_TOOL_SLIP && !panel_timeline->importing) {
if (panel_timeline->tool != TIMELINE_TOOL_SLIP && !panel_timeline->importing && !panel_timeline->creating) {
for (int i=0;i<sequence->selections.size();i++) {
Selection& s = sequence->selections[i];
if (panel_timeline->trim_target > -1) {