]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Porting to Qt4.
authormkr <mkr@opencascade.com>
Tue, 5 Jun 2007 13:05:42 +0000 (13:05 +0000)
committermkr <mkr@opencascade.com>
Tue, 5 Jun 2007 13:05:42 +0000 (13:05 +0000)
48 files changed:
src/GLViewer/GLViewer_AspectLine.cxx
src/GLViewer/GLViewer_AspectLine.h
src/GLViewer/GLViewer_BaseDrawers.cxx
src/GLViewer/GLViewer_BaseDrawers.h
src/GLViewer/GLViewer_BaseObjects.cxx
src/GLViewer/GLViewer_BaseObjects.h
src/GLViewer/GLViewer_Compass.h
src/GLViewer/GLViewer_Context.cxx
src/GLViewer/GLViewer_Context.h
src/GLViewer/GLViewer_Defs.h
src/GLViewer/GLViewer_Drawer.cxx
src/GLViewer/GLViewer_Drawer.h
src/GLViewer/GLViewer_Geom.h
src/GLViewer/GLViewer_Grid.cxx
src/GLViewer/GLViewer_MimeData.cxx [new file with mode: 0644]
src/GLViewer/GLViewer_MimeData.h [new file with mode: 0644]
src/GLViewer/GLViewer_MimeSource.cxx [deleted file]
src/GLViewer/GLViewer_MimeSource.h [deleted file]
src/GLViewer/GLViewer_Object.cxx
src/GLViewer/GLViewer_Object.h
src/GLViewer/GLViewer_Selector.cxx
src/GLViewer/GLViewer_Selector.h
src/GLViewer/GLViewer_Selector2d.cxx
src/GLViewer/GLViewer_Text.cxx
src/GLViewer/GLViewer_Text.h
src/GLViewer/GLViewer_ToolTip.cxx
src/GLViewer/GLViewer_ToolTip.h
src/GLViewer/GLViewer_Tools.h
src/GLViewer/GLViewer_ViewFrame.cxx
src/GLViewer/GLViewer_ViewFrame.h
src/GLViewer/GLViewer_ViewManager.cxx
src/GLViewer/GLViewer_ViewManager.h
src/GLViewer/GLViewer_ViewPort.cxx
src/GLViewer/GLViewer_ViewPort.h
src/GLViewer/GLViewer_ViewPort2d.cxx
src/GLViewer/GLViewer_ViewPort2d.h
src/GLViewer/GLViewer_Viewer.cxx
src/GLViewer/GLViewer_Viewer.h
src/GLViewer/GLViewer_Viewer2d.cxx
src/GLViewer/GLViewer_Viewer2d.h
src/GLViewer/GLViewer_Widget.cxx
src/GLViewer/GLViewer_Widget.h
src/GLViewer/Makefile.am
src/Makefile.am
src/OCCViewer/OCCViewer_ViewWindow.cxx
src/SVTK/SVTK_InteractorStyle.cxx
src/VTKViewer/VTKViewer_InteractorStyle.cxx
src/src.pro

index 6a91af84c85739f4aaad587923822e308cbe3550..591fdff323a71099256d580dae152f5391813e69 100644 (file)
@@ -127,7 +127,8 @@ QByteArray GLViewer_AspectLine::getByteCopy() const
     int aHR = myHColor.red(), aHG = myHColor.green(), aHB = myHColor.blue();
     int aSR = mySColor.red(), aSG = mySColor.green(), aSB = mySColor.blue();
 
-    QByteArray aResult( anISize * 10 + aFSize );
+    QByteArray aResult;
+    aResult.resize( anISize * 10 + aFSize );
 
     int i = 0;
     
index 866a969094207ff1976d9611c0f69c6f47fdfa6a..69b8d987b5300f90cad6ac70c9f4533b52f22ccd 100644 (file)
@@ -27,7 +27,7 @@
 
 #include "GLViewer.h"
 
-#include <qcolor.h>
+#include <QColor>
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
index 80dfa1329399b9f08fa596d85d07368a64a5b546..279ee513b83d3fa1ae7ce273c82dc6d542f66b98 100644 (file)
 #include "GLViewer_AspectLine.h"
 #include "GLViewer_BaseObjects.h"
 
+// Qt includes
+#include <QColor>
+
+
 #ifndef WIN32
 #include <GL/glx.h>
 #endif
