#include "mainwindow.h" #include "ui_mainwindow.h" #include "createdialogs.h" #include #include #include #include #include #include "DEC-0.0/processor/KolchShindyalov.h" #include "DEC-0.0/processor/Processor.h" #include "DEC-0.0/processor/Settings.h" #include "DEC-0.0/DerevyankoReport.h" #include "DEC-0.0/DerevyankoReport2014.h" #include "DEC-0.0/processor/Settings.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); createActions(); createMenus(); connect(this, SIGNAL(drawDefaultGraphs()), &derrep2014window, SLOT(startDefault())); connect(this, SIGNAL(drawRep2013()), &derrep2013window, SLOT(startDraw())); connect(this, SIGNAL(drawBreed(int)), &breedWindow, SLOT(startDraw(int))); } MainWindow::~MainWindow() { delete ui; } void MainWindow::createActions() { openAct = new QAction(tr("&Open..."), this); openAct->setShortcuts(QKeySequence::Open); openAct->setStatusTip(tr("Open an existing file")); connect(openAct, SIGNAL(triggered()), this, SLOT(openFile())); chooseModel = new QAction(tr("&Choose model.."), this); connect(chooseModel, SIGNAL(triggered()), this, SLOT(showChooseModelDialog())); } void MainWindow::createMenus() { fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(openAct); fileMenu->addSeparator(); controlMenu = menuBar()->addMenu(tr("&Control")); controlMenu->addAction(chooseModel); helpMenu = menuBar()->addMenu(tr("&Help")); //helpMenu->addAction(aboutAct); } void MainWindow::openFile() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Text Files (*.txt);;C++ Files (*.cpp *.h)")); if (fileName != "") { /*QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, tr("Error"), tr("Could not open file")); return; }*/ } } void MainWindow::showChooseModelDialog() { CreateDialogs dialog(this, 1, "lol"); //choose model dialog int ret = dialog.exec(); if (ret == QDialog::Rejected) { return; } if (dialog.checkDerRep2014_button()) { CreateDialogs dialogDerRep2014(this, 2, "Homo"); int ret = dialogDerRep2014.exec(); if (ret == QDialog::Rejected) { return; } if (dialogDerRep2014.checkLoci()) { QMessageBox::information(this, "Information", "Press 'Default' button or enter locis", QMessageBox::Ok, 0); return; } Settings::numLoci = dialogDerRep2014.getNumLociVal(); Settings::PopulationHomoInitSize = dialogDerRep2014.getSizeNum(); Settings::percentDiffLoci = dialogDerRep2014.getPerDiffLoci(); Settings::initMtDNA = dialogDerRep2014.getInitHomoGen(); CreateDialogs dialogDerRep2014_2(this, 3, "Ancient"); int rets = dialogDerRep2014_2.exec(); if (rets == QDialog::Rejected) { return; } if (dialogDerRep2014_2.checkLoci()) { QMessageBox::information(this, "Information", "Press 'Default' button or enter locis", QMessageBox::Ok, 0); return; } Settings::PopulationAncientInitSize = dialogDerRep2014.getSizeNum(); Settings::initMtDNA_ancient = dialogDerRep2014.getInitAncientGen(); DerevyankoReport2014::report2014_01(/*argc,argv*/); derrep2014window.setWindowTitle("DerevyankoReport2014"); derrep2014window.setParametersSettings(); derrep2014window.show(); derrep2014window.raise(); derrep2014window.setFocus(); derrep2014window.activateWindow(); emit drawDefaultGraphs(); //std::cout << Settings::ancientCommonSize.size() << std::endl; } if (dialog.checkDerRepRFBR_button()) { CreateDialogs dialogDerRep2013(this, 4, "Pop_f"); int ret = dialogDerRep2013.exec(); if (ret == QDialog::Rejected) { return; } if (dialogDerRep2013.checkLoci()) { QMessageBox::information(this, "Information", "Press 'Default' button or enter locis", QMessageBox::Ok, 0); return; } CreateDialogs dialogDerRep2013_2(this, 5, "Pop_G"); int rets = dialogDerRep2013_2.exec(); if (rets == QDialog::Rejected) { return; } if (dialogDerRep2013_2.checkLoci()) { QMessageBox::information(this, "Information", "Press 'Default' button or enter locis", QMessageBox::Ok, 0); return; } DerevyankoReport::reportRFBR2013_01(); derrep2013window.setWindowTitle("DerevyankoReport2013"); derrep2013window.show(); derrep2013window.raise(); derrep2013window.setFocus(); derrep2013window.activateWindow(); emit drawRep2013(); } if (dialog.checkKolch_button()) { kolchshindwindow.setWindowTitle("Kolch_Shind"); kolchshindwindow.show(); kolchshindwindow.raise(); kolchshindwindow.setFocus(); kolchshindwindow.activateWindow(); //KolchShindyalov::test01(); } if (dialog.checkInOutBreed_bitton()) { CreateDialogs dialog(this, 7, "Breed"); int ret = dialog.exec(); if (ret == QDialog::Rejected) { return; } Settings::Iterations = dialog.getMaxGen(); Settings::InitPopSize = dialog.getInitPopSize(); Settings::InitRatioBetweenPops = dialog.getBetweenRatio(); Settings::KMaxParameter = dialog.getMaxIndivids(); Processor::testInOutBreeding02(); breedWindow.setWindowTitle("InOutBreeding"); breedWindow.setPopComboBoxes(); breedWindow.show(); breedWindow.raise(); breedWindow.setFocus(); breedWindow.activateWindow(); emit drawBreed(0); } if (dialog.checkAgressor_button()) { Manager *man = new Manager(); } }