]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Redo transformations (zoom, fitSelect, fitAll)
authorCHEMIN Sebastien <sc236498@is245491.intra.cea.fr>
Mon, 4 Mar 2024 15:32:03 +0000 (16:32 +0100)
committerCHEMIN Sebastien <sc236498@is245491.intra.cea.fr>
Mon, 4 Mar 2024 15:32:03 +0000 (16:32 +0100)
src/GraphicsView/CMakeLists.txt
src/GraphicsView/GraphicsView_ViewFrame.cxx
src/GraphicsView/GraphicsView_ViewPort.cxx
src/GraphicsView/GraphicsView_ViewPort.h
src/GraphicsView/GraphicsView_Viewer.cxx
src/GraphicsView/GraphicsView_Viewer.h

index 3c562f921fadeb5e7fe7542c08ba732a33e1262e..5e96f3e6864e50091915e51faa9453f33e9ce76c 100644 (file)
@@ -52,7 +52,7 @@ SET(_other_HEADERS
   GraphicsView.h
   GraphicsView_Defs.h
   GraphicsView_Object.h
-  GraphicsView_ViewTransformer.h
+#  GraphicsView_ViewTransformer.h
 )
 
 # header files / to install
@@ -95,7 +95,7 @@ SET(_other_SOURCES
   GraphicsView_ViewFrame.cxx
   GraphicsView_ViewManager.cxx
   GraphicsView_ViewPort.cxx
-  GraphicsView_ViewTransformer.cxx
+#  GraphicsView_ViewTransformer.cxx
   GraphicsView_Viewer.cxx
 )
 
index 9dd7639cf3cd04e164cc3f23b4fb3ae0d068f5bd..2570c048b1a1d469abb34738ce17ed251d9951eb 100644 (file)
@@ -309,7 +309,7 @@ void GraphicsView_ViewFrame::expandToolBarActions()
 //================================================================
 void GraphicsView_ViewFrame::onViewPan()
 {
-  myViewer->activateTransform( GraphicsView_Viewer::Pan );
+//  myViewer->activateTransform( GraphicsView_Viewer::Pan );
 }
 
 //================================================================
@@ -318,7 +318,7 @@ void GraphicsView_ViewFrame::onViewPan()
 //================================================================
 void GraphicsView_ViewFrame::onViewZoom()
 {
-  myViewer->activateTransform( GraphicsView_Viewer::Zoom );
+//  myViewer->activateTransform( GraphicsView_Viewer::Zoom );
 }
 
 //================================================================
@@ -327,7 +327,8 @@ void GraphicsView_ViewFrame::onViewZoom()
 //================================================================
 void GraphicsView_ViewFrame::onViewFitAll()
 {
-  myViewer->activateTransform( GraphicsView_Viewer::FitAll );
+    myViewer->fitAll();
+//  myViewer->activateTransform( GraphicsView_Viewer::FitAll );
 }
 
 //================================================================
@@ -336,7 +337,8 @@ void GraphicsView_ViewFrame::onViewFitAll()
 //================================================================
 void GraphicsView_ViewFrame::onViewFitArea()
 {
-  myViewer->activateTransform( GraphicsView_Viewer::FitRect );
+    myViewer->fitArea();
+//  myViewer->activateTransform( GraphicsView_Viewer::FitRect );
 }
 
 //================================================================
@@ -345,7 +347,8 @@ void GraphicsView_ViewFrame::onViewFitArea()
 //================================================================
 void GraphicsView_ViewFrame::onViewFitSelect()
 {
-  myViewer->activateTransform( GraphicsView_Viewer::FitSelect );
+    myViewer->fitSelect();
+//  myViewer->activateTransform( GraphicsView_Viewer::FitSelect );
 }
 
 //================================================================
@@ -354,7 +357,7 @@ void GraphicsView_ViewFrame::onViewFitSelect()
 //================================================================
 void GraphicsView_ViewFrame::onViewGlobalPan()
 {
-  myViewer->activateTransform( GraphicsView_Viewer::PanGlobal );
+//  myViewer->activateTransform( GraphicsView_Viewer::PanGlobal );
 }
 
 //================================================================
