]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Set color for object.
authoradv <adv@opencascade.com>
Fri, 17 Jan 2014 06:12:18 +0000 (06:12 +0000)
committeradv <adv@opencascade.com>
Fri, 17 Jan 2014 06:12:18 +0000 (06:12 +0000)
src/HYDROData/HYDROData_Entity.cxx
src/HYDROData/HYDROData_Entity.h
src/HYDROData/HYDROData_ImmersibleZone.cxx
src/HYDROData/HYDROData_Object.cxx
src/HYDROData/HYDROData_Object.h
src/HYDROData/HYDROData_PolylineXY.cxx

index 797973eaef0d0f273a94d6efdcd6db55ca93602e..af16992f00e20e3650b3aad5bf2602def70de7b9 100644 (file)
@@ -527,9 +527,25 @@ void HYDROData_Entity::setPythonReferenceObject( MapOfTreatedObjects&
 
   if ( anIsToSetObject )
   {
+    QString anObjName = GetObjPyName();
     theScript << QString( "%1.%2( %3 );" )
-                 .arg( GetObjPyName() ).arg( theMethod ).arg( aRefObjName );
+                 .arg( anObjName ).arg( theMethod ).arg( aRefObjName );
   }
 }
 
+void HYDROData_Entity::setPythonObjectColor( QStringList&         theScript,
+                                             const QColor&        theColor,
+                                             const QColor&        theDefaultColor,
+                                             const QString&       theMethod ) const
+{
+  if ( theColor == theDefaultColor )
+    return; //Do not set the color for object if it like default
+
+  QString anObjName = GetObjPyName();
+  theScript << QString( "%1.%2( QColor( %3, %4, %5, %6 ) );" )
+              .arg( anObjName ).arg( theMethod )
+              .arg( theColor.red()  ).arg( theColor.green() )
+              .arg( theColor.blue() ).arg( theColor.alpha() );
+}
+
 
index b1b36333541cddccfe41815c90ac61ee44a5e4b6..0f48dbbce666b42354d3b82a30198a3cefb1aaa5 100644 (file)
@@ -333,12 +333,17 @@ protected:
                                  const Handle(HYDROData_Entity)& theRefObject,
                                  const QString&                  theMethod ) const;
 
+  void setPythonObjectColor( QStringList&         theScript,
+                             const QColor&        theColor,
+                             const QColor&        theDefaultColor,
+                             const QString&       theMethod ) const;
+
   /**
    * Dump the initial object creation to a Python script.
    * You should call it from DumpToPython implementation before 
    * dumping fields of the object.
    */
