X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Hypotheses.h;h=fcadee8ddaf1942e4d7bdc0b31c393cc0e5c007e;hp=6cf6c524dcd9e78bd7aff30f014367703606ea5a;hb=e26ffcc005221f12d4ff91e074c4c8464ca044e4;hpb=0635c9fc80f67d1e5dc0e94ec85f487286a92070 diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.h b/src/SMESHGUI/SMESHGUI_Hypotheses.h index 6cf6c524d..fcadee8dd 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.h +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.h @@ -1,24 +1,25 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 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 +// 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 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. +// 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 +// 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 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // SMESH SMESHGUI : GUI for SMESH component // File : SMESHGUI_Hypotheses.h // Author : Julia DOROVSKIKH, Open CASCADE S.A.S. @@ -28,6 +29,7 @@ // SMESH includes #include "SMESH_SMESHGUI.hxx" +#include "SMESHGUI_HypothesesUtils.h" // Qt includes #include @@ -51,10 +53,9 @@ public: virtual ~SMESHGUI_GenericHypothesisCreator(); void create( SMESH::SMESH_Hypothesis_ptr, - const QString&, QWidget* ); - void create( bool, const QString&, QWidget* ); - void edit( SMESH::SMESH_Hypothesis_ptr, - const QString&, QWidget* ); + const QString&, QWidget*, QObject*, const QString& ); + void create( bool, const QString&, QWidget*, QObject*, const QString& ); + void edit( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*, QObject*, const QString& ); void setInitParamsHypothesis(SMESH::SMESH_Hypothesis_ptr); virtual bool checkParams( QString& ) const; @@ -64,16 +65,30 @@ public: QString hypType() const; QString hypName() const; bool isCreation() const; + + QString getShapeEntry() const { return myShapeEntry; } + void setShapeEntry( const QString& theEntry ); + + QString getMainShapeEntry() const { return myMainShapeEntry; } + void setMainShapeEntry( const QString& theEntry ) { myMainShapeEntry = theEntry; } + +signals: + void finished( int ); protected: struct StdParam { - QString myName; - QVariant myValue; - bool isVariable; - StdParam(){ + QString myName; + QVariant myValue; + bool isVariable; + QString myText; + QByteArray myTextAsBytes; + StdParam() { isVariable = false; } + const char* text() const { + ((QByteArray&) myTextAsBytes) = myText.toLatin1(); return myTextAsBytes.constData(); + } }; typedef QList ListOfStdParams; @@ -84,7 +99,9 @@ protected: bool hasInitParamsHypothesis() const; const ListOfWidgets& widgets() const; ListOfWidgets& changeWidgets(); + QLabel* getLabel(int i) const; QtxDialog* dlg() const; + QString getVariableName(const char* methodName) const; virtual QFrame* buildFrame() = 0; QFrame* buildStdFrame(); @@ -96,7 +113,7 @@ protected: static QString stdParamValues( const ListOfStdParams& ); virtual void attuneStdWidget( QWidget*, const int ) const; virtual QWidget* getCustomWidget( const StdParam&, - QWidget*, const int ) const; + QWidget*, const int ) const; virtual bool getParamFromCustomWidget( StdParam&, QWidget* ) const; virtual void valueChanged( QWidget* ); virtual QString caption() const; @@ -110,17 +127,19 @@ private slots: virtual void onDialogFinished( int ); private: - bool editHypothesis( SMESH::SMESH_Hypothesis_ptr, - const QString&, QWidget* ); + void editHypothesis( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*, QObject* obj, const QString& ); private: SMESH::SMESH_Hypothesis_var myHypo, myInitParamsHypo; + bool myToDeleteInitParamsHypo; QString myHypName; QString myHypType; ListOfWidgets myParamWidgets; + ListOfWidgets myParamLabels; bool myIsCreate; QtxDialog* myDlg; - QEventLoop* myEventLoop; + QString myShapeEntry; + QString myMainShapeEntry; }; class SMESHGUI_HypothesisDlg : public QtxDialog @@ -131,20 +150,19 @@ public: SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreator*, QWidget* ); virtual ~SMESHGUI_HypothesisDlg(); - void setHIcon( const QPixmap& ); - void setCustomFrame( QFrame* ); - void setType( const QString& ); + void setHIcon( const QPixmap& ); + void setCustomFrame( QFrame* ); + void setType( const QString& ); protected slots: - virtual void accept(); - virtual void reject(); - void onHelp(); + virtual void accept(); + virtual void reject(); + void onHelp(); private: - SMESHGUI_GenericHypothesisCreator* myCreator; - QLabel* myIconLabel; - QLabel* myTypeLabel; - QString myHelpFileName; + SMESHGUI_GenericHypothesisCreator* myCreator; + QLabel *myIconLabel, *myTypeLabel; + QString myHelpFileName; }; /*! @@ -155,10 +173,10 @@ class HypothesisData public: HypothesisData( const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, - const QList&, const bool, + const QString&, const QList&, const bool, const QStringList&, const QStringList&, const QStringList&, const QStringList&, - const bool=true, const bool supportSub=false ); + const bool=true, const bool supportSub=false ); QString TypeName; //!< hypothesis type name QString PluginName; //!< plugin name @@ -166,13 +184,15 @@ public: QString ClientLibName; //!< client library name QString Label; //!< label QString IconId; //!< icon identifier + QString Context; //!< ["GLOBAL","LOCAL","ANY"(default)] QList Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration) - bool IsAux; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise + bool IsAuxOrNeedHyp; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise + //!< TRUE if given algorithm can't work w/o hypotheses bool IsNeedGeometry; //!< TRUE if the algorithm works with shapes only, FALSE otherwise bool IsSupportSubmeshes; //!< TRUE if the algo building all-dim elems supports submeshes // for algorithm only: dependencies algo <-> algo and algo -> hypos - QStringList NeededHypos; //!< list of obligatory hypotheses + QStringList BasicHypos; //!< list of basic hypotheses QStringList OptionalHypos;//!< list of optional hypotheses QStringList InputTypes; //!< list of element types required as a prerequisite QStringList OutputTypes; //!< list of types of generated elements @@ -189,8 +209,32 @@ public: HypothesesSet( const QString& ); HypothesesSet( const QString&, const QStringList&, const QStringList& ); - QString HypoSetName; - QStringList HypoList, AlgoList; + QString name() const; + void set( bool, const QStringList& ); + int count( bool ) const; + + void setIsCustom( bool ); + bool getIsCustom() const; + int maxDim() const; + + bool isAlgo() const; + + //this method sets internal index to -1, thus before any data access it is necessary to call next() + void init( bool ); + + bool more() const; + void next(); + QString current() const; + +private: + QStringList* list(bool) const; + QStringList* list() const; + +private: + QString myHypoSetName; + QStringList myHypoList, myAlgoList; + bool myIsAlgo, myIsCustom; + int myIndex; }; #endif // SMESHGUI_HYPOTHESES_H