]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
refs #1327: debug of scaling operations
authorasl <asl@opencascade.com>
Tue, 3 Oct 2017 07:48:45 +0000 (10:48 +0300)
committerasl <asl@opencascade.com>
Tue, 3 Oct 2017 07:48:45 +0000 (10:48 +0300)
src/HYDROGUI/HYDROGUI_BathymetryOp.cxx
src/HYDROGUI/HYDROGUI_BathymetryOp.h
src/HYDROGUI/HYDROGUI_BathymetrySelectionOp.cxx
src/HYDROGUI/HYDROGUI_OCCDisplayer.h
src/HYDROGUI/HYDROGUI_Operations.cxx
src/HYDROGUI/HYDROGUI_ShapeBathymetry.cxx
src/HYDROGUI/resources/HYDROGUI_msg_en.ts

index cee53f3ec05fb13de152fd1f77972905a7e36869..0c45c2d72ba45b79a7a23f224a26f69d75245389 100644 (file)
@@ -22,6 +22,7 @@
 #include <HYDROGUI_BathymetryPrs.h>
 #include <HYDROGUI_ShapeBathymetry.h>
 #include <HYDROGUI_Module.h>
+#include <HYDROGUI_OCCDisplayer.h>
 #include <LightApp_Application.h>
 #include <OCCViewer_ViewManager.h>
 #include <OCCViewer_ViewWindow.h>
@@ -36,11 +37,13 @@ HYDROGUI_BathymetryLimitsDlg::HYDROGUI_BathymetryLimitsDlg( QWidget* theParent )
   QGridLayout* layout = new QGridLayout();
   setLayout( layout );
 
-  layout->addWidget( new QLabel( tr( "MIN_VALUE" ) ), 0, 0 );
-  layout->addWidget( new QLabel( tr( "MAX_VALUE" ) ), 1, 0 );
+  layout->addWidget( new QLabel( tr( "Min value" ) ), 0, 0 );
+  layout->addWidget( new QLabel( tr( "Max value" ) ), 1, 0 );
 
   myMin = new QtxDoubleSpinBox( this );
+  myMin->setRange( -1000, 1000 );
   myMax = new QtxDoubleSpinBox( this );
+  myMax->setRange( -1000, 1000 );
 
   layout->addWidget( myMin, 0, 1 );
   layout->addWidget( myMax, 1, 1 );
@@ -50,12 +53,12 @@ HYDROGUI_BathymetryLimitsDlg::HYDROGUI_BathymetryLimitsDlg( QWidget* theParent )
   layout->addWidget( aBtnFrame, 2, 0, 1, 2 );
 
   QPushButton* ok = new QPushButton( tr( "OK" ), this );
-  QPushButton* cancel = new QPushButton( tr( "CANCEL" ), this );
+  QPushButton* cancel = new QPushButton( tr( "Cancel" ), this );
   aBtnLayout->addWidget( ok );
   aBtnLayout->addWidget( cancel );
 
   connect( ok, SIGNAL( clicked() ), this, SLOT( accept() ) );
-  connect( ok, SIGNAL( clicked() ), this, SLOT( reject() ) );
+  connect( cancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
 }
 
 HYDROGUI_BathymetryLimitsDlg::~HYDROGUI_BathymetryLimitsDlg()
@@ -83,7 +86,7 @@ void HYDROGUI_BathymetryLimitsDlg::SetMinMax( double theMin, double theMax )
 
 
 HYDROGUI_BathymetryOp::HYDROGUI_BathymetryOp( HYDROGUI_Module* theModule, int theMode )
-: HYDROGUI_Operation( theModule ), myMode( theMode )
+: HYDROGUI_Operation( theModule ), myMode( theMode ), myIsActivate( false )
 {
 }
 
@@ -91,6 +94,7 @@ HYDROGUI_BathymetryOp::~HYDROGUI_BathymetryOp()
 {
 }
 
+OCCViewer_Viewer* getViewer( HYDROGUI_Module* theModule );
 Handle(AIS_InteractiveContext) getContext( HYDROGUI_Module* theModule );
 QList<Handle(HYDROGUI_BathymetryPrs)> getShownBathymetries( HYDROGUI_Module* theModule );
 
