mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-02-15 02:23:08 +05:00
Edit/Delete popup menues enable on presentation selected in OCC viewer.
This commit is contained in:
parent
fa65931a8c
commit
8aa2876800
@ -26,6 +26,7 @@
|
||||
#include "GEOMGUI_Selection.h"
|
||||
#include <GEOMGUI_DimensionProperty.h>
|
||||
#include <GEOMGUI_AnnotationAttrs.h>
|
||||
#include <GEOMGUI_AnnotationMgr.h>
|
||||
|
||||
#include "GeometryGUI.h"
|
||||
#include "GEOM_Displayer.h"
|
||||
@ -152,6 +153,8 @@ QVariant GEOMGUI_Selection::parameter( const QString& p ) const
|
||||
v = hasImported();
|
||||
else if ( p == "allImported" )
|
||||
v = allImported();
|
||||
else if (p == "annotationsCount")
|
||||
v = annotationsCount();
|
||||
else
|
||||
v = LightApp_Selection::parameter( p );
|
||||
return v;
|
||||
@ -212,6 +215,9 @@ QVariant GEOMGUI_Selection::parameter( const int idx, const QString& p ) const
|
||||
// the method to skip temporary objects from selection (called from LightApp)
|
||||
bool GEOMGUI_Selection::processOwner( const LightApp_DataOwner* theOwner )
|
||||
{
|
||||
if ( theOwner->entry().contains( GEOMGUI_AnnotationMgr::GetEntrySeparator() ) ) {
|
||||
myAnnotationEntries.append( theOwner->entry() );
|
||||
}
|
||||
return !theOwner->entry().contains("_");
|
||||
}
|
||||
|
||||
@ -858,6 +864,11 @@ bool GEOMGUI_Selection::hasVisibleDimensions( const int theIndex ) const
|
||||
return isAnyVisible;
|
||||
}
|
||||
|
||||
int GEOMGUI_Selection::annotationsCount() const
|
||||
{
|
||||
return myAnnotationEntries.size();
|
||||
}
|
||||
|
||||
bool GEOMGUI_Selection::hasAnnotations( const int theIndex, bool& theHidden, bool& theVisible ) const
|
||||
{
|
||||
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( study() );
|
||||
|
@ -85,6 +85,8 @@ private:
|
||||
bool hasHiddenDimensions( const int ) const;
|
||||
bool hasVisibleDimensions( const int ) const;
|
||||
|
||||
int annotationsCount() const;
|
||||
|
||||
bool hasAnnotations( const int, bool&, bool& ) const;
|
||||
bool hasHiddenAnnotations( const int ) const;
|
||||
bool hasVisibleAnnotations( const int ) const;
|
||||
@ -102,6 +104,7 @@ private:
|
||||
|
||||
private:
|
||||
GeomObjectVector myObjects;
|
||||
QStringList myAnnotationEntries;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -1623,9 +1623,9 @@ void GeometryGUI::initialize( CAM_Application* app )
|
||||
mgr->insert( separator(), -1, -1 ); // -----------
|
||||
|
||||
mgr->insert( action( GEOMOp::OpEditAnnotation ), -1, -1 ); // edit annotation
|
||||
mgr->setRule( action( GEOMOp::OpEditAnnotation ), QString("($component={'GEOM'}) and type='Shape' and selcount=1"), QtxPopupMgr::VisibleRule );
|
||||
mgr->setRule( action( GEOMOp::OpEditAnnotation ), clientOCC + " and annotationsCount=1", QtxPopupMgr::VisibleRule );
|
||||
mgr->insert( action( GEOMOp::OpDeleteAnnotation ), -1, -1 ); // delete annotation
|
||||
mgr->setRule( action( GEOMOp::OpDeleteAnnotation ), QString("($component={'GEOM'}) and type='Shape' and selcount=1"), QtxPopupMgr::VisibleRule );
|
||||
mgr->setRule( action( GEOMOp::OpDeleteAnnotation ), clientOCC + " and (annotationsCount>1)", QtxPopupMgr::VisibleRule );
|
||||
mgr->insert( separator(), -1, -1 ); // -----------
|
||||
|
||||
QString canDisplay = "($component={'GEOM'}) and (selcount>0) and ({true} in $canBeDisplayed) ",
|
||||
|
Loading…
Reference in New Issue
Block a user