]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
*** empty log message ***
authorvsr <vsr@opencascade.com>
Tue, 23 Oct 2007 09:11:45 +0000 (09:11 +0000)
committervsr <vsr@opencascade.com>
Tue, 23 Oct 2007 09:11:45 +0000 (09:11 +0000)
14 files changed:
src/DlgRef/DlgRef_1Sel1List4Btn_QTD.ui [new file with mode: 0644]
src/DlgRef/GEOM_DlgRef.cxx
src/DlgRef/GEOM_DlgRef.h
src/DlgRef/Makefile.am
src/GEOMBase/GEOMBase_Skeleton.cxx
src/GEOMBase/GEOMBase_Skeleton.h
src/GroupGUI/GroupGUI.cxx
src/GroupGUI/GroupGUI.h
src/GroupGUI/GroupGUI_GroupDlg.cxx
src/GroupGUI/GroupGUI_GroupDlg.h
src/GroupGUI/Makefile.am
src/MeasureGUI/MeasureGUI_BndBoxDlg.cxx
src/MeasureGUI/MeasureGUI_DistanceDlg.cxx
src/MeasureGUI/MeasureGUI_PointDlg.cxx

diff --git a/src/DlgRef/DlgRef_1Sel1List4Btn_QTD.ui b/src/DlgRef/DlgRef_1Sel1List4Btn_QTD.ui
new file mode 100644 (file)
index 0000000..ef0ce65
--- /dev/null
@@ -0,0 +1,140 @@
+<ui version="4.0" >
+ <class>DlgRef_1Sel1List4Btn_QTD</class>
+ <widget class="QWidget" name="DlgRef_1Sel1List4Btn_QTD" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>221</width>
+    <height>174</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string/>
+  </property>
+  <layout class="QGridLayout" >
+   <property name="margin" >
+    <number>0</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item row="0" column="0" >
+    <widget class="QGroupBox" name="GroupBox1" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>7</hsizetype>
+       <vsizetype>7</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title" >
+      <string/>
+     </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item rowspan="3" row="2" column="0" colspan="3" >
+       <widget class="QListWidget" name="ListView1" />
+      </item>
+      <item row="1" column="3" >
+       <widget class="QPushButton" name="PushButton3" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" colspan="3" >
+       <widget class="QPushButton" name="PushButton2" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TextLabel1" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL1</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" colspan="2" >
+       <widget class="QLineEdit" name="LineEdit1" />
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="PushButton1" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3" >
+       <widget class="QPushButton" name="PushButton4" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="3" >
+       <widget class="QPushButton" name="PushButton5" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="3" >
+       <spacer>
+        <property name="orientation" >
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" >
+         <size>
+          <width>20</width>
+          <height>21</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <tabstops>
+  <tabstop>PushButton1</tabstop>
+  <tabstop>LineEdit1</tabstop>
+  <tabstop>PushButton2</tabstop>
+  <tabstop>PushButton3</tabstop>
+  <tabstop>ListView1</tabstop>
+  <tabstop>PushButton4</tabstop>
+  <tabstop>PushButton5</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
index 66aa7e48fde5fb9363832d5d7face1bcbe94d40e..c67cdee2a9ed968798583ba06ce3a748065a135a 100644 (file)
@@ -79,6 +79,20 @@ DlgRef_1Sel1Check::~DlgRef_1Sel1Check()
 {
 }
 
+//////////////////////////////////////////
+// DlgRef_1Sel1List4Btn
+//////////////////////////////////////////
+
+DlgRef_1Sel1List4Btn::DlgRef_1Sel1List4Btn( QWidget* parent, Qt::WindowFlags f )
+: QWidget( parent, f )
+{
+  setupUi( this );
+}
+
+DlgRef_1Sel1List4Btn::~DlgRef_1Sel1List4Btn()
+{
+}
+
 //////////////////////////////////////////
 // DlgRef_1Sel1Spin1Check
 //////////////////////////////////////////
index def39e52bc9bdea38cbbc55a9f2ec2a28af09bcb..71e797a06f35c51740b9ffb40c77bc0eab75853e 100644 (file)
@@ -98,6 +98,22 @@ public:
   ~DlgRef_1Sel1Check();
 };
 
+//////////////////////////////////////////
+// DlgRef_1Sel1List4Btn
+//////////////////////////////////////////
+
+#include "ui_DlgRef_1Sel1List4Btn_QTD.h"
+
+class DLGREF_EXPORT DlgRef_1Sel1List4Btn : public QWidget, 
+                                          public Ui::DlgRef_1Sel1List4Btn_QTD
+{
+  Q_OBJECT
+
+public:
+  DlgRef_1Sel1List4Btn( QWidget* = 0, Qt::WindowFlags = 0 );
+  ~DlgRef_1Sel1List4Btn();
+};
+
 //////////////////////////////////////////
 // DlgRef_1Sel1Spin1Check
 //////////////////////////////////////////
index 44c4220fea833d82a5645030f8048d9fa74221b3..ae699d94f908bb76e7a8602ac4b4c0b0a593b1e8 100644 (file)
@@ -42,6 +42,7 @@ UIC_FILES = \
        ui_DlgRef_1Sel1Check1List_QTD.h \
        ui_DlgRef_1Sel1Check1Sel_QTD.h  \
        ui_DlgRef_1Sel1Check_QTD.h      \
+       ui_DlgRef_1Sel1List4Btn_QTD.h   \
        ui_DlgRef_1Sel1Spin1Check_QTD.h \
        ui_DlgRef_1Sel1Spin_QTD.h       \
        ui_DlgRef_1Sel2Spin_QTD.h       \
index 8550cfbec9a9c0b95c39889c047409c74568fa79..5fd4b4f5bb484d1ff539b4a638cd4958e307f867 100644 (file)
@@ -227,15 +227,17 @@ const char* GEOMBase_Skeleton::getNewObjectName() const
 //=================================================================================
 int GEOMBase_Skeleton::getConstructorId() const
 {
-  /*if ( GroupConstructors != NULL && GroupConstructors->selected() != NULL )
-    return GroupConstructors->id( GroupConstructors->selected() );
-    return -1;*/
-
-  if ( myRBGroup != NULL )
+  if ( myRBGroup )
     return myRBGroup->checkedId();
   return -1;
 }
 
+void GEOMBase_Skeleton::setConstructorId( const int id )
+{
+  if ( myRBGroup && myRBGroup->button( id ) )
+    myRBGroup->button( id )->setChecked( true );
+}
+
 //=================================================================================
 // function : ClickOnHelp()
 // purpose  :
