X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ObjSelector.cxx;h=19ddb76ec31d5b748bccaf6063817fc9a7315983;hb=5cae7e874afd2fc1b6f61023e8ebd33a933db3c7;hp=9a6016eea887e7f5c1eb04e77f24a3a9783a7fad;hpb=16b8dd948d4cadb6b06a34786eca8bee8eb4ea08;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ObjSelector.cxx b/src/HYDROGUI/HYDROGUI_ObjSelector.cxx index 9a6016ee..19ddb76e 100644 --- a/src/HYDROGUI/HYDROGUI_ObjSelector.cxx +++ b/src/HYDROGUI/HYDROGUI_ObjSelector.cxx @@ -1,18 +1,54 @@ +// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include "HYDROGUI_ObjSelector.h" + +#include "HYDROGUI_DataModel.h" +#include "HYDROGUI_Module.h" +#include "HYDROGUI_Tool.h" + +#include -#include -#include #include -#include #include -#include +#include + +#include +#include + #include -#include #include +#include -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 ); + aLayout->setSpacing( 5 ); myBtn = new QToolButton( this ); myBtn->setCheckable( true ); myBtn->setChecked( false ); @@ -21,6 +57,9 @@ HYDROGUI_ObjSelector::HYDROGUI_ObjSelector( HYDROGUI_Module* theModule, QWidget* aLayout->addWidget( myBtn, 0 ); aLayout->addWidget( myObjName, 1 ); + SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + myBtn->setIcon( QIcon( aResMgr->loadPixmap( "HYDRO", tr( "SELECT_ICO" ) ) ) ); + SUIT_SelectionMgr* aSelMgr = theModule->getApp()->selectionMgr(); connect( myBtn, SIGNAL( toggled( bool ) ), this, SLOT( OnToggled( bool ) ) ); @@ -59,19 +98,32 @@ void HYDROGUI_ObjSelector::OnSelectionChanged() if( !myBtn->isChecked() ) return; - SUIT_SelectionMgr* aSelMgr = myModule->getApp()->selectionMgr(); - SUIT_DataOwnerPtrList anOwners; - aSelMgr->selected( anOwners ); - QString anObjName; - foreach( SUIT_DataOwner* anOwner, anOwners ) - { - LightApp_GVDataOwner* aGrDOwner = dynamic_cast( anOwner ); - if( aGrDOwner ) - { - anObjName = aGrDOwner->object()->getName(); - break; - } - } - myObjName->setText( anObjName ); + Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::GetSelectedObject( myModule ); + if( !anObject.IsNull() ) + if( myObjectKind == KIND_UNKNOWN || myObjectKind == anObject->GetKind() ) + anObjName = anObject->GetName(); + + SetName( anObjName ); +} + +void HYDROGUI_ObjSelector::SetName( const QString& theName ) +{ + myObjName->setText( theName ); +} + +QString HYDROGUI_ObjSelector::GetName() const +{ + return myObjName->text(); +} + +void HYDROGUI_ObjSelector::Clear() +{ + myObjName->clear(); + myBtn->setChecked( false ); +} + +void HYDROGUI_ObjSelector::SetChecked( const bool theState ) +{ + myBtn->setChecked( theState ); }