Salome HOME
bos #24253 Redesign some dialogs to better fix screen resolution
authorViktor UZLOV <viktor.uzlov@opencascade.com>
Wed, 4 Aug 2021 06:09:47 +0000 (09:09 +0300)
committervsr <vsr@opencascade.com>
Thu, 9 Sep 2021 07:51:00 +0000 (10:51 +0300)
doc/salome/gui/SMESH/images/ctrlinfo.png
doc/salome/gui/SMESH/images/extrusion_along_path_dlg.png
doc/salome/gui/SMESH/images/extrusionalongaline1.png
doc/salome/gui/SMESH/images/revolution1.png
src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx
src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx
src/SMESHGUI/SMESHGUI_MeshInfo.cxx
src/SMESHGUI/SMESHGUI_MeshInfo.h
src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx

index 497adcd95ef8fcfbe252c18659c598f9dbfa0130..100fbe014cf58fcf89000e62cef0cdf81b153a19 100644 (file)
Binary files a/doc/salome/gui/SMESH/images/ctrlinfo.png and b/doc/salome/gui/SMESH/images/ctrlinfo.png differ
index 98e362f388837641fa0a85dbae8fb0897715334c..74176d8897dd78eeffbd3c804096035962a3e33f 100644 (file)
Binary files a/doc/salome/gui/SMESH/images/extrusion_along_path_dlg.png and b/doc/salome/gui/SMESH/images/extrusion_along_path_dlg.png differ
index 761f09bda1e6c4894c3d05039b96a2eeb4da4078..cc97577094dafe91be2617c2e90e6db5dbeb08ed 100644 (file)
Binary files a/doc/salome/gui/SMESH/images/extrusionalongaline1.png and b/doc/salome/gui/SMESH/images/extrusionalongaline1.png differ
index 5f75d5d7405dbc0d721166c01263360b133a1d79..18928d1d0d01a31dd0477d0d59f1e9bf715080af 100644 (file)
Binary files a/doc/salome/gui/SMESH/images/revolution1.png and b/doc/salome/gui/SMESH/images/revolution1.png differ
index 51627d0ac05d630e395168386ffd59955768f57e..9afbe218c28d6e73798daceb162d9412d3860329 100644 (file)
@@ -264,13 +264,15 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
   myPreviewCheckBox = new QCheckBox(tr("PREVIEW"), GroupArguments);
 
   // layouting
-  GroupArgumentsLayout->addWidget(SelectorWdg,          0, 0, 1, 2);
-  GroupArgumentsLayout->addWidget(PathGrp,              1, 0, 1, 2);
-  GroupArgumentsLayout->addWidget(BasePointGrp,         2, 0, 1, 2);
-  GroupArgumentsLayout->addWidget(AnglesGrp,            3, 0);
-  GroupArgumentsLayout->addWidget(ScalesGrp,            3, 1);
-  GroupArgumentsLayout->addWidget(myPreviewCheckBox,    4, 0);
-  GroupArgumentsLayout->addWidget(MakeGroupsCheck,      5, 0);
+  GroupArgumentsLayout->addWidget(SelectorWdg,          0, 0, 3, 2);
+  GroupArgumentsLayout->addWidget(PathGrp,              0, 2, 1, 2);
+  GroupArgumentsLayout->addWidget(BasePointGrp,         1, 2, 1, 2);
+  GroupArgumentsLayout->addWidget(AnglesGrp,            2, 2);
+  GroupArgumentsLayout->addWidget(ScalesGrp,            2, 3);
+  GroupArgumentsLayout->addWidget(myPreviewCheckBox,    3, 0);
+  GroupArgumentsLayout->addWidget(MakeGroupsCheck,      3, 1);
+  SelectorWdg->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+  SelectorWdg->setMinimumWidth(320);
 
   /***************************************************************/
   // common buttons group box
index 13ce13deb7a0945545653dcecde29d7784509c6b..ce69ade5e63432a1517365400e29c8c4543f903f 100644 (file)
@@ -766,38 +766,53 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule)
   AnglesGrpLayout->setRowMinimumHeight(1, 10);
   AnglesGrpLayout->setRowStretch(3, 10);
 
