]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Raw development for ImageViewer.
authorouv <ouv@opencascade.com>
Thu, 4 Jul 2013 09:30:03 +0000 (09:30 +0000)
committerouv <ouv@opencascade.com>
Thu, 4 Jul 2013 09:30:03 +0000 (09:30 +0000)
src/GraphicsView/GraphicsView_Object.cxx
src/GraphicsView/GraphicsView_PrsImage.cxx
src/GraphicsView/GraphicsView_PrsImage.h
src/GraphicsView/GraphicsView_PrsImageFrame.cxx
src/GraphicsView/GraphicsView_PrsImageFrame.h

index 9338b9373ac4811228f0b947f9e113f848e49db9..648f9d294709891c0e7377899127963f52ce3085 100644 (file)
@@ -51,6 +51,19 @@ GraphicsView_Object::~GraphicsView_Object()
     delete myHighlightCursor;
     myHighlightCursor = 0;
   }
+
+  QListIterator<QGraphicsItem*> aChildIter( children() );
+  while( aChildIter.hasNext() )
+  {
+    if( QGraphicsItem* aChild = aChildIter.next() )
+    {
+      removeFromGroup( aChild );
+      if( QGraphicsScene* aScene = aChild->scene() )
+        aScene->removeItem( aChild );
+      delete aChild;
+      aChild = 0;
+    }
+  }
 }
 
 //================================================================
index 1bb7afe593e6e075045ebf6f181669581c56bd93..bdfbac2673b4cd403f08056ffd87566d3a53c5de 100644 (file)
@@ -26,7 +26,6 @@
 #include "GraphicsView_ViewPort.h"
 
 #include <QCursor>
-#include <QGraphicsScene>
 #include <QGraphicsView>
 #include <QPainter>
 #include <QVector2D>
@@ -34,8 +33,8 @@
 #include <math.h>
 
 #define PREVIEW_Z_VALUE 2000
-#define EPSILON 1e-6
-#define PI 3.14159265359
+#define EPSILON         1e-6
+#define PI              3.14159265359
 
 //=======================================================================
 // name    : GraphicsView_PrsImage
@@ -46,7 +45,7 @@ GraphicsView_PrsImage::GraphicsView_PrsImage()
   myIsLockAspectRatio( false ),
   myPixmapItem( 0 ),
   myPreviewPixmapItem( 0 ),
-  myImageFrame( 0 ),
+  myPrsImageFrame( 0 ),
   myPosX( 0.0 ),
   myPosY( 0.0 ),
   myScaleX( 1.0 ),
@@ -66,31 +65,10 @@ GraphicsView_PrsImage::GraphicsView_PrsImage()
 //=======================================================================
 GraphicsView_PrsImage::~GraphicsView_PrsImage()
 {
-  /* to be revised
-  if( myPreviewPixmapItem )
+  if( myPrsImageFrame )
   {
-    delete myPreviewPixmapItem;
-    myPreviewPixmapItem = 0;
-  }
-
-  if( myImageFrame )
-  {
-    delete myImageFrame;
-    myImageFrame = 0;
-  }
-  */
-
-  QListIterator<QGraphicsItem*> aChildIter( children() );
-  while( aChildIter.hasNext() )
-  {
-    if( QGraphicsItem* aChild = aChildIter.next() )
-    {
-      removeFromGroup( aChild );
-      if( QGraphicsScene* aScene = aChild->scene() )
-        aScene->removeItem( aChild );
-      delete aChild;
-      aChild = 0;
-    }
+    delete myPrsImageFrame;
+    myPrsImageFrame = 0;
   }
 }
 
@@ -103,11 +81,11 @@ void GraphicsView_PrsImage::updateTransform()
   QTransform aTransform = getTransform();
 
   setTransform( aTransform );
-  myImageFrame->setTransform( aTransform );
+  myPrsImageFrame->setTransform( aTransform );
 
   // for anchors
-  myImageFrame->setScaling( myScaleX, myScaleY );
-  myImageFrame->setRotationAngle( myRotationAngle );
+  myPrsImageFrame->setScaling( myScaleX, myScaleY );
+  myPrsImageFrame->setRotationAngle( myRotationAngle );
 
   aTransform = getTransform( true );
   myPreviewPixmapItem->setTransform( aTransform );
@@ -251,10 +229,10 @@ void GraphicsView_PrsImage::compute()
     myPreviewPixmapItem = new QGraphicsPixmapItem();
     //addToGroup( myPreviewPixmapItem ); // don't add
   }
-  if( !myImageFrame )
+  if( !myPrsImageFrame )
   {
-    myImageFrame = new GraphicsView_PrsImageFrame();
-    myImageFrame->setPrsImage( this );
+    myPrsImageFrame = new GraphicsView_PrsImageFrame();
+    myPrsImageFrame->setPrsImage( this );
   }
 
   myPixmapItem->setPixmap( myPixmap );
@@ -262,7 +240,7 @@ void GraphicsView_PrsImage::compute()
   myPreviewPixmapItem->setPixmap( myPixmap );
   myPreviewPixmapItem->setVisible( false );
 
-  myImageFrame->compute();
+  myPrsImageFrame->compute();
 
   updateTransform();
 }
