X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Viewer.cpp;h=ff33f60eb7b4c9a48e0539c9890f1d6b8b1a51b5;hb=e6aea428c7da7751e753eac36b99e16b7e3166e4;hp=78d9d841ccd01c6ba2f8407fc096e46d36e14e44;hpb=1faf79937e639b380c9d48fda5c1932522718548;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Viewer.cpp b/src/XGUI/XGUI_Viewer.cpp index 78d9d841c..ff33f60eb 100644 --- a/src/XGUI/XGUI_Viewer.cpp +++ b/src/XGUI/XGUI_Viewer.cpp @@ -444,10 +444,10 @@ void XGUI_Viewer::addView(QMdiSubWindow* theView) connect(aWindow, SIGNAL(keyReleased(XGUI_ViewWindow*, QKeyEvent*)), this, SIGNAL(keyRelease(XGUI_ViewWindow*, QKeyEvent*))); - connect(aWindow, SIGNAL(contextMenuRequested( QContextMenuEvent* )), - this, SLOT (onContextMenuRequested( QContextMenuEvent* ))); - //connect(aWindow, SIGNAL( contextMenuRequested(QContextMenuEvent*) ), - // this, SIGNAL( contextMenuRequested(QContextMenuEvent*) ) ); + //connect(aWindow, SIGNAL(contextMenuRequested( QContextMenuEvent* )), + // this, SLOT (onContextMenuRequested( QContextMenuEvent* ))); + connect(aWindow, SIGNAL( contextMenuRequested(QContextMenuEvent*) ), + this, SIGNAL( contextMenuRequested(QContextMenuEvent*) ) ); connect(aWindow, SIGNAL(mouseMoving(XGUI_ViewWindow*, QMouseEvent*)), this, SLOT(onMouseMove(XGUI_ViewWindow*, QMouseEvent*))); @@ -464,7 +464,6 @@ void XGUI_Viewer::addView(QMdiSubWindow* theView) void XGUI_Viewer::onWindowActivated(QMdiSubWindow* view) { if (view && (view != myActiveView) && (!view->isMinimized())) { - qDebug("onWindowActivated"); myActiveView = view; ((XGUI_ViewWindow*)myActiveView->widget())->windowActivated(); QList::iterator aIt; @@ -506,9 +505,9 @@ void XGUI_Viewer::onMousePressed(XGUI_ViewWindow* theWindow, QMouseEvent* theEve */ void XGUI_Viewer::onMouseMove(XGUI_ViewWindow* theWindow, QMouseEvent* theEvent) { + myCurPnt.setX(theEvent->x()); myCurPnt.setY(theEvent->y()); if (!mySelectionEnabled) return; - myCurPnt.setX(theEvent->x()); myCurPnt.setY(theEvent->y()); Handle(V3d_View) aView3d = theWindow->viewPort()->getView(); if ( !aView3d.IsNull() ) { myAISContext->MoveTo(theEvent->x(), theEvent->y(), aView3d); @@ -532,6 +531,11 @@ void XGUI_Viewer::onMouseReleased(XGUI_ViewWindow* theWindow, QMouseEvent* theEv // emit deselection(); if (myStartPnt == myEndPnt) { + // the MoveTo is necessary for the second click in the same point. Otherwise the selection is lost. + Handle(V3d_View) aView3d = theWindow->viewPort()->getView(); + if ( !aView3d.IsNull() ) { + myAISContext->MoveTo(theEvent->x(), theEvent->y(), aView3d); + } if (aHasShift && myMultiSelectionEnabled) myAISContext->ShiftSelect(); else @@ -586,29 +590,29 @@ void XGUI_Viewer::updateViewsDrawMode() const } //****************************************************** -void XGUI_Viewer::onContextMenuRequested(QContextMenuEvent* theEvent) -{ - XGUI_ViewWindow* aWnd = dynamic_cast(sender()); - if (!aWnd) return; - - QMenu aMenu; - - // Include Viewer actions - if (myActions.size() > 0) { - aMenu.addActions(myActions); - aMenu.addSeparator(); - } - if (aWnd->actions().size() > 0) { - aMenu.addActions(aWnd->actions()); - aMenu.addSeparator(); - } - - QMdiArea* aMDI = myMainWindow->mdiArea(); - if (aMenu.actions().size() > 0) { - QMenu* aSubMenu = aMenu.addMenu(tr("Windows")); - aSubMenu->addActions(aMDI->actions()); - } else { - aMenu.addActions(aMDI->actions()); - } - aMenu.exec(theEvent->globalPos()); -} \ No newline at end of file +//void XGUI_Viewer::onContextMenuRequested(QContextMenuEvent* theEvent) +//{ +// XGUI_ViewWindow* aWnd = dynamic_cast(sender()); +// if (!aWnd) return; +// +// QMenu aMenu; +// +// // Include Viewer actions +// if (myActions.size() > 0) { +// aMenu.addActions(myActions); +// aMenu.addSeparator(); +// } +// if (aWnd->actions().size() > 0) { +// aMenu.addActions(aWnd->actions()); +// aMenu.addSeparator(); +// } +// +// QMdiArea* aMDI = myMainWindow->mdiArea(); +// if (aMenu.actions().size() > 0) { +// QMenu* aSubMenu = aMenu.addMenu(tr("Windows")); +// aSubMenu->addActions(aMDI->actions()); +// } else { +// aMenu.addActions(aMDI->actions()); +// } +// aMenu.exec(theEvent->globalPos()); +//}