+  // Controls for advanced parameters
+  QGridLayout* AdvancedGrpLayout = new QGridLayout();
+  AdvancedGrpLayout->setSpacing(SPACING);
+
+  // layouting
+  AdvancedGrpLayout->addWidget(TextLabelDistance,      0, 0);
+  AdvancedGrpLayout->addWidget(TextLabelDx,            0, 2);
+  AdvancedGrpLayout->addWidget(SpinBox_Dx,             0, 3);
+  AdvancedGrpLayout->addWidget(TextLabelDy,            0, 4);
+  AdvancedGrpLayout->addWidget(SpinBox_Dy,             0, 5);
+  AdvancedGrpLayout->addWidget(TextLabelDz,            0, 6);
+  AdvancedGrpLayout->addWidget(SpinBox_Dz,             0, 7);
+  AdvancedGrpLayout->addWidget(TextLabelVector,        1, 0);
+  AdvancedGrpLayout->addWidget(SelectVectorButton,     1, 1);
+  AdvancedGrpLayout->addWidget(TextLabelVx,            1, 2);
+  AdvancedGrpLayout->addWidget(SpinBox_Vx,             1, 3);
+  AdvancedGrpLayout->addWidget(TextLabelVy,            1, 4);
+  AdvancedGrpLayout->addWidget(SpinBox_Vy,             1, 5);
+  AdvancedGrpLayout->addWidget(TextLabelVz,            1, 6);
+  AdvancedGrpLayout->addWidget(SpinBox_Vz,             1, 7);
+  AdvancedGrpLayout->addWidget(TextLabelDist,          2, 0);
+  AdvancedGrpLayout->addWidget(SpinBox_VDist,          2, 3);
+  AdvancedGrpLayout->addWidget(TextLabelNbSteps,       3, 0, 1, 3);
+  AdvancedGrpLayout->addWidget(SpinBox_NbSteps,        3, 3);
+  AdvancedGrpLayout->addWidget(ByAverageNormalCheck,   4, 0, 1, 4);
+  AdvancedGrpLayout->addWidget(UseInputElemsOnlyCheck, 4, 4, 1, 4);
+
+  // Controls for advanced parameters
+  QGroupBox* RbGrp = new QGroupBox();
+  QHBoxLayout* RBLayout = new QHBoxLayout(RbGrp);
+  RBLayout->setSpacing(SPACING); RBLayout->setMargin(MARGIN);
+  RBLayout->addWidget(ExtrMethod_RBut0);
+  RBLayout->addWidget(ExtrMethod_RBut1);
+  RBLayout->addWidget(ExtrMethod_RBut2);
+
   // layouting
