Added option to remove/replace originals in transcoder dialog (fixed).

This is a squashed and fixed version of previous commits
6b6547095a
dd1393ea3a
This commit is contained in:
Lukas Prediger 2021-11-06 15:03:11 +02:00 committed by John Maguire
parent 7ce9928779
commit 1aaf74788c
2 changed files with 32 additions and 1 deletions

View File

@ -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() {

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>499</width>
<height>448</height>
<height>482</height>
</rect>
</property>
<property name="windowTitle">
@ -165,6 +165,16 @@
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="remove_original">
<property name="toolTip">
<string>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.</string>
</property>
<property name="text">
<string>Remove or replace original files </string>
</property>
</widget>
</item>
</layout>
</widget>
</item>