index e38b14cf0c19c3d0589fc104577fe0daff23cdcf..2656f4f1991e877f381daf8e4720d17ce7c6f790 100644 (file)
@@ -73,6 +73,9 @@ protected:
     /*! returns id of a selected "constructor" radio button or '-1' in case of error
      */
     int                 getConstructorId() const;
+    /*! set selected "constructor" radio button id
+     */
+    void                setConstructorId( const int );
 
     void                setHelpFileName( const QString& );
 
index e335605c6325fae08ffae8f37b88280921088392..fdb8a1950588963c646a6b46bb8efda1abe41b22 100644 (file)
@@ -1,49 +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
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+// File   : GroupGUI.cxx
+// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com)
 //
-//
-//  File   : GroupGUI.cxx
-//  Author : Sergey ANIKIN
-//  Module : GEOM
-//  $Header$
 
 #include "GroupGUI.h"
 #include "GroupGUI_GroupDlg.h" 
 
-#include "GEOMImpl_Types.hxx"
+#include <GeometryGUI.h>
+#include <GEOMBase.h>
+#include <GEOMImpl_Types.hxx>
 
-#include "SUIT_Session.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-#include "SalomeApp_Application.h"
-#include "SalomeApp_Study.h"
-#include "LightApp_SelectionMgr.h"
+#include <SUIT_Session.h>
+#include <SUIT_Desktop.h>
+#include <SUIT_MessageBox.h>
+#include <SalomeApp_Application.h>
+#include <SalomeApp_Study.h>
+#include <LightApp_SelectionMgr.h>
 
 //=======================================================================
 // function : GroupGUI()
 // purpose  : Constructor
 //=======================================================================
-GroupGUI::GroupGUI(GeometryGUI* parent)
-: GEOMGUI(parent)
+GroupGUI::GroupGUI( GeometryGUI* parent )
+  : GEOMGUI( parent )
 {
 }
 
@@ -67,24 +66,23 @@ bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
 
   getGeometryGUI()->EmitSignalDeactivateDialog();
 
-  QDialog* aDlg = NULL;
+  QDialog* aDlg = 0;
 
-  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>(app->activeStudy());
+  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
   if ( !appStudy ) return false;
   _PTR(Study) aStudy = appStudy->studyDS();
 
   if ( aStudy->GetProperties()->IsLocked() ) {
-    SUIT_MessageBox::warn1 ( parent,
-                            QObject::tr("WRN_WARNING"), 
-                            QObject::tr("WRN_STUDY_LOCKED"),
-                            QObject::tr("BUT_OK") );
+    SUIT_MessageBox::warning( parent,
+                             tr( "WRN_WARNING" ), 
+                             tr( "WRN_STUDY_LOCKED" ) );
     return false;
   }
 
   switch ( theCommandID ) {
   case 800: 
   case 8001: // CREATE GROUP
-    aDlg = new GroupGUI_GroupDlg (GroupGUI_GroupDlg::CreateGroup, getGeometryGUI(), parent); 
+    aDlg = new GroupGUI_GroupDlg( GroupGUI_GroupDlg::CreateGroup, getGeometryGUI(), parent ); 
     break;
   case 801:  // EDIT GROUP
     {
@@ -92,29 +90,32 @@ bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
       aList.Clear();
 
       LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
-      if (aSelMgr)
-        aSelMgr->selectedObjects(aList);
+      if ( aSelMgr )
+        aSelMgr->selectedObjects( aList );
 
-      if (aList.Extent() == 1) {
+      if ( aList.Extent() == 1 ) {
        Standard_Boolean aResult = Standard_False;
        GEOM::GEOM_Object_var anObj =
          GEOMBase::ConvertIOinGEOMObject( aList.First(), aResult );
 
-       if (aResult && !CORBA::is_nil(anObj) && anObj->GetType() == GEOM_GROUP) {
-         aDlg = new GroupGUI_GroupDlg (GroupGUI_GroupDlg::EditGroup, getGeometryGUI(), parent); 
+       if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) {
+         aDlg = new GroupGUI_GroupDlg( GroupGUI_GroupDlg::EditGroup, getGeometryGUI(), parent ); 
          break;
        }
       }
-      SUIT_MessageBox::warn1(parent, tr("WRN_WARNING"), tr("NO_GROUP"), tr("BUT_OK") );
+      SUIT_MessageBox::warning( parent, tr( "WRN_WARNING" ), tr( "NO_GROUP" ) );
       break;
     }
   default: 
-    app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); 
+    app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); 
     break;
   }
 
-  if (aDlg != NULL)
+  if ( aDlg ) {
+    aDlg->updateGeometry();
+    aDlg->resize( aDlg->minimumSize() );
     aDlg->show();
+  }
 
   return true;
 }
@@ -124,11 +125,11 @@ bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
 //=====================================================================================
 extern "C"
 {
-#ifdef WNT
-       __declspec( dllexport )
+#ifdef WIN32
+  __declspec( dllexport )
 #endif
-  GEOMGUI* GetLibGUI(GeometryGUI* p)
+  GEOMGUI* GetLibGUI( GeometryGUI* p )
   {
-    return new GroupGUI(p);
+    return new GroupGUI( p );
   }
 }
index 71bac9677968738b4e09ddafe7b0a72592bf71fd..4d4df6e5b2b7955d7fb41655f5231986e3a667f6 100644 (file)
@@ -1,34 +1,32 @@
-//  GEOM GEOMGUI : GUI for Geometry component
+// GEOM GEOMGUI : GUI for Geometry component
 //
-//  Copyright (C) 2004  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// Copyright (C) 2004  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   : GroupGUI.h
+// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com)
 //
-//
-//  File   : GroupGUI.h
-//  Author : Sergey ANIKIN
-//  Module : GEOM
 
 #ifndef GROUPGUI_H
 #define GROUPGUI_H
 
-#include "GEOMGUI.h"
+#include <GEOMGUI.h>
 
 //=================================================================================
 // class    : GroupGUI
@@ -39,10 +37,10 @@ class GroupGUI : public GEOMGUI
   Q_OBJECT
 
 public:
-  GroupGUI(GeometryGUI* parent);
+  GroupGUI( GeometryGUI* );
   ~GroupGUI();
 
-  bool OnGUIEvent( int theCommandID, SUIT_Desktop* parent );
+  bool OnGUIEvent( int, SUIT_Desktop* );
 };
 
-#endif
+#endif // GROUPGUI_H
index e5a61aa2ce3c3f0e799b704a1bc93594255c4fd1..3e702602add6649128155513687a981548f12e4f 100644 (file)
-//  GEOM GEOMGUI : GUI for Geometry component
+// GEOM GEOMGUI : GUI for Geometry component
 //
