*** empty log message ***

This commit is contained in:
vsr 2007-10-18 14:47:58 +00:00
parent b6cf20bd37
commit f70f07e7db
25 changed files with 1407 additions and 1548 deletions

View File

@ -5,8 +5,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>217</width>
<height>120</height>
<width>213</width>
<height>116</height>
</rect>
</property>
<property name="windowTitle" >
@ -26,11 +26,14 @@
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>11</number>
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item rowspan="4" row="0" column="0" >
<widget class="QTreeWidget" name="ListView1" />
</item>
<item row="3" column="1" >
<spacer>
<property name="orientation" >
@ -41,14 +44,21 @@
</property>
<property name="sizeHint" >
<size>
<width>0</width>
<height>23</height>
<width>16</width>
<height>120</height>
</size>
</property>
</spacer>
</item>
<item rowspan="4" row="0" column="0" >
<widget class="QListView" name="ListView1" />
<item row="2" column="1" >
<widget class="QPushButton" name="PushButton1" >
<property name="text" >
<string/>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QSpinBox" name="SpinBox1" />
</item>
<item row="0" column="1" >
<widget class="QLabel" name="TextLabel1" >
@ -60,16 +70,6 @@
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QSpinBox" name="SpinBox1" />
</item>
<item row="2" column="1" >
<widget class="QPushButton" name="PushButton1" >
<property name="text" >
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@ -77,6 +77,11 @@
</widget>
<layoutdefault spacing="6" margin="11" />
<pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
<tabstops>
<tabstop>ListView1</tabstop>
<tabstop>SpinBox1</tabstop>
<tabstop>PushButton1</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View File

