2009-02-17 10:27:49 +05:00
|
|
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
2004-06-18 14:34:31 +06:00
|
|
|
//
|
2009-02-17 10:27:49 +05:00
|
|
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
|
|
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
2004-06-18 14:34:31 +06:00
|
|
|
//
|
2009-02-17 10:27:49 +05:00
|
|
|
// 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.
|
2004-06-18 14:34:31 +06:00
|
|
|
//
|
2009-02-17 10:27:49 +05:00
|
|
|
// 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.
|
2004-06-18 14:34:31 +06:00
|
|
|
//
|
2009-02-17 10:27:49 +05:00
|
|
|
// 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
|
|
|
|
//
|
|
|
|
// SMESH SMESHGUI : GUI for SMESH component
|
|
|
|
// File : SMESHGUI_Hypotheses.h
|
|
|
|
// Author : Julia DOROVSKIKH, Open CASCADE S.A.S.
|
|
|
|
//
|
|
|
|
#ifndef SMESHGUI_HYPOTHESES_H
|
|
|
|
#define SMESHGUI_HYPOTHESES_H
|
2004-06-18 14:34:31 +06:00
|
|
|
|
2009-02-17 10:27:49 +05:00
|
|
|
// SMESH includes
|
2008-03-07 12:47:05 +05:00
|
|
|
#include "SMESH_SMESHGUI.hxx"
|
2009-09-04 14:21:40 +06:00
|
|
|
#include "SMESHGUI_HypothesesUtils.h"
|
2008-03-07 12:47:05 +05:00
|
|
|
|
2009-02-17 10:27:49 +05:00
|
|
|
// Qt includes
|
|
|
|
#include <QtxDialog.h>
|
|
|
|
#include <QVariant>
|
|
|
|
|
|
|
|
// IDL includes
|
2004-12-01 15:48:31 +05:00
|
|
|
#include <SALOMEconfig.h>
|
2004-06-18 14:34:31 +06:00
|
|
|
#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
|
|
|
|
|
2009-02-17 10:27:49 +05:00
|
|
|
class QEventLoop;
|
2004-06-18 14:34:31 +06:00
|
|
|
|
2005-08-23 14:52:20 +06:00
|
|
|
/*!
|
|
|
|
* \brief Auxiliary class for creation of hypotheses
|
|
|
|
*/
|
2008-03-07 12:47:05 +05:00
|
|
|
class SMESHGUI_EXPORT SMESHGUI_GenericHypothesisCreator : public QObject
|
2004-06-18 14:34:31 +06:00
|
|
|
{
|
2005-12-28 14:17:39 +05:00
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
2009-02-17 10:27:49 +05:00
|
|
|
SMESHGUI_GenericHypothesisCreator( const QString& );
|
2005-12-28 14:17:39 +05:00
|
|
|
virtual ~SMESHGUI_GenericHypothesisCreator();
|
|
|
|
|
2009-02-17 10:27:49 +05:00
|
|
|
void create( SMESH::SMESH_Hypothesis_ptr,
|
2009-09-04 14:21:40 +06:00
|
|
|
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& );
|
2009-02-17 10:27:49 +05:00
|
|
|
void setInitParamsHypothesis(SMESH::SMESH_Hypothesis_ptr);
|
2008-03-07 12:47:05 +05:00
|
|
|
|
2009-02-17 10:27:49 +05:00
|
|
|
virtual bool checkParams( QString& ) const;
|
|
|
|
virtual void onReject();
|
|
|
|
virtual QString helpPage() const;
|
2005-12-28 14:17:39 +05:00
|
|
|
|
2009-02-17 10:27:49 +05:00
|
|
|
QString hypType() const;
|
|
|
|
QString hypName() const;
|
|
|
|
bool isCreation() const;
|
2009-07-08 16:34:09 +06:00
|
|
|
|
|
|
|
QString getShapeEntry() const { return myShapeEntry; }
|
|
|
|
void setShapeEntry( const QString& theEntry );
|
2005-12-28 14:17:39 +05:00
|
|
|
|
2009-09-15 19:00:06 +06:00
|
|
|
QString getMainShapeEntry() const { return myMainShapeEntry; }
|
|
|
|
void setMainShapeEntry( const QString& theEntry ) { myMainShapeEntry = theEntry; }
|
|
|
|
|
2009-09-04 14:21:40 +06:00
|
|
|
signals:
|
|
|
|
void finished( int );
|
|
|
|
|
2005-12-28 14:17:39 +05:00
|
|
|
protected:
|
2009-02-17 10:27:49 +05:00
|
|
|
struct StdParam
|
2005-12-28 14:17:39 +05:00
|
|
|
{
|
|
|
|
QString myName;
|
|
|
|
QVariant myValue;
|
2009-02-17 10:27:49 +05:00
|
|
|
bool isVariable;
|
|
|
|
StdParam(){
|
|
|
|
isVariable = false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef QList<StdParam> ListOfStdParams;
|
|
|
|
typedef QList<QWidget*> ListOfWidgets;
|
|
|
|
|
|
|
|
SMESH::SMESH_Hypothesis_var hypothesis() const;
|
|
|
|
SMESH::SMESH_Hypothesis_var initParamsHypothesis(const bool strict=false) const;
|
|
|
|
bool hasInitParamsHypothesis() const;
|
|
|
|
const ListOfWidgets& widgets() const;
|
|
|
|
ListOfWidgets& changeWidgets();
|
|
|
|
QtxDialog* dlg() const;
|
|
|
|
|
|
|
|
virtual QFrame* buildFrame() = 0;
|
|
|
|
QFrame* buildStdFrame();
|
|
|
|
virtual void retrieveParams() const = 0;
|
|
|
|
virtual QString storeParams() const = 0;
|
|
|
|
virtual bool stdParams( ListOfStdParams& ) const;
|
|
|
|
bool getStdParamFromDlg( ListOfStdParams& ) const;
|
|
|
|
virtual QStringList getVariablesFromDlg() const;
|
|
|
|
static QString stdParamValues( const ListOfStdParams& );
|
|
|
|
virtual void attuneStdWidget( QWidget*, const int ) const;
|
|
|
|
virtual QWidget* getCustomWidget( const StdParam&,
|
|
|
|
QWidget*, const int ) const;
|
|
|
|
virtual bool getParamFromCustomWidget( StdParam&, QWidget* ) const;
|
|
|
|
virtual void valueChanged( QWidget* );
|
|
|
|
virtual QString caption() const;
|
|
|
|
virtual QPixmap icon() const;
|
|
|
|
virtual QString type() const;
|
2005-12-28 14:17:39 +05:00
|
|
|
|
|
|
|
protected slots:
|
2009-02-17 10:27:49 +05:00
|
|
|
virtual void onValueChanged();
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
virtual void onDialogFinished( int );
|
2005-12-28 14:17:39 +05:00
|
|
|
|
|
|
|
private:
|
2009-09-04 14:21:40 +06:00
|
|
|
void editHypothesis( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*, QObject* obj, const QString& );
|
2005-12-28 14:17:39 +05:00
|
|
|
|
|
|
|
private:
|
2006-02-07 20:01:11 +05:00
|
|
|
SMESH::SMESH_Hypothesis_var myHypo, myInitParamsHypo;
|
2008-03-07 12:47:05 +05:00
|
|
|
QString myHypName;
|
2005-12-28 14:17:39 +05:00
|
|
|
QString myHypType;
|
|
|
|
ListOfWidgets myParamWidgets;
|
|
|
|
bool myIsCreate;
|
2008-03-07 12:47:05 +05:00
|
|
|
QtxDialog* myDlg;
|
2009-07-08 16:34:09 +06:00
|
|
|
QString myShapeEntry;
|
2009-09-15 19:00:06 +06:00
|
|
|
QString myMainShapeEntry;
|
2005-12-28 14:17:39 +05:00
|
|
|
};
|
|
|
|
|
|
|
|
class SMESHGUI_HypothesisDlg : public QtxDialog
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreator*, QWidget* );
|
|
|
|
virtual ~SMESHGUI_HypothesisDlg();
|
|
|
|
|
2009-09-04 14:21:40 +06:00
|
|
|
void setHIcon( const QPixmap& );
|
|
|
|
void setCustomFrame( QFrame* );
|
|
|
|
void setType( const QString& );
|
2005-12-28 14:17:39 +05:00
|
|
|
|
|
|
|
protected slots:
|
2009-09-04 14:21:40 +06:00
|
|
|
virtual void accept();
|
|
|
|
virtual void reject();
|
|
|
|
void onHelp();
|
2005-12-28 14:17:39 +05:00
|
|
|
|
|
|
|
private:
|
2009-09-04 14:21:40 +06:00
|
|
|
SMESHGUI_GenericHypothesisCreator* myCreator;
|
|
|
|
QLabel *myIconLabel, *myTypeLabel;
|
|
|
|
QString myHelpFileName;
|
2004-06-18 14:34:31 +06:00
|
|
|
};
|
|
|
|
|
2005-08-23 14:52:20 +06:00
|
|
|
/*!
|
|
|
|
* \brief Class containing information about hypothesis
|
|
|
|
*/
|
2004-06-18 14:34:31 +06:00
|
|
|
class HypothesisData
|
|
|
|
{
|
2009-02-17 10:27:49 +05:00
|
|
|
public:
|
|
|
|
HypothesisData( const QString&, const QString&, const QString&,
|
|
|
|
const QString&, const QString&, const QString&,
|
|
|
|
const QList<int>&, const bool,
|
|
|
|
const QStringList&, const QStringList&,
|
|
|
|
const QStringList&, const QStringList&,
|
|
|
|
const bool=true, const bool supportSub=false );
|
|
|
|
|
|
|
|
QString TypeName; //!< hypothesis type name
|
|
|
|
QString PluginName; //!< plugin name
|
|
|
|
QString ServerLibName; //!< server library name
|
|
|
|
QString ClientLibName; //!< client library name
|
|
|
|
QString Label; //!< label
|
|
|
|
QString IconId; //!< icon identifier
|
|
|
|
QList<int> Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration)
|
|
|
|
bool IsAux; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
|
|
|
|
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 OptionalHypos;//!< list of optional hypotheses
|
|
|
|
QStringList InputTypes; //!< list of element types required as a prerequisite
|
|
|
|
QStringList OutputTypes; //!< list of types of generated elements
|
2004-06-18 14:34:31 +06:00
|
|
|
};
|
|
|
|
|
2005-11-01 15:11:11 +05:00
|
|
|
/*!
|
|
|
|
* \brief Class containing set of hypotheses
|
|
|
|
*
|
|
|
|
* Actually it contains list of hypo types
|
|
|
|
*/
|
|
|
|
class HypothesesSet
|
|
|
|
{
|
2009-02-17 10:27:49 +05:00
|
|
|
public:
|
|
|
|
HypothesesSet( const QString& );
|
|
|
|
HypothesesSet( const QString&, const QStringList&, const QStringList& );
|
|
|
|
|
2009-09-04 14:21:40 +06:00
|
|
|
QString name() const;
|
|
|
|
void set( bool, const QStringList& );
|
|
|
|
int count( bool ) 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:
|
|
|
|
bool myIsAlgo;
|
|
|
|
QString myHypoSetName;
|
|
|
|
QStringList myHypoList, myAlgoList;
|
|
|
|
int myIndex;
|
2005-11-01 15:11:11 +05:00
|
|
|
};
|
2009-02-17 10:27:49 +05:00
|
|
|
|
|
|
|
#endif // SMESHGUI_HYPOTHESES_H
|