#include "QtxPopupMgr.h"
-#include "SalomeApp_Application.h"
-#include "SalomeApp_NameDlg.h"
-#include "SalomeApp_DataOwner.h"
-#include "SalomeApp_ImportOperation.h"
#include "SalomeApp_Tools.h"
#include "SalomeApp_Study.h"
+#include "SalomeApp_NameDlg.h"
+#include "SalomeApp_DataOwner.h"
+#include "SalomeApp_Application.h"
+#include "SalomeApp_Preferences.h"
#include "SalomeApp_VTKSelector.h"
+#include "SalomeApp_ImportOperation.h"
+
#include <SVTK_ViewWindow.h>
#include <SVTK_ViewModel.h>
+#include <VTKViewer_ViewManager.h>
+
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_GEOMGenUtils.h"
#include "SMESHGUI_MeshUtils.h"
QObject::tr("SMESH_BUT_OK"));
wc.resume();
}
+
+ SMESHGUI::GetSMESHGUI()->updateObjBrowser();
}
catch (const SALOME::SALOME_Exception& S_ex){
wc.suspend();
SUIT_FileDlg* fd = new SUIT_FileDlg( SMESHGUI::desktop(), false, true, true );
fd->setCaption( aTitle );
fd->setFilters( filters );
- fd->exec();
- aFilename = fd->selectedFile();
- aFormat = aFilterMap[fd->selectedFilter()];
- delete fd;
- if( !aFilename.isEmpty()
- && (aMesh->NbPolygons()>0 or aMesh->NbPolyhedrons()>0)
- && aFormat==SMESH::MED_V2_1){
- int aRet = SUIT_MessageBox::warn2(SMESHGUI::desktop(),
- QObject::tr("SMESH_WRN_WARNING"),
- QObject::tr("SMESH_EXPORT_MED_V2_1").arg(anIObject->getName()),
- QObject::tr("SMESH_BUT_YES"),
- QObject::tr("SMESH_BUT_NO"),
- 0,1,0);
- if(aRet){
- return;
+ bool is_ok = false;
+ while(!is_ok){
+ fd->exec();
+ aFilename = fd->selectedFile();
+ aFormat = aFilterMap[fd->selectedFilter()];
+ is_ok = true;
+ if( !aFilename.isEmpty()
+ && (aMesh->NbPolygons()>0 or aMesh->NbPolyhedrons()>0)
+ && aFormat==SMESH::MED_V2_1){
+ int aRet = SUIT_MessageBox::warn2(SMESHGUI::desktop(),
+ QObject::tr("SMESH_WRN_WARNING"),
+ QObject::tr("SMESH_EXPORT_MED_V2_1").arg(anIObject->getName()),
+ QObject::tr("SMESH_BUT_YES"),
+ QObject::tr("SMESH_BUT_NO"),
+ 0,1,0);
+ if(aRet){
+ is_ok = false;
+ }
}
}
+ delete fd;
}
if ( !aFilename.isEmpty() ) {
// Check whether the file already exists and delete it if yes
}
case 1133:{
SMESHGUI::GetSMESHGUI()->EmitSignalDeactivateDialog();
- new SMESHGUI_TransparencyDlg( SMESHGUI::desktop(), "", false );
+ new SMESHGUI_TransparencyDlg( SMESHGUI::GetSMESHGUI(), "", false );
return;
}}
SALOME_ListIteratorOfListIO It( selected );
float Shrink = anActor->GetShrinkFactor();
SMESHGUI_Preferences_ColorDlg *aDlg =
- new SMESHGUI_Preferences_ColorDlg(SMESHGUI::desktop(),"");
+ new SMESHGUI_Preferences_ColorDlg( SMESHGUI::GetSMESHGUI(), "" );
aDlg->SetColor(1, c);
aDlg->SetColor(2, e);
aDlg->SetColor(3, n);
SMESHGUI::GetSMESHGUI()->EmitSignalDeactivateDialog();
SMESHGUI_Preferences_ColorDlg *aDlg =
- new SMESHGUI_Preferences_ColorDlg(SMESHGUI::desktop(), "");
+ new SMESHGUI_Preferences_ColorDlg( SMESHGUI::GetSMESHGUI(), "" );
- QColor color = mgr->colorValue( "SMESH", "SettingsFillColor", QColor(0, 170, 255) );
+ QColor color = mgr->colorValue( "SMESH", "fill_color", QColor(0, 170, 255) );
aDlg->SetColor(1, color);
- color = mgr->colorValue( "SMESH", "SettingsOutlineColor", QColor(0, 170, 255) );
+ color = mgr->colorValue( "SMESH", "outline_color", QColor(0, 170, 255) );
aDlg->SetColor(2, color);
- color = mgr->colorValue( "SMESH", "SettingsNodeColor", Qt::red );
+ color = mgr->colorValue( "SMESH", "node_color", Qt::red );
aDlg->SetColor(3, color);
- color = mgr->colorValue( "SMESH", "SettingsBackFaceColor", Qt::blue );
+ color = mgr->colorValue( "SMESH", "backface_color", Qt::blue );
aDlg->SetColor(4, color);
- int iVal = mgr->integerValue( "SMESH", "SettingsWidth", 1 );
+ int iVal = mgr->integerValue( "SMESH", "element_width", 1 );
aDlg->SetIntValue(1, iVal);
- iVal = mgr->integerValue( "SMESH", "SettingsNodesSize", 3 );
+ iVal = mgr->integerValue( "SMESH", "node_size", 3 );
aDlg->SetIntValue(2, iVal);
- iVal = mgr->integerValue( "SMESH", "SettingsShrinkCoeff", 75 );
+ iVal = mgr->integerValue( "SMESH", "shrink_coeff", 75 );
aDlg->SetIntValue(3, iVal);
if (aDlg->exec()) {
- mgr->setValue( "SMESH", "SettingsFillColor", aDlg->GetColor(1) );
- mgr->setValue( "SMESH", "SettingsOutlineColor", aDlg->GetColor(2) );
- mgr->setValue( "SMESH", "SettingsNodeColor", aDlg->GetColor(3) );
- mgr->setValue( "SMESH", "SettingsBackFaceColor", aDlg->GetColor(4) );
+ mgr->setValue( "SMESH", "fill_color", aDlg->GetColor(1) );
+ mgr->setValue( "SMESH", "outline_color", aDlg->GetColor(2) );
+ mgr->setValue( "SMESH", "node_color", aDlg->GetColor(3) );
+ mgr->setValue( "SMESH", "backface_color", aDlg->GetColor(4) );
- mgr->setValue( "SMESH", "SettingsWidth", aDlg->GetIntValue(1) );
- mgr->setValue( "SMESH", "SettingsNodesSize", aDlg->GetIntValue(2) );
- mgr->setValue( "SMESH", "SettingsShrinkCoeff", aDlg->GetIntValue(3) );
+ mgr->setValue( "SMESH", "element_width", aDlg->GetIntValue(1) );
+ mgr->setValue( "SMESH", "node_size", aDlg->GetIntValue(2) );
+ mgr->setValue( "SMESH", "shrink_coeff", aDlg->GetIntValue(3) );
}
delete aDlg;
if(obj){
SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( obj ) );
SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( obj ) );
-
+ QString objType = CheckTypeObject(IObject);
if ( !aGroup->_is_nil() ) { // DELETE GROUP
SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
aMesh->RemoveGroup( aGroup );
SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
aMesh->RemoveSubMesh( aSubMesh );
}
+ else if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
+ SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
+ aStudyBuilder->RemoveObjectWithChildren( obj );
+ }
else {// default action: remove SObject from the study
// san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
//SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
aStudyBuilder->CommitCommand();
/* Clear any previous selection */
- SALOME_ListIO selected1;
- aSel->setSelectedObjects( selected1 );
+ SALOME_ListIO l1;
+ aSel->setSelectedObjects( l1 );
SMESHGUI::GetSMESHGUI()->updateObjBrowser();
}
}
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-class CustomItem : public QCustomMenuItem
-{
-public:
- CustomItem(const QString& s, const QFont& f) : myString(s), myFont(f) {}
- ~CustomItem() {}
-
- void paint(QPainter* p, const QColorGroup& cg, bool act, bool /*enabled*/, int x, int y, int w, int h)
- {
- p->save();
- p->fillRect( x, y, w, h, act ? cg.highlight() : cg.mid() );
- p->setPen( act ? cg.highlightedText() : cg.buttonText() );
- p->setFont( myFont );
- p->drawText( x, y, w, h, AlignHCenter | AlignVCenter | ShowPrefix | DontClip | SingleLine, myString );
- p->restore();
- }
-
- QSize sizeHint()
- {
- return QFontMetrics( myFont ).size( AlignHCenter | AlignVCenter | ShowPrefix | DontClip | SingleLine, myString );
- }
-
- bool fullSpan() const
- {
- return true;
- }
-
-private:
- QString myString;
- QFont myFont;
-};
-
extern "C" {
Standard_EXPORT CAM_Module* createModule()
{
- return SMESHGUI::GetSMESHGUI();
+ return new SMESHGUI();
}
}
*/
//=============================================================================
SMESHGUI::SMESHGUI() :
- SalomeApp_Module( "SMESH" )
+SalomeApp_Module( "SMESH" )
{
if ( CORBA::is_nil( myComponentSMESH ) )
{
return 0;
}
+bool SMESHGUI::automaticUpdate()
+{
+ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+ if ( !resMgr )
+ return false;
+
+ return resMgr->booleanValue( "SMESH", "auto_update", false );
+}
+
//=============================================================================
/*!
*
//=============================================================================
SMESHGUI* SMESHGUI::GetSMESHGUI()
{
- static SMESHGUI* aSMESHGUI = NULL;
- if( !aSMESHGUI )
- aSMESHGUI = new SMESHGUI();
-
- if(_PTR(Study) aStudy = SMESH::GetActiveStudyDocument())
- GetSMESHGen()->SetCurrentStudy( _CAST(Study,aStudy)->GetStudy() );
+ SMESHGUI* smeshMod = 0;
+ SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
+ if ( app )
+ {
+ CAM_Module* module = app->module( "Mesh" );
+ smeshMod = dynamic_cast<SMESHGUI*>( module );
+ }
- SUIT_ResourceMgr* mgr = resourceMgr();
- if( mgr )
- /* Automatic Update flag */
- aSMESHGUI->myAutomaticUpdate = ( mgr->stringValue( "SMESH", "AutomaticUpdate" ).compare( "true" ) == 0 );
+ if ( smeshMod && smeshMod->application() && smeshMod->application()->activeStudy() )
+ {
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( smeshMod->application()->activeStudy() );
+ if ( study )
+ {
+ _PTR(Study) aStudy = study->studyDS();
+ if ( aStudy )
+ GetSMESHGen()->SetCurrentStudy( _CAST(Study,aStudy)->GetStudy() );
+ }
+ }
- return aSMESHGUI;
+ return smeshMod;
}
extern "C"
{
- Standard_EXPORT SMESHGUI* GetComponentGUI() {
+ Standard_EXPORT SMESHGUI* GetComponentGUI()
+ {
return SMESHGUI::GetSMESHGUI();
}
}
if( !mgr )
return false;
- SUIT_ViewManager* vm = application()->activeViewManager();
- if( !vm )
- return false;
-
- SUIT_ViewWindow* view =vm->getActiveView();
+ SUIT_ViewWindow* view = application()->desktop()->activeWindow();
SVTK_ViewWindow* vtkwnd = dynamic_cast<SVTK_ViewWindow*>( view );
QAction* act = action( theCommandID );
}
case 201:
{
- SalomeApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
- SALOME_ListIO selected;
- if( aSel )
- aSel->selectedObjects( selected );
-
- SMESHGUI_Preferences_ScalarBarDlg::ScalarBarProperties( desktop(), aSel );
+ SMESHGUI_Preferences_ScalarBarDlg::ScalarBarProperties( this );
break;
}
{
if(checkLock(aStudy)) break;
SMESH::UpdateView();
+
+ SALOME_ListIO l;
+ SalomeApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
+ aSel->setSelectedObjects( l );
break;
}
}
}
}
- SALOME_ListIO selected1;
- aSel->setSelectedObjects( selected1 );
+ SALOME_ListIO l1;
+ aSel->setSelectedObjects( l1 );
break;
}
if ( vtkwnd ) {
EmitSignalDeactivateDialog();
- new SMESHGUI_NodesDlg( desktop(), "", SMESHGUI::selectionMgr() );
+ new SMESHGUI_NodesDlg(this);
}
else {
SUIT_MessageBox::warn1(desktop(),
}
CORBA::Long anId = aStudy->StudyId();
TVisualObjPtr aVisualObj = SMESH::GetVisualObj(anId,IObject->getEntry());
- cout<<"myAutomaticUpdate - "<<myAutomaticUpdate<<endl;
- if(myAutomaticUpdate && aVisualObj){
+ if ( automaticUpdate() && aVisualObj){
aVisualObj->Update();
SMESH_Actor* anActor = SMESH::FindActorByEntry(IObject->getEntry());
if(!anActor){
tr("SMESH_WRN_VIEWER_VTK"),
tr("SMESH_BUT_OK"));
}
+ updateObjBrowser();
break;
}
}
case 801: // CREATE GROUP
{
+ if ( !vtkwnd )
+ {
+ SUIT_MessageBox::warn1( desktop(), tr( "SMESH_WRN_WARNING" ),
+ tr( "NOT_A_VTK_VIEWER" ),tr( "SMESH_BUT_OK" ) );
+ break;
+ }
+
if(checkLock(aStudy)) break;
EmitSignalDeactivateDialog();
SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_nil();
case 802: // CONSTRUCT GROUP
{
+ if ( !vtkwnd )
+ {
+ SUIT_MessageBox::warn1( desktop(), tr( "SMESH_WRN_WARNING" ),
+ tr( "NOT_A_VTK_VIEWER" ),tr( "SMESH_BUT_OK" ) );
+ break;
+ }
+
if(checkLock(aStudy)) break;
EmitSignalDeactivateDialog();
case 803: // EDIT GROUP
{
+ if ( !vtkwnd )
+ {
+ SUIT_MessageBox::warn1( desktop(), tr( "SMESH_WRN_WARNING" ),
+ tr( "NOT_A_VTK_VIEWER" ),tr( "SMESH_BUT_OK" ) );
+ break;
+ }
+
if(checkLock(aStudy)) break;
EmitSignalDeactivateDialog();
case 811: // Intersect groups
case 812: // Cut groups
{
+ if ( !vtkwnd )
+ {
+ SUIT_MessageBox::warn1( desktop(), tr( "SMESH_WRN_WARNING" ),
+ tr( "NOT_A_VTK_VIEWER" ),tr( "SMESH_BUT_OK" ) );
+ break;
+ }
+
if ( checkLock( aStudy ) )
break;
else if ( theCommandID == 811 ) aMode = SMESHGUI_GroupOpDlg::INTERSECT;
else aMode = SMESHGUI_GroupOpDlg::CUT;
- ( new SMESHGUI_GroupOpDlg( desktop(), SMESHGUI::selectionMgr(), aMode ) )->show();
+ ( new SMESHGUI_GroupOpDlg( this, aMode ) )->show();
break;
}
case 813: // Delete groups with their contents
{
+ if ( !vtkwnd )
+ {
+ SUIT_MessageBox::warn1( desktop(), tr( "SMESH_WRN_WARNING" ),
+ tr( "NOT_A_VTK_VIEWER" ),tr( "SMESH_BUT_OK" ) );
+ break;
+ }
+
if ( checkLock( aStudy ) )
break;
EmitSignalDeactivateDialog();
- new SMESHGUI_DeleteGroupDlg( desktop(), SMESHGUI::selectionMgr() );
+ new SMESHGUI_DeleteGroupDlg( this );
break;
}
IOs.Clear();
IOs.Append( It.Value() );
aSel->setSelectedObjects( IOs );
- new SMESHGUI_StandardMeshInfosDlg(desktop(), "", false);
+ new SMESHGUI_StandardMeshInfosDlg( this, "", false);
}
// restore selection
aSel->setSelectedObjects( selected );
}
else
- new SMESHGUI_StandardMeshInfosDlg(desktop(), "", false);
+ new SMESHGUI_StandardMeshInfosDlg( this, "", false);
break;
}
case 1001: // AUTOMATIC UPDATE PREFERENCES
{
- if (act->isOn()) {
- mgr->setValue( "SMESH", "AutomaticUpdate", true );
- myAutomaticUpdate = true;
- }
- else {
- mgr->setValue( "SMESH", "AutomaticUpdate", false );
- myAutomaticUpdate = false;
- }
+// if (act->isOn()) {
+// mgr->setValue( "SMESH", "AutomaticUpdate", true );
+// myAutomaticUpdate = true;
+// }
+// else {
+// mgr->setValue( "SMESH", "AutomaticUpdate", false );
+// myAutomaticUpdate = false;
+// }
break;
}
case 1005:
{
- SMESHGUI_Preferences_ScalarBarDlg::ScalarBarPreferences( desktop() );
+ SMESHGUI_Preferences_ScalarBarDlg::ScalarBarPreferences( this );
break;
}
case 10070:
{
- ( new SMESHGUI_PrecisionDlg( desktop() ) )->exec();
+ ( new SMESHGUI_PrecisionDlg( this ) )->exec();
break;
}
case 10071:
{
if (act->isOn()) {
- mgr->setValue( "SMESH", "DispayEntity", true );
+ mgr->setValue( "SMESH", "display_entity", true );
}
else {
- mgr->setValue( "SMESH", "DispayEntity", false );
+ mgr->setValue( "SMESH", "display_entity", false );
}
break;
}
case 1006:
{
SMESHGUI_Preferences_SelectionDlg* aDlg =
- new SMESHGUI_Preferences_SelectionDlg(desktop());
+ new SMESHGUI_Preferences_SelectionDlg( this );
- QColor aColor = mgr->colorValue( "SMESH", "SettingsPreSelectColor", Qt::cyan );
+ QColor aColor = mgr->colorValue( "SMESH", "highlight_color", Qt::cyan );
aDlg->SetColor(1, aColor);
- aColor = mgr->colorValue( "SMESH", "SettingsItemSelectColor", Qt::yellow );
+ aColor = mgr->colorValue( "SMESH", "selection_element_color", Qt::yellow );
aDlg->SetColor(2, aColor);
- aColor = mgr->colorValue( "SMESH", "SettingsSelectColor", Qt::white );
+ aColor = mgr->colorValue( "SMESH", "selection_object_color", Qt::white );
aDlg->SetColor(3, aColor);
- aDlg->SetWidth(1, mgr->integerValue( "SMESH", "SettingsPreSelectWidth", 5 ) );
- aDlg->SetWidth(2, mgr->integerValue( "SMESH", "SettingsItemSelectWidth", 5 ) );
- aDlg->SetPrecision(1, mgr->doubleValue( "SMESH", "SettingsNodeSelectTol", 0.025 ) );
- aDlg->SetPrecision(2, mgr->doubleValue( "SMESH", "SettingsElementsSelectTol", 0.001 ) );
+ aDlg->SetWidth(1, mgr->integerValue( "SMESH", "highlight_width", 5 ) );
+ aDlg->SetWidth(2, mgr->integerValue( "SMESH", "selection_width", 5 ) );
+ aDlg->SetPrecision(1, mgr->doubleValue( "SMESH", "selection_precision_node", 0.025 ) );
+ aDlg->SetPrecision(2, mgr->doubleValue( "SMESH", "selection_precision_element", 0.001 ) );
if (aDlg->exec()) {
QColor aPreColor = aDlg->GetColor(1),
double aTolNodes = aDlg->GetPrecision(1),
aTolItems = aDlg->GetPrecision(2);
- mgr->setValue( "SMESH", "SettingsPreSelectColor", aPreColor );
- mgr->setValue( "SMESH", "SettingsItemSelectColor", aSelColor );
- mgr->setValue( "SMESH", "SettingsSelectColor", aHiColor );
+ mgr->setValue( "SMESH", "highlight_color", aPreColor );
+ mgr->setValue( "SMESH", "selection_element_color", aSelColor );
+ mgr->setValue( "SMESH", "selection_object_color", aHiColor );
- mgr->setValue( "SMESH", "SettingsPreSelectWidth", aPreWidth );
- mgr->setValue( "SMESH", "SettingsItemSelectWidth", aSelWidth );
- mgr->setValue( "SMESH", "SettingsNodeSelectTol", aTolNodes );
- mgr->setValue( "SMESH", "SettingsElementsSelectTol", aTolItems );
+ mgr->setValue( "SMESH", "highlight_width", aPreWidth );
+ mgr->setValue( "SMESH", "selection_width", aSelWidth );
+ mgr->setValue( "SMESH", "selection_precision_node", aTolNodes );
+ mgr->setValue( "SMESH", "selection_precision_element", aTolItems );
// update current study settings
- SMESH::UpdateSelectionProp();
+ SMESH::UpdateSelectionProp( this );
if( vtkwnd ) {
// update VTK viewer properties
}
}
}
+ updateObjBrowser( true );
break;
}
Handle(SALOME_InteractiveObject) IObject = It.Value();
SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
}
- SALOME_ListIO selected1;
- aSel->setSelectedObjects( selected1 );
+ SALOME_ListIO l1;
+ aSel->setSelectedObjects( l1 );
updateObjBrowser();
break;
}
if(checkLock(aStudy)) break;
if( vtkwnd ) {
EmitSignalDeactivateDialog();
- new SMESHGUI_RenumberingDlg(desktop(), "", selectionMgr(), 0);
+ new SMESHGUI_RenumberingDlg( this, "", 0);
}
else
{
if(checkLock(aStudy)) break;
if ( vtkwnd ) {
EmitSignalDeactivateDialog();
- new SMESHGUI_RenumberingDlg(desktop(), "", selectionMgr(), 1);
+ new SMESHGUI_RenumberingDlg( this, "", 1);
}
else
{
aTypes.append( SMESH::FACE );
aTypes.append( SMESH::VOLUME );
}
- new SMESHGUI_FilterLibraryDlg( desktop(), aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
+ new SMESHGUI_FilterLibraryDlg( this, SMESH::GetDesktop( this ), aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
}
break;
action( 10002 )->setOn( false );
action( 10004 )->setOn( false );
action( 10003 )->setOn( true );
- mgr->setValue( "SMESH", "DisplayMode", "Wireframe");
+ mgr->setValue( "SMESH", "display_mode", "Wireframe");
break;
}
case 10002:
action( 10001 )->setOn( false );
action( 10004 )->setOn( false );
action( 10003 )->setOn( true );
- mgr->setValue( "SMESH", "DisplayMode", "Shading");
+ mgr->setValue( "SMESH", "display_mode", "Shading");
break;
}
case 10003:
{
- mgr->setValue( "SMESH", "Shrink", act->isOn() );
+ mgr->setValue( "SMESH", "display_mode", "Shrink" );
break;
}
case 10004:
action( 10001 )->setOn( false );
action( 10002 )->setOn( false );
action( 10003 )->setOn( false );
- mgr->setValue( "SMESH", "DisplayMode", "Nodes" );
+ mgr->setValue( "SMESH", "display_mode", "Nodes" );
break;
}
}
- updateObjBrowser();
+ //updateObjBrowser();
return true;
}
//=============================================================================
bool SMESHGUI::SetSettings(SUIT_Desktop* parent)
{
- MESSAGE("SMESHGUI::SetSettings.");
SMESHGUI::GetSMESHGUI();
SUIT_ResourceMgr* mgr = resourceMgr();
// Display mode
QString DisplayMode = "Shading";
- if ( mgr->hasValue("SMESH","DisplayMode") )
- DisplayMode = mgr->stringValue("SMESH","DisplayMode");
+ if ( mgr->hasValue("SMESH","display_mode") )
+ DisplayMode = mgr->stringValue("SMESH","display_mode");
else
- mgr->setValue("SMESH","DisplayMode", "Shading");
+ mgr->setValue("SMESH","display_mode", "Shading");
bool Shrink = false;
- if ( mgr->hasValue("SMESH","Shrink") )
- Shrink = mgr->stringValue("SMESH","Shrink") == "yes";
+ if ( mgr->hasValue("SMESH","display_mode") )
+ Shrink = mgr->stringValue("SMESH","display_mode") == "Shrink";
if (DisplayMode == "Wireframe") {
// wireframe
action( 10001 )->setOn( false );
action( 10003 )->setOn( true );
}
+
action( 10003 )->setOn( Shrink );
// Automatic Update
- if ( mgr->booleanValue( "SMESH","AutomaticUpdate", false ) ) {
- action( 1001 )->setOn( true );
- myAutomaticUpdate = true;
- }
- else {
- action( 1001 )->setOn( false );
- myAutomaticUpdate = false;
- }
-
- if ( mgr->booleanValue( "SMESH","DispayEntity", false ) )
+// if ( mgr->booleanValue( "SMESH","AutomaticUpdate", false ) ) {
+// action( 1001 )->setOn( true );
+// myAutomaticUpdate = true;
+// }
+// else {
+// action( 1001 )->setOn( false );
+// myAutomaticUpdate = false;
+// }
+
+ if ( mgr->booleanValue( "SMESH","display_entity", false ) )
action( 10071 )->setOn( true );
else
action( 10071 )->setOn( false );
// Selection
- SMESH::UpdateSelectionProp();
+ SMESH::UpdateSelectionProp( this );
// menus disable
- //action( 111 )->setEnabled( false ); // IMPORT DAT
+ action( 111 )->setEnabled( false ); // IMPORT DAT
+
+ //action( 112 )->setEnabled( false );
//parent->menuBar()->setItemEnabled(112, false); // IMPORT UNV
return true;
if ( icon_id.length() )
pix = resMgr->loadPixmap( "SMESH", tr( icon_id ) );
else
- pix = resMgr->loadPixmap( "SMESH", tr( QString( "ICO_" )+po_id ) );
+ pix = resMgr->loadPixmap( "SMESH", tr( QString( "ICO_" )+po_id ), false );
if ( !pix.isNull() )
icon = QIconSet( pix );
if( !popupMgr()->contains( popupMgr()->actionId( action( id ) ) ) )
popupMgr()->insert( action( id ), parentId, 0 );
- QChar lc = popupMgr()->equality();
+ QChar lc = QtxPopupMgr::Selection::defEquality();
QString rule = "(%1) and (%2) and (%3)";
- rule = rule.arg( QString( "%1>0" ).arg( popupMgr()->selCountParam() ) );
+ rule = rule.arg( QString( "%1>0" ).arg( QtxPopupMgr::Selection::defSelCountParam() ) );
rule = rule.arg( QString( "%1client in {%2}" ).arg( lc ).arg( clients ) );
rule = rule.arg( QString( "%1type in {%2}" ).arg( lc ).arg( types ) );
rule += theRule;
{
SalomeApp_Module::initialize( app );
+// SUIT_ResourceMgr* mgr = app->resourceMgr();
+// if ( mgr )
+ /* Automatic Update flag */
+// myAutomaticUpdate = mgr->booleanValue( "SMESH", "AutomaticUpdate", myAutomaticUpdate );
+
// ----- create actions --------------
createSMESHAction( 111, "DAT", "", (CTRL+Key_B) );
createSMESHAction( 813, "DEL_GROUP", "ICON_DEL_GROUP" );
createSMESHAction( 900, "ADV_INFO", "ICON_ADV_INFO" );
createSMESHAction( 902, "STD_INFO", "ICON_STD_INFO" );
- createSMESHAction( 6001, "LENGTH", "ICON_LENGTH" );
- createSMESHAction( 6002, "FREE_EDGE", "ICON_FREE_EDGE" );
- createSMESHAction( 6003, "FREE_BORDER", "ICON_FREE_EDGE_2D" );
- createSMESHAction( 6004, "CONNECTION", "ICON_CONNECTION" );
- createSMESHAction( 6011, "AREA", "ICON_AREA" );
- createSMESHAction( 6012, "TAPER", "ICON_TAPER" );
- createSMESHAction( 6013, "ASPECT", "ICON_ASPECT" );
- createSMESHAction( 6014, "MIN_ANG", "ICON_ANGLE" );
- createSMESHAction( 6015, "WRAP", "ICON_WRAP" );
- createSMESHAction( 6016, "SKEW", "ICON_SKEW" );
- createSMESHAction( 6017, "ASPECT_3D", "ICON_ASPECT_3D" );
- createSMESHAction( 6018, "LENGTH_2D", "ICON_LENGTH_2D" );
- createSMESHAction( 6019, "CONNECTION_2D", "ICON_CONNECTION_2D" );
+ createSMESHAction( 6001, "LENGTH", "ICON_LENGTH" , 0, true );
+ createSMESHAction( 6002, "FREE_EDGE", "ICON_FREE_EDGE" , 0, true );
+ createSMESHAction( 6003, "FREE_BORDER", "ICON_FREE_EDGE_2D" , 0, true );
+ createSMESHAction( 6004, "CONNECTION", "ICON_CONNECTION" , 0, true );
+ createSMESHAction( 6011, "AREA", "ICON_AREA" , 0, true );
+ createSMESHAction( 6012, "TAPER", "ICON_TAPER" , 0, true );
+ createSMESHAction( 6013, "ASPECT", "ICON_ASPECT" , 0, true );
+ createSMESHAction( 6014, "MIN_ANG", "ICON_ANGLE" , 0, true );
+ createSMESHAction( 6015, "WARP", "ICON_WARP" , 0, true );
+ createSMESHAction( 6016, "SKEW", "ICON_SKEW", 0, true );
+ createSMESHAction( 6017, "ASPECT_3D", "ICON_ASPECT_3D", 0, true );
+ createSMESHAction( 6018, "LENGTH_2D", "ICON_LENGTH_2D", 0, true );
+ createSMESHAction( 6019, "CONNECTION_2D", "ICON_CONNECTION_2D", 0, true );
createSMESHAction( 400, "NODE", "ICON_DLG_NODE" );
createSMESHAction( 401, "EDGE", "ICON_DLG_EDGE" );
createSMESHAction( 4021, "TRIANGLE", "ICON_DLG_TRIANGLE" );
createSMESHAction( 4022, "QUAD", "ICON_DLG_QUADRANGLE" );
+ createSMESHAction( 4023, "POLYGON", "ICON_DLG_POLYGON" );
createSMESHAction( 4031, "TETRA", "ICON_DLG_TETRAS" );
createSMESHAction( 4032, "HEXA", "ICON_DLG_HEXAS" );
- createSMESHAction( 4041, "NODES", "ICON_DLG_REM_NODE" );
- createSMESHAction( 4042, "ELEMENTS", "ICON_DLG_REM_ELEMENT" );
- createSMESHAction( 4051, "NODES", "ICON_DLG_RENUMBERING_NODES" );
- createSMESHAction( 4052, "ELEMENTS", "ICON_DLG_RENUMBERING_ELEMENTS" );
+ createSMESHAction( 4041, "REMOVE_NODES", "ICON_DLG_REM_NODE" );
+ createSMESHAction( 4042, "REMOVE_ELEMENTS", "ICON_DLG_REM_ELEMENT" );
+ createSMESHAction( 4051, "RENUM_NODES", "ICON_DLG_RENUMBERING_NODES" );
+ createSMESHAction( 4052, "RENUM_ELEMENTS", "ICON_DLG_RENUMBERING_ELEMENTS" );
createSMESHAction( 4061, "TRANS", "ICON_SMESH_TRANSLATION_VECTOR" );
createSMESHAction( 4062, "ROT", "ICON_DLG_ROTATION" );
createSMESHAction( 4063, "SYM", "ICON_SMESH_SYMMETRY_PLANE" );
createSMESHAction( 10071, "DISP_ENT", "", 0, true );
createSMESHAction( 200, "RESET" );
createSMESHAction( 201, "SCALAR_BAR_PROP" );
- createSMESHAction( 211, "WIRE", "ICON_WIRE" );
- createSMESHAction( 212, "SHADE", "ICON_SHADE" );
- createSMESHAction( 213, "SHRINK", "ICON_SHRINK" );
+ createSMESHAction( 211, "WIRE", "ICON_WIRE", 0, true );
+ createSMESHAction( 212, "SHADE", "ICON_SHADE", 0, true );
+ createSMESHAction( 213, "SHRINK", "ICON_SHRINK", 0, true );
createSMESHAction( 214, "UPDATE", "ICON_UPDATE" );
- createSMESHAction( 215, "NODES", "ICON_POINTS" );
- createSMESHAction( 217, "EDGES", "ICON_DLG_EDGE" );
- createSMESHAction( 218, "FACES", "ICON_DLG_TRIANGLE" );
- createSMESHAction( 219, "VOLUMES", "ICON_DLG_TETRAS" );
+ createSMESHAction( 215, "NODES", "ICON_POINTS", 0, true );
+ createSMESHAction( 217, "EDGES", "ICON_DLG_EDGE", 0, true );
+ createSMESHAction( 218, "FACES", "ICON_DLG_TRIANGLE", 0, true );
+ createSMESHAction( 219, "VOLUMES", "ICON_DLG_TETRAS", 0, true );
createSMESHAction( 220, "ALL" );
+ createSMESHAction( 1100, "EDIT_HYPO" );
createSMESHAction( 1101, "RENAME" );
- createSMESHAction( 9010, "NUM_NODES" );
- createSMESHAction( 9011, "NUM_ELEMENTS" );
+ createSMESHAction( 9010, "NUM_NODES", "", 0, true );
+ createSMESHAction( 9011, "NUM_ELEMENTS", "", 0, true );
createSMESHAction( 1131, "DISPMODE" );
createSMESHAction( 1132, "COLORS" );
createSMESHAction( 1133, "TRANSP" );
createSMESHAction( 300, "ERASE" );
createSMESHAction( 301, "DISPLAY" );
createSMESHAction( 302, "DISPLAY_ONLY" );
+ createSMESHAction( 4033, "POLYHEDRON", "ICON_DLG_POLYHEDRON" );
// ----- create menu --------------
int fileId = createMenu( tr( "MEN_FILE" ), -1, 1 ),
createMenu( 401, addId, -1 );
createMenu( 4021, addId, -1 );
createMenu( 4022, addId, -1 );
+ createMenu( 4023, addId, -1 );
createMenu( 4031, addId, -1 );
createMenu( 4032, addId, -1 );
+ createMenu( 4033, addId, -1 );
createMenu( 4041, removeId, -1 );
createMenu( 4042, removeId, -1 );
createTool( 401, addRemTb );
createTool( 4021, addRemTb );
createTool( 4022, addRemTb );
+ createTool( 4023, addRemTb );
createTool( 4031, addRemTb );
createTool( 4032, addRemTb );
+ createTool( 4033, addRemTb );
createTool( separator(), addRemTb );
createTool( 4041, addRemTb );
createTool( 4042, addRemTb );
isNotEmpty("numberOfNodes <> 0"),
// has nodes, edges, etc in VISIBLE! actor
- hasNodes("(numberOfNodes > 0 && isVisible)"),
- hasElems("count( elemTypes ) > 0"),
- hasDifferentElems("count( elemTypes ) > 1"),
- hasEdges("{'Edge'} in elemTypes"),
- hasFaces("{'Face'} in elemTypes"),
- hasVolumes("{'Volume'} in elemTypes");
-
- QString aSelCount = popupMgr()->selCountParam() + "= 1";
- QString aClient = QString( popupMgr()->equality() )+ "client in {" + View + "}";
- QString aType = QString( popupMgr()->equality() ) + "type in {" + mesh_group + "}";
- QString aMeshInVTK = aClient + "&&" + aType + "&&" + aSelCount;
+ hasNodes("(numberOfNodes > 0 )"),//&& isVisible)"),
+ hasElems("(count( elemTypes ) > 0)"),
+ hasDifferentElems("(count( elemTypes ) > 1)"),
+ hasEdges("({'Edge'} in elemTypes)"),
+ hasFaces("({'Face'} in elemTypes)"),
+ hasVolumes("({'Volume'} in elemTypes)");
+
+ QString aSelCount = QString( "%1 = 1" ).arg( QtxPopupMgr::Selection::defSelCountParam() );
+ QString lc = QtxPopupMgr::Selection::defEquality();
+ QString aClient = QString( "%1client in {%2}" ).arg( lc ).arg( "'VTKViewer'" );
+ QString aType = QString( "%1type in {%2}" ).arg( QtxPopupMgr::Selection::defEquality() ).arg( mesh_group );
+ QString aMeshInVTK = aClient + "&&" + aType;// + "&&" + aSelCount;
//-------------------------------------------------
// Numbering
popupMgr()->insert( action( 6003 ), anId, -1 ); // FREE_BORDER
popupMgr()->setRule( action( 6003 ), aMeshInVtkHasEdges, true );
- popupMgr()->setRule( action( 6003 ), "&& controlMode = 'eFreeEdges'", true );
+ popupMgr()->setRule( action( 6003 ), "controlMode = 'eFreeEdges'", false );
popupMgr()->insert( action( 6001 ), anId, -1 ); // LENGTH
popupMgr()->setRule( action( 6001 ), aMeshInVtkHasEdges, true );
- popupMgr()->setRule( action( 6001 ), "&& controlMode = 'eLength'", true );
+ popupMgr()->setRule( action( 6001 ), "controlMode = 'eLength'", false );
popupMgr()->insert( action( 6004 ), anId, -1 ); // CONNECTION
popupMgr()->setRule( action( 6004 ), aMeshInVtkHasEdges, true );
- popupMgr()->setRule( action( 6004 ), "&& controlMode = 'eMultiConnection'", true );
+ popupMgr()->setRule( action( 6004 ), "controlMode = 'eMultiConnection'", false );
popupMgr()->insert( separator(), anId, -1 );
popupMgr()->insert( action( 6002 ), anId, -1 ); // FREE_EDGE
popupMgr()->setRule( action( 6002 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6002 ), "&& controlMode = 'eFreeBorders'", true );
+ popupMgr()->setRule( action( 6002 ), "controlMode = 'eFreeBorders'", false );
popupMgr()->insert( action( 6018 ), anId, -1 ); // LENGTH_2D
popupMgr()->setRule( action( 6018 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6018 ), "&& controlMode = 'eLength2D'", true );
+ popupMgr()->setRule( action( 6018 ), "controlMode = 'eLength2D'", false );
popupMgr()->insert( action( 6019 ), anId, -1 ); // CONNECTION_2D
popupMgr()->setRule( action( 6019 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6019 ), "&& controlMode = 'eMultiConnection2D'", true );
+ popupMgr()->setRule( action( 6019 ), "controlMode = 'eMultiConnection2D'", false );
popupMgr()->insert( action( 6011 ), anId, -1 ); // AREA
popupMgr()->setRule( action( 6011 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6011 ), "&& controlMode = 'eArea'", true );
+ popupMgr()->setRule( action( 6011 ), "controlMode = 'eArea'", false );
popupMgr()->insert( action( 6012 ), anId, -1 ); // TAPER
popupMgr()->setRule( action( 6012 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6012 ), "&& controlMode = 'eTaper'", true );
+ popupMgr()->setRule( action( 6012 ), "controlMode = 'eTaper'", false );
popupMgr()->insert( action( 6013 ), anId, -1 ); // ASPECT
popupMgr()->setRule( action( 6013 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6013 ), "&& controlMode = 'eAspectRatio'", true );
+ popupMgr()->setRule( action( 6013 ), "controlMode = 'eAspectRatio'", false );
popupMgr()->insert( action( 6014 ), anId, -1 ); // MIN_ANG
popupMgr()->setRule( action( 6014 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6014 ), "&& controlMode = 'eMinimumAngle'", true );
+ popupMgr()->setRule( action( 6014 ), "controlMode = 'eMinimumAngle'", false );
- popupMgr()->insert( action( 6015 ), anId, -1 ); // WRAP
+ popupMgr()->insert( action( 6015 ), anId, -1 ); // WARP
popupMgr()->setRule( action( 6015 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6015 ), "&& controlMode = 'eWarping'", true );
+ popupMgr()->setRule( action( 6015 ), "controlMode = 'eWarping'", false );
popupMgr()->insert( action( 6016 ), anId, -1 ); // SKEW
popupMgr()->setRule( action( 6016 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6016 ), "&& controlMode = 'eSkew'", true );
+ popupMgr()->setRule( action( 6016 ), "controlMode = 'eSkew'", false );
popupMgr()->insert( separator(), anId, -1 );
popupMgr()->insert( action( 6017 ), anId, -1 ); // ASPECT_3D
popupMgr()->setRule( action( 6017 ), aMeshInVtkHasVolumes, true );
- popupMgr()->setRule( action( 6017 ), "&& controlMode = 'eAspectRatio3D'", true );
+ popupMgr()->setRule( action( 6017 ), "controlMode = 'eAspectRatio3D'", false );
popupMgr()->insert( separator(), anId, -1 );
// Display / Erase
//-------------------------------------------------
aClient = "($client in {'VTKViewer' 'ObjectBrowser'})";
- QString aRule = aClient + " and " + aType + " and " + aSelCount;
+ QString anActiveVTK = QString("activeView = '%1'").arg(VTKViewer_Viewer::Type());
+ QString aRule = aClient + " and " + aType + " and " + aSelCount + " and " + anActiveVTK;
popupMgr()->insert( action( 301 ), -1, -1 ); // DISPLAY
popupMgr()->setRule( action( 301 ), aRule + "&&" + isNotEmpty + "&&" + isInvisible, true);
popupMgr()->setRule( action( 302 ), aRule + "&&" + isNotEmpty, true );
popupMgr()->insert( separator(), -1, -1 );
+
+ connect( application(), SIGNAL( viewManagerAdded( SUIT_ViewManager* ) ),
+ this, SLOT( onViewManagerAdded( SUIT_ViewManager* ) ) );
}
-void SMESHGUI::activateModule( SUIT_Study* study )
+bool SMESHGUI::activateModule( SUIT_Study* study )
{
- SalomeApp_Module::activateModule( study );
+ bool res = SalomeApp_Module::activateModule( study );
setMenuShown( true );
setToolShown( true );
+ SetSettings( desktop() );
- //SetSettings( desktop() );
+ return res;
}
-void SMESHGUI::deactivateModule( SUIT_Study* study )
+bool SMESHGUI::deactivateModule( SUIT_Study* study )
{
setMenuShown( false );
setToolShown( false );
EmitSignalCloseAllDialogs();
- SalomeApp_Module::deactivateModule( study );
+ return SalomeApp_Module::deactivateModule( study );
}
void SMESHGUI::OnGUIEvent()
SMESH::SMESH_Gen_var SMESHGUI::GetSMESHGen()
{
+ if ( CORBA::is_nil( myComponentSMESH ) )
+ {
+ SMESHGUI aGUI; //SRN BugID: IPAL9186: Create an instance of SMESHGUI to initialize myComponentSMESH
+ return aGUI.myComponentSMESH;
+ }
return myComponentSMESH;
}
void SMESHGUI::contextMenuPopup( const QString& client, QPopupMenu* menu, QString& /*title*/ )
{
- SMESHGUI_Selection sel( client, selectionMgr() );
+ SMESHGUI_Selection sel;
+ sel.init( client, selectionMgr() );
popupMgr()->updatePopup( menu, &sel );
}
{
list.append( SVTK_Viewer::Type() );
}
+
+void SMESHGUI::onViewManagerAdded( SUIT_ViewManager* mgr )
+{
+ if ( dynamic_cast<VTKViewer_ViewManager*>( mgr ) )
+ SMESH::UpdateSelectionProp( this );
+}
+
+void SMESHGUI::createPreferences()
+{
+ int genTab = addPreference( tr( "PREF_TAB_GENERAL" ) );
+
+ int qaGroup = addPreference( tr( "PREF_GROUP_QUALITY" ), genTab );
+ addPreference( tr( "PREF_DISPLAY_ENTITY" ), qaGroup, SalomeApp_Preferences::Bool, "SMESH", "display_entity" );
+ addPreference( tr( "PREF_AUTO_UPDATE" ), qaGroup, SalomeApp_Preferences::Bool, "SMESH", "auto_update" );
+
+ int precGroup = addPreference( tr( "PREF_GROUP_PRECISION" ), genTab );
+ setPreferenceProperty( precGroup, "columns", 1 );
+
+ addPreference( tr( "PREF_PRECISION_USE" ), precGroup, SalomeApp_Preferences::Bool );
+ int prec = addPreference( tr( "PREF_PRECISION_VALUE" ), precGroup, SalomeApp_Preferences::IntSpin, "SMESH", "controls_precision" );
+
+ setPreferenceProperty( prec, "min", 0 );
+ setPreferenceProperty( prec, "max", 16 );
+
+ int dispgroup = addPreference( tr( "PREF_DISPLAY_MODE" ), genTab );
+ int dispmode = addPreference( tr( "PREF_DISPLAY_MODE" ), dispgroup, SalomeApp_Preferences::Selector, "SMESH", "display_mode" );
+ QStringList modes;
+ modes.append( "Wireframe" );
+ modes.append( "Shading" );
+ modes.append( "Shrink" );
+ modes.append( "Nodes" );
+ setPreferenceProperty( dispmode, "strings", modes );
+
+ int meshTab = addPreference( tr( "PREF_TAB_MESH" ) );
+ int nodeGroup = addPreference( tr( "PREF_GROUP_NODES" ), meshTab );
+
+ addPreference( tr( "PREF_COLOR" ), nodeGroup, SalomeApp_Preferences::Color, "SMESH", "node_color" );
+ int nodeSz = addPreference( tr( "PREF_SIZE" ), nodeGroup, SalomeApp_Preferences::IntSpin, "SMESH", "node_size" );
+
+ setPreferenceProperty( nodeSz, "min", 1 );
+ setPreferenceProperty( nodeSz, "max", 5 );
+
+ int elemGroup = addPreference( tr( "PREF_GROUP_ELEMENTS" ), meshTab );
+
+ addPreference( tr( "PREF_FILL" ), elemGroup, SalomeApp_Preferences::Color, "SMESH", "fill_color" );
+ addPreference( tr( "PREF_OUTLINE" ), elemGroup, SalomeApp_Preferences::Color, "SMESH", "outline_color" );
+ addPreference( tr( "PREF_BACKFACE" ), elemGroup, SalomeApp_Preferences::Color, "SMESH", "backface_color" );
+ addPreference( "", elemGroup, SalomeApp_Preferences::Space );
+
+ int elemW = addPreference( tr( "PREF_WIDTH" ), elemGroup, SalomeApp_Preferences::IntSpin, "SMESH", "element_width" );
+ int shrink = addPreference( tr( "PREF_SHRINK_COEFF" ), elemGroup, SalomeApp_Preferences::IntSpin, "SMESH", "shrink_coeff" );
+
+ setPreferenceProperty( elemW, "min", 1 );
+ setPreferenceProperty( elemW, "max", 5 );
+
+ setPreferenceProperty( shrink, "min", 0 );
+ setPreferenceProperty( shrink, "max", 100 );
+
+ int selTab = addPreference( tr( "PREF_TAB_SELECTION" ) );
+
+ int selGroup = addPreference( tr( "PREF_GROUP_SELECTION" ), selTab );
+
+ addPreference( tr( "PREF_OBJECT_COLOR" ), selGroup, SalomeApp_Preferences::Color, "SMESH", "selection_object_color" );
+ addPreference( tr( "PREF_ELEMENT_COLOR" ), selGroup, SalomeApp_Preferences::Color, "SMESH", "selection_element_color" );
+ int selW = addPreference( tr( "PREF_WIDTH" ), selGroup, SalomeApp_Preferences::IntSpin, "SMESH", "selection_width" );
+
+ setPreferenceProperty( selW, "min", 1 );
+ setPreferenceProperty( selW, "max", 5 );
+
+ int preGroup = addPreference( tr( "PREF_GROUP_PRESELECTION" ), selTab );
+
+ addPreference( tr( "PREF_HIGHLIGHT_COLOR" ), preGroup, SalomeApp_Preferences::Color, "SMESH", "highlight_color" );
+ int preW = addPreference( tr( "PREF_WIDTH" ), preGroup, SalomeApp_Preferences::IntSpin, "SMESH", "highlight_width" );
+
+ setPreferenceProperty( preW, "min", 1 );
+ setPreferenceProperty( preW, "max", 5 );
+
+ int precSelGroup = addPreference( tr( "PREF_GROUP_PRECISION" ), selTab );
+
+ addPreference( tr( "PREF_NODES" ), precSelGroup, SalomeApp_Preferences::Double, "SMESH", "selection_precision_node" );
+ addPreference( tr( "PREF_ELEMENTS" ), precSelGroup, SalomeApp_Preferences::Double, "SMESH", "selection_precision_element" );
+
+ int sbarTab = addPreference( tr( "SMESH_SCALARBAR" ) );
+ int fontGr = addPreference( tr( "SMESH_FONT_SCALARBAR" ), sbarTab );
+
+ int tfont = addPreference( tr( "SMESH_TITLE" ), fontGr, SalomeApp_Preferences::Font, "SMESH", "scalar_bar_title_font" );
+ addPreference( tr( "SMESH_TITLE" ), fontGr, SalomeApp_Preferences::Color, "SMESH", "scalar_bar_title_color" );
+ int lfont = addPreference( tr( "SMESH_LABELS" ), fontGr, SalomeApp_Preferences::Font, "SMESH", "scalar_bar_label_font" );
+ addPreference( tr( "SMESH_LABELS" ), fontGr, SalomeApp_Preferences::Color, "SMESH", "scalar_bar_label_color" );
+
+ QStringList fam;
+ fam.append( tr( "SMESH_FONT_ARIAL" ) );
+ fam.append( tr( "SMESH_FONT_COURIER" ) );
+ fam.append( tr( "SMESH_FONT_TIMES" ) );
+ int wflag = ( QtxListResourceEdit::FontItem::All & ( ~( QtxListResourceEdit::FontItem::Size | QtxListResourceEdit::FontItem::UserSize ) ) );
+
+ setPreferenceProperty( tfont, "families", fam );
+ setPreferenceProperty( tfont, "system", false );
+ setPreferenceProperty( tfont, "widget_flags", wflag );
+ setPreferenceProperty( lfont, "families", fam );
+ setPreferenceProperty( lfont, "system", false );
+ setPreferenceProperty( lfont, "widget_flags", wflag );
+
+ int colorsLabelsGr = addPreference( tr( "SMESH_LABELS_COLORS_SCALARBAR" ), sbarTab );
+
+ int numcol = addPreference( tr( "SMESH_NUMBEROFCOLORS" ), colorsLabelsGr, SalomeApp_Preferences::IntSpin, "SMESH", "scalar_bar_num_colors" );
+ setPreferenceProperty( numcol, "min", 2 );
+ setPreferenceProperty( numcol, "max", 256 );
+
+ int numlab = addPreference( tr( "SMESH_NUMBEROFLABELS" ), colorsLabelsGr, SalomeApp_Preferences::IntSpin, "SMESH", "scalar_bar_num_labels" );
+ setPreferenceProperty( numlab, "min", 2 );
+ setPreferenceProperty( numlab, "max", 65 );
+
+ int orientGr = addPreference( tr( "SMESH_ORIENTATION" ), sbarTab );
+ int orient = addPreference( tr( "SMESH_ORIENTATION" ), orientGr, SalomeApp_Preferences::Selector, "SMESH", "scalar_bar_orientation" );
+ QStringList orients;
+ orients.append( tr( "SMESH_VERTICAL" ) );
+ orients.append( tr( "SMESH_HORIZONTAL" ) );
+ QValueList<QVariant> indices; indices.append( 0 ); indices.append( 1 );
+ setPreferenceProperty( orient, "strings", orients );
+ setPreferenceProperty( orient, "indexes", indices );
+
+ int posVSizeGr = addPreference( tr( "SMESH_POSITION_SIZE_SCALARBAR" ) + " " + tr( "SMESH_VERTICAL" ), sbarTab );
+ int xv = addPreference( tr( "SMESH_X_SCALARBAR" ), posVSizeGr, SalomeApp_Preferences::DblSpin, "SMESH", "scalar_bar_vertical_x" );
+ int yv = addPreference( tr( "SMESH_Y_SCALARBAR" ), posVSizeGr, SalomeApp_Preferences::DblSpin, "SMESH", "scalar_bar_vertical_y" );
+ int wv = addPreference( tr( "SMESH_WIDTH" ), posVSizeGr, SalomeApp_Preferences::DblSpin, "SMESH", "scalar_bar_vertical_width" );
+ int hv = addPreference( tr( "SMESH_HEIGHT" ), posVSizeGr, SalomeApp_Preferences::DblSpin, "SMESH", "scalar_bar_vertical_height" );
+ setPreferenceProperty( xv, "step", 0.1 );
+ setPreferenceProperty( yv, "step", 0.1 );
+ setPreferenceProperty( wv, "step", 0.1 );
+ setPreferenceProperty( hv, "step", 0.1 );
+
+ int posHSizeGr = addPreference( tr( "SMESH_POSITION_SIZE_SCALARBAR" ) + " " + tr( "SMESH_HORIZONTAL" ), sbarTab );
+ int xh = addPreference( tr( "SMESH_X_SCALARBAR" ), posHSizeGr, SalomeApp_Preferences::DblSpin, "SMESH", "scalar_bar_horizontal_x" );
+ int yh = addPreference( tr( "SMESH_Y_SCALARBAR" ), posHSizeGr, SalomeApp_Preferences::DblSpin, "SMESH", "scalar_bar_horizontal_y" );
+ int wh = addPreference( tr( "SMESH_WIDTH" ), posHSizeGr, SalomeApp_Preferences::DblSpin, "SMESH", "scalar_bar_horizontal_width" );
+ int hh = addPreference( tr( "SMESH_HEIGHT" ), posHSizeGr, SalomeApp_Preferences::DblSpin, "SMESH", "scalar_bar_horizontal_height" );
+ setPreferenceProperty( xh, "step", 0.1 );
+ setPreferenceProperty( yh, "step", 0.1 );
+ setPreferenceProperty( wh, "step", 0.1 );
+ setPreferenceProperty( hh, "step", 0.1 );
+}
+
+void SMESHGUI::preferencesChanged( const QString&, const QString& )
+{
+}