theMenu->addAction( action( DuplicateStricklerTableId ) );
theMenu->addSeparator();
- if ( !isLandCoversScalarMapModeOn( anActiveViewId ) ) {
+ Handle(HYDROData_StricklerTable) aTable =
+ Handle(HYDROData_StricklerTable)::DownCast( aSeq.First() );
+ QString aCurrentTable =
+ HYDROGUI_DataObject::dataObjectEntry( getLandCoverColoringTable( anActiveViewId ) );
+ bool isUsed = aCurrentTable == HYDROGUI_DataObject::dataObjectEntry( aTable );
+
+ if ( !isUsed && !getObjectShapes( anActiveViewId, KIND_LAND_COVER ).isEmpty() ) {
theMenu->addAction( action( LandCoverScalarMapModeOnId ) );
theMenu->addSeparator();
}
theMenu->addSeparator();
}
- if (anIsPolyline || anIsPolyline3D)
- theMenu->addAction( action( ExportPolylineId ) );
+ bool anIsPoly = anIsPolyline || anIsPolyline3D;
+ if ((anIsPoly && !anIsLandCover) || (!anIsPoly && anIsLandCover))
+ theMenu->addAction( action( ExportToShapeFileID ) );
// Add copy action
QAction* aCopyAction = action( CopyId );
{
return myLandCoverColoringMap.contains( theViewId );
}
+
+void HYDROGUI_Module::setObjectRemoved( const Handle(HYDROData_Entity)& theObject )
+{
+ if ( theObject.IsNull() || !theObject->IsRemoved() ) {
+ return;
+ }
+
+ if ( theObject->GetKind() == KIND_STRICKLER_TABLE ) {
+ Handle(HYDROData_StricklerTable) aTable =
+ Handle(HYDROData_StricklerTable)::DownCast( theObject );
+ QList<int> aViewIds;
+ QMutableMapIterator<int, Handle(HYDROData_StricklerTable)> anIter( myLandCoverColoringMap );
+ while ( anIter.hasNext() ) {
+ if ( HYDROGUI_DataObject::dataObjectEntry( anIter.next().value() ) ==
+ HYDROGUI_DataObject::dataObjectEntry( aTable ) ) {
+ anIter.remove();
+ }
+ }
+ }
+}