@ -74,7 +74,7 @@ GEOMBase_Skeleton::GEOMBase_Skeleton( GeometryGUI* theGeometryGUI, QWidget* pare
myRBGroup->addButton( myMainFrame->RadioButton1, 0 );
myRBGroup->addButton( myMainFrame->RadioButton2, 1 );
myRBGroup->addButton( myMainFrame->RadioButton3, 2 );
myRBGroup->addButton( myMainFrame->RadioButton4, 4 );
myRBGroup->addButton( myMainFrame->RadioButton4, 3 );
connect( myRBGroup, SIGNAL( buttonClicked( int ) ), this, SIGNAL( constructorsClicked( int ) ) );

View File

@ -1,31 +1,28 @@
# GEOM GEOMBASE :
# GEOM GEOMBASE :
#
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
# 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 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.
# 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
#
# File : Makefile.am
# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com)
# Package : GEOMBase
#
#
# File : Makefile.in
# Author : Damien COQUERET (OCC)
# Modified by : Alexander BORODIN (OCN) - autotools usage
# Module : GEOM
# $Header:
include $(top_srcdir)/adm_local/unix/make_common_starter.am
@ -33,26 +30,26 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
lib_LTLIBRARIES = libGEOMBase.la
# header files
salomeinclude_HEADERS = \
GEOMBase.h \
GEOMBase_Skeleton.h \
GEOMBase_Helper.h \
GEOM_Operation.h \
salomeinclude_HEADERS = \
GEOMBase.h \
GEOMBase_Skeleton.h \
GEOMBase_Helper.h \
GEOM_Operation.h \
GEOM_GEOMBase.hxx
dist_libGEOMBase_la_SOURCES = \
GEOMBase.cxx \
GEOMBase_Skeleton.cxx \
GEOMBase_aParameterDlg.cxx \
GEOMBase_Helper.cxx \
dist_libGEOMBase_la_SOURCES = \
GEOMBase.cxx \
GEOMBase_Skeleton.cxx \
GEOMBase_aParameterDlg.cxx \
GEOMBase_Helper.cxx \
GEOM_Operation.cxx
MOC_FILES = \
GEOMBase_Skeleton_moc.cxx \
MOC_FILES = \
GEOMBase_Skeleton_moc.cxx \
GEOMBase_aParameterDlg_moc.cxx
nodist_libGEOMBase_la_SOURCES= \
$(MOC_FILES)
nodist_libGEOMBase_la_SOURCES = \
$(MOC_FILES)
#LIB_CLIENT_IDL = SALOME_Exception.idl \
# SALOMEDS.idl \
@ -65,29 +62,29 @@ nodist_libGEOMBase_la_SOURCES= \
# additionnal information to compil and link file
libGEOMBase_la_CPPFLAGS = \
$(QT_INCLUDES) \
$(VTK_INCLUDES) \
$(CAS_CPPFLAGS) \
$(PYTHON_INCLUDES) \
$(BOOST_CPPFLAGS) \
$(KERNEL_CXXFLAGS) \
$(GUI_CXXFLAGS) \
$(CORBA_CXXFLAGS) \
$(CORBA_INCLUDES) \
-I$(srcdir)/../OBJECT \
-I$(srcdir)/../GEOMClient \
-I$(srcdir)/../GEOMImpl \
-I$(srcdir)/../GEOMGUI \
-I$(srcdir)/../DlgRef \
-I$(top_builddir)/src/DlgRef \
-I$(top_builddir)/idl \
libGEOMBase_la_CPPFLAGS = \
$(QT_INCLUDES) \
$(VTK_INCLUDES) \
$(CAS_CPPFLAGS) \
$(PYTHON_INCLUDES) \
$(BOOST_CPPFLAGS) \
$(KERNEL_CXXFLAGS) \
$(GUI_CXXFLAGS) \
$(CORBA_CXXFLAGS) \
$(CORBA_INCLUDES) \
-I$(srcdir)/../OBJECT \
-I$(srcdir)/../GEOMClient \
-I$(srcdir)/../GEOMImpl \
-I$(srcdir)/../GEOMGUI \
-I$(srcdir)/../DlgRef \
-I$(top_builddir)/src/DlgRef \
-I$(top_builddir)/idl \
-I$(top_builddir)/salome_adm/unix
libGEOMBase_la_LDFLAGS = \
../../idl/libSalomeIDLGEOM.la \
../GEOMGUI/libGEOM.la \
../DlgRef/libDlgRef.la \
$(KERNEL_LDFLAGS) -lOpUtil \
libGEOMBase_la_LDFLAGS = \
../../idl/libSalomeIDLGEOM.la \
../GEOMGUI/libGEOM.la \
../DlgRef/libDlgRef.la \
$(KERNEL_LDFLAGS) -lOpUtil \
$(GUI_LDFLAGS) -lsuit -lOCCViewer -lVTKViewer -lSVTK -lSalomePrs -lSalomeApp -lCAM \
$(CAS_LDPATH) -lTKPrim

View File

@ -1,31 +1,28 @@
# GEOM GEOMFiltersSelection : filter selector for the viewer
# GEOM GEOMFiltersSelection : filter selector for the viewer
#
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
# 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 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.
# 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
#
# File : Makefile.am
# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com)
# Package : GEOMFiltersSelection
#
#
# File : Makefile.in
# Author : Patrick GOLDBRONN (CEA)
# Modified by : Alexander BORODIN (OCN) - autotools usage
# Module : GEOM
# $Header$
include $(top_srcdir)/adm_local/unix/make_common_starter.am
@ -33,43 +30,43 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
lib_LTLIBRARIES = libGEOMFiltersSelection.la
# header files
salomeinclude_HEADERS = \
GEOM_SelectionFilter.h \
GEOM_EdgeFilter.h \
GEOM_FaceFilter.h \
GEOM_TypeFilter.h \
GEOM_PreviewFilter.h \
GEOM_LogicalFilter.h \
salomeinclude_HEADERS = \
GEOM_SelectionFilter.h \
GEOM_EdgeFilter.h \
GEOM_FaceFilter.h \
GEOM_TypeFilter.h \
GEOM_PreviewFilter.h \
GEOM_LogicalFilter.h \
GEOM_OCCFilter.h
# Sources
dist_libGEOMFiltersSelection_la_SOURCES = \
GEOM_SelectionFilter.cxx \
GEOM_EdgeFilter.cxx \
GEOM_FaceFilter.cxx \
GEOM_TypeFilter.cxx \
GEOM_PreviewFilter.cxx \
GEOM_LogicalFilter.cxx \
GEOM_SelectionFilter.cxx \
GEOM_EdgeFilter.cxx \
GEOM_FaceFilter.cxx \
GEOM_TypeFilter.cxx \
GEOM_PreviewFilter.cxx \
GEOM_LogicalFilter.cxx \
GEOM_OCCFilter.cxx
# LIB_CLIENT_IDL= GEOM_Gen.idl SALOMEDS.idl SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl
# additionnal information to compil and link file
libGEOMFiltersSelection_la_CPPFLAGS = \
$(QT_INCLUDES) \
$(CAS_CPPFLAGS) \
$(BOOST_CPPFLAGS) \
$(GUI_CXXFLAGS) \
$(KERNEL_CXXFLAGS) \
$(CORBA_CXXFLAGS) \
$(CORBA_INCLUDES) \
-I$(srcdir)/../GEOMClient \
-I$(top_builddir)/idl \
libGEOMFiltersSelection_la_CPPFLAGS = \
$(QT_INCLUDES) \
$(CAS_CPPFLAGS) \
$(BOOST_CPPFLAGS) \
$(GUI_CXXFLAGS) \
$(KERNEL_CXXFLAGS) \
$(CORBA_CXXFLAGS) \
$(CORBA_INCLUDES) \
-I$(srcdir)/../GEOMClient \
-I$(top_builddir)/idl \
-I$(top_builddir)/salome_adm/unix
libGEOMFiltersSelection_la_LDFLAGS = \
../../idl/libSalomeIDLGEOM.la \
../GEOMClient/libGEOMClient.la \
$(GUI_LDFLAGS) -lsuit -lSalomeApp -lSalomeSession \
../../idl/libSalomeIDLGEOM.la \
../GEOMClient/libGEOMClient.la \
$(GUI_LDFLAGS) -lsuit -lSalomeApp -lSalomeSession \
$(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA -lSalomeContainer -lTOOLSDS

View File

@ -1,31 +1,28 @@
# GEOM GEOMGUI : GUI for Geometry component
# GEOM GEOMGUI : GUI for Geometry component
#
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
# 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 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.
# 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
#
# File : Makefile.am
# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com)
# Package : GEOMGUI
#
#
# File : Makefile.in
# Author : Marc Tajchman (CEA)
# Modified by : Alexander BORODIN (OCN) - autotools usage
# Module : GEOM
# $Header$
include $(top_srcdir)/adm_local/unix/make_common_starter.am
@ -33,35 +30,35 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
lib_LTLIBRARIES = libGEOM.la
# header files
salomeinclude_HEADERS = \
GeometryGUI.h \
GEOMGUI.h \
GEOM_Displayer.h \
GEOMGUI_OCCSelector.h \
GEOMGUI_Selection.h \
GeometryGUI_Swig.hxx \
GeometryGUI_Swig.i \
salomeinclude_HEADERS = \
GeometryGUI.h \
GEOMGUI.h \
GEOM_Displayer.h \
GEOMGUI_OCCSelector.h \
GEOMGUI_Selection.h \
GeometryGUI_Swig.hxx \
GeometryGUI_Swig.i \
GEOM_GEOMGUI.hxx
dist_libGEOM_la_SOURCES = \
GeometryGUI.cxx \
GEOMGUI.cxx \
GEOM_Displayer.cxx \
GEOMGUI_OCCSelector.cxx \
GEOMGUI_Selection.cxx \
dist_libGEOM_la_SOURCES = \
GeometryGUI.cxx \
GEOMGUI.cxx \
GEOM_Displayer.cxx \
GEOMGUI_OCCSelector.cxx \
GEOMGUI_Selection.cxx \
GeometryGUI_Swig.cxx
MOC_FILES = \
GeometryGUI_moc.cxx
nodist_libGEOM_la_SOURCES= \
nodist_libGEOM_la_SOURCES = \
$(MOC_FILES)
# resources files
nodist_salomeres_DATA= \
GEOM_images.qm \
GEOM_msg_en.qm \
nodist_salomeres_DATA = \
GEOM_images.qm \
GEOM_msg_en.qm \
GEOM_msg_fr.qm
#LIB_CLIENT_IDL = SALOME_Exception.idl \
@ -75,28 +72,28 @@ nodist_salomeres_DATA= \
# additionnal information to compil and link file
libGEOM_la_CPPFLAGS = \
$(QT_INCLUDES) \
$(VTK_INCLUDES) \
$(CAS_CPPFLAGS) \
$(PYTHON_INCLUDES) \
$(BOOST_CPPFLAGS) \
$(KERNEL_CXXFLAGS) \
$(GUI_CXXFLAGS) \
$(CORBA_CXXFLAGS) \
$(CORBA_INCLUDES) \
-I$(srcdir)/../OBJECT \
-I$(srcdir)/../GEOMFiltersSelection \
-I$(srcdir)/../GEOMClient \
-I$(srcdir)/../GEOMImpl \
-I$(top_builddir)/idl \
libGEOM_la_CPPFLAGS = \
$(QT_INCLUDES) \
$(VTK_INCLUDES) \
$(CAS_CPPFLAGS) \
$(PYTHON_INCLUDES) \
$(BOOST_CPPFLAGS) \
$(KERNEL_CXXFLAGS) \
$(GUI_CXXFLAGS) \
$(CORBA_CXXFLAGS) \
$(CORBA_INCLUDES) \
-I$(srcdir)/../OBJECT \
-I$(srcdir)/../GEOMFiltersSelection \
-I$(srcdir)/../GEOMClient \
-I$(srcdir)/../GEOMImpl \
-I$(top_builddir)/idl \
-I$(top_builddir)/salome_adm/unix
libGEOM_la_LDFLAGS = \
../GEOMFiltersSelection/libGEOMFiltersSelection.la \
../GEOMClient/libGEOMClient.la \
../OBJECT/libGEOMObject.la \
$(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA \
libGEOM_la_LDFLAGS = \
../GEOMFiltersSelection/libGEOMFiltersSelection.la \
../GEOMClient/libGEOMClient.la \
../OBJECT/libGEOMObject.la \
$(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA \
$(GUI_LDFLAGS) -lOCCViewer -lVTKViewer -lCAM -lSOCC -lSVTK -lEvent
# -lSalomeApp
# -lToolsGUI

View File

@ -1,31 +1,28 @@
# GEOM OPERATIONGUI :
# GEOM OPERATIONGUI :
#
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
# 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 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.
# 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
#
# File : Makefile.am
# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com)
# Package : OperationGUI
#
#
# File : Makefile.in
# Author : Damien COQUERET (OCC)
# Modified by : Alexander BORODIN (OCN) - autotools usage
# Module : GEOM
# $Header:
include $(top_srcdir)/adm_local/unix/make_common_starter.am
@ -35,24 +32,32 @@ salomeinclude_HEADERS =
# Libraries targets
lib_LTLIBRARIES = libOperationGUI.la
dist_libOperationGUI_la_SOURCES = \
OperationGUI.cxx \
OperationGUI_ArchimedeDlg.cxx \
OperationGUI_PartitionDlg.cxx \
OperationGUI_MaterialDlg.cxx \
OperationGUI_FilletDlg.cxx \
OperationGUI_ChamferDlg.cxx \
dist_libOperationGUI_la_SOURCES = \
OperationGUI.h \
OperationGUI_ArchimedeDlg.h \
OperationGUI_PartitionDlg.h \
OperationGUI_MaterialDlg.h \
OperationGUI_FilletDlg.h \
OperationGUI_ChamferDlg.h \
OperationGUI_ClippingDlg.h \
\
OperationGUI.cxx \
OperationGUI_ArchimedeDlg.cxx \
OperationGUI_PartitionDlg.cxx \
OperationGUI_MaterialDlg.cxx \
OperationGUI_FilletDlg.cxx \
OperationGUI_ChamferDlg.cxx \
OperationGUI_ClippingDlg.cxx
MOC_FILES = \
OperationGUI_ArchimedeDlg_moc.cxx \
OperationGUI_PartitionDlg_moc.cxx \
OperationGUI_MaterialDlg_moc.cxx \
OperationGUI_FilletDlg_moc.cxx \
OperationGUI_ChamferDlg_moc.cxx \
OperationGUI_ArchimedeDlg_moc.cxx \
OperationGUI_PartitionDlg_moc.cxx \
OperationGUI_MaterialDlg_moc.cxx \
OperationGUI_FilletDlg_moc.cxx \
OperationGUI_ChamferDlg_moc.cxx \
OperationGUI_ClippingDlg_moc.cxx
nodist_libOperationGUI_la_SOURCES= \
nodist_libOperationGUI_la_SOURCES = \
$(MOC_FILES)
#LIB_CLIENT_IDL = SALOME_GenericObj.idl SALOME_Component.idl SALOME_Exception.idl
@ -61,25 +66,26 @@ nodist_libOperationGUI_la_SOURCES= \
# additionnal information to compil and link file
libOperationGUI_la_CPPFLAGS = \
$(QT_INCLUDES) \
$(VTK_INCLUDES) \
$(CAS_CPPFLAGS) \
$(PYTHON_INCLUDES) \
$(BOOST_CPPFLAGS) \
$(KERNEL_CXXFLAGS) \
$(GUI_CXXFLAGS) \
$(CORBA_CXXFLAGS) \
$(CORBA_INCLUDES) \
-I$(srcdir)/../GEOMGUI \
-I$(srcdir)/../DlgRef \
-I$(srcdir)/../GEOMBase \
-I$(srcdir)/../OBJECT \
-I$(srcdir)/../GEOMClient \
-I$(srcdir)/../GEOMImpl \
-I$(top_builddir)/idl \
libOperationGUI_la_CPPFLAGS = \
$(QT_INCLUDES) \
$(VTK_INCLUDES) \
$(CAS_CPPFLAGS) \
$(PYTHON_INCLUDES) \
$(BOOST_CPPFLAGS) \
$(KERNEL_CXXFLAGS) \
$(GUI_CXXFLAGS) \
$(CORBA_CXXFLAGS) \
$(CORBA_INCLUDES) \
-I$(srcdir)/../GEOMGUI \
-I$(srcdir)/../DlgRef \
-I$(srcdir)/../GEOMBase \
-I$(srcdir)/../OBJECT \
-I$(srcdir)/../GEOMClient \
-I$(srcdir)/../GEOMImpl \
-I$(top_builddir)/src/DlgRef \
-I$(top_builddir)/idl \
-I$(top_builddir)/salome_adm/unix
libOperationGUI_la_LDFLAGS = \
../GEOMBase/libGEOMBase.la \
libOperationGUI_la_LDFLAGS = \
../GEOMBase/libGEOMBase.la \
$(CAS_LDPATH) -lTKFillet

View File

@ -1,36 +1,35 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI.cxx
// Author : Damien COQUERET, Open CASCADE S.A.S.
//
//
// File : OperationGUI.cxx
// Author : Damien COQUERET
// Module : GEOM
// $Header$
#include "OperationGUI.h"
#include "SUIT_Session.h"
#include "SUIT_Desktop.h"
#include "SalomeApp_Application.h"
#include <GeometryGUI.h>
#include <SUIT_Session.h>
#include <SUIT_Desktop.h>
#include <SalomeApp_Application.h>
#include <TopTools_MapOfShape.hxx>
#include <TopExp_Explorer.hxx>
@ -40,16 +39,14 @@
#include "OperationGUI_ArchimedeDlg.h" // Method ARCHIMEDE
#include "OperationGUI_FilletDlg.h" // Method FILLET
#include "OperationGUI_ChamferDlg.h" // Method CHAMFER
#include "OperationGUI_ClippingDlg.h"
using namespace std;
#include "OperationGUI_ClippingDlg.h" // Clipping dialog box
//=======================================================================
// function : OperationGUI()
// purpose : Constructor
//=======================================================================
OperationGUI::OperationGUI(GeometryGUI* parent) : GEOMGUI(parent)
OperationGUI::OperationGUI( GeometryGUI* parent ) :
GEOMGUI( parent )
{
}
@ -69,19 +66,18 @@ OperationGUI::~OperationGUI()
bool OperationGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
{
SalomeApp_Application* app = getGeometryGUI()->getApp();
if (!app) return false;
if ( !app ) return false;
getGeometryGUI()->EmitSignalDeactivateDialog();
switch (theCommandID)
{
case 503: (new OperationGUI_PartitionDlg(getGeometryGUI(), parent))->show(); break;
case 504: (new OperationGUI_ArchimedeDlg(getGeometryGUI(), parent))->show(); break;
case 505: (new OperationGUI_FilletDlg (getGeometryGUI(), parent))->show(); break;
case 506: (new OperationGUI_ChamferDlg (getGeometryGUI(), parent))->show(); break;
case 507: (new OperationGUI_ClippingDlg (getGeometryGUI(), parent))->show(); break;
switch ( theCommandID ) {
case 503: ( new OperationGUI_PartitionDlg( getGeometryGUI(), parent ) )->show(); break;
case 504: ( new OperationGUI_ArchimedeDlg( getGeometryGUI(), parent ) )->show(); break;
case 505: ( new OperationGUI_FilletDlg ( getGeometryGUI(), parent ) )->show(); break;
case 506: ( new OperationGUI_ChamferDlg ( getGeometryGUI(), parent ) )->show(); break;
case 507: ( new OperationGUI_ClippingDlg ( getGeometryGUI(), parent ) )->show(); break;
default:
app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) );
}
return true;
@ -93,10 +89,10 @@ bool OperationGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
extern "C"
{
#ifdef WNT
__declspec( dllexport )
__declspec( dllexport )
#endif
GEOMGUI* GetLibGUI(GeometryGUI* parent)
GEOMGUI* GetLibGUI( GeometryGUI* parent )
{
return new OperationGUI(parent);
return new OperationGUI( parent );
}
}

View File

@ -1,35 +1,32 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI.h
// Author : Damien COQUERET, Open CASCADE S.A.S.
//
//
// File : OperationGUI.h
// Author : Damien COQUERET
// Module : GEOM
#ifndef OPERATIONGUI_H
#define OPERATIONGUI_H
#include "GEOMGUI.h"
#include "GEOMBase.h"
#include <GEOMGUI.h>
//=================================================================================
// class : OperationGUI
@ -38,10 +35,10 @@
class OperationGUI : public GEOMGUI
{
public :
OperationGUI( GeometryGUI* parent );
OperationGUI( GeometryGUI* );
~OperationGUI();
bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent);
bool OnGUIEvent( int, SUIT_Desktop* );
};
#endif
#endif // OPERATIONGUI_H

View File

@ -1,40 +1,39 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_ArchimedeDlg.cxx
// Author : Nicolas REJNERI, Open CASCADE S.A.S.
//
//
// File : OperationGUI_ArchimedeDlg.cxx
// Author : Nicolas REJNERI
// Module : GEOM
// $Header$
#include "OperationGUI_ArchimedeDlg.h"
#include "DlgRef_1Sel3Spin.h"
#include "SUIT_Desktop.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include <qlabel.h>
#include <SUIT_Desktop.h>
#include <SUIT_Session.h>
#include <SUIT_ResourceMgr.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
//=================================================================================
// class : OperationGUI_ArchimedeDlg()
@ -44,33 +43,37 @@
// TRUE to construct a modal dialog.
//=================================================================================
OperationGUI_ArchimedeDlg::OperationGUI_ArchimedeDlg( GeometryGUI* theGeometryGUI, QWidget* parent )
: GEOMBase_Skeleton(theGeometryGUI, parent, "ArchimedeDlg", false,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
: GEOMBase_Skeleton( theGeometryGUI, parent, false )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_ARCHIMEDE")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_ARCHIMEDE" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setCaption(tr("GEOM_ARCHIMEDE_TITLE"));
setWindowTitle( tr( "GEOM_ARCHIMEDE_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_ARCHIMEDE"));
RadioButton1->setPixmap(image0);
RadioButton2->close(TRUE);
RadioButton3->close(TRUE);
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_ARCHIMEDE" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton2->close();
mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton3->close();
GroupPoints = new DlgRef_1Sel3Spin(this, "GroupPoints");
GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS"));
GroupPoints->TextLabel2->setText(tr("GEOM_WEIGHT"));
GroupPoints->TextLabel3->setText(tr("GEOM_WATER_DENSITY"));
GroupPoints->TextLabel4->setText(tr("GEOM_MESHING_DEFLECTION"));
GroupPoints->PushButton1->setPixmap(image1);
GroupPoints = new DlgRef_1Sel3Spin( centralWidget() );
GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
GroupPoints->TextLabel1->setText( tr( "GEOM_OBJECTS" ) );
GroupPoints->TextLabel2->setText( tr( "GEOM_WEIGHT" ) );
GroupPoints->TextLabel3->setText( tr( "GEOM_WATER_DENSITY" ) );
GroupPoints->TextLabel4->setText( tr( "GEOM_MESHING_DEFLECTION" ) );
GroupPoints->PushButton1->setIcon( image1 );
GroupPoints->LineEdit1->setReadOnly( true );
Layout1->addWidget(GroupPoints, 2, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPoints );
/***************************************************************/
setHelpFileName("archimede.htm");
setHelpFileName( "archimede.htm" );
/* Initialisations */
Init();
@ -98,31 +101,33 @@ void OperationGUI_ArchimedeDlg::Init()
/* Get setting of myStep value from file configuration */
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
double myStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
double myStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
double SpecificStep1 = 0.1;
double SpecificStep2 = 0.01;
/* min, max, myStep and decimals for spin boxes & initial values */
GroupPoints->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, myStep, 3);
GroupPoints->SpinBox_DY->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep1, 3);
GroupPoints->SpinBox_DZ->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep2, 3);
initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, myStep, 3 );
initSpinBox( GroupPoints->SpinBox_DY, 0.001, COORD_MAX, SpecificStep1, 3 );
initSpinBox( GroupPoints->SpinBox_DZ, 0.001, COORD_MAX, SpecificStep2, 3 );
GroupPoints->SpinBox_DX->SetValue( 100.0 );
GroupPoints->SpinBox_DY->SetValue( 1.0 );
GroupPoints->SpinBox_DZ->SetValue( 0.01 );
GroupPoints->SpinBox_DX->setValue( 100.0 );
GroupPoints->SpinBox_DY->setValue( 1.0 );
GroupPoints->SpinBox_DZ->setValue( 0.01 );
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DY, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DZ, SLOT(SetStep(double)));
// VSR: TODO ->>
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPoints->SpinBox_DX, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPoints->SpinBox_DY, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPoints->SpinBox_DZ, SLOT( SetStep( double ) ) );
// <<-
connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()),
this, SLOT(SelectionIntoArgument()));
connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_ARCHIMEDE" ) );
@ -172,8 +177,7 @@ void OperationGUI_ArchimedeDlg::SelectionIntoArgument()
Standard_Boolean testResult = Standard_False;
myShape = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
if ( !testResult || myShape->_is_nil() || !GEOMBase::IsShape( myShape ) )
{
if ( !testResult || myShape->_is_nil() || !GEOMBase::IsShape( myShape ) ) {
myShape = GEOM::GEOM_Object::_nil();
return;
}
@ -189,13 +193,12 @@ void OperationGUI_ArchimedeDlg::SelectionIntoArgument()
void OperationGUI_ArchimedeDlg::LineEditReturnPressed()
{
QLineEdit* send = (QLineEdit*)sender();
if(send == GroupPoints->LineEdit1)
if ( send == GroupPoints->LineEdit1 )
myEditCurrentArgument = GroupPoints->LineEdit1;
else
return;
GEOMBase_Skeleton::LineEditReturnPressed();
return;
}
//=================================================================================
@ -206,9 +209,8 @@ void OperationGUI_ArchimedeDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
globalSelection( GEOM_ALLSHAPES );
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
return;
connect( myGeomGUI->getApp()->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
}
@ -216,12 +218,11 @@ void OperationGUI_ArchimedeDlg::ActivateThisDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void OperationGUI_ArchimedeDlg::enterEvent(QEvent* e)
void OperationGUI_ArchimedeDlg::enterEvent( QEvent* )
{
if(GroupConstructors->isEnabled())
if ( mainFrame()->GroupConstructors->isEnabled() )
return;
this->ActivateThisDialog();
return;
}
@ -251,9 +252,9 @@ bool OperationGUI_ArchimedeDlg::execute( ObjectList& objects )
{
GEOM::GEOM_Object_var anObj;
double aWeight = GroupPoints->SpinBox_DX->GetValue();
double aWaterDensity = GroupPoints->SpinBox_DY->GetValue();
double aMeshDeflection = GroupPoints->SpinBox_DZ->GetValue();
double aWeight = GroupPoints->SpinBox_DX->value();
double aWaterDensity = GroupPoints->SpinBox_DY->value();
double aMeshDeflection = GroupPoints->SpinBox_DZ->value();
anObj = GEOM::GEOM_ILocalOperations::_narrow(
getOperation() )->MakeArchimede( myShape, aWeight, aWaterDensity, aMeshDeflection );

View File

@ -1,34 +1,32 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_ArchimedeDlg.h
// Author : Nicolas REJNERI, Open CASCADE S.A.S.
//
//
// File : OperationGUI_ArchimedeDlg.h
// Author : Nicolas REJNERI
// Module : GEOM
#ifndef DIALOGBOX_ARCHIMEDE_H
#define DIALOGBOX_ARCHIMEDE_H
#ifndef OPERATIONGUI_ARCHIMEDEDLG_H
#define OPERATIONGUI_ARCHIMEDEDLG_H
#include "GEOMBase_Skeleton.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_1Sel3Spin;
@ -38,33 +36,33 @@ class DlgRef_1Sel3Spin;
//=================================================================================
class OperationGUI_ArchimedeDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
OperationGUI_ArchimedeDlg(GeometryGUI* theGeometryGUI, QWidget* parent);
~OperationGUI_ArchimedeDlg();
OperationGUI_ArchimedeDlg( GeometryGUI* , QWidget* );
~OperationGUI_ArchimedeDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& msg );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
private:
void Init();
void enterEvent(QEvent* e);
void Init();
void enterEvent( QEvent* );
private:
GEOM::GEOM_Object_var myShape;
DlgRef_1Sel3Spin* GroupPoints;
double myStep;
GEOM::GEOM_Object_var myShape;
DlgRef_1Sel3Spin* GroupPoints;
double myStep;
private slots:
void ClickOnOk();
bool ClickOnApply();
void ActivateThisDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void ClickOnOk();
bool ClickOnApply();
void ActivateThisDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
};
#endif // DIALOGBOX_ARCHIMEDE_H
#endif // OPERATIONGUI_ARCHIMEDEDLG_H

