Update from local sources

This commit is contained in:
apo 2005-06-08 06:18:53 +00:00
parent 4679b8437b
commit 25cec45acb
15 changed files with 293 additions and 294 deletions

View File

@ -307,19 +307,6 @@ namespace{
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;
}
}
}
if ( !aFilename.isEmpty() ) {
// Check whether the file already exists and delete it if yes
@ -1235,7 +1222,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if ( vtkwnd ) {
EmitSignalDeactivateDialog();
new SMESHGUI_NodesDlg( desktop(), "", SMESHGUI::selectionMgr() );
new SMESHGUI_NodesDlg(this);
}
else {
SUIT_MessageBox::warn1(desktop(),
@ -1698,7 +1685,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
EmitSignalDeactivateDialog();
new SMESHGUI_DeleteGroupDlg( desktop(), SMESHGUI::selectionMgr() );
new SMESHGUI_DeleteGroupDlg(this);
break;
}
@ -2169,7 +2156,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
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;
@ -2443,9 +2430,9 @@ void SMESHGUI::createPopupItem( const int id,
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;
@ -2499,19 +2486,19 @@ void SMESHGUI::initialize( CAM_Application* app )
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, "WRAP", "ICON_WRAP" , 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" );
@ -2550,18 +2537,19 @@ void SMESHGUI::initialize( CAM_Application* app )
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" );
@ -2847,9 +2835,9 @@ void SMESHGUI::initialize( CAM_Application* app )
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 aSelCount = QString( "%1 = 1" ).arg( QtxPopupMgr::Selection::defSelCountParam() );
QString aClient = QString( "%1client in {%2}" ).arg( QtxPopupMgr::Selection::defEquality() ).arg( View );
QString aType = QString( "%1type in {%2}" ).arg( QtxPopupMgr::Selection::defEquality() ).arg( mesh_group );
QString aMeshInVTK = aClient + "&&" + aType + "&&" + aSelCount;
//-------------------------------------------------
@ -2951,59 +2939,59 @@ void SMESHGUI::initialize( CAM_Application* app )
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()->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 );
@ -3073,7 +3061,8 @@ QString SMESHGUI::engineIOR() const
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 );
}

View File

