Salome HOME
lot 10 - warnings for DTM - untested
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_SetColorOp.cxx
index ca2928462591ac956741a17b99122ad092555c8e..eb52c47e5f1fc079185f9abbc9ffab304ac71e8a 100644 (file)
@@ -21,7 +21,7 @@
 #include "HYDROGUI_ColorDlg.h"
 #include "HYDROGUI_DataModel.h"
 #include "HYDROGUI_Module.h"
-#include "HYDROGUI_Tool.h"
+#include "HYDROGUI_Tool2.h"
 #include "HYDROGUI_UpdateFlags.h"
 
 #include <HYDROData_Object.h>
@@ -50,15 +50,11 @@ bool HYDROGUI_SetColorOp::CanObjectBeColored( const Handle(HYDROData_Entity)& th
   if ( theObject.IsNull() )
     return false;
 
-  bool isCanBeColored = false;
-  if ( theObject->IsKind( STANDARD_TYPE(HYDROData_LandCoverMap) ) ) {
-    size_t anActiveViewId = HYDROGUI_Tool::GetActiveOCCViewId( theModule );
-    isCanBeColored = !theModule->isLandCoversScalarMapModeOn( anActiveViewId );
-  }
+  bool isCanBeColored = 
+    theObject->IsKind( STANDARD_TYPE(HYDROData_Object) ) ||
+    theObject->IsKind( STANDARD_TYPE(HYDROData_IPolyline) );
 
-  return isCanBeColored ||
-         theObject->IsKind( STANDARD_TYPE(HYDROData_Object) ) ||
-         theObject->IsKind( STANDARD_TYPE(HYDROData_IPolyline) );
+  return isCanBeColored;
 }
 
 void HYDROGUI_SetColorOp::startOperation()
@@ -100,7 +96,12 @@ void HYDROGUI_SetColorOp::startOperation()
     Handle(HYDROData_IPolyline) aPolyObject =
       Handle(HYDROData_IPolyline)::DownCast( myEditedObject );
 
-    aFirstColor = aPolyObject->GetWireColor();
+    //aFirstColor = aPolyObject->GetWireColor();
+
+    if (aPolyObject->NbSections() > 0)
+      aPolyObject->GetSectionColor(0, aFirstColor);
+    else
+      aFirstColor = aPolyObject->GetWireColor();
 
     anIsOneColor = true;
   }
@@ -163,7 +164,15 @@ bool HYDROGUI_SetColorOp::processApply( int& theUpdateFlags,
     Handle(HYDROData_IPolyline) aPolyObject =
       Handle(HYDROData_IPolyline)::DownCast( myEditedObject );
 
-    aPolyObject->SetWireColor( aFirstColor );
+    //aPolyObject->SetWireColor( aFirstColor );
+    int nbSec = aPolyObject->NbSections();
+    if (nbSec > 0)
+    {
+      for (int i = 0; i < nbSec; i++)
+        aPolyObject->SetSectionColor(i, aFirstColor);
+    }
+    else
+      aPolyObject->SetWireColor( aFirstColor );
   }
   else if ( myEditedObject->IsKind( STANDARD_TYPE(HYDROData_LandCoverMap) ) )
   {