]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Working version
authorCHEMIN Sebastien <sc236498@is245491.intra.cea.fr>
Wed, 7 Feb 2024 09:08:19 +0000 (10:08 +0100)
committerCHEMIN Sebastien <sc236498@is245491.intra.cea.fr>
Wed, 7 Feb 2024 09:08:19 +0000 (10:08 +0100)
src/GraphicsView/GraphicsView_Object.cxx
src/GraphicsView/GraphicsView_Object.h
src/GraphicsView/GraphicsView_Scene.cxx
src/GraphicsView/GraphicsView_ViewFrame.cxx
src/GraphicsView/GraphicsView_ViewPort.cxx
src/GraphicsView/GraphicsView_ViewPort.h
src/GraphicsView/GraphicsView_Viewer.cxx

index a13a7241a73e5d255dd37cd2a4288c297264226b..5b5753efce7b8b62bd03e1abf4f489352eb35d6c 100644 (file)
 GraphicsView_Object::GraphicsView_Object( QGraphicsItem* theParent )
 : QGraphicsItem( theParent ),
   myPriority( 0 ),
-  myIsOnTop( false ),
-  myIsHighlighted( false ),
-  myIsSelected( false ),
-  myIsMoving( false ),
-  myIsMovable( true )
+  myIsOnTop( false )
+//  myIsHighlighted( false ),
+  //myIsSelected( false ),
+//  myIsMoving( false ),
+//  myIsMovable( true )
 {
 }
 
@@ -91,7 +91,8 @@ void GraphicsView_Object::setName( const QString& theName )
 //================================================================
 QRectF GraphicsView_Object::getRect() const
 {
-  return sceneBoundingRect();
+//  return sceneBoundingRect();
+  return boundingRect();
 }
 
 //================================================================
@@ -109,10 +110,13 @@ bool GraphicsView_Object::checkHighlight( double theX, double theY, QCursor& /*t
 //================================================================
 bool GraphicsView_Object::highlight( double theX, double theY )
 {
+/*
   QCursor aCursor;
   if( (myIsHighlighted = isVisible()) )
     myIsHighlighted = checkHighlight( theX, theY, aCursor );
   return myIsHighlighted;
+*/
+  return false;
 }
 
 //================================================================
@@ -121,7 +125,7 @@ bool GraphicsView_Object::highlight( double theX, double theY )
 //================================================================
 void GraphicsView_Object::unhighlight()
 {
-  myIsHighlighted = false;
+//  myIsHighlighted = false;
 }
 
 //================================================================
@@ -130,6 +134,7 @@ void GraphicsView_Object::unhighlight()
 //================================================================
 bool GraphicsView_Object::select( double theX, double theY, const QRectF& theRect )
 {
+/*
   QCursor aCursor;
   if( (myIsSelected = isVisible()) )
   {
@@ -139,6 +144,8 @@ bool GraphicsView_Object::select( double theX, double theY, const QRectF& theRec
       myIsSelected = checkHighlight( theX, theY, aCursor );
   }
   return myIsSelected;
+*/
+  return false;
 }
 
 //================================================================
