NPAL 13421 Default name for group from geometry

This commit is contained in:
dmv 2008-01-11 10:29:42 +00:00
parent 415771a7d5
commit 418f13af92
2 changed files with 47 additions and 0 deletions

View File

@ -90,6 +90,7 @@
// STL includes
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
@ -416,6 +417,7 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
myTypeGroup->setButton(0);
updateButtons();
//myName->setText(GetDefaultName(tr("SMESH_GROUP")));
}
//=================================================================================
@ -432,6 +434,42 @@ SMESHGUI_GroupDlg::~SMESHGUI_GroupDlg()
}
}
//=================================================================================
// function : GetDefaultName()
// purpose : Get the Group Name if Create new Group
//=================================================================================
QString SMESHGUI_GroupDlg::GetDefaultName(const QString& theOperation)
{
QString aName = "";
// collect all object names of SMESH component
SalomeApp_Study* appStudy =
dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
if ( !appStudy ) return aName;
_PTR(Study) aStudy = appStudy->studyDS();
std::set<std::string> aSet;
_PTR(SComponent) aMeshCompo (aStudy->FindComponent("SMESH"));
if (aMeshCompo) {
_PTR(ChildIterator) it (aStudy->NewChildIterator(aMeshCompo));
_PTR(SObject) obj;
for (it->InitEx(true); it->More(); it->Next()) {
obj = it->Value();
aSet.insert(obj->GetName());
}
}
// build a unique name
int aNumber = 0;
bool isUnique = false;
while (!isUnique) {
aName = theOperation + "_" + QString::number(++aNumber);
isUnique = (aSet.count(aName.latin1()) == 0);
}
return aName;
}
//=================================================================================
// function : Init()
// purpose :
@ -475,6 +513,7 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
myName->setText(theGroup->GetName());
myName->home(false);
myOldName = myName->text();
SALOMEDS::Color aColor = theGroup->GetColor();
setGroupColor( aColor );
@ -541,6 +580,7 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
aShapeName = aGroupShapeSO->GetName().c_str();
}
myGeomGroupLine->setText( aShapeName );
myName->setText("Group On " + aShapeName);
}
}
}
@ -601,6 +641,8 @@ void SMESHGUI_GroupDlg::onGrpTypeChanged (int id)
{
if (myGrpTypeId != id) {
myWGStack->raiseWidget( id );
if (id == 0)
myName->setText(myOldName);
onSelectGeomGroup(id == 1);
}
myGrpTypeId = id;
@ -1115,6 +1157,8 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
}
myCurrentLineEdit->setText(aString);
myOldName = myName->text();
myName->setText(aString);
myCurrentLineEdit->home(false);
updateButtons();

View File

@ -80,6 +80,8 @@ public:
bool modal = FALSE, WFlags fl = 0 );
~SMESHGUI_GroupDlg();
static QString GetDefaultName(const QString& theOperation);
public slots:
void onAdd();
@ -152,6 +154,7 @@ private:
QButtonGroup* myTypeGroup;
QLineEdit* myName;
QString myOldName;
QButtonGroup* myGrpTypeGroup;