Salome HOME
Fix GLView zoom buttons with qt5
[modules/gui.git] / src / GLViewer / GLViewer_Viewer.cxx
index 3d59798ee1e62ed1e52cd7b7c933c02850b4ad2e..c2c17d5d28e5c7880a45f563828c3c41eabb6ad0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -48,12 +48,12 @@ static QEvent* l_mbPressEvent = 0;
 /*!
     Constructor
 */
-GLViewer_Viewer::GLViewer_Viewer( const QString& title )
+GLViewer_Viewer::GLViewer_Viewer( const QString& /*title*/ )
 : SUIT_ViewModel(),
 mySelector( 0 ),
+mySelMode( NoSelection ),
 mySketcher( 0 ),
-myTransformer( 0 ),
-mySelMode( NoSelection )
+myTransformer( 0 )
 {
 }
 
@@ -315,25 +315,23 @@ bool GLViewer_Viewer::eventFilter( QObject* o, QEvent* e )
     if( !getActiveView() )
         return false;
 
-    if( getActiveView()->getViewPort() == o->parent() )
-      o = o->parent();
-
-    bool mouseClickedOutside = ( e->type() == QEvent::MouseButtonPress &&
-                                 o != getActiveView()->getViewPort() );
-    bool anyKeyPressed = ( e->type() == QEvent::KeyPress );
-    if ( mouseClickedOutside || anyKeyPressed )
-    {   /* terminate all */
-        activateTransform( NoTransform );
-        activateSketching( NoSketching );
-        //cout << "mouseClickedOutside || anyKeyPressed" << endl;
-    }
+    if (e->type() == QEvent::KeyPress)
+      {    
+        QKeyEvent* keyEvent = static_cast<QKeyEvent*>(e);
+        if (keyEvent->key() == Qt::Key_Escape)
+          {
+            activateTransform( NoTransform );
+            activateSketching( NoSketching );
+          }
+      }
+
     return QObject::eventFilter( o, e );
 }
 
 /*!
     Called when smth is selected in this viewer. [ virtual protected slot ]
 */
-void GLViewer_Viewer::onSelectionDone( bool bAdded, SelectionChangeStatus status  )
+void GLViewer_Viewer::onSelectionDone( bool /*bAdded*/, SelectionChangeStatus status  )
 {
     emit selectionChanged( status );
 }
@@ -433,9 +431,9 @@ void GLViewer_Viewer::handleMousePress( QMouseEvent* e )
     if ( e->modifiers() & GLViewer_ViewTransformer::accelKey() )
     {
         Qt::MouseButton bs = e->button();
-        if ( bs == GLViewer_ViewTransformer::zoomButton() )
+        if ( (int)bs == GLViewer_ViewTransformer::zoomButton() ) // todo Qt::MouseButton is unsigned int: comparison of int with uint
             activateTransform( Zoom );
-        else if ( bs == GLViewer_ViewTransformer::panButton() )
+        else if ( (int)bs == GLViewer_ViewTransformer::panButton() ) // todo Qt::MouseButton is unsigned int: comparison of int with uint
             activateTransform( Pan );
     }
     else
@@ -472,7 +470,7 @@ void GLViewer_Viewer::handleMouseMove( QMouseEvent* e )
     }
     /* Try to activate default sketching
     */
-    else if ( e->button() == GLViewer_ViewSketcher::sketchButton() )
+    else if ( (int)e->button() == GLViewer_ViewSketcher::sketchButton() ) // todo Qt::MouseButton is unsigned int: comparison of int with uint
     {
         activateSketching( Rect );
         if ( mySketcher )
@@ -541,8 +539,8 @@ GLViewer_ViewTransformer::GLViewer_ViewTransformer( GLViewer_Viewer* v, int type
 : QObject( 0 ),
 myViewer( v ),
 myType( type ),
-myMajorBtn( Qt::NoButton ),
 myButtonState( 0 ),
+myMajorBtn( Qt::NoButton ),
 myRectBand( 0 )
 {
     if ( myType == GLViewer_Viewer::Pan ||
@@ -788,8 +786,8 @@ int GLViewer_ViewSketcher::sketchBtn = Qt::LeftButton;
 GLViewer_ViewSketcher::GLViewer_ViewSketcher( GLViewer_Viewer* viewer, int type )
 : QObject( 0 ),
 myViewer( viewer ),
-myData( 0 ),
 myType( type ),
+myData( 0 ),
 myRectBand( 0 )
 {
     if( !myViewer )
@@ -888,7 +886,6 @@ void GLViewer_ViewSketcher::onSketch( SketchState state )
 
     if ( state == Fin )
     {
-        QApplication::syncX();  /* force rectangle redrawing */
         myViewer->activateSketching( GLViewer_Viewer::NoSketching );
     }
 }