@@ -147,7 +154,7 @@ bool GraphicsView_Object::select( double theX, double theY, const QRectF& theRec
 //================================================================
 void GraphicsView_Object::unselect()
 {
-  myIsSelected = false;
+//  myIsSelected = false;
 }
 
 //================================================================
@@ -156,6 +163,7 @@ void GraphicsView_Object::unselect()
 //================================================================
 void GraphicsView_Object::move( double theDX, double theDY, bool theIsAtOnce )
 {
+/*
   if( !myIsMovable )
     return;
 
@@ -167,6 +175,7 @@ void GraphicsView_Object::move( double theDX, double theDY, bool theIsAtOnce )
 
   myIsMoving = true;
   moveBy( theDX, theDY );
+*/
 }
 
 //================================================================
@@ -175,11 +184,14 @@ void GraphicsView_Object::move( double theDX, double theDY, bool theIsAtOnce )
 //================================================================
 bool GraphicsView_Object::finishMove( bool theStatus )
 {
+/*
   myIsMoving = false;
   if( theStatus )
     if( GraphicsView_Scene* aScene = dynamic_cast<GraphicsView_Scene*>( scene() ) )
       aScene->processRectChanged();
   return true;
+*/
+  return false;
 }
 
 //================================================================
@@ -190,3 +202,14 @@ void GraphicsView_Object::setViewTransform( const QTransform& theTransform )
 {
   myViewTransform = theTransform;
 }
+
+
+bool GraphicsView_Object::isMovable() const 
+{ 
+  return (flags() & QGraphicsItem::ItemIsMovable);
+}
+  
+void GraphicsView_Object::setMovable(bool theMovable)
+{
+  setFlag(QGraphicsItem::ItemIsMovable, theMovable);
+}
index 17d5daef5fba5698887e01e5e84aef0723c3018c..913678267dc29dec4ef3d966fcdf0427d1c22eda 100644 (file)
@@ -55,8 +55,11 @@ public:
 
   virtual bool               isSelectable() const { return true; }
   
-  virtual bool               isMovable() const { return myIsMovable; }
-  virtual void               setMovable( bool theMovable ) { myIsMovable = theMovable; }
+//  virtual bool               isMovable() const { return myIsMovable; }
+//  virtual void               setMovable( bool theMovable ) { myIsMovable = theMovable; }
+
+  virtual bool               isMovable() const;
+  virtual void               setMovable( bool theMovable );
 
   virtual QRectF             getRect() const;
 
@@ -64,16 +67,21 @@ public:
 
   virtual bool               highlight( double theX, double theY );
   virtual void               unhighlight();
-  virtual bool               isHighlighted() const { return myIsHighlighted; }
+//  virtual bool               isHighlighted() const { return myIsHighlighted; }
 
   virtual bool               select( double theX, double theY, const QRectF& theRect );
   virtual void               unselect();
-  virtual bool               isSelected() const { return myIsSelected; }
-  virtual void               setSelected( bool theState ) { myIsSelected = theState; }
+
+//  virtual bool               isSelected() const { return myIsSelected; }
+//  virtual void               setSelected( bool theState ) { myIsSelected = theState; }
+
+  virtual void               setSelected( bool theState ) {  }
 
   virtual void               move( double theDX, double theDY, bool theIsAtOnce = false );
   virtual bool               finishMove( bool theStatus );
-  virtual bool               isMoving() const { return myIsMoving; }
+
+//  virtual bool               isMoving() const { return myIsMoving; }
+  virtual bool               isMoving() const { return false; }
   virtual bool               isMovingByXAllowed( double /*theDX*/ ) { return true; }
   virtual bool               isMovingByYAllowed( double /*theDY*/ ) { return true; }
 
@@ -101,11 +109,11 @@ protected:
   int                        myPriority;
   bool                       myIsOnTop;
 
-  bool                       myIsHighlighted;
-  bool                       myIsSelected;
+//  bool                       myIsHighlighted;
+//  bool                       myIsSelected;
 
-  bool                       myIsMoving;
-  bool                       myIsMovable;
+//  bool                       myIsMoving;
+//  bool                       myIsMovable;
 
   QTransform                 myViewTransform;
 };
index 8c9727c2dfef82d7b18662e05ddca66a3c64212e..d0dc1a9cfeaf88171bfa81fef60273b8a913aa65 100644 (file)
@@ -22,7 +22,8 @@
 #include <QGraphicsLineItem>
 #include <QGraphicsRectItem>
 #include <QGraphicsSceneWheelEvent>
-
+#include <iostream>
+#include "GraphicsView_Object.h"
 //#define VIEWER_DEBUG
 
 //=======================================================================
@@ -108,7 +109,33 @@ void GraphicsView_Scene::keyReleaseEvent( QKeyEvent* e )
 //================================================================
 void GraphicsView_Scene::mousePressEvent( QGraphicsSceneMouseEvent* e )
 {
-  emit gsMouseEvent( e );
+/*
+  std::cout << "============================================================" << std::endl;
+  std::cout << "QGraphicsScene::mousePressEvent --> nb selected : " << selectedItems().count() << std::endl;
+
+   if (!selectedItems().isEmpty())
+     {
+      GraphicsView_Object* obj = (GraphicsView_Object*) selectedItems().front();
+      std::cout << " Item : " << obj->getName().toStdString() << std::endl;
+     }
+
+//  emit gsMouseEvent( e );
+*/
+/*
+  QList<QGraphicsItem *> items1 = items(e->scenePos());
+  QList<QGraphicsItem*>::const_iterator it;
+
+  for (it = items1.constBegin(); it != items1.constEnd(); ++it)
+   {
+     GraphicsView_Object* anItem = (GraphicsView_Object*)(*it);
+     std::cout << "Item at pos : " << anItem->getName().toStdString() << std::endl;
+   }
+*/
+  //QGraphicsItem* gitem = mouseGrabberItem();
+  GraphicsView_Object*  gitem = (GraphicsView_Object*)mouseGrabberItem();
+  std::cout << "Grabber : " << mouseGrabberItem() << std::endl;
+  if (gitem)
+    std::cout << "Grabber item : " << gitem->getName().toStdString() << std::endl;    
   QGraphicsScene::mousePressEvent( e );
 }
 
