cambio a un vector de CueTrack en vex de CueTrackWidget.
CueTrackListWidget ahora posee el contenedor de CueTracks y muestra un QTableWidget con info de las CueTracks.
This commit is contained in:
parent
3b98be8b14
commit
84702c5e44
15 changed files with 265 additions and 652 deletions
139
src/editcuetrackwidget.cpp
Normal file
139
src/editcuetrackwidget.cpp
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
#include "editcuetrackwidget.h"
|
||||
#include <QLineEdit>
|
||||
#include <QFormLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <QFileDialog>
|
||||
|
||||
EditCueTrackWidget::EditCueTrackWidget(CueTrack *cueTrack, QWidget *parent)
|
||||
: QDialog(parent) {
|
||||
setupUi();
|
||||
connectSignals();
|
||||
this->cueTrack = cueTrack;
|
||||
loadCueTrack(*cueTrack);
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::setupUi() {
|
||||
userNumberSpin = new QSpinBox(this);
|
||||
nameEdit = new QLineEdit(this);
|
||||
audioLayerSpin = new QSpinBox(this);
|
||||
audioLayerSpin->setRange(0, MAX_LAYERS - 1);
|
||||
filePathEdit = new QLineEdit(this);
|
||||
statusCombo = new QComboBox(this);
|
||||
volumeSpin = new QDoubleSpinBox(this);
|
||||
volumeSpin->setRange(0, 100.01f);
|
||||
panSpin = new QDoubleSpinBox(this);
|
||||
pitchSpin = new QDoubleSpinBox(this);
|
||||
bus1Spin = new QDoubleSpinBox(this);
|
||||
bus1Spin->setRange(0, 100.01f);
|
||||
bus2Spin = new QDoubleSpinBox(this);
|
||||
bus2Spin->setRange(0, 100.01f);
|
||||
fadeInSpin = new QSpinBox(this);
|
||||
fadeOutSpin = new QSpinBox(this);
|
||||
waitInSpin = new QSpinBox(this);
|
||||
waitOutSpin = new QSpinBox(this);
|
||||
stopAtEndCheck = new QCheckBox(this);
|
||||
descriptionEdit = new QLineEdit(this);
|
||||
entryPointSpin = new QSpinBox(this);
|
||||
exitPointSpin = new QSpinBox(this);
|
||||
statusCombo->addItem("Stopped");
|
||||
statusCombo->addItem("Paused");
|
||||
statusCombo->addItem("PlayingOnce");
|
||||
statusCombo->addItem("PlayingLoop");
|
||||
statusCombo->addItem("Iddle");
|
||||
statusCombo->addItem("PlayingFolder");
|
||||
statusCombo->addItem("PlayingFolderLoop");
|
||||
statusCombo->addItem("PlayingFolderRandom");
|
||||
statusCombo->addItem("PlayingFolderRandomLoop");
|
||||
|
||||
browseButton = new QPushButton("Browse...", this);
|
||||
saveButton = new QPushButton("Save", this);
|
||||
cancelButton = new QPushButton("Cancel", this);
|
||||
|
||||
QFormLayout *layout = new QFormLayout(this);
|
||||
layout->addRow("User Number", userNumberSpin);
|
||||
layout->addRow("Name", nameEdit);
|
||||
layout->addRow("Audio Layer", audioLayerSpin);
|
||||
layout->addRow("File Path", filePathEdit);
|
||||
layout->addRow(browseButton);
|
||||
layout->addRow("Status", statusCombo);
|
||||
layout->addRow("Fade In", fadeInSpin);
|
||||
layout->addRow("Fade Out", fadeOutSpin);
|
||||
layout->addRow("Wait In", waitInSpin);
|
||||
layout->addRow("Wait Out", waitOutSpin);
|
||||
layout->addRow("Stop At End", stopAtEndCheck);
|
||||
layout->addRow("Volume", volumeSpin);
|
||||
layout->addRow("Bus 1", bus1Spin);
|
||||
layout->addRow("Bus 2", bus2Spin);
|
||||
layout->addRow("Pan", panSpin);
|
||||
layout->addRow("Pitch", pitchSpin);
|
||||
layout->addRow("Entry Point", entryPointSpin);
|
||||
layout->addRow("Exit Point", exitPointSpin);
|
||||
layout->addRow("Description", descriptionEdit);
|
||||
layout->addRow(saveButton);
|
||||
layout->addRow(cancelButton);
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::loadCueTrack(CueTrack cueTrack) {
|
||||
filePathEdit->setText(cueTrack.filePath.data());
|
||||
volumeSpin->setValue(cueTrack.volume);
|
||||
panSpin->setValue(cueTrack.pan);
|
||||
pitchSpin->setValue(cueTrack.pitch);
|
||||
bus1Spin->setValue(cueTrack.bus1);
|
||||
bus2Spin->setValue(cueTrack.bus2);
|
||||
fadeInSpin->setValue(cueTrack.fadeIn);
|
||||
fadeOutSpin->setValue(cueTrack.fadeOut);
|
||||
waitInSpin->setValue(cueTrack.waitIn);
|
||||
waitOutSpin->setValue(cueTrack.waitOut);
|
||||
stopAtEndCheck->setChecked(cueTrack.stopAtEnd);
|
||||
nameEdit->setText(cueTrack.name.data());
|
||||
descriptionEdit->setText(cueTrack.description.data());
|
||||
userNumberSpin->setValue(cueTrack.userNumber);
|
||||
entryPointSpin->setValue(cueTrack.entryPoint);
|
||||
exitPointSpin->setValue(cueTrack.exitPoint);
|
||||
statusCombo->setCurrentIndex(statusCombo->findText(statusToString(cueTrack.status)));
|
||||
audioLayerSpin->setValue(cueTrack.audioLayer);
|
||||
}
|
||||
|
||||
CueTrack EditCueTrackWidget::saveCueTrack() {
|
||||
CueTrack cueTrack;
|
||||
cueTrack.userNumber = userNumberSpin->value();
|
||||
cueTrack.name.append(nameEdit->text().toUtf8().constData());
|
||||
cueTrack.audioLayer = audioLayerSpin->value();
|
||||
cueTrack.filePath.append(filePathEdit->text().toUtf8().constData());
|
||||
cueTrack.status = static_cast<Status>(statusCombo->currentIndex());
|
||||
cueTrack.fadeIn = fadeInSpin->value();
|
||||
cueTrack.fadeOut = fadeOutSpin->value();
|
||||
cueTrack.waitIn = waitInSpin->value();
|
||||
cueTrack.waitOut = waitOutSpin->value();
|
||||
cueTrack.stopAtEnd = stopAtEndCheck->isChecked();
|
||||
cueTrack.entryPoint = entryPointSpin->value();
|
||||
cueTrack.exitPoint = exitPointSpin->value();
|
||||
cueTrack.volume = volumeSpin->value();
|
||||
cueTrack.bus1 = bus1Spin->value();
|
||||
cueTrack.bus2 = bus2Spin->value();
|
||||
cueTrack.pan = panSpin->value();
|
||||
cueTrack.pitch = pitchSpin->value();
|
||||
cueTrack.description.append(descriptionEdit->text().toUtf8().constData());
|
||||
return cueTrack;
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::accept() {
|
||||
*cueTrack = saveCueTrack();
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::connectSignals() {
|
||||
connect(saveButton, &QPushButton::clicked, this, &EditCueTrackWidget::accept);
|
||||
connect(cancelButton, &QPushButton::clicked, this, &EditCueTrackWidget::reject);
|
||||
connect(browseButton, &QPushButton::clicked, this, &EditCueTrackWidget::onBrowseButtonClicked);
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::onBrowseButtonClicked() {
|
||||
QString filePath = QFileDialog::getOpenFileName(this, tr("Select File"), Settings::getInstance()->getPathMedia(), tr("Audio Files (*.mp3 *.wav *.flac)"));
|
||||
if (!filePath.isEmpty()) {
|
||||
filePathEdit->setText(filePath);
|
||||
QDir dir;
|
||||
Settings::getInstance()->setPathMedia(dir.absoluteFilePath(filePath));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue