mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-12-26 01:10:36 +05:00
Implementation of 'Show' and 'Show Only' actions from popup menu for selected objects in Dependency tree.
This commit is contained in:
parent
328ea5246c
commit
ff4c9a2717
@ -74,12 +74,12 @@ SET(DependencyTree_HEADERS
|
||||
DependencyTree.h
|
||||
DependencyTree_Object.h
|
||||
DependencyTree_Arrow.h
|
||||
DependencyTree_ViewModel.h
|
||||
)
|
||||
|
||||
# header files / to be processed by moc
|
||||
SET(_moc_HEADERS
|
||||
DependencyTree_View.h
|
||||
DependencyTree_ViewModel.h
|
||||
)
|
||||
|
||||
# --- sources ---
|
||||
|
@ -17,14 +17,24 @@
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
|
||||
#include <GraphicsView_Viewer.h>
|
||||
|
||||
#include "DependencyTree_ViewModel.h"
|
||||
#include "DependencyTree_View.h"
|
||||
|
||||
#include "DependencyTree_View.h"
|
||||
#include "GEOM_Displayer.h"
|
||||
|
||||
#include <GraphicsView_Viewer.h>
|
||||
#include <GraphicsView_ViewPort.h>
|
||||
#include <SalomeApp_Application.h>
|
||||
#include <SalomeApp_Study.h>
|
||||
#include <LightApp_SelectionMgr.h>
|
||||
#include <SALOME_ListIO.hxx>
|
||||
#include <SALOME_ListIteratorOfListIO.hxx>
|
||||
#include <SUIT_Session.h>
|
||||
#include <OCCViewer_ViewModel.h>
|
||||
#include <OCCViewer_ViewManager.h>
|
||||
|
||||
#include <QWidget>
|
||||
#include <QMenu>
|
||||
#include <iostream>
|
||||
|
||||
DependencyTree_ViewModel::DependencyTree_ViewModel( const QString& title )
|
||||
@ -42,6 +52,68 @@ DependencyTree_ViewModel::~DependencyTree_ViewModel()
|
||||
{
|
||||
}
|
||||
|
||||
void activateOCCViewer() {
|
||||
}
|
||||
|
||||
void DependencyTree_ViewModel::onShowSelected()
|
||||
{
|
||||
std::cout<<"\n\n\n\n *****onShowSelected " << std::endl;
|
||||
SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
|
||||
if ( !app ) return;
|
||||
|
||||
app->getViewManager(OCCViewer_Viewer::Type(), /*create=*/true);
|
||||
|
||||
LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
|
||||
if ( !aSelMgr ) return;
|
||||
|
||||
SALOME_ListIO aSelList;
|
||||
aSelMgr->selectedObjects(aSelList);
|
||||
|
||||
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>(app->activeStudy());
|
||||
GEOM_Displayer* disp = new GEOM_Displayer( appStudy );
|
||||
|
||||
OCCViewer_ViewManager* anOCCVM = (OCCViewer_ViewManager*) app->getViewManager( OCCViewer_Viewer::Type(), /*create=*/true );
|
||||
|
||||
if ( SUIT_ViewModel* vmod = anOCCVM->getViewModel() ) {
|
||||
if ( SALOME_View* aViewFrame = dynamic_cast<SALOME_View*>( vmod ) ) {
|
||||
SALOME_ListIteratorOfListIO Iter( aSelList );
|
||||
for ( ; Iter.More(); Iter.Next() ) {
|
||||
disp->Display( Iter.Value(), false, aViewFrame );
|
||||
}
|
||||
aViewFrame->Repaint();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DependencyTree_ViewModel::onShowOnlySelected()
|
||||
{
|
||||
std::cout<<"\n\n\n\n *****onShowOnlySelected " << std::endl;
|
||||
SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
|
||||
if ( !app ) return;
|
||||
|
||||
LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
|
||||
if ( !aSelMgr ) return;
|
||||
|
||||
SALOME_ListIO aSelList;
|
||||
aSelMgr->selectedObjects(aSelList);
|
||||
|
||||
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>(app->activeStudy());
|
||||
GEOM_Displayer* disp = new GEOM_Displayer( appStudy );
|
||||
|
||||
OCCViewer_ViewManager* anOCCVM = (OCCViewer_ViewManager*) app->getViewManager( OCCViewer_Viewer::Type(), /*create=*/true );
|
||||
|
||||
if ( SUIT_ViewModel* vmod = anOCCVM->getViewModel() ) {
|
||||
if ( SALOME_View* aViewFrame = dynamic_cast<SALOME_View*>( vmod ) ) {
|
||||
disp->EraseAll( true, false, aViewFrame );
|
||||
SALOME_ListIteratorOfListIO Iter( aSelList );
|
||||
for ( ; Iter.More(); Iter.Next() ) {
|
||||
disp->Display( Iter.Value(), false, aViewFrame );
|
||||
}
|
||||
aViewFrame->Repaint();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DependencyTree_ViewModel::contextMenuPopup( QMenu* theMenu )
|
||||
{
|
||||
GraphicsView_Viewer::contextMenuPopup( theMenu );
|
||||
@ -51,12 +123,15 @@ void DependencyTree_ViewModel::contextMenuPopup( QMenu* theMenu )
|
||||
{
|
||||
int aNbSelected = aViewPort->nbSelected();
|
||||
std::cout<<"\n aNbSelected " << aNbSelected << std::endl;
|
||||
if( aNbSelected > 0 ) {
|
||||
theMenu->addAction( tr( "MEN_DISPLAY" ), this, SLOT( onShowSelected() ) );
|
||||
theMenu->addAction( tr( "MEN_DISPLAY_ONLY" ), this, SLOT( onShowOnlySelected() ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//SUIT_ViewWindow* DependencyTree_ViewModel::createView( SUIT_Desktop* theDesktop )
|
||||
//{
|
||||
// DependencyTree_ViewWindow* aViewFrame;
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
class DependencyTree_ViewModel: public GraphicsView_Viewer
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
@ -35,5 +36,8 @@ public:
|
||||
|
||||
// static QString Type() { return "DependencyTree"; }
|
||||
|
||||
private slots:
|
||||
void onShowSelected();
|
||||
void onShowOnlySelected();
|
||||
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user