/****************************************************************************** * Sets up the UI widgets of the editor. ******************************************************************************/ void TrajectoryDisplayEditor::createUI(const RolloutInsertionParameters& rolloutParams) { // Create a rollout. QWidget* rollout = createRollout(tr("Trajectory display"), rolloutParams); // Create the rollout contents. QGridLayout* layout = new QGridLayout(rollout); layout->setContentsMargins(4,4,4,4); layout->setSpacing(4); layout->setColumnStretch(1, 1); // Shading mode. VariantComboBoxParameterUI* shadingModeUI = new VariantComboBoxParameterUI(this, "shadingMode"); shadingModeUI->comboBox()->addItem(tr("Normal"), qVariantFromValue(ArrowPrimitive::NormalShading)); shadingModeUI->comboBox()->addItem(tr("Flat"), qVariantFromValue(ArrowPrimitive::FlatShading)); layout->addWidget(new QLabel(tr("Shading:")), 0, 0); layout->addWidget(shadingModeUI->comboBox(), 0, 1); // Line width. FloatParameterUI* lineWidthUI = new FloatParameterUI(this, PROPERTY_FIELD(TrajectoryDisplay::_lineWidth)); layout->addWidget(lineWidthUI->label(), 1, 0); layout->addLayout(lineWidthUI->createFieldLayout(), 1, 1); lineWidthUI->setMinValue(0); // Line color. ColorParameterUI* lineColorUI = new ColorParameterUI(this, PROPERTY_FIELD(TrajectoryDisplay::_lineColor)); layout->addWidget(lineColorUI->label(), 2, 0); layout->addWidget(lineColorUI->colorPicker(), 2, 1); // Up to current time. BooleanParameterUI* showUpToCurrentTimeUI = new BooleanParameterUI(this, PROPERTY_FIELD(TrajectoryDisplay::_showUpToCurrentTime)); layout->addWidget(showUpToCurrentTimeUI->checkBox(), 3, 0, 1, 2); }
/****************************************************************************** * Sets up the UI widgets of the editor. ******************************************************************************/ void BinAndReduceModifierEditor::createUI(const RolloutInsertionParameters& rolloutParams) { // Create a rollout. QWidget* rollout = createRollout(tr("Bin and reduce"), rolloutParams, "particles.modifiers.bin_and_reduce.html"); // Create the rollout contents. QVBoxLayout* layout = new QVBoxLayout(rollout); layout->setContentsMargins(4,4,4,4); layout->setSpacing(4); ParticlePropertyParameterUI* sourcePropertyUI = new ParticlePropertyParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_sourceProperty)); layout->addWidget(new QLabel(tr("Particle property:"), rollout)); layout->addWidget(sourcePropertyUI->comboBox()); QGridLayout* gridlayout = new QGridLayout(); gridlayout->addWidget(new QLabel(tr("Reduction operation:"), rollout), 0, 0); VariantComboBoxParameterUI* reductionOperationPUI = new VariantComboBoxParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_reductionOperation)); reductionOperationPUI->comboBox()->addItem(tr("mean"), qVariantFromValue(BinAndReduceModifier::RED_MEAN)); reductionOperationPUI->comboBox()->addItem(tr("sum"), qVariantFromValue(BinAndReduceModifier::RED_SUM)); reductionOperationPUI->comboBox()->addItem(tr("sum divided by bin volume"), qVariantFromValue(BinAndReduceModifier::RED_SUM_VOL)); reductionOperationPUI->comboBox()->addItem(tr("min"), qVariantFromValue(BinAndReduceModifier::RED_MIN)); reductionOperationPUI->comboBox()->addItem(tr("max"), qVariantFromValue(BinAndReduceModifier::RED_MAX)); gridlayout->addWidget(reductionOperationPUI->comboBox(), 0, 1); layout->addLayout(gridlayout); gridlayout = new QGridLayout(); gridlayout->addWidget(new QLabel(tr("Binning direction:"), rollout), 0, 0); VariantComboBoxParameterUI* binDirectionPUI = new VariantComboBoxParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_binDirection)); binDirectionPUI->comboBox()->addItem("cell vector 1", qVariantFromValue(BinAndReduceModifier::CELL_VECTOR_1)); binDirectionPUI->comboBox()->addItem("cell vector 2", qVariantFromValue(BinAndReduceModifier::CELL_VECTOR_2)); binDirectionPUI->comboBox()->addItem("cell vector 3", qVariantFromValue(BinAndReduceModifier::CELL_VECTOR_3)); binDirectionPUI->comboBox()->addItem("vectors 1 and 2", qVariantFromValue(BinAndReduceModifier::CELL_VECTORS_1_2)); binDirectionPUI->comboBox()->addItem("vectors 1 and 3", qVariantFromValue(BinAndReduceModifier::CELL_VECTORS_1_3)); binDirectionPUI->comboBox()->addItem("vectors 2 and 3", qVariantFromValue(BinAndReduceModifier::CELL_VECTORS_2_3)); gridlayout->addWidget(binDirectionPUI->comboBox(), 0, 1); layout->addLayout(gridlayout); _firstDerivativePUI = new BooleanParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_firstDerivative)); _firstDerivativePUI->setEnabled(false); layout->addWidget(_firstDerivativePUI->checkBox()); gridlayout = new QGridLayout(); gridlayout->setContentsMargins(0,0,0,0); gridlayout->setColumnStretch(1, 1); gridlayout->setColumnStretch(2, 1); // Number of bins parameters. IntegerParameterUI* numBinsXPUI = new IntegerParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_numberOfBinsX)); gridlayout->addWidget(numBinsXPUI->label(), 0, 0); gridlayout->addLayout(numBinsXPUI->createFieldLayout(), 0, 1); numBinsXPUI->setMinValue(1); _numBinsYPUI = new IntegerParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_numberOfBinsY)); gridlayout->addLayout(_numBinsYPUI->createFieldLayout(), 0, 2); _numBinsYPUI->setMinValue(1); _numBinsYPUI->setEnabled(false); layout->addLayout(gridlayout); _averagesPlot = new QCustomPlot(); _averagesPlot->setMinimumHeight(240); _averagesPlot->axisRect()->setRangeDrag(Qt::Vertical); _averagesPlot->axisRect()->setRangeZoom(Qt::Vertical); _averagesPlot->xAxis->setLabel("Position"); connect(_averagesPlot->yAxis, SIGNAL(rangeChanged(const QCPRange&)), this, SLOT(updatePropertyAxisRange(const QCPRange&))); layout->addWidget(new QLabel(tr("Reduction:"))); layout->addWidget(_averagesPlot); connect(this, &BinAndReduceModifierEditor::contentsReplaced, this, &BinAndReduceModifierEditor::plotData); QPushButton* saveDataButton = new QPushButton(tr("Save data")); layout->addWidget(saveDataButton); connect(saveDataButton, &QPushButton::clicked, this, &BinAndReduceModifierEditor::onSaveData); // Axes. QGroupBox* axesBox = new QGroupBox(tr("Plot axes"), rollout); QVBoxLayout* axesSublayout = new QVBoxLayout(axesBox); axesSublayout->setContentsMargins(4,4,4,4); layout->addWidget(axesBox); BooleanParameterUI* rangeUI = new BooleanParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_fixPropertyAxisRange)); axesSublayout->addWidget(rangeUI->checkBox()); QHBoxLayout* hlayout = new QHBoxLayout(); axesSublayout->addLayout(hlayout); FloatParameterUI* startPUI = new FloatParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_propertyAxisRangeStart)); FloatParameterUI* endPUI = new FloatParameterUI(this, PROPERTY_FIELD(BinAndReduceModifier::_propertyAxisRangeEnd)); hlayout->addWidget(new QLabel(tr("From:"))); hlayout->addLayout(startPUI->createFieldLayout()); hlayout->addSpacing(12); hlayout->addWidget(new QLabel(tr("To:"))); hlayout->addLayout(endPUI->createFieldLayout()); startPUI->setEnabled(false); endPUI->setEnabled(false); connect(rangeUI->checkBox(), &QCheckBox::toggled, startPUI, &FloatParameterUI::setEnabled); connect(rangeUI->checkBox(), &QCheckBox::toggled, endPUI, &FloatParameterUI::setEnabled); // Status label. layout->addSpacing(6); layout->addWidget(statusLabel()); connect(this, &BinAndReduceModifierEditor::contentsChanged, this, &BinAndReduceModifierEditor::updateWidgets); }
/****************************************************************************** * Sets up the UI widgets of the editor. ******************************************************************************/ void ParticleDisplayEditor::createUI(const RolloutInsertionParameters& rolloutParams) { // Create a rollout. QWidget* rollout = createRollout(tr("Particle display"), rolloutParams, "display_objects.particles.html"); // Create the rollout contents. QGridLayout* layout = new QGridLayout(rollout); layout->setContentsMargins(4,4,4,4); layout->setSpacing(4); layout->setColumnStretch(1, 1); // Shading mode. VariantComboBoxParameterUI* shadingModeUI = new VariantComboBoxParameterUI(this, "shadingMode"); shadingModeUI->comboBox()->addItem(tr("Normal"), qVariantFromValue(ParticlePrimitive::NormalShading)); shadingModeUI->comboBox()->addItem(tr("Flat"), qVariantFromValue(ParticlePrimitive::FlatShading)); layout->addWidget(new QLabel(tr("Shading mode:")), 0, 0); layout->addWidget(shadingModeUI->comboBox(), 0, 1); // Rendering quality. VariantComboBoxParameterUI* renderingQualityUI = new VariantComboBoxParameterUI(this, "renderingQuality"); renderingQualityUI->comboBox()->addItem(tr("Low"), qVariantFromValue(ParticlePrimitive::LowQuality)); renderingQualityUI->comboBox()->addItem(tr("Medium"), qVariantFromValue(ParticlePrimitive::MediumQuality)); renderingQualityUI->comboBox()->addItem(tr("High"), qVariantFromValue(ParticlePrimitive::HighQuality)); renderingQualityUI->comboBox()->addItem(tr("Automatic"), qVariantFromValue(ParticlePrimitive::AutoQuality)); layout->addWidget(new QLabel(tr("Rendering quality:")), 1, 0); layout->addWidget(renderingQualityUI->comboBox(), 1, 1); // Shape. VariantComboBoxParameterUI* particleShapeUI = new VariantComboBoxParameterUI(this, "particleShape"); particleShapeUI->comboBox()->addItem(tr("Spherical"), qVariantFromValue(ParticlePrimitive::SphericalShape)); particleShapeUI->comboBox()->addItem(tr("Square"), qVariantFromValue(ParticlePrimitive::SquareShape)); layout->addWidget(new QLabel(tr("Shape:")), 2, 0); layout->addWidget(particleShapeUI->comboBox(), 2, 1); // Default radius. FloatParameterUI* radiusUI = new FloatParameterUI(this, PROPERTY_FIELD(ParticleDisplay::_defaultParticleRadius)); layout->addWidget(radiusUI->label(), 3, 0); layout->addLayout(radiusUI->createFieldLayout(), 3, 1); radiusUI->setMinValue(0); }