96 lines
3.5 KiB
C++
96 lines
3.5 KiB
C++
#include "projectsettings.h"
|
|
#include <QFormLayout>
|
|
#include <QDialogButtonBox>
|
|
#include <QPushButton>
|
|
#include <iostream>
|
|
|
|
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);
|
|
}
|