X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_SelectionOp.h;h=b60a88c07502dfec364f311296777b307cbe0ff0;hp=c10ba7bb6d071af822363ae0267a34603896d7da;hb=79c2ca913cedd84dfa84aa672d9acc1b12ad335d;hpb=c63ee099ad2b149bd70136839c973e8910137bc5 diff --git a/src/SMESHGUI/SMESHGUI_SelectionOp.h b/src/SMESHGUI/SMESHGUI_SelectionOp.h index c10ba7bb6..b60a88c07 100644 --- a/src/SMESHGUI/SMESHGUI_SelectionOp.h +++ b/src/SMESHGUI/SMESHGUI_SelectionOp.h @@ -1,43 +1,49 @@ -// Copyright (C) 2003 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 +// Copyright (C) 2007-2016 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, or (at your option) any later version. +// +// 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 +// + +// File : SMESHGUI_SelectionOp.h +// Author : Alexander SOLOVYOV, Open CASCADE S.A.S. // -// File : SMESHGUI_SelectionOp.h -// Author : Alexander SOLOVYOV -// Module : SMESH +#ifndef SMESHGUI_SELECTIONOP_H +#define SMESHGUI_SELECTIONOP_H +// SMESH includes +#include "SMESH_SMESHGUI.hxx" -#ifndef SMESHGUI_SelectionOp_H -#define SMESHGUI_SelectionOp_H +#include "SMESHGUI_Operation.h" +#include "SMESHGUI_Dialog.h" -#include -#include +// SALOME GUI includes #include #include +// IDL includes #include -#include CORBA_SERVER_HEADER(SMESH_Gen) +#include CORBA_SERVER_HEADER(SMESH_Mesh) +// OCCT includes +#include class SUIT_SelectionFilter; -class TColStd_MapOfInteger; class SVTK_ViewWindow; class SVTK_Selector; class SMESH_Actor; @@ -47,18 +53,18 @@ class SMESH_Actor; Description : Base operation for all operations using object selection in viewer or objectbrowser through common widgets created by LightApp_Dialog::createObject */ -class SMESHGUI_SelectionOp : public SMESHGUI_Operation +class SMESHGUI_EXPORT SMESHGUI_SelectionOp : public SMESHGUI_Operation { Q_OBJECT public: - typedef QValueList IdList; //! List of node or element ids + typedef QList IdList; //! List of node or element ids public: SMESHGUI_SelectionOp( const Selection_Mode = ActorSelection ); virtual ~SMESHGUI_SelectionOp(); - static void extractIds( const QStringList&, IdList&, const QChar ); + static void extractIds( const QStringList&, IdList&, const QChar ); protected: typedef enum @@ -90,58 +96,59 @@ protected: virtual SUIT_SelectionFilter* createFilter( const int ) const; //! Remove only filters set by this operation (they are in map myFilters ) - void removeCustomFilters(); + void removeCustomFilters(); //! Return what selection mode is set in VTK viewer - Selection_Mode selectionMode() const; + Selection_Mode selectionMode() const; //! Set selection mode in VTK viewer - void setSelectionMode( const Selection_Mode ); + void setSelectionMode( const Selection_Mode ); //! Hilight object in VTK viewer - void highlight( const Handle( SALOME_InteractiveObject )&, - const bool, const bool = true ); + void highlight( const Handle( SALOME_InteractiveObject )&, + const bool, const bool = true ); //! Select some nodes or elements in VTK - void addOrRemoveIndex( const Handle( SALOME_InteractiveObject )&, - const TColStd_MapOfInteger&, const bool ); + void addOrRemoveIndex( const Handle( SALOME_InteractiveObject )&, + const TColStd_MapOfInteger&, const bool isModeShift); - SVTK_ViewWindow* viewWindow() const; - SVTK_Selector* selector() const; + SVTK_ViewWindow* viewWindow() const; + SVTK_Selector* selector() const; //! Get names, types and ids of selected objects - virtual void selected( QStringList&, SMESHGUI_Dialog::TypesList&, QStringList& ) const; + virtual void selected( QStringList&, + SMESHGUI_Dialog::TypesList&, QStringList& ) const; //! Find type by id - virtual int typeById( const QString&, const EntityType ) const; + virtual int typeById( const QString&, const EntityType ) const; //! Char using to divide and in string id representation. By default, '#' - virtual QChar idChar() const; + virtual QChar idChar() const; //! Try to find in certain object selection widget selected node or element ids and return it - void selectedIds( const int, IdList& ) const; + void selectedIds( const int, IdList& ) const; //! Find in QStringList correct node or element ids representation and append integer(id) to IdList - void extractIds( const QStringList&, IdList& ) const; + void extractIds( const QStringList&, IdList& ) const; //! Return selected mesh if selection mode isn't ActorSelection and only one object is selected - SMESH::SMESH_Mesh_var mesh() const; + SMESH::SMESH_Mesh_var mesh() const; //! Return actor according to selected mesh if selection mode isn't ActorSelection - SMESH_Actor* actor() const; + SMESH_Actor* actor() const; protected slots: //! Installs filter corresponding to certain object selection widget - virtual void onActivateObject( int ); + virtual void onActivateObject( int ); //! Removes filter corresponding to certain object selection widget - virtual void onDeactivateObject( int ); + virtual void onDeactivateObject( int ); /*! * Empty default implementation. In successors it may be used for more advanced selection checking. * This slot is connected to signal when the selection changed in some object selection widget */ - virtual void onSelectionChanged( int ); + virtual void onSelectionChanged( int ); /*! Default implementation allowing user to edit selected ids "by hands". In order to run default mechanism, you must set for some @@ -150,7 +157,7 @@ protected slots: to this slot Warning: this mechanism can process only integer ids, NOT MESH OR GROUP NAMES!!! */ - virtual void onTextChanged( int, const QStringList& ); + virtual void onTextChanged( int, const QStringList& ); private: typedef QMap Filters; @@ -160,4 +167,4 @@ private: Selection_Mode myDefSelectionMode, myOldSelectionMode; }; -#endif +#endif // SMESHGUI_SELECTIONOP_H