@ -38,10 +38,12 @@
#include "SalomeApp_Study.h"
#include "SalomeApp_SelectionMgr.h"
#include "SVTK_Selection.h"
#include "SALOME_ListIO.hxx"
#include "SALOME_ListIteratorOfListIO.hxx"
#include "SVTK_Selection.h"
#include "SVTK_ViewWindow.h"
// QT Includes
#include <qframe.h>
#include <qlayout.h>
@ -68,10 +70,14 @@
// function : SMESHGUI_DeleteGroupDlg()
// purpose : Constructor
//=================================================================================
SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (QWidget* theParent,
SalomeApp_SelectionMgr* theSelection)
: QDialog(theParent, "SMESHGUI_DeleteGroupDlg", false,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule):
QDialog(SMESH::GetDesktop(theModule),
"SMESHGUI_DeleteGroupDlg",
false,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
myViewWindow(SMESH::GetViewWindow(mySMESHGUI)),
mySMESHGUI(theModule)
{
setCaption(tr("CAPTION"));
@ -85,7 +91,7 @@ SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (QWidget* theParent,
aDlgLay->setStretchFactor(aMainFrame, 1);
Init(theSelection);
Init();
}
//=================================================================================
@ -147,30 +153,24 @@ SMESHGUI_DeleteGroupDlg::~SMESHGUI_DeleteGroupDlg()
// function : Init()
// purpose : Init dialog fields, connect signals and slots, show dialog
//=================================================================================
void SMESHGUI_DeleteGroupDlg::Init (SalomeApp_SelectionMgr* theSelection)
void SMESHGUI_DeleteGroupDlg::Init ()
{
myBlockSelection = false;
mySelectionMgr = theSelection;
SMESHGUI* aSMESHGUI = SMESHGUI::GetSMESHGUI();
aSMESHGUI->SetActiveDialogBox((QDialog*)this);
mySMESHGUI->SetActiveDialogBox((QDialog*)this);
// selection and SMESHGUI
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
connect(aSMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(aSMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
int x, y;
aSMESHGUI->DefineDlgPosition(this, x, y);
mySMESHGUI->DefineDlgPosition(this, x, y);
this->move(x, y);
this->show();
// set selection mode
#ifdef NEW_GUI
mySelectionMgr->setSelectionModes(ActorSelection, true);
#else
mySelectionMgr->setSelectionModes(ActorSelection);
#endif
mySelectionMgr->installFilter(new SMESH_TypeFilter(GROUP));
myViewWindow->SetSelectionMode(ActorSelection);
onSelectionDone();
return;
@ -188,7 +188,7 @@ bool SMESHGUI_DeleteGroupDlg::isValid()
return false;
}
return !SMESHGUI::GetSMESHGUI()->isActiveStudyLocked();
return !mySMESHGUI->isActiveStudyLocked();
}
//=================================================================================
@ -213,7 +213,7 @@ bool SMESHGUI_DeleteGroupDlg::onApply()
myListGrp.clear();
mySelectionMgr->clearSelected();
SMESH::UpdateView();
SMESHGUI::GetSMESHGUI()->updateObjBrowser(true);
mySMESHGUI->updateObjBrowser(true);
myBlockSelection = false;
return true;
@ -235,10 +235,10 @@ void SMESHGUI_DeleteGroupDlg::onOk()
//=================================================================================
void SMESHGUI_DeleteGroupDlg::onClose()
{
mySelectionMgr->setSelectionModes(ActorSelection);
myViewWindow->SetSelectionMode(ActorSelection);
disconnect(mySelectionMgr, 0, this, 0);
disconnect(SMESHGUI::GetSMESHGUI(), 0, this, 0);
SMESHGUI::GetSMESHGUI()->ResetState();
disconnect(mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState();
mySelectionMgr->clearFilters();
reject();
}
@ -287,13 +287,9 @@ void SMESHGUI_DeleteGroupDlg::onDeactivate()
//=================================================================================
void SMESHGUI_DeleteGroupDlg::enterEvent (QEvent*)
{
SMESHGUI::GetSMESHGUI()->EmitSignalDeactivateDialog();
mySMESHGUI->EmitSignalDeactivateDialog();
setEnabled(true);
#ifdef NEW_GUI
mySelectionMgr->setSelectionModes(ActorSelection, true);
#else
mySelectionMgr->setSelectionModes(ActorSelection);
#endif
myViewWindow->SetSelectionMode(ActorSelection);
mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP));
}

View File

@ -36,9 +36,12 @@
class QCloseEvent;
class QFrame;
class QPushButton;
class SalomeApp_SelectionMgr;
class QListBox;
class SMESHGUI;
class SVTK_ViewWindow;
class SalomeApp_SelectionMgr;
/*!
* Class : SMESHGUI_DeleteGroupDlg
* Description : Delete groups and their contents
@ -49,11 +52,10 @@ class SMESHGUI_DeleteGroupDlg : public QDialog
Q_OBJECT
public:
SMESHGUI_DeleteGroupDlg (QWidget*,
SalomeApp_SelectionMgr*);
SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule);
virtual ~SMESHGUI_DeleteGroupDlg();
void Init (SalomeApp_SelectionMgr*);
void Init ();
private:
@ -82,6 +84,9 @@ private:
QPushButton* myApplyBtn;
QPushButton* myCloseBtn;
QListBox* myListBox;
SMESHGUI* mySMESHGUI;
SVTK_ViewWindow* myViewWindow;
SalomeApp_SelectionMgr* mySelectionMgr;
QValueList<SMESH::SMESH_GroupBase_var> myListGrp;

View File

@ -396,7 +396,7 @@ void SMESHGUI_FilterTable::Table::insertRows (int row, int count)
if (anEditRow >= 0 && anEditCol >= 0)
endEdit(anEditRow, anEditCol, true, false);
QTable::insertRows(row, count);
QTable::insertRows( row, count );
}
//=======================================================================
@ -427,9 +427,12 @@ QString SMESHGUI_FilterTable::Table::text (int row, int col) const
// name : SMESHGUI_FilterTable::SMESHGUI_FilterTable
// Purpose : Constructor
//=======================================================================
SMESHGUI_FilterTable::SMESHGUI_FilterTable (QWidget* parent,
SMESHGUI_FilterTable::SMESHGUI_FilterTable( SMESHGUI* theModule,
QWidget* parent,
const int type)
: QFrame(parent)
: QFrame(parent),
myIsLocked( false ),
mySMESHGUI( theModule )
{
myEntityType = -1;
Init(type);
@ -439,9 +442,12 @@ SMESHGUI_FilterTable::SMESHGUI_FilterTable (QWidget* parent,
// name : SMESHGUI_FilterTable::SMESHGUI_FilterTable
// Purpose : Constructor
//=======================================================================
SMESHGUI_FilterTable::SMESHGUI_FilterTable (QWidget* parent,
SMESHGUI_FilterTable::SMESHGUI_FilterTable( SMESHGUI* theModule,
QWidget* parent,
const QValueList<int>& types)
: QFrame(parent)
: QFrame(parent),
myIsLocked( false ),
mySMESHGUI( theModule )
{
myEntityType = -1;
Init(types);
@ -842,7 +848,7 @@ void SMESHGUI_FilterTable::SetCriterion (const int theRow,
myAddWidgets[ anItem ]->SetDouble(AdditionalWidget::Tolerance, theCriterion.Tolerance);
}
emit CretarionChanged(theRow, aType);
emit CriterionChanged(theRow, aType);
}
@ -1033,7 +1039,8 @@ void SMESHGUI_FilterTable::onClearBtn()
//=======================================================================
void SMESHGUI_FilterTable::onCurrentChanged (int theRow, int theCol)
{
updateAdditionalWidget();
if( !myIsLocked )
updateAdditionalWidget();
emit CurrentChanged(theRow, theCol);
}
@ -1087,7 +1094,7 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
updateAdditionalWidget();
emit CretarionChanged(row, entityType);
emit CriterionChanged(row, entityType);
}
//=======================================================================
@ -1125,6 +1132,7 @@ void SMESHGUI_FilterTable::addRow (Table* theTable, const int theType, const boo
int aSelectedRow = getFirstSelectedRow();
int aCurrCol = theTable->currentColumn();
myIsLocked = true;
if (toTheEnd || aSelectedRow == -1)
{
theTable->insertRows(theTable->numRows());
@ -1135,6 +1143,7 @@ void SMESHGUI_FilterTable::addRow (Table* theTable, const int theType, const boo
theTable->insertRows(aSelectedRow);
aCurrRow = aSelectedRow;
}
myIsLocked = false;
// Criteria
theTable->setItem(aCurrRow, 0, getCriterionItem(theTable, theType));
@ -1490,7 +1499,7 @@ void SMESHGUI_FilterTable::onCopyFromBtn()
{
if (myLibDlg == 0)
myLibDlg = new SMESHGUI_FilterLibraryDlg(
this, GetType(), SMESHGUI_FilterLibraryDlg::COPY_FROM);
mySMESHGUI, this, GetType(), SMESHGUI_FilterLibraryDlg::COPY_FROM);
else
myLibDlg->Init(GetType(), SMESHGUI_FilterLibraryDlg::COPY_FROM);
@ -1512,7 +1521,7 @@ void SMESHGUI_FilterTable::onAddToBtn()
return;
if (myLibDlg == 0)
myLibDlg = new SMESHGUI_FilterLibraryDlg(
this, GetType(), SMESHGUI_FilterLibraryDlg::ADD_TO);
mySMESHGUI, this, GetType(), SMESHGUI_FilterLibraryDlg::ADD_TO);
else
myLibDlg->Init(GetType(), SMESHGUI_FilterLibraryDlg::ADD_TO);
@ -1612,10 +1621,10 @@ SMESHGUI_FilterDlg::SMESHGUI_FilterDlg( SMESHGUI* theModule,
: QDialog( SMESH::GetDesktop( theModule ), theName, false,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
mySMESHGUI( theModule ),
mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
myViewWindow( SMESH::GetViewWindow( theModule ) ),
mySelector( myViewWindow->GetSelector() )
mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
{
myViewWindow = SMESH::GetViewWindow( theModule );
mySelector = myViewWindow->GetSelector();
QValueList<int> aTypes;
aTypes.append(theType);
construct(aTypes);
@ -1656,7 +1665,7 @@ QFrame* SMESHGUI_FilterDlg::createMainFrame (QWidget* theParent)
// filter frame
myTable = new SMESHGUI_FilterTable(aMainFrame, myTypes);
myTable = new SMESHGUI_FilterTable( mySMESHGUI, aMainFrame, myTypes );
myTable->SetLibsEnabled(true);
QFrame* aLine = new QFrame(myTable->GetTableGrp());
@ -1668,7 +1677,7 @@ QFrame* SMESHGUI_FilterDlg::createMainFrame (QWidget* theParent)
// other controls
mySourceGrp = createSourceGroup(aMainFrame);
connect(myTable, SIGNAL(CretarionChanged(const int, const int)),
connect(myTable, SIGNAL(CriterionChanged(const int, const int)),
SLOT(onCriterionChanged(const int, const int)));
connect(myTable, SIGNAL(CurrentChanged(int, int)),
@ -2494,7 +2503,7 @@ void SMESHGUI_FilterDlg::updateSelection()
if (myTable->GetCriterionType(aRow) == FT_BelongToGeom ||
myTable->GetCriterionType(aRow) == FT_LyingOnGeom) {
mySelectionMgr->installFilter(new SMESH_NumberFilter("GEOM",TopAbs_SHAPE,0,allTypes));
mySelectionMgr->installFilter(new GEOM_SelectionFilter( aStudy, true ));
} else if (myTable->GetCriterionType(aRow) == FT_BelongToPlane) {
mySelectionMgr->installFilter(new GEOM_FaceFilter( aStudy, StdSelect_Plane ) );
@ -2506,7 +2515,7 @@ void SMESHGUI_FilterDlg::updateSelection()
} else {
if (myIsSelectionChanged) {
mySelectionMgr->installFilter(new SMESH_NumberFilter ("This filter deactivates selection",TopAbs_SHAPE,0,allTypes));
mySelectionMgr->installFilter( new GEOM_TypeFilter( aStudy, -1 ) ); // This filter deactivates selection
}
}
}

View File

@ -81,9 +81,11 @@ class SMESHGUI_FilterTable : public QFrame
typedef QMap<int, Table*> TableMap;
public:
SMESHGUI_FilterTable (QWidget* parent,
SMESHGUI_FilterTable( SMESHGUI*,
QWidget* parent,
const int type);
SMESHGUI_FilterTable (QWidget* parent,
SMESHGUI_FilterTable( SMESHGUI*,
QWidget* parent,
const QValueList<int>& type);
virtual ~SMESHGUI_FilterTable();
@ -136,7 +138,7 @@ signals:
void AddToClicked();
void EntityTypeChanged (const int);
void NeedValidation();
void CretarionChanged (const int theRow, const int theEntityType);
void CriterionChanged (const int theRow, const int theEntityType);
void CurrentChanged (int, int);
private slots:
@ -172,6 +174,7 @@ private:
const QMap<int, QString>& getSupportedTypes() const;
private:
SMESHGUI* mySMESHGUI;
QGroupBox* myTableGrp;
QGroupBox* mySwitchTableGrp;
@ -187,6 +190,7 @@ private:
QButtonGroup* myEntityTypeGrp;
int myEntityType;
int myIsValid;
bool myIsLocked;
SMESHGUI_FilterLibraryDlg* myLibDlg;

View File

@ -79,10 +79,8 @@ SMESHGUI_FilterLibraryDlg::Dialog::~Dialog()
bool SMESHGUI_FilterLibraryDlg::Dialog::acceptData()
{
#ifdef NEW_GUI
if (mode() != QFileDialogP::AnyFile)
return SUIT_FileDlg::acceptData();
#endif
// if (mode() != QFileDialogP::AnyFile)
// return SUIT_FileDlg::acceptData();
return true;
}
@ -96,12 +94,14 @@ bool SMESHGUI_FilterLibraryDlg::Dialog::acceptData()
// name : SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg
// Purpose : Constructor
//=======================================================================
SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (QWidget* theParent,
SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (SMESHGUI* theModule,
QWidget* parent,
const QValueList<int>& theTypes,
const int theMode,
const char* theName)
: QDialog(theParent, theName, true, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
: QDialog( parent, theName, true, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
mySMESHGUI( theModule )
{
construct(theTypes, theMode);
}
@ -110,12 +110,14 @@ SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (QWidget* the
// name : SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg
// Purpose : Constructor
//=======================================================================
SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (QWidget* theParent,
SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (SMESHGUI* theModule,
QWidget* parent,
const int theType,
const int theMode,
const char* theName)
: QDialog(theParent, theName, true, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
: QDialog( parent, theName, true, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
mySMESHGUI( theModule )
{
QValueList<int> aTypes;
aTypes.append(theType);
@ -192,7 +194,7 @@ QFrame* SMESHGUI_FilterLibraryDlg::createMainFrame (QWidget* theParent)
// table
myTable = new SMESHGUI_FilterTable(aMainFrame, myTypes);
myTable = new SMESHGUI_FilterTable( mySMESHGUI, aMainFrame, myTypes);
myTable->SetEditable(myMode == EDIT);
myTable->SetLibsEnabled(false);
@ -312,10 +314,8 @@ void SMESHGUI_FilterLibraryDlg::Init (const QValueList<int>& theTypes,
updateControlsVisibility();
setEnabled(true);
SMESHGUI* aModeler = SMESHGUI::GetSMESHGUI();
connect(aModeler, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(aModeler, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
connect( mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect( mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
if (myMode == ADD_TO)
{
@ -344,7 +344,7 @@ void SMESHGUI_FilterLibraryDlg::Init (const QValueList<int>& theTypes,
}
int x, y;
aModeler->DefineDlgPosition(this, x, y);
mySMESHGUI->DefineDlgPosition(this, x, y);
this->move(x, y);
this->show();
@ -448,8 +448,8 @@ void SMESHGUI_FilterLibraryDlg::onOk()
{
if (onApply())
{
disconnect(SMESHGUI::GetSMESHGUI(), 0, this, 0);
SMESHGUI::GetSMESHGUI()->ResetState();
disconnect( mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState();
accept();
}
}
@ -460,8 +460,8 @@ void SMESHGUI_FilterLibraryDlg::onOk()
//=======================================================================
void SMESHGUI_FilterLibraryDlg::onClose()
{
disconnect(SMESHGUI::GetSMESHGUI(), 0, this, 0);
SMESHGUI::GetSMESHGUI()->ResetState();
disconnect( mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState();
reject();
}

View File

@ -64,12 +64,14 @@ public:
public:
SMESHGUI_FilterLibraryDlg( QWidget* parent,
SMESHGUI_FilterLibraryDlg( SMESHGUI*,
QWidget*,
const QValueList<int>& types,
const int mode,
const char* name = 0 );
SMESHGUI_FilterLibraryDlg( QWidget* parent,
SMESHGUI_FilterLibraryDlg( SMESHGUI*,
QWidget*,
const int type,
const int mode,
const char* name = 0 );
@ -141,6 +143,7 @@ private:
QPushButton* myDeleteBtn;
QGroupBox* myNameGrp;
QLineEdit* myName;
SMESHGUI* mySMESHGUI;
QValueList<int> myTypes;
int myMode;

View File

@ -26,6 +26,10 @@ namespace SMESH
{
SMESH::FilterManager_var GetFilterManager()
{
return SMESHGUI::GetSMESHGen()->CreateFilterManager(); // DumpPython
static SMESH::FilterManager_var aFilterManager;
if (CORBA::is_nil(aFilterManager)){
aFilterManager = SMESHGUI::GetSMESHGen()->CreateFilterManager();
}
return aFilterManager;
}
}

View File

@ -90,7 +90,8 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
mySMESHGUI( theModule ),
mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
myViewWindow( SMESH::GetViewWindow( theModule ) ),
mySelector( myViewWindow->GetSelector() )
mySelector( myViewWindow->GetSelector() ),
myIsBusy( false )
{
if (!name) setName("SMESHGUI_GroupDlg");
initDialog(true);
@ -120,7 +121,8 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
mySMESHGUI( theModule ),
mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
myViewWindow( SMESH::GetViewWindow( theModule ) ),
mySelector( myViewWindow->GetSelector() )
mySelector( myViewWindow->GetSelector() ),
myIsBusy( false )
{
if (!name) setName("SMESHGUI_GroupDlg");
initDialog(false);
@ -396,6 +398,8 @@ SMESHGUI_GroupDlg::~SMESHGUI_GroupDlg()
//=================================================================================
void SMESHGUI_GroupDlg::init (SMESH::SMESH_Mesh_ptr theMesh)
{
mySelectionMgr->installFilter(myMeshFilter);
/* init data from current selection */
myMesh = SMESH::SMESH_Mesh::_duplicate(theMesh);
myGroup = SMESH::SMESH_Group::_nil();
@ -403,11 +407,14 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_Mesh_ptr theMesh)
myActor = SMESH::FindActorByObject(myMesh);
SMESH::SetPickable(myActor);
const SALOME_ListIO& aList = mySelector->StoredIObjects();
QString aName = aList.First()->getName();
myMeshGroupLine->setText(aName) ;
myMeshGroupLine->home( false );
SALOME_ListIO aList;
mySelectionMgr->selectedObjects( aList );
if( !aList.IsEmpty() )
{
QString aName = aList.First()->getName();
myMeshGroupLine->setText(aName) ;
myMeshGroupLine->home( false );
}
myCurrentLineEdit = 0;
@ -675,7 +682,6 @@ void SMESHGUI_GroupDlg::onOK()
onClose();
}
static bool busy = false;
//=================================================================================
// function : onListSelectionChanged()
// purpose : Called when selection in element list is changed
@ -683,8 +689,8 @@ static bool busy = false;
void SMESHGUI_GroupDlg::onListSelectionChanged()
{
// MESSAGE("SMESHGUI_GroupDlg::onListSelectionChanged(); myActor = " << myActor);
if (busy || !myActor) return;
busy = true;
if( myIsBusy || !myActor) return;
myIsBusy = true;
if (myCurrentLineEdit == 0) {
mySelectionMgr->clearSelected();
@ -702,7 +708,7 @@ void SMESHGUI_GroupDlg::onListSelectionChanged()
mySelectionMgr->setSelectedObjects(aList,false);
myViewWindow->highlight( myActor->getIO(), true, true );
}
busy = false;
myIsBusy = false;
}
//=================================================================================
@ -711,11 +717,12 @@ void SMESHGUI_GroupDlg::onListSelectionChanged()
//=================================================================================
void SMESHGUI_GroupDlg::onObjectSelectionChanged()
{
if (busy || !isEnabled()) return;
busy = true;
const SALOME_ListIO& aList = mySelector->StoredIObjects();
if ( myIsBusy || !isEnabled()) return;
myIsBusy = true;
SALOME_ListIO aList;
mySelectionMgr->selectedObjects( aList );
int aNbSel = aList.Extent();
myElements->clearSelection();
@ -737,10 +744,10 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
myElements->clear();
if (aNbSel != 1) {
if (aNbSel == 0 ) {
myGroup = SMESH::SMESH_Group::_nil();
myMesh = SMESH::SMESH_Mesh::_nil();
busy = false;
myIsBusy = false;
return;
}
Handle(SALOME_InteractiveObject) IO = aList.First();
@ -749,7 +756,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
if (myMesh->_is_nil())
{
busy = false;
myIsBusy = false;
return;
}
myGroup = SMESH::SMESH_Group::_nil();
@ -770,25 +777,22 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
if (aGroup->_is_nil())
{
busy = false;
myIsBusy = false;
return;
}
busy = false;
myIsBusy = false;
myCurrentLineEdit = 0;
init(aGroup);
busy = true;
myIsBusy = true;
mySelectSubMesh->setEnabled(true);
mySelectGroup->setEnabled(true);
myGeomGroupBtn->setEnabled(true);
myGeomGroupLine->setEnabled(true);
}
myCurrentLineEdit = 0;
busy = false;
myIsBusy = false;
if (!myCreate)
{
busy = false;
return;
}
if (myTypeId == -1)
onTypeChanged(0);
@ -797,13 +801,13 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
setSelectionMode(myTypeId);
}
busy = false;
myIsBusy = false;
return;
} else if (myCurrentLineEdit == myGeomGroupLine) {
if (aNbSel != 1) {
if (aNbSel == 0) {
myGeomGroup = GEOM::GEOM_Object::_nil();
busy = false;
myIsBusy = false;
return;
}
@ -813,7 +817,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
// Check if the object is a geometry group
if (!testResult || CORBA::is_nil(myGeomGroup)) {
myGeomGroup = GEOM::GEOM_Object::_nil();
busy = false;
myIsBusy = false;
return;
}
// Check if group constructed on the same shape as a mesh or on its child
@ -835,7 +839,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
_PTR(SObject) aMeshSO = SMESH::FindSObject(myMesh);
if (!aMeshSO) {
myGeomGroup = GEOM::GEOM_Object::_nil();
busy = false;
myIsBusy = false;
return;
}
_PTR(SObject) anObj, aRef;
@ -859,16 +863,16 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
}
if (!isRefOrSubShape) {
myGeomGroup = GEOM::GEOM_Object::_nil();
busy = false;
myIsBusy = false;
return;
}
}
if (aNbSel >= 1) {
if (aNbSel > 1) {
if (myCurrentLineEdit == mySubMeshLine)
if(aNbSel >= 1) {
if(aNbSel > 1) {
if(myCurrentLineEdit == mySubMeshLine)
aString = tr("SMESH_SUBMESH_SELECTED").arg(aNbSel);
else if (myCurrentLineEdit == myGroupLine || myCurrentLineEdit == myGeomGroupLine)
else if(myCurrentLineEdit == myGroupLine || myCurrentLineEdit == myGeomGroupLine)
aString = tr("SMESH_GROUP_SELECTED").arg(aNbSel);
} else {
aString = aList.First()->getName();
@ -907,7 +911,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
myActor = SMESH::FindActorByObject(myMesh);
}
busy = false;
myIsBusy = false;
}
//=================================================================================
@ -1070,12 +1074,14 @@ void SMESHGUI_GroupDlg::onFilterAccepted()
//=================================================================================
void SMESHGUI_GroupDlg::onAdd()
{
const SALOME_ListIO& aList = mySelector->StoredIObjects();
SALOME_ListIO aList;
mySelectionMgr->selectedObjects( aList );
int aNbSel = aList.Extent();
if (aNbSel == 0 || !myActor || myMesh->_is_nil()) return;
busy = true;
myIsBusy = true;
SMESH::ElementType aType = SMESH::ALL;
switch(myTypeId) {
@ -1086,7 +1092,7 @@ void SMESHGUI_GroupDlg::onAdd()
}
if (myCurrentLineEdit == 0) {
//if (aNbSel != 1) { busy = false; return; }
//if (aNbSel != 1) { myIsBusy = false; return; }
QString aListStr = "";
int aNbItems = 0;
if (myTypeId == 0) {
@ -1109,7 +1115,10 @@ void SMESHGUI_GroupDlg::onAdd()
}
} else if (myCurrentLineEdit == mySubMeshLine) {
//SALOME_ListIteratorOfListIO anIt (mySelectionMgr->StoredIObjects());
const SALOME_ListIO& aList = mySelector->StoredIObjects();
SALOME_ListIO aList;
mySelectionMgr->selectedObjects( aList );
SALOME_ListIteratorOfListIO anIt (aList);
for (; anIt.More(); anIt.Next()) {
SMESH::SMESH_subMesh_var aSubMesh =
@ -1138,12 +1147,14 @@ void SMESHGUI_GroupDlg::onAdd()
}
}
mySelectSubMesh->setChecked(false);
busy = false;
myIsBusy = false;
onListSelectionChanged();
} else if (myCurrentLineEdit == myGroupLine) {
//SALOME_ListIteratorOfListIO anIt (mySelectionMgr->StoredIObjects());
const SALOME_ListIO& aList = mySelector->StoredIObjects();
SALOME_ListIO aList;
mySelectionMgr->selectedObjects( aList );
SALOME_ListIteratorOfListIO anIt (aList);
for (; anIt.More(); anIt.Next()) {
SMESH::SMESH_Group_var aGroup =
@ -1167,7 +1178,7 @@ void SMESHGUI_GroupDlg::onAdd()
}
}
mySelectGroup->setChecked(false);
busy = false;
myIsBusy = false;
onListSelectionChanged();
} else if (myCurrentLineEdit == myGeomGroupLine && !CORBA::is_nil(myGeomGroup)) {
@ -1181,7 +1192,7 @@ void SMESHGUI_GroupDlg::onAdd()
case 6: aGroupType = SMESH::EDGE; break;
case 4: aGroupType = SMESH::FACE; break;
case 2: aGroupType = SMESH::VOLUME; break;
default: busy = false; return;
default: myIsBusy = false; return;
}
if (aGroupType == aType) {
@ -1213,10 +1224,10 @@ void SMESHGUI_GroupDlg::onAdd()
}
//VSR: mySelectGeomGroup->setChecked(false);
busy = false;
myIsBusy = false;
onListSelectionChanged();
}
busy = false;
myIsBusy = false;
// mySelectionMgr->clearSelected();
updateButtons();
}
@ -1227,7 +1238,7 @@ void SMESHGUI_GroupDlg::onAdd()
//=================================================================================
void SMESHGUI_GroupDlg::onRemove()
{
busy = true;
myIsBusy = true;
if (myCurrentLineEdit == 0) {
for (int i = myElements->count(); i > 0; i--) {
if (myElements->isSelected(i-1)) {
@ -1235,10 +1246,12 @@ void SMESHGUI_GroupDlg::onRemove()
}
}
} else {
const SALOME_ListIO& aList = mySelector->StoredIObjects();
SALOME_ListIO aList;
mySelectionMgr->selectedObjects( aList );
int aNbSel = aList.Extent();
if (aNbSel == 0) { busy = false; return; }
if (aNbSel == 0) { myIsBusy = false; return; }
SMESH::ElementType aType = SMESH::ALL;
switch(myTypeId) {
@ -1250,7 +1263,9 @@ void SMESHGUI_GroupDlg::onRemove()
if (myCurrentLineEdit == mySubMeshLine) {
//SALOME_ListIteratorOfListIO anIt (mySelectionMgr->StoredIObjects());
const SALOME_ListIO& aList = mySelector->StoredIObjects();
SALOME_ListIO aList;
mySelectionMgr->selectedObjects( aList );
SALOME_ListIteratorOfListIO anIt (aList);
for (; anIt.More(); anIt.Next()) {
SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(anIt.Value());
@ -1292,7 +1307,9 @@ void SMESHGUI_GroupDlg::onRemove()
else if (myCurrentLineEdit == myGroupLine) {
Standard_Boolean aRes;
//SALOME_ListIteratorOfListIO anIt (mySelectionMgr->StoredIObjects());
const SALOME_ListIO& aList = mySelector->StoredIObjects();
SALOME_ListIO aList;
mySelectionMgr->selectedObjects( aList );
SALOME_ListIteratorOfListIO anIt (aList);
for (; anIt.More(); anIt.Next()) {
SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(anIt.Value());
@ -1311,7 +1328,7 @@ void SMESHGUI_GroupDlg::onRemove()
}
}
}
busy = false;
myIsBusy = false;
updateButtons();
}
@ -1326,7 +1343,7 @@ void SMESHGUI_GroupDlg::onSort()
// myElements->update();
int i, k = myElements->count();
if (k > 0) {
busy = true;
myIsBusy = true;
QStringList aSelected;
std::vector<int> anArray(k);
// QMemArray<int> anArray(k);
@ -1348,7 +1365,7 @@ void SMESHGUI_GroupDlg::onSort()
anItem = myElements->findItem(*it, Qt::ExactMatch);
if (anItem) myElements->setSelected(anItem, true);
}
busy = false;
myIsBusy = false;
}
}

View File

@ -161,7 +161,7 @@ private:
SMESHGUI_FilterDlg* myFilterDlg;
bool myCreate;
bool myCreate, myIsBusy;
};
#endif // DIALOGBOX_GROUP_H

