mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#11357 Reorganize menu in 3D view
Simplify menu text for range filter Reorganize to improve readability Simplify cell filter menu in Project Tree
This commit is contained in:
parent
9d66e6195e
commit
89bd3a8c90
@ -26,6 +26,6 @@ CAF_CMD_SOURCE_INIT( RicNewCellRangeFilterFeature, "RicNewCellRangeFilterFeature
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicNewCellRangeFilterFeature::RicNewCellRangeFilterFeature()
|
||||
: RicNewRangeFilterSliceFeature( "New Range Filter", -1 )
|
||||
: RicNewRangeFilterSliceFeature( "IJK Filter", -1 )
|
||||
{
|
||||
}
|
||||
|
@ -92,5 +92,5 @@ void RicNewPolygonFilterFeature::onActionTriggered( bool isChecked )
|
||||
void RicNewPolygonFilterFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setIcon( QIcon( ":/CellFilter_Polygon.png" ) );
|
||||
actionToSetup->setText( "New User Defined Polygon Filter" );
|
||||
actionToSetup->setText( "User Defined Polygon Filter" );
|
||||
}
|
||||
|
@ -18,10 +18,13 @@
|
||||
|
||||
#include "RicNewRangeFilterSliceFeature.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
|
||||
#include "Rim3dView.h"
|
||||
#include "RimCase.h"
|
||||
#include "RimCellFilterCollection.h"
|
||||
#include "RimCellRangeFilter.h"
|
||||
#include "RimGridView.h"
|
||||
|
||||
#include "Riu3DMainWindowTools.h"
|
||||
|
||||
@ -41,18 +44,31 @@ RicNewRangeFilterSliceFeature::RicNewRangeFilterSliceFeature( QString cmdText, i
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewRangeFilterSliceFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
// Find the selected Cell Filter Collection
|
||||
RimCellFilterCollection* filterCollection = nullptr;
|
||||
RimCase* sourceCase = nullptr;
|
||||
|
||||
std::vector<RimCellFilterCollection*> colls = caf::selectedObjectsByTypeStrict<RimCellFilterCollection*>();
|
||||
if ( colls.empty() ) return;
|
||||
RimCellFilterCollection* filtColl = colls[0];
|
||||
if ( !colls.empty() )
|
||||
{
|
||||
filterCollection = colls.front();
|
||||
sourceCase = filterCollection->firstAncestorOrThisOfTypeAsserted<Rim3dView>()->ownerCase();
|
||||
}
|
||||
|
||||
// and the case to use
|
||||
RimCase* sourceCase = filtColl->firstAncestorOrThisOfTypeAsserted<Rim3dView>()->ownerCase();
|
||||
if ( !filterCollection )
|
||||
{
|
||||
// Find filter collection for active view
|
||||
|
||||
if ( sourceCase )
|
||||
RimGridView* viewOrComparisonView = RiaApplication::instance()->activeMainOrComparisonGridView();
|
||||
if ( !viewOrComparisonView ) return;
|
||||
|
||||
filterCollection = viewOrComparisonView->cellFilterCollection();
|
||||
sourceCase = viewOrComparisonView->ownerCase();
|
||||
}
|
||||
|
||||
if ( sourceCase && filterCollection )
|
||||
{
|
||||
int gridIndex = 0;
|
||||
RimCellFilter* lastCreatedOrUpdated = filtColl->addNewCellRangeFilter( sourceCase, gridIndex, m_sliceDirection );
|
||||
RimCellFilter* lastCreatedOrUpdated = filterCollection->addNewCellRangeFilter( sourceCase, gridIndex, m_sliceDirection );
|
||||
if ( lastCreatedOrUpdated )
|
||||
{
|
||||
Riu3DMainWindowTools::selectAsCurrentItem( lastCreatedOrUpdated );
|
||||
|
@ -26,6 +26,6 @@ CAF_CMD_SOURCE_INIT( RicNewRangeFilterSliceIFeature, "RicNewRangeFilterSliceIFea
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicNewRangeFilterSliceIFeature::RicNewRangeFilterSliceIFeature()
|
||||
: RicNewRangeFilterSliceFeature( "New Range Filter - I slice", 0 )
|
||||
: RicNewRangeFilterSliceFeature( "I Slice", 0 )
|
||||
{
|
||||
}
|
||||
|
@ -26,6 +26,6 @@ CAF_CMD_SOURCE_INIT( RicNewRangeFilterSliceJFeature, "RicNewRangeFilterSliceJFea
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicNewRangeFilterSliceJFeature::RicNewRangeFilterSliceJFeature()
|
||||
: RicNewRangeFilterSliceFeature( "New Range Filter - J slice", 1 )
|
||||
: RicNewRangeFilterSliceFeature( "J Slice", 1 )
|
||||
{
|
||||
}
|
||||
|
@ -26,6 +26,6 @@ CAF_CMD_SOURCE_INIT( RicNewRangeFilterSliceKFeature, "RicNewRangeFilterSliceKFea
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicNewRangeFilterSliceKFeature::RicNewRangeFilterSliceKFeature()
|
||||
: RicNewRangeFilterSliceFeature( "New Range Filter - K slice", 2 )
|
||||
: RicNewRangeFilterSliceFeature( "K Slice", 2 )
|
||||
{
|
||||
}
|
||||
|
@ -61,5 +61,5 @@ void RicNewUserDefinedFilterFeature::onActionTriggered( bool isChecked )
|
||||
void RicNewUserDefinedFilterFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setIcon( QIcon( ":/CellFilter_UserDefined.png" ) );
|
||||
actionToSetup->setText( "New User Defined IJK Filter" );
|
||||
actionToSetup->setText( "User Defined IJK Filter" );
|
||||
}
|
||||
|
@ -61,5 +61,5 @@ void RicNewUserDefinedIndexFilterFeature::onActionTriggered( bool isChecked )
|
||||
void RicNewUserDefinedIndexFilterFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setIcon( QIcon( ":/CellFilter_UserDefined.png" ) );
|
||||
actionToSetup->setText( "New User Defined Index Filter" );
|
||||
actionToSetup->setText( "User Defined Index Filter" );
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ void RimCellFilterCollection::appendMenuItems( caf::CmdFeatureMenuBuilder& menuB
|
||||
menuBuilder << "RicPasteCellFiltersFeature";
|
||||
menuBuilder << "Separator";
|
||||
|
||||
menuBuilder.subMenuStart( "New Polygon Filter", QIcon( ":/CellFilter_Polygon.png" ) );
|
||||
menuBuilder.subMenuStart( "Polygon Filter", QIcon( ":/CellFilter_Polygon.png" ) );
|
||||
{
|
||||
auto project = RimProject::current();
|
||||
auto polygonCollection = project->activeOilField()->polygonCollection();
|
||||
@ -154,12 +154,12 @@ void RimCellFilterCollection::appendMenuItems( caf::CmdFeatureMenuBuilder& menuB
|
||||
|
||||
menuBuilder << "RicNewPolygonFilterFeature";
|
||||
menuBuilder << "Separator";
|
||||
menuBuilder.subMenuStart( "Slice Filters" );
|
||||
menuBuilder.subMenuStart( "Range Filter" );
|
||||
menuBuilder << "RicNewRangeFilterSliceIFeature";
|
||||
menuBuilder << "RicNewRangeFilterSliceJFeature";
|
||||
menuBuilder << "RicNewRangeFilterSliceKFeature";
|
||||
menuBuilder.subMenuEnd();
|
||||
menuBuilder << "RicNewCellRangeFilterFeature";
|
||||
menuBuilder.subMenuEnd();
|
||||
menuBuilder << "RicNewCellIndexFilterFeature";
|
||||
menuBuilder << "Separator";
|
||||
menuBuilder << "RicNewUserDefinedFilterFeature";
|
||||
|
@ -250,7 +250,7 @@ void RimPolygon::onColorTagClicked( const SignalEmitter* emitter, size_t index )
|
||||
void RimPolygon::appendPolygonMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder )
|
||||
{
|
||||
menuBuilder << "RicNewPolygonIntersectionFeature";
|
||||
menuBuilder.addCmdFeature( "RicNewPolygonFilterFeature", "New Polygon Filter" );
|
||||
menuBuilder.addCmdFeature( "RicNewPolygonFilterFeature", "Create Polygon Filter" );
|
||||
menuBuilder << "Separator";
|
||||
|
||||
menuBuilder << "RicDuplicatePolygonFeature";
|
||||
|
@ -162,6 +162,9 @@ void RiuViewerCommands::setOwnerView( Rim3dView* owner )
|
||||
m_reservoirView = owner;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuViewerCommands::addCompareToViewMenu( caf::CmdFeatureMenuBuilder* menuBuilder )
|
||||
{
|
||||
auto* mainGridView = m_reservoirView.p();
|
||||
@ -266,18 +269,11 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
|
||||
if ( firstHitPart && firstPartTriangleIndex != cvf::UNDEFINED_UINT )
|
||||
{
|
||||
const RivSourceInfo* rivSourceInfo = dynamic_cast<const RivSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
|
||||
const RivFemPickSourceInfo* femSourceInfo = dynamic_cast<const RivFemPickSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
|
||||
const RivReservoirSurfaceIntersectionSourceInfo* surfIntersectSourceInfo =
|
||||
dynamic_cast<const RivReservoirSurfaceIntersectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
|
||||
const RivExtrudedCurveIntersectionSourceInfo* crossSectionSourceInfo =
|
||||
dynamic_cast<const RivExtrudedCurveIntersectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
|
||||
const RivBoxIntersectionSourceInfo* intersectionBoxSourceInfo =
|
||||
dynamic_cast<const RivBoxIntersectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* rivSourceInfo = dynamic_cast<const RivSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* femSourceInfo = dynamic_cast<const RivFemPickSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* surfIntersectSourceInfo = dynamic_cast<const RivReservoirSurfaceIntersectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* crossSectionSourceInfo = dynamic_cast<const RivExtrudedCurveIntersectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* intersectionBoxSourceInfo = dynamic_cast<const RivBoxIntersectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
|
||||
if ( rivSourceInfo || femSourceInfo || crossSectionSourceInfo || intersectionBoxSourceInfo || surfIntersectSourceInfo )
|
||||
{
|
||||
@ -308,12 +304,6 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
|
||||
RiuSelectionItem* selItem = new RiuGeneralSelectionItem( surfIntersectSourceInfo->intersection() );
|
||||
Riu3dSelectionManager::instance()->setSelectedItem( selItem, Riu3dSelectionManager::RUI_TEMPORARY );
|
||||
|
||||
if ( gridView )
|
||||
{
|
||||
// menuBuilder << "RicHideSurfaceFeature"; // Not yet created...
|
||||
// menuBuilder.addSeparator();
|
||||
}
|
||||
}
|
||||
else if ( crossSectionSourceInfo )
|
||||
{
|
||||
@ -383,21 +373,23 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
kSliceList.push_back( std::max( static_cast<int>( k + 1 ), 1 ) );
|
||||
kSliceList.push_back( static_cast<int>( m_currentGridIdx ) );
|
||||
|
||||
menuBuilder.subMenuStart( "Range Filter Slice", QIcon( ":/CellFilter_Range.png" ) );
|
||||
menuBuilder.subMenuStart( "Range Filter", QIcon( ":/CellFilter_Range.png" ) );
|
||||
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewRangeFilterSlice3dviewFeature", "I-slice Range Filter", iSliceList );
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewRangeFilterSlice3dviewFeature", "J-slice Range Filter", jSliceList );
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewRangeFilterSlice3dviewFeature", "K-slice Range Filter", kSliceList );
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewRangeFilterSlice3dviewFeature", "I Slice", iSliceList );
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewRangeFilterSlice3dviewFeature", "J Slice", jSliceList );
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewRangeFilterSlice3dviewFeature", "K Slice", kSliceList );
|
||||
menuBuilder.addCmdFeature( "RicNewCellRangeFilterFeature", "IJK Filter" );
|
||||
|
||||
menuBuilder.subMenuEnd();
|
||||
}
|
||||
|
||||
menuBuilder << "RicNewPolygonFilter3dviewFeature";
|
||||
menuBuilder.addCmdFeature( "RicCreatePolygonFeature", "Polygon" );
|
||||
|
||||
// Property filter commands
|
||||
menuBuilder << "RicEclipsePropertyFilterNewInViewFeature";
|
||||
menuBuilder << "RicGeoMechPropertyFilterNewInViewFeature";
|
||||
|
||||
// Polygon commands
|
||||
menuBuilder << "RicNewPolygonFilter3dviewFeature";
|
||||
|
||||
menuBuilder.addSeparator();
|
||||
|
||||
menuBuilder.subMenuStart( "Intersections", QIcon( ":/IntersectionXPlane16x16.png" ) );
|
||||
@ -446,14 +438,15 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
|
||||
menuBuilder << "RicToggleMeasurementModeFeature";
|
||||
menuBuilder << "RicTogglePolyMeasurementModeFeature";
|
||||
menuBuilder.addCmdFeature( "RicCreatePolygonFeature", "Polygon" );
|
||||
}
|
||||
}
|
||||
|
||||
// Well log curve creation commands
|
||||
if ( firstHitPart && firstHitPart->sourceInfo() )
|
||||
{
|
||||
RimWellPath* wellPath = nullptr;
|
||||
const RivWellPathSourceInfo* wellPathSourceInfo = dynamic_cast<const RivWellPathSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
RimWellPath* wellPath = nullptr;
|
||||
const auto* wellPathSourceInfo = dynamic_cast<const RivWellPathSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
if ( wellPathSourceInfo )
|
||||
{
|
||||
wellPath = wellPathSourceInfo->wellPath();
|
||||
@ -540,7 +533,7 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
menuBuilder << "RicDuplicateWellPathFeature";
|
||||
}
|
||||
|
||||
const RivSimWellPipeSourceInfo* eclipseWellSourceInfo = dynamic_cast<const RivSimWellPipeSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* eclipseWellSourceInfo = dynamic_cast<const RivSimWellPipeSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
if ( eclipseWellSourceInfo )
|
||||
{
|
||||
RimSimWellInView* well = eclipseWellSourceInfo->well();
|
||||
@ -597,11 +590,6 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
menuBuilder << "RicSelectColorResult";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
menuBuilder.addSeparator();
|
||||
menuBuilder << "RicCreateTextAnnotationIn3dViewFeature";
|
||||
}
|
||||
|
||||
if ( gridView )
|
||||
{
|
||||
@ -613,19 +601,27 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
menuBuilder << "RicCreateGridCrossPlotFeature";
|
||||
}
|
||||
menuBuilder.addSeparator();
|
||||
menuBuilder.subMenuStart( "Export" );
|
||||
menuBuilder << "RicExportEclipseInputGridFeature";
|
||||
menuBuilder << "RicSaveEclipseInputActiveVisibleCellsFeature";
|
||||
menuBuilder << "RicSaveEclipseResultAsInputPropertyFeature";
|
||||
menuBuilder << "RicExportContourMapToTextFeature";
|
||||
menuBuilder.subMenuEnd();
|
||||
menuBuilder.addSeparator();
|
||||
|
||||
#ifdef USE_QTCHARTS
|
||||
menuBuilder << "RicCreateGridStatisticsPlotFeature";
|
||||
#endif
|
||||
menuBuilder << "RicShowGridStatisticsFeature";
|
||||
menuBuilder << "RicSelectColorResult";
|
||||
menuBuilder << "RicCopyGridStatisticsToClipboardFeature";
|
||||
menuBuilder << "RicSelectColorResult";
|
||||
}
|
||||
|
||||
menuBuilder << "RicExportContourMapToTextFeature";
|
||||
if ( firstHitPart )
|
||||
{
|
||||
menuBuilder.addSeparator();
|
||||
menuBuilder << "RicCreateTextAnnotationIn3dViewFeature";
|
||||
}
|
||||
|
||||
menuBuilder.appendToMenu( &menu );
|
||||
|
||||
@ -719,12 +715,10 @@ void RiuViewerCommands::handlePickAction( int winPosX, int winPosY, Qt::Keyboard
|
||||
|
||||
if ( firstHitPart && firstHitPart->sourceInfo() )
|
||||
{
|
||||
// clang-format off
|
||||
const RivObjectSourceInfo* rivObjectSourceInfo = dynamic_cast<const RivObjectSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const RivSimWellPipeSourceInfo* eclipseWellSourceInfo = dynamic_cast<const RivSimWellPipeSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const RivWellConnectionSourceInfo* wellConnectionSourceInfo = dynamic_cast<const RivWellConnectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const RivSeismicSectionSourceInfo* seismicSourceInfo = dynamic_cast<const RivSeismicSectionSourceInfo*>(firstHitPart->sourceInfo());
|
||||
// clang-format on
|
||||
const auto* rivObjectSourceInfo = dynamic_cast<const RivObjectSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* eclipseWellSourceInfo = dynamic_cast<const RivSimWellPipeSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* wellConnectionSourceInfo = dynamic_cast<const RivWellConnectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
const auto* seismicSourceInfo = dynamic_cast<const RivSeismicSectionSourceInfo*>( firstHitPart->sourceInfo() );
|
||||
|
||||
if ( rivObjectSourceInfo )
|
||||
{
|
||||
@ -813,21 +807,20 @@ void RiuViewerCommands::handlePickAction( int winPosX, int winPosY, Qt::Keyboard
|
||||
RiuMainWindow::instance()->setResultInfo( resultInfoText );
|
||||
}
|
||||
}
|
||||
else if ( const RivReservoirSurfaceIntersectionSourceInfo* surfIntersectSourceInfo =
|
||||
else if ( const auto* surfIntersectSourceInfo =
|
||||
dynamic_cast<const RivReservoirSurfaceIntersectionSourceInfo*>( firstHitPart->sourceInfo() ) )
|
||||
{
|
||||
RiuMainWindow::instance()->selectAsCurrentItem( surfIntersectSourceInfo->intersection() );
|
||||
}
|
||||
|
||||
else if ( const RivExtrudedCurveIntersectionSourceInfo* crossSectionSourceInfo =
|
||||
else if ( const auto* crossSectionSourceInfo =
|
||||
dynamic_cast<const RivExtrudedCurveIntersectionSourceInfo*>( firstHitPart->sourceInfo() ) )
|
||||
{
|
||||
bool allowActiveViewChange = dynamic_cast<Rim2dIntersectionView*>( m_viewer->ownerViewWindow() ) == nullptr;
|
||||
|
||||
RiuMainWindow::instance()->selectAsCurrentItem( crossSectionSourceInfo->intersection(), allowActiveViewChange );
|
||||
}
|
||||
else if ( const RivBoxIntersectionSourceInfo* intersectionBoxSourceInfo =
|
||||
dynamic_cast<const RivBoxIntersectionSourceInfo*>( firstHitPart->sourceInfo() ) )
|
||||
else if ( const auto* intersectionBoxSourceInfo = dynamic_cast<const RivBoxIntersectionSourceInfo*>( firstHitPart->sourceInfo() ) )
|
||||
{
|
||||
RiuMainWindow::instance()->selectAsCurrentItem( intersectionBoxSourceInfo->intersectionBox() );
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user