@@ -274,7 +252,7 @@ void GraphicsView_PrsImage::compute()
 void GraphicsView_PrsImage::addTo( GraphicsView_ViewPort* theViewPort )
 {
   GraphicsView_Object::addTo( theViewPort );
-  theViewPort->addItem( myImageFrame );
+  theViewPort->addItem( myPrsImageFrame );
   theViewPort->addItem( myPreviewPixmapItem );
 
   double aZValue = 0;
@@ -297,7 +275,7 @@ void GraphicsView_PrsImage::addTo( GraphicsView_ViewPort* theViewPort )
 void GraphicsView_PrsImage::removeFrom( GraphicsView_ViewPort* theViewPort )
 {
   GraphicsView_Object::removeFrom( theViewPort );
-  theViewPort->removeItem( myImageFrame );
+  theViewPort->removeItem( myPrsImageFrame );
   theViewPort->removeItem( myPreviewPixmapItem );
 }
 
@@ -324,7 +302,7 @@ bool GraphicsView_PrsImage::checkHighlight( double theX, double theY, QCursor& t
 bool GraphicsView_PrsImage::select( double theX, double theY, const QRectF& theRect )
 {
   bool anIsSelected = GraphicsView_Object::select( theX, theY, theRect );
-  myImageFrame->updateAnchorItems();
+  myPrsImageFrame->updateVisibility();
   return anIsSelected;
 }
 
@@ -335,7 +313,7 @@ bool GraphicsView_PrsImage::select( double theX, double theY, const QRectF& theR
 void GraphicsView_PrsImage::unselect()
 {
   GraphicsView_Object::unselect();
-  myImageFrame->updateAnchorItems();
+  myPrsImageFrame->updateVisibility();
 }
 
 //================================================================
@@ -345,7 +323,7 @@ void GraphicsView_PrsImage::unselect()
 void GraphicsView_PrsImage::setSelected( bool theState )
 {
   GraphicsView_Object::setSelected( theState );
-  myImageFrame->updateAnchorItems();
+  myPrsImageFrame->updateVisibility();
 }
 
 //================================================================
index fba5394260ea6c3fb610f323bf8dcac8f3b12353..c472225cb6c73126bab9e8750bf64112a0ae2372 100644 (file)
@@ -104,7 +104,7 @@ protected:
   QGraphicsPixmapItem*            myPixmapItem;
   QGraphicsPixmapItem*            myPreviewPixmapItem;
 
-  GraphicsView_PrsImageFrame*     myImageFrame;
+  GraphicsView_PrsImageFrame*     myPrsImageFrame;
 
   double                          myPosX;
   double                          myPosY;
index a341534fc6869841a4516e5dad9835c18d3c24f3..9a6f1d632368be2f76ae872b8808c91a09761f98 100644 (file)
@@ -32,9 +32,9 @@
 
 #include <math.h>
 
-#define FRAME_Z_VALUE 1000
-#define ANCHOR_RADIUS 3
-#define PI 3.14159265359
+#define FRAME_Z_VALUE   1000
+#define ANCHOR_RADIUS   3
+#define PI              3.14159265359
 
 //=======================================================================
 // name    : GraphicsView_PrsImageFrame
@@ -139,7 +139,7 @@ void GraphicsView_PrsImageFrame::compute()
   setZValue( FRAME_Z_VALUE );
 
   computeAnchorItems();
-  updateAnchorItems();
+  updateVisibility();
 }
 
 //================================================================
@@ -342,16 +342,12 @@ void GraphicsView_PrsImageFrame::computeAnchorItems()
 }
 
 //================================================================
-// Function : updateAnchorItems
+// Function : updateVisibility
 // Purpose  : 
 //================================================================
-void GraphicsView_PrsImageFrame::updateAnchorItems()
+void GraphicsView_PrsImageFrame::updateVisibility()
 {
-  if( !myPrsImage )
-    return;
-
-  bool anIsSelected = myPrsImage->isSelected();
-  setVisible( anIsSelected );
+  setVisible( myPrsImage && myPrsImage->isSelected() );
 }
 
 //================================================================
@@ -504,6 +500,10 @@ QRectF GraphicsView_PrsImageFrame::UnscaledGraphicsEllipseItem::boundingRect() c
                   aCenter.y() - aHeight / 2 + anOffsetY,
                   aWidth, aHeight );
 
+  // to do
+  //QRectF aBaseRect( myBasePoint, QSizeF( 1, 1 ) );
+  //aRect |= aBaseRect;
+
   return aRect;
 }
 
@@ -553,4 +553,10 @@ void GraphicsView_PrsImageFrame::UnscaledGraphicsEllipseItem::paint(
 
   QGraphicsEllipseItem::paint( thePainter, theOption, theWidget );
   thePainter->restore();
+
+  // for debug
+  //thePainter->save();
+  //thePainter->setPen( QPen( Qt::magenta ) );
+  //thePainter->drawRect( boundingRect() );
+  //thePainter->restore();
 }
index 3ccecd0475d51dad4dfd0952867d57c4f145bc2e..350a73a950de6d07c4f4822d999a93993d60987f 100644 (file)
@@ -76,7 +76,7 @@ public:
   void                            setPrsImage( GraphicsView_PrsImage* );
 
   void                            computeAnchorItems();
-  void                            updateAnchorItems();
+  void                            updateVisibility();
 
   void                            setScaling( const double theScaleX, const double theScaleY );
   void                            setRotationAngle( const double theRotationAngle );