-//  Copyright (C) 2004  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// Copyright (C) 2004  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   : GroupGUI_GroupDlg.cxx
+// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com)
 //
-//
-//  File   : GroupGUI_GroupDlg.cxx
-//  Author : Sergey ANIKIN
-//  Module : GEOM
-//  $Header$
 
 #include "GroupGUI_GroupDlg.h"
 
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-#include "SalomeApp_Application.h"
-#include "SalomeApp_Study.h"
-#include "LightApp_SelectionMgr.h"
-
-#include "GEOMBase.h"
+#include <SUIT_Desktop.h>
+#include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
+#include <SalomeApp_Application.h>
+#include <SalomeApp_Study.h>
+#include <LightApp_SelectionMgr.h>
 
-#include "GEOMImpl_Types.hxx"
+#include <GEOM_DlgRef.h>
+#include <GEOMBase.h>
 
-#include <qlabel.h>
-#include <qlistbox.h>
-#include <qlineedit.h>
-#include <qmap.h>
+#include <GEOMImpl_Types.hxx>
 
 #include <TColStd_IndexedMapOfInteger.hxx>
 #include <TColStd_MapOfInteger.hxx>
 
-
-GroupGUI_GroupDlg::GroupGUI_GroupDlg(Mode mode, GeometryGUI* theGeometryGUI, QWidget* parent)
-  :GEOMBase_Skeleton( theGeometryGUI, parent, "GroupGUI_GroupDlg", false,
-                      WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
-   myMode( mode ),
-   myBusy( false )
+GroupGUI_GroupDlg::GroupGUI_GroupDlg( Mode mode, GeometryGUI* theGeometryGUI, QWidget* parent )
+  : GEOMBase_Skeleton( theGeometryGUI, parent, false ),
+    myMode( mode ),
+    myBusy( false )
 {
   SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
 
-  QPixmap image0     (resMgr->loadPixmap("GEOM", tr("ICON_OBJBROWSER_VERTEX")));
-  QPixmap image1     (resMgr->loadPixmap("GEOM", tr("ICON_OBJBROWSER_EDGE")));
-  QPixmap image2     (resMgr->loadPixmap("GEOM", tr("ICON_OBJBROWSER_FACE")));
-  QPixmap image3     (resMgr->loadPixmap("GEOM", tr("ICON_OBJBROWSER_SOLID")));
-  QPixmap iconSelect (resMgr->loadPixmap("GEOM", tr("ICON_SELECT")));
+  QPixmap image0    ( resMgr->loadPixmap( "GEOM", tr( "ICON_OBJBROWSER_VERTEX" ) ) );
+  QPixmap image1    ( resMgr->loadPixmap( "GEOM", tr( "ICON_OBJBROWSER_EDGE" ) ) );
+  QPixmap image2    ( resMgr->loadPixmap( "GEOM", tr( "ICON_OBJBROWSER_FACE" ) ) );
+  QPixmap image3    ( resMgr->loadPixmap( "GEOM", tr( "ICON_OBJBROWSER_SOLID" ) ) );
+  QPixmap iconSelect( resMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
 
-  setCaption( myMode == CreateGroup ? tr( "CREATE_GROUP_TITLE" ) : tr( "EDIT_GROUP_TITLE" ) );
+  setWindowTitle( myMode == CreateGroup ? tr( "CREATE_GROUP_TITLE" ) : tr( "EDIT_GROUP_TITLE" ) );
 
   // Shape type button group
-  GroupConstructors->setEnabled( myMode == CreateGroup );
-  GroupConstructors->setTitle( tr( "SHAPE_TYPE" ) );
-  RadioButton1->setPixmap( image0 );
-  RadioButton2->setPixmap( image1 );
-  RadioButton3->setPixmap( image2 );
-  RadioButton4->setPixmap( image3 );
-  RadioButton4->show();
+  mainFrame()->GroupConstructors->setEnabled( myMode == CreateGroup );
+  mainFrame()->GroupConstructors->setTitle( tr( "SHAPE_TYPE" ) );
+  mainFrame()->RadioButton1->setIcon( image0 );
+  mainFrame()->RadioButton2->setIcon( image1 );
+  mainFrame()->RadioButton3->setIcon( image2 );
+  mainFrame()->RadioButton4->setIcon( image3 );
+  mainFrame()->RadioButton4->show();
 
   // Group name
-  GroupBoxName->setTitle( tr( "GROUP_NAME" ) );
+  mainFrame()->GroupBoxName->setTitle( tr( "GROUP_NAME" ) );
 
   // Main shape and sub-shapes
-  GroupMedium = new QGroupBox( 1, Qt::Vertical, tr( "MAIN_SUB_SHAPES" ), this );
-  GroupMedium->setInsideMargin( 10 );
-  Layout1->addWidget( GroupMedium, 2, 0 );
-
-  QWidget* aFrame = new QWidget( GroupMedium );
-  QGridLayout* aMedLayout = new QGridLayout( aFrame, 4, 4, 0, 6 );
-
-  QLabel* aMainLabel = new QLabel( tr( "MAIN_SHAPE" ), aFrame );
-
-  mySelBtn = new QPushButton( aFrame );
-  mySelBtn->setPixmap( iconSelect );
-  mySelBtn->setEnabled( myMode == CreateGroup );
-
-  myMainName = new QLineEdit( aFrame );
-  myMainName->setReadOnly( true );
-  myMainName->setEnabled( myMode == CreateGroup );
-
-  mySelSubBtn = new QPushButton( tr( "SELECT_SUB_SHAPES" ), aFrame );
-  mySelAllBtn = new QPushButton( tr( "SELECT_ALL" ), aFrame );
-  myAddBtn    = new QPushButton( tr( "ADD" ), aFrame );
-  myRemBtn    = new QPushButton( tr( "REMOVE" ), aFrame );
-  myIdList    = new QListBox( aFrame );
-
-  myIdList->setSelectionMode( QListBox::Extended );
-  myIdList->setRowMode( QListBox::FitToWidth );
-
-  aMedLayout->addWidget( aMainLabel, 0, 0 );
-  aMedLayout->addWidget( mySelBtn, 0, 1 );
-  aMedLayout->addMultiCellWidget( myMainName, 0, 0, 2, 3 );
-  aMedLayout->addMultiCellWidget( mySelSubBtn, 1, 1, 0, 2 );
-  aMedLayout->addWidget( mySelAllBtn, 1, 3 );
-  aMedLayout->addMultiCellWidget( myIdList, 2, 3, 0, 2 );
-  aMedLayout->addWidget( myAddBtn, 2, 3 );
-  aMedLayout->addWidget( myRemBtn, 3, 3 );
-
-  setHelpFileName("working_with_groups.htm");
+  myGroupBox = new DlgRef_1Sel1List4Btn( centralWidget() );
+  myGroupBox->GroupBox1->setTitle( tr( "MAIN_SUB_SHAPES" ) );
+  myGroupBox->TextLabel1->setText( tr( "MAIN_SHAPE" ) );
+  myGroupBox->PushButton1->setIcon( iconSelect );
+  myGroupBox->PushButton1->setEnabled( myMode == CreateGroup );
+  myGroupBox->LineEdit1->setReadOnly( true );
+  myGroupBox->LineEdit1->setEnabled( myMode == CreateGroup );
+  myGroupBox->PushButton2->setText( tr( "SELECT_SUB_SHAPES" ) );
+  myGroupBox->PushButton3->setText( tr( "SELECT_ALL" ) );
+  myGroupBox->PushButton4->setText( tr( "ADD" ) );
+  myGroupBox->PushButton5->setText( tr( "REMOVE" ) );
+  myGroupBox->ListView1->setSelectionMode( QAbstractItemView::ExtendedSelection );
+  myGroupBox->ListView1->setFlow( QListView::TopToBottom );
+  myGroupBox->ListView1->setWrapping( true );
+
+  QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
+  layout->setMargin( 0 ); layout->setSpacing( 6 );
+  layout->addWidget( myGroupBox );
+
+  setHelpFileName( "working_with_groups.htm" );
 
   Init();
 }
@@ -133,10 +109,10 @@ void GroupGUI_GroupDlg::Init()
     initName( tr( "GROUP_PREFIX" ) );
 
     // Get ready for main shape selection
-    myEditCurrentArgument = myMainName;
+    myEditCurrentArgument = myGroupBox->LineEdit1;
 
-    connect( GroupConstructors, SIGNAL( clicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
-    connect( mySelBtn,          SIGNAL( clicked() ),      this, SLOT( SetEditCurrentArgument() ) );
+    connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
+    connect( myGroupBox->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
   }
   else if ( myMode == EditGroup && IObjectCount() ) {
     Standard_Boolean aResult = Standard_False;
@@ -146,39 +122,36 @@ void GroupGUI_GroupDlg::Init()
     if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) {
       myGroup = anObj;
 
-      ResultName->setText( GEOMBase::GetName( myGroup ) );
+      mainFrame()->ResultName->setText( GEOMBase::GetName( myGroup ) );
 
       GEOM::GEOM_IGroupOperations_var anOp = GEOM::GEOM_IGroupOperations::_narrow( getOperation() );
       myMainObj = anOp->GetMainShape( myGroup );
       if ( !CORBA::is_nil( myMainObj ) )
-        myMainName->setText( GEOMBase::GetName( myMainObj ) );
+        myGroupBox->LineEdit1->setText( GEOMBase::GetName( myMainObj ) );
 
       setShapeType( (TopAbs_ShapeEnum)anOp->GetType( myGroup ) );
 
       GEOM::ListOfLong_var aCurrList = anOp->GetObjects( myGroup );
-      QListBoxItem* anItem;
-      for ( int i = 0, n = aCurrList->length(); i < n; i++ ) {
-        anItem = new QListBoxText( QString( "%1" ).arg(aCurrList[i] ) );
-        myIdList->insertItem( anItem );
-      }
+      for ( int i = 0, n = aCurrList->length(); i < n; i++ )
+        myGroupBox->ListView1->addItem( new QListWidgetItem( QString( "%1" ).arg( aCurrList[i] ) ) );
 
       myEditCurrentArgument = 0;
     }
   }
 
   LightApp_SelectionMgr* aSelMgr =
-    ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr();
+    ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr();
 
   connect( aSelMgr,     SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
-  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( mySelSubBtn, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
-  connect( mySelAllBtn, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
-  connect( myAddBtn,    SIGNAL( clicked() ), this, SLOT( add() ) );
-  connect( myRemBtn,    SIGNAL( clicked() ), this, SLOT( remove() ) );
-  connect( myIdList,    SIGNAL( selectionChanged() ), this, SLOT( selectionChanged() ) );
+  connect( myGroupBox->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
+  connect( myGroupBox->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
+  connect( myGroupBox->PushButton4, SIGNAL( clicked() ), this, SLOT( add() ) );
+  connect( myGroupBox->PushButton5, SIGNAL( clicked() ), this, SLOT( remove() ) );
+  connect( myGroupBox->ListView1,   SIGNAL( itemSelectionChanged() ), this, SLOT( selectionChanged() ) );
 
   activateSelection();
 }
@@ -187,9 +160,9 @@ void GroupGUI_GroupDlg::Init()
 // function : enterEvent()
 // purpose  :
 //=================================================================================
-void GroupGUI_GroupDlg::enterEvent( QEvent* )
+void GroupGUI_GroupDlg::enterEvent( QEvent* )
 {
-  if ( !buttonCancel->isEnabled() )
+  if ( !buttonCancel()->isEnabled() )
     this->ActivateThisDialog();
 }
 
@@ -212,13 +185,13 @@ bool GroupGUI_GroupDlg::ClickOnApply()
   if ( !onAccept( myMode == CreateGroup, true ) )
     return false;
 
-  if ( myMode == CreateGroup )
-    {
-      initName();
-      myIdList->clear();
-    }
-  else
+  if ( myMode == CreateGroup ) {
+    initName();
+    myGroupBox->ListView1->clear();
+  }
+  else {
     activateSelection();
+  }
   return true;
 }
 
@@ -231,7 +204,7 @@ void GroupGUI_GroupDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
 
-  connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
+  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
            SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
   activateSelection();
@@ -245,12 +218,13 @@ void GroupGUI_GroupDlg::LineEditReturnPressed()
 {
   QLineEdit* send = ( QLineEdit* )sender();
 
-  if ( send == myMainName && !myEditCurrentArgument ) {
-    myEditCurrentArgument = myMainName;
+  if ( send == myGroupBox->LineEdit1 && !myEditCurrentArgument ) {
+    myEditCurrentArgument = myGroupBox->LineEdit1;
     activateSelection();
   }
-  else
+  else {
     GEOMBase_Skeleton::LineEditReturnPressed();
+  }
 
   updateState();
 }
@@ -264,14 +238,14 @@ void GroupGUI_GroupDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
 
-  if ( send == mySelBtn )
-    myEditCurrentArgument = myMainName;
-  else if ( send == mySelSubBtn || send == mySelAllBtn )
+  if ( send == myGroupBox->PushButton1 )
+    myEditCurrentArgument = myGroupBox->LineEdit1;
+  else if ( send == myGroupBox->PushButton2 || send == myGroupBox->PushButton3 )
     myEditCurrentArgument = 0;
 
   activateSelection();
 
-  if ( send == mySelAllBtn )
+  if ( send == myGroupBox->PushButton3 )
     selectAllSubShapes();
   else
     updateState();
@@ -286,7 +260,7 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
 {
   if ( myEditCurrentArgument ) {  // Selection of a main shape is active
     myEditCurrentArgument->setText( "" );
-    myIdList->clear();
+    myGroupBox->ListView1->clear();
 
     if ( IObjectCount() == 1 ) {
       Standard_Boolean aResult = Standard_False;
@@ -307,9 +281,9 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
     if ( myBusy )
       return;
 
-    bool isBlocked = myIdList->signalsBlocked();
-    myIdList->blockSignals( true );
-    myIdList->clearSelection();
+    bool isBlocked = myGroupBox->ListView1->signalsBlocked();
+    myGroupBox->ListView1->blockSignals( true );
+    myGroupBox->ListView1->clearSelection();
 
     TColStd_IndexedMapOfInteger aMapIndex;
 
@@ -319,7 +293,7 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
         GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
 
       if ( aResult && !anObj->_is_nil() )
-        ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->
+        ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->
           selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
     }
 
@@ -333,48 +307,44 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
       GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() );
       GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
 
-      for (int i = 0; i < anObjects.length(); i++) 
-       {
-         GEOM::GEOM_Object_var aGeomObj = anObjects[i];
-         GEOM::ListOfGO_var aSubObjects = new GEOM::ListOfGO();
+      for (int i = 0; i < anObjects.length(); i++) {
+       GEOM::GEOM_Object_var aGeomObj = anObjects[i];
+       GEOM::ListOfGO_var aSubObjects = new GEOM::ListOfGO();
+       TopoDS_Shape aShape;
+       if ( GEOMBase::GetShape( aGeomObj, aShape, getShapeType() ) ) {
+         aSubObjects->length(1);
+         aSubObjects[0] = aGeomObj;
+       }
+       else if (aGeomObj->GetType() == GEOM_GROUP)
+         aSubObjects = aShapesOp->MakeExplode( aGeomObj, getShapeType(), false);
+       else
+         continue;
+
+       for (int i = 0; i < aSubObjects->length(); i++) {
          TopoDS_Shape aShape;
-         if ( GEOMBase::GetShape(aGeomObj, aShape, getShapeType()) ) 
-           {
-             aSubObjects->length(1);
-             aSubObjects[0] = aGeomObj;
-           }
-         else if (aGeomObj->GetType() == GEOM_GROUP)
-           aSubObjects = aShapesOp->MakeExplode( aGeomObj, getShapeType(), false);
-         else
-           continue;
-
-         for (int i = 0; i < aSubObjects->length(); i++) 
-           {
-             TopoDS_Shape aShape;
-             if ( GEOMBase::GetShape(aSubObjects[i], aShape, getShapeType()) ) 
-               {
-                 CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] );
-                 if ( anIndex >= 0 )
-                   aMapIndex.Add( anIndex );
-               }
-           }
+         if ( GEOMBase::GetShape( aSubObjects[i], aShape, getShapeType() ) ) {
+           CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] );
+           if ( anIndex >= 0 )
+             aMapIndex.Add( anIndex );
+         }
        }
+      }
       
       if ( !myMainObj->_is_nil() )
        localSelection( myMainObj, getShapeType() );
     }
 
-    if (aMapIndex.Extent() >= 1) {
+    if ( aMapIndex.Extent() >= 1 ) {
       QMap<int, int> aMap;
-      for ( int i = 0, n = myIdList->count(); i < n; i++ )
-        aMap.insert( myIdList->item( i )->text().toInt(), i );
+      for ( int i = 0, n = myGroupBox->ListView1->count(); i < n; i++ )
+        aMap.insert( myGroupBox->ListView1->item( i )->text().toInt(), i );
 
       for ( int ii = 1, nn = aMapIndex.Extent(); ii <= nn; ii++ ) {
         if ( aMap.contains( aMapIndex( ii ) ) )
-          myIdList->setSelected( aMap[aMapIndex( ii )], true );
+          myGroupBox->ListView1->item( aMap[aMapIndex( ii )])->setSelected( true );
       }
     }
-    myIdList->blockSignals( isBlocked );
+    myGroupBox->ListView1->blockSignals( isBlocked );
   }
 
   updateState();
@@ -384,9 +354,9 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
 // function : ConstructorsClicked()
 // purpose  : Radio button management
 //=================================================================================
-void GroupGUI_GroupDlg::ConstructorsClicked( int constructorId )
+void GroupGUI_GroupDlg::ConstructorsClicked( int )
 {
-  myIdList->clear();
+  myGroupBox->ListView1->clear();
   activateSelection();
   updateState();
 }
@@ -407,22 +377,21 @@ void GroupGUI_GroupDlg::selectAllSubShapes()
   if ( !aShOp->IsDone() )
     return;
 
-  bool isBlocked = myIdList->signalsBlocked();
-  myIdList->blockSignals( true );
-  myIdList->clear();
+  bool isBlocked = myGroupBox->ListView1->signalsBlocked();
+  myGroupBox->ListView1->blockSignals( true );
+  myGroupBox->ListView1->clear();
 
-  QListBoxItem* anItem;
   for ( int i = 0, n = aSubShapes->length(); i < n; i++ ) {
     CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubShapes[i] );
     if ( anIndex < 0 )
       continue;
 
-    anItem = new QListBoxText( QString( "%1" ).arg( anIndex ) );
-    myIdList->insertItem( anItem );
-    myIdList->setSelected( anItem, true );
+    QListWidgetItem* anItem = new QListWidgetItem( QString( "%1" ).arg( anIndex ) );
+    myGroupBox->ListView1->addItem( anItem );
+    anItem->setSelected( true );
   }
 
-  myIdList->blockSignals( isBlocked );
+  myGroupBox->ListView1->blockSignals( isBlocked );
   highlightSubShapes();
   updateState();
 }
@@ -434,8 +403,8 @@ void GroupGUI_GroupDlg::selectAllSubShapes()
 void GroupGUI_GroupDlg::add()
 {
   TColStd_MapOfInteger aMap;
-  for ( int i = 0, n = myIdList->count(); i < n; i++ )
-    aMap.Add( myIdList->item( i )->text().toInt() );
+  for ( int i = 0, n = myGroupBox->ListView1->count(); i < n; i++ )
+    aMap.Add( myGroupBox->ListView1->item( i )->text().toInt() );
 
   TColStd_IndexedMapOfInteger aMapIndex;
 
@@ -445,7 +414,7 @@ void GroupGUI_GroupDlg::add()
       GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
 
     if ( aResult && !anObj->_is_nil() )
-      ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->
+      ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->
         selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
   }
 
@@ -457,49 +426,44 @@ void GroupGUI_GroupDlg::add()
     GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() );
     GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
     
-    for (int i = 0; i < anObjects.length(); i++) 
-      {
-       GEOM::GEOM_Object_var aGeomObj = anObjects[i];
-       GEOM::ListOfGO_var aSubObjects  = new GEOM::ListOfGO();
-       TopoDS_Shape aShape;
-       if ( GEOMBase::GetShape(aGeomObj, aShape, getShapeType()) ) 
-         {
-           aSubObjects->length(1);
-           aSubObjects[0] = aGeomObj;
-         }
-       else if (aGeomObj->GetType() == GEOM_GROUP)
-         aSubObjects = aShapesOp->MakeExplode( aGeomObj, getShapeType(), false);
-       else
-         break;
+    for ( int i = 0; i < anObjects.length(); i++ ) {
+      GEOM::GEOM_Object_var aGeomObj = anObjects[i];
+      GEOM::ListOfGO_var aSubObjects  = new GEOM::ListOfGO();
+      TopoDS_Shape aShape;
+      if ( GEOMBase::GetShape( aGeomObj, aShape, getShapeType() ) ) {
+       aSubObjects->length( 1 );
+       aSubObjects[0] = aGeomObj;
+      }
+      else if ( aGeomObj->GetType() == GEOM_GROUP )
+       aSubObjects = aShapesOp->MakeExplode( aGeomObj, getShapeType(), false );
+      else
+       break;
        
-       for (int i = 0; i < aSubObjects->length(); i++) 
-         {
-         TopoDS_Shape aShape;
-         if ( GEOMBase::GetShape(aSubObjects[i], aShape, getShapeType()) ) 
-           {
-             CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] );
-             if ( anIndex >= 0 )
-               aMapIndex.Add( anIndex );
-           }
+      for ( int i = 0; i < aSubObjects->length(); i++ ) {
+       TopoDS_Shape aShape;
+       if ( GEOMBase::GetShape( aSubObjects[i], aShape, getShapeType() ) ) {
+         CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] );
+         if ( anIndex >= 0 )
+           aMapIndex.Add( anIndex );
        }
       }
