diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-06 11:55:02 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-06 11:55:02 +0000 |
| commit | 3cd19f7132c91639fd71615c726990de36411999 (patch) | |
| tree | 76c516b26bdd65bbe3c163d97909ca2c1ab4e525 /src/qmmpui | |
| parent | 43fae6b9581b9b596eb71a8acdfce2fd877904a7 (diff) | |
| download | qmmp-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.cpp | 25 | ||||
| -rw-r--r-- | src/qmmpui/cueeditor_p.h | 7 | ||||
| -rw-r--r-- | src/qmmpui/detailsdialog.cpp | 5 |
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"); } |
