#include <QLineEdit>
#include <QToolButton>
-HYDROGUI_ObjSelector::HYDROGUI_ObjSelector( HYDROGUI_Module* theModule, QWidget* theParent )
-: QAbstractButton( theParent ), myModule( theModule )
+HYDROGUI_ObjSelector::HYDROGUI_ObjSelector( HYDROGUI_Module* theModule,
+ const ObjectKind theObjectKind,
+ QWidget* theParent )
+: QAbstractButton( theParent ),
+ myObjectKind( theObjectKind ),
+ myModule( theModule )
{
QHBoxLayout* aLayout = new QHBoxLayout( this );
aLayout->setMargin( 0 );
return;
QString anObjName;
- Handle(HYDROData_Object) anObject = HYDROGUI_Tool::GetSelectedObject( myModule );
+ Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::GetSelectedObject( myModule );
if( !anObject.IsNull() )
- anObjName = anObject->GetName();
+ if( myObjectKind == KIND_UNKNOWN || myObjectKind == anObject->GetKind() )
+ {
+ anObjName = anObject->GetName();
+
+ // Check if the same object has not been selected in other selectors of the same parent widget.
+ if ( !anObjName.isEmpty() )
+ {
+ QList<HYDROGUI_ObjSelector*> aSelectors = parentWidget()->findChildren<HYDROGUI_ObjSelector*>();
+ foreach( HYDROGUI_ObjSelector* aSelector, aSelectors )
+ {
+ if( aSelector != this && ( aSelector->GetName() == anObjName ) )
+ {
+ // Forbid selection of the same object
+ emit alreadySelected( anObjName );
+ return;
+ }
+ }
+ }
+ }
+
+ SetName( anObjName );
+}
- myObjName->setText( anObjName );
+void HYDROGUI_ObjSelector::SetName( const QString& theName )
+{
+ myObjName->setText( theName );
}
QString HYDROGUI_ObjSelector::GetName() const
myObjName->clear();
myBtn->setChecked( false );
}
+
+void HYDROGUI_ObjSelector::SetChecked( const bool theState )
+{
+ myBtn->setChecked( theState );
+}