+    }
   }
 
   if ( aMapIndex.Extent() >= 1 ) {
-    QListBoxItem* anItem;
-    bool isBlocked = myIdList->signalsBlocked();
-    myIdList->blockSignals( true );
+    bool isBlocked = myGroupBox->ListView1->signalsBlocked();
+    myGroupBox->ListView1->blockSignals( true );
 
     for ( int i = 1, n = aMapIndex.Extent(); i <= n; i++ ) {
       if ( aMap.Contains( aMapIndex( i ) ) )
         continue;
 
-      anItem = new QListBoxText( QString( "%1" ).arg( aMapIndex( i ) ) );
-      myIdList->insertItem( anItem );
-      myIdList->setSelected( anItem, true );
+      QListWidgetItem* anItem = new QListWidgetItem( QString( "%1" ).arg( aMapIndex( i ) ) );
+      myGroupBox->ListView1->addItem( anItem );
+      anItem->setSelected( true );
     }
 
-    myIdList->blockSignals( isBlocked );
+    myGroupBox->ListView1->blockSignals( isBlocked );
   }
 
   updateState();
@@ -511,23 +475,13 @@ void GroupGUI_GroupDlg::add()
 //=================================================================================
 void GroupGUI_GroupDlg::remove()
 {
-  for ( int i = myIdList->count() - 1; i >= 0; i-- ) {
-    if ( myIdList->isSelected( i ) )
-      myIdList->removeItem( i );
-  }
+  QListIterator<QListWidgetItem*> it( myGroupBox->ListView1->selectedItems() );
+  while ( it.hasNext() )
+    delete it.next();
   updateState();
 }
 
 
