Merge pull request #4521 from Korvox/master

Add an option to pull all music files recursively into transcoding
This commit is contained in:
John Maguire 2014-10-08 12:37:16 +02:00
commit aa3671b54a
3 changed files with 40 additions and 0 deletions

View File

@ -26,6 +26,7 @@
#include <QPushButton>
#include <QFileDialog>
#include <QDirIterator>
#include <QSettings>
#include <QDateTime>
@ -73,6 +74,7 @@ TranscodeDialog::TranscodeDialog(QWidget* parent)
QSettings s;
s.beginGroup(kSettingsGroup);
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();
for (int i = 0; i < ui_->format->count(); ++i) {
@ -97,6 +99,7 @@ TranscodeDialog::TranscodeDialog(QWidget* parent)
// Connect stuff
connect(ui_->add, SIGNAL(clicked()), SLOT(Add()));
connect(ui_->import, SIGNAL(clicked()), SLOT(Import()));
connect(ui_->remove, SIGNAL(clicked()), SLOT(Remove()));
connect(start_button_, SIGNAL(clicked()), SLOT(Start()));
connect(cancel_button_, SIGNAL(clicked()), SLOT(Cancel()));
@ -226,6 +229,31 @@ void TranscodeDialog::Add() {
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) {
for (const QString& filename : filenames) {
QString name = filename.section('/', -1, -1);

View File

@ -45,6 +45,7 @@ class TranscodeDialog : public QDialog {
private slots:
void Add();
void Import();
void Remove();
void Start();
void Cancel();
@ -74,6 +75,7 @@ class TranscodeDialog : public QDialog {
QPushButton* close_button_;
QString last_add_dir_;
QString last_import_dir_;
Transcoder* transcoder_;
int queued_;

View File

@ -88,6 +88,16 @@
</property>
</spacer>
</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>
</item>
</layout>