diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-12-01 21:18:45 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-12-01 21:18:45 +0000 |
| commit | cd52bf36ba8ffb69dffc0c2ce643505956972191 (patch) | |
| tree | 7005ae960d804458939d58bb6d07a3b1abdcd235 /src/qmmpui/uihelper.cpp | |
| parent | f3a877d68f0899073007fea451b946583995805e (diff) | |
| download | qmmp-cd52bf36ba8ffb69dffc0c2ce643505956972191.tar.gz qmmp-cd52bf36ba8ffb69dffc0c2ce643505956972191.tar.bz2 qmmp-cd52bf36ba8ffb69dffc0c2ce643505956972191.zip | |
feature to select playlist format from file dialog
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9124 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/uihelper.cpp')
| -rw-r--r-- | src/qmmpui/uihelper.cpp | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/src/qmmpui/uihelper.cpp b/src/qmmpui/uihelper.cpp index b566fc98d..1edcd9fae 100644 --- a/src/qmmpui/uihelper.cpp +++ b/src/qmmpui/uihelper.cpp @@ -24,6 +24,8 @@ #include <QAction> #include <QSettings> #include <QApplication> +#include <QMessageBox> +#include <QFileInfo> #include <qmmp/soundcore.h> #include <qmmp/metadatamanager.h> #include "filedialog.h" @@ -195,16 +197,44 @@ void UiHelper::loadPlayList(QWidget *parent, PlayListModel *model) void UiHelper::savePlayList(QWidget *parent, PlayListModel *model) { - if(PlayListParser::nameFilters().isEmpty()) + QStringList nameFilters = PlayListParser::nameFilters(); + + if(nameFilters.isEmpty()) { qWarning("UiHelper: There is no registered playlist parsers"); return; } - QString ext = PlayListParser::nameFilters().at(0); - ext.replace("*.", "."); //extract extension from name filter - QString mask = tr("Playlist Files") + " (" + PlayListParser::nameFilters().join(" ") + ")"; - QString f_name = FileDialog::getSaveFileName(parent, tr("Save Playlist"),m_lastDir + "/" + - model->name() + ext,mask); + + QStringList filters; + filters << tr("Playlist Files") + " (" + nameFilters.join(" ") + ")"; + filters << PlayListParser::filters(); + QString selectedFilter = filters.at(1); + QString f_name = FileDialog::getSaveFileName(parent, tr("Save Playlist"), m_lastDir + "/" + + model->name(), filters.join(";;"), &selectedFilter); + + if(f_name.isEmpty()) + return; + + if(!PlayListParser::isPlayList(f_name)) //append selected extension + { + QStringList selectedFilters = selectedFilter.section("(", 1).remove(")").split(" "); + if(selectedFilters.isEmpty()) + return; + + QString ext = selectedFilters.first().remove("*"); //use first extension + f_name.append(ext); + + QFileInfo info(f_name); + + if(info.exists()) + { + if (QMessageBox::question(parent, tr("Save Playlist"), tr("%1 already exists.\nDo you want to replace it?") + .arg(info.fileName()), QMessageBox::Ok | QMessageBox::Cancel) != QMessageBox::Ok) + { + return; + } + } + } if (!f_name.isEmpty()) { |
