aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-02-06 11:55:02 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-02-06 11:55:02 +0000
commit3cd19f7132c91639fd71615c726990de36411999 (patch)
tree76c516b26bdd65bbe3c163d97909ca2c1ab4e525 /src/qmmpui
parent43fae6b9581b9b596eb71a8acdfce2fd877904a7 (diff)
downloadqmmp-3cd19f7132c91639fd71615c726990de36411999.tar.gz
qmmp-3cd19f7132c91639fd71615c726990de36411999.tar.bz2
qmmp-3cd19f7132c91639fd71615c726990de36411999.zip
feature to save cue file
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9689 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/cueeditor.cpp25
-rw-r--r--src/qmmpui/cueeditor_p.h7
-rw-r--r--src/qmmpui/detailsdialog.cpp5
3 files changed, 33 insertions, 4 deletions
diff --git a/src/qmmpui/cueeditor.cpp b/src/qmmpui/cueeditor.cpp
index ae93ec6e2..221abee94 100644
--- a/src/qmmpui/cueeditor.cpp
+++ b/src/qmmpui/cueeditor.cpp
@@ -27,15 +27,17 @@
#include "filedialog.h"
#include "ui_cueeditor.h"
-CueEditor::CueEditor(MetaDataModel *model, QWidget *parent) :
+CueEditor::CueEditor(MetaDataModel *model, const TrackInfo &info, QWidget *parent) :
QWidget(parent),
m_ui(new Ui::CueEditor),
- m_model(model)
+ m_model(model),
+ m_info(info)
{
m_ui->setupUi(this);
m_ui->plainTextEdit->setPlainText(model->cue());
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
m_lastDir = settings.value("CueEditor/last_dir", QDir::homePath()).toString();
+ m_editable = m_model && (m_model->dialogHints() & MetaDataModel::IsCueEditable) && !m_model->isReadOnly();
}
CueEditor::~CueEditor()
@@ -60,6 +62,11 @@ void CueEditor::save()
}
}
+bool CueEditor::isEditable() const
+{
+ return m_editable;
+}
+
void CueEditor::on_loadButton_clicked()
{
QString path = FileDialog::getOpenFileName(this, tr("Open CUE File"),
@@ -81,5 +88,19 @@ void CueEditor::on_deleteButton_clicked()
void CueEditor::on_saveAsButton_clicked()
{
+ QString path = FileDialog::getSaveFileName(this, tr("Save CUE File"),
+ m_lastDir + "/" + m_info.value(Qmmp::TITLE) + ".cue",
+ tr("CUE Files") +" (*.cue)");
+
+
+ if(!path.isEmpty())
+ {
+ m_lastDir = QFileInfo(path).absoluteDir().path();
+ QString data = m_ui->plainTextEdit->toPlainText().trimmed();
+ data.append(QChar::LineFeed);
+ QFile file(path);
+ file.open(QIODevice::WriteOnly);
+ file.write(data.toUtf8());
+ }
}
diff --git a/src/qmmpui/cueeditor_p.h b/src/qmmpui/cueeditor_p.h
index f0a9d4075..32c909af0 100644
--- a/src/qmmpui/cueeditor_p.h
+++ b/src/qmmpui/cueeditor_p.h
@@ -23,6 +23,8 @@
#include <QWidget>
+#include <qmmp/trackinfo.h>
+
namespace Ui {
class CueEditor;
}
@@ -34,10 +36,11 @@ class CueEditor : public QWidget
Q_OBJECT
public:
- explicit CueEditor(MetaDataModel *model, QWidget *parent = nullptr);
+ explicit CueEditor(MetaDataModel *model, const TrackInfo &info, QWidget *parent = nullptr);
~CueEditor();
void save();
+ bool isEditable() const;
private slots:
void on_loadButton_clicked();
@@ -48,6 +51,8 @@ private:
Ui::CueEditor *m_ui;
MetaDataModel *m_model;
QString m_lastDir;
+ bool m_editable;
+ TrackInfo m_info;
};
#endif // CUEEDITOR_P_H
diff --git a/src/qmmpui/detailsdialog.cpp b/src/qmmpui/detailsdialog.cpp
index 8e423305b..121f79067 100644
--- a/src/qmmpui/detailsdialog.cpp
+++ b/src/qmmpui/detailsdialog.cpp
@@ -111,10 +111,13 @@ void DetailsDialog::on_buttonBox_clicked(QAbstractButton *button)
void DetailsDialog::on_tabWidget_currentChanged(int index)
{
CoverEditor *coverEditor = nullptr;
+ CueEditor *cueEditor = nullptr;
if(qobject_cast<TagEditor *>(m_ui->tabWidget->widget(index)))
m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(m_metaDataModel && !m_metaDataModel->isReadOnly());
else if((coverEditor = qobject_cast<CoverEditor *>(m_ui->tabWidget->currentWidget())))
m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(coverEditor->isEditable());
+ else if((cueEditor = qobject_cast<CueEditor *>(m_ui->tabWidget->currentWidget())))
+ m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(cueEditor->isEditable());
else
m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(false);
}
@@ -214,7 +217,7 @@ void DetailsDialog::updatePage()
if(m_metaDataModel && (m_metaDataModel->dialogHints() & MetaDataModel::IsCueEditable))
{
- CueEditor *cueEditor = new CueEditor(m_metaDataModel, this);
+ CueEditor *cueEditor = new CueEditor(m_metaDataModel, m_info, this);
m_ui->tabWidget->addTab(cueEditor, "CUE");
}