-// Copyright (C) 2007-2016 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
// File : GEOMBase_Helper.cxx
// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com)
+#include <QRegExp>
+
#include "GEOMBase_Helper.h"
#include "GEOMBase.h"
#include "GEOM_Operation.h"
// 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)
{
if ( !object->_is_nil() ) {
QString entry = getEntry( object );
QString name = GEOMBase::GetName( object );
- getDisplayer()->Erase ( new SALOME_InteractiveObject(entry.toLatin1().constData(),
+ getDisplayer()->Erase ( new SALOME_InteractiveObject(entry.toUtf8().constData(),
"GEOM",
- name.toLatin1().constData() ),
+ name.toUtf8().constData() ),
true, updateView );
}
}
QString entry = getEntry( object );
QString name = GEOMBase::GetName( object );
getDisplayer()->Redisplay
- (new SALOME_InteractiveObject (entry.toLatin1().constData(),
+ (new SALOME_InteractiveObject (entry.toUtf8().constData(),
"GEOM",
- name.toLatin1().constData()),
+ name.toUtf8().constData()),
false);
}
QString entry = getEntry( aChild );
QString name = GEOMBase::GetName( aChild );
getDisplayer()->Redisplay
- ( new SALOME_InteractiveObject( entry.toLatin1().constData(),
+ ( new SALOME_InteractiveObject( entry.toUtf8().constData(),
"GEOM",
- name.toLatin1().constData() ),
+ name.toUtf8().constData() ),
false );
}
}
QString anEntry = getEntry( anObj );
if ( anEntry != "" )
{
+ //MESSAGE("anEntry: "<< anEntry.toStdString().c_str());
QString aName = GEOMBase::GetName( anObj );
- aListOfIO.Append( new SALOME_InteractiveObject( anEntry.toLatin1().constData(),
- "GEOM", aName.toLatin1().constData() ));
+ aListOfIO.Append( new SALOME_InteractiveObject( anEntry.toUtf8().constData(),
+ "GEOM", aName.toUtf8().constData() ));
}
}
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<int> 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
if ( study ) {
QString objIOR = GEOMBase::GetIORFromObject( object );
if ( objIOR != "" ) {
- _PTR(SObject) SO ( study->studyDS()->FindObjectIOR( objIOR.toLatin1().constData() ) );
+ _PTR(SObject) SO ( study->studyDS()->FindObjectIOR( objIOR.toUtf8().constData() ) );
if ( SO )
return QString::fromStdString(SO->GetID());
}
bool res = false;
if ( !getStudy() || hasCommand() )
{
- MESSAGE("Getting out from openCommand()")
+ MESSAGE("Getting out from openCommand()");
return res;
}
}
else
{
- MESSAGE("anOp->_is_nil() = true")
- }
+ MESSAGE("anOp->_is_nil() = true");
+ }
return res;
}
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
if ( !appStudy )
{
- MESSAGE("appStudy is empty")
+ MESSAGE("appStudy is empty");
return false;
}
_PTR(Study) aStudy = appStudy->studyDS();
aName = GEOMBase::GetDefaultName( getPrefix( obj ) );
}
}
- anEntryList << addInStudy( obj, aName.toLatin1().constData() );
+ anEntryList << addInStudy( obj, aName.toUtf8().constData() );
// updateView=false
if( isDisplayResult() )
display( obj, false );
}
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<LightApp_Application*>( anApp );
if(aLightApp) {
- QString anOpName( typeid(*this).name() );
aLightApp->emitOperationFinished( "Geometry", anOpName, anEntryList );
if ( !isDisableBrowsing() )
catch( const SALOME::SALOME_Exception& e ) {
SalomeApp_Tools::QtCatchCorbaException( e );
abortCommand();
- MESSAGE("Exception caught")
- }
+ MESSAGE("Exception caught");
+ }
updateViewer();
- MESSAGE("result ="<<result)
- return result;
+ MESSAGE("result ="<<result);
+ return result;
}
// It should perform the required operation and put all new or modified objects into
// <objects> argument.Should return <false> if some error occurs during its execution.
//================================================================
-bool GEOMBase_Helper::execute( ObjectList& objects )
+bool GEOMBase_Helper::execute( ObjectList& )
{
return false;
}
// for <theObj> or a nil reference if <theObj> should be published
// as a top-level object.
//================================================================
-GEOM::GEOM_Object_ptr GEOMBase_Helper::getFather( GEOM::GEOM_Object_ptr theObj )
+GEOM::GEOM_Object_ptr GEOMBase_Helper::getFather( GEOM::GEOM_Object_ptr )
{
return GEOM::GEOM_Object::_nil();
}
// Function : getObjectName
// Purpose : Redefine this method to return proper name for the given object
//================================================================
-QString GEOMBase_Helper::getObjectName(GEOM::GEOM_Object_ptr object) const
+QString GEOMBase_Helper::getObjectName( GEOM::GEOM_Object_ptr ) const
{
return QString();
}
// Function : getNewObjectName
// Purpose : Redefine this method to return proper name for a new object
//================================================================
-QString GEOMBase_Helper::getNewObjectName (int) const
+QString GEOMBase_Helper::getNewObjectName( int ) const
{
return QString();
}
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
_PTR(Study) aDStudy = appStudy->studyDS();
QString IOR = GEOMBase::GetIORFromObject( theFather );
- _PTR(SObject) SObj ( aDStudy->FindObjectIOR( IOR.toLatin1().constData() ) );
+ _PTR(SObject) SObj ( aDStudy->FindObjectIOR( IOR.toUtf8().constData() ) );
bool inStudy = false;
GEOM::GEOM_Object_var aReturnObject;
//================================================================
void GEOMBase_Helper::addSubshapesToStudy()
{
- //Impemented in Dialogs, called from Accept method
+ //Implemented in Dialogs, called from Accept method
}
//================================================================
//================================================================
QList<GEOM::GeomObjPtr> GEOMBase_Helper::getSourceObjects()
{
- //Impemented in Dialogs, called from Accept method
+ //Implemented in Dialogs, called from Accept method
QList<GEOM::GeomObjPtr> res;
return res;
}