-//=================================================================================
-// function : getConstructorId()
-// purpose  :
-//=================================================================================
-int GroupGUI_GroupDlg::getConstructorId() const
-{
-  return GroupConstructors->id( GroupConstructors->selected() );
-}
-
 //=================================================================================
 // function : getShapeType()
 // purpose  :
@@ -556,7 +510,7 @@ void GroupGUI_GroupDlg::setShapeType( const TopAbs_ShapeEnum theType )
   case TopAbs_FACE:   anId = 2; break;
   case TopAbs_SOLID:  anId = 3; break;
   }
-  GroupConstructors->setButton( anId );
+  setConstructorId( anId );
 }
 
 
@@ -591,75 +545,68 @@ void GroupGUI_GroupDlg::updateState()
       GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
 
     if ( aResult && !anObj->_is_nil() )
-      ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->
+      ( (SalomeApp_Application*)(SUIT_Session::session()->activeApplication() ) )->
         selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
   }
 
   // try to find out and process the object browser selection
   if ( !aMapIndex.Extent() && !CORBA::is_nil( myMainObj ) ) {
     GEOM::ListOfGO anObjects;
-    GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), anObjects);
+    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), anObjects );
     
     GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() );
     GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
 
      isAdd = true;
      
-     for (int i = 0; i < anObjects.length(); i++) 
-       {
-        GEOM::GEOM_Object_var aGeomObj = anObjects[i];
-        GEOM::ListOfGO_var aSubObjects = new GEOM::ListOfGO();
+     for ( int i = 0; i < anObjects.length(); i++ ) {
+       GEOM::GEOM_Object_var aGeomObj = anObjects[i];
+       GEOM::ListOfGO_var aSubObjects = new GEOM::ListOfGO();
+       TopoDS_Shape aShape;
+       if ( GEOMBase::GetShape( aGeomObj, aShape, getShapeType() ) ) {
+        aSubObjects->length( 1 );
+        aSubObjects[0] = aGeomObj;
+       }
+       else if ( aGeomObj->GetType() == GEOM_GROUP )
+        aSubObjects = aShapesOp->MakeExplode( aGeomObj, getShapeType(), false );
+       else {
+        aMapIndex.Clear();
+        break;
+       }
+       
+       for ( int i = 0; i < aSubObjects->length(); i++ ) {
         TopoDS_Shape aShape;
-        if ( GEOMBase::GetShape(aGeomObj, aShape, getShapeType()) ) 
-          {
-            aSubObjects->length(1);
-            aSubObjects[0] = aGeomObj;
-          }
-        else if (aGeomObj->GetType() == GEOM_GROUP)
-          aSubObjects = aShapesOp->MakeExplode( aGeomObj, getShapeType(), false);
+        aSubObjects[i];
+        if ( GEOMBase::GetShape( aSubObjects[i], aShape, getShapeType() ) ) {
+          CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] );
+          if ( anIndex >= 0 )
+            aMapIndex.Add( anIndex );
+          else
+            isAdd = false;
+        }
         else
-          {
-            aMapIndex.Clear();
-            break;
-          }
-        
-        for (int i = 0; i < aSubObjects->length(); i++) 
-          {
-            TopoDS_Shape aShape;
-            aSubObjects[i];
-            if ( GEOMBase::GetShape(aSubObjects[i], aShape, getShapeType()) ) 
-              {
-                CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] );
-                if ( anIndex >= 0 )
-                  aMapIndex.Add( anIndex );
-                else
-                  isAdd = false;
-              }
-            else
-              isAdd = false;
+          isAdd = false;
             