-  GroupArgumentsLayout->addWidget(SelectorWdg,            0, 0, 1, 9);
-  GroupArgumentsLayout->addWidget(ExtrMethod_RBut0,       1, 0, 1, 3);
-  GroupArgumentsLayout->addWidget(ExtrMethod_RBut1,       1, 3, 1, 3);
-  GroupArgumentsLayout->addWidget(ExtrMethod_RBut2,       1, 6, 1, 3);
-  GroupArgumentsLayout->addWidget(TextLabelDistance,      2, 0);
-  GroupArgumentsLayout->addWidget(TextLabelDx,            2, 2);
-  GroupArgumentsLayout->addWidget(SpinBox_Dx,             2, 3);
-  GroupArgumentsLayout->addWidget(TextLabelDy,            2, 4);
-  GroupArgumentsLayout->addWidget(SpinBox_Dy,             2, 5);
-  GroupArgumentsLayout->addWidget(TextLabelDz,            2, 6);
-  GroupArgumentsLayout->addWidget(SpinBox_Dz,             2, 7);
-  GroupArgumentsLayout->addWidget(TextLabelVector,        3, 0);
-  GroupArgumentsLayout->addWidget(SelectVectorButton,     3, 1);
-  GroupArgumentsLayout->addWidget(TextLabelVx,            3, 2);
-  GroupArgumentsLayout->addWidget(SpinBox_Vx,             3, 3);
-  GroupArgumentsLayout->addWidget(TextLabelVy,            3, 4);
-  GroupArgumentsLayout->addWidget(SpinBox_Vy,             3, 5);
-  GroupArgumentsLayout->addWidget(TextLabelVz,            3, 6);
-  GroupArgumentsLayout->addWidget(SpinBox_Vz,             3, 7);
-  GroupArgumentsLayout->addWidget(TextLabelDist,          4, 0);
-  GroupArgumentsLayout->addWidget(SpinBox_VDist,          4, 3);
-  GroupArgumentsLayout->addWidget(TextLabelNbSteps,       5, 0, 1, 3);
-  GroupArgumentsLayout->addWidget(SpinBox_NbSteps,        5, 3);
-  GroupArgumentsLayout->addWidget(ByAverageNormalCheck,   6, 0, 1, 4);
-  GroupArgumentsLayout->addWidget(UseInputElemsOnlyCheck, 6, 4, 1, 4);
-  GroupArgumentsLayout->addWidget(BasePointGrp,           7, 0, 1, 9);
-  GroupArgumentsLayout->addWidget(ScalesGrp,              8, 0, 1, 4);
-  GroupArgumentsLayout->addWidget(AnglesGrp,              8, 5, 1, 4);
-  GroupArgumentsLayout->addWidget(myPreviewCheckBox,      9, 0, 1, 8);
-  GroupArgumentsLayout->addWidget(MakeGroupsCheck,        10,0, 1, 8);
-  GroupArgumentsLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding), 10, 0);
+  GroupArgumentsLayout->addWidget(RbGrp,                  0, 0, 1, 4);
+  GroupArgumentsLayout->addWidget(SelectorWdg,            1, 0, 3, 2);
+  GroupArgumentsLayout->addLayout(AdvancedGrpLayout,      1, 2, 1, 2);
+  GroupArgumentsLayout->addWidget(BasePointGrp,           2, 2, 1, 2);
+  GroupArgumentsLayout->addWidget(ScalesGrp,              3, 2, 1, 1);
+  GroupArgumentsLayout->addWidget(AnglesGrp,              3, 3, 1, 1);
+  GroupArgumentsLayout->addWidget(myPreviewCheckBox,      4, 0);
+  GroupArgumentsLayout->addWidget(MakeGroupsCheck,        4, 1);
+  GroupArgumentsLayout->setRowStretch(5, 10);
+  SelectorWdg->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+  SelectorWdg->setMinimumWidth(320);
 
   /***************************************************************/
   GroupButtons = new QGroupBox(this);
index a6d6b3cda6c1a89cb0076b45c8037432030a6928..37ed558db44faee35f6497fa3ee1398385b9dc3f 100644 (file)
@@ -3432,6 +3432,9 @@ SMESHGUI_CtrlInfo::SMESHGUI_CtrlInfo( QWidget* parent ): SMESHGUI_Info( parent )
   QIcon aComputeIcon( SUIT_Session::session()->resourceMgr()->loadPixmap( "SMESH", tr( "ICON_COMPUTE" ) ) );
   SMESH::FilterManager_var aFilterMgr = SMESH::GetFilterManager();
 
+  // QToolBox with MeshInfo
+  myMeshTB = new QToolBox(this);
+
   // name
   QLabel* aNameLab = createLabel( tr( "NAME_LAB" ), this, Bold );
   QLabel* aName = createField( this, "ctrlName" );
@@ -3547,50 +3550,82 @@ SMESHGUI_CtrlInfo::SMESHGUI_CtrlInfo( QWidget* parent ): SMESHGUI_Info( parent )
   connect( aOverContVolumesBtn,SIGNAL( clicked() ), this, SLOT( computeOverConstrainedVolumesInfo() ) );
   connect( myToleranceWidget, SIGNAL( valueChanged( double ) ), this, SLOT( setTolerance( double ) ) );
 
