Skip to content
Snippets Groups Projects
Commit 46ad2080 authored by Langella Olivier's avatar Langella Olivier
Browse files

wip: tandem preset edition

parent b6fbcfd6
No related branches found
No related tags found
No related merge requests found
......@@ -56,6 +56,9 @@ const QString TandemParametersFile::getFilename() const {
return _param_source.fileName();
}
const QDir TandemParametersFile::getAbsoluteDir() const {
return _param_source.absoluteDir();
}
const QString TandemParametersFile::getAbsoluteFilePath() const {
return _param_source.absoluteFilePath();
}
......
......@@ -45,6 +45,7 @@ public:
const QString getMethodName() const;
const QString getFilename() const;
const QDir getAbsoluteDir() const;
const QString getAbsoluteFilePath() const;
bool exists() const;
......
......@@ -64,12 +64,16 @@ EditTandemPresetDialog::~EditTandemPresetDialog()
}
}
void EditTandemPresetDialog::setTandemParametersFiles(const TandemParametersFile & tandem_preset_file) {
void EditTandemPresetDialog::setTandemParametersFile(const TandemParametersFile & tandem_preset_file) {
if (tandem_preset_file.exists()) {
_p_tandem_preset_file = new TandemParametersFile( tandem_preset_file);
_preset_directory = _p_tandem_preset_file->getAbsoluteDir().absolutePath();
} else {
_p_tandem_preset_file = new TandemParametersFile(":/tandem/ressources/model/QExactive_analysis_FDR_nosemi.xml");
QSettings settings;
_preset_directory = settings.value("path/tandemrun_preset_directory", "").toString();
}
_tandem_params = _p_tandem_preset_file->getTandemParameters();
......@@ -87,21 +91,17 @@ void EditTandemPresetDialog::doCopy() {
else {
delete _p_tandem_preset_file;
}
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
_p_tandem_preset_file = new TandemParametersFile(QString("%1/untitled.xml").arg(default_preset_location));
_p_tandem_preset_file = new TandemParametersFile(QString("%1/untitled.xml").arg(_preset_directory));
}
void EditTandemPresetDialog::doSelectDir() {
try {
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
QString directory = QFileDialog::getExistingDirectory(this,tr("Choose preset directory"),default_preset_location );
QString directory = QFileDialog::getExistingDirectory(this,tr("Choose preset directory"),_preset_directory );
if (!directory.isEmpty() && ! directory.isNull()) {
settings.setValue("path/tandemrun_preset_directory", directory);
_preset_directory = directory;
fillPresetComboBox();
}
......@@ -115,7 +115,6 @@ void EditTandemPresetDialog::doSelectDir() {
void EditTandemPresetDialog::doSave() {
readUi();
if (_p_tandem_preset_file == nullptr) {
throw pappso::PappsoException(QObject::tr("_p_tandem_preset_file == nullptr"));
}
_p_tandem_preset_file->setTandemParameters(_tandem_params);
......@@ -132,9 +131,6 @@ void EditTandemPresetDialog::doLoad() {
else {
delete _p_tandem_preset_file;
}
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
_p_tandem_preset_file = new TandemParametersFile(
ui->preset_combo_box->itemData(index).value<QString>());
......@@ -142,14 +138,20 @@ void EditTandemPresetDialog::doLoad() {
populate();
}
}
const TandemParametersFile & EditTandemPresetDialog::getTandemParametersFile() const {
if (_p_tandem_preset_file == nullptr) {
throw pappso::PappsoException(QObject::tr("_p_tandem_preset_file == nullptr"));
}
if (!_p_tandem_preset_file->exists()) {
throw pappso::PappsoException(QObject::tr("preset file %1 does not exists").arg(_p_tandem_preset_file->getAbsoluteFilePath()));
}
return *_p_tandem_preset_file;
}
void EditTandemPresetDialog::fillPresetComboBox() {
ui->preset_combo_box->clear();
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
QString default_preset_name = _tandem_params.getMethodName();
QDir preset_dir(default_preset_location);
QDir preset_dir(_preset_directory);
QStringList filters;
filters << "*.xml";
preset_dir.setNameFilters(filters);
......@@ -207,7 +209,7 @@ void EditTandemPresetDialog::doHelp() {
{
html_doc.setFileName(":/tandem/resources/html_doc/sfmme.html");
}
if (html_doc.open(QFile::ReadOnly | QFile::Text)) {
QTextStream in(&html_doc);
......@@ -283,3 +285,28 @@ void EditTandemPresetDialog::populate() {
qDebug() << "EditTandemPresetDialog::populate end";
}
void EditTandemPresetDialog::done(int r)
{
if(QDialog::Accepted == r) // ok was pressed
{
readUi();
TandemParameters ref_params = _p_tandem_preset_file->getTandemParameters();
if(ref_params.equals(_tandem_params)) // validate the data somehow
{
QDialog::done(r);
return;
}
else
{
QMessageBox::warning(this,
tr("Save parameters"), tr("Parameters modified but not saved.\nPlease save it before pressing ok or cancel edition"));
return;
}
}
else // cancel, close or exc was pressed
{
QDialog::done(r);
return;
}
}
......@@ -45,7 +45,12 @@ public:
explicit EditTandemPresetDialog(QWidget * parent);
~EditTandemPresetDialog();
void setTandemParametersFiles(const TandemParametersFile & tandem_preset_file);
void setTandemParametersFile(const TandemParametersFile & tandem_preset_file);
const TandemParametersFile & getTandemParametersFile() const;
protected:
void done(int r) override;
public slots:
void doHelp ();
......@@ -63,6 +68,7 @@ private:
Ui::EditTandemPresetView *ui;
TandemParametersFile * _p_tandem_preset_file = nullptr;
TandemParameters _tandem_params;
QString _preset_directory;
};
#endif // EDITTANDEMPRESETDIALOG_H
......@@ -87,11 +87,14 @@ void TandemRunDialog::setPresetName(QString preset_name) {
qDebug() << "TandemRunDialog::setPresetName end";
}
void TandemRunDialog::fillPresetComboBox() {
qDebug() << "TandemRunDialog::fillPresetComboBox begin";
ui->preset_combobox->clear();
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
QString default_preset_name = settings.value("tandem/preset_name", "").toString();
qDebug() << "TandemRunDialog::fillPresetComboBox default_preset_location=" << default_preset_location;
qDebug() << "TandemRunDialog::fillPresetComboBox default_preset_name=" << default_preset_name;
QDir preset_dir(default_preset_location);
QStringList filters;
filters << "*.xml";
......@@ -148,24 +151,30 @@ void TandemRunDialog::editPresets() {
if (_p_preset_dialog == nullptr) {
_p_preset_dialog = new EditTandemPresetDialog(this);
}
_p_preset_dialog->setTandemParametersFiles(TandemParametersFile(ui->preset_combobox->itemData(ui->preset_combobox->currentIndex()).value<QString>()));
_p_preset_dialog->setTandemParametersFile(TandemParametersFile(ui->preset_combobox->itemData(ui->preset_combobox->currentIndex()).value<QString>()));
_p_preset_dialog->show();
#if QT_VERSION >= 0x050000
// Qt5 code
connect(_p_preset_dialog, &EditTandemPresetDialog::accept, this, &TandemRunDialog::acceptPresetEdit);
connect(_p_preset_dialog, &EditTandemPresetDialog::reject, this, &TandemRunDialog::rejectPresetEdit);
connect(_p_preset_dialog, &EditTandemPresetDialog::accepted, this, &TandemRunDialog::acceptPresetEdit);
connect(_p_preset_dialog, &EditTandemPresetDialog::rejected, this, &TandemRunDialog::rejectPresetEdit);
#else
// Qt4 code
#endif
}
void TandemRunDialog::rejectPresetEdit() {
fillPresetComboBox();
}
void TandemRunDialog::acceptPresetEdit() {
TandemParametersFile param_file = _p_preset_dialog->getTandemParametersFile();
QSettings settings;
settings.setValue("path/tandemrun_preset_directory", param_file.getAbsoluteDir().absolutePath());
settings.setValue("tandem/preset_name", param_file.getMethodName());
fillPresetComboBox();
}
void TandemRunDialog::selectOutputDirectory() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment