-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023 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
#include <SUIT_Desktop.h>
#include <SUIT_ViewWindow.h>
#include <SUIT_ViewManager.h>
+#include <SUIT_ViewModel.h>
#include <SUIT_DataObjectIterator.h>
#include <CAM_DataModel.h>
#include <LightApp_Application.h>
#endif
#endif
+#include <utilities.h>
/*!
\class SALOMEGUI_Swig
This module provides an access to the SALOME GUI implementing set of functions
which can be used from Python. This module is implemented using SWIG wrappings
for some GUI functionality:
- - getActiveStudyId(), getActiveStudyName() : get active study identifier and name
+ - getActiveStudyName() : get active study name
- updateObjBrowser() : update contents of the Object Browser
- SelectedCount() : get number of currently selected items
- getSelected() : get entry of the speicified selected item
/*!
\brief Update active study's Object Browser.
- \param updateSelection this parameter is obsolete
*/
-void SALOMEGUI_Swig::updateObjBrowser( bool /*updateSelection*/ )
+void SALOMEGUI_Swig::updateObjBrowser()
{
class TEvent: public SALOME_Event
{
ProcessVoidEvent( new TEvent() );
}
-/*!
- \fn int SALOMEGUI_Swig::getActiveStudyId()
- \brief Get active study identifier
- \return active study's ID or 0 if there is no active study
-*/
-
-class TGetActiveStudyIdEvent: public SALOME_Event
-{
-public:
- typedef int TResult;
- TResult myResult;
- TGetActiveStudyIdEvent() : myResult( 0 ) {}
- virtual void Execute()
- {
- if ( LightApp_Study* aStudy = getActiveStudy() ) {
- myResult = aStudy->id();
- }
- }
-};
-int SALOMEGUI_Swig::getActiveStudyId()
-{
- return ProcessEvent( new TGetActiveStudyIdEvent() );
-}
-
/*!
\fn const char* SALOMEGUI_Swig::getActiveStudyName()
\brief Get active study name
{
QStringList selected = ProcessEvent( new TGetSelectedEvent() );
return index >= 0 && index < selected.count() ?
- strdup( selected[ index ].toLatin1().constData() ) : 0;
+ strdup( selected[ index ].toUtf8().constData() ) : 0;
}
/*!
LightApp_SelectionMgr* aSelMgr = anApp->selectionMgr();
if ( aStudy && aSelMgr ) {
SALOME_ListIO anIOList;
- anIOList.Append( new SALOME_InteractiveObject( myEntry.toLatin1(), "", "" ) );
+ anIOList.Append( new SALOME_InteractiveObject( myEntry.toUtf8(), "", "" ) );
aSelMgr->setSelectedObjects( anIOList, true );
}
}
aSelMgr->selectedObjects( anIOList );
SALOME_ListIteratorOfListIO anIter( anIOList );
for( ; anIter.More(); anIter.Next() ) {
- if ( anIter.Value()->isSame( new SALOME_InteractiveObject( myEntry.toLatin1(), "", "" ) ) ) {
+ if ( anIter.Value()->isSame( new SALOME_InteractiveObject( myEntry.toUtf8(), "", "" ) ) ) {
anIOList.Remove( anIter );
aSelMgr->setSelectedObjects( anIOList, true );
return;
LightApp_Application* anApp = getApplication();
LightApp_Study* aStudy = getActiveStudy();
if ( anApp && aStudy ) {
- QString mname = anApp->moduleTitle( aStudy->componentDataType( myEntry ) );
+ QString mname = aStudy->componentDataType( myEntry );
LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mname, true );
if ( d ) {
QStringList entries;
QStringList comps;
aStudy->components( comps );
foreach( QString comp, comps ) {
- LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( anApp->moduleTitle( comp ), true );
+ LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( comp, false );
if ( d ) d->EraseAll( false, false, 0 );
}
- QString mname = anApp->moduleTitle( aStudy->componentDataType( myEntry ) );
+ QString mname = aStudy->componentDataType( myEntry );
LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mname, true );
if ( d ) {
QStringList entries;
LightApp_Application* anApp = getApplication();
LightApp_Study* aStudy = getActiveStudy();
if ( anApp && aStudy ) {
- QString mname = anApp->moduleTitle( aStudy->componentDataType( myEntry ) );
+ QString mname = aStudy->componentDataType( myEntry );
LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mname, true );
if ( d ) {
QStringList entries;
QStringList comps;
aStudy->components( comps );
foreach( QString comp, comps ) {
- LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( anApp->moduleTitle( comp ), true );
+ LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( comp, true );
if ( d ) {
QStringList entries;
aStudy->children( aStudy->centry( comp ), entries );
QStringList comps;
aStudy->components( comps );
foreach( QString comp, comps ) {
- LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( anApp->moduleTitle( comp ), true );
+ LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( comp, false );
if ( d ) d->EraseAll( false, false, 0 );
}
}
virtual void Execute()
{
if ( LightApp_Application* anApp = getApplication() ) {
- SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ SUIT_ViewWindow* window = viewMgr->getActiveView();
if ( window ) {
- SALOME_View* view = dynamic_cast<SALOME_View*>( window->getViewManager()->getActiveView() );
+ SALOME_View* view = dynamic_cast<SALOME_View*>( window->getViewManager()->getViewModel() );
if ( view ) {
- SALOME_Prs* aPrs = view->CreatePrs( myEntry.toLatin1() );
+ SALOME_Prs* aPrs = view->CreatePrs( myEntry.toUtf8() );
myResult = !aPrs->IsNull();
}
}
virtual void Execute()
{
if ( LightApp_Application* anApp = getApplication() ) {
- SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ SUIT_ViewWindow* window = viewMgr->getActiveView();
if ( window ) {
- SALOME_View* view = dynamic_cast<SALOME_View*>( window->getViewManager()->getActiveView() );
+ SALOME_View* view = dynamic_cast<SALOME_View*>( window->getViewManager()->getViewModel() );
if ( view )
view->Repaint();
}
*/
void SALOMEGUI_Swig::FitAll()
{
+ MESSAGE("FitAll");
class TEvent: public SALOME_Event
{
public:
virtual void Execute()
{
if ( LightApp_Application* anApp = getApplication() ) {
- SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ SUIT_ViewWindow* window = viewMgr->getActiveView();
if ( window ) {
#ifndef DISABLE_SALOMEOBJECT
#ifndef DISABLE_VTKVIEWER
ProcessVoidEvent( new TEvent() );
}
+void SALOMEGUI_Swig::FitSelection()
+{
+ class TEvent: public SALOME_Event
+ {
+ public:
+ TEvent() {}
+ virtual void Execute()
+ {
+ if ( LightApp_Application* anApp = getApplication() ) {
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ SUIT_ViewWindow* window = viewMgr->getActiveView();
+ if ( window ) {
+#if !defined(DISABLE_SALOMEOBJECT) && !defined(DISABLE_VTKVIEWER)
+ if ( dynamic_cast<SVTK_ViewWindow*>( window ) )
+ (dynamic_cast<SVTK_ViewWindow*>( window ))->onFitSelection();
+#endif
+#if !defined(DISABLE_OCCVIEWER)
+ if ( dynamic_cast<OCCViewer_ViewWindow*>( window ) )
+ (dynamic_cast<OCCViewer_ViewWindow*>( window ))->onFitSelection();
+#endif
+ }
+ }
+ }
+ };
+ ProcessVoidEvent( new TEvent() );
+}
+
+void SALOMEGUI_Swig::FitIObjects(const std::list<std::string>& entries)
+{
+ class TEvent: public SALOME_Event
+ {
+ const std::list<std::string>& myEntries;
+ public:
+ TEvent( const std::list<std::string>& objs ) : myEntries( objs ) {}
+ virtual void Execute()
+ {
+ if ( LightApp_Application* anApp = getApplication() ) {
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ SUIT_ViewWindow* window = viewMgr->getActiveView();
+ if ( window ) {
+ SALOME_ListIO objects;
+ std::list<std::string>::const_iterator it;
+ for ( it = myEntries.begin(); it != myEntries.end(); ++it )
+ objects.Append( new SALOME_InteractiveObject( (*it).c_str(), "" ) );
+#if !defined(DISABLE_SALOMEOBJECT) && !defined(DISABLE_VTKVIEWER)
+ if ( dynamic_cast<SVTK_ViewWindow*>( window ) )
+ (dynamic_cast<SVTK_ViewWindow*>( window ))->onFitIObjects( objects );
+#endif
+ }
+ }
+ }
+ };
+ ProcessVoidEvent( new TEvent( entries ) );
+}
+
/*!
\brief Reset current view window to the default state.
*/
virtual void Execute()
{
if ( LightApp_Application* anApp = getApplication() ) {
- SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ SUIT_ViewWindow* window = viewMgr->getActiveView();
if ( window ) {
#ifndef DISABLE_SALOMEOBJECT
#ifndef DISABLE_VTKVIEWER
virtual void Execute()
{
if ( LightApp_Application* anApp = getApplication() ) {
- SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ SUIT_ViewWindow* window = viewMgr->getActiveView();
if ( window ) {
#ifndef DISABLE_SALOMEOBJECT
#ifndef DISABLE_VTKVIEWER
TGetViewParameters() : myResult( "" ) {}
virtual void Execute() {
if ( LightApp_Application* anApp = getApplication() ) {
- if ( SUIT_ViewWindow* window = anApp->desktop()->activeWindow() ) {
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ if ( SUIT_ViewWindow* window = viewMgr->getActiveView() ) {
#ifndef DISABLE_VTKVIEWER
if ( SVTK_ViewWindow* svtk = dynamic_cast<SVTK_ViewWindow*>( window ) ) {
if ( vtkRenderer* ren = svtk->getRenderer()) {
const char* SALOMEGUI_Swig::getViewParameters() {
QString result = ProcessEvent( new TGetViewParameters() );
- return result.isEmpty() ? 0 : strdup( result.toLatin1().constData() );
+ return result.isEmpty() ? 0 : strdup( result.toUtf8().constData() );
}
virtual void Execute() {
if ( LightApp_Application* anApp = getApplication() ) {
- if ( SUIT_ViewWindow* window = anApp->desktop()->activeWindow() ) {
+ SUIT_ViewManager* viewMgr = anApp->activeViewManager();
+ if (!viewMgr) return;
+ if ( SUIT_ViewWindow* window = viewMgr->getActiveView() ) {
#ifndef DISABLE_VTKVIEWER
if ( SVTK_ViewWindow* svtk = dynamic_cast<SVTK_ViewWindow*>( window ) ) {
if ( vtkRenderer* ren = svtk->getRenderer()) {