-            if ( !isAdd ) {
-              aMapIndex.Clear();
-              break;
-            }
-          }
-        
         if ( !isAdd ) {
           aMapIndex.Clear();
           break;
         }
        }
+       
+       if ( !isAdd ) {
+        aMapIndex.Clear();
+        break;
+       }
+     }
   }
   
   isAdd = aMapIndex.Extent() > 0;
 
-  myAddBtn->setEnabled( !myEditCurrentArgument && !CORBA::is_nil( myMainObj ) && isAdd );
-  bool hasSel = false;
-  for ( int ii = 0, nn = myIdList->count(); !hasSel && ii < nn; ii++ )
-    hasSel =  myIdList->isSelected( ii );
-  myRemBtn->setEnabled( hasSel );
-  mySelSubBtn->setEnabled( !CORBA::is_nil( myMainObj ) );
-  mySelAllBtn->setEnabled( !CORBA::is_nil( myMainObj ) );
+  myGroupBox->PushButton4->setEnabled( !myEditCurrentArgument && !CORBA::is_nil( myMainObj ) && isAdd );
+  bool hasSel = myGroupBox->ListView1->selectedItems().count() > 0;
+  myGroupBox->PushButton5->setEnabled( hasSel );
+  myGroupBox->PushButton2->setEnabled( !CORBA::is_nil( myMainObj ) );
+  myGroupBox->PushButton3->setEnabled( !CORBA::is_nil( myMainObj ) );
 }
 
 //=================================================================================