-  l->addWidget( aNameLab,           0, 0 );       //0
-  l->addWidget( aName,              0, 1, 1, 2 ); //1
-  l->addWidget( aNodesLab,          1, 0, 1, 3 ); //2
-  l->addWidget( aNodesFreeLab,      2, 0 );       //3
-  l->addWidget( aNodesFree,         2, 1 );       //4
-  l->addWidget( aFreeNodesBtn,      2, 2 );       //5
-  l->addWidget( aNodesNbConnLab,    3, 0 );       //6
-  l->addWidget( aNodesNbConn,       3, 1 );       //7
-  l->addWidget( aNodesNbConnBtn,    3, 2 );       //8
-  l->addWidget( aNodesDoubleLab,    4, 0 );       //9
-  l->addWidget( aNodesDouble,       4, 1 );       //10
-  l->addWidget( aDoubleNodesBtn,    4, 2 );       //11
-  l->addWidget( aToleranceLab,      5, 0 );       //12
-  l->addWidget( myToleranceWidget,  5, 1 );       //13
-  l->addWidget( anEdgesLab,         6, 0, 1, 3 ); //14
-  l->addWidget( anEdgesDoubleLab,   7, 0 );       //15
-  l->addWidget( anEdgesDouble,      7, 1 );       //16
-  l->addWidget( aDoubleEdgesBtn,    7, 2 );       //17
-  l->addWidget( aFacesLab,          8, 0, 1, 3 ); //18
-  l->addWidget( aFacesDoubleLab,    9, 0 );       //19
-  l->addWidget( aFacesDouble,       9, 1 );       //20
-  l->addWidget( aDoubleFacesBtn,    9, 2 );       //21
-  l->addWidget( aFacesOverLab,      10, 0 );      //22
-  l->addWidget( aFacesOver,         10, 1 );      //23
-  l->addWidget( aOverContFacesBtn,  10, 2 );      //24
-  l->addWidget( anAspectRatioLab,   11, 0 );      //25
-  l->addWidget( aComputeFaceBtn,    11, 2 );      //26
-  l->addWidget( myPlot,             12, 0, 1, 3 );//27
-  l->addWidget( aVolumesLab,        13, 0, 1, 3 );//28
-  l->addWidget( aVolumesDoubleLab,  14, 0 );      //29
-  l->addWidget( aVolumesDouble,     14, 1 );      //30
-  l->addWidget( aDoubleVolumesBtn,  14, 2 );      //31
-  l->addWidget( aVolumesOverLab,    15, 0 );      //32
-  l->addWidget( aVolumesOver,       15, 1 );      //33
-  l->addWidget( aOverContVolumesBtn,15, 2 );      //34
-  l->addWidget( anAspectRatio3DLab, 16, 0 );      //35
-  l->addWidget( aComputeVolumeBtn,  16, 2 );      //36
-  l->addWidget( myPlot3D,           17, 0, 1, 3 );//37
-  l->setColumnStretch(  0,  0 );
-  l->setColumnStretch(  1,  5 );
-  l->setRowStretch   ( 12,  5 );
-  l->setRowStretch   ( 17,  5 );
-  l->setRowStretch   ( 18,  1 );
+  l->addWidget( aNameLab,           0, 0 ); //0
+  l->addWidget( aName,              0, 1 ); //1
+  
+  // Node group
+  QWidget* NodeGrp = new QWidget();
+  QGridLayout* NodeLayout = new QGridLayout(NodeGrp);
+  NodeLayout->setSpacing(SPACING); NodeLayout->setMargin(MARGIN);
+
+  NodeLayout->addWidget( aNodesFreeLab,      0, 0 );
+  NodeLayout->addWidget( aNodesFree,         0, 1 );
+  NodeLayout->addWidget( aFreeNodesBtn,      0, 2 );
+  NodeLayout->addWidget( aNodesNbConnLab,    1, 0 );
+  NodeLayout->addWidget( aNodesNbConn,       1, 1 );
+  NodeLayout->addWidget( aNodesNbConnBtn,    1, 2 );
+  NodeLayout->addWidget( aNodesDoubleLab,    2, 0 );
+  NodeLayout->addWidget( aNodesDouble,       2, 1 );
+  NodeLayout->addWidget( aDoubleNodesBtn,    2, 2 );
+  NodeLayout->addWidget( aToleranceLab,      3, 0 );
+  NodeLayout->addWidget( myToleranceWidget,  3, 1 );
+  NodeLayout->addWidget( myToleranceWidget,  3, 1 );
+  NodeLayout->setRowStretch(4, 5);
+
+  myMeshTB->addItem(NodeGrp, aNodesLab->text());
+  aNodesLab->setVisible(false);
+
+  // Edge group
+  QWidget* EdgeGrp = new QWidget();
+  QGridLayout* EdgeLayout = new QGridLayout(EdgeGrp);
+  EdgeLayout->setSpacing(SPACING); EdgeLayout->setMargin(MARGIN);
+
+  EdgeLayout->addWidget( anEdgesDoubleLab,   0, 0 );
+  EdgeLayout->addWidget( anEdgesDouble,      0, 1 );
+  EdgeLayout->addWidget( aDoubleEdgesBtn,    0, 2 );
+  EdgeLayout->setRowStretch(1, 5);
+
+  myMeshTB->addItem(EdgeGrp, anEdgesLab->text());
+  anEdgesLab->setVisible(false);
+
+  // Face group
+  QWidget* FaceGrp = new QWidget();
+  QGridLayout* FaceLayout = new QGridLayout(FaceGrp);
+  FaceLayout->setSpacing(SPACING); FaceLayout->setMargin(MARGIN);
+
+  FaceLayout->addWidget( aFacesDoubleLab,    0, 0 );
+  FaceLayout->addWidget( aFacesDouble,       0, 1 );
+  FaceLayout->addWidget( aDoubleFacesBtn,    0, 2 );
+  FaceLayout->addWidget( aFacesOverLab,      1, 0 );
+  FaceLayout->addWidget( aFacesOver,         1, 1 );
+  FaceLayout->addWidget( aOverContFacesBtn,  1, 2 );
+  FaceLayout->addWidget( anAspectRatioLab,   2, 0 );
+  FaceLayout->addWidget( aComputeFaceBtn,    2, 2 );
+  FaceLayout->addWidget( myPlot,             3, 0, 1, 3 );
+
+  myMeshTB->addItem(FaceGrp, aFacesLab->text());
+  aFacesLab->setVisible(false);
+
+  // Volume group
+  QWidget* VolumeGrp = new QWidget();
+  QGridLayout* VolumeLayout = new QGridLayout(VolumeGrp);
+  VolumeLayout->setSpacing(SPACING); VolumeLayout->setMargin(MARGIN);
+
+  VolumeLayout->addWidget( aVolumesDoubleLab,  0, 0 );
+  VolumeLayout->addWidget( aVolumesDouble,     0, 1 );
+  VolumeLayout->addWidget( aDoubleVolumesBtn,  0, 2 );
+  VolumeLayout->addWidget( aVolumesOverLab,    1, 0 );
+  VolumeLayout->addWidget( aVolumesOver,       1, 1 );
+  VolumeLayout->addWidget( aOverContVolumesBtn,1, 2 );
+  VolumeLayout->addWidget( anAspectRatio3DLab, 2, 0 );
+  VolumeLayout->addWidget( aComputeVolumeBtn,  2, 2 );
+  VolumeLayout->addWidget( myPlot3D,           3, 0, 1, 3 );
+
+  myMeshTB->addItem(VolumeGrp, aVolumesLab->text());
+  aVolumesLab->setVisible(false);
+
+  l->addWidget( myMeshTB,                1, 0, 1, 2 ); //2
+  l->setRowStretch( 2,  5 );
 
   clearInternal();
 }