-  QStringList dumpObjectCreation( MapOfTreatedObjects& theTreatedObjects ) const;
+  HYDRODATA_EXPORT virtual QStringList dumpObjectCreation( MapOfTreatedObjects& theTreatedObjects ) const;
 
   /**
    * Returns an object type name as a string for dumping to Python.
index 3232ae96eeb2f7afcf9f6498fa044378d980336e..d8673dae951890a42b42811a72bf8d58a60d6d3f 100644 (file)
@@ -43,22 +43,9 @@ HYDROData_ImmersibleZone::~HYDROData_ImmersibleZone()
 QStringList HYDROData_ImmersibleZone::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
 {
   QStringList aResList = dumpObjectCreation( theTreatedObjects );
+  
   QString aZoneName = GetObjPyName();
 
-  QColor aFillingColor = GetFillingColor();
-  aResList << QString( "filling_color = QColor( %1, %2, %3, %4 );" )
-              .arg( aFillingColor.red()  ).arg( aFillingColor.green() )
-              .arg( aFillingColor.blue() ).arg( aFillingColor.alpha() );
-  aResList << QString( "%1.SetFillingColor( filling_color );" ).arg( aZoneName );
-  aResList << QString( "" );
-
-  QColor aBorderColor = GetBorderColor();
-  aResList << QString( "border_color = QColor( %1, %2, %3, %4 );" )
-              .arg( aBorderColor.red()  ).arg( aBorderColor.green() )
-              .arg( aBorderColor.blue() ).arg( aBorderColor.alpha() );
-  aResList << QString( "%1.SetBorderColor( border_color );" ).arg( aZoneName );
-  aResList << QString( "" );
-
   Handle(HYDROData_IAltitudeObject) aRefAltitude = GetAltitudeObject();
   setPythonReferenceObject( theTreatedObjects, aResList, aRefAltitude, "SetAltitudeObject" );
 
@@ -66,6 +53,7 @@ QStringList HYDROData_ImmersibleZone::DumpToPython( MapOfTreatedObjects& theTrea
   setPythonReferenceObject( theTreatedObjects, aResList, aRefPolyline, "SetPolyline" );
 
   aResList << QString( "" );
+
   aResList << QString( "%1.Update();" ).arg( aZoneName );
   aResList << QString( "" );
 
index e018ca249352b5f6a923cc3f000bfad4a618a8b0..7204f97fde1bf06c1bcdec4e5cf52457713122ba 100644 (file)
@@ -230,6 +230,29 @@ QColor HYDROData_Object::getDefaultBorderColor() const
   return QColor( Qt::transparent );
 }
 
+QStringList HYDROData_Object::dumpObjectCreation( MapOfTreatedObjects& theTreatedObjects ) const
+{
+  QStringList aResList = HYDROData_Entity::dumpObjectCreation( theTreatedObjects );
+  if ( aResList.isEmpty() )
+    return aResList; //Object was not created
+
+  QStringList aColorsDef;
+
+  QColor aFillingColor = GetFillingColor();
+  setPythonObjectColor( aColorsDef, aFillingColor, getDefaultFillingColor(), "SetFillingColor" );
+
+  QColor aBorderColor = GetBorderColor();
+  setPythonObjectColor( aColorsDef, aBorderColor, getDefaultBorderColor(), "SetBorderColor" );
+
+  if ( !aColorsDef.isEmpty() )
+  {
+    aResList << aColorsDef;
+    aResList << QString( "" );
+  }
+
+  return aResList;
+}
+
 ObjectKind HYDROData_Object::getAltitudeObjectType() const
 {
   return KIND_UNKNOWN;
index d59e4708578e863b336e6bd3048a4ace25aef553..302f5580e813fe8b45b2712cc2a79fc383f47da0 100644 (file)
@@ -168,6 +168,13 @@ protected:
 
 protected:
 
+  /**
+   * Dump the initial object creation to a Python script.
+   * Reimplemented to dump the object colors.
+   */
+  HYDRODATA_EXPORT virtual QStringList dumpObjectCreation( MapOfTreatedObjects& theTreatedObjects ) const;
+
+
   /**
    * Checks and if necessary create child 3D object.
    * Reimplement this function in your subclass if you 
index d418144a2e1865ef4b2fa25d71411bc399ed1274..cdbc3752ed80be47369e61c458b30f9c741dcac5 100755 (executable)
@@ -109,6 +109,18 @@ QStringList HYDROData_PolylineXY::DumpToPython( MapOfTreatedObjects& theTreatedO
   QStringList aResList = dumpObjectCreation( theTreatedObjects );
   QString aPolylineName = GetObjPyName();
 
+  // Set the wire color
+  QStringList aWireColorDef;
+
+  QColor aWireColor = GetWireColor();
+  setPythonObjectColor( aWireColorDef, aWireColor, DefaultWireColor(), "SetWireColor" );
+  
+  if ( !aWireColorDef.isEmpty() )
+  {
+    aResList << aWireColorDef;
+    aResList << QString( "" );
+  }
+
   // Set polilyne data
   NCollection_Sequence<TCollection_AsciiString>           aSectNames;
   NCollection_Sequence<HYDROData_PolylineXY::SectionType> aSectTypes;