mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-03-15 03:45:23 +00:00
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@787 6778bc44-b910-0410-a7a0-be141de4315d
95 lines
3.3 KiB
C++
95 lines
3.3 KiB
C++
#include "QProjectMConfigDialog.hpp"
|
|
#include <QtDebug>
|
|
|
|
|
|
QProjectMConfigDialog::QProjectMConfigDialog(const std::string & configFile, QProjectMWidget * qprojectMWidget, QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f), _configFile(configFile), _qprojectMWidget(qprojectMWidget) {
|
|
|
|
_ui.setupUi(this);
|
|
connect(_ui.buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonBoxHandler(QAbstractButton*)));
|
|
connect(this, SIGNAL(projectM_Reset()), _qprojectMWidget, SLOT(resetProjectM()));
|
|
populateTextureSizeComboBox();
|
|
|
|
loadConfig();
|
|
}
|
|
|
|
void QProjectMConfigDialog::buttonBoxHandler(QAbstractButton * button) {
|
|
|
|
switch (_ui.buttonBox->standardButton(button)) {
|
|
case QDialogButtonBox::Close:
|
|
this->hide();
|
|
break;
|
|
case QDialogButtonBox::Apply:
|
|
saveConfig();
|
|
qDebug() << "emitting!";
|
|
emit(projectM_Reset());
|
|
break;
|
|
case QDialogButtonBox::Reset:
|
|
loadConfig();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void QProjectMConfigDialog::saveConfig() {
|
|
qDebug() << "SAVE config";
|
|
|
|
projectM::Settings settings = _qprojectMWidget->getQProjectM()->settings();
|
|
|
|
settings.meshX = _ui.meshSizeWidthSpinBox->value();
|
|
settings.meshY = _ui.meshSizeHeightSpinBox->value();
|
|
settings.windowHeight = _ui.windowHeightSpinBox->value();
|
|
settings.windowWidth = _ui.windowWidthSpinBox->value();
|
|
settings.titleFontURL = _ui.titleFontPathLineEdit->text().toStdString();
|
|
settings.menuFontURL = _ui.menuFontPathLineEdit->text().toStdString();
|
|
settings.presetURL = _ui.startupPlaylistLineEdit->text().toStdString();
|
|
settings.textureSize = _ui.textureSizeComboBox->itemData(_ui.textureSizeComboBox->currentIndex()).toInt();
|
|
settings.smoothPresetDuration = _ui.smoothPresetDurationSpinBox->value();
|
|
settings.presetDuration = _ui.presetDurationSpinBox->value();
|
|
settings.fps = _ui.maxFPSSpinBox->value();
|
|
settings.aspectCorrection = _ui.useAspectCorrectionCheckBox->checkState() == Qt::Checked;
|
|
settings.beatSensitivity = _ui.beatSensitivitySpinBox->value();
|
|
|
|
projectM::writeConfig(_configFile, settings);
|
|
|
|
qDebug() << "save end";
|
|
}
|
|
|
|
|
|
|
|
void QProjectMConfigDialog::populateTextureSizeComboBox() {
|
|
|
|
|
|
for (int textureSize = 1<<1; textureSize < 1<<12; textureSize<<=1) {
|
|
_ui.textureSizeComboBox->addItem(QString("%1").arg(textureSize), textureSize);
|
|
}
|
|
}
|
|
|
|
void QProjectMConfigDialog::loadConfig() {
|
|
|
|
qDebug() << "load config";
|
|
const projectM::Settings & settings =(* _qprojectMWidget->getQProjectM()).settings();
|
|
|
|
_ui.meshSizeWidthSpinBox->setValue(settings.meshX);
|
|
_ui.meshSizeHeightSpinBox->setValue(settings.meshY);
|
|
|
|
_ui.titleFontPathLineEdit->setText(settings.titleFontURL.c_str());
|
|
_ui.menuFontPathLineEdit->setText(settings.menuFontURL.c_str());
|
|
|
|
_ui.startupPlaylistLineEdit->setText(settings.presetURL.c_str());
|
|
_ui.useAspectCorrectionCheckBox->setCheckState(settings.aspectCorrection ? Qt::Checked : Qt::Unchecked);
|
|
_ui.maxFPSSpinBox->setValue(settings.fps);
|
|
_ui.beatSensitivitySpinBox->setValue(settings.beatSensitivity);
|
|
_ui.windowHeightSpinBox->setValue(settings.windowHeight);
|
|
_ui.windowWidthSpinBox->setValue(settings.windowWidth);
|
|
|
|
_ui.textureSizeComboBox->insertItem(0, QString("%1").arg(settings.textureSize), settings.textureSize);
|
|
_ui.textureSizeComboBox->setCurrentIndex(0);
|
|
|
|
_ui.smoothPresetDurationSpinBox->setValue(settings.smoothPresetDuration);
|
|
_ui.presetDurationSpinBox->setValue(settings.presetDuration);
|
|
|
|
qDebug() << "load config END";
|
|
|
|
}
|