@@ -119,7 +123,12 @@ OCCViewer_ViewWindow* HYDROGUI_BathymetryOp::activeViewWindow() const
 
 void HYDROGUI_BathymetryOp::activate( bool isActivate )
 {
-QList<Handle(HYDROGUI_BathymetryPrs)> baths = getShownBathymetries( module() );
+  if( myIsActivate==isActivate )
+    return;
+
+  myIsActivate = isActivate;
+  QList<Handle(HYDROGUI_BathymetryPrs)> baths = getShownBathymetries( module() );
+  bool isUpdateCS = false;
 
   switch( myMode )
   {
@@ -133,8 +142,11 @@ QList<Handle(HYDROGUI_BathymetryPrs)> baths = getShownBathymetries( module() );
   case BathymetryRescaleSelectionId:
     {
       if( isActivate )
+      {
         foreach( Handle(HYDROGUI_BathymetryPrs) bath, baths )
           bath->GetShape()->RescaleBySelection();
+        isUpdateCS = true;
+      }
       commit();
       break;
     }
@@ -142,8 +154,11 @@ QList<Handle(HYDROGUI_BathymetryPrs)> baths = getShownBathymetries( module() );
   case BathymetryRescaleVisibleId:
     {
       if( isActivate )
+      {
         foreach( Handle(HYDROGUI_BathymetryPrs) bath, baths )
           bath->GetShape()->RescaleByVisible( activeViewWindow() );
+        isUpdateCS = true;
+      }
       commit();
       break;
     }
@@ -172,6 +187,8 @@ QList<Handle(HYDROGUI_BathymetryPrs)> baths = getShownBathymetries( module() );
           max = dlg.GetMax();
           foreach( Handle(HYDROGUI_BathymetryPrs) bath, baths )
             bath->GetShape()->Rescale( min, max );
+
+          isUpdateCS = true;
           commit();
         }
         else
@@ -183,9 +200,16 @@ QList<Handle(HYDROGUI_BathymetryPrs)> baths = getShownBathymetries( module() );
   case BathymetryRescaleDefaultId:
     {
       if( isActivate )
+      {
         foreach( Handle(HYDROGUI_BathymetryPrs) bath, baths )
           bath->GetShape()->RescaleDefault();
+        isUpdateCS = true;
+      }
+      commit();
       break;
     }
   }
+
+  if( isUpdateCS )
+    module()->getOCCDisplayer()->UpdateColorScale( getViewer( module() ) );
 }
index b85ecd196da992ddd2ac3edd82a8683ac99ef047..705a54e628edc3d21ad4bd3b20b2533b8eec0267 100644 (file)
@@ -44,6 +44,7 @@ protected:
 
 private:
   int myMode;
+  bool myIsActivate;
 };
 
 
index 76d4dcc0b1bfe1d7a50c72c7dfdb9263b92cf798..2aeb9daaf93de8e957904b54328a748e1b51fd45 100644 (file)
@@ -21,6 +21,7 @@
 #include <HYDROGUI_Module.h>
 #include <HYDROGUI_BathymetryPrs.h>
 #include <HYDROGUI_BathymetryOp.h>
+#include <HYDROGUI_ShapeBathymetry.h>
 #include <OCCViewer_ViewManager.h>
 #include <LightApp_Application.h>
 
@@ -49,13 +50,17 @@ bool HYDROGUI_BathymetrySelectionOp::isValid( SUIT_Operation* theOtherOp ) const
   return ( aBathOp != 0 );
 }
 
-Handle(AIS_InteractiveContext) getContext( HYDROGUI_Module* theModule )
+OCCViewer_Viewer* getViewer( HYDROGUI_Module* theModule )
 {
   LightApp_Application* app = theModule->getApp();
   OCCViewer_ViewManager* mgr = dynamic_cast<OCCViewer_ViewManager*>
     ( app->getViewManager( OCCViewer_Viewer::Type(), true ) );
-  Handle(AIS_InteractiveContext) ctx = mgr->getOCCViewer()->getAISContext();
-  return ctx;
+  return mgr->getOCCViewer();
+}
+
+Handle(AIS_InteractiveContext) getContext( HYDROGUI_Module* theModule )
+{
+  return getViewer( theModule )->getAISContext();
 }
 
 QList<Handle(HYDROGUI_BathymetryPrs)> getShownBathymetries( HYDROGUI_Module* theModule )
@@ -99,6 +104,7 @@ void HYDROGUI_BathymetrySelectionOp::activateSelection( bool isActive )
     {
       bath->ClearSelected();
       bath->SetAutoHilight( Standard_True );
+      bath->GetShape()->TextLabels( false );
       ctx->Deactivate( bath );
     }
     ctx->CloseLocalContext( -1, Standard_True );
index 92e20c815854ade1c62d9322833cf1fb7dc27df6..275954472bcd21b65b54531eab4ac330fc806517 100644 (file)
@@ -82,6 +82,8 @@ public:
    */
   Handle(AIS_ColorScale)          GetColorScale( const int theViewerId );
 
+  void UpdateColorScale( const OCCViewer_Viewer* );
+
 protected:
   /**
    * \brief Erase all viewer objects.
@@ -108,15 +110,11 @@ protected:
                                            const int theViewerId,
                                            const bool theIsForced,
                                            const bool theDoFitAll );
-
-protected:
   /**
    * \brief Purge all invalid objects in the viewer.
    * \param theViewerId viewer identifier
    */
   void                            purgeObjects( const int theViewerId );
