X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMBase%2FGEOMBase_Helper.cxx;h=d7fa50169943083c59382e1e8e36b49811bb445e;hb=efb533a09c6c5f38d840c71cb4e73355d13af530;hp=af3ffd8d56037805643aed94c8e03aa52743f907;hpb=c8522ecee00dff320a0fe301e86f9574af1d9c8d;p=modules%2Fgeom.git diff --git a/src/GEOMBase/GEOMBase_Helper.cxx b/src/GEOMBase/GEOMBase_Helper.cxx old mode 100755 new mode 100644 index af3ffd8d5..d7fa50169 --- a/src/GEOMBase/GEOMBase_Helper.cxx +++ b/src/GEOMBase/GEOMBase_Helper.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 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 @@ -24,6 +24,8 @@ // File : GEOMBase_Helper.cxx // Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) +#include + #include "GEOMBase_Helper.h" #include "GEOMBase.h" #include "GEOM_Operation.h" @@ -88,8 +90,8 @@ GEOM::GEOM_Gen_ptr GEOMBase_Helper::getGeomEngine() // Function : GEOMBase_Helper // Purpose : //================================================================ -GEOMBase_Helper::GEOMBase_Helper( SUIT_Desktop* desktop ) - : myDisplayer( 0 ), myCommand( 0 ), myViewWindow( 0 ), isPreview( false ), myDesktop( desktop ), +GEOMBase_Helper::GEOMBase_Helper( SUIT_Desktop* desktop, SUIT_ViewWindow* aVW ) + : myDisplayer( 0 ), myCommand( 0 ), myViewWindow( aVW ), isPreview( false ), myDesktop( desktop ), myIsApplyAndClose( false ), myIsOptimizedBrowsing( false ), myIsWaitCursorEnabled( true ), myIsDisableBrowsing(false), myIsDisplayResult(true) { @@ -489,6 +491,7 @@ void GEOMBase_Helper::localSelection( const ObjectList& theObjs, const std::list QString anEntry = getEntry( anObj ); if ( anEntry != "" ) { + //MESSAGE("anEntry: "<< anEntry.toStdString().c_str()); QString aName = GEOMBase::GetName( anObj ); aListOfIO.Append( new SALOME_InteractiveObject( anEntry.toUtf8().constData(), "GEOM", aName.toUtf8().constData() )); @@ -540,6 +543,20 @@ void GEOMBase_Helper::localSelection( GEOM::GEOM_Object_ptr obj, const int mode localSelection( obj, modes ); } +//================================================================ +// Function : localSelection +// Purpose : Activate selection of sub-shapes in accordance with mode +// mode is from TopAbs_ShapeEnum +//================================================================ +void GEOMBase_Helper::localSelection( const std::string& entry, const std::string& name, const std::list modes) +{ + SALOME_ListIO aListOfIO; + QString aName = name.c_str(); + aListOfIO.Append( new SALOME_InteractiveObject( entry.c_str(), + "GEOM", aName.toUtf8().constData() )); + getDisplayer()->LocalSelection( aListOfIO, modes ); +} + //================================================================ // Function : localSelection // Purpose : Activate selection of sub-shapes in accordance with mode @@ -739,7 +756,7 @@ bool GEOMBase_Helper::openCommand() bool res = false; if ( !getStudy() || hasCommand() ) { - MESSAGE("Getting out from openCommand()") + MESSAGE("Getting out from openCommand()"); return res; } @@ -751,8 +768,8 @@ bool GEOMBase_Helper::openCommand() } else { - MESSAGE("anOp->_is_nil() = true") - } + MESSAGE("anOp->_is_nil() = true"); + } return res; } @@ -842,7 +859,7 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction, b SalomeApp_Study* appStudy = dynamic_cast( SUIT_Session::session()->activeApplication()->activeStudy() ); if ( !appStudy ) { - MESSAGE("appStudy is empty") + MESSAGE("appStudy is empty"); return false; } _PTR(Study) aStudy = appStudy->studyDS(); @@ -928,12 +945,20 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction, b } if ( nbObjs ) { + const QString anOpName( typeid(*this).name() ); + // The operator name may have the following format: 24PrimitiveGUI_CylinderDlg + // clean it up to get the simple operator (here Cylinder) name into the log. + const QRegExp rx("^[^\w]*_(.*)Dlg$"); + const int pos = rx.indexIn(anOpName); + SalomeApp_Application::logStructuredUserEvent( "Geom", + "geometry", + pos == -1 ? anOpName : rx.cap(1), + "applied" ); commitCommand(); updateObjBrowser(); if( SUIT_Application* anApp = SUIT_Session::session()->activeApplication() ) { LightApp_Application* aLightApp = dynamic_cast( anApp ); if(aLightApp) { - QString anOpName( typeid(*this).name() ); aLightApp->emitOperationFinished( "Geometry", anOpName, anEntryList ); if ( !isDisableBrowsing() ) @@ -953,13 +978,13 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction, b catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); abortCommand(); - MESSAGE("Exception caught") - } + MESSAGE("Exception caught"); + } updateViewer(); - MESSAGE("result ="<