@@ -41,12 +41,12 @@ using namespace mv::util;
4141
4242TransferFunctionPlugin::TransferFunctionPlugin (const PluginFactory* factory) :
4343 ViewPlugin(factory),
44- _dropWidget(nullptr ),
4544 _transferFunctionWidget(new TransferFunctionWidget()),
45+ _dropWidget(new DropWidget(_transferFunctionWidget)),
4646 _numPoints(0 ),
47- _settingsAction(this , " Settings" ),
48- _materialSettings(this , " Material Settings" ),
49- _primaryToolbarAction(this , " Primary Toolbar" )
47+ _settingsAction(new SettingsAction( this , " Settings" ) ),
48+ _materialSettings(new MaterialSettings( this , " Material Settings" ) ),
49+ _primaryToolbarAction(new HorizontalToolbarAction( this , " Primary Toolbar" ) )
5050{
5151 setObjectName (" TransferFunction" );
5252
@@ -59,21 +59,19 @@ TransferFunctionPlugin::TransferFunctionPlugin(const PluginFactory* factory) :
5959 shortcuts.add ({ QKeySequence (Qt::CTRL ), " Selection" , " Remove from selection" });
6060
6161 shortcuts.add ({ QKeySequence (Qt::Key_S), " Render" , " Scatter mode (default)" });
62-
63- _dropWidget = new DropWidget (_transferFunctionWidget);
6462
6563 getWidget ().setFocusPolicy (Qt::ClickFocus);
6664
67- _primaryToolbarAction. addAction (&_settingsAction. getDatasetsAction ());
65+ _primaryToolbarAction-> addAction (&_settingsAction-> getDatasetsAction ());
6866
69- _primaryToolbarAction. addAction (&_settingsAction. getSelectionAction ());
70- _primaryToolbarAction. addAction (&_settingsAction. getPointsAction ());
67+ _primaryToolbarAction-> addAction (&_settingsAction-> getSelectionAction ());
68+ _primaryToolbarAction-> addAction (&_settingsAction-> getPointsAction ());
7169
7270 connect (_transferFunctionWidget, &TransferFunctionWidget::customContextMenuRequested, this , [this ](const QPoint& point) {
7371 if (!_positionDataset.isValid ())
7472 return ;
7573
76- auto contextMenu = _settingsAction. getContextMenu ();
74+ auto contextMenu = _settingsAction-> getContextMenu ();
7775
7876 contextMenu->addSeparator ();
7977
@@ -172,7 +170,7 @@ void TransferFunctionPlugin::init()
172170
173171 layout->setContentsMargins (0 , 0 , 0 , 0 );
174172 layout->setSpacing (0 );
175- layout->addWidget (_primaryToolbarAction. createWidget (&getWidget ()));
173+ layout->addWidget (_primaryToolbarAction-> createWidget (&getWidget ()));
176174 layout->addWidget (_transferFunctionWidget, 100 );
177175
178176 auto & navigationAction = _transferFunctionWidget->getPointRendererNavigator ().getNavigationAction ();
@@ -181,12 +179,12 @@ void TransferFunctionPlugin::init()
181179 layout->addWidget (navigationWidget);
182180 layout->setAlignment (navigationWidget, Qt::AlignCenter);
183181
184- navigationAction.setParent (& _settingsAction);
182+ navigationAction.setParent (_settingsAction. get () );
185183 }
186184
187185 getWidget ().setLayout (layout);
188186
189- addDockingAction (& _materialSettings);
187+ addDockingAction (_materialSettings. get () );
190188
191189 // Set minimum size for the dock widget
192190 getWidget ().setMinimumSize (512 , 512 );
@@ -198,12 +196,12 @@ void TransferFunctionPlugin::init()
198196 connect (&_positionDataset, &Dataset<Points>::dataChanged, this , &TransferFunctionPlugin::updateVolumeData);
199197 connect (&_positionDataset, &Dataset<Points>::dataSelectionChanged, this , &TransferFunctionPlugin::updateSelection);
200198
201- connect (&_settingsAction. getPointsAction ().getSizeAction (), &DecimalAction::valueChanged, [this ](float size) {
199+ connect (&_settingsAction-> getPointsAction ().getSizeAction (), &DecimalAction::valueChanged, [this ](float size) {
202200 _transferFunctionWidget->setPointSize (size);
203201 _transferFunctionWidget->update ();
204202 });
205203
206- connect (&_settingsAction. getPointsAction ().getOpacityAction (), &DecimalAction::valueChanged, [this ](float opacity) {
204+ connect (&_settingsAction-> getPointsAction ().getOpacityAction (), &DecimalAction::valueChanged, [this ](float opacity) {
207205 _transferFunctionWidget->setPointOpacity (opacity);
208206 _transferFunctionWidget->update ();
209207 });
@@ -266,8 +264,8 @@ void TransferFunctionPlugin::updateVolumeData()
266264 if (_positionDataset.isValid ()) {
267265
268266 // ensure point size and opacity is updated
269- _transferFunctionWidget->setPointOpacity (_settingsAction. getPointsAction ().getOpacity ());
270- _transferFunctionWidget->setPointSize (_settingsAction. getPointsAction ().getSize ());
267+ _transferFunctionWidget->setPointOpacity (_settingsAction-> getPointsAction ().getOpacity ());
268+ _transferFunctionWidget->setPointSize (_settingsAction-> getPointsAction ().getSize ());
271269
272270 // Determine number of points depending on if it's a full dataset or a subset
273271 _numPoints = _positionDataset->getNumPoints ();
@@ -359,16 +357,16 @@ void TransferFunctionPlugin::fromVariantMap(const QVariantMap& variantMap)
359357
360358 variantMapMustContain (variantMap, " Settings" );
361359
362- _primaryToolbarAction. fromParentVariantMap (variantMap);
363- _settingsAction. fromParentVariantMap (variantMap);
360+ _primaryToolbarAction-> fromParentVariantMap (variantMap);
361+ _settingsAction-> fromParentVariantMap (variantMap);
364362}
365363
366364QVariantMap TransferFunctionPlugin::toVariantMap () const
367365{
368366 QVariantMap variantMap = ViewPlugin::toVariantMap ();
369367
370- _primaryToolbarAction. insertIntoVariantMap (variantMap);
371- _settingsAction. insertIntoVariantMap (variantMap);
368+ _primaryToolbarAction-> insertIntoVariantMap (variantMap);
369+ _settingsAction-> insertIntoVariantMap (variantMap);
372370
373371 return variantMap;
374372}
0 commit comments