@@ -128,7 +155,16 @@ void GraphicsView_Scene::mouseMoveEvent( QGraphicsSceneMouseEvent* e )
 //================================================================
 void GraphicsView_Scene::mouseReleaseEvent( QGraphicsSceneMouseEvent* e )
 {
-  emit gsMouseEvent( e );
+//  emit gsMouseEvent( e );
+
+  std::cout << "QGraphicsScene::mouseReleaseEvent --> nb selected : " << selectedItems().count() << std::endl;
+
+   if (!selectedItems().isEmpty())
+     {
+      GraphicsView_Object* obj = (GraphicsView_Object*) selectedItems().front();
+      std::cout << " Item : " << obj->getName().toStdString() << std::endl;
+     }
+  
   QGraphicsScene::mouseReleaseEvent( e );
 }
 
@@ -138,7 +174,7 @@ void GraphicsView_Scene::mouseReleaseEvent( QGraphicsSceneMouseEvent* e )
 //================================================================
 void GraphicsView_Scene::mouseDoubleClickEvent( QGraphicsSceneMouseEvent* e )
 {
-  emit gsMouseEvent( e );
// emit gsMouseEvent( e );
   QGraphicsScene::mouseDoubleClickEvent( e );
 }
 
@@ -163,7 +199,7 @@ void GraphicsView_Scene::wheelEvent( QGraphicsSceneWheelEvent* e )
 //================================================================
 void GraphicsView_Scene::contextMenuEvent( QGraphicsSceneContextMenuEvent* e )
 {
-  emit gsContextMenuEvent( e );
+//  emit gsContextMenuEvent( e );
   QGraphicsScene::contextMenuEvent( e );
 }
 
index a762bb7f2350b22df733d23f7743dae095f837c3..292cc1ec13fc5731a336634431cf2b9699ea312c 100644 (file)
@@ -42,6 +42,7 @@
 #include <QMouseEvent>
 #include <QString>
 #include <QWheelEvent>
+#include <iostream>
 
 //=======================================================================
 // Name    : GraphicsView_ViewFrame
@@ -385,6 +386,7 @@ void GraphicsView_ViewFrame::mouseEvent( QGraphicsSceneMouseEvent* e )
   switch ( e->type() )
   {
     case QEvent::GraphicsSceneMousePress:
+      std::cout << "GraphicsView_ViewFrame::mousePressEvent" << std::endl;
       emit mousePressed( e );
       break;
     case QEvent::GraphicsSceneMouseMove:
index 2d0cbc40c56871d6854f3ff3a1d947d0d391cade..aa6396174396356ed442321bbbe906f4dcf32092 100644 (file)
@@ -38,7 +38,7 @@
 #include <QPainter>
 
 #include <math.h>
-
+#include <iostream>
 #define FOREGROUND_Z_VALUE -2
 #define GRID_Z_VALUE       -1
 #define SKETCH_Z_VALUE     3000
@@ -201,8 +201,8 @@ GraphicsView_ViewPort::GraphicsView_ViewPort( QWidget* theParent )
 
   connect( myScene, SIGNAL( gsKeyEvent( QKeyEvent* ) ),
            this, SLOT( onKeyEvent( QKeyEvent* ) ) );
-  connect( myScene, SIGNAL( gsMouseEvent( QGraphicsSceneMouseEvent* ) ),
-           this, SLOT( onMouseEvent( QGraphicsSceneMouseEvent* ) ) );
+//  connect( myScene, SIGNAL( gsMouseEvent( QGraphicsSceneMouseEvent* ) ),
+//           this, SLOT( onMouseEvent( QGraphicsSceneMouseEvent* ) ) );
   connect( myScene, SIGNAL( gsWheelEvent( QGraphicsSceneWheelEvent* ) ),
            this, SLOT( onWheelEvent( QGraphicsSceneWheelEvent* ) ) );
   connect( myScene, SIGNAL( gsContextMenuEvent( QGraphicsSceneContextMenuEvent* ) ),
@@ -1289,6 +1289,8 @@ int GraphicsView_ViewPort::select( const QRectF& theRect, bool theIsAppend )
     }
   }
   return aStatus;
