#include "projectsettings.h" #include #include #include #include ProjectSettings::ProjectSettings(QWidget *parent) : QDialog(parent) { QDialogButtonBox* bb = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); QPushButton* okBtn = bb->button(QDialogButtonBox::Ok); okBtn->setAutoDefault(true); okBtn->setDefault(true); connect(okBtn, SIGNAL(clicked()), this, SLOT(accept())); QPushButton* cancelBtn = bb->button(QDialogButtonBox::Cancel); cancelBtn->setAutoDefault(false); cancelBtn->setDefault(false); connect(cancelBtn, SIGNAL(clicked()), this, SLOT(reject())); projectEdit = new QLineEdit(); subjectEdit = new QLineEdit(); experimentEdit = new QLineEdit(); experimenterEdit = new QLineEdit(); conditionEdit = new QLineEdit(); commentEdit = new QLineEdit(); subjectEdit = new QLineEdit(); setupEdit = new QLineEdit(); QFormLayout *l = new QFormLayout(); l->addRow(tr("Project name:"), projectEdit); l->addRow(tr("Experimenter:"), experimenterEdit); l->addRow(tr("Experiment name:"), experimentEdit); l->addRow(tr("Experimental condition:"), conditionEdit); l->addRow(tr("Subject id:"),subjectEdit); l->addRow(tr("Setup:"), setupEdit); l->addRow(tr("Comment:"), commentEdit); QVBoxLayout *vbox = new QVBoxLayout(); vbox->addLayout(l); vbox->addWidget(bb); this->setLayout(vbox); readMetadata(); } ProjectSettings::~ProjectSettings(){} void ProjectSettings::readMetadata() { metadata.read(settings); projectEdit->setText(metadata.project()); experimentEdit->setText(metadata.experiment()); experimenterEdit->setText(metadata.experimenter()); conditionEdit->setText(metadata.condition()); setupEdit->setText(metadata.setup()); commentEdit->setText(metadata.comment()); subjectEdit->setText(metadata.subject()); } void ProjectSettings::accept() { this->metadata.project(projectEdit->text()); this->metadata.experiment(experimentEdit->text()); this->metadata.condition(conditionEdit->text()); this->metadata.experimenter(experimenterEdit->text()); this->metadata.subject(subjectEdit->text()); this->metadata.comment(commentEdit->text()); this->metadata.setup(setupEdit->text()); metadata.store(settings); QDialog::accept(); } ProjectMetadata ProjectSettings::getMetadata() { return metadata; } void ProjectMetadata::read(QSettings &settings) { this->projectName = settings.value("project/name", "None").toString(); this->experimentName = settings.value("project/experiment", "None").toString(); this->cond = settings.value("project/condition", "None").toString(); this->experimenterName = settings.value("project/experimenter", "None").toString(); this->setupName = settings.value("project/setup", "None").toString(); this->cmmnt = settings.value("project/comment", "None").toString(); this->subj = settings.value("project/subject", "None").toString(); } void ProjectMetadata::store(QSettings &settings) { settings.setValue("project/name", this->projectName); settings.setValue("project/experiment", this->experimentName); settings.setValue("project/condition", this->cond); settings.setValue("project/experimenter", this->experimenterName); settings.setValue("project/subject", this->subj); settings.setValue("project/setup", this->setupName); settings.setValue("project/comment", this->cmmnt); }