diff options
| -rw-r--r-- | src/qmmp/decoder.cpp | 25 | ||||
| -rw-r--r-- | src/qmmp/decoder.h | 2 | ||||
| -rw-r--r-- | src/ui/mainwindow.cpp | 5 |
3 files changed, 10 insertions, 22 deletions
diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp index bd77408a5..952a21db2 100644 --- a/src/qmmp/decoder.cpp +++ b/src/qmmp/decoder.cpp @@ -265,28 +265,13 @@ FileTag *Decoder::createTag(const QString& source) return 0; } -QString Decoder::filter() +QStringList Decoder::filters() { - QString allflt(tr("All Supported Bitstreams (")); - QString flt; - checkFactories(); - DecoderFactory *fact; - foreach(fact, *factories) - { - if (isEnabled(fact)) - { - allflt +=fact->properties().filter.toLower() +" "; - flt += fact->properties().description + " (" + fact->properties().filter + ")"; - flt += ";;"; - } - } - if (!flt.isEmpty ()) - flt = flt.left(flt.size ()-2); - - allflt += ");;"; - - return allflt + flt; + QStringList filters; + foreach(DecoderFactory *fact, *factories) + filters << fact->properties().description + " (" + fact->properties().filter + ")"; + return filters; } QStringList Decoder::nameFilters() diff --git a/src/qmmp/decoder.h b/src/qmmp/decoder.h index 0522679ad..5d413f1b4 100644 --- a/src/qmmp/decoder.h +++ b/src/qmmp/decoder.h @@ -158,7 +158,7 @@ public: static DecoderFactory *findByMime(const QString&); static DecoderFactory *findByContent(QIODevice *); static FileTag *createTag(const QString&); - static QString filter(); + static QStringList filters(); static QStringList nameFilters(); static QList<DecoderFactory*> *decoderFactories(); static QStringList decoderFiles(); diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 6641ccb4b..1c63dba54 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -442,9 +442,12 @@ void MainWindow::addDir() void MainWindow::addFile() { + QStringList filters; + filters << tr("All Supported Bitstreams")+" (" + Decoder::nameFilters().join (" ") +")"; + filters << Decoder::filters(); FileDialog::popup(this, FileDialog::AddDirsFiles, &m_lastDir, m_playListModel, SLOT(addFileList(const QStringList&)), - tr("Select one or more files to open"), Decoder::filter()); + tr("Select one or more files to open"), filters.join(";;")); } void MainWindow::clear() |
