+//=================================================================================
+// function : updateDialog()
+// purpose :
+//=================================================================================
+void SMESHGUI_AddSubMeshOp::updateDialog()
+{
+ if( !myDlg )
+ return;
+
+ bool isEnabled = !myDlg->subMeshName().isEmpty() &&
+ myDlg->hasSelection( SMESHGUI_AddSubMeshDlg::MeshObj ) &&
+ myDlg->hasSelection( SMESHGUI_AddSubMeshDlg::GeomObj ) &&
+ myDlg->hasSelection( SMESHGUI_AddSubMeshDlg::Hypo ) &&
+ myDlg->hasSelection( SMESHGUI_AddSubMeshDlg::Algo );
+
+ bool isImportedMesh = false;
+
+ QStringList selMesh;
+ myDlg->selectedObject( SMESHGUI_AddSubMeshDlg::MeshObj, selMesh );
+ _PTR(SObject) SO = studyDS()->FindObjectID( selMesh.first() );
+ GEOM::GEOM_Object_var myGeomShape = SMESH::GetShapeOnMeshOrSubMesh(SO);
+ isImportedMesh = myGeomShape->_is_nil();
+
+ isEnabled = isEnabled && !isImportedMesh;
+
+ myDlg->setButtonEnabled( isEnabled, QtxDialog::OK | QtxDialog::Apply );
+}
+
+//=================================================================================
+// function : onNameChanged()
+// purpose :
+//=================================================================================
+void SMESHGUI_AddSubMeshOp::onNameChanged( const QString& )
+{
+ updateDialog();
+}
+