mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4892 Add "Compare To ..." command in views
This commit is contained in:
@@ -40,11 +40,13 @@
|
||||
#include "RigMainGrid.h"
|
||||
#include "RigVirtualPerforationTransmissibilities.h"
|
||||
|
||||
#include "RiaOptionItemFactory.h"
|
||||
#include "Rim2dIntersectionView.h"
|
||||
#include "RimCellEdgeColors.h"
|
||||
#include "RimContextCommandBuilder.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseCellColors.h"
|
||||
#include "RimEclipseContourMapView.h"
|
||||
#include "RimEclipseFaultColors.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
@@ -53,11 +55,13 @@
|
||||
#include "RimFracture.h"
|
||||
#include "RimGeoMechCase.h"
|
||||
#include "RimGeoMechCellColors.h"
|
||||
#include "RimGeoMechContourMapView.h"
|
||||
#include "RimGeoMechView.h"
|
||||
#include "RimIntersection.h"
|
||||
#include "RimIntersectionBox.h"
|
||||
#include "RimLegendConfig.h"
|
||||
#include "RimPerforationInterval.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimSimWellInView.h"
|
||||
#include "RimStimPlanFractureTemplate.h"
|
||||
#include "RimTextAnnotation.h"
|
||||
@@ -148,6 +152,41 @@ void RiuViewerCommands::setOwnerView( Rim3dView* owner )
|
||||
m_reservoirView = owner;
|
||||
}
|
||||
|
||||
void RiuViewerCommands::addCompareToViewMenu( caf::CmdFeatureMenuBuilder* menuBuilder )
|
||||
{
|
||||
RimGridView* mainGridView = dynamic_cast<RimGridView*>( m_reservoirView.p() );
|
||||
if ( mainGridView && !mainGridView->activeComparisonView() )
|
||||
{
|
||||
std::vector<Rim3dView*> validComparisonViews;
|
||||
|
||||
std::vector<Rim3dView*> views;
|
||||
RiaApplication::instance()->project()->allViews( views );
|
||||
for ( auto view : views )
|
||||
{
|
||||
if ( !dynamic_cast<RimGridView*>( view ) ) continue;
|
||||
if ( dynamic_cast<RimEclipseContourMapView*>( view ) ) continue;
|
||||
if ( dynamic_cast<RimGeoMechContourMapView*>( view ) ) continue;
|
||||
|
||||
if ( view != mainGridView )
|
||||
{
|
||||
validComparisonViews.push_back( view );
|
||||
}
|
||||
}
|
||||
|
||||
if ( validComparisonViews.size() )
|
||||
{
|
||||
menuBuilder->subMenuStart( "Compare To ...", QIcon( ":/ComparisonView16x16.png" ) );
|
||||
for ( auto view : validComparisonViews )
|
||||
{
|
||||
menuBuilder->addCmdFeatureWithUserData( "RicCompareTo3dViewFeature",
|
||||
view->autoName(),
|
||||
QVariant::fromValue( static_cast<void*>( view ) ) );
|
||||
}
|
||||
menuBuilder->subMenuEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -518,6 +557,7 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
menuBuilder << "RicLinkViewFeature";
|
||||
menuBuilder << "RicShowLinkOptionsFeature";
|
||||
menuBuilder << "RicSetMasterViewFeature";
|
||||
addCompareToViewMenu( &menuBuilder );
|
||||
menuBuilder.addSeparator();
|
||||
menuBuilder << "RicUnLinkViewFeature";
|
||||
menuBuilder << "RicRemoveComparison3dViewFeature";
|
||||
|
||||
@@ -41,7 +41,8 @@ class QMouseEvent;
|
||||
namespace caf
|
||||
{
|
||||
class PdmObject;
|
||||
}
|
||||
class CmdFeatureMenuBuilder;
|
||||
} // namespace caf
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
@@ -89,6 +90,8 @@ private:
|
||||
|
||||
bool handleOverlayItemPicking( int winPosX, int winPosY );
|
||||
|
||||
void addCompareToViewMenu( caf::CmdFeatureMenuBuilder* menuBuilder );
|
||||
|
||||
static void addDefaultPickEventHandler( RicDefaultPickEventHandler* pickEventHandler );
|
||||
static void removeDefaultPickEventHandler( RicDefaultPickEventHandler* pickEventHandler );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user