@@ -3673,8 +3708,8 @@ void SMESHGUI_CtrlInfo::showInfo( const SMESH::SelectionProxy& proxy )
     }
   }
   else {
-    for( int i=2; i<=13; i++)
-      dynamic_cast<QGridLayout*>(layout())->itemAt(i)->widget()->setVisible( false );
+    myMeshTB->setItemEnabled(0, false );
+    myMeshTB->widget(0)->setVisible( false );
   }
 
   // edges info
@@ -3686,8 +3721,8 @@ void SMESHGUI_CtrlInfo::showInfo( const SMESH::SelectionProxy& proxy )
       myButtons[3]->setEnabled( true );
   }
   else {
-    for( int i=14; i<=17; i++)
-      dynamic_cast<QGridLayout*>(layout())->itemAt(i)->widget()->setVisible( false );
+    myMeshTB->setItemEnabled(1, false );
+    myMeshTB->widget(1)->setVisible( false );
   }
 
   // faces info
@@ -3705,14 +3740,10 @@ void SMESHGUI_CtrlInfo::showInfo( const SMESH::SelectionProxy& proxy )
       myButtons[5]->setEnabled( true );
       myButtons[6]->setEnabled( true );
     }
-#ifdef DISABLE_PLOT2DVIEWER
-    for( int i=25; i<=27; i++)
-      dynamic_cast<QGridLayout*>(layout())->itemAt(i)->widget()->setVisible( false );
-#endif
   }
   else {
-    for( int i=18; i<=27; i++)
-      dynamic_cast<QGridLayout*>(layout())->itemAt(i)->widget()->setVisible( false );
+    myMeshTB->setItemEnabled(2, false );
+    myMeshTB->widget(2)->setVisible( false );
   }
 
   // volumes info