+
+//  return false;
 }
 
 //================================================================
@@ -1789,6 +1791,7 @@ void GraphicsView_ViewPort::onMouseEvent( QGraphicsSceneMouseEvent* e )
   {
     case QEvent::GraphicsSceneMousePress:
     {
+      std::cout << "GraphicsView_ViewPort::onMousePressEvent" << std::endl;
       if( hasInteractionFlag( EditFlags ) && nbSelected() )
         for( initSelected(); moreSelected() && !anIsHandled; nextSelected() )
           if( GraphicsView_Object* anObject = selectedObject() )
@@ -1895,3 +1898,22 @@ void GraphicsView_ViewPort::scrollContentsBy( int theDX, int theDY )
   if( myViewLabel )
     myViewLabel->setAcceptMoveEvents( true );
 }
+
+void GraphicsView_ViewPort::mousePressEvent(QMouseEvent *event)
+{
+//  std::cout << "QGraphicsView::mousePressEvent" << std::endl;
+  QGraphicsView::mousePressEvent(event);
+}
+
+void GraphicsView_ViewPort::mouseReleaseEvent(QMouseEvent *event)
+{
+  std::cout << "QGraphicsView::mouseReleaseEvent --> nb selected : " << scene()->selectedItems().count() << std::endl;
+
+   if (!scene()->selectedItems().isEmpty())
+     {
+      GraphicsView_Object* obj = (GraphicsView_Object*) scene()->selectedItems().front();
+      std::cout << " Item : " << obj->getName().toStdString() << std::endl;
+     }
+  QGraphicsView::mouseReleaseEvent(event);
+}
+
index f6f0b1339a2812a992bf8f03b3c095dc713b22c4..1fdd117bc2b46e11edafae3cc915e94940325bd7 100644 (file)
@@ -244,6 +244,8 @@ protected slots:
 
 protected:
   virtual void                     scrollContentsBy( int theDX, int theDY );
+  virtual void mousePressEvent(QMouseEvent *event);
+  virtual void mouseReleaseEvent(QMouseEvent *event);
 
 signals:
   void                             vpKeyEvent( QKeyEvent* );
index 6ac886e59646ee69dff7f88fa316df217eb1e06b..5f337ca7578c0b425d5dcd61072fdace2ff03c31 100644 (file)
@@ -38,7 +38,7 @@
 #include <QMenu>
 
 #include <math.h>
-
+#include <iostream>
 // testing ImageViewer
 /*
 #include "GraphicsView_PrsImage.h"
@@ -301,9 +301,11 @@ void GraphicsView_Viewer::onKeyEvent( QKeyEvent* e )
 //================================================================
 void GraphicsView_Viewer::onMouseEvent( QGraphicsSceneMouseEvent* e )
 {
+
   switch( e->type() )
   {
     case QEvent::GraphicsSceneMousePress:
+      std::cout << "GraphicsView_Viewer::onMousePressEvent" << std::endl;
       handleMousePress( e );
       break;
     case QEvent::GraphicsSceneMouseMove:
@@ -374,6 +376,7 @@ void GraphicsView_Viewer::handleKeyRelease( QKeyEvent* /*e*/ ) //!< TODO: unused
 //================================================================
 void GraphicsView_Viewer::handleMousePress( QGraphicsSceneMouseEvent* e )
 {
+  std::cout << "GraphicsView_Viewer::handleMousePress" << std::endl;
   // test accel for transforms
   if ( e->modifiers() & GraphicsView_ViewTransformer::accelKey() )
   {
@@ -483,6 +486,7 @@ void GraphicsView_Viewer::handleMouseMove( QGraphicsSceneMouseEvent* e )
 //================================================================
 void GraphicsView_Viewer::handleMouseRelease( QGraphicsSceneMouseEvent* e )
 {
+  std::cout << "GraphicsView_Viewer::handleMouseRelease" << std::endl;
   // selection
   if( GraphicsView_ViewPort* aViewPort = getActiveViewPort() )
   {