@@ -363,7 +366,7 @@ void GraphicsView_ViewFrame::onViewGlobalPan()
 //================================================================
 void GraphicsView_ViewFrame::onViewReset()
 {
-  myViewer->activateTransform( GraphicsView_Viewer::Reset );
+//  myViewer->activateTransform( GraphicsView_Viewer::Reset );
 }
 
 //================================================================
index 5c24397ce5a44379371932e7fd24d5d93c967fc1..d127eda6e9303c97cc23a85f71073bce3de88ccf 100644 (file)
@@ -42,6 +42,7 @@ GraphicsView_ViewPort::GraphicsView_ViewPort( QWidget* theParent )
   myRectBand = nullptr;
   myRectBandStart = QPoint();
   myRectBandEnd = QPoint();
+  fittingArea = false;
 }
 #include<iostream>
 //=======================================================================
@@ -131,12 +132,17 @@ void GraphicsView_ViewPort::finishSelectByRect()
   myRectBand->hide();
 
   QRectF selectionRect = mapToScene(myRectBand->geometry()).boundingRect();
-//  fitInView(selectionRect, Qt::KeepAspectRatio);
 
+  if (fittingArea)
+    fitInView(selectionRect, Qt::KeepAspectRatio);
+  else
+    {
   QList<QGraphicsItem *> selectedItems = scene()->items(selectionRect, Qt::IntersectsItemShape);
   for (QGraphicsItem *item : selectedItems) 
     item->setSelected(true);
+   }
 
+  fittingArea = false;
   myRectBandStart = QPoint();
   myRectBandEnd = QPoint();
   delete myRectBand;
index aecf6a82cddd0eaedbdee26f5c3f44da325a370c..5b5fe29442a8596e20ab2b4caf9c505f5c8c1137 100644 (file)
@@ -53,6 +53,7 @@ public:
   void drawSelectByRect( int x, int y );
   void finishSelectByRect();
   QRect selectionRect();
+  void setFitArea(bool isFitting) { fittingArea = isFitting; }
 
 signals:
   void vpMouseEvent(QMouseEvent*);
@@ -74,6 +75,8 @@ private:
   QRubberBand* myRectBand;
   QPoint myRectBandStart;
   QPoint myRectBandEnd;
+
+  bool fittingArea;
 };
 
 #endif
index ee7878d4056161166dd9cafc5f261a53e086420d..eaf21cebaec5cf6bd4d699a3ff95435910f1be28 100644 (file)
@@ -24,7 +24,7 @@
 #include "GraphicsView_Scene.h"
 #include "GraphicsView_ViewFrame.h"
 #include "GraphicsView_ViewPort.h"
-#include "GraphicsView_ViewTransformer.h"
+//#include "GraphicsView_ViewTransformer.h"
 
 #include <SUIT_ViewManager.h>
 
@@ -53,7 +53,7 @@
 GraphicsView_Viewer::GraphicsView_Viewer( const QString& /*title*/, QWidget* widget )
 : SUIT_ViewModel(),
   mySelector( 0 ),