@@ -692,12 +639,12 @@ void GroupGUI_GroupDlg::highlightSubShapes()
 
   myBusy = true;
 
-  for ( int ii = 0, nn = myIdList->count(); ii < nn; ii++ )
-    if ( myIdList->isSelected( ii ) )
-      anIds.Add( myIdList->item( ii )->text().toInt() );
+  for ( int ii = 0, nn = myGroupBox->ListView1->count(); ii < nn; ii++ )
+    if ( myGroupBox->ListView1->item( ii )->isSelected() )
+      anIds.Add( myGroupBox->ListView1->item( ii )->text().toInt() );
 
   LightApp_SelectionMgr* aSelMgr =
-    ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr();
+    ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr();
   aSelMgr->clearSelected();
   aSelMgr->AddOrRemoveIndex( aSh->getIO(), anIds, false );
 
@@ -738,10 +685,10 @@ bool GroupGUI_GroupDlg::isValid( QString& theMessage )
     RETURN_WITH_MSG( !CORBA::is_nil( myMainObj ), tr( "NO_GROUP" ) )
   }
 
-  QString aName (getNewObjectName());
-  RETURN_WITH_MSG  ( !aName.stripWhiteSpace().isEmpty(), tr( "EMPTY_NAME" ) )
+  QString aName( getNewObjectName() );
+  RETURN_WITH_MSG  ( !aName.trimmed().isEmpty(), tr( "EMPTY_NAME" ) )
 
-  RETURN_WITH_MSG  ( myIdList->count(), tr( "EMPTY_LIST" ) )
+  RETURN_WITH_MSG  ( myGroupBox->ListView1->count(), tr( "EMPTY_LIST" ) )
   return true;
 }
 
@@ -772,8 +719,8 @@ bool GroupGUI_GroupDlg::execute( ObjectList& objects )
       return false;
   }
 
