From e17242071618b559d01acdc97e064f65a329aa20 Mon Sep 17 00:00:00 2001 From: Walter Van Herck <w.van.herck@fz-juelich.de> Date: Wed, 20 Feb 2013 14:52:26 +0100 Subject: [PATCH] First layout of instrument and simulation tabs --- GUI/coregui/coregui.pro | 10 +- .../experimentmanager/experimentmanager.cpp | 54 ----------- .../experimentmanager/experimentmanager.h | 13 --- .../instrumentmanager/instrumentmanager.cpp | 91 +++++++++++++++++++ .../instrumentmanager/instrumentmanager.h | 13 +++ GUI/coregui/mainwindow/mainwindow.cpp | 13 +-- GUI/coregui/mainwindow/mainwindow.h | 4 +- .../simulationmanager/simulationmanager.cpp | 87 +++++++++++------- 8 files changed, 173 insertions(+), 112 deletions(-) delete mode 100644 GUI/coregui/experimentmanager/experimentmanager.cpp delete mode 100644 GUI/coregui/experimentmanager/experimentmanager.h create mode 100644 GUI/coregui/instrumentmanager/instrumentmanager.cpp create mode 100644 GUI/coregui/instrumentmanager/instrumentmanager.h diff --git a/GUI/coregui/coregui.pro b/GUI/coregui/coregui.pro index d87b177d268..df861f29611 100644 --- a/GUI/coregui/coregui.pro +++ b/GUI/coregui/coregui.pro @@ -25,7 +25,6 @@ SOURCES += \ mainwindow/main.cpp \ mainwindow/mainwindow.cpp \ mainwindow/welcomemode.cpp \ - experimentmanager/experimentmanager.cpp \ fitmanager/fitmanager.cpp \ samplemanager/samplemanager.cpp \ simulationmanager/simulationmanager.cpp \ @@ -34,13 +33,13 @@ SOURCES += \ mainwindow/taskselectorwidget.cpp \ utils/ba_fancytabbar.cpp \ utils/ba_stylehelper.cpp \ - utils/rootcanvas.cpp + utils/rootcanvas.cpp \ + instrumentmanager/instrumentmanager.cpp HEADERS += \ mainwindow/imode.h \ mainwindow/mainwindow.h \ mainwindow/welcomemode.h \ - experimentmanager/experimentmanager.h \ fitmanager/fitmanager.h \ samplemanager/samplemanager.h \ simulationmanager/simulationmanager.h \ @@ -49,10 +48,11 @@ HEADERS += \ mainwindow/taskselectorwidget.h \ utils/ba_fancytabbar.h \ utils/ba_stylehelper.h \ - utils/rootcanvas.h + utils/rootcanvas.h \ + instrumentmanager/instrumentmanager.h -INCLUDEPATH += $$PWD/mainwindow $$PWD/utils $$PWD/welcomemanager $$PWD/samplemanager $$PWD/experimentmanager $$PWD/simulationmanager $$PWD/fitmanager +INCLUDEPATH += $$PWD/mainwindow $$PWD/utils $$PWD/welcomemanager $$PWD/samplemanager $$PWD/instrumentmanager $$PWD/simulationmanager $$PWD/fitmanager LIBS += $$PWD/../../lib/libqt-manhattan-style.so INCLUDEPATH += $$PWD/../externals/qt-manhattan-style LIBS += $$PWD/../../lib/libQtRoot.so $$PWD/../../lib/libGQt.so diff --git a/GUI/coregui/experimentmanager/experimentmanager.cpp b/GUI/coregui/experimentmanager/experimentmanager.cpp deleted file mode 100644 index 684ec8dcefa..00000000000 --- a/GUI/coregui/experimentmanager/experimentmanager.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "experimentmanager.h" -//#include <QtWidgets> -#include <QGroupBox> -#include <QLabel> -#include <QDateTime> -#include <QLineEdit> -#include <QCheckBox> -#include <QSpinBox> -#include <QPushButton> -#include <QGridLayout> -#include <QDateTimeEdit> - -ExperimentManager::ExperimentManager(QWidget *parent) - : QWidget(parent) -{ - QGroupBox *packagesGroup = new QGroupBox(tr("Look for packages")); - - QLabel *nameLabel = new QLabel(tr("Name:")); - QLineEdit *nameEdit = new QLineEdit; - - QLabel *dateLabel = new QLabel(tr("Released after:")); - QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate()); - - QCheckBox *releasesCheckBox = new QCheckBox(tr("Releases")); - QCheckBox *upgradesCheckBox = new QCheckBox(tr("Upgrades")); - - QSpinBox *hitsSpinBox = new QSpinBox; - hitsSpinBox->setPrefix(tr("Return up to ")); - hitsSpinBox->setSuffix(tr(" results")); - hitsSpinBox->setSpecialValueText(tr("Return only the first result")); - hitsSpinBox->setMinimum(1); - hitsSpinBox->setMaximum(100); - hitsSpinBox->setSingleStep(10); - - QPushButton *startQueryButton = new QPushButton(tr("Start query")); - - QGridLayout *packagesLayout = new QGridLayout; - packagesLayout->addWidget(nameLabel, 0, 0); - packagesLayout->addWidget(nameEdit, 0, 1); - packagesLayout->addWidget(dateLabel, 1, 0); - packagesLayout->addWidget(dateEdit, 1, 1); - packagesLayout->addWidget(releasesCheckBox, 2, 0); - packagesLayout->addWidget(upgradesCheckBox, 3, 0); - packagesLayout->addWidget(hitsSpinBox, 4, 0, 1, 2); - packagesGroup->setLayout(packagesLayout); - - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(packagesGroup); - mainLayout->addSpacing(12); - mainLayout->addWidget(startQueryButton); - mainLayout->addStretch(1); - setLayout(mainLayout); -} - diff --git a/GUI/coregui/experimentmanager/experimentmanager.h b/GUI/coregui/experimentmanager/experimentmanager.h deleted file mode 100644 index e5ee9b329bd..00000000000 --- a/GUI/coregui/experimentmanager/experimentmanager.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef EXPMANAGER_H -#define EXPMANAGER_H - -#include <QWidget> - - -class ExperimentManager : public QWidget -{ -public: - ExperimentManager(QWidget *parent = 0); -}; - -#endif // EXPMANAGER_H diff --git a/GUI/coregui/instrumentmanager/instrumentmanager.cpp b/GUI/coregui/instrumentmanager/instrumentmanager.cpp new file mode 100644 index 00000000000..8fbb865625e --- /dev/null +++ b/GUI/coregui/instrumentmanager/instrumentmanager.cpp @@ -0,0 +1,91 @@ +#include "instrumentmanager.h" + +#include <QGroupBox> +#include <QPushButton> +#include <QVBoxLayout> +#include <QComboBox> +#include <QLabel> +#include <QGridLayout> +#include <QLineEdit> +#include <QCheckBox> +#include <QDoubleSpinBox> + +InstrumentManager::InstrumentManager(QWidget *parent) + : QWidget(parent) +{ + // selection of instrument by name + QGroupBox *instrumentListGroup = new QGroupBox(tr("Instrument List")); + // instrument combo box + QLabel *nameLabel = new QLabel(tr("Select Instrument:")); + QComboBox *instrumentBox = new QComboBox; + instrumentBox->addItem(tr("Default GISAXS")); + // layout + QHBoxLayout *instrumentListLayout = new QHBoxLayout; + instrumentListLayout->addWidget(nameLabel); + instrumentListLayout->addWidget(instrumentBox); + instrumentListGroup->setLayout(instrumentListLayout); + + // beam parameters + QGroupBox *beamParamsGroup = new QGroupBox(tr("Beam Parameters")); + // intensity + QLabel *beamIntensityLabel = new QLabel(tr("Intensity (1/s):")); + QDoubleSpinBox *beamIntensityEdit = new QDoubleSpinBox; + // incoming angles + QLabel *beamAlphaInLabel = new QLabel(tr("Inclination angle (degrees):")); + QDoubleSpinBox *beamAlphaInEdit = new QDoubleSpinBox; + QLabel *beamPhiInLabel = new QLabel(tr("Azimuthal angle (degrees):")); + QDoubleSpinBox *beamPhiInEdit = new QDoubleSpinBox; + // layout + QGridLayout *beamParamsLayout = new QGridLayout; + beamParamsLayout->addWidget(beamIntensityLabel, 0, 0); + beamParamsLayout->addWidget(beamIntensityEdit, 0, 1); + beamParamsLayout->addWidget(beamAlphaInLabel, 1, 0); + beamParamsLayout->addWidget(beamAlphaInEdit, 1, 1); + beamParamsLayout->addWidget(beamPhiInLabel, 2, 0); + beamParamsLayout->addWidget(beamPhiInEdit, 2, 1); + beamParamsGroup->setLayout(beamParamsLayout); + + // detector parameters + QGroupBox *detectorParamsGroup = new QGroupBox(tr("Detector Parameters")); + // range labels + QLabel *startRangeLabel = new QLabel(tr("Start")); + QLabel *endRangeLabel = new QLabel(tr("End")); + QLabel *nbrValuesRangeLabel = new QLabel(tr("# values")); + // angle labels + QLabel *detectorAlphaRangeLabel = new QLabel(tr("Inclination range (degrees):")); + QLabel *detectorPhiRangeLabel = new QLabel(tr("Azimuthal range (degrees):")); + // range input edits + QDoubleSpinBox *detectorAlphaStartEdit = new QDoubleSpinBox; + QDoubleSpinBox *detectorAlphaEndEdit = new QDoubleSpinBox; + QSpinBox *detectorAlphaValuesEdit = new QSpinBox; + QDoubleSpinBox *detectorPhiStartEdit = new QDoubleSpinBox; + QDoubleSpinBox *detectorPhiEndEdit = new QDoubleSpinBox; + QSpinBox *detectorPhiValuesEdit = new QSpinBox; + // checkbox for IsGISAXS angle initialization + QCheckBox *detectorAnglesIsGISAXSBox = new QCheckBox(tr("IsGISAXS Angle Initialization:")); + // layout + QGridLayout *detectorParamsLayout = new QGridLayout; + detectorParamsLayout->addWidget(startRangeLabel, 0, 1); + detectorParamsLayout->addWidget(endRangeLabel, 0, 2); + detectorParamsLayout->addWidget(nbrValuesRangeLabel, 0, 3); + detectorParamsLayout->addWidget(detectorAlphaRangeLabel, 1, 0); + detectorParamsLayout->addWidget(detectorAlphaStartEdit, 1, 1); + detectorParamsLayout->addWidget(detectorAlphaEndEdit, 1, 2); + detectorParamsLayout->addWidget(detectorAlphaValuesEdit, 1, 3); + detectorParamsLayout->addWidget(detectorPhiRangeLabel, 2, 0); + detectorParamsLayout->addWidget(detectorPhiStartEdit, 2, 1); + detectorParamsLayout->addWidget(detectorPhiEndEdit, 2, 2); + detectorParamsLayout->addWidget(detectorPhiValuesEdit, 2, 3); + detectorParamsLayout->addWidget(detectorAnglesIsGISAXSBox, 3, 0); + detectorParamsGroup->setLayout(detectorParamsLayout); + + // main layout + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(instrumentListGroup); + // mainLayout->addSpacing(12); + mainLayout->addWidget(beamParamsGroup); + mainLayout->addWidget(detectorParamsGroup); + mainLayout->addStretch(); + setLayout(mainLayout); +} + diff --git a/GUI/coregui/instrumentmanager/instrumentmanager.h b/GUI/coregui/instrumentmanager/instrumentmanager.h new file mode 100644 index 00000000000..ead45b95204 --- /dev/null +++ b/GUI/coregui/instrumentmanager/instrumentmanager.h @@ -0,0 +1,13 @@ +#ifndef INSTRMANAGER_H +#define INSTRMANAGER_H + +#include <QWidget> + + +class InstrumentManager : public QWidget +{ +public: + InstrumentManager(QWidget *parent = 0); +}; + +#endif // INSTRMANAGER_H diff --git a/GUI/coregui/mainwindow/mainwindow.cpp b/GUI/coregui/mainwindow/mainwindow.cpp index c8894fde88d..74e8b96b6d0 100644 --- a/GUI/coregui/mainwindow/mainwindow.cpp +++ b/GUI/coregui/mainwindow/mainwindow.cpp @@ -4,7 +4,7 @@ #include "taskselectorwidget.h" #include "welcomemanager.h" #include "samplemanager.h" -#include "experimentmanager.h" +#include "instrumentmanager.h" #include "simulationmanager.h" #include "fitmanager.h" #include "stylehelper.h" @@ -19,8 +19,8 @@ MainWindow::MainWindow(QWidget *parent) : Manhattan::FancyMainWindow(parent) , m_tabWidget(0) , m_welcomeManager(0) + , m_instrumentManager(0) , m_sampleManager(0) - , m_expManager(0) , m_simulManager(0) , m_fitManager(0) { @@ -28,7 +28,8 @@ MainWindow::MainWindow(QWidget *parent) qApp->setStyle(new ManhattanStyle(baseName)); // Manhattan::Utils::StyleHelper::setBaseColor(QColor(Manhattan::Utils::StyleHelper::DEFAULT_BASE_COLOR)); - Manhattan::Utils::StyleHelper::setBaseColor(QColor(0xCC6600)); +// Manhattan::Utils::StyleHelper::setBaseColor(QColor(0xCC6600)); + Manhattan::Utils::StyleHelper::setBaseColor(QColor(0x086FA1)); // BornAgain::Utils::StyleHelper::setBaseColor(QColor(0xCC6600)); @@ -41,14 +42,14 @@ MainWindow::MainWindow(QWidget *parent) //m_tabWidget = new TaskSelectorWidget(this); m_tabWidget = new Manhattan::FancyTabWidget(this); m_welcomeManager = new WelcomeManager(); + m_instrumentManager = new InstrumentManager(); m_sampleManager = new SampleManager(); - m_expManager = new ExperimentManager(); m_simulManager = new SimulationManager(); m_fitManager = new FitManager(); m_tabWidget->insertTab(0, m_welcomeManager, QIcon("./images/mode_welcome.png"), "Welcome"); - m_tabWidget->insertTab(1, m_sampleManager, QIcon("./images/mode_sample.png"), "Sample"); - m_tabWidget->insertTab(2, m_expManager, QIcon("./images/mode_exp.png"), "Experiment"); + m_tabWidget->insertTab(1, m_instrumentManager, QIcon("./images/mode_exp.png"), "Instrument"); + m_tabWidget->insertTab(2, m_sampleManager, QIcon("./images/mode_sample.png"), "Sample"); m_tabWidget->insertTab(3, m_simulManager, QIcon("./images/mode_simul.png"), "Simulation"); m_tabWidget->insertTab(4, m_fitManager, QIcon("./images/mode_fit.png"), "Fit"); diff --git a/GUI/coregui/mainwindow/mainwindow.h b/GUI/coregui/mainwindow/mainwindow.h index ec3d53eba28..22b84193d33 100644 --- a/GUI/coregui/mainwindow/mainwindow.h +++ b/GUI/coregui/mainwindow/mainwindow.h @@ -10,8 +10,8 @@ namespace Manhattan { class TaskSelectorWidget; class WelcomeManager; +class InstrumentManager; class SampleManager; -class ExperimentManager; class SimulationManager; class FitManager; @@ -28,8 +28,8 @@ private: //TaskSelectorWidget *m_tabWidget; Manhattan::FancyTabWidget *m_tabWidget; WelcomeManager *m_welcomeManager; + InstrumentManager *m_instrumentManager; SampleManager *m_sampleManager; - ExperimentManager *m_expManager; SimulationManager *m_simulManager; FitManager * m_fitManager; }; diff --git a/GUI/coregui/simulationmanager/simulationmanager.cpp b/GUI/coregui/simulationmanager/simulationmanager.cpp index e4efcbcb1db..241e71a4b48 100644 --- a/GUI/coregui/simulationmanager/simulationmanager.cpp +++ b/GUI/coregui/simulationmanager/simulationmanager.cpp @@ -1,46 +1,69 @@ #include "simulationmanager.h" -//#include <QtWidgets> + #include <QGroupBox> -#include <QCheckBox> -#include <QListWidget> #include <QPushButton> #include <QVBoxLayout> +#include <QComboBox> +#include <QLabel> +#include <QGridLayout> SimulationManager::SimulationManager(QWidget *parent) : QWidget(parent) { - QGroupBox *updateGroup = new QGroupBox(tr("Package selection")); - QCheckBox *systemCheckBox = new QCheckBox(tr("Update system")); - QCheckBox *appsCheckBox = new QCheckBox(tr("Update applications")); - QCheckBox *docsCheckBox = new QCheckBox(tr("Update documentation")); - - QGroupBox *packageGroup = new QGroupBox(tr("Existing packages")); - - QListWidget *packageList = new QListWidget; - QListWidgetItem *qtItem = new QListWidgetItem(packageList); - qtItem->setText(tr("Qt")); - QListWidgetItem *qsaItem = new QListWidgetItem(packageList); - qsaItem->setText(tr("QSA")); - QListWidgetItem *teamBuilderItem = new QListWidgetItem(packageList); - teamBuilderItem->setText(tr("Teambuilder")); - - QPushButton *startUpdateButton = new QPushButton(tr("Start update")); + // selection of input parameters + QGroupBox *inputDataGroup = new QGroupBox(tr("Data selection")); + // instrument selection + QLabel *instrumentSelectionLabel = new QLabel(tr("Select Instrument:")); + QComboBox *instrumentSelectionBox = new QComboBox; + // sample selection + QLabel *sampleSelectionLabel = new QLabel(tr("Select Sample:")); + QComboBox *sampleSelectionBox = new QComboBox; + // layout + QGridLayout *dataSelectionLayout = new QGridLayout; + dataSelectionLayout->addWidget(instrumentSelectionLabel, 0, 0); + dataSelectionLayout->addWidget(instrumentSelectionBox, 0, 1); + dataSelectionLayout->addWidget(sampleSelectionLabel, 1, 0); + dataSelectionLayout->addWidget(sampleSelectionBox, 1, 1); + inputDataGroup->setLayout(dataSelectionLayout); - QVBoxLayout *updateLayout = new QVBoxLayout; - updateLayout->addWidget(systemCheckBox); - updateLayout->addWidget(appsCheckBox); - updateLayout->addWidget(docsCheckBox); - updateGroup->setLayout(updateLayout); + // selection of simulation parameters + QGroupBox *simulationParametersGroup = new QGroupBox(tr("Simulation Parameters")); + // framework (DWBA - BA) + QLabel *frameworkLabel = new QLabel(tr("Select Framework:")); + QComboBox *frameworkSelectionBox = new QComboBox; + frameworkSelectionBox->addItem(tr("DWBA")); + frameworkSelectionBox->addItem(tr("BA")); + // interference function (DA - LMA - SSCA - ISGISAXSMOR) + QLabel *interferenceLabel = new QLabel(tr("Select Interference Function Approximation:")); + QComboBox *interferenceFunctionSelectionBox = new QComboBox; + interferenceFunctionSelectionBox->addItem(tr("DA")); + interferenceFunctionSelectionBox->addItem(tr("LMA")); + interferenceFunctionSelectionBox->addItem(tr("SSCA")); + // lattice type (None - Lattice - Para1D - Para1DFinite) + QLabel *latticeTypeLabel = new QLabel(tr("Select Lattice Type:")); + QComboBox *latticeTypeSelectionBox = new QComboBox; + latticeTypeSelectionBox->addItem(tr("None")); + latticeTypeSelectionBox->addItem(tr("Lattice")); + latticeTypeSelectionBox->addItem(tr("Para1D")); + latticeTypeSelectionBox->addItem(tr("Para1DFinite")); + // layout + QGridLayout *simulationParametersLayout = new QGridLayout; + simulationParametersLayout->addWidget(frameworkLabel, 0, 0); + simulationParametersLayout->addWidget(frameworkSelectionBox, 0, 1); + simulationParametersLayout->addWidget(interferenceLabel, 1, 0); + simulationParametersLayout->addWidget(interferenceFunctionSelectionBox, 1, 1); + simulationParametersLayout->addWidget(latticeTypeLabel, 2, 0); + simulationParametersLayout->addWidget(latticeTypeSelectionBox, 2, 1); + simulationParametersGroup->setLayout(simulationParametersLayout); - QVBoxLayout *packageLayout = new QVBoxLayout; - packageLayout->addWidget(packageList); - packageGroup->setLayout(packageLayout); + // run simulation button + QPushButton *runSimulationButton = new QPushButton(tr("Run Simulation")); + // main layout QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(updateGroup); - mainLayout->addWidget(packageGroup); - mainLayout->addSpacing(12); - mainLayout->addWidget(startUpdateButton); - mainLayout->addStretch(1); + mainLayout->addWidget(inputDataGroup); + mainLayout->addWidget(simulationParametersGroup); + mainLayout->addWidget(runSimulationButton); + mainLayout->addStretch(); setLayout(mainLayout); } -- GitLab