mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Hide summary multiplot tree node if only one summary plot
This commit is contained in:
parent
ebba37a623
commit
28dcd47d73
@ -52,6 +52,7 @@ CAF_PDM_SOURCE_INIT( RimSummaryMultiPlot, "MultiSummaryPlot" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryMultiPlot::RimSummaryMultiPlot()
|
||||
: duplicatePlot( this )
|
||||
, refreshTree( this )
|
||||
{
|
||||
CAF_PDM_InitObject( "Multi Summary Plot" );
|
||||
this->setDeletable( true );
|
||||
@ -101,9 +102,6 @@ void RimSummaryMultiPlot::addPlot( RimPlot* plot )
|
||||
CVF_ASSERT( sumPlot != nullptr );
|
||||
if ( sumPlot )
|
||||
{
|
||||
// Not required to connect signal here, as RimSummaryMultiPlot::insertPlot() will always be called from
|
||||
// RimMultiPlot::addPlot()
|
||||
|
||||
RimMultiPlot::addPlot( plot );
|
||||
}
|
||||
}
|
||||
@ -119,6 +117,7 @@ void RimSummaryMultiPlot::insertPlot( RimPlot* plot, size_t index )
|
||||
{
|
||||
sumPlot->curvesChanged.connect( this, &RimSummaryMultiPlot::onSubPlotChanged );
|
||||
RimMultiPlot::insertPlot( plot, index );
|
||||
signalRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
@ -151,6 +150,7 @@ void RimSummaryMultiPlot::removePlot( RimPlot* plot )
|
||||
if ( sumPlot )
|
||||
{
|
||||
RimMultiPlot::removePlot( plot );
|
||||
signalRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
@ -535,6 +535,14 @@ void RimSummaryMultiPlot::duplicate()
|
||||
duplicatePlot.send( this );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryMultiPlot::signalRefresh()
|
||||
{
|
||||
refreshTree.send( this );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -46,6 +46,7 @@ class RimSummaryMultiPlot : public RimMultiPlot, public RimSummaryDataSourceStep
|
||||
|
||||
public:
|
||||
caf::Signal<RimSummaryMultiPlot*> duplicatePlot;
|
||||
caf::Signal<RimSummaryMultiPlot*> refreshTree;
|
||||
|
||||
public:
|
||||
RimSummaryMultiPlot();
|
||||
@ -73,11 +74,12 @@ public:
|
||||
|
||||
void summaryPlotItemInfos( QList<caf::PdmOptionItemInfo>* optionInfos ) const;
|
||||
|
||||
std::vector<RimSummaryPlot*> summaryPlots() const;
|
||||
|
||||
protected:
|
||||
bool handleGlobalKeyEvent( QKeyEvent* keyEvent ) override;
|
||||
bool handleGlobalWheelEvent( QWheelEvent* wheelEvent ) override;
|
||||
|
||||
|
||||
void initAfterRead() override;
|
||||
|
||||
private:
|
||||
@ -88,11 +90,11 @@ private:
|
||||
QString uiConfigName,
|
||||
caf::PdmUiEditorAttribute* attribute ) override;
|
||||
|
||||
std::vector<RimSummaryPlot*> summaryPlots() const;
|
||||
|
||||
void updatePlotWindowTitle() override;
|
||||
|
||||
void duplicate();
|
||||
void signalRefresh();
|
||||
|
||||
void onSubPlotChanged( const caf::SignalEmitter* emitter );
|
||||
|
||||
private:
|
||||
|
@ -19,10 +19,12 @@
|
||||
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryMultiPlot.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
|
||||
#include "RiuPlotMainWindowTools.h"
|
||||
|
||||
#include "cafPdmFieldReorderCapability.h"
|
||||
#include "cafPdmUiTreeOrdering.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT( RimSummaryMultiPlotCollection, "RimSummaryMultiPlotCollection" );
|
||||
|
||||
@ -53,6 +55,7 @@ void RimSummaryMultiPlotCollection::initAfterRead()
|
||||
for ( auto& plot : m_summaryMultiPlots )
|
||||
{
|
||||
plot->duplicatePlot.connect( this, &RimSummaryMultiPlotCollection::onDuplicatePlot );
|
||||
plot->refreshTree.connect( this, &RimSummaryMultiPlotCollection::onRefreshTree );
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,6 +82,7 @@ void RimSummaryMultiPlotCollection::addSummaryMultiPlot( RimSummaryMultiPlot* pl
|
||||
{
|
||||
m_summaryMultiPlots().push_back( plot );
|
||||
plot->duplicatePlot.connect( this, &RimSummaryMultiPlotCollection::onDuplicatePlot );
|
||||
plot->refreshTree.connect( this, &RimSummaryMultiPlotCollection::onRefreshTree );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -119,3 +123,32 @@ void RimSummaryMultiPlotCollection::onDuplicatePlot( const caf::SignalEmitter* e
|
||||
|
||||
RiuPlotMainWindowTools::selectAsCurrentItem( plotCopy, true );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryMultiPlotCollection::onRefreshTree( const caf::SignalEmitter* emitter, RimSummaryMultiPlot* plotRequesting )
|
||||
{
|
||||
if ( !plotRequesting ) return;
|
||||
updateConnectedEditors();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryMultiPlotCollection::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering,
|
||||
QString uiConfigName /*= ""*/ )
|
||||
{
|
||||
for ( auto& plot : m_summaryMultiPlots() )
|
||||
{
|
||||
if ( plot->summaryPlots().size() == 1 )
|
||||
{
|
||||
uiTreeOrdering.add( plot->summaryPlots()[0] );
|
||||
}
|
||||
else
|
||||
{
|
||||
uiTreeOrdering.add( plot );
|
||||
}
|
||||
}
|
||||
uiTreeOrdering.skipRemainingChildren( true );
|
||||
}
|
||||
|
@ -45,7 +45,10 @@ public:
|
||||
void addSummaryMultiPlot( RimSummaryMultiPlot* plot );
|
||||
|
||||
protected:
|
||||
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
|
||||
|
||||
void onDuplicatePlot( const caf::SignalEmitter* emitter, RimSummaryMultiPlot* plotToDuplicate );
|
||||
void onRefreshTree( const caf::SignalEmitter* emitter, RimSummaryMultiPlot* plotRequesting );
|
||||
|
||||
void initAfterRead() override;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user