mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Add polygon file readers and make sure UI items are in sync
* Add polygon reader for POL file format * Add CSV import * Add helper function to create tag with color and text * Show polygon color as tag, allow color edit by clicking on tag * Support optional header in csv file * Add Reload on polygon file * Show warning icon if no polygons * Improve logging text * Do not show file polygon in view if no polygons are imported * Use appendMenuItems * Set default polygon color to orange * Enter edit state when creating a new polygon * Fix missing UI text in menu builder
This commit is contained in:
@@ -23,6 +23,8 @@
|
||||
#include "RimPolygonFile.h"
|
||||
#include "RimProject.h"
|
||||
|
||||
#include "cafCmdFeatureMenuBuilder.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT( RimPolygonCollection, "RimPolygonCollection" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -30,7 +32,7 @@ CAF_PDM_SOURCE_INIT( RimPolygonCollection, "RimPolygonCollection" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimPolygonCollection::RimPolygonCollection()
|
||||
{
|
||||
CAF_PDM_InitObject( "Polygons (Under construction)", ":/PolylinesFromFile16x16.png" );
|
||||
CAF_PDM_InitObject( "Polygons", ":/PolylinesFromFile16x16.png" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_polygons, "Polygons", "Polygons" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_polygonFiles, "PolygonFiles", "Polygon Files" );
|
||||
@@ -66,7 +68,7 @@ void RimPolygonCollection::addUserDefinedPolygon( RimPolygon* polygon )
|
||||
{
|
||||
m_polygons().push_back( polygon );
|
||||
|
||||
connectSignals( polygon );
|
||||
connectPolygonSignals( polygon );
|
||||
|
||||
updateViewTreeItems();
|
||||
scheduleRedrawViews();
|
||||
@@ -90,6 +92,8 @@ void RimPolygonCollection::addPolygonFile( RimPolygonFile* polygonFile )
|
||||
{
|
||||
m_polygonFiles().push_back( polygonFile );
|
||||
|
||||
connectPolygonFileSignals( polygonFile );
|
||||
|
||||
updateViewTreeItems();
|
||||
scheduleRedrawViews();
|
||||
}
|
||||
@@ -150,6 +154,15 @@ void RimPolygonCollection::childFieldChangedByUi( const caf::PdmFieldHandle* cha
|
||||
scheduleRedrawViews();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPolygonCollection::appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const
|
||||
{
|
||||
menuBuilder << "RicCreatePolygonFeature";
|
||||
menuBuilder << "RicImportPolygonFileFeature";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -178,19 +191,39 @@ void RimPolygonCollection::scheduleRedrawViews()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPolygonCollection::connectSignals( RimPolygon* polygon )
|
||||
void RimPolygonCollection::connectPolygonSignals( RimPolygon* polygon )
|
||||
{
|
||||
if ( polygon )
|
||||
{
|
||||
polygon->objectChanged.connect( this, &RimPolygonCollection::onObjectChanged );
|
||||
polygon->objectChanged.connect( this, &RimPolygonCollection::onPolygonChanged );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPolygonCollection::onObjectChanged( const caf::SignalEmitter* emitter )
|
||||
void RimPolygonCollection::connectPolygonFileSignals( RimPolygonFile* polygonFile )
|
||||
{
|
||||
if ( polygonFile )
|
||||
{
|
||||
polygonFile->objectChanged.connect( this, &RimPolygonCollection::onPolygonFileChanged );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPolygonCollection::onPolygonChanged( const caf::SignalEmitter* emitter )
|
||||
{
|
||||
scheduleRedrawViews();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPolygonCollection::onPolygonFileChanged( const caf::SignalEmitter* emitter )
|
||||
{
|
||||
updateViewTreeItems();
|
||||
scheduleRedrawViews();
|
||||
}
|
||||
|
||||
@@ -201,6 +234,11 @@ void RimPolygonCollection::initAfterRead()
|
||||
{
|
||||
for ( auto& p : m_polygons() )
|
||||
{
|
||||
connectSignals( p );
|
||||
connectPolygonSignals( p );
|
||||
}
|
||||
|
||||
for ( auto& pf : m_polygonFiles() )
|
||||
{
|
||||
connectPolygonFileSignals( pf );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user