View File

@ -270,7 +270,7 @@ void SMESHGUI_MoveNodesDlg::reset()
//=======================================================================
bool SMESHGUI_MoveNodesDlg::onApply()
{
if (SMESHGUI::GetSMESHGUI()->isActiveStudyLocked())
if (mySMESHGUI->isActiveStudyLocked())
return false;
if (!isValid(true))
@ -323,7 +323,7 @@ void SMESHGUI_MoveNodesDlg::onClose()
{
mySelectionMgr->clearSelected();
SMESH::SetPointRepresentation(false);
mySelector->SetSelectionMode(ActorSelection);
myViewWindow->SetSelectionMode(ActorSelection);
disconnect(mySelectionMgr, 0, this, 0);
disconnect(mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState();
@ -417,7 +417,7 @@ void SMESHGUI_MoveNodesDlg::onDeactivate()
void SMESHGUI_MoveNodesDlg::enterEvent (QEvent*)
{
if (!isEnabled()) {
SMESHGUI::GetSMESHGUI()->EmitSignalDeactivateDialog();
mySMESHGUI->EmitSignalDeactivateDialog();
// set selection mode
SMESH::SetPointRepresentation(true);

View File

@ -46,15 +46,16 @@
#include "SUIT_ViewWindow.h"
#include "SUIT_ViewManager.h"
#include "SUIT_MessageBox.h"
#include "SUIT_Desktop.h"
#include "SalomeApp_Study.h"
#include "SalomeApp_Application.h"
#include "SalomeApp_SelectionMgr.h"
#include "SVTK_Selector.h"
#include "SVTK_ViewWindow.h"
#include "SALOME_Actor.h"
#include "SALOME_ListIO.hxx"
#include "SVTK_Selection.h"
#include "utilities.h"
@ -113,23 +114,16 @@ namespace SMESH {
}
class TNodeSimulation {
SalomeApp_Application* myApplication;
SUIT_ViewWindow* myViewWindow;
SVTK_ViewWindow* myVTKViewWindow;
SVTK_ViewWindow* myViewWindow;
SALOME_Actor *myPreviewActor;
vtkDataSetMapper* myMapper;
vtkPoints* myPoints;
public:
TNodeSimulation (SalomeApp_Application* theApplication)
TNodeSimulation(SVTK_ViewWindow* theViewWindow):
myViewWindow(theViewWindow)
{
myApplication = theApplication;
SUIT_ViewManager* mgr = theApplication->activeViewManager();
if (!mgr) return;
myViewWindow = mgr->getActiveView();
myVTKViewWindow = GetVtkViewWindow(myViewWindow);
vtkUnstructuredGrid* aGrid = vtkUnstructuredGrid::New();
// Create points
@ -195,7 +189,7 @@ namespace SMESH {
myPreviewActor->SetProperty(aProp);
aProp->Delete();
myVTKViewWindow->AddActor(myPreviewActor);
myViewWindow->AddActor(myPreviewActor);
}
void SetPosition (float x, float y, float z)
@ -213,9 +207,7 @@ namespace SMESH {
~TNodeSimulation()
{
if (FindVtkViewWindow(myApplication->activeViewManager(), myViewWindow)) {
myVTKViewWindow->RemoveActor(myPreviewActor);
}
myViewWindow->RemoveActor(myPreviewActor);
myPreviewActor->Delete();
myMapper->RemoveAllInputs();
@ -230,17 +222,20 @@ namespace SMESH {
// class : SMESHGUI_NodesDlg()
// purpose :
//=================================================================================
SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (QWidget* parent,
SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (SMESHGUI* theModule,
const char* name,
SalomeApp_SelectionMgr* Sel,
bool modal,
WFlags fl)
: QDialog(parent, name, modal, WStyle_Customize | WStyle_NormalBorder |
WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose)
WFlags fl):
QDialog(SMESH::GetDesktop(theModule),
name,
modal,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
mySelector(SMESH::GetViewWindow(theModule)->GetSelector()),
mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
myViewWindow(SMESH::GetViewWindow(theModule)),
mySMESHGUI(theModule)
{
SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
(SUIT_Session::session()->activeApplication());
mySimulation = new SMESH::TNodeSimulation (anApp);
mySimulation = new SMESH::TNodeSimulation(myViewWindow);
QPixmap image0 (SMESHGUI::resourceMgr()->loadPixmap("SMESH", tr("ICON_DLG_NODE")));
if (!name)
@ -333,7 +328,7 @@ SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (QWidget* parent,
SMESHGUI_NodesDlgLayout->addWidget(GroupCoordinates, 1, 0);
/* Initialisation and display */
Init(Sel);
Init();
}
//=======================================================================
@ -349,7 +344,7 @@ SMESHGUI_NodesDlg::~SMESHGUI_NodesDlg()
// function : Init()
// purpose :
//=================================================================================
void SMESHGUI_NodesDlg::Init (SalomeApp_SelectionMgr* Sel)
void SMESHGUI_NodesDlg::Init ()
{
/* Get setting of step value from file configuration */
double step;
@ -365,9 +360,7 @@ void SMESHGUI_NodesDlg::Init (SalomeApp_SelectionMgr* Sel)
SpinBox_Y->SetValue(0.0);
SpinBox_Z->SetValue(0.0);
mySelectionMgr = Sel;
myMeshGUI = SMESHGUI::GetSMESHGUI();
myMeshGUI->SetActiveDialogBox((QDialog*)this);
mySMESHGUI->SetActiveDialogBox((QDialog*)this);
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
@ -379,23 +372,19 @@ void SMESHGUI_NodesDlg::Init (SalomeApp_SelectionMgr* Sel)
connect(SpinBox_Z, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument()));
connect(myMeshGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
/* to close dialog if study frame change */
connect(myMeshGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
/* Move widget on the botton right corner of main widget */
int x, y;
myMeshGUI->DefineDlgPosition(this, x, y);
mySMESHGUI->DefineDlgPosition(this, x, y);
this->move(x, y);
this->show();
// set selection mode
SMESH::SetPointRepresentation(true);
#ifdef NEW_GUI
mySelectionMgr->setSelectionModes(NodeSelection, true);
#else
mySelectionMgr->setSelectionModes(NodeSelection);
#endif
myViewWindow->SetSelectionMode(NodeSelection);
SelectionIntoArgument();
}
@ -431,7 +420,7 @@ void SMESHGUI_NodesDlg::ClickOnOk()
//=================================================================================
bool SMESHGUI_NodesDlg::ClickOnApply()
{
if (myMeshGUI->isActiveStudyLocked())
if (mySMESHGUI->isActiveStudyLocked())
return false;
if (myMesh->_is_nil()) {
@ -460,14 +449,9 @@ bool SMESHGUI_NodesDlg::ClickOnApply()
if (anActor->hasIO()) {
if (SMESH_MeshObj *aMeshObj = dynamic_cast<SMESH_MeshObj*>(anActor->GetObject().get())) {
if (myMesh->_is_equivalent(aMeshObj->GetMeshServer())) {
#ifdef NEW_GUI
mySelectionMgr->clearSelected();
mySelectionMgr->AddIObject(anActor->getIO(), false);
#else
aList.Clear();
aList.Append(anActor->getIO());
mySelectionMgr->setSelectedObjects(aList, false);
#endif
break;
}
}
@ -485,18 +469,14 @@ bool SMESHGUI_NodesDlg::ClickOnApply()
//=================================================================================
void SMESHGUI_NodesDlg::ClickOnCancel()
{
MESSAGE("SMESHGUI_NodesDlg::ClickOnCancel() 1");
disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearSelected();
mySelectionMgr->setSelectionModes(ActorSelection);
myViewWindow->SetSelectionMode(ActorSelection);
MESSAGE("SMESHGUI_NodesDlg::ClickOnCancel() 2");
mySimulation->SetVisibility(false);
SMESH::SetPointRepresentation(false);
myMeshGUI->ResetState();
mySMESHGUI->ResetState();
reject();
MESSAGE("SMESHGUI_NodesDlg::ClickOnCancel() 3");
}
//=================================================================================
@ -511,15 +491,14 @@ void SMESHGUI_NodesDlg::SelectionIntoArgument()
mySimulation->SetVisibility(false);
SMESH::SetPointRepresentation(true);
SALOME_ListIO aList;
mySelectionMgr->selectedObjects(aList);
const SALOME_ListIO& aList = mySelector->StoredIObjects();
if (aList.Extent() == 1) {
Handle(SALOME_InteractiveObject) anIO = aList.First();
if (anIO->hasEntry()) {
myMesh = SMESH::GetMeshByIO(anIO);
if (myMesh->_is_nil()) return;
QString aText;
if (SMESH::GetNameOfSelectedNodes(mySelectionMgr, aText) == 1) {
if (SMESH::GetNameOfSelectedNodes(mySelector,anIO,aText) == 1) {
if (SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh.in())) {
if (SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh()) {
if (const SMDS_MeshNode* aNode = aMesh->FindNode(aText.toInt())) {
@ -577,8 +556,8 @@ void SMESHGUI_NodesDlg::DeactivateActiveDialog()
GroupCoordinates->setEnabled(false);
GroupButtons->setEnabled(false);
mySimulation->SetVisibility(false);
myMeshGUI->ResetState();
myMeshGUI->SetActiveDialogBox(0);
mySMESHGUI->ResetState();
mySMESHGUI->SetActiveDialogBox(0);
}
}
@ -588,17 +567,13 @@ void SMESHGUI_NodesDlg::DeactivateActiveDialog()
//=================================================================================
void SMESHGUI_NodesDlg::ActivateThisDialog()
{
myMeshGUI->EmitSignalDeactivateDialog();
mySMESHGUI->EmitSignalDeactivateDialog();
GroupConstructors->setEnabled(true);
GroupCoordinates->setEnabled(true);
GroupButtons->setEnabled(true);
SMESH::SetPointRepresentation(true);
#ifdef NEW_GUI
mySelectionMgr->setSelectionModes(NodeSelection, true);
#else
mySelectionMgr->setSelectionModes(NodeSelection);
#endif
myViewWindow->SetSelectionMode(NodeSelection);
SelectionIntoArgument();
}

View File

@ -29,8 +29,6 @@
#ifndef DIALOGBOX_NODES_H
#define DIALOGBOX_NODES_H
#include "SalomeApp_SelectionMgr.h"
#include <qvariant.h>
#include <qdialog.h>
@ -44,8 +42,12 @@ class QLabel;
class QLineEdit;
class QPushButton;
class QRadioButton;
class SMESHGUI;
class SVTK_Selector;
class SVTK_ViewWindow;
class SMESHGUI_SpinBox;
class SalomeApp_SelectionMgr;
namespace SMESH{
struct TNodeSimulation;
@ -64,22 +66,23 @@ class SMESHGUI_NodesDlg : public QDialog
Q_OBJECT
public:
SMESHGUI_NodesDlg (QWidget* parent = 0, const char* name = 0,
SalomeApp_SelectionMgr* Sel = 0,
SMESHGUI_NodesDlg (SMESHGUI* theModule,
const char* name = 0,
bool modal = FALSE,
WFlags fl = 0);
~SMESHGUI_NodesDlg();
private:
SalomeApp_SelectionMgr* mySelectionMgr;
SMESHGUI* myMeshGUI;
SVTK_ViewWindow* myViewWindow;
SVTK_Selector* mySelector;
SMESHGUI* mySMESHGUI;
SMESH::SMESH_Mesh_var myMesh;
SMESH::TNodeSimulation* mySimulation;
void Init (SalomeApp_SelectionMgr*);
void Init ();
void enterEvent(QEvent* e);
void closeEvent(QCloseEvent*);
void hideEvent (QHideEvent *); /* ESC key */

View File

@ -24,18 +24,30 @@
//function : SMESHGUI_Selection
//purpose :
//=======================================================================
SMESHGUI_Selection::SMESHGUI_Selection( const QString& client,
SalomeApp_SelectionMgr* mgr )
SMESHGUI_Selection::SMESHGUI_Selection()
: SalomeApp_Selection()
{
myPopupClient = client;
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>
(SUIT_Session::session()->activeApplication()->activeStudy());
}
if( mgr && appStudy )
//=======================================================================
//function : ~SMESHGUI_Selection
//purpose :
//=======================================================================
SMESHGUI_Selection::~SMESHGUI_Selection()
{
}
//=======================================================================
//function : init
//purpose :
//=======================================================================
void SMESHGUI_Selection::init( const QString& client, SalomeApp_SelectionMgr* mgr )
{
SalomeApp_Selection::init( client, mgr );
if( mgr && study() )
{
_PTR(Study) study = appStudy->studyDS();
_PTR(Study) aStudy = study()->studyDS();
SUIT_DataOwnerPtrList sel;
mgr->selected( sel, client );
@ -47,36 +59,21 @@ SMESHGUI_Selection::SMESHGUI_Selection( const QString& client,
SUIT_DataOwner* owner = ( SUIT_DataOwner* )( (*anIt ).get() );
SalomeApp_DataOwner* sowner = dynamic_cast<SalomeApp_DataOwner*>( owner );
if( sowner )
myTypes.append( typeName( type( sowner, study ) ) );
myTypes.append( typeName( type( sowner, aStudy ) ) );
else
myTypes.append( "Unknown" );
}
}
}
SMESHGUI_Selection::~SMESHGUI_Selection()
{
}
//=======================================================================
//function : count
//purpose :
//=======================================================================
int SMESHGUI_Selection::count() const
{
return myTypes.count();
}
//=======================================================================
//function : param
//purpose :
//=======================================================================
QtxValue SMESHGUI_Selection::param( const int ind, const QString& p ) const
{
QtxValue val;
if ( p=="client" ) val = QtxValue( myPopupClient );
if ( p=="client" ) val = QtxValue( globalParam( p ) );
else if ( p=="type" ) val = QtxValue( myTypes[ind] );
else if ( p=="elemTypes" ) val = QtxValue( elemTypes( ind ) );
else if ( p=="numberOfNodes" ) val = QtxValue( numberOfNodes( ind ) );
@ -89,9 +86,9 @@ QtxValue SMESHGUI_Selection::param( const int ind, const QString& p ) const
else if ( p=="hasReference" ) val = QtxValue( hasReference( ind ) );
else if ( p=="isVisible" ) val = QtxValue( isVisible( ind ) );
printf( "--> param() : [%s] = %s (%s)\n", p.latin1(), val.toString().latin1(), val.typeName() );
if ( val.type() == QVariant::List )
cout << "size: " << val.toList().count() << endl;
// printf( "--> param() : [%s] = %s (%s)\n", p.latin1(), val.toString().latin1(), val.typeName() );
// if ( val.type() == QVariant::List )
// cout << "size: " << val.toList().count() << endl;
return val;
}

View File

@ -29,8 +29,7 @@
#ifndef SMESHGUI_SELECTION_HeaderFile
#define SMESHGUI_SELECTION_HeaderFile
#include <QtxPopupMgr.h>
#include "SalomeApp_Selection.h"
#include "SALOMEDSClient_definitions.hxx"
#include "SUIT_DataOwner.h"
@ -39,16 +38,15 @@ class SALOMEDSClient_Study;
class SalomeApp_DataOwner;
class SMESH_Actor;
class SMESHGUI_Selection : public QtxPopupMgr::Selection
class SMESHGUI_Selection : public SalomeApp_Selection
{
public:
SMESHGUI_Selection( const QString&, SalomeApp_SelectionMgr* );
SMESHGUI_Selection();
virtual ~SMESHGUI_Selection();
virtual void init( const QString&, SalomeApp_SelectionMgr* );
virtual QtxValue param( const int , const QString& paramName ) const;
virtual int count() const;
// got from object, not from actor
virtual int numberOfNodes( int ind ) const;
virtual QVariant isComputable( int ind ) const;
@ -69,7 +67,6 @@ public:
static QString typeName( const int type);
private:
QString myPopupClient;
QStringList myTypes;
SUIT_DataOwnerPtrList myDataOwners;
};