]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
refs #1340 part.2
authorisn <isn@opencascade.com>
Wed, 8 Nov 2017 16:46:24 +0000 (19:46 +0300)
committerisn <isn@opencascade.com>
Wed, 8 Nov 2017 16:46:24 +0000 (19:46 +0300)
src/HYDROGUI/CMakeLists.txt
src/HYDROGUI/HYDROGUI_Module.cxx
src/HYDROGUI/HYDROGUI_Operations.cxx
src/HYDROGUI/HYDROGUI_Operations.h
src/HYDROGUI/HYDROGUI_ZoneSetColorOp.cxx [new file with mode: 0644]
src/HYDROGUI/HYDROGUI_ZoneSetColorOp.h [new file with mode: 0644]
src/HYDROGUI/resources/HYDROGUI_msg_en.ts

index 7a575a8f7117848ae85d970ea9626174bb84344e..a9605ebdf72614472658f3b0490621d94e2a5efc 100644 (file)
@@ -150,7 +150,8 @@ set(PROJECT_HEADERS
     HYDROGUI_PolylineStyleOp.h
     HYDROGUI_PolylineStyleDlg.h
     HYDROGUI_ZoneTool.h
-       HYDROGUI_RegenerateRegionColorsOp.h
+    HYDROGUI_RegenerateRegionColorsOp.h
+    HYDROGUI_ZoneSetColorOp.h
 )
 
 QT_WRAP_MOC(PROJECT_HEADERS_MOC ${PROJECT_HEADERS})
@@ -303,7 +304,8 @@ set(PROJECT_SOURCES
     HYDROGUI_PolylineStyleOp.cxx
     HYDROGUI_PolylineStyleDlg.cxx
     HYDROGUI_ZoneTool.cxx
-       HYDROGUI_RegenerateRegionColorsOp.cxx
+    HYDROGUI_RegenerateRegionColorsOp.cxx
+    HYDROGUI_ZoneSetColorOp.cxx
 )
 
 add_definitions(
index 046a19a26247b4cb075ae25624ca14042b985ed9..b8e744ad86a62161cb693e73fd0905a215750a24 100644 (file)
@@ -726,6 +726,8 @@ void HYDROGUI_Module::contextMenuPopup( const QString& theClient,
         theMenu->addAction( action( LoadVisualStateId ) );
         theMenu->addSeparator();
       }
+      else if (anIsZone)
+        theMenu->addAction( action( ZoneSetColorId ) );
 
       if ( anIsStream || anIsChannel || anIsDigue || anIsObstacle )
       {
index c14e71723b176028ce8113ada191b94e40968f0e..91d3dc86448082e870096e134697aee3d925f24c 100644 (file)
@@ -74,7 +74,7 @@
 #include "HYDROGUI_BathymetryOp.h"
 #include "HYDROGUI_RegenerateRegionColorsOp.h"
 #include "HYDROGUI_PolylineStyleOp.h"
-
+#include "HYDROGUI_ZoneSetColorOp.h"
 #include <HYDROData_Document.h>
 #include <HYDROData_Obstacle.h>
 #include <HYDROData_SplitToZonesTool.h>
@@ -246,6 +246,7 @@ void HYDROGUI_Module::createActions()
   createAction( LandCoverScalarMapModeOffId, "LC_SCALARMAP_COLORING_OFF" );
 
   createAction( RegenerateRegionColorsId, "REGENERATE_REGION_COLORS" );
+  createAction( ZoneSetColorId, "ZONE_SET_COLOR" );
   createAction( ShowHideArrows, "SHOW_HIDE_ARROWS" );
 }
 
@@ -768,7 +769,9 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const
     anOp = new HYDROGUI_LandCoverColoringOp( aModule, theId );
     break;
   case RegenerateRegionColorsId:
-     anOp = new HYDROGUI_RegenerateRegionColorsOp( aModule );
+    anOp = new HYDROGUI_RegenerateRegionColorsOp( aModule );
+  case ZoneSetColorId:
+    anOp = new HYDROGUI_ZoneSetColorOp( aModule );
   }
 
   if( !anOp )