-
-  void UpdateColorScale( const OCCViewer_Viewer* );
   
 private:
   /**
index cb4ad5206aa6e97c5b283a71cd056a69152bcabe..b1c5880127ccc45193f32b40bd019dce2a518962 100644 (file)
@@ -796,7 +796,15 @@ void HYDROGUI_Module::onBathymetrySelection()
   if( isChecked )
     startOperation( BathymetrySelectionId );
   else
-    operation( BathymetrySelectionId )->abort();
+  {
+    LightApp_Operation* op = operation( BathymetryTextId );
+    if( op )
+      op->abort();
+
+    op = operation( BathymetrySelectionId );
+    if( op )
+      op->abort();
+  }
 }
 
 void HYDROGUI_Module::onBathymetryText()
index da2a12b726cc5a9c1a0975430d800e5f5267a318..cf9a3681c99a0a7007b8fb5800bd7e4057bd87f9 100644 (file)
@@ -228,6 +228,7 @@ void HYDROGUI_ShapeBathymetry::Rescale( double theMin, double theMax )
   getContext()->ClearSelected();
   myMin = qMin( theMin, theMax );
   myMax = qMax( theMin, theMax );
+  setToUpdateColorScale( true );
   getAISObject()->Redisplay();
 }
 
index 391221f9acd32696c08e9790b4e279e0600fc87c..ca53fe75c6d53c1e4fc232b2b5853d5720f3b324 100644 (file)
@@ -971,6 +971,26 @@ Would you like to remove all references from the image?</translation>
       <source>DSK_BATHYMETRY_SELECTION</source>
       <translation>Selection on bathymetry</translation>
     </message>
+    <message>
+      <source>DSK_BATHYMETRY_TEXT</source>
+      <translation>Z-Values on bathymetry</translation>
+    </message>
+    <message>
+      <source>DSK_BATHYMETRY_RESCALE_SELECTION</source>
+      <translation>Rescale bathymetry by selection</translation>
+    </message>
+    <message>
+      <source>DSK_BATHYMETRY_RESCALE_VISIBLE</source>
+      <translation>Rescale bathymetry by visible range</translation>
+    </message>
+    <message>
+      <source>DSK_BATHYMETRY_RESCALE_USER</source>
+      <translation>Custom rescale bathymetry</translation>
+    </message>
+    <message>
+      <source>DSK_BATHYMETRY_RESCALE_DEFAULT</source>
+      <translation>Default rescale bathymetry</translation>
+    </message>
     <message>
       <source>DSK_IMPORT_IMAGE</source>
       <translation>Import image</translation>
@@ -1320,6 +1340,26 @@ Would you like to remove all references from the image?</translation>
       <source>MEN_BATHYMETRY_SELECTION</source>
       <translation>Selection on bathymetry</translation>
     </message>
+    <message>
+      <source>MEN_BATHYMETRY_TEXT</source>
+      <translation>Z-Values on bathymetry</translation>
+    </message>
+    <message>
+      <source>MEN_BATHYMETRY_RESCALE_SELECTION</source>
+      <translation>Rescale bathymetry by selection</translation>
+    </message>
+    <message>
+      <source>MEN_BATHYMETRY_RESCALE_VISIBLE</source>
+      <translation>Rescale bathymetry by visible range</translation>
+    </message>
+    <message>
+      <source>MEN_BATHYMETRY_RESCALE_USER</source>
+      <translation>Custom rescale bathymetry</translation>
+    </message>
+    <message>
+      <source>MEN_BATHYMETRY_RESCALE_DEFAULT</source>
+      <translation>Default rescale bathymetry</translation>
+    </message>
     <message>
       <source>MEN_IMPORT_IMAGE</source>
       <translation>Import image</translation>
@@ -1633,6 +1673,30 @@ Would you like to remove all references from the image?</translation>
       <source>STB_BATHYMETRY_SELECTION</source>
       <translation>Selection on bathymetry</translation>
     </message>
+    <message>
+      <source>
+        STB_BATHYMETRY_RESCALE_SELECTION
+      </source>
+      <translation>Rescale bathymetry by selection</translation>
+    </message>
+    <message>
+      <source>
+        STB_BATHYMETRY_RESCALE_VISIBLE
+      </source>
+      <translation>Rescale bathymetry by visible range</translation>
+    </message>
+    <message>
+      <source>
+        STB_BATHYMETRY_RESCALE_USER
+      </source>
+      <translation>Custom rescale bathymetry</translation>
+    </message>
+    <message>
+      <source>
+        STB_BATHYMETRY_RESCALE_DEFAULT
+      </source>
+      <translation>Default rescale bathymetry</translation>
+    </message>
     <message>
       <source>STB_IMPORT_IMAGE</source>
       <translation>Import image</translation>