diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-10-01 12:33:51 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-10-01 12:33:51 +0000 |
| commit | e3ab83869f4b74e485964720f941fed22ce035ea (patch) | |
| tree | 770ed571f9fc0c83cce2addb75148f60fd39c4dd /src/plugins/General/converter/converterdialog.cpp | |
| parent | 041067950f9a2f01ebb1a27db2e811a1167e508d (diff) | |
| download | qmmp-e3ab83869f4b74e485964720f941fed22ce035ea.tar.gz qmmp-e3ab83869f4b74e485964720f941fed22ce035ea.tar.bz2 qmmp-e3ab83869f4b74e485964720f941fed22ce035ea.zip | |
implemented converter settings, fixed build
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2364 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/converter/converterdialog.cpp')
| -rw-r--r-- | src/plugins/General/converter/converterdialog.cpp | 61 |
1 files changed, 59 insertions, 2 deletions
diff --git a/src/plugins/General/converter/converterdialog.cpp b/src/plugins/General/converter/converterdialog.cpp index 501d92ead..d2950961c 100644 --- a/src/plugins/General/converter/converterdialog.cpp +++ b/src/plugins/General/converter/converterdialog.cpp @@ -18,16 +18,18 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include <QSettings> +#include <QDesktopServices> +#include <QMenu> #include <qmmpui/playlistitem.h> #include <qmmpui/metadataformatter.h> +#include <qmmpui/filedialog.h> #include "converterdialog.h" ConverterDialog::ConverterDialog(QList <PlayListItem *> items, QWidget *parent) : QDialog(parent) { ui.setupUi(this); - MetaDataFormatter formatter("%p%if(%p&%t, - ,)%t - %l"); - foreach(PlayListItem *item , items) { QString text = formatter.parse(item); @@ -36,6 +38,13 @@ ConverterDialog::ConverterDialog(QList <PlayListItem *> items, QWidget *parent) listItem->setCheckState(Qt::Checked); ui.itemsListWidget->addItem(listItem); } + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("Converter"); + QString music_path = QDesktopServices::storageLocation(QDesktopServices::MusicLocation); + ui.outDirEdit->setText(settings.value("out_dir", music_path).toString()); + ui.outFileEdit->setText(settings.value("file_name","%p - %t").toString()); + settings.endGroup(); + createMenus(); } QStringList ConverterDialog::selectedUrls() const @@ -48,3 +57,51 @@ QStringList ConverterDialog::selectedUrls() const } return out; } + +void ConverterDialog::on_dirButton_clicked() +{ + QString dir = FileDialog::getExistingDirectory(this, tr("Choose a directory"), + ui.outDirEdit->text()); + if(!dir.isEmpty()) + ui.outDirEdit->setText(dir); +} + +void ConverterDialog::accept() +{ + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("Converter"); + settings.setValue("out_dir", ui.outDirEdit->text()); + settings.value("file_name", ui.outFileEdit->text()); + settings.endGroup(); + QDialog::accept(); +} + +void ConverterDialog::createMenus() +{ + QMenu *menu = new QMenu(this); + menu->addAction(tr("Artist"))->setData("%p"); + menu->addAction(tr("Album"))->setData("%a"); + menu->addAction(tr("Title"))->setData("%t"); + menu->addAction(tr("Track number"))->setData("%n"); + menu->addAction(tr("Two-digit track number"))->setData("%NN"); + menu->addAction(tr("Genre"))->setData("%g"); + menu->addAction(tr("Comment"))->setData("%c"); + menu->addAction(tr("Composer"))->setData("%C"); + menu->addAction(tr("Duration"))->setData("%l"); + menu->addAction(tr("Disc number"))->setData("%D"); + menu->addAction(tr("File name"))->setData("%f"); + menu->addAction(tr("File path"))->setData("%F"); + menu->addAction(tr("Year"))->setData("%y"); + menu->addAction(tr("Condition"))->setData("%if(%p&%t,%p - %t,%f)"); + ui.fileNameButton->setMenu(menu); + ui.fileNameButton->setPopupMode(QToolButton::InstantPopup); + connect(menu, SIGNAL(triggered(QAction *)), SLOT(addTitleString(QAction *))); +} + +void ConverterDialog::addTitleString(QAction *a) +{ + if (ui.outFileEdit->cursorPosition () < 1) + ui.outFileEdit->insert(a->data().toString()); + else + ui.outFileEdit->insert(" - "+a->data().toString()); +} |