index f0ce5bea5ccc2b8d3bee680605a1adbaf586288d..519c68a7d754c90979d014897777b990421b20b2 100644 (file)
@@ -146,6 +146,7 @@ enum OperationId
   BathymetryRescaleDefaultId,
   RegenerateRegionColorsId,
   ShowHideArrows,
+  ZoneSetColorId
 };
 
 #endif
diff --git a/src/HYDROGUI/HYDROGUI_ZoneSetColorOp.cxx b/src/HYDROGUI/HYDROGUI_ZoneSetColorOp.cxx
new file mode 100644 (file)
index 0000000..a669fa4
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright (C) 2014-2015  EDF-R&D
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#include "HYDROGUI_ZoneSetColorOp.h"
+
+#include "HYDROGUI_Module.h"
+#include <QColorDialog>
+#include <LightApp_Application.h>
+#include <SUIT_Desktop.h>
+#include <LightApp_UpdateFlags.h>
+#include <HYDROGUI_UpdateFlags.h>
+#include <HYDROGUI_Tool2.h>
+#include <QApplication>
+
+HYDROGUI_ZoneSetColorOp::HYDROGUI_ZoneSetColorOp( HYDROGUI_Module* theModule )
+  : HYDROGUI_Operation( theModule )
+{
+  setName( tr( "ZONE_SET_COLOR" ) );
+}
+
+HYDROGUI_ZoneSetColorOp::~HYDROGUI_ZoneSetColorOp()
+{
+}
+
+void HYDROGUI_ZoneSetColorOp::startOperation()
+{
+  HYDROGUI_Operation::startOperation();
+  myZone = Handle(HYDROData_Zone)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
+  if( !myZone.IsNull() )
+    onApply();
+  else
+    onCancel();
+}
+
+bool HYDROGUI_ZoneSetColorOp::processApply( int& theUpdateFlags, QString& theErrorMsg,
+  QStringList& theBrowseObjectsEntries )
+{
+  theUpdateFlags = 0;
+  if(myZone)
+  {
+    QColor aZoneColor = myZone->GetColor(QColor(1,1,1));
+    QApplication::restoreOverrideCursor();
+    QColor aNewColor = QColorDialog::getColor( aZoneColor );
+    myZone->SetColor(aNewColor);        
+    theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced;
+    return true;
+  }
+  return false;
+}
+
+
diff --git a/src/HYDROGUI/HYDROGUI_ZoneSetColorOp.h b/src/HYDROGUI/HYDROGUI_ZoneSetColorOp.h
new file mode 100644 (file)
index 0000000..5b116fe
--- /dev/null
@@ -0,0 +1,43 @@
+// Copyright (C) 2014-2015  EDF-R&D
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef HYDROGUI_ZONESETCOLOROP_H
+#define HYDROGUI_ZONESETCOLOROP_H
+
+#include "HYDROGUI_Operation.h"
+#include <HYDROData_Zone.h>;
+
+class HYDROGUI_ZoneSetColorOp : public HYDROGUI_Operation
+{
+  Q_OBJECT
+
+public:
+  HYDROGUI_ZoneSetColorOp( HYDROGUI_Module* theModule );
+  virtual ~HYDROGUI_ZoneSetColorOp();
+
+protected:
+  virtual void startOperation();
+  virtual bool processApply( int& theUpdateFlags, QString& theErrorMsg,
+                             QStringList& theBrowseObjectsEntries );
+
+
+private:
+  Handle(HYDROData_Zone) myZone;
+};
+
+#endif
index f5b1e222c23a648e78a8b2d750200df82e5e9de1..a6b85eb24fb25da3e9ee049d55c840290c8f9006 100644 (file)
@@ -1536,7 +1536,10 @@ Would you like to remove all references from the image?</translation>
       <source>MEN_REGENERATE_REGION_COLORS</source>
       <translation>Regenerate region colors</translation>
     </message>
-
+    <message>
+      <source>MEN_ZONE_SET_COLOR</source>
+      <translation>Set color</translation>
+    </message>
     <message>
       <source>STB_CREATE_CALCULATION</source>
       <translation>Create calculation case</translation>