Merge pull request #4521 from Korvox/master
Add an option to pull all music files recursively into transcoding
This commit is contained in:
commit
aa3671b54a
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
#include <QDirIterator>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
|
||||||
|
@ -73,6 +74,7 @@ TranscodeDialog::TranscodeDialog(QWidget* parent)
|
||||||
QSettings s;
|
QSettings s;
|
||||||
s.beginGroup(kSettingsGroup);
|
s.beginGroup(kSettingsGroup);
|
||||||
last_add_dir_ = s.value("last_add_dir", QDir::homePath()).toString();
|
last_add_dir_ = s.value("last_add_dir", QDir::homePath()).toString();
|
||||||
|
last_import_dir_ = s.value("last_import_dir", QDir::homePath()).toString();
|
||||||
|
|
||||||
QString last_output_format = s.value("last_output_format", "ogg").toString();
|
QString last_output_format = s.value("last_output_format", "ogg").toString();
|
||||||
for (int i = 0; i < ui_->format->count(); ++i) {
|
for (int i = 0; i < ui_->format->count(); ++i) {
|
||||||
|
@ -97,6 +99,7 @@ TranscodeDialog::TranscodeDialog(QWidget* parent)
|
||||||
|
|
||||||
// Connect stuff
|
// Connect stuff
|
||||||
connect(ui_->add, SIGNAL(clicked()), SLOT(Add()));
|
connect(ui_->add, SIGNAL(clicked()), SLOT(Add()));
|
||||||
|
connect(ui_->import, SIGNAL(clicked()), SLOT(Import()));
|
||||||
connect(ui_->remove, SIGNAL(clicked()), SLOT(Remove()));
|
connect(ui_->remove, SIGNAL(clicked()), SLOT(Remove()));
|
||||||
connect(start_button_, SIGNAL(clicked()), SLOT(Start()));
|
connect(start_button_, SIGNAL(clicked()), SLOT(Start()));
|
||||||
connect(cancel_button_, SIGNAL(clicked()), SLOT(Cancel()));
|
connect(cancel_button_, SIGNAL(clicked()), SLOT(Cancel()));
|
||||||
|
@ -226,6 +229,31 @@ void TranscodeDialog::Add() {
|
||||||
s.setValue("last_add_dir", last_add_dir_);
|
s.setValue("last_add_dir", last_add_dir_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TranscodeDialog::Import() {
|
||||||
|
QString path = QFileDialog::getExistingDirectory(
|
||||||
|
this, tr("Open a directory to import music from"),
|
||||||
|
last_import_dir_, QFileDialog::ShowDirsOnly);
|
||||||
|
|
||||||
|
if (path.isEmpty()) return;
|
||||||
|
|
||||||
|
QStringList filenames;
|
||||||
|
QStringList audioTypes = QString(FileView::kFileFilter).split(" ",
|
||||||
|
QString::SkipEmptyParts);
|
||||||
|
QDirIterator files(path, audioTypes, QDir::Files | QDir::Readable,
|
||||||
|
QDirIterator::Subdirectories);
|
||||||
|
|
||||||
|
while (files.hasNext()) {
|
||||||
|
filenames << files.next();
|
||||||
|
}
|
||||||
|
|
||||||
|
SetFilenames(filenames);
|
||||||
|
|
||||||
|
last_import_dir_ = path;
|
||||||
|
QSettings settings;
|
||||||
|
settings.beginGroup(kSettingsGroup);
|
||||||
|
settings.setValue("last_import_dir", last_import_dir_);
|
||||||
|
}
|
||||||
|
|
||||||
void TranscodeDialog::SetFilenames(const QStringList& filenames) {
|
void TranscodeDialog::SetFilenames(const QStringList& filenames) {
|
||||||
for (const QString& filename : filenames) {
|
for (const QString& filename : filenames) {
|
||||||
QString name = filename.section('/', -1, -1);
|
QString name = filename.section('/', -1, -1);
|
||||||
|
|
|
@ -45,6 +45,7 @@ class TranscodeDialog : public QDialog {
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void Add();
|
void Add();
|
||||||
|
void Import();
|
||||||
void Remove();
|
void Remove();
|
||||||
void Start();
|
void Start();
|
||||||
void Cancel();
|
void Cancel();
|
||||||
|
@ -74,6 +75,7 @@ class TranscodeDialog : public QDialog {
|
||||||
QPushButton* close_button_;
|
QPushButton* close_button_;
|
||||||
|
|
||||||
QString last_add_dir_;
|
QString last_add_dir_;
|
||||||
|
QString last_import_dir_;
|
||||||
|
|
||||||
Transcoder* transcoder_;
|
Transcoder* transcoder_;
|
||||||
int queued_;
|
int queued_;
|
||||||
|
|
|
@ -88,6 +88,16 @@
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="import">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Add all tracks from a directory and all its subdirectories</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Import...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
Loading…
Reference in New Issue