-  myTransformer( 0 ),
+//  myTransformer( 0 ),
   myWidget( widget ),
   myIsInitialized( false )
 {
@@ -161,6 +161,7 @@ GraphicsView_Scene* GraphicsView_Viewer::getActiveScene() const
 // Function : activateTransform
 // Purpose  : 
 //================================================================
+/*
 void GraphicsView_Viewer::activateTransform( int theType )
 {
   if( theType == NoTransform ) // finish current transform
@@ -205,7 +206,7 @@ GraphicsView_ViewTransformer* GraphicsView_Viewer::createTransformer( int theTyp
 //================================================================
 void GraphicsView_Viewer::onTransformationStarted()
 {
-/*
+
   if( GraphicsView_Selector* aSelector = getSelector() )
   {
     aSelector->undetectAll();
@@ -214,7 +215,7 @@ void GraphicsView_Viewer::onTransformationStarted()
 
   // watch events: any mouse/key event outside the
   // viewport will be considered as the end of transform
-*/
+
   if( myTransformer )
     qApp->installEventFilter( this );
 
@@ -226,15 +227,16 @@ void GraphicsView_Viewer::onTransformationStarted()
 //================================================================
 void GraphicsView_Viewer::onTransformationFinished()
 {
-/*
+
   if( GraphicsView_Selector* aSelector = getSelector() )
     aSelector->lock( false ); // enable selection
-*/
+
   // stop watching events
   if( myTransformer )
     qApp->removeEventFilter( this );
 
 }
+*/
 
 //================================================================
 // Function : onKeyEvent
@@ -359,3 +361,21 @@ void GraphicsView_Viewer::onSelectionCancel()
 {
   emit selectionChanged( GVSCS_Invalid );
 }
+
+void GraphicsView_Viewer::fitAll()
+{
+  if (GraphicsView_ViewPort* aViewPort = getActiveViewPort())
+    aViewPort->fitAll();
+}
+
+void GraphicsView_Viewer::fitSelect()
+{
+  if (GraphicsView_ViewPort* aViewPort = getActiveViewPort())
+    aViewPort->fitSelect();
+}
+
+void GraphicsView_Viewer::fitArea()
+{
+  if (GraphicsView_ViewPort* aViewPort = getActiveViewPort())
+    aViewPort->setFitArea(true);
+}
index d941e6c720321d167fcbc9e5f6d04f73d57f0138..6058af49bd12bd9fd7602e1ccf57bec6c1cc37fa 100644 (file)
@@ -37,7 +37,7 @@ class SUIT_ViewWindow;
 
 class GraphicsView_Selector;
 class GraphicsView_Scene;
-class GraphicsView_ViewTransformer;
+//class GraphicsView_ViewTransformer;
 class GraphicsView_ViewFrame;
 class GraphicsView_ViewPort;
 
@@ -50,8 +50,8 @@ class GRAPHICSVIEW_API GraphicsView_Viewer: public SUIT_ViewModel
   Q_OBJECT
 
 public:
-  enum TransformType { NoTransform, Reset, FitAll, FitRect, FitSelect,
-                       Zoom, PanGlobal, Pan, FitWidth, UserTransform = 100 };
+//  enum TransformType { NoTransform, Reset, FitAll, FitRect, FitSelect,
+//                       Zoom, PanGlobal, Pan, FitWidth, UserTransform = 100 };
 public:
   GraphicsView_Viewer( const QString& title, QWidget* widget = NULL );
   ~GraphicsView_Viewer();
@@ -71,7 +71,11 @@ public:
   GraphicsView_ViewPort*        getActiveViewPort() const;
   GraphicsView_Scene*           getActiveScene() const;
 
-  void                          activateTransform( int );
+  //void                          activateTransform( int );
+
+  void fitAll();
+  void fitSelect();
+  void fitArea();
 
   bool                          isInitialized() const { return myIsInitialized; }
   void                          setIsInitialized( bool );
@@ -81,11 +85,11 @@ signals:
   void                          wheelScaleChanged();
 
 protected:
-  virtual GraphicsView_ViewTransformer* createTransformer( int );
+//  virtual GraphicsView_ViewTransformer* createTransformer( int );
   virtual GraphicsView_ViewFrame* createViewFrame( SUIT_Desktop* theDesktop, QWidget* theWidget );
 
-  virtual void                  onTransformationStarted();
-  virtual void                  onTransformationFinished();
+//  virtual void                  onTransformationStarted();
+//  virtual void                  onTransformationFinished();
 
 protected slots:
   virtual void                  onKeyEvent( QKeyEvent* );
@@ -114,7 +118,7 @@ protected:
 
 protected:
   GraphicsView_Selector*        mySelector;
-  GraphicsView_ViewTransformer* myTransformer;
+//  GraphicsView_ViewTransformer* myTransformer;
   QWidget*                      myWidget;
 
   bool                          myIsInitialized;