From 1aaf74788c1267e66df46247e4b5015fcf95fca2 Mon Sep 17 00:00:00 2001 From: Lukas Prediger Date: Sat, 6 Nov 2021 15:03:11 +0200 Subject: [PATCH] Added option to remove/replace originals in transcoder dialog (fixed). This is a squashed and fixed version of previous commits 6b6547095ac60b6e4c9113fffdfa9b5e945bb9b0 dd1393ea3ab5ae58aff8f8cc444aee3c8e4830fb --- src/transcoder/transcodedialog.cpp | 21 +++++++++++++++++++++ src/transcoder/transcodedialog.ui | 12 +++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/transcoder/transcodedialog.cpp b/src/transcoder/transcodedialog.cpp index 6ee7685c4..d006ef938 100644 --- a/src/transcoder/transcodedialog.cpp +++ b/src/transcoder/transcodedialog.cpp @@ -98,6 +98,9 @@ TranscodeDialog::TranscodeDialog(QWidget* parent) } } + ui_->remove_original->setChecked( + s.value("overwrite_existing", false).toBool()); + // Add a start button start_button_ = ui_->button_box->addButton(tr("Start transcoding"), QDialogButtonBox::ActionRole); @@ -183,6 +186,7 @@ void TranscodeDialog::Start() { QSettings s; s.beginGroup(kSettingsGroup); s.setValue("last_output_format", preset.codec_mimetype_); + s.setValue("overwrite_existing", ui_->remove_original->isChecked()); } void TranscodeDialog::Cancel() { @@ -206,6 +210,23 @@ void TranscodeDialog::JobComplete(const QUrl& input, const QString& output, UpdateStatusText(); UpdateProgress(); + + bool overwrite_existing = ui_->remove_original->isChecked(); + + if (success && overwrite_existing && input.isLocalFile()) { + QFileInfo input_fileinfo(input.toLocalFile()); + QFileInfo output_fileinfo(output); + + bool same_extension = input_fileinfo.suffix() == output_fileinfo.suffix(); + bool same_path = + input_fileinfo.absolutePath() == output_fileinfo.absolutePath(); + + QFile(input_fileinfo.absoluteFilePath()).remove(); + if (same_path && same_extension) { + QFile(output_fileinfo.absoluteFilePath()) + .rename(input_fileinfo.fileName()); + } + } } void TranscodeDialog::UpdateProgress() { diff --git a/src/transcoder/transcodedialog.ui b/src/transcoder/transcodedialog.ui index d4bd8115c..4029b3ea9 100644 --- a/src/transcoder/transcodedialog.ui +++ b/src/transcoder/transcodedialog.ui @@ -7,7 +7,7 @@ 0 0 499 - 448 + 482 @@ -165,6 +165,16 @@ + + + + If enabled the original files will be removed. If transcoded files have the same file extension and the destination is the same directory as the original files, the original files will be replaced. + + + Remove or replace original files + + +