soundboard/src/configdialog.cpp

42 lines
853 B
C++

#include "configdialog.h"
#include <QAbstractButton>
#include <QDialogButtonBox>
ConfigDialog::ConfigDialog(Config& conf, QWidget* parent) : QDialog(parent), mainConfig(conf) {
}
ConfigDialog::~ConfigDialog() {}
void ConfigDialog::accept() {
saveChanges();
QDialog::accept();
}
void ConfigDialog::reject() {
// nothing?
QDialog::reject();
}
void ConfigDialog::saveChanges() {
mainConfig.rootConfig = workingConfig;
mainConfig.save();
}
void ConfigDialog::dialogButtonPressed(QAbstractButton* btn) {
QDialogButtonBox::ButtonRole role = getButtonBox()->buttonRole(btn);
if(role == QDialogButtonBox::ButtonRole::ResetRole) {
// reset
loadConfig();
} else if(role == QDialogButtonBox::ButtonRole::ApplyRole) {
// apply
saveChanges();
}
}
void ConfigDialog::loadConfig() {
// make a copy
workingConfig = mainConfig.rootConfig;
}