View File

@ -1,47 +1,46 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_ChamferDlg.cxx
// Author : Damien COQUERET, Open CASCADE S.A.S.
//
//
// File : OperationGUI_ChamferDlg.cxx
// Author : Damien COQUERET
// Module : GEOM
// $Header$
#include "OperationGUI_ChamferDlg.h"
#include "DlgRef_SpinBox.h"
#include "SUIT_Desktop.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "OCCViewer_ViewModel.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include <SUIT_Desktop.h>
#include <SUIT_Session.h>
#include <SUIT_ResourceMgr.h>
#include <SUIT_ViewWindow.h>
#include <SUIT_ViewManager.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include <OCCViewer_ViewModel.h>
#include <TColStd_MapOfInteger.hxx>
#include <qlabel.h>
#include "qpixmap.h"
#include <list>
#include "GEOMImpl_Types.hxx"
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : OperationGUI_ChamferDlg()
@ -50,105 +49,89 @@
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
OperationGUI_ChamferDlg::OperationGUI_ChamferDlg(GeometryGUI* theGeometryGUI, QWidget* parent)
: GEOMBase_Skeleton(theGeometryGUI, parent, "ChamferDlg", false,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
OperationGUI_ChamferDlg::OperationGUI_ChamferDlg( GeometryGUI* theGeometryGUI, QWidget* parent )
: GEOMBase_Skeleton( theGeometryGUI, parent, false )
{
myConstructorId = -1;
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CHAMFER_ALL" ) ) );
QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CHAMFER_EDGE" ) ) );
QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CHAMFER_FACE" ) ) );
QPixmap iconSelect( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CHAMFER_ALL")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CHAMFER_EDGE")));
QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CHAMFER_FACE")));
QPixmap iconSelect(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
setWindowTitle( tr( "GEOM_CHAMFER_TITLE" ) );
setCaption( tr( "GEOM_CHAMFER_TITLE" ) );
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CHAMFER" ) );
GroupConstructors->setTitle( tr( "GEOM_CHAMFER" ) );
RadioButton1->setPixmap( image1 );
RadioButton2->setPixmap( image2 );
RadioButton3->setPixmap( image3 );
mainFrame()->RadioButton1->setIcon( image1 );
mainFrame()->RadioButton2->setIcon( image2 );
mainFrame()->RadioButton3->setIcon( image3 );
// Create first group
myGrp1 = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_CHAMFER_ALL" ), this );
myGrp1 = new QGroupBox( tr( "GEOM_CHAMFER_ALL" ), centralWidget() );
QGroupBox* aSelGrp1 = new QGroupBox( 3, Qt::Horizontal, myGrp1 );
aSelGrp1->setFrameStyle( QFrame::NoFrame );
aSelGrp1->setInsideMargin( 0 );
QGridLayout* aLayout = new QGridLayout( myGrp1 );
aLayout->setMargin( 9 ); aLayout->setSpacing( 6 );
createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, aSelGrp1, MainObj1 );
createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, myGrp1, aLayout, MainObj1 );
QGroupBox* aSpinGrp = new QGroupBox( 1, Qt::Vertical, myGrp1 );
aSpinGrp->setFrameStyle( QFrame::NoFrame );
aSpinGrp->setInsideMargin( 0 );
new QLabel( tr( "D" ), aSpinGrp );
mySpinBox[ SpinBox1 ] = new DlgRef_SpinBox( aSpinGrp );
( new QFrame( myGrp1 ) )->setSizePolicy(
QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
int row = aLayout->rowCount();
aLayout->addWidget( new QLabel( tr( "D" ), myGrp1 ), row, 0 );
aLayout->addWidget( ( mySpinBox[ SpinBox1 ] = new QDoubleSpinBox( myGrp1 ) ), row++, 2 );
aLayout->setRowStretch( row, 10 );
// Create second group
myGrp2 = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_CHAMFER_EDGES" ), this );
myGrp2 = new QGroupBox( tr( "GEOM_CHAMFER_EDGES" ), centralWidget() );
QGroupBox* aSelGrp2 = new QGroupBox( 3, Qt::Horizontal, myGrp2 );
aSelGrp2->setFrameStyle( QFrame::NoFrame );
aSelGrp2->setInsideMargin( 0 );
aLayout = new QGridLayout( myGrp2 );
aLayout->setMargin( 9 ); aLayout->setSpacing( 6 );
createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, aSelGrp2, MainObj2 );
createSelWg( tr( "FACE_1" ), iconSelect, aSelGrp2, Face1 );
createSelWg( tr( "FACE_2" ), iconSelect, aSelGrp2, Face2 );
createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, myGrp2, aLayout, MainObj2 );
createSelWg( tr( "FACE_1" ), iconSelect, myGrp2, aLayout, Face1 );
createSelWg( tr( "FACE_2" ), iconSelect, myGrp2, aLayout, Face2 );
aSpinGrp = new QGroupBox( 1, Qt::Vertical, myGrp2 );
aSpinGrp->setFrameStyle( QFrame::NoFrame );
aSpinGrp->setInsideMargin( 0 );
row = aLayout->rowCount();
new QLabel( tr( "GEOM_D1" ), aSpinGrp );
mySpinBox[ SpinBox21 ] = new DlgRef_SpinBox( aSpinGrp );
new QLabel( tr( "GEOM_D2" ), aSpinGrp );
mySpinBox[ SpinBox22 ] = new DlgRef_SpinBox( aSpinGrp );
aLayout->addWidget( new QLabel( tr( "GEOM_D1" ), myGrp2 ), row, 0 );
aLayout->addWidget( ( mySpinBox[ SpinBox21 ] = new QDoubleSpinBox( myGrp2 ) ), row++, 2 );
aLayout->addWidget( new QLabel( tr( "GEOM_D2" ), myGrp2 ), row, 0 );
aLayout->addWidget( ( mySpinBox[ SpinBox22 ] = new QDoubleSpinBox( myGrp2 ) ), row++, 2 );
aLayout->setRowStretch( row, 10 );
// Create third group
myGrp3 = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_CHAMFER_FACES" ), this );
myGrp3 = new QGroupBox( tr( "GEOM_CHAMFER_FACES" ), centralWidget() );
QGroupBox* aSelGrp3 = new QGroupBox( 3, Qt::Horizontal, myGrp3 );
aSelGrp3->setFrameStyle( QFrame::NoFrame );
aSelGrp3->setInsideMargin( 0 );
aLayout = new QGridLayout( myGrp3 );
aLayout->setMargin( 9 ); aLayout->setSpacing( 6 );
createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, aSelGrp3, MainObj3 );
createSelWg( tr( "SELECTED_FACES" ), iconSelect, aSelGrp3, Faces );
createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, myGrp3, aLayout, MainObj3 );
createSelWg( tr( "SELECTED_FACES" ), iconSelect, myGrp3, aLayout, Faces );
aSpinGrp = new QGroupBox( 1, Qt::Vertical, myGrp3 );
aSpinGrp->setFrameStyle( QFrame::NoFrame );
aSpinGrp->setInsideMargin( 0 );
row = aLayout->rowCount();
new QLabel( tr( "GEOM_D1" ), aSpinGrp );
mySpinBox[ SpinBox31 ] = new DlgRef_SpinBox( aSpinGrp );
new QLabel( tr( "GEOM_D2" ), aSpinGrp );
mySpinBox[ SpinBox32 ] = new DlgRef_SpinBox( aSpinGrp );
( new QLabel( myGrp3 ) )->setSizePolicy(
QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
aLayout->addWidget( new QLabel( tr( "GEOM_D1" ), myGrp3 ), row, 0 );
aLayout->addWidget( ( mySpinBox[ SpinBox31 ] = new QDoubleSpinBox( myGrp3 ) ), row++, 2 );
aLayout->addWidget( new QLabel( tr( "GEOM_D2" ), myGrp3 ), row, 0 );
aLayout->addWidget( ( mySpinBox[ SpinBox32 ] = new QDoubleSpinBox( myGrp3 ) ), row++, 2 );
aLayout->setRowStretch( row, 10 );
// Add groups to layout
Layout1->addWidget( myGrp1, 2, 0 );
Layout1->addWidget( myGrp2, 2, 0 );
Layout1->addWidget( myGrp3, 2, 0 );
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( myGrp1 );
layout->addWidget( myGrp2 );
layout->addWidget( myGrp3 );
// Set range of spinboxes
double SpecificStep = 10.0;
QMap< int, DlgRef_SpinBox* >::iterator anIter;
QMap< int, QDoubleSpinBox* >::iterator anIter;
for ( anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter )
anIter.data()->RangeStepAndValidator( 0.001, COORD_MAX, SpecificStep, 3 );
initSpinBox( anIter.value(), 0.001, COORD_MAX, SpecificStep, 3 );
setHelpFileName("chamfer.htm");
setHelpFileName( "chamfer.htm" );
/* Initialisations */
Init();
@ -172,46 +155,41 @@ void OperationGUI_ChamferDlg::Init()
{
myConstructorId = -1;
reset();
RadioButton1->setChecked( true );
myEditCurrentArgument = mySelName[ MainObj1 ];
/* signals and slots connections */
// main buttons
connect( buttonOk , SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
// group box
connect( GroupConstructors, SIGNAL( clicked( int ) ),
this, SLOT( ConstructorsClicked( int ) ) );
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
// push buttons
QMap< int, QPushButton* >::iterator anIterBtn;
for ( anIterBtn = mySelBtn.begin(); anIterBtn != mySelBtn.end(); ++anIterBtn )
connect( anIterBtn.data(), SIGNAL( clicked() ),
connect( anIterBtn.value(), SIGNAL( clicked() ),
this, SLOT( SetEditCurrentArgument() ) );
// line edits
QMap< int, QLineEdit* >::iterator anIterLE2;
for ( anIterLE2 = mySelName.begin(); anIterLE2 != mySelName.end(); ++anIterLE2 )
connect( anIterLE2.data(), SIGNAL( returnPressed() ),
connect( anIterLE2.value(), SIGNAL( returnPressed() ),
this, SLOT( LineEditReturnPressed() ) );
// spin boxes
QMap< int, DlgRef_SpinBox* >::iterator anIterSpin;
QMap< int, QDoubleSpinBox* >::iterator anIterSpin;
for ( anIterSpin = mySpinBox.begin(); anIterSpin != mySpinBox.end(); ++anIterSpin )
connect( anIterSpin.data(), SIGNAL( valueChanged( double ) ),
connect( anIterSpin.value(), SIGNAL( valueChanged( double ) ),
this, SLOT( ValueChangedInSpinBox( double ) ) );
// selection
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( myGeomGUI->getApp()->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_CHAMFER" ) );
myGrp2->hide();
myGrp3->hide();
myGrp1->show();
ConstructorsClicked( 0 );
}
@ -222,59 +200,55 @@ void OperationGUI_ChamferDlg::Init()
void OperationGUI_ChamferDlg::ConstructorsClicked( int constructorId )
{
// Activate next widget
if (myGeomGUI->getApp()->desktop()->activeWindow()->getViewManager()->getType()
!= OCCViewer_Viewer::Type())
{
RadioButton1->setChecked( true );
if ( myGeomGUI->getApp()->desktop()->activeWindow()->getViewManager()->getType()
!= OCCViewer_Viewer::Type() ) {
mainFrame()->RadioButton1->setChecked( true );
return;
}
if (myConstructorId == constructorId)
if ( myConstructorId == constructorId )
return;
// Get values from previous widget
double D1 = 5, D2 = 5;
if ( myConstructorId == 0 )
D1 = D2 = mySpinBox[ SpinBox1 ]->GetValue();
else if ( myConstructorId == 1 )
{
D1 = mySpinBox[ SpinBox21 ]->GetValue();
D2 = mySpinBox[ SpinBox22 ]->GetValue();
D1 = D2 = mySpinBox[ SpinBox1 ]->value();
else if ( myConstructorId == 1 ) {
D1 = mySpinBox[ SpinBox21 ]->value();
D2 = mySpinBox[ SpinBox22 ]->value();
}
else if ( myConstructorId == 2 )
{
D1 = mySpinBox[ SpinBox31 ]->GetValue();
D2 = mySpinBox[ SpinBox32 ]->GetValue();
else if ( myConstructorId == 2 ) {
D1 = mySpinBox[ SpinBox31 ]->value();
D2 = mySpinBox[ SpinBox32 ]->value();
}
myConstructorId = constructorId;
switch ( constructorId )
{
case 0:
myGrp1->show();
myGrp2->hide();
myGrp3->hide();
mySpinBox[ SpinBox1 ]->SetValue( D1 );
switch ( constructorId ) {
case 0:
myGrp2->hide();
myGrp3->hide();
myGrp1->show();
mySpinBox[ SpinBox1 ]->setValue( D1 );
break;
case 1:
myGrp1->hide();
myGrp2->show();
myGrp3->hide();
mySpinBox[ SpinBox21 ]->SetValue( D1 );
mySpinBox[ SpinBox22 ]->SetValue( D2 );
case 1:
myGrp1->hide();
myGrp3->hide();
myGrp2->show();
mySpinBox[ SpinBox21 ]->setValue( D1 );
mySpinBox[ SpinBox22 ]->setValue( D2 );
break;
case 2:
myGrp1->hide();
myGrp2->hide();
myGrp3->show();
mySpinBox[ SpinBox31 ]->SetValue( D1 );
mySpinBox[ SpinBox32 ]->SetValue( D2 );
case 2:
myGrp1->hide();
myGrp2->hide();
myGrp3->show();
mySpinBox[ SpinBox31 ]->setValue( D1 );
mySpinBox[ SpinBox32 ]->setValue( D2 );
break;
default:
default:
break;
}
if ( constructorId == 0 ) myEditCurrentArgument = mySelName[ MainObj1 ];
else if ( constructorId == 1 ) myEditCurrentArgument = mySelName[ MainObj2 ];
else myEditCurrentArgument = mySelName[ MainObj3 ];
@ -290,6 +264,10 @@ void OperationGUI_ChamferDlg::ConstructorsClicked( int constructorId )
else
myEditCurrentArgument->setText( "" );
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
displayPreview();
}
@ -330,24 +308,21 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
// Get index of current selection focus
int aCurrFocus = -1;
QMap< int, QLineEdit* >::iterator anIter;
for ( anIter = mySelName.begin(); anIter != mySelName.end(); ++anIter )
if ( myEditCurrentArgument == anIter.data() )
{
for ( anIter = mySelName.begin(); anIter != mySelName.end(); ++anIter ) {
if ( myEditCurrentArgument == anIter.value() ) {
aCurrFocus = anIter.key();
break;
}
}
// If selection of main object is activated
if ( aCurrFocus == MainObj1 || aCurrFocus == MainObj2 || aCurrFocus == MainObj3 )
{
if ( IObjectCount() == 1 )
{
if ( aCurrFocus == MainObj1 || aCurrFocus == MainObj2 || aCurrFocus == MainObj3 ) {
if ( IObjectCount() == 1 ) {
Standard_Boolean aResult = Standard_False;
GEOM::GEOM_Object_var anObj =
GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
if ( aResult && !anObj->_is_nil() )
{
if ( aResult && !anObj->_is_nil() ) {
myShape = anObj;
mySelName[ aCurrFocus ]->setText( GEOMBase::GetName( anObj ) );
displayPreview();
@ -360,21 +335,17 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
enableWidgets();
}
// If face selection of second tab is activated
else if ( aCurrFocus == Face1 || aCurrFocus == Face2 )
{
if ( IObjectCount() == 1 )
{
else if ( aCurrFocus == Face1 || aCurrFocus == Face2 ) {
if ( IObjectCount() == 1 ) {
Standard_Boolean aResult = Standard_False;
GEOM::GEOM_Object_var anObj =
GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
if ( aResult && !anObj->_is_nil() )
{
if ( aResult && !anObj->_is_nil() ) {
TColStd_IndexedMapOfInteger anIndexes;
((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
if ( anIndexes.Extent() == 1 )
{
if ( anIndexes.Extent() == 1 ) {
int anIndex = anIndexes( 1 );
QString aFaceName = QString( GEOMBase::GetName( anObj ) ) + ":%1";
myEditCurrentArgument->setText( aFaceName.arg( anIndex ) );
@ -388,36 +359,32 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
myFace[ aCurrFocus ] = -1;
}
// If face selection of third tab is activated
else if ( aCurrFocus == Faces )
{
if ( IObjectCount() == 1 )
{
else if ( aCurrFocus == Faces ) {
if ( IObjectCount() == 1 ) {
Standard_Boolean aResult = Standard_False;
GEOM::GEOM_Object_var anObj =
GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
if ( aResult && !anObj->_is_nil() )
{
TColStd_IndexedMapOfInteger anIndexes;
((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
if ( anIndexes.Extent() > 0 )
{
QString aFaceName;
if ( anIndexes.Extent() == 1 )
{
int anIndex = anIndexes( 1 );
aFaceName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex );
}
else
aFaceName = tr( "GEOM_MEN_POPUP_NAME" ).arg( anIndexes.Extent() );
myEditCurrentArgument->setText( aFaceName );
myFaces = anIndexes;
displayPreview();
return;
}
if ( aResult && !anObj->_is_nil() ) {
TColStd_IndexedMapOfInteger anIndexes;
( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
if ( anIndexes.Extent() > 0 ) {
QString aFaceName;
if ( anIndexes.Extent() == 1 ) {
int anIndex = anIndexes( 1 );
aFaceName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex );
}
else {
aFaceName = tr( "GEOM_MEN_POPUP_NAME" ).arg( anIndexes.Extent() );
}
myEditCurrentArgument->setText( aFaceName );
myFaces = anIndexes;
displayPreview();
return;
}
}
}
myFaces.Clear();
@ -435,8 +402,8 @@ void OperationGUI_ChamferDlg::LineEditReturnPressed()
QMap< int, QLineEdit* >::iterator anIterLE;
for ( anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE )
if ( anIterLE.data() == aSender )
myEditCurrentArgument = anIterLE.data();
if ( anIterLE.value() == aSender )
myEditCurrentArgument = anIterLE.value();
GEOMBase_Skeleton::LineEditReturnPressed();
}
@ -451,12 +418,12 @@ void OperationGUI_ChamferDlg::SetEditCurrentArgument()
QPushButton* aSender = ( QPushButton* )sender();
QMap< int, QPushButton* >::iterator anIter;
for ( anIter = mySelBtn.begin(); anIter != mySelBtn.end(); ++anIter )
if ( anIter.data() == aSender )
{
for ( anIter = mySelBtn.begin(); anIter != mySelBtn.end(); ++anIter ) {
if ( anIter.value() == aSender ) {
mySelName[ anIter.key() ]->setFocus();
myEditCurrentArgument = mySelName[ anIter.key() ];
}
}
activateSelection();
}
@ -470,8 +437,8 @@ void OperationGUI_ChamferDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT( SelectionIntoArgument() ) );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
activateSelection();
displayPreview();
@ -482,9 +449,9 @@ void OperationGUI_ChamferDlg::ActivateThisDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void OperationGUI_ChamferDlg::enterEvent(QEvent* e)
void OperationGUI_ChamferDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
this->ActivateThisDialog();
}
@ -493,7 +460,7 @@ void OperationGUI_ChamferDlg::enterEvent(QEvent* e)
// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
void OperationGUI_ChamferDlg::ValueChangedInSpinBox( double newValue )
void OperationGUI_ChamferDlg::ValueChangedInSpinBox( double )
{
displayPreview();
}
@ -506,13 +473,18 @@ void OperationGUI_ChamferDlg::ValueChangedInSpinBox( double newValue )
void OperationGUI_ChamferDlg::createSelWg( const QString& theLbl,
QPixmap& thePix,
QWidget* theParent,
QGridLayout* theLayout,
const int theId )
{
new QLabel( theLbl, theParent );
QLabel* lab = new QLabel( theLbl, theParent );
mySelBtn[ theId ] = new QPushButton( theParent );
mySelBtn[ theId ]->setPixmap( thePix );
mySelBtn[ theId ]->setIcon( thePix );
mySelName[ theId ] = new QLineEdit( theParent );
mySelName[ theId ]->setReadOnly( true );
int row = theLayout->rowCount();
theLayout->addWidget( lab, row, 0 );
theLayout->addWidget( mySelBtn[ theId ], row, 1 );
theLayout->addWidget( mySelName[ theId ], row, 2 );
}
//=================================================================================
@ -522,14 +494,14 @@ void OperationGUI_ChamferDlg::createSelWg( const QString& theLbl,
void OperationGUI_ChamferDlg::reset()
{
// Set Initial values of spinboxes
QMap< int, DlgRef_SpinBox* >::iterator anIter;
QMap< int, QDoubleSpinBox* >::iterator anIter;
for ( anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter )
anIter.data()->SetValue( 5 );
anIter.value()->setValue( 5 );
// clear line edits
QMap< int, QLineEdit* >::iterator anIterLE;
for ( anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE )
anIterLE.data()->setText( "" );
anIterLE.value()->setText( "" );
// constructor id
int aConstructorId = getConstructorId();
@ -551,15 +523,6 @@ void OperationGUI_ChamferDlg::reset()
enableWidgets();
}
//=================================================================================
// function : getConstructorId()
// purpose :
//=================================================================================
int OperationGUI_ChamferDlg::getConstructorId() const
{
return GroupConstructors->id( GroupConstructors->selected() );
}
//=================================================================================
// function : activateSelection
// purpose : Activate selection in accordance with myEditCurrentArgument
@ -653,18 +616,16 @@ bool OperationGUI_ChamferDlg::execute( ObjectList& objects )
if ( anId == 0 )
anObj = GEOM::GEOM_ILocalOperations::_narrow(
getOperation() )->MakeChamferAll( myShape,
mySpinBox[ SpinBox1 ]->GetValue() );
mySpinBox[ SpinBox1 ]->value() );
else if ( anId == 1 )
anObj = GEOM::GEOM_ILocalOperations::_narrow(
getOperation() )->MakeChamferEdge( myShape,
mySpinBox[ SpinBox21 ]->GetValue(),
mySpinBox[ SpinBox22 ]->GetValue(),
mySpinBox[ SpinBox21 ]->value(),
mySpinBox[ SpinBox22 ]->value(),
myFace[ Face1 ],
myFace[ Face2 ] );
else if ( anId == 2 )
{
int i = 0;
GEOM::ListOfLong_var anArray = new GEOM::ListOfLong;
anArray->length( myFaces.Extent() );
@ -674,8 +635,8 @@ bool OperationGUI_ChamferDlg::execute( ObjectList& objects )
anObj = GEOM::GEOM_ILocalOperations::_narrow(
getOperation() )->MakeChamferFaces( myShape,
mySpinBox[ SpinBox31 ]->GetValue(),
mySpinBox[ SpinBox32 ]->GetValue(),
mySpinBox[ SpinBox31 ]->value(),
mySpinBox[ SpinBox32 ]->value(),
anArray );
}

View File

@ -1,37 +1,43 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_ChamferDlg.h
// Author : Damien COQUERET, Open CASCADE S.A.S.
//
//
// File : OperationGUI_ChamferDlg.h
// Author : Damien COQUERET
// Module : GEOM
#ifndef DIALOGBOX_CHAMFER_H
#define DIALOGBOX_CHAMFER_H
#ifndef OPERATIONGUI_CHAMFERDLG_H
#define OPERATIONGUI_CHAMFERDLG_H
#include <GEOMBase_Skeleton.h>
#include "GEOMBase_Skeleton.h"
#include <TColStd_IndexedMapOfInteger.hxx>
class DlgRef_SpinBox;
#include <QMap>
class QDoubleSpinBox;
class QGroupBox;
class QPushButton;
class QLineEdit;
class QDoubleSpinBox;
class QGridLayout;
//=================================================================================
// class : OperationGUI_ChamferDlg
@ -39,54 +45,54 @@ class DlgRef_SpinBox;
//=================================================================================
class OperationGUI_ChamferDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
enum { MainObj1, MainObj2, Face1, Face2, MainObj3, Faces };
enum { SpinBox1, SpinBox21, SpinBox22, SpinBox31, SpinBox32 };
public:
OperationGUI_ChamferDlg(GeometryGUI* theGeometryGUI, QWidget* parent);
OperationGUI_ChamferDlg( GeometryGUI*, QWidget* );
virtual ~OperationGUI_ChamferDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& msg );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
private slots:
void ClickOnOk();
bool ClickOnApply();
void ActivateThisDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ValueChangedInSpinBox( double newValue );
void ConstructorsClicked( int constructorId );
void ClickOnOk();
bool ClickOnApply();
void ActivateThisDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ValueChangedInSpinBox( double );
void ConstructorsClicked( int );
private:
void Init();
void enterEvent( QEvent* e );
void reset();
void createSelWg( const QString&, QPixmap&, QWidget*, const int );
int getConstructorId() const;
void activateSelection();
void enableWidgets();
void Init();
void enterEvent( QEvent* );
void reset();
void createSelWg( const QString&, QPixmap&, QWidget*,
QGridLayout*, const int );
void activateSelection();
void enableWidgets();
private:
int myConstructorId;
GEOM::GEOM_Object_var myShape;
QMap< int, int > myFace; // indexes of faces from second tab ( Face1,2 )
TColStd_IndexedMapOfInteger myFaces; // indexes of faces from first tab ( Faces )
QFrame* myGrp1;
QFrame* myGrp2;
QFrame* myGrp3;
QMap< int, QPushButton* > mySelBtn;
QMap< int, QLineEdit* > mySelName;
QMap< int, DlgRef_SpinBox* > mySpinBox;
int myConstructorId;
GEOM::GEOM_Object_var myShape;
QMap< int, int > myFace; // indexes of faces from second tab ( Face1,2 )
TColStd_IndexedMapOfInteger myFaces; // indexes of faces from first tab ( Faces )
QGroupBox* myGrp1;
QGroupBox* myGrp2;
QGroupBox* myGrp3;
QMap< int, QPushButton* > mySelBtn;
QMap< int, QLineEdit* > mySelName;
QMap< int, QDoubleSpinBox* > mySpinBox;
};
#endif // DIALOGBOX_CHAMFER_H
#endif // OPERATIONGUI_CHAMFERDLG_H

View File

@ -1,57 +1,48 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_ClippingDlg.cxx
// Author : Michael Zorin, Open CASCADE S.A.S. (mikhail.zorin@opencascade.com)
//
//
// File : OperationGUI_ClippingDlg.cxx
// Author : Michael Zorin
// Module : GEOM
// $Header:
#include "OperationGUI_ClippingDlg.h"
#include "DlgRef_SpinBox.h"
#include "SUIT_Session.h"
#include "SUIT_ViewWindow.h"
#include "SVTK_ViewWindow.h"
#include "SVTK_ViewModel.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "OCCViewer_ViewWindow.h"
#include "OCCViewer_ViewPort3d.h"
#include <SUIT_Session.h>
#include <SUIT_Desktop.h>
#include <SUIT_ViewManager.h>
#include <SVTK_ViewWindow.h>
#include <SVTK_ViewModel.h>
#include <OCCViewer_ViewWindow.h>
#include <OCCViewer_ViewPort3d.h>
#include <VTKViewer.h>
#include "utilities.h"
// OCC Includes
#include <V3d_View.hxx>
#include <V3d.hxx>
//#include <V3d_Plane.hxx>
// QT Includes
#include <qapplication.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qcombobox.h>
// VTK Includes
#include "VTKViewer.h"
#include <vtkCamera.h>
#include <vtkRenderer.h>
@ -59,66 +50,60 @@
// class : OperationGUI_ClippingDlg()
// purpose :
//=================================================================================
OperationGUI_ClippingDlg::OperationGUI_ClippingDlg(GeometryGUI* theGeometryGUI, QWidget* parent)
: GEOMBase_Skeleton(theGeometryGUI, parent, "OperationGUI_ClippingDlg", false,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
OperationGUI_ClippingDlg::OperationGUI_ClippingDlg( GeometryGUI* theGeometryGUI, QWidget* parent )
: GEOMBase_Skeleton( theGeometryGUI, parent, false )
{
setCaption( tr( "Change clipping range" ) );
setWindowTitle( tr( "Change clipping range" ) );
GroupConstructors->close();
GroupBoxName->close();
mainFrame()->GroupConstructors->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->GroupConstructors->close();
mainFrame()->GroupBoxName->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->GroupBoxName->close();
/***************************************************************/
GroupArguments = new QGroupBox( this, "GroupArguments" );
GroupArguments->setColumnLayout(0, Qt::Vertical );
GroupArguments->layout()->setSpacing( 0 );
GroupArguments->layout()->setMargin( 0 );
QGridLayout* GroupArgumentsLayout = new QGridLayout( GroupArguments->layout() );
GroupArgumentsLayout->setAlignment( Qt::AlignTop );
GroupArguments = new QGroupBox( centralWidget() );
QGridLayout* GroupArgumentsLayout = new QGridLayout( GroupArguments );
GroupArgumentsLayout->setSpacing( 6 );
GroupArgumentsLayout->setMargin( 11 );
GroupArgumentsLayout->setMargin( 9 );
// Controls
TextLabelNear = new QLabel( GroupArguments, "TextLabelNear" );
TextLabelNear->setText( tr( "Near" ) );
TextLabelNear->setFixedWidth(74);
TextLabelNear = new QLabel( tr( "Near" ), GroupArguments );
GroupArgumentsLayout->addWidget( TextLabelNear, 0, 0 );
SpinBox_Near = new DlgRef_SpinBox( GroupArguments, "SpinBox_Near");
SpinBox_Near = new QDoubleSpinBox( GroupArguments );
GroupArgumentsLayout->addWidget( SpinBox_Near, 0, 1 );
TextLabelFar = new QLabel( GroupArguments, "TextLabelFar" );
TextLabelFar->setText( tr( "Far" ) );
TextLabelFar->setFixedWidth(74);
TextLabelFar = new QLabel( tr( "Far" ), GroupArguments );
GroupArgumentsLayout->addWidget( TextLabelFar, 0, 2 );
SpinBox_Far = new DlgRef_SpinBox( GroupArguments, "SpinBox_Far");
SpinBox_Far = new QDoubleSpinBox( GroupArguments );
GroupArgumentsLayout->addWidget( SpinBox_Far, 0, 3 );
resetButton = new QPushButton( GroupArguments, "resetButton" );
resetButton->setText( tr( "Reset" ) );
resetButton = new QPushButton( tr( "Reset" ), GroupArguments );
GroupArgumentsLayout->addWidget( resetButton, 0, 4 );
TypeCB = new QComboBox( GroupArguments, "TypeCB" );
TypeCB->insertItem(tr("OFF"));
TypeCB->insertItem(tr("BACK"));
TypeCB->insertItem(tr("FRONT"));
TypeCB->insertItem(tr("SLICE"));
GroupArgumentsLayout->addMultiCellWidget( TypeCB, 1, 1, 0, 4 );
TypeCB = new QComboBox( GroupArguments );
TypeCB->addItem( tr( "OFF" ) );
TypeCB->addItem( tr( "BACK" ) );
TypeCB->addItem( tr( "FRONT" ) );
TypeCB->addItem( tr( "SLICE" ) );
GroupArgumentsLayout->addWidget( TypeCB, 1, 0, 1, 5 );
Layout1->addWidget( GroupArguments, 2, 0 );
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupArguments );
/* Initialisations */
SpinBox_Near->RangeStepAndValidator( COORD_MIN, COORD_MAX, 10.0, 3 );
SpinBox_Far->RangeStepAndValidator( COORD_MIN, COORD_MAX, 10.0, 3 );
initSpinBox( SpinBox_Near, COORD_MIN, COORD_MAX, 10.0, 3 );
initSpinBox( SpinBox_Far, COORD_MIN, COORD_MAX, 10.0, 3 );
/* signals and slots connections */
connect( buttonOk , SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect( resetButton, SIGNAL (clicked() ), this, SLOT( onReset() ) ) ;
connect( resetButton, SIGNAL( clicked() ), this, SLOT( onReset() ) ) ;
setHelpFileName("none.htm");
setHelpFileName( "none.htm" );
Init();
}
@ -138,77 +123,74 @@ OperationGUI_ClippingDlg::~ OperationGUI_ClippingDlg()
//=================================================================================
void OperationGUI_ClippingDlg::Init()
{
SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
if (!anActiveWindow)
SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
if ( !anActiveWindow )
return;
if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() )
{
SVTK_ViewWindow* aVTKFrame = dynamic_cast<SVTK_ViewWindow*>( anActiveWindow );
if( !aVTKFrame )
return;
TextLabelNear->setText( tr( "Near" ) );
TextLabelFar->setText( tr( "Far" ) );
TypeCB->hide();
vtkRenderer* aRenderer = aVTKFrame->getRenderer();
if(!aRenderer) return;
vtkCamera* anActiveCamera = aRenderer->GetActiveCamera();
if( anActiveCamera == NULL ){
MESSAGE("Trying to reset clipping range of non-existant camera");
return;
}
// Find the plane equation for the camera view plane
double vn[3];
anActiveCamera->GetViewPlaneNormal(vn);
double position[3];
anActiveCamera->GetPosition(position);
vtkFloatingPointType bounds[6];
aRenderer->ComputeVisiblePropBounds(bounds);
double center[3];
center[0] = (bounds[0] + bounds[1])/2.0;
center[1] = (bounds[2] + bounds[3])/2.0;
center[2] = (bounds[4] + bounds[5])/2.0;
double width = sqrt((bounds[1]-bounds[0])*(bounds[1]-bounds[0]) +
(bounds[3]-bounds[2])*(bounds[3]-bounds[2]) +
(bounds[5]-bounds[4])*(bounds[5]-bounds[4]));
double distance = sqrt((position[0]-center[0])*(position[0]-center[0]) +
(position[1]-center[1])*(position[1]-center[1]) +
(position[2]-center[2])*(position[2]-center[2]));
vtkFloatingPointType range[2] = {distance - width/2.0, distance + width/2.0};
SpinBox_Near->SetValue(range[0]);
SpinBox_Far->SetValue(range[1]);
if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) {
SVTK_ViewWindow* aVTKFrame = dynamic_cast<SVTK_ViewWindow*>( anActiveWindow );
if ( !aVTKFrame )
return;
TextLabelNear->setText( tr( "Near" ) );
TextLabelFar->setText( tr( "Far" ) );
TypeCB->hide();
vtkRenderer* aRenderer = aVTKFrame->getRenderer();
if ( !aRenderer ) return;
vtkCamera* anActiveCamera = aRenderer->GetActiveCamera();
if ( anActiveCamera == NULL ) {
return;
}
else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() )
{
OCCViewer_ViewWindow* aOCCFrame = dynamic_cast<OCCViewer_ViewWindow*>( anActiveWindow );
TextLabelNear->setText( tr( "Depth" ) );
TextLabelFar->setText( tr( "Thickness" ) );
Handle(V3d_View) view3d = ((OCCViewer_ViewPort3d*)aOCCFrame->getViewPort())->getView();
double depth, thickness;
int ztype= view3d->ZClipping(depth, thickness);
SpinBox_Near->SetValue(depth);
SpinBox_Far->SetValue(thickness);
TypeCB->setCurrentItem(ztype);
//Handle(V3d_Plane) aPlane = new V3d_Plane( aOCCFrame->getViewer()->getViewer3d() ,0, 0, 1, -100);
//aPlane->Display(view3d);
}
// Find the plane equation for the camera view plane
double vn[3];
anActiveCamera->GetViewPlaneNormal( vn );
double position[3];
anActiveCamera->GetPosition( position );
vtkFloatingPointType bounds[6];
aRenderer->ComputeVisiblePropBounds( bounds );
double center[3];
center[0] = ( bounds[0] + bounds[1] ) / 2.0;
center[1] = ( bounds[2] + bounds[3] ) / 2.0;
center[2] = ( bounds[4] + bounds[5] ) / 2.0;
double width = sqrt( ( bounds[1]-bounds[0] ) * ( bounds[1]-bounds[0] ) +
( bounds[3]-bounds[2] ) * ( bounds[3]-bounds[2] ) +
( bounds[5]-bounds[4] ) * ( bounds[5]-bounds[4] ) );
double distance = sqrt( ( position[0]-center[0] ) * ( position[0]-center[0] ) +
( position[1]-center[1] ) * ( position[1]-center[1] ) +
( position[2]-center[2] ) * ( position[2]-center[2] ) );
vtkFloatingPointType range[2] = { distance - width/2.0, distance + width/2.0 };
SpinBox_Near->setValue( range[0] );
SpinBox_Far->setValue( range[1] );
return;
}
else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) {
OCCViewer_ViewWindow* aOCCFrame = dynamic_cast<OCCViewer_ViewWindow*>( anActiveWindow );
TextLabelNear->setText( tr( "Depth" ) );
TextLabelFar->setText( tr( "Thickness" ) );
Handle(V3d_View) view3d = ( (OCCViewer_ViewPort3d*)aOCCFrame->getViewPort() )->getView();
double depth, thickness;
int ztype = view3d->ZClipping( depth, thickness );
SpinBox_Near->setValue( depth );
SpinBox_Far->setValue( thickness );
TypeCB->setCurrentIndex( ztype );
//Handle(V3d_Plane) aPlane = new V3d_Plane( aOCCFrame->getViewer()->getViewer3d() ,0, 0, 1, -100);
//aPlane->Display(view3d);
}
}
@ -218,46 +200,43 @@ void OperationGUI_ClippingDlg::Init()
//=================================================================================
bool OperationGUI_ClippingDlg::ClickOnApply()
{
SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
if (!anActiveWindow)
SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
if ( !anActiveWindow )
return false;
if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() )
{
SVTK_ViewWindow* aVTKFrame = dynamic_cast<SVTK_ViewWindow*>( anActiveWindow );
if( !aVTKFrame )
return false;
vtkRenderer* aRenderer = aVTKFrame->getRenderer();
if(!aRenderer) return false;
vtkCamera* anActiveCamera = aRenderer->GetActiveCamera();
if( anActiveCamera == NULL ){
MESSAGE("Trying to reset clipping range of non-existant camera");
return false;
}
vtkFloatingPointType range[2] = { SpinBox_Near->GetValue(), SpinBox_Far->GetValue() };
if (range[0] < 0.0) range[0] = 0.0;
anActiveCamera->SetClippingRange( range );
return true;
if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) {
SVTK_ViewWindow* aVTKFrame = dynamic_cast<SVTK_ViewWindow*>( anActiveWindow );
if ( !aVTKFrame )
return false;
vtkRenderer* aRenderer = aVTKFrame->getRenderer();
if ( !aRenderer ) return false;
vtkCamera* anActiveCamera = aRenderer->GetActiveCamera();
if ( anActiveCamera == NULL ) {
return false;
}
else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() )
{
OCCViewer_ViewWindow* aOCCFrame = dynamic_cast<OCCViewer_ViewWindow*>( anActiveWindow );
Handle(V3d_View) view3d = ((OCCViewer_ViewPort3d*)aOCCFrame->getViewPort())->getView();
double depth = SpinBox_Near->GetValue();
double thickness = SpinBox_Far->GetValue();
int aType = TypeCB->currentItem();
view3d->SetZClippingType(V3d_TypeOfZclipping(aType));
view3d->SetZClippingDepth(depth);
view3d->SetZClippingWidth(thickness);
}
vtkFloatingPointType range[2] = { SpinBox_Near->value(), SpinBox_Far->value() };
if ( range[0] < 0.0 ) range[0] = 0.0;
anActiveCamera->SetClippingRange( range );
return true;
}
else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) {
OCCViewer_ViewWindow* aOCCFrame = dynamic_cast<OCCViewer_ViewWindow*>( anActiveWindow );
Handle(V3d_View) view3d = ( (OCCViewer_ViewPort3d*)aOCCFrame->getViewPort() )->getView();
double depth = SpinBox_Near->value();
double thickness = SpinBox_Far->value();
int aType = TypeCB->currentIndex();
view3d->SetZClippingType( V3d_TypeOfZclipping( aType ) );
view3d->SetZClippingDepth( depth );
view3d->SetZClippingWidth( thickness );
}
return true;
}
@ -267,8 +246,8 @@ bool OperationGUI_ClippingDlg::ClickOnApply()
//=================================================================================
void OperationGUI_ClippingDlg::ClickOnOk()
{
ClickOnApply();
ClickOnCancel();
if ( ClickOnApply() )
ClickOnCancel();
}
//=================================================================================
@ -284,10 +263,9 @@ void OperationGUI_ClippingDlg::onActivate()
// function : enterEvent()
// purpose :
//=================================================================================
void OperationGUI_ClippingDlg::enterEvent(QEvent*)
void OperationGUI_ClippingDlg::enterEvent( QEvent* )
{
this->setEnabled(true);
return;
this->setEnabled( true );
}
//=================================================================================
@ -307,70 +285,65 @@ void OperationGUI_ClippingDlg::onReset()
{
SUIT_ViewWindow* anActiveWindow =
SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
if (!anActiveWindow)
if ( !anActiveWindow )
return;
if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() )
{
SVTK_ViewWindow* aVTKFrame = dynamic_cast<SVTK_ViewWindow*>( anActiveWindow );
if( !aVTKFrame )
return;
vtkRenderer* aRenderer = aVTKFrame->getRenderer();
if(!aRenderer) return;
vtkCamera* anActiveCamera = aRenderer->GetActiveCamera();
if( anActiveCamera == NULL ){
MESSAGE("Trying to reset clipping range of non-existant camera");
return;
}
// Find the plane equation for the camera view plane
double vn[3];
anActiveCamera->GetViewPlaneNormal(vn);
double position[3];
anActiveCamera->GetPosition(position);
vtkFloatingPointType bounds[6];
aRenderer->ComputeVisiblePropBounds(bounds);
double center[3];
center[0] = (bounds[0] + bounds[1])/2.0;
center[1] = (bounds[2] + bounds[3])/2.0;
center[2] = (bounds[4] + bounds[5])/2.0;
double width = sqrt((bounds[1]-bounds[0])*(bounds[1]-bounds[0]) +
(bounds[3]-bounds[2])*(bounds[3]-bounds[2]) +
(bounds[5]-bounds[4])*(bounds[5]-bounds[4]));
double distance = sqrt((position[0]-center[0])*(position[0]-center[0]) +
(position[1]-center[1])*(position[1]-center[1]) +
(position[2]-center[2])*(position[2]-center[2]));
vtkFloatingPointType range[2] = {distance - width/2.0, distance + width/2.0};
SpinBox_Near->SetValue(range[0]);
SpinBox_Far->SetValue(range[1]);
if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) {
SVTK_ViewWindow* aVTKFrame = dynamic_cast<SVTK_ViewWindow*>( anActiveWindow );
if ( !aVTKFrame )
return;
vtkRenderer* aRenderer = aVTKFrame->getRenderer();
if ( !aRenderer ) return;
vtkCamera* anActiveCamera = aRenderer->GetActiveCamera();
if ( anActiveCamera == NULL ) {
return;
}
else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() )
{
OCCViewer_ViewWindow* aOCCFrame = dynamic_cast<OCCViewer_ViewWindow*>( anActiveWindow );
TextLabelNear->setText( tr( "Depth" ) );
TextLabelFar->setText( tr( "Thickness" ) );
Handle(V3d_View) view3d = ((OCCViewer_ViewPort3d*)aOCCFrame->getViewPort())->getView();
view3d->SetZClippingType(V3d_TypeOfZclipping(0));
view3d->ZFitAll();
double depth, thickness;
int ztype= view3d->ZClipping(depth, thickness);
SpinBox_Near->SetValue(0);
SpinBox_Far->SetValue(1000);
TypeCB->setCurrentItem(ztype);
}
return;
// Find the plane equation for the camera view plane
double vn[3];
anActiveCamera->GetViewPlaneNormal( vn );
double position[3];
anActiveCamera->GetPosition( position );
vtkFloatingPointType bounds[6];
aRenderer->ComputeVisiblePropBounds( bounds );
double center[3];
center[0] = ( bounds[0] + bounds[1] ) / 2.0;
center[1] = ( bounds[2] + bounds[3] ) / 2.0;
center[2] = ( bounds[4] + bounds[5] ) / 2.0;
double width = sqrt( ( bounds[1]-bounds[0] ) * ( bounds[1]-bounds[0] ) +
( bounds[3]-bounds[2] ) * ( bounds[3]-bounds[2] ) +
( bounds[5]-bounds[4] ) * ( bounds[5]-bounds[4] ) );
double distance = sqrt( ( position[0]-center[0] ) * ( position[0]-center[0] ) +
( position[1]-center[1] ) * ( position[1]-center[1] ) +
( position[2]-center[2] ) * ( position[2]-center[2] ) );
vtkFloatingPointType range[2] = { distance - width/2.0, distance + width/2.0 };
SpinBox_Near->setValue( range[0] );
SpinBox_Far->setValue( range[1] );
return;
}
else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) {
OCCViewer_ViewWindow* aOCCFrame = dynamic_cast<OCCViewer_ViewWindow*>( anActiveWindow );
TextLabelNear->setText( tr( "Depth" ) );
TextLabelFar->setText( tr( "Thickness" ) );
Handle(V3d_View) view3d = ( (OCCViewer_ViewPort3d*)aOCCFrame->getViewPort() )->getView();
view3d->SetZClippingType( V3d_TypeOfZclipping( 0 ) );
view3d->ZFitAll();
double depth, thickness;
int ztype= view3d->ZClipping( depth, thickness );
SpinBox_Near->setValue( 0 );
SpinBox_Far->setValue( 1000 );
TypeCB->setCurrentIndex( ztype );
}
}

View File

@ -1,40 +1,38 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_ClippingDlg.h
// Author : Michael Zorin, Open CASCADE S.A.S. (mikhail.zorin@opencascade.com)
//
//
// File : OperationGUI_ClippingDlg.h
// Author : Michael Zorin
// Module : GEOM
#ifndef DIALOGBOX_CLIPPINGRANGE_H
#define DIALOGBOX_CLIPPING_H
#ifndef OPERATIONGUI_CLIPPINGDLG_H
#define OPERATIONGUI_CLIPPINGDLG_H
#include "GEOMBase_Skeleton.h"
#include <GEOMBase_Skeleton.h>
class QGroupBox;
class QLabel;
class QPushButton;
class QComboBox;
class DlgRef_SpinBox;
class QDoubleSpinBox;
enum ViewerTypes { VTK, OCC, OTHER };
@ -44,33 +42,34 @@ enum ViewerTypes { VTK, OCC, OTHER };
//=================================================================================
class OperationGUI_ClippingDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
OperationGUI_ClippingDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0);
~OperationGUI_ClippingDlg();
OperationGUI_ClippingDlg( GeometryGUI*, QWidget* = 0 );
~OperationGUI_ClippingDlg();
private:
void Init();
ViewerTypes myViewerType;
virtual void closeEvent( QCloseEvent* e );
void enterEvent(QEvent* e);
QGroupBox* GroupArguments;
QLabel* TextLabelNear;
DlgRef_SpinBox* SpinBox_Near;
QLabel* TextLabelFar;
DlgRef_SpinBox* SpinBox_Far;
QPushButton* resetButton;
QComboBox* TypeCB;
void Init();
virtual void closeEvent( QCloseEvent* );
void enterEvent( QEvent* );
private:
ViewerTypes myViewerType;
QGroupBox* GroupArguments;
QLabel* TextLabelNear;
QDoubleSpinBox* SpinBox_Near;
QLabel* TextLabelFar;
QDoubleSpinBox* SpinBox_Far;
QPushButton* resetButton;
QComboBox* TypeCB;
private slots:
void ClickOnOk();
bool ClickOnApply();
void onActivate();
void onReset();
void ClickOnOk();
bool ClickOnApply();
void onActivate();
void onReset();
};
#endif // DIALOGBOX_CLIPPINGRANGE_H
#endif // OPERATIONGUI_CLIPPINGDLG_H

View File

@ -1,48 +1,47 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_FilletDlg.cxx
// Author : Damien COQUERET, Open CASCADE S.A.S.
//
//
// File : OperationGUI_FilletDlg.cxx
// Author : Damien COQUERET
// Module : GEOM
// $Header$
#include "OperationGUI_FilletDlg.h"
#include "DlgRef_1Sel1Spin.h"
#include "DlgRef_2Sel1Spin.h"
#include "SUIT_Desktop.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "OCCViewer_ViewModel.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include <SUIT_Desktop.h>
#include <SUIT_Session.h>
#include <SUIT_ResourceMgr.h>
#include <SUIT_ViewWindow.h>
#include <SUIT_ViewManager.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include <OCCViewer_ViewModel.h>
#include "qlabel.h"
#include "qpixmap.h"
#include <TColStd_MapOfInteger.hxx>
#include <TColStd_IndexedMapOfInteger.hxx>
#include <list>
#include "GEOMImpl_Types.hxx"
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : OperationGUI_FilletDlg()
@ -51,65 +50,64 @@
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
OperationGUI_FilletDlg::OperationGUI_FilletDlg(GeometryGUI* theGeometryGUI, QWidget* parent)
:GEOMBase_Skeleton(theGeometryGUI, parent, "OperationGUI_FilletDlg", false,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
OperationGUI_FilletDlg::OperationGUI_FilletDlg( GeometryGUI* theGeometryGUI, QWidget* parent )
: GEOMBase_Skeleton( theGeometryGUI, parent, false )
{
myConstructorId = -1;
SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr();
QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_FILLET_ALL")));
QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_FILLET_EDGE")));
QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_FILLET_FACE")));
QPixmap image0( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_FILLET_ALL" ) ) );
QPixmap image1( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_FILLET_EDGE" ) ) );
QPixmap image2( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_FILLET_FACE" ) ) );
QPixmap iconSelect(aResMgr->loadPixmap("GEOM", tr("ICON_SELECT")));
QPixmap iconSelect( aResMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setCaption(tr("GEOM_FILLET_TITLE"));
setWindowTitle( tr( "GEOM_FILLET_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle( tr( "GEOM_FILLET" ) );
RadioButton1->setPixmap( image0 );
RadioButton2->setPixmap( image1 );
RadioButton3->setPixmap( image2 );
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_FILLET" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setIcon( image1 );
mainFrame()->RadioButton3->setIcon( image2 );
Group1 = new DlgRef_1Sel1Spin( this, "Group1" );
Group1 = new DlgRef_1Sel1Spin( centralWidget() );
Group1->GroupBox1->setTitle( tr( "GEOM_FILLET_ALL" ) );
Group1->TextLabel1->setText( tr( "GEOM_MAIN_OBJECT" ) );
Group1->TextLabel2->setText( tr( "GEOM_RADIUS" ) );
Group1->PushButton1->setPixmap( iconSelect );
Group1->PushButton1->setIcon( iconSelect );
Group1->LineEdit1->setReadOnly( true );
Group2 = new DlgRef_2Sel1Spin( this, "Group2" );
Group2 = new DlgRef_2Sel1Spin( centralWidget() );
Group2->GroupBox1->setTitle( tr( "GEOM_FILLET_EDGES" ) );
Group2->TextLabel1->setText( tr( "GEOM_MAIN_OBJECT" ) );
Group2->TextLabel2->setText( tr( "SELECTED_EDGES" ) );
Group2->TextLabel3->setText( tr( "GEOM_RADIUS" ) );
Group2->PushButton1->setPixmap( iconSelect );
Group2->PushButton2->setPixmap( iconSelect );
Group2->PushButton1->setIcon( iconSelect );
Group2->PushButton2->setIcon( iconSelect );
Group2->LineEdit1->setReadOnly( true );
Group2->LineEdit2->setReadOnly( true );
Group3 = new DlgRef_2Sel1Spin( this, "Group3" );
Group3->GroupBox1->setTitle(tr( "GEOM_FILLET_FACES" ) );
Group3->TextLabel1->setText(tr( "GEOM_MAIN_OBJECT" ) );
Group3->TextLabel2->setText(tr( "SELECTED_FACES" ) );
Group3->TextLabel3->setText(tr( "GEOM_RADIUS" ) );
Group3->PushButton1->setPixmap( iconSelect );
Group3->PushButton2->setPixmap( iconSelect );
Group3 = new DlgRef_2Sel1Spin( centralWidget() );
Group3->GroupBox1->setTitle( tr( "GEOM_FILLET_FACES" ) );
Group3->TextLabel1->setText( tr( "GEOM_MAIN_OBJECT" ) );
Group3->TextLabel2->setText( tr( "SELECTED_FACES" ) );
Group3->TextLabel3->setText( tr( "GEOM_RADIUS" ) );
Group3->PushButton1->setIcon( iconSelect );
Group3->PushButton2->setIcon( iconSelect );
Group3->LineEdit1->setReadOnly( true );
Group3->LineEdit2->setReadOnly( true );
Layout1->addWidget( Group1, 2, 0 );
Layout1->addWidget( Group2, 2, 0 );
Layout1->addWidget( Group3, 2, 0 );
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( Group1 );
layout->addWidget( Group2 );
layout->addWidget( Group3 );
/***************************************************************/
double SpecificStep = 10.0;
Group1->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, 3);
Group2->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, 3);
Group3->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, 3);
initSpinBox( Group1->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3 );
initSpinBox( Group2->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3 );
initSpinBox( Group3->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3 );
setHelpFileName("fillet.htm");
setHelpFileName( "fillet.htm" );
/* Initialisations */
Init();
@ -133,42 +131,38 @@ void OperationGUI_FilletDlg::Init()
{
myConstructorId = -1;
reset();
RadioButton1->setChecked( true );
myEditCurrentArgument = Group1->LineEdit1;
// main buttons
connect( buttonOk , SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
// group box
connect( GroupConstructors, SIGNAL( clicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
// push buttons
connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( Group1->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group2->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group2->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
// line edits
connect(Group1->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group3->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( Group1->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group2->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group3->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
// spin boxes
connect(Group1->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(Group2->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(Group3->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect( Group1->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( Group2->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( Group3->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
// selection
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( myGeomGUI->getApp()->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_FILLET" ) );
Group2->hide();
Group3->hide();
Group1->show();
ConstructorsClicked( 0 );
}
@ -179,9 +173,8 @@ void OperationGUI_FilletDlg::Init()
void OperationGUI_FilletDlg::ConstructorsClicked( int constructorId )
{
if ( SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType()
!= OCCViewer_Viewer::Type() )
{
RadioButton1->setChecked( true );
!= OCCViewer_Viewer::Type() ) {
mainFrame()->RadioButton1->setChecked( true );
return;
}
@ -190,33 +183,32 @@ void OperationGUI_FilletDlg::ConstructorsClicked( int constructorId )
// Get radius from previous widget
double R = 5;
if ( myConstructorId == 0 ) R = Group1->SpinBox_DX->GetValue();
else if ( myConstructorId == 1 ) R = Group2->SpinBox_DX->GetValue();
else R = Group3->SpinBox_DX->GetValue();
if ( myConstructorId == 0 ) R = Group1->SpinBox_DX->value();
else if ( myConstructorId == 1 ) R = Group2->SpinBox_DX->value();
else R = Group3->SpinBox_DX->value();
myConstructorId = constructorId;
switch ( constructorId )
{
case 0:
Group1->show();
Group2->hide();
Group3->hide();
Group1->SpinBox_DX->SetValue( R );
switch ( constructorId ) {
case 0:
Group2->hide();
Group3->hide();
Group1->show();
Group1->SpinBox_DX->setValue( R );
break;
case 1:
Group1->hide();
Group2->show();
Group3->hide();
Group2->SpinBox_DX->SetValue( R );
case 1:
Group1->hide();
Group3->hide();
Group2->show();
Group2->SpinBox_DX->setValue( R );
break;
case 2:
Group1->hide();
Group2->hide();
Group3->show();
Group3->SpinBox_DX->SetValue( R );
case 2:
Group1->hide();
Group2->hide();
Group3->show();
Group3->SpinBox_DX->setValue( R );
break;
default:
default:
break;
}
@ -227,14 +219,17 @@ void OperationGUI_FilletDlg::ConstructorsClicked( int constructorId )
activateSelection();
enableWidgets();
if ( !myShape->_is_nil() )
{
if ( !myShape->_is_nil() ) {
myEditCurrentArgument->setText( GEOMBase::GetName( myShape ) );
GEOMBase_Skeleton::LineEditReturnPressed();
}
else
myEditCurrentArgument->setText( "" );
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
displayPreview();
}
@ -256,7 +251,7 @@ void OperationGUI_FilletDlg::ClickOnOk()
//=================================================================================
bool OperationGUI_FilletDlg::ClickOnApply()
{
if ( !onAccept() )
if ( !onAccept() )
return false;
initName();
@ -275,16 +270,13 @@ void OperationGUI_FilletDlg::SelectionIntoArgument()
// If selection of main object is activated
if ( myEditCurrentArgument == Group1->LineEdit1 ||
myEditCurrentArgument == Group2->LineEdit1 ||
myEditCurrentArgument == Group3->LineEdit1 )
{
if ( IObjectCount() == 1 )
{
myEditCurrentArgument == Group3->LineEdit1 ) {
if ( IObjectCount() == 1 ) {
Standard_Boolean aResult = Standard_False;
GEOM::GEOM_Object_var anObj =
GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
if ( aResult && !anObj->_is_nil() )
{
if ( aResult && !anObj->_is_nil() ) {
myShape = anObj;
myEditCurrentArgument->setText( GEOMBase::GetName( anObj ) );
displayPreview();
@ -298,24 +290,19 @@ void OperationGUI_FilletDlg::SelectionIntoArgument()
}
// If face or edge selection is activated
else if ( myEditCurrentArgument == Group2->LineEdit2 ||
myEditCurrentArgument == Group3->LineEdit2 )
{
if ( IObjectCount() == 1 )
{
myEditCurrentArgument == Group3->LineEdit2 ) {
if ( IObjectCount() == 1 ) {
Standard_Boolean aResult = Standard_False;
GEOM::GEOM_Object_var anObj =
GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
if ( aResult && !anObj->_is_nil() )
{
if ( aResult && !anObj->_is_nil() ) {
TColStd_IndexedMapOfInteger anIndexes;
myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
if ( anIndexes.Extent() > 0 )
{
if ( anIndexes.Extent() > 0 ) {
QString aName;
if ( anIndexes.Extent() == 1 )
{
if ( anIndexes.Extent() == 1 ) {
int anIndex = anIndexes( 1 );
aName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex );
@ -358,7 +345,6 @@ void OperationGUI_FilletDlg::LineEditReturnPressed()
return;
GEOMBase_Skeleton::LineEditReturnPressed();
return;
}
@ -370,28 +356,23 @@ void OperationGUI_FilletDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
if ( send == Group1->PushButton1 )
{
if ( send == Group1->PushButton1 ) {
Group1->LineEdit1->setFocus();
myEditCurrentArgument = Group1->LineEdit1;
}
else if( send == Group2->PushButton1 )
{
else if ( send == Group2->PushButton1 ) {
Group2->LineEdit1->setFocus();
myEditCurrentArgument = Group2->LineEdit1;
}
else if( send == Group2->PushButton2 )
{
else if ( send == Group2->PushButton2 ) {
Group2->LineEdit2->setFocus();
myEditCurrentArgument = Group2->LineEdit2;
}
else if ( send == Group3->PushButton1 )
{
else if ( send == Group3->PushButton1 ) {
Group3->LineEdit1->setFocus();
myEditCurrentArgument = Group3->LineEdit1;
}
else if( send == Group3->PushButton2 )
{
else if ( send == Group3->PushButton2 ) {
Group3->LineEdit1->setFocus();
myEditCurrentArgument = Group3->LineEdit2;
}
@ -408,8 +389,8 @@ void OperationGUI_FilletDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( myGeomGUI->getApp()->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
activateSelection();
displayPreview();
@ -420,9 +401,9 @@ void OperationGUI_FilletDlg::ActivateThisDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void OperationGUI_FilletDlg::enterEvent( QEvent* e )
void OperationGUI_FilletDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
this->ActivateThisDialog();
}
@ -430,7 +411,7 @@ void OperationGUI_FilletDlg::enterEvent( QEvent* e )
// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
void OperationGUI_FilletDlg::ValueChangedInSpinBox( double newValue )
void OperationGUI_FilletDlg::ValueChangedInSpinBox( double )
{
displayPreview();
}
@ -442,9 +423,9 @@ void OperationGUI_FilletDlg::ValueChangedInSpinBox( double newValue )
void OperationGUI_FilletDlg::reset()
{
// Set Initial values of spinboxes
Group1->SpinBox_DX->SetValue( 5 );
Group2->SpinBox_DX->SetValue( 5 );
Group3->SpinBox_DX->SetValue( 5 );
Group1->SpinBox_DX->setValue( 5 );
Group2->SpinBox_DX->setValue( 5 );
Group3->SpinBox_DX->setValue( 5 );
Group1->LineEdit1->setText( "" );
Group2->LineEdit1->setText( "" );
@ -471,15 +452,6 @@ void OperationGUI_FilletDlg::reset()
enableWidgets();
}
//=================================================================================
// function : getConstructorId()
// purpose :
//=================================================================================
int OperationGUI_FilletDlg::getConstructorId() const
{
return GroupConstructors->id( GroupConstructors->selected() );
}
//=================================================================================
// function : activateSelection
// purpose : Activate selection in accordance with myEditCurrentArgument
@ -491,8 +463,7 @@ void OperationGUI_FilletDlg::activateSelection()
localSelection( myShape, TopAbs_EDGE );
else if ( !myShape->_is_nil() && myEditCurrentArgument == Group3->LineEdit2 )
localSelection( myShape, TopAbs_FACE );
else
{
else {
TColStd_MapOfInteger aMap;
aMap.Add( GEOM_SHELL );
aMap.Add( GEOM_SOLID );
@ -513,24 +484,20 @@ void OperationGUI_FilletDlg::enableWidgets()
bool toEnable = !myShape->_is_nil();
if ( anId == 1 )
{
if ( anId == 1 ) {
Group2->LineEdit2->setEnabled( toEnable );
Group2->PushButton2->setEnabled( toEnable );
if ( !toEnable )
{
if ( !toEnable ) {
Group2->LineEdit2->setText( "" );
myEdges.Clear();
}
}
else if ( anId == 2 )
{
else if ( anId == 2 ) {
Group3->LineEdit2->setEnabled( toEnable );
Group3->PushButton2->setEnabled( toEnable );
if ( !toEnable )
{
if ( !toEnable ) {
Group3->LineEdit2->setText( "" );
myFaces.Clear();
}
@ -574,8 +541,7 @@ bool OperationGUI_FilletDlg::execute( ObjectList& objects )
anObj = GEOM::GEOM_ILocalOperations::_narrow(
getOperation() )->MakeFilletAll( myShape,
getRadius() );
else if ( anId == 1 )
{
else if ( anId == 1 ) {
GEOM::ListOfLong_var aList = new GEOM::ListOfLong;
aList->length( myEdges.Extent() );
@ -585,9 +551,7 @@ bool OperationGUI_FilletDlg::execute( ObjectList& objects )
anObj = GEOM::GEOM_ILocalOperations::_narrow(
getOperation() )->MakeFilletEdges( myShape, getRadius(), aList );
}
else if ( anId == 2 )
{
int i = 0;
else if ( anId == 2 ) {
GEOM::ListOfLong_var aList = new GEOM::ListOfLong;
aList->length( myFaces.Extent() );
@ -611,7 +575,7 @@ bool OperationGUI_FilletDlg::execute( ObjectList& objects )
double OperationGUI_FilletDlg::getRadius() const
{
int anId = getConstructorId();
if ( anId == 0 ) return Group1->SpinBox_DX->GetValue();
else if ( anId == 1 ) return Group2->SpinBox_DX->GetValue();
else return Group3->SpinBox_DX->GetValue();
if ( anId == 0 ) return Group1->SpinBox_DX->value();
else if ( anId == 1 ) return Group2->SpinBox_DX->value();
else return Group3->SpinBox_DX->value();
}

View File

@ -1,34 +1,32 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_FilletDlg.h
// Author : Damien COQUERET, Open CASCADE S.A.S.
//
//
// File : OperationGUI_FilletDlg.h
// Author : Damien COQUERET
// Module : GEOM
#ifndef DIALOGBOX_FILLET_H
#define DIALOGBOX_FILLET_H
#ifndef OPERATIONGUI_FILLETDLG_H
#define OPERATIONGUI_FILLETDLG_H
#include "GEOMBase_Skeleton.h"
#include <GEOMBase_Skeleton.h>
#include <TColStd_IndexedMapOfInteger.hxx>
@ -41,47 +39,46 @@ class DlgRef_2Sel1Spin;
//=================================================================================
class OperationGUI_FilletDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
OperationGUI_FilletDlg(GeometryGUI* theGeometryGUI, QWidget* parent);
~OperationGUI_FilletDlg();
OperationGUI_FilletDlg( GeometryGUI*, QWidget* );
~OperationGUI_FilletDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& msg );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
private slots:
void ClickOnOk();
bool ClickOnApply();
void ActivateThisDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ValueChangedInSpinBox( double newValue );
void ConstructorsClicked( int constructorId );
void ClickOnOk();
bool ClickOnApply();
void ActivateThisDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ValueChangedInSpinBox( double );
void ConstructorsClicked( int );
private:
void Init();
void enterEvent( QEvent* );
void reset();
void activateSelection();
void enableWidgets();
double getRadius() const;
private:
void Init();
void enterEvent( QEvent* e );
void reset();
int getConstructorId() const;
void activateSelection();
void enableWidgets();
double getRadius() const;
private:
int myConstructorId;
GEOM::GEOM_Object_var myShape;
TColStd_IndexedMapOfInteger myEdges;
TColStd_IndexedMapOfInteger myFaces;
DlgRef_1Sel1Spin* Group1;
DlgRef_2Sel1Spin* Group2;
DlgRef_2Sel1Spin* Group3;
int myConstructorId;
GEOM::GEOM_Object_var myShape;
TColStd_IndexedMapOfInteger myEdges;
TColStd_IndexedMapOfInteger myFaces;
DlgRef_1Sel1Spin* Group1;
DlgRef_2Sel1Spin* Group2;
DlgRef_2Sel1Spin* Group3;
};
#endif // DIALOGBOX_FILLET_H
#endif // OPERATIONGUI_FILLETDLG_H

View File

@ -1,44 +1,38 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 CEA
// Copyright (C) 2003 CEA
//
// 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.
//
// 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
//
// File : OperationGUI_MaterialDlg.cxx
// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com)
//
//
// File : OperationGUI_MaterialDlg.cxx
// Author : Julia DOROVSKIKH
// Module : GEOM
// $Header$
#include "OperationGUI_MaterialDlg.h"
#include "OperationGUI_PartitionDlg.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <GEOM_DlgRef.h>
#include <GEOMBase.h>
#include <GeometryGUI.h>
#include "utilities.h"
#include <qlabel.h>
#include <qlistview.h>
#include <qspinbox.h>
using namespace std;
#include <SUIT_Session.h>
#include <SUIT_ResourceMgr.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
//=================================================================================
// class : OperationGUI_MaterialDlg()
@ -47,40 +41,42 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
OperationGUI_MaterialDlg::OperationGUI_MaterialDlg (GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, GEOM::ListOfGO ListShapes,
bool modal, WFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
OperationGUI_MaterialDlg::OperationGUI_MaterialDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
GEOM::ListOfGO ListShapes, bool modal )
: GEOMBase_Skeleton( theGeometryGUI, parent, modal )
{
myListShapes = ListShapes;
myParentDlg = parent;
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PARTITION" ) ) );
QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PARTITION")));
setCaption(tr("GEOM_MATERIAL_TITLE"));
setWindowTitle( tr( "GEOM_MATERIAL_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_PARTITION"));
RadioButton1->setPixmap(image0);
RadioButton2->close(TRUE);
RadioButton3->close(TRUE);
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_PARTITION" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton2->close();
mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton3->close();
GroupPoints = new DlgRef_1List1Spin1Btn_QTD(this, "GroupPoints");
GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION"));
GroupPoints = new DlgRef_1List1Spin1Btn( centralWidget() );
GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION" ) );
myShapeCol = GroupPoints->ListView1->addColumn(tr("GEOM_MATERIAL_SHAPE"));
myMaterCol = GroupPoints->ListView1->addColumn(tr("GEOM_MATERIAL_MATERIAL"));
GroupPoints->ListView1->setSelectionMode(QListView::Extended);
GroupPoints->ListView1->setSorting(-1);
QStringList columns;
columns << tr( "GEOM_MATERIAL_SHAPE" ) << tr( "GEOM_MATERIAL_MATERIAL" );
GroupPoints->ListView1->setHeaderLabels( columns );
GroupPoints->ListView1->setSelectionMode( QAbstractItemView::ExtendedSelection );
GroupPoints->ListView1->setSortingEnabled( false );
GroupPoints->TextLabel1->setText(tr("GEOM_MATERIAL_ID"));
GroupPoints->PushButton1->setText(tr("GEOM_MATERIAL_SET"));
GroupPoints->TextLabel1->setText( tr( "GEOM_MATERIAL_ID" ) );
GroupPoints->PushButton1->setText( tr( "GEOM_MATERIAL_SET" ) );
Layout1->addWidget(GroupPoints, 1, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPoints );
/***************************************************************/
setHelpFileName("partition.htm");
setHelpFileName( "partition.htm" );
Init();
}
@ -102,43 +98,32 @@ void OperationGUI_MaterialDlg::Init()
{
// get materials list from the parent dialog
OperationGUI_PartitionDlg* aParentDlg =
dynamic_cast<OperationGUI_PartitionDlg*>(myParentDlg);
if (aParentDlg)
qobject_cast<OperationGUI_PartitionDlg*>( parentWidget() );
if ( aParentDlg )
myListMaterials = aParentDlg->GetListMaterials();
/* list filling */
MESSAGE("Filling list with " << myListShapes.length() << " objects");
QString aMaterialId;
QListViewItem *anItem = NULL;
for (int ind = 0; ind < myListShapes.length(); ind++) {
for ( int ind = 0; ind < myListShapes.length(); ind++ ) {
GEOM::GEOM_Object_var anObject = myListShapes[ind];
if (!anObject->_is_nil()) {
MESSAGE("Insert " << GEOMBase::GetName( anObject ));
if (ind < myListMaterials.length())
aMaterialId = QString::number(myListMaterials[ind]);
else
aMaterialId = "0";
if (anItem)
// insert after aPrevItem
anItem = new QListViewItem(GroupPoints->ListView1, anItem,
GEOMBase::GetName( anObject ), aMaterialId);
else
// the first item creation
anItem = new QListViewItem(GroupPoints->ListView1,
GEOMBase::GetName( anObject ), aMaterialId);
if ( !anObject->_is_nil() ) {
QStringList labels;
labels << GEOMBase::GetName( anObject );
labels << ( ind < myListMaterials.length() ?
QString::number( myListMaterials[ind] ) : QString( "0" ) );
GroupPoints->ListView1->addTopLevelItem( new QTreeWidgetItem( labels ) );
}
}
MESSAGE("Filled");
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
buttonApply->close(TRUE);
buttonCancel->setText(tr("GEOM_BUT_CANCEL"));
connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetMaterial()));
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
buttonApply()->setAttribute( Qt::WA_DeleteOnClose );
buttonApply()->close();
buttonCancel()->setText( tr( "GEOM_BUT_CANCEL" ) );
connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetMaterial() ) );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
}
@ -148,28 +133,22 @@ void OperationGUI_MaterialDlg::Init()
//=================================================================================
void OperationGUI_MaterialDlg::ClickOnOk()
{
SUIT_Session::session()->activeApplication()->putInfo(tr(""));
SUIT_Session::session()->activeApplication()->putInfo( "" );
int nbSh = myListShapes.length();
myListMaterials.length(nbSh);
myListMaterials.length( nbSh );
QListViewItemIterator it (GroupPoints->ListView1);
for (int i = 0; it.current() != 0; it++, i++) {
QString aMatIdStr = it.current()->text(myMaterCol);
myListMaterials[i] = aMatIdStr.toInt();
MESSAGE("For shape # " << i << " material ID = " << myListMaterials[i]);
}
QTreeWidgetItemIterator it( GroupPoints->ListView1 );
for ( int i = 0; *it; it++, i++ )
myListMaterials[i] = (*it)->text( 1 ).toInt();
// set materials list to the parent dialog
OperationGUI_PartitionDlg* aParentDlg =
dynamic_cast<OperationGUI_PartitionDlg*>(myParentDlg);
if (aParentDlg)
{
aParentDlg->SetListMaterials(myListMaterials);
}
qobject_cast<OperationGUI_PartitionDlg*>( parentWidget() );
if ( aParentDlg )
aParentDlg->SetListMaterials( myListMaterials );
ClickOnCancel();
return;
}
@ -199,15 +178,13 @@ void OperationGUI_MaterialDlg::SelectionIntoArgument()
//=================================================================================
void OperationGUI_MaterialDlg::SetMaterial()
{
int aMatId = GroupPoints->SpinBox1->value();
QString aMatIdStr;
aMatIdStr.setNum(aMatId);
QListViewItemIterator it (GroupPoints->ListView1);
for (; it.current() != 0; it++) {
if (it.current()->isSelected())
it.current()->setText(myMaterCol, aMatIdStr);
QString aMatIdStr = QString::number( GroupPoints->SpinBox1->value() );
QList<QTreeWidgetItem*> selectedItems = GroupPoints->ListView1->selectedItems();
QListIterator<QTreeWidgetItem*> it( selectedItems );
while ( it.hasNext() ) {
it.next()->setText( 1, aMatIdStr );
}
return;
}
@ -218,8 +195,8 @@ void OperationGUI_MaterialDlg::SetMaterial()
void OperationGUI_MaterialDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
return;
}
@ -228,8 +205,8 @@ void OperationGUI_MaterialDlg::ActivateThisDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void OperationGUI_MaterialDlg::enterEvent(QEvent* e)
void OperationGUI_MaterialDlg::enterEvent( QEvent* )
{
if (!GroupConstructors->isEnabled())
if ( !mainFrame()->GroupConstructors->isEnabled() )
this->ActivateThisDialog();
}

View File

@ -1,35 +1,33 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 CEA
// Copyright (C) 2003 CEA
//
// 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.
//
// 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
//
// File : OperationGUI_MaterialDlg.h
// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com)
//
//
// File : OperationGUI_MaterialDlg.h
// Author : Julia DOROVSKIKH
// Module : GEOM
#ifndef DIALOGBOX_MATERIAL_H
#define DIALOGBOX_MATERIAL_H
#ifndef OPERATIONGUI_MATERIALDLG_H
#define OPERATIONGUI_MATERIALDLG_H
#include "GEOMBase_Skeleton.h"
#include "DlgRef_1List1Spin1Btn_QTD.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_1List1Spin1Btn;
//=================================================================================
// class : OperationGUI_MaterialDlg
@ -37,33 +35,28 @@
//=================================================================================
class OperationGUI_MaterialDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
OperationGUI_MaterialDlg (GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, GEOM::ListOfGO ListShapes,
bool modal = FALSE, WFlags fl = 0);
~OperationGUI_MaterialDlg();
OperationGUI_MaterialDlg( GeometryGUI*, QWidget*, GEOM::ListOfGO,
bool = false );
~OperationGUI_MaterialDlg();
private:
void Init();
void enterEvent(QEvent* e);
QWidget* myParentDlg;
GEOM::ListOfGO myListShapes;
GEOM::ListOfLong myListMaterials;
DlgRef_1List1Spin1Btn_QTD* GroupPoints;
int myShapeCol;
int myMaterCol;
void Init();
void enterEvent( QEvent* );
private:
GEOM::ListOfGO myListShapes;
GEOM::ListOfLong myListMaterials;
DlgRef_1List1Spin1Btn* GroupPoints;
private slots:
void ClickOnOk();
void ActivateThisDialog();
void SelectionIntoArgument();
void SetMaterial();
void ClickOnOk();
void ActivateThisDialog();
void SelectionIntoArgument();
void SetMaterial();
};
#endif // DIALOGBOX_MATERIAL_H
#endif // OPERATIONGUI_MATERIALDLG_H

View File

@ -1,46 +1,42 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_PartitionDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : OperationGUI_PartitionDlg.cxx
// Author : Lucien PIGNOLONI
// Module : GEOM
// $Header$
#include "OperationGUI_PartitionDlg.h"
#include "OperationGUI_MaterialDlg.h"
#include "GEOMImpl_Types.hxx"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "SUIT_Desktop.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <GEOMImpl_Types.hxx>
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qlabel.h>
#include "utilities.h"
#include <SUIT_Desktop.h>
#include <SUIT_Session.h>
#include <SUIT_ResourceMgr.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
//=================================================================================
// class : OperationGUI_PartitionDlg()
@ -49,38 +45,41 @@
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
OperationGUI_PartitionDlg::OperationGUI_PartitionDlg(GeometryGUI* theGeometryGUI, QWidget* parent)
:GEOMBase_Skeleton(theGeometryGUI, parent, "OperationGUI_PartitionDlg", false,
WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
OperationGUI_PartitionDlg::OperationGUI_PartitionDlg( GeometryGUI* theGeometryGUI, QWidget* parent )
: GEOMBase_Skeleton( theGeometryGUI, parent, false )
{
SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr();
QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PARTITION")));
QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PARTITION_PLANE")));
QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT")));
QPixmap image0( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_PARTITION" ) ) );
QPixmap image1( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_PARTITION_PLANE" ) ) );
QPixmap image2( aResMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setCaption(tr("GEOM_PARTITION_TITLE"));
setWindowTitle( tr( "GEOM_PARTITION_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_PARTITION"));
RadioButton1->setPixmap(image0);
RadioButton2->setPixmap(image1);
RadioButton3->close(TRUE);
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_PARTITION" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setIcon( image1 );
mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton3->close();
// Full partition (contains half-space partition)
GroupPoints = new DlgRef_2Sel1List_QTD(this, "GroupPoints");
GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION"));
GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS"));
GroupPoints->TextLabel2->setText(tr("GEOM_TOOL_OBJECT"));
GroupPoints->TextLabel3->setText(tr("GEOM_RECONSTRUCTION_LIMIT"));
GroupPoints->PushButton1->setPixmap(image2);
GroupPoints->PushButton2->setPixmap(image2);
GroupPoints = new DlgRef_2Sel1List( centralWidget() );
GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION" ) );
GroupPoints->TextLabel1->setText( tr( "GEOM_OBJECTS" ) );
GroupPoints->TextLabel2->setText( tr( "GEOM_TOOL_OBJECT" ) );
GroupPoints->TextLabel3->setText( tr( "GEOM_RECONSTRUCTION_LIMIT" ) );
GroupPoints->PushButton1->setIcon( image2 );
GroupPoints->PushButton2->setIcon( image2 );
GroupPoints->LineEdit1->setReadOnly( true );
GroupPoints->LineEdit2->setReadOnly( true );
Layout1->addWidget(GroupPoints, 2, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPoints );
/***************************************************************/
setHelpFileName("partition.htm");
setHelpFileName( "partition.htm" );
Init();
}
@ -95,6 +94,15 @@ OperationGUI_PartitionDlg::~OperationGUI_PartitionDlg()
// no need to delete child widgets, Qt does it all for us
}
void OperationGUI_PartitionDlg::SetListMaterials( GEOM::ListOfLong ListMaterials )
{
myListMaterials = ListMaterials;
}
GEOM::ListOfLong OperationGUI_PartitionDlg::GetListMaterials()
{
return myListMaterials;
}
//=================================================================================
// function : Init()
@ -103,30 +111,32 @@ OperationGUI_PartitionDlg::~OperationGUI_PartitionDlg()
void OperationGUI_PartitionDlg::Init()
{
/* type for sub shape selection */
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_SOLID"));
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_SHELL"));
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_FACE"));
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_WIRE"));
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_EDGE"));
GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_VERTEX"));
GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_SOLID" ) );
GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_SHELL" ) );
GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_FACE" ) );
GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_WIRE" ) );
GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_EDGE" ) );
GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_VERTEX" ) );
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( GroupPoints->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(GroupPoints->ComboBox1, SIGNAL(activated(int)), this, SLOT(ComboTextChanged()));
connect( GroupPoints->ComboBox1, SIGNAL( activated( int ) ), this, SLOT( ComboTextChanged() ) );
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( myGeomGUI->getApp()->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_PARTITION" ) );
ConstructorsClicked( 0 );
}
@ -135,50 +145,45 @@ void OperationGUI_PartitionDlg::Init()
// function : ConstructorsClicked()
// purpose : Radio button management
//=================================================================================
void OperationGUI_PartitionDlg::ConstructorsClicked(int constructorId)
void OperationGUI_PartitionDlg::ConstructorsClicked( int constructorId )
{
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
globalSelection();
myListShapes.length(0);
myListTools.length(0);
myListKeepInside.length(0);
myListRemoveInside.length(0);
myListMaterials.length(0);
myListShapes.length( 0 );
myListTools.length( 0 );
myListKeepInside.length( 0 );
myListRemoveInside.length( 0 );
myListMaterials.length( 0 );
switch (constructorId)
{
case 0: /*Full partition */
{
GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION"));
GroupPoints->TextLabel2->setText(tr("GEOM_TOOL_OBJECT"));
resize(0, 0);
GroupPoints->TextLabel3->show();
GroupPoints->ComboBox1->show();
GroupPoints->ComboBox1->setCurrentItem(0);
break;
}
case 1: /*Half-space partition */
{
GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION_HALFSPACE"));
GroupPoints->TextLabel3->hide();
GroupPoints->ComboBox1->hide();
GroupPoints->TextLabel2->setText(tr("GEOM_PLANE"));
resize(0, 0);
break;
}
}
switch ( constructorId ) {
case 0: /*Full partition */
GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION" ) );
GroupPoints->TextLabel2->setText( tr( "GEOM_TOOL_OBJECT" ) );
GroupPoints->TextLabel3->show();
GroupPoints->ComboBox1->show();
GroupPoints->ComboBox1->setCurrentIndex( 0 );
break;
case 1: /*Half-space partition */
GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION_HALFSPACE" ) );
GroupPoints->TextLabel3->hide();
GroupPoints->ComboBox1->hide();
GroupPoints->TextLabel2->setText( tr( "GEOM_PLANE" ) );
break;
}
myEditCurrentArgument = GroupPoints->LineEdit1;
GroupPoints->LineEdit1->clear();
GroupPoints->LineEdit2->clear();
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
myEditCurrentArgument->setFocus();
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
MESSAGE(width()<<" "<<height());
connect( myGeomGUI->getApp()->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
}
@ -219,10 +224,8 @@ void OperationGUI_PartitionDlg::SelectionIntoArgument()
int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true );
if ( nbSel < 1 )
{
if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
{
if ( nbSel < 1 ) {
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
myListShapes.length( 0 );
myListMaterials.length( 0 );
}
@ -232,21 +235,20 @@ void OperationGUI_PartitionDlg::SelectionIntoArgument()
// One and only one plane can be selected
if ( getConstructorId() == 1 && myEditCurrentArgument == GroupPoints->LineEdit2 && nbSel != 1 )
{
if ( getConstructorId() == 1 &&
myEditCurrentArgument == GroupPoints->LineEdit2 &&
nbSel != 1 ) {
myListTools.length( 0 );
return;
}
if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
{
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myListShapes, true );
myListMaterials.length( 0 );
if ( !myListShapes.length() )
return;
}
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
{
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myListTools, true );
if ( !myListTools.length() )
return;
@ -264,12 +266,11 @@ void OperationGUI_PartitionDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
if(send == GroupPoints->PushButton1)
if ( send == GroupPoints->PushButton1 )
myEditCurrentArgument = GroupPoints->LineEdit1;
else if(send == GroupPoints->PushButton2)
{
else if ( send == GroupPoints->PushButton2 ) {
myEditCurrentArgument = GroupPoints->LineEdit2;
if( getConstructorId()==1 )
if ( getConstructorId() == 1 )
globalSelection( GEOM_PLANE );
}
@ -288,12 +289,11 @@ void OperationGUI_PartitionDlg::LineEditReturnPressed()
{
QLineEdit* send = (QLineEdit*)sender();
if(send == GroupPoints->LineEdit1 ||
send == GroupPoints->LineEdit2 )
{
if ( send == GroupPoints->LineEdit1 ||
send == GroupPoints->LineEdit2 ) {
myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed();
}
}
}
@ -304,8 +304,8 @@ void OperationGUI_PartitionDlg::LineEditReturnPressed()
void OperationGUI_PartitionDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(myGeomGUI->getApp()->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( myGeomGUI->getApp()->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
ConstructorsClicked( getConstructorId() );
}
@ -315,9 +315,9 @@ void OperationGUI_PartitionDlg::ActivateThisDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void OperationGUI_PartitionDlg::enterEvent(QEvent* e)
void OperationGUI_PartitionDlg::enterEvent( QEvent* )
{
if (!GroupConstructors->isEnabled())
if ( !mainFrame()->GroupConstructors->isEnabled() )
this->ActivateThisDialog();
}
@ -336,10 +336,10 @@ GEOM::GEOM_IOperations_ptr OperationGUI_PartitionDlg::createOperation()
// function : isValid
// purpose :
//=================================================================================
bool OperationGUI_PartitionDlg::isValid( QString& msg )
bool OperationGUI_PartitionDlg::isValid( QString& )
{
return (myListShapes.length() || myListTools.length() ||
myListKeepInside.length() || myListRemoveInside.length());
return ( myListShapes.length() || myListTools.length() ||
myListKeepInside.length() || myListRemoveInside.length() );
}
@ -357,11 +357,10 @@ bool OperationGUI_PartitionDlg::execute( ObjectList& objects )
int aLimit = GetLimit();
int aConstructorId = getConstructorId();
if (aConstructorId == 1)
if ( aConstructorId == 1 )
aLimit = GEOM::SHAPE;
if (isValid( msg )) {
if ( isValid( msg ) ) {
anObj = GEOM::GEOM_IBooleanOperations::_narrow(getOperation())->
MakePartition(myListShapes, myListTools,
myListKeepInside, myListRemoveInside,
@ -369,7 +368,7 @@ bool OperationGUI_PartitionDlg::execute( ObjectList& objects )
res = true;
}
if (!anObj->_is_nil())
if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() );
return res;
@ -392,7 +391,7 @@ void OperationGUI_PartitionDlg::closeEvent( QCloseEvent* e )
//=======================================================================
void OperationGUI_PartitionDlg::ComboTextChanged()
{
bool IsEnabled = GroupPoints->ComboBox1->currentItem() < 3;
//bool IsEnabled = GroupPoints->ComboBox1->currentItem() < 3;
//GroupPoints->LineEdit3->setEnabled(IsEnabled);
//GroupPoints->LineEdit4->setEnabled(IsEnabled);
//GroupPoints->TextLabel4->setEnabled(IsEnabled);
@ -408,10 +407,9 @@ void OperationGUI_PartitionDlg::ComboTextChanged()
//=================================================================================
int OperationGUI_PartitionDlg::GetLimit() const
{
int aLimit = GroupPoints->ComboBox1->currentItem();
int aLimit = GroupPoints->ComboBox1->currentIndex();
switch(aLimit)
{
switch ( aLimit ) {
case 0: aLimit = GEOM::SOLID ; break;
case 1: aLimit = GEOM::SHELL ; break;
case 2: aLimit = GEOM::FACE ; break;

View File

@ -1,35 +1,34 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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 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.
// 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
//
// File : OperationGUI_PartitionDlg.h
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : OperationGUI_PartitionDlg.h
// Author : Lucien PIGNOLONI
// Module : GEOM
#ifndef DIALOGBOX_PARTITION_H
#define DIALOGBOX_PARTITION_H
#ifndef OPERATIONGUI_PARTITIONDLG_H
#define OPERATIONGUI_PARTITIONDLG_H
#include "GEOMBase_Skeleton.h"
#include "DlgRef_2Sel1List_QTD.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_2Sel1List;
//=================================================================================
// class : OperationGUI_PartitionDlg
@ -37,48 +36,46 @@
//=================================================================================
class OperationGUI_PartitionDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
OperationGUI_PartitionDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0);
~OperationGUI_PartitionDlg();
void SetListMaterials(GEOM::ListOfLong ListMaterials)
{ myListMaterials = ListMaterials; }
GEOM::ListOfLong GetListMaterials()
{ return myListMaterials; }
OperationGUI_PartitionDlg( GeometryGUI*, QWidget* = 0 );
~OperationGUI_PartitionDlg();
void SetListMaterials( GEOM::ListOfLong );
GEOM::ListOfLong GetListMaterials();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
virtual void closeEvent( QCloseEvent* e );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* );
private:
void Init();
void enterEvent(QEvent* e);
int GetLimit() const;
void Init();
void enterEvent( QEvent* );
int GetLimit() const;
GEOM::ListOfGO myListShapes;
GEOM::ListOfLong myListMaterials;
GEOM::ListOfGO myListTools;
GEOM::ListOfGO myListRemoveInside;
GEOM::ListOfGO myListKeepInside;
private:
GEOM::ListOfGO myListShapes;
GEOM::ListOfLong myListMaterials;
GEOM::ListOfGO myListTools;
GEOM::ListOfGO myListRemoveInside;
GEOM::ListOfGO myListKeepInside;
DlgRef_2Sel1List_QTD* GroupPoints;
DlgRef_2Sel1List* GroupPoints;
private slots:
void ClickOnOk();
bool ClickOnApply();
void ActivateThisDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ComboTextChanged();
void ConstructorsClicked(int constructorId);
void ClickOnOk();
bool ClickOnApply();
void ActivateThisDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ComboTextChanged();
void ConstructorsClicked( int );
};
#endif // DIALOGBOX_PARTITION_H
#endif // OPERATIONGUI_PARTITIONDLG_H

View File

@ -21,7 +21,7 @@
#
# File : Makefile.am
# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com)
# Package : BooleanGUI
# Package : TransformationGUI
#
include $(top_srcdir)/adm_local/unix/make_common_starter.am

View File

@ -360,7 +360,7 @@ void TransformationGUI_MultiRotationDlg::ActivateThisDialog()
//=================================================================================
void TransformationGUI_MultiRotationDlg::enterEvent( QEvent* )
{
if( !mainFrame()->GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}

View File

@ -385,7 +385,7 @@ void TransformationGUI_MultiTranslationDlg::ActivateThisDialog()
//=================================================================================
void TransformationGUI_MultiTranslationDlg::enterEvent( QEvent* )
{
if( !mainFrame()->GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}

View File

@ -258,7 +258,7 @@ void TransformationGUI_ScaleDlg::ActivateThisDialog()
//=================================================================================
void TransformationGUI_ScaleDlg::enterEvent( QEvent* )
{
if( !mainFrame()->GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}

View File

@ -348,7 +348,7 @@ void TransformationGUI_TranslationDlg::ActivateThisDialog()
//=================================================================================
void TransformationGUI_TranslationDlg::enterEvent( QEvent* )
{
if( !mainFrame()->GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}