45 BaseWidget(parent,
"FilterSetupWidget",
"FilterSetup"),
50 QVBoxLayout* toptopLayout =
new QVBoxLayout(
this);
51 toptopLayout->setMargin(0);
53 QWidget* topWidget =
new QWidget;
54 QVBoxLayout* topLayout =
new QVBoxLayout(topWidget);
55 topLayout->setMargin(0);
60 toptopLayout->addWidget(mFrame);
64 toptopLayout->addWidget(topWidget);
68 connect(mObscuredListener.get(), SIGNAL(obscured(
bool)),
this, SLOT(obscuredSlot(
bool)));
72 mInputsWidget =
new OptionsWidget(mServices->view(), mServices->patient(),
this);
73 mOutputsWidget =
new OptionsWidget(mServices->view(), mServices->patient(),
this);
74 mOptionsWidget =
new OptionsWidget(mServices->view(), mServices->patient(),
this);
76 mAdvancedButton =
new QCheckBox(
"Show advanced options",
this);
77 connect(mAdvancedButton, SIGNAL(stateChanged(
int)),
this, SLOT(showAdvancedOptions(
int)));
79 topLayout->addWidget(this->
wrapInGroupBox(mInputsWidget,
"Input"));
80 topLayout->addWidget(this->
wrapInGroupBox(mOutputsWidget,
"Output"));
81 topLayout->addWidget(mPresetWidget);
82 mOptionsGroupBox = this->
wrapInGroupBox(mOptionsWidget,
"Options");
83 topLayout->addWidget(mOptionsGroupBox);
84 topLayout->addWidget(mAdvancedButton);
87 void FilterSetupWidget::obscuredSlot(
bool obscured)
90 mCurrentFilter->setActive(!obscured);
93 void FilterSetupWidget::showAdvancedOptions(
int state)
107 void FilterSetupWidget::rebuildOptions()
115 QString name(
"None");
119 name = mCurrentFilter->getName();
120 help = mCurrentFilter->getHelp();
122 return QString(
"<html>"
125 "</html>").arg(name).arg(help);
128 void FilterSetupWidget::setVisibilityOfOptionsAndAdvancedOptions()
131 this->showAdvancedOptions(mAdvancedButton->isChecked());
132 mOptionsGroupBox->setVisible(mOptionsWidget->
hasOptions());
137 if (filter==mCurrentFilter)
141 mCurrentFilter->setActive(
false);
143 mCurrentFilter = filter;
144 connect(mCurrentFilter.get(), &
Filter::changed,
this, &FilterSetupWidget::rebuildOptions);
147 mFrame->setTitle(mCurrentFilter->getName());
151 mCurrentFilter->setActive(!mObscuredListener->isObscured());
153 mInputsWidget->
setOptions(mCurrentFilter->getUid(), mCurrentFilter->getInputTypes(),
false);
154 mOutputsWidget->
setOptions(mCurrentFilter->getUid(), mCurrentFilter->getOutputTypes(),
false);
155 mOptionsWidget->
setOptions(mCurrentFilter->getUid(), mCurrentFilter->getOptions(),
false);
158 if(mCurrentFilter->hasPresets())
162 mPresetWidget->
setFilter(mCurrentFilter);
163 mCurrentFilter->requestSetPresetSlot(
"default");
164 mPresetWidget->show();
166 mPresetWidget->hide();
168 this->setObjectName(mCurrentFilter->getType());
170 this->setVisibilityOfOptionsAndAdvancedOptions();
174 mInputsWidget->
setOptions(
"", std::vector<PropertyPtr>(),
false);
175 mOutputsWidget->
setOptions(
"", std::vector<PropertyPtr>(),
false);
176 mOptionsWidget->
setOptions(
"", std::vector<PropertyPtr>(),
false);
184 if(mOptionsGroupBox->isHidden())
188 mOptionsGroupBox->show();
190 mAdvancedButton->show();
196 mOptionsGroupBox->hide();
197 mAdvancedButton->hide();
boost::shared_ptr< class VisServices > VisServicesPtr
boost::shared_ptr< class Filter > FilterPtr
virtual void requestSetPresetSlot(QString name)=0
Helper class for xml files used to store ssc/cx data.