Performance: Update toolbar when required

This commit is contained in:
Magne Sjaastad
2023-10-17 09:34:19 +02:00
parent ff2286964a
commit 6858cfe3cf
5 changed files with 7 additions and 8 deletions

View File

@@ -191,7 +191,6 @@ void RimPlotCurve::fieldChangedByUi( const caf::PdmFieldHandle* changedField, co
updateCurveAppearance();
}
RiuPlotMainWindowTools::refreshToolbars();
replotParentPlot();
}

View File

@@ -1151,9 +1151,6 @@ void RimSummaryCurve::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
{
plot->updateAxes();
plot->updatePlotTitle();
RiuPlotMainWindow* mainPlotWindow = RiaGuiApplication::instance()->mainPlotWindow();
mainPlotWindow->updateMultiPlotToolBar();
}
else if ( changedField == &m_yPlotAxisProperties )
{

View File

@@ -684,8 +684,11 @@ void RiuPlotMainWindow::updateMultiPlotToolBar()
}
else
{
m_multiPlotToolBarEditor->setFields( toolBarFields );
m_multiPlotToolBarEditor->updateUi();
if ( !m_multiPlotToolBarEditor->isEditorDataEqualAndValid( toolBarFields ) )
{
m_multiPlotToolBarEditor->setFields( toolBarFields );
m_multiPlotToolBarEditor->updateUi();
}
m_multiPlotToolBarEditor->show();
}

View File

@@ -78,7 +78,7 @@ PdmUiToolBarEditor::~PdmUiToolBarEditor()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiToolBarEditor::isEditorDataValid( const std::vector<caf::PdmFieldHandle*>& fields ) const
bool PdmUiToolBarEditor::isEditorDataEqualAndValid( const std::vector<caf::PdmFieldHandle*>& fields ) const
{
if ( m_fields.size() == fields.size() && m_fieldViews.size() == fields.size() )
{

View File

@@ -61,7 +61,7 @@ public:
PdmUiToolBarEditor( const QString& title, QMainWindow* mainWindow );
~PdmUiToolBarEditor() override;
bool isEditorDataValid( const std::vector<caf::PdmFieldHandle*>& fields ) const;
bool isEditorDataEqualAndValid( const std::vector<caf::PdmFieldHandle*>& fields ) const;
void setFields( std::vector<caf::PdmFieldHandle*>& fields );
void clear();