@@ -66,10 +70,10 @@ GLViewer_MarkerDrawer::~GLViewer_MarkerDrawer()
 */
 void GLViewer_MarkerDrawer::create( float xScale, float yScale, bool onlyUpdate )
 {
-    QValueList<int>::Iterator it;
-    QValueList<int>::Iterator EndIt;
-    QValueList<GLViewer_Object*>::Iterator anObjectIt = myObjects.begin();
-    QValueList<GLViewer_Object*>::Iterator anEndObjectIt = myObjects.end();
+    QList<int>::Iterator it;
+    QList<int>::Iterator EndIt;
+    QList<GLViewer_Object*>::Iterator anObjectIt = myObjects.begin();
+    QList<GLViewer_Object*>::Iterator anEndObjectIt = myObjects.end();
 
     myXScale = xScale;
     myYScale = yScale;
@@ -89,7 +93,7 @@ void GLViewer_MarkerDrawer::create( float xScale, float yScale, bool onlyUpdate
         float* anYCoord = aMarkerSet->getYCoord();
         float aRadius = aMarkerSet->getMarkerSize();
 
-        QValueList<int> aHNumbers, anUHNumbers, aSelNumbers, anUSelNumbers;
+        QList<int> aHNumbers, anUHNumbers, aSelNumbers, anUSelNumbers;
         aMarkerSet->exportNumbers( aHNumbers, anUHNumbers, aSelNumbers, anUSelNumbers );
 
         if( onlyUpdate )
@@ -189,8 +193,8 @@ GLViewer_PolylineDrawer::~GLViewer_PolylineDrawer()
 */
 void GLViewer_PolylineDrawer::create( float xScale, float yScale, bool onlyUpdate )
 {
-    QValueList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
-    QValueList<GLViewer_Object*>::Iterator aObjectEndIt = myObjects.end();
+    QList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
+    QList<GLViewer_Object*>::Iterator aObjectEndIt = myObjects.end();
     
     myXScale = xScale;
     myYScale = yScale;
@@ -278,8 +282,8 @@ GLViewer_TextDrawer::~GLViewer_TextDrawer()
 */
 void GLViewer_TextDrawer::create( float xScale, float yScale, bool onlyUpdate )
 {
-    QValueList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
-    QValueList<GLViewer_Object*>::Iterator aObjectEndIt = myObjects.end();
+    QList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
+    QList<GLViewer_Object*>::Iterator aObjectEndIt = myObjects.end();
     
     myXScale = xScale;
     myYScale = yScale;
@@ -322,8 +326,8 @@ void GLViewer_TextDrawer::create( float xScale, float yScale, bool onlyUpdate )
 */
 void GLViewer_TextDrawer::updateObjects()
 {
-    QValueList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
-    QValueList<GLViewer_Object*>::Iterator aObjectEndIt = myObjects.end();
+    QList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
+    QList<GLViewer_Object*>::Iterator aObjectEndIt = myObjects.end();
     for( ; aObjectIt != aObjectEndIt; aObjectIt++ )
         (*aObjectIt)->compute();
 }
index 37c7a898fef46735c7391b14c29842dac9d90935..c0e1abedfbba1f75ab68129fa8678bc36f987a95 100644 (file)
 #ifndef GLVIEWER_BASEDRAWERS_H
 #define GLVIEWER_BASEDRAWERS_H
 
-#include <qcolor.h>
-#include <qobject.h>
-#include <qfile.h>
-#include <qfont.h>
-#include <qgl.h>
+class QColor;
 
 #include "GLViewer.h"
 #include "GLViewer_Drawer.h"
index 338543ee3b8920c16c544ca433323e52fcffe29f..ad1190e0ac2854220e42a0508a1db66357cf0863 100644 (file)
@@ -29,6 +29,8 @@
 
 #include "GLViewer_Drawer.h"
 
+#include <QFile>
+
 //#include <cmath>
 //using namespace std;
 
@@ -214,7 +216,7 @@ bool GLViewer_MarkerSet::translateToPS( QFile& hFile, GLViewer_CoordSystem* aVie
     }
     aBuffer+="closepath\nstroke\n";
 
-    hFile.writeBlock( aBuffer.ascii(), aBuffer.length() );
+    hFile.write( aBuffer.toAscii() );
 
     return true;
 }
@@ -252,7 +254,7 @@ bool GLViewer_MarkerSet::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aV
         }
         aBuffer+="PU;\n";
 
-        hFile.writeBlock( aBuffer.ascii(), aBuffer.length() );
+        hFile.write( aBuffer.toAscii() );
     }
 
     return true;
@@ -313,10 +315,10 @@ void GLViewer_MarkerSet::compute()
 
   for ( int i = 0; i < myNumber; i++ )  
   {
-    xa = QMIN( xa, myXCoord[i] );
-    xb = QMAX( xb, myXCoord[i] );
-    ya = QMIN( ya, myYCoord[i] );
-    yb = QMAX( yb, myYCoord[i] );
+    xa = qMin( xa, myXCoord[i] );
+    xb = qMax( xb, myXCoord[i] );
+    ya = qMin( ya, myYCoord[i] );
+    yb = qMax( yb, myYCoord[i] );
   }
   
   myXGap = ( xb - xa ) / 10;
@@ -352,8 +354,8 @@ GLboolean GLViewer_MarkerSet::highlight( GLfloat x, GLfloat y, GLfloat tol, GLbo
 //  cout << "GLViewer_MarkerSet::highlight " << x <<" " << y << " " << tol << endl;
   int count = 0;
   GLfloat xdist, ydist, radius;
-  QValueList<int>::Iterator it;
-  QValueList<int> curHNumbers;
+  QList<int>::Iterator it;
+  QList<int> curHNumbers;
   bool isFound;
   GLboolean update;
   int cnt = 0;
@@ -432,10 +434,10 @@ GLboolean GLViewer_MarkerSet::select( GLfloat x, GLfloat y, GLfloat tol, GLViewe
 //  cout << "GLViewer_MarkerSet::select " << x << " " << y << endl;
   int count = 0;
   GLfloat xdist, ydist, radius;
-  QValueList<int>::Iterator it;
-  QValueList<int>::Iterator it1;
-  QValueList<int>::Iterator remIt;
-  QValueList<int>::Iterator curIt;
+  QList<int>::Iterator it;
+  QList<int>::Iterator it1;
+  QList<int>::Iterator remIt;
+  QList<int>::Iterator curIt;
 
   radius = tol - myMarkerSize / 2.;
 
@@ -481,35 +483,35 @@ GLboolean GLViewer_MarkerSet::select( GLfloat x, GLfloat y, GLfloat tol, GLViewe
             for ( it1 = myHNumbers.begin(); it1 != myHNumbers.end(); ++it1 )
               if( i == *it1 )
               {
-                myHNumbers.remove( it1 );
+                myHNumbers.erase( it1 );
                 break;
               }
       for ( it1 = myUHNumbers.begin(); it1 != myUHNumbers.end(); ++it1 )
         if( i == *it1 )
         {
-          myUHNumbers.remove( it1 );
+          myUHNumbers.erase( it1 );
           break;
         }
         }
     else
         {
-      mySelNumbers.remove( remIt );
+      mySelNumbers.erase( remIt );
       for ( curIt = myCurSelNumbers.begin(); curIt != myCurSelNumbers.end(); ++curIt )
         if( *curIt == *remIt)
         {
-          myCurSelNumbers.remove( curIt );
+          myCurSelNumbers.erase( curIt );
           break;
         }
       for ( it1 = myHNumbers.begin(); it1 != myHNumbers.end(); ++it1 )
         if( i == *it1 )
         {
-          myHNumbers.remove( it1 );
+          myHNumbers.erase( it1 );
           break;
         }
       for ( it1 = myUHNumbers.begin(); it1 != myUHNumbers.end(); ++it1 )
         if( i == *it1 )
         {
-          myUHNumbers.remove( it1 );
+          myUHNumbers.erase( it1 );
           break;
         }
         }
@@ -521,13 +523,13 @@ GLboolean GLViewer_MarkerSet::select( GLfloat x, GLfloat y, GLfloat tol, GLViewe
     for ( it1 = myHNumbers.begin(); it1 != myHNumbers.end(); ++it1 )
       if( i == *it1 )
       {
-        myHNumbers.remove( it1 );
+        myHNumbers.erase( it1 );
         break;
       }
     for ( it1 = myUHNumbers.begin(); it1 != myUHNumbers.end(); ++it1 )
       if( i == *it1 )
           {
-        myUHNumbers.remove( it1 );
+        myUHNumbers.erase( it1 );
         break;
       }        
       }     
@@ -538,7 +540,7 @@ GLboolean GLViewer_MarkerSet::select( GLfloat x, GLfloat y, GLfloat tol, GLViewe
     for( it1 = myUSelNumbers.begin(); it1 != myUSelNumbers.end(); ++it1 )
       if( *it == *it1 )
       {
-        it1 = myUSelNumbers.remove( it1 );
+        it1 = myUSelNumbers.erase( it1 );
         it1--;
       }
   
@@ -633,10 +635,10 @@ void GLViewer_MarkerSet::setNumMarkers( GLint number )
 /*!
   Export numbers of highlighted/selected lines
 */
-void GLViewer_MarkerSet::exportNumbers( QValueList<int>& highlight,
-                     QValueList<int>& unhighlight,
-                     QValueList<int>& select,
-                     QValueList<int>& unselect )
+void GLViewer_MarkerSet::exportNumbers( QList<int>& highlight,
+                     QList<int>& unhighlight,
+                     QList<int>& select,
+                     QList<int>& unselect )
 {
     highlight = myHNumbers;
     unhighlight = myUHNumbers;
@@ -655,14 +657,12 @@ bool GLViewer_MarkerSet::addOrRemoveSelected( int index )
   if( index < 0 || index > myNumber )
     return FALSE;
 
-  int n = mySelNumbers.findIndex( index );
+  int n = mySelNumbers.indexOf( index );
   if( n == -1 )
     mySelNumbers.append( index );
   else
   {
-    QValueList<int>::Iterator it;
-    it = mySelNumbers.at( n );
-    mySelNumbers.remove( it );
+    mySelNumbers.removeAt(n);
     myUSelNumbers.append( index );
   }
   return TRUE;
@@ -675,7 +675,7 @@ bool GLViewer_MarkerSet::addOrRemoveSelected( int index )
 void GLViewer_MarkerSet::addSelected( const TColStd_SequenceOfInteger& seq )
 {
   for ( int i = 1; i <= seq.Length(); i++ )
-    if( mySelNumbers.findIndex( seq.Value( i ) ) == -1 )
+    if( mySelNumbers.indexOf( seq.Value( i ) ) == -1 )
       mySelNumbers.append( seq.Value( i ) - 1 );
 }
 
@@ -685,7 +685,7 @@ void GLViewer_MarkerSet::addSelected( const TColStd_SequenceOfInteger& seq )
 */
 void GLViewer_MarkerSet::setSelected( const TColStd_SequenceOfInteger& seq )
 {
-//   for( QValueList<int>::Iterator it = mySelNumbers.begin(); it != mySelNumbers.end(); ++it )
+//   for( QList<int>::Iterator it = mySelNumbers.begin(); it != mySelNumbers.end(); ++it )
 //     if( myUSelNumbers.findIndex( *it ) == -1 )
 //       myUSelNumbers.append( *it );
 
@@ -728,7 +728,8 @@ QByteArray GLViewer_MarkerSet::getByteCopy()
     
     QByteArray aObject = GLViewer_Object::getByteCopy();
 
-    QByteArray aResult( anISize + 2*aFSize*myNumber + aFSize + aObject.size());
+    QByteArray aResult;
+    aResult.resize( anISize + 2*aFSize*myNumber + aFSize + aObject.size());
 
     char* aPointer = (char*)&myNumber;
     for( i = 0; i < anISize; i++, aPointer++ )
@@ -784,7 +785,8 @@ bool GLViewer_MarkerSet::initializeFromByteCopy( QByteArray theArray )
          *aPointer = theArray[i];
          
     int aCurIndex = anISize + 2*aFSize*myNumber + aFSize;
-    QByteArray aObject( aSize - aCurIndex );
+    QByteArray aObject;
+    aObject.resize( aSize - aCurIndex );
     for( ; i < aSize; i++ )
         aObject[i - aCurIndex] = theArray[i];
         
@@ -871,7 +873,7 @@ bool GLViewer_Polyline::translateToPS( QFile& hFile, GLViewer_CoordSystem* aView
 
     aBuffer+="closepath\nstroke\n";
     
-    hFile.writeBlock( aBuffer.ascii(), aBuffer.length() );
+    hFile.write( aBuffer.toAscii() );
 
     return true;
 }
@@ -897,7 +899,7 @@ bool GLViewer_Polyline::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aVi
 
     aBuffer+="PU;\n";
     
-    hFile.writeBlock( aBuffer.ascii(), aBuffer.length() );
+    hFile.write( aBuffer.toAscii() );
 
     return true;
 }
@@ -958,10 +960,10 @@ void GLViewer_Polyline::compute()
 
   for ( int i = 0; i < myNumber; i++ )  
   {
-    xa = QMIN( xa, myXCoord[i] );
-    xb = QMAX( xb, myXCoord[i] );
-    ya = QMIN( ya, myYCoord[i] );
-    yb = QMAX( yb, myYCoord[i] );
+    xa = qMin( xa, myXCoord[i] );
+    xb = qMax( xb, myXCoord[i] );
+    ya = qMin( ya, myYCoord[i] );
+    yb = qMax( yb, myYCoord[i] );
   }
 
   GLfloat xGap = ( xb - xa ) / 10;
@@ -1219,10 +1221,10 @@ void GLViewer_Polyline::setNumber( GLint number )
 /*!
   Export numbers of highlighted/selected lines
 */
-void GLViewer_Polyline::exportNumbers( QValueList<int>& highlight,
-                     QValueList<int>& unhighlight,
-                     QValueList<int>& select,
-                     QValueList<int>& unselect )
+void GLViewer_Polyline::exportNumbers( QList<int>& highlight,
+                     QList<int>& unhighlight,
+                     QList<int>& select,
+                     QList<int>& unselect )
 {
   highlight = myHNumbers;
   unhighlight = myUHNumbers;
@@ -1264,7 +1266,8 @@ QByteArray GLViewer_Polyline::getByteCopy()
 
     QByteArray aObject = GLViewer_Object::getByteCopy();
 
-    QByteArray aResult( aFSize*myNumber*2 + anISize + 2*aBSize + aObject.size());
+    QByteArray aResult;
+    aResult.resize( aFSize*myNumber*2 + anISize + 2*aBSize + aObject.size());
 
     char* aPointer = (char*)&myNumber;
     for( i = 0; i < anISize; i++, aPointer++ )
@@ -1327,7 +1330,8 @@ bool GLViewer_Polyline::initializeFromByteCopy( QByteArray theArray )
          *aPointer = theArray[i];
 
     int aCurIndex = anISize + 2*aFSize*myNumber + 2*aBSize;
-    QByteArray aObject( aSize - aCurIndex );
+    QByteArray aObject;
+    aObject.resize( aSize - aCurIndex );
     for( ; i < aSize; i++ )
         aObject[i - aCurIndex] = theArray[i];
 
@@ -1394,7 +1398,7 @@ bool GLViewer_TextObject::translateToPS( QFile& hFile, GLViewer_CoordSystem* aVi
     AddCoordsToPS( aBuffer, "moveto", aViewerCS, aPSCS, double(xPos), double(yPos) );
     aBuffer += "(" + aText + ") show\n";
 
-    hFile.writeBlock( aBuffer.ascii(), aBuffer.length() );
+    hFile.write( aBuffer.toAscii() );
 
     return true;
 }
@@ -1416,7 +1420,7 @@ bool GLViewer_TextObject::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* a
     
     aBuffer = "LB" + aText + "#;";
     
-    hFile.writeBlock( aBuffer.ascii(), aBuffer.length() );
+    hFile.write( aBuffer.toAscii() );
 
     return true;
 }
index 8070664d598ba7cf7a01b85b5781da4a9ce9587a..051e13f9fda4cd406ac3ccac8819e4a362e3f3b9 100644 (file)
@@ -28,8 +28,7 @@
 #include "GLViewer.h"
 #include "GLViewer_Object.h"
 
-#include <qcolor.h>
-#include <qvaluelist.h>
+#include <QColor>
 
 #include <TColStd_SequenceOfInteger.hxx>
 
@@ -92,11 +91,11 @@ public:
   float                    getMarkerSize() const { return myMarkerSize; }
   
   //! Export numbers of heghlighted/selected markers
-  void                     exportNumbers( QValueList<int>& high, QValueList<int>& unhigh,
-                                          QValueList<int>& sel, QValueList<int>& unsel );
+  void                     exportNumbers( QList<int>& high, QList<int>& unhigh,
+                                          QList<int>& sel, QList<int>& unsel );
   
   //! Returns selected numbers
-  QValueList<int>          getSelectedElements() { return mySelNumbers; }
+  QList<int>               getSelectedElements() { return mySelNumbers; }
   //! Adds or remove selected number
   bool                     addOrRemoveSelected( int index );
   //! Adds selected numbers
@@ -109,12 +108,12 @@ protected:
   GLfloat*                myXCoord;
   GLfloat*                myYCoord;    
   GLfloat                 myMarkerSize;
-  QValueList<int>         myHNumbers;
-  QValueList<int>         myUHNumbers;
-  QValueList<int>         mySelNumbers;
-  QValueList<int>         myCurSelNumbers;
-  QValueList<int>         myUSelNumbers;
-  QValueList<int>         myPrevHNumbers;
+  QList<int>              myHNumbers;
+  QList<int>              myUHNumbers;
+  QList<int>              mySelNumbers;
+  QList<int>              myCurSelNumbers;
+  QList<int>              myUSelNumbers;
+  QList<int>              myPrevHNumbers;
   TColStd_SequenceOfInteger mySelectedIndexes;
 };
 
@@ -177,11 +176,11 @@ public:
   GLboolean               isHighSelAll() const { return myHighSelAll; }
   
   //! Export numbers of highlighted/selected lines
-  void                     exportNumbers( QValueList<int>& high, QValueList<int>& unhigh,
-                                          QValueList<int>& sel, QValueList<int>& unsel );
+  void                    exportNumbers( QList<int>& high, QList<int>& unhigh,
+                                        QList<int>& sel, QList<int>& unsel );
 
   //! Returns numbers of selected lines
-  QValueList<int>         getSelectedElements() { return mySelNumbers; }
+  QList<int>              getSelectedElements() { return mySelNumbers; }
 
 protected:
   GLfloat*                myXCoord;
@@ -190,12 +189,12 @@ protected:
   GLboolean               myIsClosed;
   GLboolean               myHighSelAll;
   
-  QValueList<int>         myHNumbers;
-  QValueList<int>         myUHNumbers;
-  QValueList<int>         mySelNumbers;
-  QValueList<int>         myUSelNumbers;
-  QValueList<int>         myCurSelNumbers;
-  QValueList<int>         myPrevHNumbers;
+  QList<int>              myHNumbers;
+  QList<int>              myUHNumbers;
+  QList<int>              mySelNumbers;
+  QList<int>              myUSelNumbers;
+  QList<int>              myCurSelNumbers;
+  QList<int>              myPrevHNumbers;
   TColStd_SequenceOfInteger mySelectedIndexes;
   
   GLboolean               myHighFlag;
index 9870ccf8261f026665eb901466b981c0835a4126..ee52be281e585ee6cc042e9eec11fcc2f4337d9a 100644 (file)
@@ -27,7 +27,9 @@
 
 #include "GLViewer.h"
 
-#include <qcolor.h>
+#include <QColor>
+
+class QFont;
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
index 0383b0325519889905878c5c3b1b2052b4326402..496d79bedffcff1b8def599df4f85e9d27f83ddd 100644 (file)
 #include "GLViewer_Object.h"
 #include "GLViewer_Viewer2d.h"
 #include "GLViewer_ViewPort2d.h"
+#include "GLViewer_ViewFrame.h"
+
+//QT includes
+#include <QRect>
 
 #include <TColStd_SequenceOfInteger.hxx>
 
@@ -222,7 +226,7 @@ int GLViewer_Context::Select( bool Append, bool byCircle )
         } 
         else if( myLastPicked->isSelected() && status != SS_LocalChanged )
         {
-            mySelectedObjects.remove( myLastPicked );
+            mySelectedObjects.removeAll( myLastPicked );
             myLastPicked->unselect();
             myGLViewer2d->updateAll();
 
@@ -233,7 +237,7 @@ int GLViewer_Context::Select( bool Append, bool byCircle )
         }
 
         if ( myLastPicked->select( myXhigh, myYhigh, myTolerance, GLViewer_Rect(), false, byCircle, Append )
-             && mySelectedObjects.findIndex( myLastPicked ) == -1 )
+             && mySelectedObjects.indexOf( myLastPicked ) == -1 )
         {
             mySelectedObjects.append( myLastPicked );
             myGLViewer2d->activateDrawer( myLastPicked, TRUE, TRUE );
@@ -370,7 +374,7 @@ int GLViewer_Context::SelectByRect( const QRect& theRect, bool Append )
             isSel = (*it)->isSelected();
         }
 
-        if( isSel && mySelectedObjects.findIndex( *it ) == -1 )
+        if( isSel && mySelectedObjects.indexOf( *it ) == -1 )
         {
             aList.append( *it );
             mySelectedObjects.append( *it );
@@ -527,14 +531,14 @@ bool GLViewer_Context::replaceObject( GLViewer_Object* oldObject, GLViewer_Objec
 
   if( myActiveObjects.contains( oldObject ) )
   {
-    myActiveObjects.remove( oldObject );
+    myActiveObjects.removeAll( oldObject );
     myActiveObjects.append( newObject );
     return true;
   }
 
   if( myInactiveObjects.contains( oldObject ) )
   {
-    myInactiveObjects.remove( oldObject );
+    myInactiveObjects.removeAll( oldObject );
     myInactiveObjects.append( newObject );
     return true;
   }
@@ -626,7 +630,7 @@ void GLViewer_Context::remSelected( GLViewer_Object* object, bool updateViewer )
   if( !object || !mySelectedObjects.contains( object ) )
     return;
   
-  mySelectedObjects.remove( object );
+  mySelectedObjects.removeAll( object );
   object->unselect();
   
   if( updateViewer )
@@ -661,14 +665,14 @@ void GLViewer_Context::deleteObject( GLViewer_Object* theObject, bool updateView
         return;
 
     if( myActiveObjects.contains( theObject ) )      
-        myActiveObjects.remove( theObject );
+        myActiveObjects.removeAll( theObject );
     else if( myInactiveObjects.contains( theObject ) )
-        myInactiveObjects.remove( theObject );
+        myInactiveObjects.removeAll( theObject );
     else 
         return;
      
     if( mySelectedObjects.contains( theObject ) )
-        mySelectedObjects.remove( theObject );
+        mySelectedObjects.removeAll( theObject );
 
     GLViewer_Group* aGroup = theObject->getGroup();
     if( aGroup )
@@ -690,7 +694,7 @@ bool GLViewer_Context::setActive( GLViewer_Object* theObject )
   if( !theObject || !myInactiveObjects.contains( theObject ) )
     return false;
 
-  myInactiveObjects.remove( theObject );
+  myInactiveObjects.removeAll( theObject );
   myActiveObjects.append( theObject );
   return true;
 }
@@ -704,7 +708,7 @@ bool GLViewer_Context::setInactive( GLViewer_Object* theObject )
   if( !theObject || !myActiveObjects.contains( theObject ) )
     return false;
 
-  myActiveObjects.remove( theObject );
+  myActiveObjects.removeAll( theObject );
   myInactiveObjects.append( theObject );
   return true;
 }
index 2ec1a0ccf97c69008d5f606e36bcf94555a57785..aa367366c9a3b71bc4dba469f4421e73333c2830 100644 (file)
@@ -33,9 +33,7 @@
 #include "GLViewer_Defs.h"
 #include "GLViewer_Object.h"
 
-#include <qrect.h>
-#include <qobject.h>
-#include <qregion.h>
+class QRect;
 
 #include <Quantity_NameOfColor.hxx>
 #include <Quantity_Color.hxx>
index 411fb4a7af45b349594d778831b272294f16f884..c11455d3d273238c7627c00b6008bb0885f8f5f9 100644 (file)
@@ -25,8 +25,8 @@
 #ifndef GLVIEWER_DEFS_H
 #define GLVIEWER_DEFS_H
 
-#include <qmap.h>
-#include <qvaluelist.h>
+#include <QMap>
+#include <QList>
 
 class GLViewer_Object;
 //Selection staus 
@@ -57,7 +57,7 @@ enum SelectionStatus
 };
 
 typedef QMap<GLViewer_Object*,int> ObjectMap;
-typedef QValueList<GLViewer_Object*> ObjList;
+typedef QList<GLViewer_Object*> ObjList;
 
 #define SEGMENTS   32
 #define PI         3.14159265359
index d0001a49c18f42ab8c6efd5893e05358f4e056ab..433074a460dfbca1b48ee21977fb87a2ca9d707f 100644 (file)
 #include "GLViewer_ViewFrame.h"
 #include "GLViewer_ViewPort2d.h"
 
+#include <QApplication>
+#include <QImage>
+#include <QPainter>
+#include <QFile>
+
 #ifndef WIN32
 #include <GL/glx.h>
 #endif
 
 #include <gp_Pnt2d.hxx>
 
-#include <qimage.h>
-#include <qpainter.h>
-
 #define TEXT_GAP    5
 // Two texture components for texmapped fonts: luminance and alpha
 #define NB_TEX_COMP 2
@@ -73,7 +75,7 @@ void GLViewer_TexFont::clearTextBases()
 GLViewer_TexFont::GLViewer_TexFont()
 : myMaxRowWidth( 0 ), myFontHeight( 0 )
 {
-    myQFont = QFont::defaultFont();
+    myQFont = QApplication::font();//QFont::defaultFont();
     mySeparator = 2;
     myIsResizeable = false;
     myMinMagFilter = GL_LINEAR;
@@ -204,7 +206,7 @@ bool GLViewer_TexFont::generateTexture()
             aPainter.drawText( myPositions[l], ( row + 1 ) * aRowPixelHeight - aDescent, aLetter );
         }
     
-        QImage aImage = aPixmap.convertToImage();
+        QImage aImage = aPixmap.toImage();
 
         //int qqq = 0;
         //if (qqq)
@@ -308,7 +310,7 @@ void GLViewer_TexFont::drawString( QString theStr, GLdouble theX , GLdouble theY
     int aLettIndex, row;
     for ( int i = 0; i < (int)theStr.length(); i++ )
     {
-        aLetter    = theStr.data()[i];
+        aLetter    = theStr.data()[i].toLatin1();
         aLettIndex = (int)aLetter - FirstSymbolNumber;
         row        = aLettIndex / TEX_ROW_LEN;
 
@@ -340,7 +342,7 @@ int GLViewer_TexFont::getStringWidth( QString theStr )
     int aWidth = 0;
     for ( int i = 0; i < (int)theStr.length(); i ++ )
     {
-        char aLetter = theStr.data()[i];
+        char aLetter = theStr.data()[i].toLatin1();
         int aLettIndex = (int)aLetter - FirstSymbolNumber;
         aWidth += myWidths[aLettIndex] + mySeparator;
     }
@@ -429,19 +431,19 @@ static GLuint displayListBase( QFont* theFont )
     QMap<GLViewer_TexFindId, GLuint>::iterator it = GLViewer_TexFont::BitmapFontCache.begin();
     for ( ; it != GLViewer_TexFont::BitmapFontCache.end(); ++it )
     {
-      if ( it.key().myViewPortId == size_t(aCont) && it.data() > listBase )
-        listBase = it.data();
+      if ( it.key().myViewPortId == size_t(aCont) && it.value() > listBase )
+        listBase = it.value();
     }
     listBase += 256;
     
     //glXUseXFont( (Font)(theFont->handle()), 0, 256, listBase );
     int aFontCont = 0;
     QString aFontDef = theFont->toString();
-    char** xFontList = XListFonts( aDisp, aFontDef.latin1()/*aFindFont.myFontString.data()*/, 1, &aFontCont  );
+    char** xFontList = XListFonts( aDisp, aFontDef.toLatin1()/*aFindFont.myFontString.data()*/, 1, &aFontCont  );
     if( !theFont->handle() )
     {       
 #ifdef _DEBUG_
-      printf( "Can't load font %s. loading default font....\n", aFontDef.latin1()/*aFindFont.myFontString.data()*/ );
+      printf( "Can't load font %s. loading default font....\n", aFontDef.toLatin1().data()/*aFindFont.myFontString.data()*/ );
 #endif
       QString aFontMask ("-*-*-*-r-*-*-");
       aFontMask += aFontDef/*aFindFont.myFontString*/.section( ',', 1, 1 );
@@ -449,7 +451,7 @@ static GLuint displayListBase( QFont* theFont )
       printf( "Height of Default font: %s\n", aFontDef/*aFindFont.myFontString*/.section( ',', 1, 1 ).data() );
 #endif
       aFontMask += "-*-*-*-m-*-*-*";
-      xFontList = XListFonts( aDisp, aFontMask.data()/*"-*-*-*-r-*-*-12-*-*-*-m-*-*-*"*/, 1, &aFontCont  );
+      xFontList = XListFonts( aDisp, aFontMask.toLatin1().constData()/*"-*-*-*-r-*-*-12-*-*-*-m-*-*-*"*/, 1, &aFontCont  );
       if( aFontCont == 0 )
       {      
 #ifdef _DEBUG_
@@ -504,7 +506,7 @@ void GLViewer_Drawer::destroyAllTextures()
     QMap<GLViewer_TexFindId,GLViewer_TexIdStored>::Iterator anEndIt= GLViewer_TexFont::TexFontBase.end();
 
     for( ; anIt != anEndIt; anIt++ )
-        glDeleteTextures( 1, &(anIt.data().myTexFontId) );
+        glDeleteTextures( 1, &(anIt.value().myTexFontId) );
 }
 
 /*!
@@ -785,7 +787,7 @@ void GLViewer_Drawer::drawText( const QString& text, GLfloat xPos, GLfloat yPos,
   {
     glRasterPos2f( xPos, yPos );
     glListBase( displayListBase( theFont ) );
-    glCallLists( text.length(), GL_UNSIGNED_BYTE, text.local8Bit().data() );
+    glCallLists( text.length(), GL_UNSIGNED_BYTE, text.toLocal8Bit().data() );
   }
 }
 
@@ -996,7 +998,7 @@ void GLViewer_Drawer::drawContour( const GLViewer_PntList& pntList, QColor color
   glLineWidth( lineWidth );
   
   glBegin( GL_LINES );
-  QValueList<GLViewer_Pnt>::const_iterator it = pntList.begin();
+  QList<GLViewer_Pnt>::const_iterator it = pntList.begin();
   for( ; it != pntList.end(); ++it )
     glVertex2f( (*it).x(), (*it).y() );
   glEnd();
@@ -1051,7 +1053,7 @@ void GLViewer_Drawer::drawPolygon( const GLViewer_PntList& pntList, QColor color
     ( GLfloat )color.green() / 255,
     ( GLfloat )color.blue() / 255 );
   glBegin( GL_POLYGON );
-  QValueList<GLViewer_Pnt>::const_iterator it = pntList.begin();
+  QList<GLViewer_Pnt>::const_iterator it = pntList.begin();
   for( ; it != pntList.end(); ++it )
     glVertex2f( (*it).x(), (*it).y() );
   glEnd();
index 9cfae081acdfa62efbe49bd298ed1942201e39b4..859eecbc3328a811c058cbdbe9d76f1915f5bd22 100644 (file)
 #include "windows.h"
 #endif
 
-#include <qcolor.h>
-#include <qobject.h>
-#include <qfile.h>
-#include <qfont.h>
-#include <qgl.h>
+#include <QColor>
+#include <QFont>
+
+class QFile;
 
 #include <GL/gl.h>
 
@@ -424,7 +423,7 @@ protected:
   float                           myYScale;
   
   //! List of objects
-  QValueList<GLViewer_Object*>    myObjects;
+  QList<GLViewer_Object*>    myObjects;
   //! List generated textures
   GLuint                          myTextList;
   
index 524eafa39a05974ff8166350028717a05fb0a3fd..13397fce4fd51f2a9755373190dd1d565eaa87b3 100644 (file)
 
 #include "GLViewer.h"
 
-#include <qrect.h>
-#include <qvaluelist.h>
-#include <qgl.h>
+#include <QRect>
+#include <QtOpenGL>
 #include <math.h>
 
+//using namespace QGL;
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -59,7 +59,7 @@ private:
   GLfloat myY;
 };
 
-typedef QValueList<GLViewer_Pnt> GLViewer_PntList;
+typedef QList<GLViewer_Pnt> GLViewer_PntList;
 
 /*! Class  GLViewer_Rect
 *  Substitution of QRect for OpenGL
index 13a661cafc6d2d22048630644f0956f3b5b095cf..9420de1288ab3007c24d15a558a9c287021f4aa4 100644 (file)
@@ -27,7 +27,6 @@
 #include "GLViewer_Defs.h"
 
 #include <Precision.hxx>
-#include <qglobal.h>
 
 /*!
   Default constructor
diff --git a/src/GLViewer/GLViewer_MimeData.cxx b/src/GLViewer/GLViewer_MimeData.cxx
new file mode 100644 (file)
index 0000000..d669475
--- /dev/null
@@ -0,0 +1,248 @@
+//  Copyright (C) 2005 OPEN CASCADE
+//
+//  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.
+//
+//  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
+//
+//  Author : OPEN CASCADE
+//
+
+//#include <GLViewerAfx.h>
+#include "GLViewer_MimeData.h"
+#include "GLViewer_BaseObjects.h"
+
+//#include <cmath>
+//using namespace std;
+
+/*!
+  Destructor
+*/
+GLViewer_MimeData::~GLViewer_MimeData()
+{
+}
+
+/*!
+  Translate objects to byte array
+  \param theObjects - list of objects
+*/
+bool GLViewer_MimeData::setObjects( QList<GLViewer_Object*> theObjects )
+{
+    if( !theObjects.empty() )
+    {
+        QStringList aObjectsType;
+        QList<QByteArray> aObjects;
+        QList<GLViewer_Object*>::const_iterator anIt = theObjects.begin();
+        QList<GLViewer_Object*>::const_iterator anEndIt = theObjects.end();
+
+        int aObjByteSize = 0;
+        for( ; anIt != anEndIt; anIt++ )
+        {
+            aObjects.append( (*anIt)->getByteCopy() );
+            aObjByteSize += aObjects.last().size();
+            aObjectsType.append( (*anIt)->getObjectType() );
+        }
+
+        int anISize = sizeof( int );
+        QString aTypes = aObjectsType.join("");
+        int aStrByteSize = aTypes.length();
+        int aObjNum = aObjects.count();
+
+        myByteArray.resize( anISize * (1 + 2*aObjNum) + aStrByteSize + aObjByteSize );
+
+        int anIndex = 0, j = 0;
+        char* aPointer = (char*)&aObjNum;
+        for( anIndex = 0; anIndex < anISize; anIndex++, aPointer++ )
+            myByteArray[anIndex] = *aPointer;
+        
+        QStringList::const_iterator aStrIt = aObjectsType.begin();
+        QStringList::const_iterator aEndStrIt = aObjectsType.end();
+        for( j = 1; aStrIt != aEndStrIt; aStrIt++, j++ )
+        {
+            int aStrLen = (*aStrIt).length();
+            aPointer = (char*)&aStrLen;
+            for( ; anIndex < anISize*( 1 + j ); anIndex++, aPointer++ )
+                myByteArray[anIndex] = *aPointer;
+        }
+
+        int aCurIndex = anIndex;
+        const char* aStr = aTypes.toLatin1().constData();
+
+        for( j = 0 ; anIndex < aCurIndex + aStrByteSize; aPointer++, anIndex++, j++ )
+            myByteArray[anIndex] = aStr[j];
+
+        aCurIndex = anIndex;
+        QList<QByteArray>::iterator anObjIt = aObjects.begin();
+        QList<QByteArray>::iterator anEndObjIt = aObjects.end();
+        for( j = 1; anObjIt != anEndObjIt; anObjIt++, j++ )
+        {
+            int aObjLen = (int)((*anObjIt).size());
+            aPointer = (char*)&aObjLen;
+            for( ; anIndex < aCurIndex + anISize*j; anIndex++, aPointer++ )
+                myByteArray[anIndex] = *aPointer;
+        }
+
+        aCurIndex = anIndex;
+        anObjIt = aObjects.begin();
+
+        for( ; anObjIt != anEndObjIt; anObjIt++ )
+        {
+            int aObjLen = (int)((*anObjIt).size());
+            for( j = 0 ; anIndex < aCurIndex + aObjLen; anIndex++, aPointer++, j++ )
+                myByteArray[anIndex] = (*anObjIt)[j];
+            aCurIndex = anIndex;
+        }
+     
+        return true;
+    }
+
+    return false;
+}
+
+/*!
+  Creates object by it's representation (byte array)
+  \param theArray - byte array
+  \param theType - type of object
+*/
+GLViewer_Object* GLViewer_MimeData::getObject( QByteArray theArray, QString theType )
+{
+    if( !theArray.isEmpty() )
+    {
+        if( theType == "GLViewer_MarkerSet" )
+        {
+            GLViewer_MarkerSet* aObject = new GLViewer_MarkerSet(  0, (float)0.0, 0  );
+            if( aObject->initializeFromByteCopy( theArray ) )
+                return aObject;
+        }
+        else if ( theType == "GLViewer_Polyline" )
+        {
+            GLViewer_Polyline* aObject = new GLViewer_Polyline( 0, (float)0.0, 0 );
+            if( aObject->initializeFromByteCopy( theArray ) )
+                return aObject;
+        }
+        else if( theType == "GLViewer_TextObject" )
+        {
+            GLViewer_TextObject* aObject = new GLViewer_TextObject( 0, 0, 0, QColor(255,255,255), 0 );
+            if( aObject->initializeFromByteCopy( theArray ) )
+                return aObject;
+        }
+    }        
+    
+    return NULL;
+}
+
+/*!
+  Creates list of objects by its representation (byte array)
+  \param theArray - byte array
+  \param theType - type of object
+*/
+QList<GLViewer_Object*> GLViewer_MimeData::getObjects( QByteArray theArray, QString theType )
+{
+    if( !theArray.isEmpty() )
+    {
+        int anISize = sizeof( int );
+        if( theType == "GLViewer_Objects" )
+        {
+            QStringList aTypeList;
+            QList<QByteArray> aObjects;
+            QList<GLViewer_Object*> aObjectList;
+
+            QList<int> aTypeSizeList;
+            QList<int> aObjSizeList;
+            int aObjNum = 0;
+            char* aPointer = (char*)&aObjNum;
+
+            int anIndex = 0, j = 0;
+            for( anIndex = 0; anIndex < anISize; anIndex++, aPointer++ )
+                *aPointer = theArray[anIndex];
+            
+            for( j = 0; j < aObjNum; j++ )
+            {
+                int aTempVal = 0;
+                aPointer = (char*)&aTempVal;
+                for( ; anIndex < anISize*(j+2); anIndex++, aPointer++ )
+                    *aPointer = theArray[anIndex];
+                aTypeSizeList.append( aTempVal );
+            }
+            
+            int aCurIndex = anIndex;
+            for( j = 0; j < aObjNum; j++ )
+            {
+                QString aTempStr;
+                for( ; anIndex < aCurIndex + aTypeSizeList[j]; anIndex++ )
+                {    
+                    char aLetter = theArray[anIndex];
+                    aTempStr.append( aLetter );
+                }
+                aTypeList.append( aTempStr );
+                aCurIndex = anIndex;
+            }
+
+            for( j = 0; j < aObjNum; j++ )
+            {
+                int aTempVal = 0;
+                aPointer = (char*)&aTempVal;
+                for( ; anIndex < aCurIndex + anISize*(j+1); anIndex++, aPointer++ )
+                    *aPointer = theArray[anIndex];
+                aObjSizeList.append( aTempVal );
+            }
+
+            aCurIndex = anIndex;
+            for( j = 0; j < aObjNum; j++ )
+            {
+                QByteArray aTempArray;
+               aTempArray.resize(aObjSizeList[j]);
+                for( ; anIndex < aCurIndex + aObjSizeList[j]; anIndex++ )
+                    aTempArray[anIndex-aCurIndex] = theArray[anIndex];
+                aObjects.append( aTempArray );
+                aCurIndex = anIndex;
+            }
+            
+            for( j = 0; j < aObjNum; j++ )
+                aObjectList.append( getObject( aObjects[j], aTypeList[j] ) );
+
+            return aObjectList;
+        }
+    }
+    
+    return QList<GLViewer_Object*>();    
+}
+
+/*!
+  \return format by index
+  \param theIndex - index
+*/
+const char* GLViewer_MimeData::format( int theIndex ) const
+{
+    switch( theIndex )
+    {
+    case 0: return "GLViewer_Objects";
+    //case 1: return "GLViewer_MarkerSet";
+    //case 2: return "GLViewer_Polyline";
+    //case 3: return "GLViewer_TextObject";
+    default: return 0;
+    }
+
+}
+
+/*!
+  \return internal byte array
+*/
+QByteArray GLViewer_MimeData::encodedData( const char* theObjectType ) const
+{
+    if( theObjectType == "GLViewer_Objects" )
+        return myByteArray;
+    
+    return QByteArray();
+}
diff --git a/src/GLViewer/GLViewer_MimeData.h b/src/GLViewer/GLViewer_MimeData.h
new file mode 100644 (file)
index 0000000..1a5f816
--- /dev/null
@@ -0,0 +1,72 @@
+//  Copyright (C) 2005 OPEN CASCADE
+//
+//  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.
+//
+//  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
+//
+//  Author : OPEN CASCADE
+//
+
+// File:      GLViewer_MimeData.h
+// Created:   November, 2004
+
+#ifndef GLVIEWER_MIMEDATA_H
+#define GLVIEWER_MIMEDATA_H
+
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+#include "GLViewer.h"
+
+#include <QMimeData>
+
+#ifdef WIN32
+#pragma warning( disable:4251 )
+#endif
+
+class GLViewer_Object;
+
+/*! 
+  \class GLViewer_MimeData
+  Needs for a work with QClipboard
+*/
+class GLVIEWER_API GLViewer_MimeData: public QMimeData
+{
+public:
+  GLViewer_MimeData():QMimeData(){};
+  ~GLViewer_MimeData();
+  
+  //! Translate objects to byte array
+  bool                                setObjects( QList<GLViewer_Object*> );
+  //! Gets objects from byte array
+  /*If you want to use new class, following two method must be redefined*/
+  static QList<GLViewer_Object*>      getObjects( QByteArray, QString theType);
+  //! Get object from byte array
+  /*If you want to use new class, following two method must be redefined*/
+  static GLViewer_Object*             getObject( QByteArray, QString theType);
+  
+  const char*                         format( int theIndex = 0 ) const;
+  QByteArray                          encodedData( const char* ) const;
+  
+private:
+  QByteArray                          myByteArray;
+};
+
+#ifdef WIN32
+#pragma warning ( default:4251 )
+#endif
+
+#endif
diff --git a/src/GLViewer/GLViewer_MimeSource.cxx b/src/GLViewer/GLViewer_MimeSource.cxx
deleted file mode 100644 (file)
index ca82fba..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-//  Copyright (C) 2005 OPEN CASCADE
-//
-//  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.
-//
-//  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
-//
-//  Author : OPEN CASCADE
-//
-
-//#include <GLViewerAfx.h>
-#include "GLViewer_MimeSource.h"
-#include "GLViewer_BaseObjects.h"
-
-//#include <cmath>
-//using namespace std;
-
-/*!
-  Destructor
-*/
-GLViewer_MimeSource::~GLViewer_MimeSource()
-{
-}
-
-/*!
-  Translate objects to byte array
-  \param theObjects - list of objects
-*/
-bool GLViewer_MimeSource::setObjects( QValueList<GLViewer_Object*> theObjects )
-{
-    if( !theObjects.empty() )
-    {
-        QStringList aObjectsType;
-        QValueList<QByteArray> aObjects;
-        QValueList<GLViewer_Object*>::const_iterator anIt = theObjects.begin();
-        QValueList<GLViewer_Object*>::const_iterator anEndIt = theObjects.end();
-
-        int aObjByteSize = 0;
-        for( ; anIt != anEndIt; anIt++ )
-        {
-            aObjects.append( (*anIt)->getByteCopy() );
-            aObjByteSize += aObjects.last().size();
-            aObjectsType.append( (*anIt)->getObjectType() );
-        }
-
-        int anISize = sizeof( int );
-        QString aTypes = aObjectsType.join("");
-        int aStrByteSize = aTypes.length();
-        int aObjNum = aObjects.count();
-
-        myByteArray = QByteArray( anISize * (1 + 2*aObjNum) + aStrByteSize + aObjByteSize );
-
-        int anIndex = 0, j = 0;
-        char* aPointer = (char*)&aObjNum;
-        for( anIndex = 0; anIndex < anISize; anIndex++, aPointer++ )
-            myByteArray[anIndex] = *aPointer;
-        
-        QStringList::const_iterator aStrIt = aObjectsType.begin();
-        QStringList::const_iterator aEndStrIt = aObjectsType.end();
-        for( j = 1; aStrIt != aEndStrIt; aStrIt++, j++ )
-        {
-            int aStrLen = (*aStrIt).length();
-            aPointer = (char*)&aStrLen;
-            for( ; anIndex < anISize*( 1 + j ); anIndex++, aPointer++ )
-                myByteArray[anIndex] = *aPointer;
-        }
-
-        int aCurIndex = anIndex;
-        const char* aStr = aTypes.data();
-
-        for( j = 0 ; anIndex < aCurIndex + aStrByteSize; aPointer++, anIndex++, j++ )
-            myByteArray[anIndex] = aStr[j];
-
-        aCurIndex = anIndex;
-        QValueList<QByteArray>::iterator anObjIt = aObjects.begin();
-        QValueList<QByteArray>::iterator anEndObjIt = aObjects.end();
-        for( j = 1; anObjIt != anEndObjIt; anObjIt++, j++ )
-        {
-            int aObjLen = (int)((*anObjIt).size());
-            aPointer = (char*)&aObjLen;
-            for( ; anIndex < aCurIndex + anISize*j; anIndex++, aPointer++ )
-                myByteArray[anIndex] = *aPointer;
-        }
-
-        aCurIndex = anIndex;
-        anObjIt = aObjects.begin();
-
-        for( ; anObjIt != anEndObjIt; anObjIt++ )
-        {
-            int aObjLen = (int)((*anObjIt).size());
-            for( j = 0 ; anIndex < aCurIndex + aObjLen; anIndex++, aPointer++, j++ )
-                myByteArray[anIndex] = (*anObjIt)[j];
-            aCurIndex = anIndex;
-        }
-     
-        return true;
-    }
-
-    return false;
-}
-
-/*!
-  Creates object by it's representation (byte array)
-  \param theArray - byte array
-  \param theType - type of object
-*/
-GLViewer_Object* GLViewer_MimeSource::getObject( QByteArray theArray, QString theType )
-{
-    if( !theArray.isEmpty() )
-    {
-        if( theType == "GLViewer_MarkerSet" )
-        {
-            GLViewer_MarkerSet* aObject = new GLViewer_MarkerSet(  0, (float)0.0, 0  );
-            if( aObject->initializeFromByteCopy( theArray ) )
-                return aObject;
-        }
-        else if ( theType == "GLViewer_Polyline" )
-        {
-            GLViewer_Polyline* aObject = new GLViewer_Polyline( 0, (float)0.0, 0 );
-            if( aObject->initializeFromByteCopy( theArray ) )
-                return aObject;
-        }
-        else if( theType == "GLViewer_TextObject" )
-        {
-            GLViewer_TextObject* aObject = new GLViewer_TextObject( 0, 0, 0, QColor(255,255,255), 0 );
-            if( aObject->initializeFromByteCopy( theArray ) )
-                return aObject;
-        }
-    }        
-    
-    return NULL;
-}
-
-/*!
-  Creates list of objects by its representation (byte array)
-  \param theArray - byte array
-  \param theType - type of object
-*/
-QValueList<GLViewer_Object*> GLViewer_MimeSource::getObjects( QByteArray theArray, QString theType )
-{
-    if( !theArray.isEmpty() )
-    {
-        int anISize = sizeof( int );
-        if( theType == "GLViewer_Objects" )
-        {
-            QStringList aTypeList;
-            QValueList<QByteArray> aObjects;
-            QValueList<GLViewer_Object*> aObjectList;
-
-            QValueList<int> aTypeSizeList;
-            QValueList<int> aObjSizeList;
-            int aObjNum = 0;
-            char* aPointer = (char*)&aObjNum;
-
-            int anIndex = 0, j = 0;
-            for( anIndex = 0; anIndex < anISize; anIndex++, aPointer++ )
-                *aPointer = theArray[anIndex];
-            
-            for( j = 0; j < aObjNum; j++ )
-            {
-                int aTempVal = 0;
-                aPointer = (char*)&aTempVal;
-                for( ; anIndex < anISize*(j+2); anIndex++, aPointer++ )
-                    *aPointer = theArray[anIndex];
-                aTypeSizeList.append( aTempVal );
-            }
-            
-            int aCurIndex = anIndex;
-            for( j = 0; j < aObjNum; j++ )
-            {
-                QString aTempStr;
-                for( ; anIndex < aCurIndex + aTypeSizeList[j]; anIndex++ )
-                {    
-                    char aLetter = theArray[anIndex];
-                    aTempStr.append( aLetter );
-                }
-                aTypeList.append( aTempStr );
-                aCurIndex = anIndex;
-            }
-
-            for( j = 0; j < aObjNum; j++ )
-            {
-                int aTempVal = 0;
-                aPointer = (char*)&aTempVal;
-                for( ; anIndex < aCurIndex + anISize*(j+1); anIndex++, aPointer++ )
-                    *aPointer = theArray[anIndex];
-                aObjSizeList.append( aTempVal );
-            }
-
-            aCurIndex = anIndex;
-            for( j = 0; j < aObjNum; j++ )
-            {
-                QByteArray aTempArray(aObjSizeList[j]);
-                for( ; anIndex < aCurIndex + aObjSizeList[j]; anIndex++ )
-                    aTempArray[anIndex-aCurIndex] = theArray[anIndex];
-                aObjects.append( aTempArray );
-                aCurIndex = anIndex;
-            }
-            
-            for( j = 0; j < aObjNum; j++ )
-                aObjectList.append( getObject( aObjects[j], aTypeList[j] ) );
-
-            return aObjectList;
-        }
-    }
-    
-    return QValueList<GLViewer_Object*>();    
-}
-
-/*!
-  \return format by index
-  \param theIndex - index
-*/
-const char* GLViewer_MimeSource::format( int theIndex ) const
-{
-    switch( theIndex )
-    {
-    case 0: return "GLViewer_Objects";
-    //case 1: return "GLViewer_MarkerSet";
-    //case 2: return "GLViewer_Polyline";
-    //case 3: return "GLViewer_TextObject";
-    default: return 0;
-    }
-
-}
-
-/*!
-  \return internal byte array
-*/
-QByteArray GLViewer_MimeSource::encodedData( const char* theObjectType ) const
-{
-    if( theObjectType == "GLViewer_Objects" )
-        return myByteArray;
-    
-    return QByteArray();
-}
diff --git a/src/GLViewer/GLViewer_MimeSource.h b/src/GLViewer/GLViewer_MimeSource.h
deleted file mode 100644 (file)
index 7b79bfd..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-//  Copyright (C) 2005 OPEN CASCADE
-//
-//  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.
-//
-//  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
-//
-//  Author : OPEN CASCADE
-//
-
-// File:      GLViewer_MimeSource.h
-// Created:   November, 2004
-
-#ifndef GLVIEWER_MIMESOURCE_H
-#define GLVIEWER_MIMESOURCE_H
-
-#ifdef WIN32
-#include <windows.h>
-#endif
-
-#include "GLViewer.h"
-
-#include <qmime.h>
-#include <qvaluelist.h>
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class GLViewer_Object;
-
-/*! 
-  \class GLViewer_MimeSource
-  Needs for a work with QClipboard
-*/
-class GLVIEWER_API GLViewer_MimeSource: public QMimeSource
-{
-public:
-  GLViewer_MimeSource():QMimeSource(){};
-  ~GLViewer_MimeSource();
-  
-  //! Translate objects to byte array
-  bool                                setObjects( QValueList<GLViewer_Object*> );
-  //! Gets objects from byte array
-  /*If you want to use new class, following two method must be redefined*/
-  static QValueList<GLViewer_Object*> getObjects( QByteArray, QString theType);
-  //! Get object from byte array
-  /*If you want to use new class, following two method must be redefined*/
-  static GLViewer_Object*             getObject( QByteArray, QString theType);
-  
-  // Redefined methods
-  virtual const char*                 format( int theIndex = 0 ) const;
-  virtual QByteArray                  encodedData( const char* ) const;
-  
-private:
-  QByteArray                          myByteArray;
-};
-
-#ifdef WIN32
-#pragma warning ( default:4251 )
-#endif
-
-#endif
index 7de98ed37321db2c9aaf99121c8a95bcc566f9a3..c6a920c8199d3b58a176f56189541f9814559420 100644 (file)
 #include "GLViewer_Object.h"
 #include "GLViewer_Drawer.h"
 #include "GLViewer_AspectLine.h"
-#include "GLViewer_Geom.h"
 #include "GLViewer_Text.h"
 #include "GLViewer_Group.h"
 
+#include <SUIT_DataOwner.h>
+
 //#include <cmath>
 //using namespace std;
 
@@ -141,8 +142,8 @@ QByteArray GLViewer_Object::getByteCopy()
     int i = 0;
     int anISize = sizeof( int );
 
-    const char* aTypeStr = myType.data();
-    const char* aToolTipStr = myToolTipText.data();
+    const char* aTypeStr = myType.toLatin1().constData();
+    const char* aToolTipStr = myToolTipText.toLatin1().constData();
 
     int aTypeLength = myType.length();
     int aToolTipLength = myToolTipText.length();
@@ -163,9 +164,10 @@ QByteArray GLViewer_Object::getByteCopy()
     
     int sizeOf8Float = sizeof( aRectData );
 
-    QByteArray aResult( 2*anISize + sizeOf8Float + 
-                        aTypeLength + aToolTipLength +
-                        aGLText.size() + aAspect.size() );
+    QByteArray aResult;
+    aResult.resize( 2*anISize + sizeOf8Float + 
+                   aTypeLength + aToolTipLength +
+                   aGLText.size() + aAspect.size() );
     // puts 8 float values into the byte array
     char* aPointer = (char*)&aRectData;
     for( i = 0; i < sizeOf8Float; i++, aPointer++ )
@@ -225,7 +227,9 @@ bool GLViewer_Object::initializeFromByteCopy( QByteArray theArray )
     GLViewer_AspectLine* aAspectLine = new GLViewer_AspectLine();
     int aGLAspLineSize = (aAspectLine->getByteCopy()).size();
 
-    QByteArray aGLTextArray, aAspect( aGLAspLineSize );
+    QByteArray aGLTextArray, aAspect;
+    aGLTextArray.resize( aGLAspLineSize );
+    aAspect.resize( aGLAspLineSize );
 
     if( aSize < 2*anISize + 8*aFSize + aGLTextMinSize + aGLAspLineSize )
         return false;
index f3d3215b2c2920be85032efc9912dd9413566c01..503a5a038e84a1df3c2d34fe5a8535c4c1719668 100644 (file)
 #endif
 
 #include "GLViewer.h"
-#include "GLViewer_Defs.h"
 #include "GLViewer_Geom.h"
 
-#include <SUIT_DataOwner.h>
-
 #include <GL/gl.h>
 
-#include <qfile.h>
-#include <qstring.h>
-#include <qrect.h>
+#include <QString>
+
+class QFile;
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -52,6 +49,8 @@ class GLViewer_CoordSystem;
 class GLViewer_Text;
 //class GLViewer_Owner;
 
+class SUIT_DataOwner;
+
 /*! 
  * Class GLViewer_Object
  * Base Object for all GLViewer objects
index 4e4c91aea3127bc7af36ecbc93241b9c38ade8ec..82b9834e5a347e05ebbac4976ffc6d311d854087 100644 (file)
@@ -27,7 +27,7 @@
 
 #include "GLViewer_Viewer.h"
 
-int GLViewer_Selector::apppendKey = Qt::ShiftButton;
+int GLViewer_Selector::apppendKey = Qt::ShiftModifier;
 
 /*!
     Constructor
index 6c0672843f44b5469784c03ce07c5e9a03059560..ff044848df5b8299ac7a643033f1cdbb19e004f7 100644 (file)
 #include "GLViewer.h"
 #include "GLViewer_Defs.h"
 
-#include <qsize.h>
-#include <qobject.h>
+#include <QSize>
+#include <QObject>
+
+class QRect;
 
 #include <Quantity_NameOfColor.hxx>
 
index 067b2954156ef7a6f33de4346c093f73c1f52b88..362f9625cc438b7678a4604f2d936014d1c7ef9a 100644 (file)
@@ -26,7 +26,8 @@
 #include "GLViewer_Selector2d.h"
 #include "GLViewer_Viewer2d.h"
 #include "GLViewer_Context.h"
-#include "GLViewer_ViewPort2d.h"
+#include "GLViewer_ViewPort.h"
+#include "GLViewer_ViewFrame.h"
 
 /*!
   Constructor
index f4dba3a4790e0a4b5c2d0b8d8fcce1e9ccf696c7..24631871d1031a9697d73c0cf0ea67a62fef9b80 100644 (file)
@@ -22,6 +22,9 @@
 //#include <GLViewerAfx.h>
 #include "GLViewer_Text.h"
 
+#include <QApplication>
+#include <QFontMetrics>
+
 /*!
   Constructor
 */
@@ -31,7 +34,7 @@ GLViewer_Text::GLViewer_Text( const QString& text, float xPos, float yPos, const
   myXPos = xPos;
   myYPos = yPos;
   myColor = color;
-  myQFont = QFont::defaultFont();
+  myQFont = QApplication::font();//QFont::defaultFont();
   mySeparator = 2;
   myDTF = DTF_BITMAP;
 }
@@ -90,10 +93,11 @@ QByteArray GLViewer_Text::getByteCopy() const
     int aR = myColor.red();
     int aG = myColor.green();
     int aB = myColor.blue();
-    const char* aStr = myText.data();
+    const char* aStr = myText.toLatin1().constData();
 
     int anISize = sizeof( int );    
-    QByteArray aResult( aSize );
+    QByteArray aResult;
+    aResult.resize( aSize );
 
     char* aPointer = (char*)&myXPos;
     for( i = 0; i < anISize; i++, aPointer++ )
@@ -124,7 +128,7 @@ QByteArray GLViewer_Text::getByteCopy() const
     for( ; i < 7*anISize + aTextSize; i++, aPointer++ )
         aResult[i] = *aPointer;
 
-    const char* aFontStr = myQFont.toString().data();
+    const char* aFontStr = myQFont.toString().toLatin1().constData();
     int aFontSize = myQFont.toString().length();
 
     for( i = 0; i < aFontSize; i++ )
index 597a6137537b642491bda6fc03662f27ca231b64..fefe786b52c0f064c1617bdb7c79a9d167eebf07 100644 (file)
 
 #include <GL/gl.h>
 
-#include <qfont.h>
-#include <qstring.h>
-#include <qcolor.h>
-#include <qfontmetrics.h>
+#include <QFont>
+#include <QString>
+#include <QColor>
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
index c4449265c58e94bf4753629419fce9604c12a124..e246f163db5ee7b79172d2e8ff92e3ebb14d95f4 100644 (file)
 #include "GLViewer_ToolTip.h"
 #include "GLViewer_Viewer2d.h"
 #include "GLViewer_ViewPort2d.h"
+#include "GLViewer_ViewFrame.h"
 
-#include <qlabel.h>
-#include <qtimer.h>
-#include <qbitmap.h>
-#include <qapplication.h>
-#include <qtooltip.h>
+#include <QLabel>
+#include <QTimer>
+#include <QBitmap>
+#include <QApplication>
+#include <QToolTip>
+#include <QMouseEvent>
 
 /*!
   constructor
@@ -44,15 +46,16 @@ GLViewer_ObjectTip::GLViewer_ObjectTip( GLViewer_ViewPort2d* theParent )
 {
   mypViewPort = theParent;
   //mypLabel = NULL;
-  mypLabel = new QLabel( "Test", NULL, "ObjectTipText",
-            WStyle_StaysOnTop | WStyle_Customize | WStyle_NoBorder | WStyle_Tool | WX11BypassWM );
-       mypLabel->setMargin( 1 );
-       mypLabel->setAutoMask( FALSE );
+  mypLabel = new QLabel( "Test", NULL, 
+                        Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::Tool | Qt::X11BypassWindowManagerHint );
+  mypLabel->setObjectName("ObjectTipText");
+  mypLabel->setMargin( 1 );
+  //mypLabel->setAutoMask( FALSE );
   mypLabel->setFrameStyle( QFrame::Plain | QFrame::Box );
   mypLabel->setLineWidth( 1 );
-  mypLabel->setAlignment( AlignAuto | AlignTop );
+  mypLabel->setAlignment( Qt::AlignAbsolute | Qt::AlignTop );
   mypLabel->setIndent( 0 );
-  mypLabel->polish();
+  mypLabel->ensurePolished();
   
   //mypLabel->setPalette( QToolTip::palette() );
 
index 508679b6a163eff76b015709ecd7737a910b6160..ee01466cc850f4d1c99859a12224ae0f4b86c78f 100644 (file)
 
 //#include <qtooltip.h>
 //#include <QtxToolTip.h>
-#include <qobject.h>
+#include <QObject>
+#include <QPoint>
 
 #define TIP_TIME            1000
 
 class GLViewer_ViewPort2d;
 class QLabel;
+class QTimer;
 /*!
   \class GLViewer_ObjectTip
   ToolTip of GLViewer_Objects
index ce7aa9db0cd67f66e056efb4ebaa17b1a3c7fe0f..2ec85061ee39ed6863c2bf02bb24991b4bcb300e 100644 (file)
@@ -30,9 +30,6 @@
 #endif
 
 #include "GLViewer.h"
-#include "GLViewer_Defs.h"
-
-class GLViewer_LineField;
 
 /*!
   \class GLViewer_Tools 
index c0b63bb6c697b459ece46a18569dc50fff33a069..11e1229daf1b10320dc4deb9d019f0dae8fe4d76 100644 (file)
@@ -25,7 +25,6 @@
 //#include <GLViewerAfx.h>
 #include "GLViewer_ViewFrame.h"
 #include "GLViewer_Viewer.h"
-#include "GLViewer_Viewer2d.h"
 #include "GLViewer_ViewPort2d.h"
 
 #include <SUIT_Desktop.h>
 #include <SUIT_ResourceMgr.h>
 #include <SUIT_MessageBox.h>
 
-#include <qcolor.h>
-#include <qfiledialog.h>
-#include <qimage.h>
-#include <qlayout.h>
-#include <qstring.h>
+#include <QColor>
+#include <QFileDialog>
+#include <QImage>
+#include <QHBoxLayout>
+#include <QString>
+#include <QFrame>
+#include <QToolBar>
+#include <QMouseEvent>
+#include <QKeyEvent>
+#include <QWheelEvent>
 
 /*!
     Constructor
@@ -51,8 +55,9 @@ myVP( 0 )
     QFrame* client = new QFrame( this );    
     setCentralWidget( client );
 
-    QBoxLayout* layout = new QHBoxLayout( client, 1, 1 );
-    layout->setAutoAdd( true );
+    QBoxLayout* layout = new QHBoxLayout( client );
+    layout->setMargin(1);
+    layout->setSpacing(1);
 
     GLViewer_ViewPort2d* vp = new GLViewer_ViewPort2d( client, this );
     //vp->turnGrid( true );
@@ -60,10 +65,11 @@ myVP( 0 )
     //vp->enablePopup( false );
     setViewPort( vp );
     setBackgroundColor( Qt::white );
+    layout->addWidget( vp );
 
     myToolBar = new QToolBar(this);
-    myToolBar->setCloseMode(QDockWindow::Undocked);
-    myToolBar->setLabel(tr("LBL_TOOLBAR_LABEL"));
+    //myToolBar->setCloseMode(QDockWindow::Undocked);
+    myToolBar->setWindowTitle(tr("LBL_TOOLBAR_LABEL"));
     createActions();
     createToolBar();
 }
@@ -82,59 +88,59 @@ void GLViewer_ViewFrame::createActions()
 {
   if (!myActionsMap.isEmpty()) return;
   SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
-  QAction* aAction;
+  QtxAction* aAction;
 
   // Dump view
-  aAction = new QAction(tr("MNU_DUMP_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_DUMP" ) ),
-                           tr( "MNU_DUMP_VIEW" ), 0, this);
+  aAction = new QtxAction(tr("MNU_DUMP_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_DUMP" ) ),
+                         tr( "MNU_DUMP_VIEW" ), 0, this);
   aAction->setStatusTip(tr("DSC_DUMP_VIEW"));
   connect(aAction, SIGNAL(activated()), this, SLOT(onViewDump()));
   myActionsMap[ DumpId ] = aAction;
 
   // FitAll
-  aAction = new QAction(tr("MNU_FITALL"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_FITALL" ) ),
-                           tr( "MNU_FITALL" ), 0, this);
+  aAction = new QtxAction(tr("MNU_FITALL"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_FITALL" ) ),
+                         tr( "MNU_FITALL" ), 0, this);
   aAction->setStatusTip(tr("DSC_FITALL"));
   connect(aAction, SIGNAL(activated()), this, SLOT(onViewFitAll()));
   myActionsMap[ FitAllId ] = aAction;
 
   // FitRect
-  aAction = new QAction(tr("MNU_FITRECT"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_FITAREA" ) ),
-                           tr( "MNU_FITRECT" ), 0, this);
+  aAction = new QtxAction(tr("MNU_FITRECT"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_FITAREA" ) ),
+                         tr( "MNU_FITRECT" ), 0, this);
   aAction->setStatusTip(tr("DSC_FITRECT"));
   connect(aAction, SIGNAL(activated()), this, SLOT(onViewFitArea()));
   myActionsMap[ FitRectId ] = aAction;
 
   // FitSelect
-  aAction = new QAction(tr("MNU_FITSELECT"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_FITSELECT" ) ),
-                           tr( "MNU_FITSELECT" ), 0, this);
+  aAction = new QtxAction(tr("MNU_FITSELECT"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_FITSELECT" ) ),
+                         tr( "MNU_FITSELECT" ), 0, this);
   aAction->setStatusTip(tr("DSC_FITSELECT"));
   connect(aAction, SIGNAL(activated()), this, SLOT(onViewFitSelect()));
   myActionsMap[ FitSelectId ] = aAction;
 
   // Zoom
-  aAction = new QAction(tr("MNU_ZOOM_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_ZOOM" ) ),
-                           tr( "MNU_ZOOM_VIEW" ), 0, this);
+  aAction = new QtxAction(tr("MNU_ZOOM_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_ZOOM" ) ),
+                         tr( "MNU_ZOOM_VIEW" ), 0, this);
   aAction->setStatusTip(tr("DSC_ZOOM_VIEW"));
   connect(aAction, SIGNAL(activated()), this, SLOT(onViewZoom()));
   myActionsMap[ ZoomId ] = aAction;
 
   // Panning
-  aAction = new QAction(tr("MNU_PAN_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_PAN" ) ),
-                           tr( "MNU_PAN_VIEW" ), 0, this);
+  aAction = new QtxAction(tr("MNU_PAN_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_PAN" ) ),
+                         tr( "MNU_PAN_VIEW" ), 0, this);
   aAction->setStatusTip(tr("DSC_PAN_VIEW"));
   connect(aAction, SIGNAL(activated()), this, SLOT(onViewPan()));
   myActionsMap[ PanId ] = aAction;
 
   // Global Panning
-  aAction = new QAction(tr("MNU_GLOBALPAN_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_GLOBALPAN" ) ),
-                           tr( "MNU_GLOBALPAN_VIEW" ), 0, this);
+  aAction = new QtxAction(tr("MNU_GLOBALPAN_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_GLOBALPAN" ) ),
+                         tr( "MNU_GLOBALPAN_VIEW" ), 0, this);
   aAction->setStatusTip(tr("DSC_GLOBALPAN_VIEW"));
   connect(aAction, SIGNAL(activated()), this, SLOT(onViewGlobalPan()));
   myActionsMap[ GlobalPanId ] = aAction;
 
-  aAction = new QAction(tr("MNU_RESET_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_RESET" ) ),
-                           tr( "MNU_RESET_VIEW" ), 0, this);
+  aAction = new QtxAction(tr("MNU_RESET_VIEW"), aResMgr->loadPixmap( "GLViewer", tr( "ICON_GL_RESET" ) ),
+                         tr( "MNU_RESET_VIEW" ), 0, this);
   aAction->setStatusTip(tr("DSC_RESET_VIEW"));
   connect(aAction, SIGNAL(activated()), this, SLOT(onViewReset()));
   myActionsMap[ ResetId ] = aAction;
@@ -213,7 +219,7 @@ QColor GLViewer_ViewFrame::backgroundColor() const
 {
     if ( myVP )
         return myVP->backgroundColor();
-    return QMainWindow::backgroundColor();
+    return palette().color( backgroundRole() );
 }
 
 /*!
@@ -380,7 +386,7 @@ void GLViewer_ViewFrame::onViewDump()
 #endif
 
     unsigned int* aPix = NULL;
-    QImage  anImage( width, height, 32 );
+    QImage  anImage( width, height, QImage::Format_RGB32 );
     for( int i = 0; i < height; i++ )
     {
         memset( anImage.scanLine( i ), 0, sizeof(unsigned int)*width );
@@ -397,14 +403,16 @@ void GLViewer_ViewFrame::onViewDump()
 
     QString aFilter( "*.bmp\n*.png" );
 
-    QFileDialog aFileDlg( QDir::current().absPath(), aFilter, this );
-    aFileDlg.setCaption( tr( "DUMP_VIEW_SAVE_FILE_DLG_CAPTION" ) );
-    aFileDlg.setMode( QFileDialog::AnyFile );
+    QFileDialog aFileDlg( this, tr( "DUMP_VIEW_SAVE_FILE_DLG_CAPTION" ), QDir::current().absolutePath(), aFilter );
+    aFileDlg.setFileMode( QFileDialog::AnyFile );
 
     if( !aFileDlg.exec() )
         return;
 
-    QString aFileName = aFileDlg.selectedFile();
+    QStringList files = aFileDlg.selectedFiles();
+    QString aFileName;
+    if ( !files.isEmpty() ) aFileName = files[0];
+
     QString aFileExt = aFileDlg.selectedFilter();
 
     if( aFileName.isEmpty() )
@@ -415,7 +423,7 @@ void GLViewer_ViewFrame::onViewDump()
     }
 
     QString aSaveOp = "BMP";
-    QString aTypedFileExt = QFileInfo( aFileName ).extension( false ).lower();
+    QString aTypedFileExt = QFileInfo( aFileName ).suffix().toLower();
 
     if( aFileExt == "*.bmp" )
     {
@@ -431,7 +439,7 @@ void GLViewer_ViewFrame::onViewDump()
 //#ifdef WIN32
 //    if( !anImage.save( aFileName, aSaveOp ) )
 //#else
-    if( !aWidget->grabFrameBuffer().save( aFileName, aSaveOp ) )
+    if( !aWidget->grabFrameBuffer().save( aFileName, aSaveOp.toLatin1().constData() ) )
 //#endif
     {
       SUIT_MessageBox::critical( this,
@@ -582,7 +590,7 @@ QString GLViewer_ViewFrame::getVisualParameters()
 */
 void GLViewer_ViewFrame::setVisualParameters( const QString& parameters )
 {
-  QStringList paramsLst = QStringList::split( '*', parameters, true );
+  QStringList paramsLst = parameters.split( '*' );
   if ( myVP && myVP->inherits( "GLViewer_ViewPort2d" ) && paramsLst.size() == 4) {
     GLViewer_ViewPort2d* vp2d = (GLViewer_ViewPort2d*)myVP;
 
index ceb3f5be9dda46c7bfdfc9cd2a85aa295143b09f..00b83e334ef139f18396a39f8a645e556ea2b0eb 100644 (file)
@@ -35,7 +35,7 @@ class SUIT_Desktop;
 class GLViewer_Viewer;
 class GLViewer_ViewPort;
 
-#include <qaction.h>
+#include <QtxAction.h>
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -113,7 +113,7 @@ private:
 private:
   //! Actions ID
   enum { DumpId, FitAllId, FitRectId, FitSelectId, ZoomId, PanId, GlobalPanId, ResetId };
-  typedef QMap<int, QAction*> ActionsMap;
+  typedef QMap<int, QtxAction*> ActionsMap;
   
 private:
   ActionsMap       myActionsMap;
index 8e1f1e860f69d761d704a7db5d0972594b534e88..e1df3666a927fc57db3e20224ae6686bc5e2576c 100644 (file)
@@ -24,7 +24,6 @@
 
 //#include <GLViewerAfx.h>
 #include "GLViewer_ViewManager.h"
-#include "GLViewer_ViewFrame.h"
 #include "GLViewer_Viewer2d.h"
 #include "SUIT_Desktop.h"
 
@@ -41,7 +40,7 @@ GLViewer_ViewManager::~GLViewer_ViewManager()
 }
 
 /*!Context menu popup for \a popup.*/
-void GLViewer_ViewManager::contextMenuPopup( QPopupMenu* popup )
+void GLViewer_ViewManager::contextMenuPopup( QMenu* popup )
 {
   SUIT_ViewManager::contextMenuPopup( popup );
   // if it is necessary invoke method CreatePopup of ViewPort
index 3542d63f35cf876df4333af606660068c24c13ec..c2952567865081aaf5c38c896d430e136e1a21e5 100644 (file)
@@ -40,7 +40,7 @@ public:
 
     GLViewer_Viewer* getGLViewer() { return (GLViewer_Viewer*) myViewModel; }
 
-    virtual void     contextMenuPopup( QPopupMenu* );
+    virtual void     contextMenuPopup( QMenu* );
 };
 
 #endif // GLVIEWER_VIEWMANAGER_H
index 090af23816e8d1f778435422e86623a4d4a46071..5f9a48434c4aa18b2dfddf4e7ba22052b0467460 100644 (file)
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Session.h"
 
-#include <qrect.h>
-#include <qcursor.h>
-#include <qpixmap.h>
-#include <qpainter.h>
-#include <qintdict.h>
-#include <qpopupmenu.h>
-#include <qcolordialog.h>
+#include <QRect>
+#include <QCursor>
+#include <QPainter>
+#include <QMultiHash>
+//#include <QMenu>
+#include <QColorDialog>
+#include <QColormap>
+#include <QMouseEvent>
+#include <QCoreApplication>
+#include <QX11Info>
 
 #include <stdlib.h>
 
@@ -79,17 +82,19 @@ CMapEntry::CMapEntry()
 CMapEntry::~CMapEntry()
 {
     if ( alloc )
-        XFreeColormap( QPaintDevice::x11AppDisplay(), cmap );
+        XFreeColormap( QX11Info::display(), cmap );
 }
 
-static QIntDict<CMapEntry> *cmap_dict = 0;
+static QMultiHash<int,CMapEntry> *cmap_dict = 0;
 static bool mesa_gl = false;
 
 static void cleanup_cmaps()
 {
     if ( !cmap_dict )
         return;
-    cmap_dict->setAutoDelete( true );
+    //while (!cmap_dict->isEmpty())
+    //  cmap_dict->erase(cmap_dict->begin());
+    cmap_dict->clear();
     delete cmap_dict;
     cmap_dict = 0;
 }
@@ -98,17 +103,17 @@ static Colormap choose_cmap( Display *dpy, XVisualInfo *vi )
 {
     if ( !cmap_dict )
     {
-        cmap_dict = new QIntDict<CMapEntry>;
+        cmap_dict = new QMultiHash<int,CMapEntry>;
         const char *v = glXQueryServerString( dpy, vi->screen, GLX_VERSION );
         mesa_gl = strstr( v,"Mesa" ) != 0;
         qAddPostRoutine( cleanup_cmaps );
     }
 
-    CMapEntry *x = cmap_dict->find( (long)vi->visualid );
-    if ( x )                    // found colormap for visual
-        return x->cmap;
+    QHash<int,CMapEntry>::iterator itH = cmap_dict->find( (long)vi->visualid );
+    if ( itH != cmap_dict->end() )  // found colormap for visual
+        return itH.value().cmap;
 
-    x = new CMapEntry();
+    CMapEntry x;
 
     XStandardColormap *c;
     int n, i;
@@ -117,12 +122,12 @@ static Colormap choose_cmap( Display *dpy, XVisualInfo *vi )
     cout << "Choosing cmap for vID = " << vi->visualid << endl;
 #endif
 
-    if ( vi->visualid == XVisualIDFromVisual( (Visual*)QPaintDevice::x11AppVisual() ) )
+    if ( vi->visualid == XVisualIDFromVisual( (Visual*)QX11Info::appVisual() ) )
     {
 #ifdef DEBUG
         cout << "Using x11AppColormap" << endl;
 #endif
-        return QPaintDevice::x11AppColormap();
+        return QX11Info::appColormap();
     }
 
     if ( mesa_gl )
@@ -133,12 +138,12 @@ static Colormap choose_cmap( Display *dpy, XVisualInfo *vi )
             if ( XGetRGBColormaps( dpy, RootWindow( dpy, vi->screen ), &c, &n, hp_cmaps ) )
             {
                 i = 0;
-                while ( i < n && x->cmap == 0 )
+                while ( i < n && x.cmap == 0 )
                 {
                     if ( c[i].visualid == vi->visual->visualid )
                     {
-                        x->cmap = c[i].colormap;
-                        x->scmap = c[i];
+                        x.cmap = c[i].colormap;
+                        x.scmap = c[i];
                     }
                     i++;
                 }
@@ -147,19 +152,19 @@ static Colormap choose_cmap( Display *dpy, XVisualInfo *vi )
         }
     }
 #if !defined( _OS_SOLARIS_ )
-    if ( !x->cmap )
+    if ( !x.cmap )
     {
         if ( XmuLookupStandardColormap( dpy, vi->screen, vi->visualid, vi->depth, XA_RGB_DEFAULT_MAP, false, true ) )
         {
             if ( XGetRGBColormaps( dpy, RootWindow( dpy, vi->screen ), &c, &n, XA_RGB_DEFAULT_MAP ) )
             {
                 i = 0;
-                while ( i < n && x->cmap == 0 )
+                while ( i < n && x.cmap == 0 )
                 {
                     if ( c[i].visualid == vi->visualid )
                     {
-                        x->cmap = c[i].colormap;
-                        x->scmap = c[i];
+                        x.cmap = c[i].colormap;
+                        x.scmap = c[i];
                     }
                     i++;
                 }
@@ -168,15 +173,15 @@ static Colormap choose_cmap( Display *dpy, XVisualInfo *vi )
         }
     }
 #endif
-    if ( !x->cmap )
+    if ( !x.cmap )
     {
         // no shared cmap found
-        x->cmap = XCreateColormap( dpy, RootWindow( dpy, vi->screen ), vi->visual, AllocNone );
-        x->alloc = true;
+        x.cmap = XCreateColormap( dpy, RootWindow( dpy, vi->screen ), vi->visual, AllocNone );
+        x.alloc = true;
     }
 
     cmap_dict->insert( (long)vi->visualid, x ); // associate cmap with visualid
-    return x->cmap;
+    return x.cmap;
 }
 #endif
 
@@ -194,10 +199,10 @@ QCursor* GLViewer_ViewPort::sketchCursor = 0;
 */
 void GLViewer_ViewPort::createCursors ()
 {
-    defCursor   = new QCursor( ArrowCursor );
-    panglCursor = new QCursor( CrossCursor );
-    handCursor  = new QCursor( PointingHandCursor );
-    panCursor   = new QCursor( SizeAllCursor );
+    defCursor   = new QCursor( Qt::ArrowCursor );
+    panglCursor = new QCursor( Qt::CrossCursor );
+    handCursor  = new QCursor( Qt::PointingHandCursor );
+    panCursor   = new QCursor( Qt::SizeAllCursor );
 
     SUIT_ResourceMgr* rmgr = SUIT_Session::session()->resourceMgr();
     zoomCursor   = new QCursor( rmgr->loadPixmap( "GLViewer", tr( "ICON_GL_CURSOR_ZOOM" ) ) );
@@ -293,7 +298,7 @@ void GLViewer_ViewPort::setSketchCursor( const QCursor& newCursor )
     Constructor
 */
 GLViewer_ViewPort::GLViewer_ViewPort( QWidget* parent )
-: QWidget( parent, 0, WRepaintNoErase | WResizeNoErase )
+: QWidget( parent, 0 )
 {
     initialize();
 }
@@ -320,9 +325,9 @@ void GLViewer_ViewPort::initialize()
     myEnableTransform = true;
 
     setMouseTracking( true );
-    setBackgroundMode( NoBackground );
+    setBackgroundRole( QPalette::NoRole );//NoBackground );
 
-    setFocusPolicy( StrongFocus );
+    setFocusPolicy( Qt::StrongFocus );
 }
 
 /*!
@@ -341,7 +346,7 @@ void GLViewer_ViewPort::selectVisualId( ViewType type )
 {
 #if !defined WIN32
     XVisualInfo* pVisualInfo;
-    if ( x11Display() )
+    if ( QX11Info::display() )
     {
         /* Initialization with the default VisualID */
         //Visual *v = DefaultVisual( x11Display(), DefaultScreen( x11Display() ) );
@@ -351,17 +356,17 @@ void GLViewer_ViewPort::selectVisualId( ViewType type )
         int visualAttr[] = { GLX_RGBA, GLX_DEPTH_SIZE, 1, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1,
                              GLX_BLUE_SIZE, 1, GLX_DOUBLEBUFFER, None };
 
-        pVisualInfo = ::glXChooseVisual( x11Display(), DefaultScreen( x11Display() ), visualAttr );
+        pVisualInfo = ::glXChooseVisual( QX11Info::display(), DefaultScreen( QX11Info::display() ), visualAttr );
 
         if ( isVisible() )
             hide();
 
         XSetWindowAttributes a;
 
-        a.colormap = choose_cmap( x11Display(), pVisualInfo );      /* find best colormap */
-        a.background_pixel = backgroundColor().pixel();
-        a.border_pixel = black.pixel();
-        Window p = RootWindow( x11Display(), DefaultScreen( x11Display() ) );
+        a.colormap = choose_cmap( QX11Info::display(), pVisualInfo );      /* find best colormap */
+        a.background_pixel = QColormap::instance().pixel( backgroundColor() );
+        a.border_pixel = QColormap::instance().pixel( Qt::black );
+        Window p = RootWindow( QX11Info::display(), DefaultScreen( QX11Info::display() ) );
         if ( parentWidget() )
             p = parentWidget()->winId();
 
@@ -369,16 +374,16 @@ void GLViewer_ViewPort::selectVisualId( ViewType type )
         if ( type == Type2D )  // creating simple X window for 2d
         {
             unsigned long xbackground =
-                BlackPixel( x11Display(), DefaultScreen( x11Display() ) );
+                BlackPixel( QX11Info::display(), DefaultScreen( QX11Info::display() ) );
             unsigned long xforeground =
-                WhitePixel( x11Display(), DefaultScreen( x11Display() ) );
+                WhitePixel( QX11Info::display(), DefaultScreen( QX11Info::display() ) );
 
-            w = XCreateSimpleWindow ( x11Display(), p, x(), y(), width(),
+            w = XCreateSimpleWindow ( QX11Info::display(), p, x(), y(), width(),
                                       height(), 0, xforeground, xbackground );
         }
         else if ( type == Type3D )
         {
-            w = XCreateWindow( x11Display(), p,  x(), y(), width(), height(),
+            w = XCreateWindow( QX11Info::display(), p,  x(), y(), width(), height(),
                                0, pVisualInfo->depth, InputOutput, pVisualInfo->visual,
                                CWBackPixel | CWBorderPixel | CWColormap, &a );
         }
@@ -388,7 +393,7 @@ void GLViewer_ViewPort::selectVisualId( ViewType type )
         Window *cmw;
         Window *cmwret;
         int count;
-        if ( XGetWMColormapWindows( x11Display(), topLevelWidget()->winId(), &cmwret, &count ) )
+        if ( XGetWMColormapWindows( QX11Info::display(), topLevelWidget()->winId(), &cmwret, &count ) )
         {
             cmw = new Window[count+1];
             memcpy( (char*)cmw, (char*)cmwret, sizeof(Window) * count );
@@ -416,7 +421,7 @@ void GLViewer_ViewPort::selectVisualId( ViewType type )
 
         /* Creating new window (with good VisualID) for this widget */
         create(w);
-        XSetWMColormapWindows( x11Display(), topLevelWidget()->winId(), cmw, count );
+        XSetWMColormapWindows( QX11Info::display(), topLevelWidget()->winId(), cmw, count );
         delete[] cmw;
 
         if ( isVisible() )
@@ -426,7 +431,7 @@ void GLViewer_ViewPort::selectVisualId( ViewType type )
         {
             XFree( (char *)pVisualInfo );
         }
-        XFlush( x11Display() );
+        XFlush( QX11Info::display() );
     }
 #endif
 }
@@ -437,7 +442,7 @@ void GLViewer_ViewPort::selectVisualId( ViewType type )
 void GLViewer_ViewPort::setBackgroundColor( const QColor& color )
 {
     QPalette pal = palette();
-    pal.setColor( QColorGroup::Background, color );
+    pal.setColor( QPalette::Background, color );
     setPalette( pal );
     repaint();
 }
@@ -447,7 +452,7 @@ void GLViewer_ViewPort::setBackgroundColor( const QColor& color )
 */
 QColor GLViewer_ViewPort::backgroundColor() const
 {
-    return palette().active().background();
+    return palette().color( QPalette::Active, QPalette::Background );
 }
 
 /*!
index f6c3cee516bad772fde65903d990e591ffd68392..524f8d3d0906382a83f01f48c629b93a19c30d16 100644 (file)
 
 #include "GLViewer.h"
 
-#include <qlist.h>
-#include <qcolor.h>
-#include <qaction.h>
-#include <qwidget.h>
+//#include <QList>
+#include <QColor>
+//#include <QAction>
+#include <QWidget>
 
-#include <Aspect_Window.hxx>
+//#include <Aspect_Window.hxx>
 
 class QRect;
 class QCursor;
index 3055726ec0eca88903758397465ce623d648825c..25fd15ac69342eb0d0224e7e13a49085f704a694 100644 (file)
 #include "GLViewer_ViewPort2d.h"
 #include "GLViewer_Viewer2d.h"
 #include "GLViewer_ViewFrame.h"
-#include "GLViewer_MimeSource.h"
+#include "GLViewer_MimeData.h"
 #include "GLViewer_Context.h"
 #include "GLViewer_Compass.h"
 #include "GLViewer_Grid.h"
+#include "GLViewer_Drawer.h"
 
 #include <QtxToolTip.h>
 
-#include <qlayout.h>
-#include <qevent.h>
-#include <qrect.h>
-#include <qpopupmenu.h>
-#include <qtooltip.h>
-#include <qapplication.h>
-#include <qclipboard.h>
-#include <qpainter.h>
-#include <qbitmap.h>
-#include <qlabel.h>
+#include <QHBoxLayout>
+#include <QMouseEvent>
+#include <QRect>
+//#include <QMenu>
+//#include <QToolTip>
+#include <QApplication>
+#include <QClipboard>
+#include <QBitmap>
+#include <QLabel>
+#include <QWidget>
+#include <QRubberBand>
 
 #define WIDTH       640
 #define HEIGHT      480
@@ -71,7 +73,8 @@ GLViewer_ViewPort2d::GLViewer_ViewPort2d( QWidget* parent, GLViewer_ViewFrame* t
        myMargin( MARGIN ), myWidth( WIDTH ), myHeight( HEIGHT ),
        myXScale( 1.0 ), myYScale( 1.0 ), myXOldScale( 1.0 ), myYOldScale( 1.0 ),
        myXPan( 0.0 ), myYPan( 0.0 ),
-       myIsMouseReleaseBlock( false )
+       myIsMouseReleaseBlock( false ),
+       myRectBand(0)
 {
     if( theViewFrame == NULL )
         myViewFrame = ( GLViewer_ViewFrame* )parent;
@@ -121,6 +124,9 @@ GLViewer_ViewPort2d::~GLViewer_ViewPort2d()
 
     delete myBorder;
     delete myGLWidget;
+
+    if ( myRectBand ) myRectBand->hide();
+    delete myRectBand;
 }
 
 /*!
@@ -162,17 +168,17 @@ void GLViewer_ViewPort2d::onCutObject()
     int aObjNum = aContext->NbSelected();
     if( aObjNum > 0 )
     {
-        QValueList<GLViewer_Object*> aObjects;
-        GLViewer_MimeSource* aMimeSource = new GLViewer_MimeSource();
+        QList<GLViewer_Object*> aObjects;
+        GLViewer_MimeData* aMimeData = new GLViewer_MimeData();
         aContext->InitSelected();
         for( ; aContext->MoreSelected(); aContext->NextSelected() )
             aObjects.append( aContext->SelectedObject() );
 
-        //aMimeSource->setObjects( aObjects ); ouv 6.05.04
+        //aMimeData->setObjects( aObjects ); ouv 6.05.04
 
         QClipboard *aClipboard = QApplication::clipboard();
         aClipboard->clear();
-        aClipboard->setData( aMimeSource );
+        aClipboard->setMimeData( aMimeData );
 
         for( int i = 0; i < aObjNum; i++ )
             aContext->deleteObject( aObjects[i] );
@@ -199,17 +205,17 @@ void GLViewer_ViewPort2d::onCopyObject()
     int aObjNum = aContext->NbSelected();
     if( aObjNum > 0 )
     {
-        QValueList<GLViewer_Object*> aObjects;
-        GLViewer_MimeSource* aMimeSource = new GLViewer_MimeSource();
+        QList<GLViewer_Object*> aObjects;
+        GLViewer_MimeData* aMimeData = new GLViewer_MimeData();
         aContext->InitSelected();
         for( ; aContext->MoreSelected(); aContext->NextSelected() )
             aObjects.append( aContext->SelectedObject() );
 
-        //aMimeSource->setObjects( aObjects ); ouv 6.05.04
+        //aMimeData->setObjects( aObjects ); ouv 6.05.04
 
         QClipboard *aClipboard = QApplication::clipboard();
         aClipboard->clear();
-        aClipboard->setData( aMimeSource );
+        aClipboard->setMimeData( aMimeData );
     }
 }
 
@@ -251,7 +257,7 @@ void GLViewer_ViewPort2d::onPasteObject()
     if( aMimeSource->provides( "GLViewer_Objects" ) )
     {
         QByteArray anArray = aMimeSource->encodedData( "GLViewer_Objects" );
-        QValueList<GLViewer_Object*> aObjects = GLViewer_MimeSource::getObjects( anArray, "GLViewer_Objects" );
+        QList<GLViewer_Object*> aObjects = GLViewer_MimeSource::getObjects( anArray, "GLViewer_Objects" );
         if( aObjects.empty() )
             return;
         GLViewer_Context* aContext = ((GLViewer_Viewer2d*)getViewFrame()->getViewer())->getGLContext();
@@ -288,7 +294,7 @@ void GLViewer_ViewPort2d::onDragObject( QMouseEvent* e )
   //QPoint aNewPos = e->pos();
   //GLViewer_Viewer2d* aViewer = (GLViewer_Viewer2d*)getViewFrame()->getViewer();
   
-  if( anObject && (e->state() & LeftButton ) )
+  if( anObject && (e->buttons() & Qt::LeftButton ) )
   {
     if( aContext->isSelected( anObject ) )
     {
@@ -302,7 +308,7 @@ void GLViewer_ViewPort2d::onDragObject( QMouseEvent* e )
     else
       anObject->moveObject( aX - *myCurDragPosX, anY - *myCurDragPosY);
   }
-  else if( aContext->NbSelected() && (e->state() & MidButton ) )
+  else if( aContext->NbSelected() && (e->buttons() & Qt::MidButton ) )
     for( aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected() )
         (aContext->SelectedObject())->moveObject( aX - *myCurDragPosX, anY - *myCurDragPosY);
   
@@ -328,7 +334,7 @@ void GLViewer_ViewPort2d::mousePressEvent( QMouseEvent* e )
     if( aContext )
         anObject = aContext->getCurrentObject();
     
-    bool accel = e->state() & GLViewer_ViewTransformer::accelKey();
+    bool accel = e->modifiers() & GLViewer_ViewTransformer::accelKey();
     if( ( anObject && !( accel || e->button() == Qt::RightButton ) ) ||
         ( aContext->NbSelected() && !accel && e->button() == Qt::MidButton )  )
     {       
@@ -819,7 +825,7 @@ void GLViewer_ViewPort2d::fitAll( bool keepScale, bool withZ )
     float dx, dy, zm;
     float xScale, yScale;
 
-    myMargin = QMAX( myBorder->width(), myBorder->height() ) / 5;
+    myMargin = qMax( myBorder->width(), myBorder->height() ) / 5;
 
     xa = myBorder->left() - myMargin;
     xb = myBorder->right() + myMargin;
@@ -1156,6 +1162,14 @@ void GLViewer_ViewPort2d::startSelectByRect( int x, int y )
         mypFirstPoint = new QPoint( x, y );
         mypLastPoint = new QPoint( x, y );
     }
+
+    if ( !myRectBand ) {
+      myRectBand = new QRubberBand( QRubberBand::Rectangle, this );
+      QPalette palette;
+      palette.setColor(myRectBand->foregroundRole(), Qt::white);
+      myRectBand->setPalette(palette);
+    }
+    myRectBand->hide();
 }
 
 /*!
@@ -1166,17 +1180,14 @@ void GLViewer_ViewPort2d::drawSelectByRect( int x, int y )
 {
     if( mypFirstPoint && mypLastPoint )
     {
-
-        QPainter p( getPaintDevice() );
-        p.setPen( Qt::white );
-        p.setRasterOp( Qt::XorROP );
-
-        p.drawRect( selectionRect() );    /* erase */
-
-        mypLastPoint->setX( x );
+        myRectBand->hide();    /* erase */
+  
+       mypLastPoint->setX( x );
         mypLastPoint->setY( y );
         
-        p.drawRect( selectionRect() );    /* draw */
+       QRect aRect = selectionRect();
+       myRectBand->setGeometry( aRect );    /* draw */
+       myRectBand->setVisible( aRect.isValid() );
     }
 
 }
@@ -1189,17 +1200,17 @@ void GLViewer_ViewPort2d::finishSelectByRect()
     if( mypFirstPoint && mypLastPoint )
     {
 
-        QPainter p( getPaintDevice() );
-        p.setPen( Qt::white );
-        p.setRasterOp( Qt::XorROP );
 
-        p.drawRect( selectionRect() );    /* erase */
+        if ( myRectBand ) myRectBand->hide();    /* erase */
 
         delete mypFirstPoint;
         delete mypLastPoint;
 
         mypFirstPoint = NULL;
         mypLastPoint = NULL;
+
+       delete myRectBand;
+       myRectBand = 0;
     }
 }
 
@@ -1211,10 +1222,10 @@ QRect GLViewer_ViewPort2d::selectionRect()
     QRect aRect;
     if( mypFirstPoint && mypLastPoint )
     {
-        aRect.setLeft( QMIN( mypFirstPoint->x(), mypLastPoint->x() ) );
-        aRect.setTop( QMIN( mypFirstPoint->y(), mypLastPoint->y() ) );
-        aRect.setRight( QMAX( mypFirstPoint->x(), mypLastPoint->x() ) );
-        aRect.setBottom( QMAX( mypFirstPoint->y(), mypLastPoint->y() ) );
+        aRect.setLeft( qMin( mypFirstPoint->x(), mypLastPoint->x() ) );
+        aRect.setTop( qMin( mypFirstPoint->y(), mypLastPoint->y() ) );
+        aRect.setRight( qMax( mypFirstPoint->x(), mypLastPoint->x() ) );
+        aRect.setBottom( qMax( mypFirstPoint->y(), mypLastPoint->y() ) );
     }
 
     return aRect;
@@ -1357,9 +1368,9 @@ void GLViewer_ViewPort2d::onMaybeTip( QPoint thePoint, QString& theText, QFont&
 
     QStringList aList;
     if( anObj->isTooTipHTML() )
-      aList = QStringList::split( "<br>", theText );
+      aList = theText.split( "<br>", QString::SkipEmptyParts );
     else
-      aList = QStringList::split( "\n", theText );
+      aList = theText.split( "\n", QString::SkipEmptyParts );
 
     if( !aList.isEmpty() )
     {
index cf534f8a40ae1791537b62602f8d9c524c5425ef..03a4b149f7cf035a73e6a4e7f168aef1419be2a8 100644 (file)
 #include "GLViewer_Widget.h"
 #include "GLViewer_Geom.h"
 
-#include <qgl.h>
-#include <qcolor.h>
-#include <qwidget.h>
-#include <qpaintdevice.h>
+#include <QtOpenGL>
+#include <QColor>
+#include <QPaintDevice>
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -51,6 +50,10 @@ class GLViewer_Object;
 class GLViewer_ViewFrame;
 
 class QtxToolTip;
+
+class QWidget;
+class QRubberBand;
+
 /*! 
  * Class GLViewer_ViewPort
  * 2D visualisation canvas of GLViewer
@@ -237,6 +240,8 @@ protected:
   QtxToolTip*            myObjectTip;
   //! flag to block mouse release event just after mouse double-click
   bool                   myIsMouseReleaseBlock;
+
+  QRubberBand*           myRectBand; //!< selection rectangle rubber band
 };
 
 #ifdef WIN32
index 3363add169b5160859fbfac273458aba8526fef0..f850eeb41ee976cda37978a3d4303da26f2bde14 100644 (file)
 #include "GLViewer_ViewPort.h"
 #include "GLViewer_ViewFrame.h"
 
-#include "SUIT_Desktop.h"
+//#include "SUIT_Desktop.h"
 #include "SUIT_ViewWindow.h"
+#include "SUIT_ViewManager.h"
 
-#include <qapplication.h>
-#include <qpainter.h>
-#include <qpopupmenu.h>
-#include <qcolordialog.h>
+#include <QApplication>
+#include <QMenu>
+#include <QColorDialog>
+#include <QMouseEvent>
+#include <QWheelEvent>
+#include <QRect>
+#include <QRubberBand>
 
 /* used for sketching */
 static QEvent* l_mbPressEvent = 0;
@@ -85,12 +89,12 @@ void GLViewer_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
 /*!
   Builds popup for GL viewer
 */
-void GLViewer_Viewer::contextMenuPopup( QPopupMenu* thePopup )
+void GLViewer_Viewer::contextMenuPopup( QMenu* thePopup )
 {
-  if( thePopup->count() > 0 )
-      thePopup->insertSeparator();
+  if( thePopup->actions().count() > 0 )
+      thePopup->addSeparator();
 
-  thePopup->insertItem( tr( "CHANGE_BGCOLOR" ), this, SLOT( onChangeBgColor() ) );
+  thePopup->addAction( tr( "CHANGE_BGCOLOR" ), this, SLOT( onChangeBgColor() ) );
 }
 
 /*!
@@ -389,7 +393,7 @@ void GLViewer_Viewer::onWheelEvent( SUIT_ViewWindow*, QWheelEvent* e )
 void GLViewer_Viewer::onSelectionModeChanged()
 {
     bool enable = ( mySelMode == Multiple );    
-    QPtrVector<SUIT_ViewWindow> views = getViewManager()->getViews();
+    QVector<SUIT_ViewWindow*> views = getViewManager()->getViews();
     for ( int i = 0, n = views.count(); i < n; i++ )
     {
         GLViewer_ViewPort* vp = ((GLViewer_ViewFrame*)views[i])->getViewPort();
@@ -403,7 +407,7 @@ void GLViewer_Viewer::onSelectionModeChanged()
 */
 void GLViewer_Viewer::update( int flags )
 {
-    QPtrVector<SUIT_ViewWindow> views = getViewManager()->getViews();
+    QVector<SUIT_ViewWindow*> views = getViewManager()->getViews();
     for ( int i = 0, n = views.count(); i < n; i++ )
         ((GLViewer_ViewFrame*)views[i])->onUpdate( flags );
 }
@@ -424,9 +428,9 @@ void GLViewer_Viewer::unhilightDetected()
 void GLViewer_Viewer::handleMousePress( QMouseEvent* e )
 {
     /* test accel for transforms */
-    if ( e->state() & GLViewer_ViewTransformer::accelKey() )
+    if ( e->modifiers() & GLViewer_ViewTransformer::accelKey() )
     {
-        ButtonState bs = e->button();
+        Qt::MouseButton bs = e->button();
         if ( bs == GLViewer_ViewTransformer::zoomButton() )
             activateTransform( Zoom );
         else if ( bs == GLViewer_ViewTransformer::panButton() )
@@ -458,7 +462,7 @@ void GLViewer_Viewer::handleMousePress( QMouseEvent* e )
 void GLViewer_Viewer::handleMouseMove( QMouseEvent* e )
 {
     /* Highlight for selection */
-    bool dragged = ( e->state() & ( LeftButton | MidButton | RightButton ) );
+    bool dragged = ( e->buttons() & ( Qt::LeftButton | Qt::MidButton | Qt::RightButton ) );
     if ( !dragged )
     {
         if ( getSelector() )
@@ -466,7 +470,7 @@ void GLViewer_Viewer::handleMouseMove( QMouseEvent* e )
     }
     /* Try to activate default sketching
     */
-    else if ( e->state() == GLViewer_ViewSketcher::sketchButton() )
+    else if ( e->button() == GLViewer_ViewSketcher::sketchButton() )
     {
         activateSketching( Rect );
         if ( mySketcher )
@@ -495,11 +499,11 @@ void GLViewer_Viewer::handleMouseRelease( QMouseEvent* e )
 {
     /* selection */
     /* tmp - in handleMousePress*/  
-    if( e->button() == LeftButton && !(getActiveView()->getViewPort()->currentBlock() & BS_Selection) )
+    if( e->button() == Qt::LeftButton && !(getActiveView()->getViewPort()->currentBlock() & BS_Selection) )
     {
         if ( getSelector() )
         {
-            bool append = bool ( e->state() & GLViewer_Selector::appendKey() );
+            bool append = bool ( e->modifiers() & GLViewer_Selector::appendKey() );
             getSelector()->select( append );
         }
     }
@@ -526,7 +530,7 @@ int GLViewer_ViewTransformer::panBtn = Qt::MidButton;
 int GLViewer_ViewTransformer::zoomBtn = Qt::LeftButton;
 int GLViewer_ViewTransformer::fitRectBtn = Qt::LeftButton;
 int GLViewer_ViewTransformer::panGlobalBtn = Qt::LeftButton;
-int GLViewer_ViewTransformer::acccelKey = Qt::ControlButton;
+int GLViewer_ViewTransformer::acccelKey = Qt::ControlModifier;
 
 /*!
     Constructor
@@ -535,8 +539,9 @@ GLViewer_ViewTransformer::GLViewer_ViewTransformer( GLViewer_Viewer* v, int type
 : QObject( 0 ),
 myViewer( v ),
 myType( type ),
-myMajorBtn( NoButton ),
-myButtonState( 0 )
+myMajorBtn( Qt::NoButton ),
+myButtonState( 0 ),
+myRectBand( 0 )
 {
     if ( myType == GLViewer_Viewer::Pan ||
          myType == GLViewer_Viewer::Zoom ||
@@ -563,6 +568,8 @@ GLViewer_ViewTransformer::~GLViewer_ViewTransformer()
     }
 
     //QAD_Application::getDesktop()->clearInfo();
+
+    endDrawRect();
 }
 
 /*!
@@ -645,11 +652,11 @@ bool GLViewer_ViewTransformer::eventFilter( QObject* o, QEvent* e )
             TransformState state = EnTrain;
             QMouseEvent* me = ( QMouseEvent* )e;
 
-            myButtonState = me->state();
+            myButtonState = me->modifiers();
             if ( e->type() == QEvent::MouseButtonPress )
                 myButtonState |= me->button();  /* add pressed button */
 
-            int mouseOnlyState = ( myButtonState & ( LeftButton | MidButton | RightButton ) );
+            int mouseOnlyState = ( myButtonState & ( Qt::LeftButton | Qt::MidButton | Qt::RightButton ) );
             if ( myStart.isNull() )
             {
                 state = Debut;
@@ -704,8 +711,8 @@ void GLViewer_ViewTransformer::onTransform( TransformState state )
         {
             if ( doTrsf )
             {
-                QRect rect( QMIN( myStart.x(), myCurr.x() ), QMIN( myStart.y(), myCurr.y() ),
-                            QABS( myStart.x() - myCurr.x() ), QABS( myStart.y() - myCurr.y() ) );
+                QRect rect( qMin( myStart.x(), myCurr.x() ), qMin( myStart.y(), myCurr.y() ),
+                            qAbs( myStart.x() - myCurr.x() ), qAbs( myStart.y() - myCurr.y() ) );
                 if ( !rect.isEmpty() )
                 {
                     switch ( state )
@@ -715,13 +722,7 @@ void GLViewer_ViewTransformer::onTransform( TransformState state )
                             break;
                         default:
                         {
-                            QPainter p( avp->getPaintDevice() ); // for QAD_GLWidget
-                            p.setPen( Qt::white );
-                            p.setRasterOp( Qt::XorROP );
-                            if ( !myDrawRect.isEmpty() )
-                                p.drawRect( myDrawRect );    /* erase */
-                            p.drawRect( rect );
-                            myDrawRect = rect;
+                            drawRect( rect );
                             break;
                         }
                     }
@@ -737,6 +738,34 @@ void GLViewer_ViewTransformer::onTransform( TransformState state )
         myViewer->activateTransform( GLViewer_Viewer::NoTransform );
 }
 
+/*!
+  Draws rectangle by starting and current points
+*/
+void GLViewer_ViewTransformer::drawRect(const QRect& theRect)
+{
+  if ( !myRectBand ) {
+    myRectBand = new QRubberBand( QRubberBand::Rectangle, myViewer->getActiveView()->getViewPort() );
+    QPalette palette;
+    palette.setColor(myRectBand->foregroundRole(), Qt::white);
+    myRectBand->setPalette(palette);
+  }
+  myRectBand->hide();
+
+  myRectBand->setGeometry( theRect );
+  myRectBand->setVisible( theRect.isValid() );
+}
+
+/*!
+  \brief Delete rubber band on the end on the dragging operation.
+*/
+void GLViewer_ViewTransformer::endDrawRect()
+{
+  if ( myRectBand ) myRectBand->hide();
+
+  delete myRectBand;
+  myRectBand = 0;
+}
+
 /*!
     Returns the type of the transformer. [ public ]
 */
@@ -746,7 +775,7 @@ int GLViewer_ViewTransformer::type() const
 }
 
 
-int GLViewer_ViewSketcher::sketchBtn = LeftButton;
+int GLViewer_ViewSketcher::sketchBtn = Qt::LeftButton;
 
 /*!
     Constructor
@@ -755,7 +784,8 @@ GLViewer_ViewSketcher::GLViewer_ViewSketcher( GLViewer_Viewer* viewer, int type
 : QObject( 0 ),
 myViewer( viewer ),
 myData( 0 ),
-myType( type )
+myType( type ),
+myRectBand( 0 )
 {
     if( !myViewer )
         return;
@@ -782,6 +812,8 @@ GLViewer_ViewSketcher::~GLViewer_ViewSketcher()
 
     if ( myType == GLViewer_Viewer::Rect )
         delete ( QRect* ) myData;
+
+    endDrawRect();
 }
 
 /*!
@@ -798,7 +830,7 @@ bool GLViewer_ViewSketcher::eventFilter( QObject* o, QEvent* e )
             SketchState state = EnTrain;
             QMouseEvent* me = (QMouseEvent*)e;
 
-            myButtonState = me->state();
+            myButtonState = me->modifiers();
             if ( e->type() == QEvent::MouseButtonPress )
                 myButtonState |= me->button();  /* add pressed button */
 
@@ -808,7 +840,7 @@ bool GLViewer_ViewSketcher::eventFilter( QObject* o, QEvent* e )
                 myStart = me->pos();
             }
 
-            int mouseOnlyState = ( myButtonState & ( LeftButton | MidButton | RightButton ) );
+            int mouseOnlyState = ( myButtonState & ( Qt::LeftButton | Qt::MidButton | Qt::RightButton ) );
             if ( e->type() == QEvent::MouseButtonRelease && mouseOnlyState == sketchButton() )
             {
                 state = Fin;
@@ -836,18 +868,15 @@ void GLViewer_ViewSketcher::onSketch( SketchState state )
         QRect* sketchRect = ( QRect* )data();
         if ( myButtonState & sketchButton() )
         {
-            QRect rect( QMIN( myStart.x(), myCurr.x() ), QMIN( myStart.y(), myCurr.y() ),
-                        QABS( myStart.x() - myCurr.x() ), QABS( myStart.y() - myCurr.y() ) );
+            QRect rect( qMin( myStart.x(), myCurr.x() ), qMin( myStart.y(), myCurr.y() ),
+                        qAbs( myStart.x() - myCurr.x() ), qAbs( myStart.y() - myCurr.y() ) );
             if ( !rect.isEmpty() )
             {
-                QPainter p( avp );
-                p.setPen( Qt::white );
-                p.setRasterOp( Qt::XorROP );
-                if ( !sketchRect->isEmpty() )
-                    p.drawRect( *sketchRect );    /* erase */
+               if ( !sketchRect->isEmpty() && myRectBand )
+                    myRectBand->hide();    /* erase */
                 *sketchRect = rect;
                 if ( state != Fin )
-                    p.drawRect( *sketchRect );
+                    drawRect( *sketchRect );
             }
         }
     }
@@ -858,3 +887,31 @@ void GLViewer_ViewSketcher::onSketch( SketchState state )
         myViewer->activateSketching( GLViewer_Viewer::NoSketching );
     }
 }
+
+/*!
+  Draws rectangle by starting and current points
+*/
+void GLViewer_ViewSketcher::drawRect(const QRect& theRect)
+{
+  if ( !myRectBand ) {
+    myRectBand = new QRubberBand( QRubberBand::Rectangle, myViewer->getActiveView()->getViewPort() );
+    QPalette palette;
+    palette.setColor(myRectBand->foregroundRole(), Qt::white);
+    myRectBand->setPalette(palette);
+  }
+  myRectBand->hide();
+
+  myRectBand->setGeometry( theRect );
+  myRectBand->setVisible( theRect.isValid() );
+}
+
+/*!
+  \brief Delete rubber band on the end on the dragging operation.
+*/
+void GLViewer_ViewSketcher::endDrawRect()
+{
+  if ( myRectBand ) myRectBand->hide();
+
+  delete myRectBand;
+  myRectBand = 0;
+}
index a17664bcbada52311caecbdf35ba21d55161bfdc..c12d5f901a2e6a60209d23befee61d13fa97cee7 100644 (file)
 #ifndef GLVIEWER_VIEWER_H
 #define GLVIEWER_VIEWER_H
 
+#include "GLViewer.h"
 #include "GLViewer_Defs.h"
-#include "GLViewer_ViewFrame.h"
 #include <SUIT_ViewModel.h>
 
-#include <qlist.h>
-#include <qcursor.h>
-#include <qobject.h>
-#include <qpixmap.h>
+#include <QCursor>
+#include <QObject>
+
+class QMouseEvent;
+class QKeyEvent;
+class QWheelEvent;
+class QRect;
+class QRubberBand;
 
 class GLViewer_Selector;
 class GLViewer_ViewSketcher;
 class GLViewer_ViewTransformer;
+class GLViewer_ViewFrame;
 
-class SUIT_Desktop;
+//class SUIT_Desktop;
 class SUIT_ViewWindow;
 
 #ifdef WIN32
@@ -68,7 +73,7 @@ public:
     virtual QString              getType() const { return Type(); }
     static QString               Type() { return "GLViewer_ViewModel";  }
 
-    virtual void                 contextMenuPopup( QPopupMenu* );
+    virtual void                 contextMenuPopup( QMenu* );
 
 public:
     void                         setSelectionMode( SelectionMode );
@@ -166,6 +171,9 @@ protected:
     virtual void                 onTransform( TransformState );
     void                         initTransform( bool );
 
+    void                         drawRect(const QRect& theRect);
+    void                         endDrawRect();
+
 protected:
     static int                   panBtn;
     static int                   zoomBtn;
@@ -180,8 +188,9 @@ protected:
     bool                         mySavedMouseTrack;
     QPoint                       myStart, myCurr;
     int                          myButtonState;
-    QRect                        myDrawRect;
     int                          myMajorBtn;
+
+    QRubberBand*                 myRectBand; //!< selection rectangle rubber band
 };
 
 class GLVIEWER_API GLViewer_ViewSketcher : public QObject
@@ -210,6 +219,9 @@ protected:
     enum SketchState { Debut, EnTrain, Fin };
     virtual void                 onSketch( SketchState );
 
+    void                         drawRect(const QRect& theRect);
+    void                         endDrawRect();
+
 protected:
     static int                   sketchBtn;
     GLViewer_Viewer*             myViewer;
@@ -218,6 +230,8 @@ protected:
     QCursor                      mySavedCursor;
     QPoint                       myStart, myCurr;
     int                          myButtonState;
+
+    QRubberBand*                 myRectBand; //!< selection rectangle rubber band
 };
 
 #ifdef WIN32
index 7d03218ba75fd020f4fddc20baf649323a817ff6..0f69c54e1f6a6633541fa500bdb7ed41782e8bd2 100644 (file)
@@ -25,6 +25,7 @@
 //#include <GLViewerAfx.h>
 #include "GLViewer_Viewer2d.h"
 #include "GLViewer_Object.h"
+#include "GLViewer_ViewFrame.h"
 #include "GLViewer_BaseObjects.h"
 #include "GLViewer_CoordSystem.h"
 #include "GLViewer_Context.h"
 
 #include "SUIT_Desktop.h"
 #include "SUIT_ViewWindow.h"
+#include "SUIT_ViewManager.h"
 
-#include "OSD_Timer.hxx"
-#include <TColStd_MapOfInteger.hxx>
-
-#include <qpopupmenu.h>
-#include <qpointarray.h>
-#include <qcolordialog.h>
+#include <QMenu>
+#include <QPolygon>
+#include <QColorDialog>
+#include <QRect>
+#include <QFile>
+#include <QMouseEvent>
 
 /*!
   Constructor
@@ -83,14 +85,14 @@ SUIT_ViewWindow* GLViewer_Viewer2d::createView( SUIT_Desktop* theDesktop )
   Adds item for change background color
   \param thePopup - menu
 */
-void GLViewer_Viewer2d::addPopupItems( QPopupMenu* thePopup )
+void GLViewer_Viewer2d::addPopupItems( QMenu* thePopup )
 {
   // CTH8434. "Change background color" menu item is available if there are no selected objects
   if ( getSelector() == 0 || getSelector()->numSelected() == 0 )
   {
-    if( thePopup->count() > 0 )
-        thePopup->insertSeparator();
-    thePopup->insertItem( tr( "CHANGE_BGCOLOR" ), this, SLOT( onChangeBgColor() ) );
+    if( thePopup->actions().count() > 0 )
+        thePopup->addSeparator();
+    thePopup->addAction( tr( "CHANGE_BGCOLOR" ), this, SLOT( onChangeBgColor() ) );
   }
 }
 
@@ -145,15 +147,15 @@ void GLViewer_Viewer2d::updateColors( QColor colorH, QColor colorS )
 */
 void GLViewer_Viewer2d::updateBorders( GLViewer_Rect* theRect )
 {
-  QPtrVector<SUIT_ViewWindow> views = getViewManager()->getViews();
+  QVector<SUIT_ViewWindow*> views = getViewManager()->getViews();
   for ( int i = 0, n = views.count(); i < n; i++ )
   {
     GLViewer_Rect* border = ( ( GLViewer_ViewPort2d* )((GLViewer_ViewFrame*)views[i])->getViewPort() )->getBorder();
 
-    border->setLeft( QMIN( border->left(), theRect->left() ) );
-    border->setRight( QMAX( border->right(), theRect->right() ) );
-    border->setBottom( QMIN( border->bottom(), theRect->bottom() ) );
-    border->setTop( QMAX( border->top(), theRect->top() ) );
+    border->setLeft( qMin( border->left(), theRect->left() ) );
+    border->setRight( qMax( border->right(), theRect->right() ) );
+    border->setBottom( qMin( border->bottom(), theRect->bottom() ) );
+    border->setTop( qMax( border->top(), theRect->top() ) );
   }
 }
 
@@ -162,7 +164,7 @@ void GLViewer_Viewer2d::updateBorders( GLViewer_Rect* theRect )
 */
 void GLViewer_Viewer2d::updateBorders()
 {
-    QPtrVector<SUIT_ViewWindow> views = getViewManager()->getViews();
+    QVector<SUIT_ViewWindow*> views = getViewManager()->getViews();
 
     ObjList anObjects = myGLContext->getObjects();
     ObjList::Iterator beginIt = anObjects.begin();
@@ -189,10 +191,10 @@ void GLViewer_Viewer2d::updateBorders()
             }
             else
             {
-                border->setLeft( QMIN( border->left(), aRect->left() ) );
-                border->setRight( QMAX( border->right(), aRect->right() ) );
-                border->setBottom( QMIN( border->bottom(), aRect->bottom() ) );
-                border->setTop( QMAX( border->top(), aRect->top() ) );
+                border->setLeft( qMin( border->left(), aRect->left() ) );
+                border->setRight( qMax( border->right(), aRect->right() ) );
+                border->setBottom( qMin( border->bottom(), aRect->bottom() ) );
+                border->setTop( qMax( border->top(), aRect->top() ) );
             }
         }
     }
@@ -206,7 +208,7 @@ void GLViewer_Viewer2d::updateAll()
   if ( !getActiveView() )
     return;
 
-  QPtrVector<SUIT_ViewWindow> views = getViewManager()->getViews();
+  QVector<SUIT_ViewWindow*> views = getViewManager()->getViews();
   for ( int i = 0, n = views.count(); i < n; i++ )
     ( ( GLViewer_ViewPort2d* )( ( GLViewer_ViewFrame* )views[i] )->getViewPort() )->getGLWidget()->updateGL();
 }
@@ -226,18 +228,18 @@ void GLViewer_Viewer2d::updateDrawers( GLboolean update, GLfloat scX, GLfloat sc
 /*!
   Activates drawers for objects from list \param theObjects only
 */
-void GLViewer_Viewer2d::activateDrawers( QValueList<GLViewer_Object*>& theObjects, bool onlyUpdate, GLboolean swap )
+void GLViewer_Viewer2d::activateDrawers( QList<GLViewer_Object*>& theObjects, bool onlyUpdate, GLboolean swap )
 {
     //cout << "GLViewer_Viewer2d::activateDrawers " << (int)onlyUpdate << " " << (int)swap << endl;
-    QValueList<GLViewer_Drawer*>::Iterator anIt = myDrawers.begin();
-    QValueList<GLViewer_Drawer*>::Iterator endDIt = myDrawers.end();
+    QList<GLViewer_Drawer*>::Iterator anIt = myDrawers.begin();
+    QList<GLViewer_Drawer*>::Iterator endDIt = myDrawers.end();
     for( ; anIt != endDIt; anIt++ )
         (*anIt)->clear();
 
-    QValueList<GLViewer_Drawer*> anActiveDrawers;
-    QValueList<GLViewer_Object*>::Iterator endOIt = theObjects.end();
+    QList<GLViewer_Drawer*> anActiveDrawers;
+    QList<GLViewer_Object*>::Iterator endOIt = theObjects.end();
 
-    for( QValueList<GLViewer_Object*>::Iterator oit = theObjects.begin(); oit != endOIt; ++oit )
+    for( QList<GLViewer_Object*>::Iterator oit = theObjects.begin(); oit != endOIt; ++oit )
     {
         GLViewer_Drawer* aDrawer = (*oit)->getDrawer();
         if( !aDrawer )
@@ -265,11 +267,11 @@ void GLViewer_Viewer2d::activateDrawers( QValueList<GLViewer_Object*>& theObject
 
         int aPriority = aDrawer->getPriority();
 
-        if( anActiveDrawers.findIndex( aDrawer ) != -1 )
+        if( anActiveDrawers.indexOf( aDrawer ) != -1 )
             continue;
 
-        QValueList<GLViewer_Drawer*>::Iterator aDIt = anActiveDrawers.begin();
-        QValueList<GLViewer_Drawer*>::Iterator aDEndIt = anActiveDrawers.end();
+        QList<GLViewer_Drawer*>::Iterator aDIt = anActiveDrawers.begin();
+        QList<GLViewer_Drawer*>::Iterator aDEndIt = anActiveDrawers.end();
         for( ; aDIt != aDEndIt; ++aDIt )
             if( (*aDIt)->getPriority() > aPriority )
                 break;
@@ -277,10 +279,10 @@ void GLViewer_Viewer2d::activateDrawers( QValueList<GLViewer_Object*>& theObject
         anActiveDrawers.insert( aDIt, aDrawer );
     } 
 
-    QValueList<GLViewer_Drawer*>::Iterator aDIt = anActiveDrawers.begin();
-    QValueList<GLViewer_Drawer*>::Iterator aDEndIt = anActiveDrawers.end();
+    QList<GLViewer_Drawer*>::Iterator aDIt = anActiveDrawers.begin();
+    QList<GLViewer_Drawer*>::Iterator aDEndIt = anActiveDrawers.end();
 
-    QPtrVector<SUIT_ViewWindow> views = getViewManager()->getViews();
+    QVector<SUIT_ViewWindow*> views = getViewManager()->getViews();
     for ( int i = 0, n = views.count(); i < n; i++ )
     {
         float xScale, yScale;
@@ -523,7 +525,7 @@ QRect* GLViewer_Viewer2d::getWinObjectRect( GLViewer_Object* theObject )
 
     GLfloat anAngle = curvp->getGLWidget()->getRotationAngle() * PI / 180.;
 
-    QPointArray aPointArray(4);
+    QPolygon aPointArray(4);
     aPointArray[0] = QPoint( (int)(aLeft*cos(anAngle) - aTop*sin(anAngle)),
                              (int)(aLeft*sin(anAngle) + aTop*cos(anAngle)) );
     aPointArray[1] = QPoint( (int)(aRight*cos(anAngle) - aTop*sin(anAngle)),
@@ -539,10 +541,10 @@ QRect* GLViewer_Viewer2d::getWinObjectRect( GLViewer_Object* theObject )
     {
         int x = aPointArray[i].x();
         int y = aPointArray[i].y();
-        aMinLeft = QMIN( aMinLeft,x );
-        aMaxRight = QMAX( aMaxRight, x );
-        aMinTop = QMIN( aMinTop, y );
-        aMaxBottom = QMAX( aMaxBottom, y );
+        aMinLeft = qMin( aMinLeft,x );
+        aMaxRight = qMax( aMaxRight, x );
+        aMinTop = qMin( aMinTop, y );
+        aMaxBottom = qMax( aMaxBottom, y );
     }
 
     aLeft = (aMinLeft/* + xPan*/)*xScale + aWidth / 2;
@@ -640,7 +642,7 @@ bool GLViewer_Viewer2d::testRotation( QMouseEvent* e )
 {
     if ( ( e->button() == GLViewer_View2dTransformer::rotateButton() ) &&
          ( e->type() == QEvent::MouseButtonPress ) &&
-         ( e->state() & GLViewer_ViewTransformer::accelKey() ) )
+         ( e->modifiers() & GLViewer_ViewTransformer::accelKey() ) )
     {
         activateTransform( GLViewer_Viewer::Rotate );
         return true;
@@ -667,7 +669,7 @@ void GLViewer_Viewer2d::insertHeader( VectorFileType aType, QFile& hFile )
         header += "%%Pages: 1\n";
         header += "%%Page: 1\n\n";
         
-        hFile.writeBlock( header.ascii(), header.length() );
+        hFile.write( header.toAscii() );
     }
     else if( aType == HPGL )
     {
@@ -681,7 +683,7 @@ void GLViewer_Viewer2d::insertHeader( VectorFileType aType, QFile& hFile )
         header += "LT;\n";
         header += "VS36;\n";
         
-        hFile.writeBlock( header.ascii(), header.length() );
+        hFile.write( header.toAscii() );
     }
 }
 
@@ -695,12 +697,12 @@ void GLViewer_Viewer2d::insertEnding( VectorFileType aType, QFile& hFile )
     if( aType == POST_SCRIPT )
     {
         QString ending = "showpage\n\n%%EOF";
-        hFile.writeBlock( ending.ascii(), ending.length() );
+        hFile.write( ending.toAscii() );
     }
     else if( aType == HPGL )
     {
         QString ending = "PU;PA0,0;SP;EC;PG1;EC1;OE\n"; 
-        hFile.writeBlock( ending.ascii(), ending.length() );
+        hFile.write( ending.toAscii() );
     }
 }
 
@@ -730,7 +732,7 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap
     if ( !getActiveView() )
       return false;
 
-        QFile hFile( FileName.ascii() );
+        QFile hFile( FileName.toAscii() );
 
 #ifdef WIN32
     HDC hMetaFileDC;
@@ -779,8 +781,8 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap
 
     if( aType==POST_SCRIPT || aType==HPGL )
     {
-        hFile.open( IO_ReadWrite | IO_Truncate );
-        hFile.at( 0 );
+        hFile.open( QIODevice::ReadWrite | QIODevice::Truncate );
+        hFile.seek( 0 );
         insertHeader( aType, hFile );
     }
 #ifdef WIN32
@@ -818,7 +820,7 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap
                                arg( AW-mmLeft-mmRight ).arg( AH-mmBottom-mmTop );
         //It is set clipping path
 
-        hFile.writeBlock( aBuffer.ascii(), aBuffer.length() );
+        hFile.write( aBuffer.toAscii() );
 
         aCurVP->getGLWidget()->translateBackgroundToPS( hFile, &aViewerCS, &aPaperCS );
     }
@@ -874,15 +876,15 @@ void GLViewer_Viewer2d::repaintView( GLViewer_ViewFrame* theView, bool makeCurre
     float xScale;
     float yScale;
 
-    QValueList<GLViewer_Drawer*>::Iterator anIt = myDrawers.begin();
-    QValueList<GLViewer_Drawer*>::Iterator endDIt = myDrawers.end();
+    QList<GLViewer_Drawer*>::Iterator anIt = myDrawers.begin();
+    QList<GLViewer_Drawer*>::Iterator endDIt = myDrawers.end();
     for( ; anIt != endDIt; anIt++ )
             (*anIt)->clear();
 
-    QValueList<GLViewer_Drawer*> anActiveDrawers;
-    QValueList<GLViewer_Object*>::Iterator endOIt = anActiveObjs.end();
+    QList<GLViewer_Drawer*> anActiveDrawers;
+    QList<GLViewer_Object*>::Iterator endOIt = anActiveObjs.end();
 
-    for( QValueList<GLViewer_Object*>::Iterator oit = anActiveObjs.begin(); oit != endOIt; ++oit )
+    for( QList<GLViewer_Object*>::Iterator oit = anActiveObjs.begin(); oit != endOIt; ++oit )
     {
         GLViewer_Drawer* aDrawer = (*oit)->getDrawer();
         if( !aDrawer )
@@ -904,12 +906,12 @@ void GLViewer_Viewer2d::repaintView( GLViewer_ViewFrame* theView, bool makeCurre
             }
         }
         aDrawer->addObject( (*oit) );
-        if( anActiveDrawers.findIndex( aDrawer ) == -1 )
+        if( anActiveDrawers.indexOf( aDrawer ) == -1 )
             anActiveDrawers.append( aDrawer );
     } 
 
-    QValueList<GLViewer_Drawer*>::Iterator aDIt = anActiveDrawers.begin();
-    QValueList<GLViewer_Drawer*>::Iterator aDEndIt = anActiveDrawers.end();
+    QList<GLViewer_Drawer*>::Iterator aDIt = anActiveDrawers.begin();
+    QList<GLViewer_Drawer*>::Iterator aDEndIt = anActiveDrawers.end();
 
     GLViewer_ViewPort2d* vp = ( GLViewer_ViewPort2d* )aCurView->getViewPort();
     vp->getScale( xScale, yScale );
@@ -991,7 +993,7 @@ void GLViewer_Viewer2d::finishOperations( QMouseEvent* e )
         vp->finishSelectByRect();
         if ( getSelector() && !aSelRect.isNull() )
         {            
-            bool append = bool ( e->state() & GLViewer_Selector::appendKey() );
+            bool append = bool ( e->modifiers() & GLViewer_Selector::appendKey() );
             getSelector()->select( aSelRect, append );
         }
     }
@@ -1017,7 +1019,7 @@ void GLViewer_Viewer2d::startOperations( QWheelEvent* e )
 }
 
 
-int GLViewer_View2dTransformer::rotateBtn = RightButton;
+int GLViewer_View2dTransformer::rotateBtn = Qt::RightButton;
 
 /*!
   Constructor
index 141a6071a02bbacb7d04739732ca8dc1ec3ffa80..b31a4430abf4e87c1f161e45c4a2e7f848b58cff 100644 (file)
 #include <windows.h>
 #endif
 
-#include <qmap.h>
-#include <qrect.h>
+class QRect;
+class QFile;
 
 #include "GLViewer_Viewer.h"
-#include "GLViewer_Object.h"
-#include "GLViewer_ViewFrame.h"
-#include "GLViewer_Drawer.h"
 
 #include <TColStd_SequenceOfInteger.hxx>
 
 #include <GL/gl.h>
 
 class GLViewer_Object;
+class GLViewer_ViewFrame;
+class GLViewer_Drawer;
 class GLViewer_Context;
-class GLViewer_Selector2d;
+class GLViewer_Rect;
 //class GLViewer_Sketcher;
 
 class SUIT_Desktop;
@@ -115,12 +114,12 @@ public:
   virtual SUIT_ViewWindow*  createView( SUIT_Desktop* );
   
   //! Adds item for change background color
-  void                 addPopupItems( QPopupMenu* );
+  void                 addPopupItems( QMenu* );
 
   //void                activateGLSketching( int );
 
   //! Returns all drawers
-  const QValueList<GLViewer_Drawer*>& getDrawers() const { return myDrawers; }
+  const QList<GLViewer_Drawer*>& getDrawers() const { return myDrawers; }
   
   //! Returns context
   GLViewer_Context*    getGLContext() const { return myGLContext; }
@@ -138,7 +137,7 @@ public:
   /* \param onlyUpdate is passed to method activateAllDrawersdrawers*/
   void                 updateDrawers( GLboolean onlyUpdate, GLfloat scX = 0.0, GLfloat scY = 0.0 );
   //! Activates drawers for objects from list \param theObjects only
-  void                 activateDrawers( QValueList<GLViewer_Object*>& theObjects, bool onlyUpdate, GLboolean swap = GL_FALSE );
+  void                 activateDrawers( QList<GLViewer_Object*>& theObjects, bool onlyUpdate, GLboolean swap = GL_FALSE );
   //! Activates drawer for \param theObject
   void                 activateDrawer( GLViewer_Object* theObject, bool onlyUpdate, GLboolean swap = GL_FALSE );
   //! Updates all drawers with new scale factor
@@ -224,7 +223,7 @@ protected:
   //! Current context 
   GLViewer_Context*             myGLContext;
   //! Map of active drawers
-  QValueList<GLViewer_Drawer*>  myDrawers;
+  QList<GLViewer_Drawer*>  myDrawers;
   
   //GLViewer_Sketcher*   myGLSketcher;
 };
index 1fc069d204406a7481a7b1eaa4953716c3bf86dc..5ad81e29ca074b153132b6501772a638528ff8a8 100644 (file)
 #include "GLViewer_Widget.h"
 #include "GLViewer_ViewPort2d.h"
 #include "GLViewer_Viewer2d.h"
-#include "GLViewer_Compass.h"
+//#include "GLViewer_Compass.h"
 #include "GLViewer_Grid.h"
-#include "GLViewer_Object.h"
+//#include "GLViewer_Object.h"
 #include "GLViewer_CoordSystem.h"
+#include "GLViewer_ViewFrame.h"
 
 #include <cmath>
 using namespace std;
 
-#include <qevent.h>
-#include <qrect.h>
+#include <QEvent>
+#include <QPaintEvent>
+#include <QRect>
 
-#include <qpixmap.h>
-#include <qimage.h>
-#include <qapplication.h>
-#include <qintdict.h>
-#include <qpaintdevicemetrics.h>
-#include <qsize.h>
-#include <qtooltip.h>
+#include <QFile>
+//#include <qpixmap.h>
+#include <QImage>
+#include <QApplication>
+//#include <qintdict.h>
+//#include <qpaintdevicemetrics.h>
+//#include <qsize.h>
+#include <QToolTip>
 
 /*!
   A constructor
@@ -248,7 +251,8 @@ void GLViewer_Widget::setBackground( QString filename )
 void GLViewer_Widget::addToolTip( QString theString, QRect theRect )
 {
     myToolTipRect = theRect;
-    QToolTip::add( this, myToolTipRect, theString );
+    setToolTip(theString);
+    //QToolTip::add( this, myToolTipRect, theString );
 }
 
 /*!
@@ -256,7 +260,8 @@ void GLViewer_Widget::addToolTip( QString theString, QRect theRect )
 */
 void GLViewer_Widget::removeToolTip()
 {
-    QToolTip::remove( this, myToolTipRect );
+    setToolTip("");
+    //QToolTip::remove( this, myToolTipRect );
 }
 
 /*!
@@ -419,6 +424,18 @@ void GLViewer_Widget::leaveEvent( QEvent* e )
   updateGL();
 }
 
+/*!
+  Custom leave event handler
+*/
+bool GLViewer_Widget::event ( QEvent* e )
+{
+  if (e->type() == QEvent::ToolTip) {
+    QHelpEvent *helpEvent = static_cast<QHelpEvent *>(e);
+    if ( myToolTipRect.contains(helpEvent->pos()) )
+      QToolTip::showText(helpEvent->globalPos(), toolTip());
+  }
+  return QGLWidget::event(e);
+}
 
 /*!
   \return the hex code of digit < 16
@@ -488,7 +505,7 @@ void AddImagePart( QFile& hFile, QImage& image, int w1, int w2, int h1, int h2,
     
     aBuffer += "> false 3 colorimage\n\n";
 
-    hFile.writeBlock( aBuffer.ascii(), aBuffer.length() );
+    hFile.write( aBuffer.toAscii() );
   }
 }
 
@@ -548,7 +565,7 @@ void GLViewer_Widget::translateBackgroundToPS( QFile& hFile, GLViewer_CoordSyste
         const int max = 133000; //The maximum length of string in PS
         int dh = int( floor( double( max ) / ( 3.0*2.0*width ) ) );
         for( int k=buf.height()-1; k>=0; k-=dh )
-            AddImagePart( hFile, buf, 0, buf.width()-1, QMAX( k-dh+1, 0 ), k,
+            AddImagePart( hFile, buf, 0, buf.width()-1, qMax( k-dh+1, 0 ), k,
                           aViewerCS, aPSCS, a, b, c, d, dx, dy-(buf.height()-1-k) );
     }
 }
index 637beb5fb58c22654955f8f2ad0ff4b6817781cc..c1edf7efe2765e34db2a986938650f68c1933a7d 100644 (file)
@@ -27,8 +27,9 @@
 
 #include "GLViewer.h"
 
-#include <qgl.h>
-#include <qfile.h>
+#include <QtOpenGL>
+
+class QFile;
 
 class GLViewer_ViewPort2d;
 class GLViewer_CoordSystem;
@@ -153,6 +154,8 @@ protected:
   virtual void           enterEvent( QEvent* );
   /* Needs to redefine because Window must be updated highlight presentation when mouse leave window */
   virtual void           leaveEvent( QEvent* );
+
+  virtual bool           event ( QEvent* );
   
 private:
   //! width of window
index e20fde4eb7d832cbfbf114b4c11bfaa35adf9a09..ad2589024611b241dfc24b65890fd16e2ea0728c 100644 (file)
@@ -38,7 +38,7 @@ salomeinclude_HEADERS= \
        GLViewer_Geom.h \
        GLViewer_Grid.h \
        GLViewer_Group.h \
-       GLViewer_MimeSource.h \
+       GLViewer_MimeData.h \
        GLViewer_Object.h \
        GLViewer_Selector.h \
        GLViewer_Selector2d.h \
@@ -64,7 +64,7 @@ dist_libGLViewer_la_SOURCES= \
        GLViewer_Geom.cxx \
        GLViewer_Grid.cxx \
        GLViewer_Group.cxx \
-       GLViewer_MimeSource.cxx \
+       GLViewer_MimeData.cxx \
        GLViewer_Object.cxx \
        GLViewer_Selector.cxx \
        GLViewer_Selector2d.cxx \
index 6ac4cc202bb1cbe1c96112ef9b6a868af0cf50a3..deb43283572875df4fe601fc49c4265df03f3d36 100755 (executable)
@@ -37,7 +37,7 @@ if ENABLE_GLVIEWER
 # VSR: this is the original packages list
 #  SUBDIRS += GLViewer
 # VSR: already migrated to Qt4 packages
-  SUBDIRS += 
+  SUBDIRS += GLViewer
 endif
 
 if ENABLE_VTKVIEWER
index 631dc6e922ca41139795c5c17c21cd31dd55e6dc..69485ba304e946c38625ef42b12f343b923054d0 100755 (executable)
@@ -802,8 +802,12 @@ void OCCViewer_ViewWindow::resetState()
 */
 void OCCViewer_ViewWindow::drawRect()
 {
-  if ( !myRectBand )
+  if ( !myRectBand ) {
     myRectBand = new QRubberBand( QRubberBand::Rectangle, myViewPort );
+    QPalette palette;
+    palette.setColor(myRectBand->foregroundRole(), Qt::white);
+    myRectBand->setPalette(palette);
+  }
   myRectBand->hide();
 
   QRect aRect = SUIT_Tools::makeRect(myStartX, myStartY, myCurrX, myCurrY);
index 38f2de0fae9ec23ace3387345da9487e21fe354e..f9fffd606a7ffe286c018c54e991498bcf3a7a8f 100644 (file)
@@ -1494,8 +1494,12 @@ void
 SVTK_InteractorStyle
 ::drawRect()
 {
-  if ( !myRectBand )
+  if ( !myRectBand ) {
     myRectBand = new QRubberBand( QRubberBand::Rectangle, GetRenderWidget() );
+    QPalette palette;
+    palette.setColor(myRectBand->foregroundRole(), Qt::white);
+    myRectBand->setPalette(palette);
+  }
   myRectBand->hide();
 
   QRect aRect(myPoint, myOtherPoint);
index 8e7e64b3b6f9c8ae84977b4015459453b3560ad9..f5c3876931159359f023e2af5fffcb63f5c13a45 100644 (file)
@@ -781,8 +781,12 @@ void VTKViewer_InteractorStyle::setCursor(const int operation)
 */
 void VTKViewer_InteractorStyle::drawRect()
 {
-  if ( !myRectBand )
+  if ( !myRectBand ) {
     myRectBand = new QRubberBand( QRubberBand::Rectangle, myGUIWindow );
+    QPalette palette;
+    palette.setColor(myRectBand->foregroundRole(), Qt::white);
+    myRectBand->setPalette(palette);
+  }
   myRectBand->hide();
 
   QRect aRect(myPoint, myOtherPoint);
index 6167bb22d4eb912a4e930077af0b2a8937221c3e..8036e146365ca799806997c806c599f5b0691757 100644 (file)
@@ -14,6 +14,7 @@ SUBDIRS += PyInterp
 SUBDIRS += PyConsole
 SUBDIRS += Prs
 SUBDIRS += OBJECT
+SUBDIRS += GLViewer
 SUBDIRS += VTKViewer
 SUBDIRS += SVTK
 SUBDIRS += OCCViewer