Files
moldyn/mathmech/mainwindow.cpp
2013-08-11 17:45:02 +04:00

928 lines
29 KiB
C++

#include <QFileDialog>
#include <QDir>
#include "aboutwindow.h"
#include "agglwindow.h"
#include "aglallwindow.h"
#include "atomtypeswindow.h"
#include "settingswindow.h"
#include "clear_items.h"
#include "start_events.h"
#include "statgengraphwindow.h"
#include "update_fields.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
clear_items(new Clear_items(this)),
update_fields(new Update_fields(this))
{
ui->setupUi(this);
statgen_crit = new float[10];
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Ready"));
createActions();
start_events = new Start_events(this);
SettingsWindow *settingsWindow;
settingsWindow = new SettingsWindow(this);
delete settingsWindow;
}
MainWindow::~MainWindow()
{
delete ui;
delete clear_items;
delete start_events;
delete update_fields;
delete statgen_crit;
}
// signals
void MainWindow::on_trj_checkBox_log_stateChanged(int arg1)
{
if (arg1 == 0)
{
ui->trj_lineEdit_log->setDisabled(true);
ui->trj_pushButton_log->setDisabled(true);
}
else if (arg1 == 2)
{
ui->trj_lineEdit_log->setEnabled(true);
ui->trj_pushButton_log->setEnabled(true);
}
}
void MainWindow::on_statgen_checkBox_depth_stateChanged(int arg1)
{
if (arg1 == 0)
ui->statgen_spinBox_depth->setDisabled(true);
else if (arg1 == 2)
ui->statgen_spinBox_depth->setEnabled(true);
}
void MainWindow::on_statgen_checkBox_log_stateChanged(int arg1)
{
if (arg1 == 0)
{
ui->statgen_lineEdit_log->setDisabled(true);
ui->statgen_pushButton_log->setDisabled(true);
}
else if (arg1 == 2)
{
ui->statgen_lineEdit_log->setEnabled(true);
ui->statgen_pushButton_log->setEnabled(true);
}
}
void MainWindow::on_statgen_checkBox_atoms1_stateChanged(int arg1)
{
if (arg1 == 0)
{
ui->statgen_spinBox_atoms1->setDisabled(true);
ui->statgen_checkBox_atoms2->setCheckState(Qt::Unchecked);
ui->statgen_checkBox_atoms2->setDisabled(true);
}
else if (arg1 == 2)
{
ui->statgen_spinBox_atoms1->setEnabled(true);
ui->statgen_checkBox_atoms2->setEnabled(true);
}
update_interaction();
}
void MainWindow::on_statgen_checkBox_atoms2_stateChanged(int arg1)
{
if (arg1 == 0)
{
ui->statgen_spinBox_atoms2->setDisabled(true);
ui->statgen_checkBox_atoms3->setCheckState(Qt::Unchecked);
ui->statgen_checkBox_atoms3->setDisabled(true);
}
else if (arg1 == 2)
{
ui->statgen_spinBox_atoms2->setEnabled(true);
ui->statgen_checkBox_atoms3->setEnabled(true);
}
update_interaction();
}
void MainWindow::on_statgen_checkBox_atoms3_stateChanged(int arg1)
{
if (arg1 == 0)
ui->statgen_spinBox_atoms3->setDisabled(true);
else if (arg1 == 2)
ui->statgen_spinBox_atoms3->setEnabled(true);
update_interaction();
}
void MainWindow::on_statgen_checkBox_anal_stateChanged(int arg1)
{
if (arg1 == 0)
ui->statgen_doubleSpinBox_anal->setDisabled(true);
else if (arg1 == 2)
ui->statgen_doubleSpinBox_anal->setEnabled(true);
}
void MainWindow::on_envir_checkBox_log_stateChanged(int arg1)
{
if (arg1 == 0)
{
ui->envir_lineEdit_log->setDisabled(true);
ui->envir_pushButton_log->setDisabled(true);
}
else if (arg1 == 2)
{
ui->envir_lineEdit_log->setEnabled(true);
ui->envir_pushButton_log->setEnabled(true);
}
}
void MainWindow::on_radf_comboBox_atom_currentIndexChanged(int index)
{
if (index == 0)
{
ui->radf_spinBox_atoms1->setDisabled(true);
ui->radf_spinBox_atoms2->setDisabled(true);
ui->radf_spinBox_atoms4->setDisabled(true);
ui->radf_spinBox_atoms5->setDisabled(true);
}
else if (index == 1)
{
ui->radf_spinBox_atoms1->setEnabled(true);
ui->radf_spinBox_atoms2->setEnabled(true);
ui->radf_spinBox_atoms4->setEnabled(true);
ui->radf_spinBox_atoms5->setEnabled(true);
}
}
void MainWindow::on_radf_checkBox_ang_stateChanged(int arg1)
{
if (arg1 == 0)
{
ui->radf_checkBox_graph->setCheckState(Qt::Checked);
ui->radf_doubleSpinBox_angMax->setDisabled(true);
ui->radf_doubleSpinBox_angMin->setDisabled(true);
ui->radf_doubleSpinBox_angStep->setDisabled(true);
ui->radf_checkBox_graph->setEnabled(true);
}
else if (arg1 == 2)
{
ui->radf_checkBox_graph->setCheckState(Qt::Unchecked);
ui->radf_doubleSpinBox_angMax->setEnabled(true);
ui->radf_doubleSpinBox_angMin->setEnabled(true);
ui->radf_doubleSpinBox_angStep->setEnabled(true);
ui->radf_checkBox_graph->setDisabled(true);
}
}
void MainWindow::on_radf_checkBox_log_stateChanged(int arg1)
{
if (arg1 == 0)
{
ui->radf_lineEdit_log->setDisabled(true);
ui->radf_pushButton_log->setDisabled(true);
}
else if (arg1 == 2)
{
ui->radf_lineEdit_log->setEnabled(true);
ui->radf_pushButton_log->setEnabled(true);
}
}
void MainWindow::on_pdb_comboBox_mode_currentIndexChanged(int index)
{
if (index == 1)
{
ui->pdb_lineEdit_agl->setDisabled(true);
ui->pdb_pushButton_agl->setDisabled(true);
ui->pdb_doubleSpinBox_cellX->setDisabled(true);
ui->pdb_doubleSpinBox_cellY->setDisabled(true);
ui->pdb_doubleSpinBox_cellZ->setDisabled(true);
}
else if (index == 0)
{
ui->pdb_lineEdit_agl->setEnabled(true);
ui->pdb_pushButton_agl->setEnabled(true);
ui->pdb_doubleSpinBox_cellX->setEnabled(true);
ui->pdb_doubleSpinBox_cellY->setEnabled(true);
ui->pdb_doubleSpinBox_cellZ->setEnabled(true);
}
}
void MainWindow::on_pdb_checkBox_log_stateChanged(int arg1)
{
if (arg1 == 0)
{
ui->pdb_lineEdit_log->setDisabled(true);
ui->pdb_pushButton_log->setDisabled(true);
}
else if (arg1 == 2)
{
ui->pdb_lineEdit_log->setEnabled(true);
ui->pdb_pushButton_log->setEnabled(true);
}
}
// file dialogs
void MainWindow::on_trj_pushButton_workDir_clicked()
{
QString dirname = QFileDialog::getExistingDirectory(
this,
tr("Select work directory"),
QDir::currentPath());
if (!dirname.isEmpty())
ui->trj_lineEdit_workDir->setText(dirname);
}
void MainWindow::on_trj_pushButton_input_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Select trajectory file"),
QDir(ui->trj_lineEdit_workDir->text()).absolutePath(),
tr("All files (*.*)"));
if (!filename.isEmpty())
ui->trj_lineEdit_input->setText(filename);
}
void MainWindow::on_trj_pushButton_atoms_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Select atom types file"),
QDir(ui->trj_lineEdit_workDir->text()).absolutePath(),
tr("Atom types files (*.types);;All files (*.*)"));
if (!filename.isEmpty())
ui->trj_lineEdit_atoms->setText(filename);
}
void MainWindow::on_trj_pushButton_output_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save files as"),
QDir(ui->trj_lineEdit_workDir->text()).absolutePath(),
tr("Mask of trajectory files"));
if (!filename.isEmpty())
ui->trj_lineEdit_output->setText(filename);
}
void MainWindow::on_trj_pushButton_log_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save log file as..."),
QDir(ui->trj_lineEdit_workDir->text()).absolutePath(),
tr("Log files (*.log)"));
if (!filename.isEmpty())
ui->trj_lineEdit_log->setText(filename);
}
void MainWindow::on_statgen_pushButton_workDir_clicked()
{
QString dirname = QFileDialog::getExistingDirectory(
this,
tr("Select work directory"),
QDir::currentPath());
if (!dirname.isEmpty())
ui->statgen_lineEdit_workDir->setText(dirname);
}
void MainWindow::on_statgen_pushButton_input_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Select trajectory files"),
QDir(ui->statgen_lineEdit_workDir->text()).absolutePath(),
tr("Trajectory files (*.*[0-9])"));
if (!filename.isEmpty())
ui->statgen_lineEdit_input->setText(filename.split(QString("."))[0]);
}
void MainWindow::on_statgen_pushButton_output_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save output file as..."),
QDir(ui->statgen_lineEdit_workDir->text()).absolutePath(),
tr("Output files (*.dat)"));
if (!filename.isEmpty())
ui->statgen_lineEdit_output->setText(filename);
}
void MainWindow::on_statgen_pushButton_log_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save log file as..."),
QDir(ui->statgen_lineEdit_workDir->text()).absolutePath(),
tr("Log files (*.log)"));
if (!filename.isEmpty())
ui->statgen_lineEdit_log->setText(filename);
}
void MainWindow::on_envir_pushButton_workDir_clicked()
{
QString dirname = QFileDialog::getExistingDirectory(
this,
tr("Select work directory"),
QDir::currentPath());
if (!dirname.isEmpty())
ui->envir_lineEdit_workDir->setText(dirname);
}
void MainWindow::on_envir_pushButton_input_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Select trajectory file"),
QDir(ui->envir_lineEdit_workDir->text()).absolutePath(),
tr("Trajectory files (*.*[0-9])"));
if (!filename.isEmpty())
ui->envir_lineEdit_input->setText(filename);
}
void MainWindow::on_envir_pushButton_output_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save PDB file as..."),
QDir(ui->envir_lineEdit_workDir->text()).absolutePath(),
tr("PDB files (*.pdb)"));
if (!filename.isEmpty())
ui->envir_lineEdit_output->setText(filename);
}
void MainWindow::on_envir_pushButton_log_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save log file as..."),
QDir(ui->envir_lineEdit_workDir->text()).absolutePath(),
tr("Log files (*.log)"));
if (!filename.isEmpty())
ui->envir_lineEdit_log->setText(filename);
}
void MainWindow::on_radf_pushButton_workDir_clicked()
{
QString dirname = QFileDialog::getExistingDirectory(
this,
tr("Select work directory"),
QDir::currentPath());
if (!dirname.isEmpty())
ui->radf_lineEdit_workDir->setText(dirname);
}
void MainWindow::on_radf_pushButton_input_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Select trajectory files"),
QDir(ui->radf_lineEdit_workDir->text()).absolutePath(),
tr("Trajectory files (*.*[0-9])"));
if (!filename.isEmpty())
ui->radf_lineEdit_input->setText(filename.split(QString("."))[0]);
}
void MainWindow::on_radf_pushButton_output_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save output file as..."),
QDir(ui->radf_lineEdit_workDir->text()).absolutePath(),
tr("Output files (*.dat)"));
if (!filename.isEmpty())
ui->radf_lineEdit_output->setText(filename);
}
void MainWindow::on_radf_pushButton_log_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save log file as..."),
QDir(ui->radf_lineEdit_workDir->text()).absolutePath(),
tr("Log files (*.log)"));
if (!filename.isEmpty())
ui->radf_lineEdit_log->setText(filename);
}
void MainWindow::on_pdb_pushButton_workDir_clicked()
{
QString dirname = QFileDialog::getExistingDirectory(
this,
tr("Select work directory"),
QDir::currentPath());
if (!dirname.isEmpty())
ui->pdb_lineEdit_workDir->setText(dirname);
}
void MainWindow::on_pdb_pushButton_input_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Select trajectory file"),
QDir(ui->pdb_lineEdit_workDir->text()).absolutePath(),
tr("Trajectory files (*.*[0-9])"));
if (!filename.isEmpty())
ui->pdb_lineEdit_input->setText(filename);
}
void MainWindow::on_pdb_pushButton_agl_clicked()
{
QString filename = QFileDialog::getOpenFileName(
this,
tr("Select agglomerate file"),
QDir(ui->pdb_lineEdit_workDir->text()).absolutePath(),
tr("Agglomerate files (*.agl);;All files (*.*)"));
if (!filename.isEmpty())
ui->pdb_lineEdit_agl->setText(filename);
}
void MainWindow::on_pdb_pushButton_output_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save PDB file as..."),
QDir(ui->pdb_lineEdit_workDir->text()).absolutePath(),
tr("PDB files (*.pdb)"));
if (!filename.isEmpty())
ui->pdb_lineEdit_output->setText(filename);
}
void MainWindow::on_pdb_pushButton_log_clicked()
{
QString filename = QFileDialog::getSaveFileName(
this,
tr("Save log file as..."),
QDir(ui->pdb_lineEdit_workDir->text()).absolutePath(),
tr("Log files (*.log)"));
if (!filename.isEmpty())
ui->pdb_lineEdit_log->setText(filename);
}
// clear actions
void MainWindow::on_trj_pushButton_clear_clicked()
{
clear_items->clear_trj();
}
void MainWindow::on_statgen_pushButton_clear_clicked()
{
clear_items->clear_statgen();
}
void MainWindow::on_envir_pushButton_clear_clicked()
{
clear_items->clear_envir();
}
void MainWindow::on_radf_pushButton_clear_clicked()
{
clear_items->clear_radf();
}
void MainWindow::on_pdb_pushButton_clear_clicked()
{
clear_items->clear_pdb();
}
// set interaction (statgen)
void MainWindow::update_interaction()
{
int num_inter = 0;
if (ui->statgen_checkBox_atoms1->checkState() == 2)
num_inter++;
if (ui->statgen_checkBox_atoms2->checkState() == 2)
num_inter++;
if (ui->statgen_checkBox_atoms3->checkState() == 2)
num_inter++;
ui->statgen_comboBox_int->clear();
ui->statgen_comboBox_int->addItem("0-0");
if (num_inter >= 1)
{
ui->statgen_comboBox_int->addItem("0-1");
ui->statgen_comboBox_int->addItem("1-1");
}
if (num_inter >= 2)
{
ui->statgen_comboBox_int->addItem("0-2");
ui->statgen_comboBox_int->addItem("1-2");
ui->statgen_comboBox_int->addItem("2-2");
}
if (num_inter >= 3)
{
ui->statgen_comboBox_int->addItem("0-3");
ui->statgen_comboBox_int->addItem("1-3");
ui->statgen_comboBox_int->addItem("2-3");
ui->statgen_comboBox_int->addItem("3-3");
}
for (int i=0; i<10; i++)
statgen_crit[i] = 0.0;
}
void MainWindow::on_statgen_comboBox_int_currentIndexChanged(int index)
{
ui->statgen_doubleSpinBox_int->setValue(statgen_crit[index]);
}
void MainWindow::on_stagen_pushButton_intSave_clicked()
{
int index;
index = ui->statgen_comboBox_int->currentIndex();
statgen_crit[index] = ui->statgen_doubleSpinBox_int->value();
}
void MainWindow::on_statgen_doubleSpinBox_int_editingFinished()
{
int index;
index = ui->statgen_comboBox_int->currentIndex();
statgen_crit[index] = ui->statgen_doubleSpinBox_int->value();
}
void MainWindow::on_statgen_pushButton_intAdd_clicked()
{
QString interaction;
QString crit;
int num_inter = ui->statgen_comboBox_int->count();
for (int i=0; i<num_inter; i++)
{
interaction.append(ui->statgen_comboBox_int->itemText(i));
interaction.append(QString(":"));
crit.setNum(statgen_crit[i], 'f', 3);
interaction.append(crit);
interaction.append(QString(","));
}
interaction.remove(interaction.count()-1, 1);
ui->statgen_listWidget_int->addItem(interaction);
ui->statgen_doubleSpinBox_int->setValue(0.0);
for (int i=0; i<10; i++)
statgen_crit[i] = 0.0;
}
void MainWindow::on_stagen_pushButton_intRem_clicked()
{
int curIndex = ui->statgen_listWidget_int->currentRow();
if (curIndex > -1)
delete ui->statgen_listWidget_int->item(curIndex);
}
// start signals
void MainWindow::on_trj_pushButton_start_clicked()
{
ui->centralWidget->setDisabled(false);
start_events_trj();
ui->centralWidget->setEnabled(true);
}
void MainWindow::start_events_trj()
{
QString workDir = ui->trj_lineEdit_workDir->text();
QString input = ui->trj_lineEdit_input->text();
QString type;
switch (ui->trj_comboBox_type->currentIndex())
{
case 0:
type = QString("gmx");
break;
case 1:
type = QString("puma");
break;
}
QString steps = QString::number(ui->trj_spinBox_steps->value());
QString atomType = ui->trj_lineEdit_atoms->text();
QString mask = ui->trj_lineEdit_output->text();
QString totalTypes = QString::number(ui->trj_spinBox_totalTypes->value());
QString log;
if (ui->trj_checkBox_log->checkState() == 2)
log = ui->trj_lineEdit_log->text();
else
log = QString("#");
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'trj'..."));
bool check = start_events->start_trj(mm_trj_path,
workDir,
input,
type,
steps,
atomType,
mask,
totalTypes,
log);
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done"));
}
void MainWindow::on_statgen_pushButton_start_clicked()
{
ui->centralWidget->setDisabled(true);
start_events_statgen();
ui->centralWidget->setEnabled(true);
}
void MainWindow::start_events_statgen()
{
QString workDir = ui->statgen_lineEdit_workDir->text();
QString mask = ui->statgen_lineEdit_input->text();
QString firstStep = QString::number(ui->statgen_spinBox_stepsFirst->value());
QString lastStep = QString::number(ui->statgen_spinBox_stepsLast->value());
QString cellX, cellY, cellZ;
cellX.setNum(ui->statgen_doubleSpinBox_cellX->value(), 'f', 4);
cellY.setNum(ui->statgen_doubleSpinBox_cellY->value(), 'f', 4);
cellZ.setNum(ui->statgen_doubleSpinBox_cellZ->value(), 'f', 4);
QString atom0 = QString::number(ui->statgen_spinBox_atoms0->value());
QString atom1, atom2, atom3;
if (ui->statgen_checkBox_atoms1->checkState() == 2)
atom1.setNum(ui->statgen_spinBox_atoms1->value());
else
atom1 = QString("#");
if (ui->statgen_checkBox_atoms2->checkState() == 2)
atom2.setNum(ui->statgen_spinBox_atoms2->value());
else
atom2 = QString("#");
if (ui->statgen_checkBox_atoms3->checkState() == 2)
atom3.setNum(ui->statgen_spinBox_atoms3->value());
else
atom3 = QString("#");
QString inter;
inter = QString("");
for (int i=0; i<ui->statgen_listWidget_int->count(); i++)
inter.append(" -r " + ui->statgen_listWidget_int->item(i)->text());
QString output = ui->statgen_lineEdit_output->text();
QString depth;
if (ui->statgen_checkBox_depth->checkState() == 2)
depth.setNum(ui->statgen_spinBox_depth->value());
else
depth = QString("#");
QString log;
if (ui->statgen_checkBox_log->checkState() == 2)
log = ui->statgen_lineEdit_log->text();
else
log = QString("#");
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'statgen'..."));
bool check = start_events->start_statgen(mm_statgen_path,
workDir,
mask,
firstStep,
lastStep,
cellX, cellY, cellZ,
atom0, atom1, atom2, atom3,
inter,
output,
depth,
log);
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done"));
if ((ui->statgen_checkBox_graph->checkState() == 2) && (check == true))
{
QString filename = output;
if (!filename.contains(QDir::separator()))
filename = QFileInfo(QDir(workDir), filename).absoluteFilePath();
StatgenGraphWindow *graphwin;
graphwin = new StatgenGraphWindow(this, filename);
graphwin->show();
}
}
void MainWindow::on_envir_pushButton_start_clicked()
{
ui->centralWidget->setDisabled(true);
start_events_envir();
ui->centralWidget->setEnabled(true);
}
void MainWindow::start_events_envir()
{
QString workDir = ui->envir_lineEdit_workDir->text();
QString input = ui->envir_lineEdit_input->text();
QString cellX, cellY, cellZ;
cellX.setNum(ui->envir_doubleSpinBox_cellX->value(), 'f', 4);
cellY.setNum(ui->envir_doubleSpinBox_cellY->value(), 'f', 4);
cellZ.setNum(ui->envir_doubleSpinBox_cellZ->value(), 'f', 4);
QString output = ui->envir_lineEdit_output->text();
QString molecule = QString::number(ui->envir_spinBox_molecule->value());
QString radius;
radius.setNum(ui->envir_doubleSpinBox_radius->value(), 'f', 4);
QString log;
if (ui->envir_checkBox_log->checkState() == 2)
log = ui->envir_lineEdit_log->text();
else
log = QString("#");
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'envir'..."));
bool check = start_events->start_envir(mm_envir_path,
workDir,
input,
cellX, cellY, cellZ,
output,
molecule,
radius,
log);
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done"));
}
void MainWindow::on_radf_pushButton_start_clicked()
{
ui->centralWidget->setDisabled(true);
start_events_radf();
ui->centralWidget->setEnabled(true);
}
void MainWindow::start_events_radf()
{
QString workDir = ui->radf_lineEdit_workDir->text();
QString mask = ui->radf_lineEdit_input->text();
QString firstStep = QString::number(ui->radf_spinBox_stepsFirst->value());
QString lastStep = QString::number(ui->radf_spinBox_stepsLast->value());
QString cellX, cellY, cellZ;
cellX.setNum(ui->radf_doubleSpinBox_cellX->value(), 'f', 4);
cellY.setNum(ui->radf_doubleSpinBox_cellY->value(), 'f', 4);
cellZ.setNum(ui->radf_doubleSpinBox_cellZ->value(), 'f', 4);
QString output = ui->radf_lineEdit_output->text();
QString atom0 = QString::number(ui->radf_spinBox_atoms0->value());
QString atom3 = QString::number(ui->radf_spinBox_atoms3->value());
QString atom1, atom2, atom4, atom5;
if (ui->radf_comboBox_atom->currentIndex() == 1)
{
atom1 = QString::number(ui->radf_spinBox_atoms1->value());
atom2 = QString::number(ui->radf_spinBox_atoms1->value());
atom4 = QString::number(ui->radf_spinBox_atoms1->value());
atom5 = QString::number(ui->radf_spinBox_atoms1->value());
}
else
atom1 = QString("#");
QString radMin, radMax, radStep, angMin, angMax, angStep;
radMin.setNum(ui->radf_doubleSpinBox_radMin->value(), 'f', 3);
radMax.setNum(ui->radf_doubleSpinBox_radMax->value(), 'f', 3);
radStep.setNum(ui->radf_doubleSpinBox_radStep->value(), 'f', 3);
if (ui->radf_checkBox_ang->checkState() == 2)
{
angMin.setNum(ui->radf_doubleSpinBox_angMin->value(), 'f', 2);
angMax.setNum(ui->radf_doubleSpinBox_angMax->value(), 'f', 2);
angStep.setNum(ui->radf_doubleSpinBox_angStep->value(), 'f', 2);
}
else
angStep = QString("#");
QString log;
if (ui->radf_checkBox_log->checkState() == 2)
log = ui->radf_lineEdit_log->text();
else
log = QString("#");
int matrix;
if (ui->radf_checkBox_matrix->checkState() == 2)
matrix = 1;
else
matrix = 0;
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'radf'..."));
bool check = start_events->start_radf(mm_radf_path,
workDir,
mask,
firstStep,
lastStep,
cellX, cellY, cellZ,
output,
atom0, atom1, atom2,
atom3, atom4, atom5,
radMin, radMax, radStep,
angMin, angMax, angStep,
log, matrix);
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done"));
if ((ui->radf_checkBox_graph->checkState() == 2) && (check == true))
{
QString filename = output;
if (!filename.contains(QDir::separator()))
filename = QFileInfo(QDir(workDir), filename).absoluteFilePath();
StatgenGraphWindow *graphwin;
graphwin = new StatgenGraphWindow(this, filename);
graphwin->show();
}
}
void MainWindow::on_pdb_pushButton_start_clicked()
{
ui->centralWidget->setDisabled(true);
start_events_pdb();
ui->centralWidget->setEnabled(true);
}
void MainWindow::start_events_pdb()
{
QString workDir = ui->pdb_lineEdit_workDir->text();
QString input = ui->pdb_lineEdit_input->text();
QString agl, cellX, cellY, cellZ;
if (ui->pdb_comboBox_mode->currentIndex() == 0)
{
agl = ui->pdb_lineEdit_agl->text();
cellX.setNum(ui->pdb_doubleSpinBox_cellX->value(), 'f', 4);
cellY.setNum(ui->pdb_doubleSpinBox_cellY->value(), 'f', 4);
cellZ.setNum(ui->pdb_doubleSpinBox_cellZ->value(), 'f', 4);
}
else
agl = QString("#");
QString output = ui->pdb_lineEdit_output->text();
QString log;
if (ui->pdb_checkBox_log->checkState() == 2)
log = ui->pdb_lineEdit_log->text();
else
log = QString("#");
if (ui->pdb_comboBox_mode->currentIndex() == 0)
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'agl'..."));
else if (ui->pdb_comboBox_mode->currentIndex() == 1)
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'trj2pdb'..."));
bool check;
if (ui->pdb_comboBox_mode->currentIndex() == 0)
check = start_events->start_pdb(mm_agl_path,
workDir,
input,
agl,
cellX, cellY, cellZ,
output,
log);
else if (ui->pdb_comboBox_mode->currentIndex() == 1)
check = start_events->start_pdb(mm_trj2pdb_path,
workDir,
input,
agl,
cellX, cellY, cellZ,
output,
log);
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done"));
}
// completion
void MainWindow::on_tabWidget_currentChanged(int index)
{
switch(index)
{
case 1:
update_fields->setup_def_statgen();
break;
case 2:
update_fields->setup_def_envir();
break;
case 3:
update_fields->setup_def_radf();
break;
case 4:
update_fields->setup_def_pdb();
break;
}
}
// window signals
void MainWindow::createActions()
{
connect(ui->actionAtom_types_file, SIGNAL(triggered()), this, SLOT(createAtomTypes()));
connect(ui->actionAgglomerate_file, SIGNAL(triggered()), this, SLOT(createAgglFile()));
connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(aboutWin()));
connect(ui->actionSettings, SIGNAL(triggered()), this, SLOT(settingsWinShow()));
connect(ui->actionAgl_all, SIGNAL(triggered()), this, SLOT(aglallWinShow()));
}
void MainWindow::createAtomTypes()
{
AtomTypesWindow *atomTypes;
atomTypes = new AtomTypesWindow(this);
atomTypes->show();
}
void MainWindow::createAgglFile()
{
AgglWindow *agglWindow;
agglWindow = new AgglWindow(this, ui->statgen_lineEdit_output->text());
agglWindow->show();
}
void MainWindow::aboutWin()
{
AboutWindow *aboutWindow;
aboutWindow = new AboutWindow(this);
aboutWindow->show();
}
void MainWindow::settingsWinShow()
{
SettingsWindow *settingsWindow;
settingsWindow = new SettingsWindow(this);
settingsWindow->show();
}
void MainWindow::aglallWinShow()
{
AglAllWindow *aglallWin;
aglallWin = new AglAllWindow(this, mm_agl_path);
aglallWin->show();
}