@@ -70,12 +70,18 @@ void CommandAddRemoveGroupName::internalExecute()
7070 updateMesh (ge, grp->getName (), false );
7171 } else if (m_ope == set){
7272 // on retire tous les groupes
73+ bool ge_already_in_group = false ;
7374 for (Group::GroupEntity* grp : groups)
74- m_group_helper.removeFromGroup (grp->getName (), ge);
75+ if (grp->getName () == m_groupName)
76+ ge_already_in_group = true ;
77+ else
78+ m_group_helper.removeFromGroup (grp->getName (), ge);
7579
76- // on ajoute le groupe
77- Group::GroupEntity* grp = m_group_helper.addToGroup (m_groupName, ge);
78- updateMesh (ge, grp->getName (), true );
80+ // on ajoute le groupe s'il n'était pas déjà présent
81+ if (!ge_already_in_group) {
82+ Group::GroupEntity* grp = m_group_helper.addToGroup (m_groupName, ge);
83+ updateMesh (ge, grp->getName (), true );
84+ }
7985 } else {
8086 TkUtil::Exception (" [Erreur interne] Opération non prévue" );
8187 }
@@ -97,12 +103,18 @@ void CommandAddRemoveGroupName::internalExecute()
97103 updateMesh (te, grp->getName (), false );
98104 } else if (m_ope == set){
99105 // on retire tous les groupes
106+ bool te_already_in_group = false ;
100107 for (Group::GroupEntity* grp : groups)
101- m_group_helper.removeFromGroup (grp->getName (), te);
108+ if (grp->getName () == m_groupName)
109+ te_already_in_group = true ;
110+ else
111+ m_group_helper.removeFromGroup (grp->getName (), te);
102112
103- // on ajoute le groupe
104- Group::GroupEntity* grp = m_group_helper.addToGroup (m_groupName, te);
105- updateMesh (te, grp->getName (), true );
113+ // on ajoute le groupe s'il n'était pas déjà présent
114+ if (!te_already_in_group) {
115+ Group::GroupEntity* grp = m_group_helper.addToGroup (m_groupName, te);
116+ updateMesh (te, grp->getName (), true );
117+ }
106118 } else {
107119 TkUtil::Exception (" [Erreur interne] Opération non prévue" );
108120 }
0 commit comments