-  for ( int ii = 0, nn = myIdList->count(); ii < nn; ii++ ) {
-    anOp->AddObject( aGroup, myIdList->item( ii )->text().toInt() );
+  for ( int ii = 0, nn = myGroupBox->ListView1->count(); ii < nn; ii++ ) {
+    anOp->AddObject( aGroup, myGroupBox->ListView1->item( ii )->text().toInt() );
     if ( !anOp->IsDone()  )
       return false;
   }
index a42fad91e6ec2aadc953f77ff7b60afce66de64f..11310fe3f00c64e24107d5ce82777f9160666b44 100644 (file)
@@ -1,39 +1,36 @@
-//  GEOM GEOMGUI : GUI for Geometry component
+// GEOM GEOMGUI : GUI for Geometry component
 //
-//  Copyright (C) 2004  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// Copyright (C) 2004  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   : GroupGUI_GroupDlg.h
+// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com)
 //
-//
-//  File   : GroupGUI_GroupDlg.h
-//  Author : Sergey ANIKIN
-//  Module : GEOM
 
 #ifndef GROUPGUI_GROUPDLG_H
 #define GROUPGUI_GROUPDLG_H
 
-#include "GEOMBase_Skeleton.h"
+#include <GEOMBase_Skeleton.h>
 
 #include <TopAbs_ShapeEnum.hxx>
 
-class QLineEdit;
-class QListBox;
+class DlgRef_1Sel1List4Btn;
 
 //=================================================================================
 // class    : GroupGUI_GroupDlg
@@ -41,61 +38,54 @@ class QListBox;
 //=================================================================================
 class GroupGUI_GroupDlg : public GEOMBase_Skeleton
 {
-    Q_OBJECT
-
+  Q_OBJECT
+      
 public:
-    typedef enum {
-      CreateGroup,
-      EditGroup
-    } Mode;
+  typedef enum {
+    CreateGroup,
+    EditGroup
+  } Mode;
 
-    GroupGUI_GroupDlg(Mode mode, GeometryGUI*, QWidget* parent = 0);
-    ~GroupGUI_GroupDlg();
+  GroupGUI_GroupDlg( Mode, GeometryGUI*, QWidget* = 0 );
+  ~GroupGUI_GroupDlg();
 
 protected:
-    // redefined from GEOMBase_Helper
-    virtual GEOM::GEOM_IOperations_ptr createOperation();
-    virtual bool isValid( QString& msg );
-    virtual bool execute( ObjectList& objects );
-    virtual GEOM::GEOM_Object_ptr getFather( GEOM::GEOM_Object_ptr theObj );
+  // redefined from GEOMBase_Helper
+  virtual GEOM::GEOM_IOperations_ptr  createOperation();
+  virtual bool                        isValid( QString& );
+  virtual bool                        execute( ObjectList& );
+  virtual GEOM::GEOM_Object_ptr       getFather( GEOM::GEOM_Object_ptr );
 
 private slots:
-    void                                ClickOnOk();
-    bool                                ClickOnApply();
-    void                                ActivateThisDialog();
-    void                                LineEditReturnPressed();
-    void                                SelectionIntoArgument();
-    void                                SetEditCurrentArgument();
-    void                                ConstructorsClicked( int constructorId );
-
-    void                                selectAllSubShapes();
-    void                                add();
-    void                                remove();
-    void                                selectionChanged();
-
+  void                                ClickOnOk();
+  bool                                ClickOnApply();
+  void                                ActivateThisDialog();
+  void                                LineEditReturnPressed();
+  void                                SelectionIntoArgument();
+  void                                SetEditCurrentArgument();
+  void                                ConstructorsClicked( int );
+  
+  void                                selectAllSubShapes();
+  void                                add();
+  void                                remove();
+  void                                selectionChanged();
+  
 private:
-    void                                Init();
-    void                                enterEvent( QEvent* e );
-    int                                 getConstructorId() const;    
-    TopAbs_ShapeEnum                    getShapeType() const;
-    void                                setShapeType( const TopAbs_ShapeEnum );
-    void                                activateSelection();
-    void                                updateState();
-    void                                highlightSubShapes();
+  void                                Init();
+  void                                enterEvent( QEvent* );
+  TopAbs_ShapeEnum                    getShapeType() const;
+  void                                setShapeType( const TopAbs_ShapeEnum );
+  void                                activateSelection();
+  void                                updateState();
+  void                                highlightSubShapes();
 
 private:
-    Mode                  myMode;
-    bool                  myBusy;
-    GEOM::GEOM_Object_var myMainObj;
-    GEOM::GEOM_Object_var myGroup;
-
-    QPushButton*          mySelBtn;
-    QLineEdit*            myMainName;
-    QPushButton*          mySelSubBtn;
-    QPushButton*          mySelAllBtn;
-    QPushButton*          myAddBtn;
-    QPushButton*          myRemBtn;
-    QListBox*             myIdList;
+  Mode                                myMode;
+  bool                                myBusy;
+  GEOM::GEOM_Object_var               myMainObj;
+  GEOM::GEOM_Object_var               myGroup;
+  
+  DlgRef_1Sel1List4Btn*               myGroupBox;
 };
 
-#endif
+#endif // GROUPGUI_GROUPDLG_H
index 101b660f7e437fec67c9524ef6a4fc48046925c8..06642987fd5beb8175498a8abcb3c047fc41c878 100755 (executable)
@@ -1,31 +1,28 @@
-#  GEOM BUILDGUI : 
+# GEOM GROUPGUI : 
 #
-#  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 : GroupGUI
 #
-#
-#  File   : Makefile.in
-#  Author : Sergey ANIKIN (OCC)
-#  Modified by : Alexander BORODIN (OCN) - autotools usage
-#  Module : GEOM
-#  $Header: 
 
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
@@ -35,15 +32,17 @@ lib_LTLIBRARIES = libGroupGUI.la
 # header files 
 salomeinclude_HEADERS =
 
-dist_libGroupGUI_la_SOURCES = \
-       GroupGUI.cxx \
-       GroupGUI_GroupDlg.cxx 
+dist_libGroupGUI_la_SOURCES =  \
+       GroupGUI.h              \
+       GroupGUI_GroupDlg.h     \
+       GroupGUI.cxx            \
+       GroupGUI_GroupDlg.cxx
 
-MOC_FILES = \
-       GroupGUI_moc.cxx \
+MOC_FILES =                    \
+       GroupGUI_moc.cxx        \
        GroupGUI_GroupDlg_moc.cxx 
 
-nodist_libGroupGUI_la_SOURCES= \
+nodist_libGroupGUI_la_SOURCES =        \
        $(MOC_FILES)
 
 # LIB_CLIENT_IDL = SALOME_GenericObj.idl SALOME_Component.idl SALOME_Exception.idl
@@ -52,26 +51,27 @@ nodist_libGroupGUI_la_SOURCES= \
 
 # additionnal information to compil and link file
 
-libGroupGUI_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$(srcdir)/../GEOMFiltersSelection \
-       -I$(top_builddir)/idl \
+libGroupGUI_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$(srcdir)/../GEOMFiltersSelection     \
+       -I$(top_builddir)/src/DlgRef            \
+       -I$(top_builddir)/idl                   \
        -I$(top_builddir)/salome_adm/unix
 
-libGroupGUI_la_LDFLAGS         = \
-       ../GEOMFiltersSelection/libGEOMFiltersSelection.la \
+libGroupGUI_la_LDFLAGS         =                                       \
+       ../GEOMFiltersSelection/libGEOMFiltersSelection.la      \
        ../GEOMBase/libGEOMBase.la
index 8fc2a0ce517da3468b1ccbfa69685f66c89353cb..bacba868ffccbc41a7b7e1ffbea7c998b0306169 100644 (file)
@@ -27,7 +27,6 @@
 #include "MeasureGUI_Widgets.h"
 
 #include <GEOMBase.h>
-//#include <GEOM_Displayer.h>
 
 #include <BRepPrimAPI_MakeBox.hxx>
 
index 851ce0172f87c4c9a591299b626372efa0e83f53..7d11a9d7023c39889dacfeb5116375166c99c089 100644 (file)
@@ -248,7 +248,7 @@ SALOME_Prs* MeasureGUI_DistanceDlg::buildPrs()
   
   try
   {
-    if( aDist <= 1.e-9 ) {
+    if ( aDist <= 1.e-9 ) {
       BRepBuilderAPI_MakeVertex aMaker( aPnt1 );
       return getDisplayer()->BuildPrs( aMaker.Vertex() );
     }
index f6d9695a738c8a17bf5c0918ca1a66fbd6800dbf..2d6d8f62da41b78fd3d81e15f0e3c415fb000790 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
-//#include <TColStd_MapOfInteger.hxx>
-//#include <TopAbs_ShapeEnum.hxx>
 #include <TopoDS_Shape.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Vertex.hxx>
 #include <BRep_Tool.hxx>
 #include <TopExp.hxx>
-//#include <TopAbs_ShapeEnum.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
 #include <TColStd_IndexedMapOfInteger.hxx>
 #include <gp_Pnt.hxx>