@@ -3730,15 +3761,15 @@ void SMESHGUI_CtrlInfo::showInfo( const SMESH::SelectionProxy& proxy )
       myButtons[8]->setEnabled( true );
       myButtons[9]->setEnabled( true );
     }
-#ifdef DISABLE_PLOT2DVIEWER
-    for( int i=35; i<=37; i++)
-      dynamic_cast<QGridLayout*>(layout())->itemAt(i)->widget()->setVisible( false );
-#endif
   }
   else {
-    for( int i=28; i<=37; i++)
-      dynamic_cast<QGridLayout*>(layout())->itemAt(i)->widget()->setVisible( false );
+    myMeshTB->setItemEnabled(3, false );
+    myMeshTB->widget(3)->setVisible( false );
   }
+  myMeshTB->setCurrentIndex(0);
+  myMeshTB->setVisible( (nbNodes + nbElemsByType[ SMESH::EDGE ] + 
+                                   nbElemsByType[ SMESH::FACE ] + 
+                                   nbElemsByType[ SMESH::VOLUME ]) > 0 );
 }
 
 //================================================================================
@@ -3892,8 +3923,10 @@ void SMESHGUI_CtrlInfo::computeAspectRatio3D()
 */
 void SMESHGUI_CtrlInfo::clearInternal()
 {
-  for( int i=0; i<=37; i++)
-    dynamic_cast<QGridLayout*>(layout())->itemAt(i)->widget()->setVisible( true );
+  for (int i=0; i<=3;i++) {
+    myMeshTB->setItemEnabled(i, true );
+    myMeshTB->widget(i)->setVisible( true );
+  }
   for( int i=0; i<=9; i++)
     myButtons[i]->setEnabled( false );
   myPlot->detachItems();
index 82e3adc6c7c574f998b460913d9b1a05ec860fa5..84700d488a1c9069be94cb11782cfd70e43c78fd 100644 (file)
@@ -36,6 +36,7 @@
 #include <QList>
 #include <QMap>
 #include <QSet>
+#include <QToolBox>
 
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Filter)
@@ -345,6 +346,7 @@ private:
   ObjectType myObjectType;
   SMESHGUI_SpinBox* myToleranceWidget;
   QList<QLabel*> myWidgets;
+  QToolBox* myMeshTB;
   QwtPlot* myPlot;
   QwtPlot* myPlot3D;
   QList<QAbstractButton*> myButtons;
index 717d747c16f8904e291af6bc114161140d0b02f8..768303fea2b408c5d76824b484e1d65bf7075f9e 100644 (file)
@@ -202,13 +202,15 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule )
   MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
   MakeGroupsCheck->setChecked(true);
 
-  GroupArgumentsLayout->addWidget(SelectorWdg,          0, 0, 1, 4);
-  GroupArgumentsLayout->addWidget(GroupAxis,            1, 0, 1, 4);
-  GroupArgumentsLayout->addWidget(GroupAngleBox,        2, 0, 1, 4);
-  GroupArgumentsLayout->addWidget(TextLabelTolerance,   3, 0, 1, 2);
-  GroupArgumentsLayout->addWidget(SpinBox_Tolerance,    3, 2, 1, 2);
-  GroupArgumentsLayout->addWidget(myPreviewCheckBox,    4, 0, 1, 4);
-  GroupArgumentsLayout->addWidget(MakeGroupsCheck,      5, 0, 1, 4);
+  GroupArgumentsLayout->addWidget(SelectorWdg,          0, 0, 3, 4);
+  GroupArgumentsLayout->addWidget(GroupAxis,            0, 4, 1, 4);
+  GroupArgumentsLayout->addWidget(GroupAngleBox,        1, 4, 1, 4);
+  GroupArgumentsLayout->addWidget(TextLabelTolerance,   2, 4, 1, 2);
+  GroupArgumentsLayout->addWidget(SpinBox_Tolerance,    2, 6, 1, 2);
+  GroupArgumentsLayout->addWidget(myPreviewCheckBox,    3, 0, 1, 2);
+  GroupArgumentsLayout->addWidget(MakeGroupsCheck,      3, 2, 1, 2);
+  SelectorWdg->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+  SelectorWdg->setMinimumWidth(320);
 
   SelectorWdg->GetButtonGroup()->addButton( SelectVectorButton );
   SelectorWdg->GetButtonGroup()->addButton( SelectPointButton );