Salome HOME
land cover object is removed from the data model
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_OrderedListWidget.cxx
index 1b551cfc17799a0f500add6305dadd8d2cd7b94e..c17903a3b67f415d202c00af34d0df081614f63a 100644 (file)
@@ -62,48 +62,53 @@ HYDROGUI_OrderedListWidget::HYDROGUI_OrderedListWidget( QWidget* theParent, int
 
   myList->setModel( aFilteredModel );
 
-  // Buttons top, up, down, bottom
-  SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
-  myTop = new QPushButton( this );
-  myTop->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_TOP_ICO" ) ) );
-  myTop->setIconSize( QSize( theArrowIconSize, theArrowIconSize ) );
-  myTop->setToolTip( tr( "TOP_TLT" ) );
-  myUp = new QPushButton( this );
-  myUp->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_UP_ICO" ) ) );
-  myUp->setIconSize( myTop->iconSize() );
-  myUp->setToolTip( tr( "UP_TLT" ) );
-  myDown = new QPushButton( this );
-  myDown->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_DOWN_ICO" ) ) );
-  myDown->setIconSize( myTop->iconSize() );
-  myDown->setToolTip( tr( "DOWN_TLT" ) );
-  myBottom = new QPushButton( this );
-  myBottom->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_BOTTOM_ICO" ) ) );
-  myBottom->setIconSize( myTop->iconSize() );
-  myBottom->setToolTip( tr( "BOTTOM_TLT" ) );
-
-  // Layout
-  // buttons
-  QVBoxLayout* aListButtonsLayout = new QVBoxLayout();
-  aListButtonsLayout->addWidget( myTop );
-  aListButtonsLayout->addWidget( myUp );
-  aListButtonsLayout->addWidget( myDown );
-  aListButtonsLayout->addWidget( myBottom );
-  aListButtonsLayout->addStretch();
-  // main
+  // Add list to the main layout
   aMainLayout->addWidget( myList );
-  aMainLayout->addLayout( aListButtonsLayout );
-
-  // Connections
-  QSignalMapper* aSignalMapper = new QSignalMapper( this );
-  aSignalMapper->setMapping( myTop, HYDROGUI_ListModel::Top );
-  aSignalMapper->setMapping( myUp, HYDROGUI_ListModel::Up );
-  aSignalMapper->setMapping( myDown, HYDROGUI_ListModel::Down );
-  aSignalMapper->setMapping( myBottom, HYDROGUI_ListModel::Bottom );
-  connect( myTop, SIGNAL( clicked() ), aSignalMapper, SLOT( map() ) );
-  connect( myUp, SIGNAL( clicked() ), aSignalMapper, SLOT( map() ) );
-  connect( myDown, SIGNAL( clicked() ), aSignalMapper, SLOT( map() ) );
-  connect( myBottom, SIGNAL( clicked() ), aSignalMapper, SLOT( map() ) );
-  connect( aSignalMapper, SIGNAL( mapped( int ) ), this, SLOT( onMove( int ) ) );
+
+  // Buttons top, up, down, bottom
+  if ( theArrowIconSize > 0 ) {
+    SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
+    myTop = new QPushButton( this );
+    myTop->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_TOP_ICO" ) ) );
+    myTop->setIconSize( QSize( theArrowIconSize, theArrowIconSize ) );
+    myTop->setToolTip( tr( "TOP_TLT" ) );
+    myUp = new QPushButton( this );
+    myUp->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_UP_ICO" ) ) );
+    myUp->setIconSize( myTop->iconSize() );
+    myUp->setToolTip( tr( "UP_TLT" ) );
+    myDown = new QPushButton( this );
+    myDown->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_DOWN_ICO" ) ) );
+    myDown->setIconSize( myTop->iconSize() );
+    myDown->setToolTip( tr( "DOWN_TLT" ) );
+    myBottom = new QPushButton( this );
+    myBottom->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_BOTTOM_ICO" ) ) );
+    myBottom->setIconSize( myTop->iconSize() );
+    myBottom->setToolTip( tr( "BOTTOM_TLT" ) );
+
+    // Add buttons to the main layout
+    QVBoxLayout* aListButtonsLayout = new QVBoxLayout();
+    aListButtonsLayout->addWidget( myTop );
+    aListButtonsLayout->addWidget( myUp );
+    aListButtonsLayout->addWidget( myDown );
+    aListButtonsLayout->addWidget( myBottom );
+    aListButtonsLayout->addStretch();
+    
+    aMainLayout->addLayout( aListButtonsLayout );
+
+    // Buttons connections
+    QSignalMapper* aSignalMapper = new QSignalMapper( this );
+    aSignalMapper->setMapping( myTop, HYDROGUI_ListModel::Top );
+    aSignalMapper->setMapping( myUp, HYDROGUI_ListModel::Up );
+    aSignalMapper->setMapping( myDown, HYDROGUI_ListModel::Down );
+    aSignalMapper->setMapping( myBottom, HYDROGUI_ListModel::Bottom );
+    connect( myTop, SIGNAL( clicked() ), aSignalMapper, SLOT( map() ) );
+    connect( myUp, SIGNAL( clicked() ), aSignalMapper, SLOT( map() ) );
+    connect( myDown, SIGNAL( clicked() ), aSignalMapper, SLOT( map() ) );
+    connect( myBottom, SIGNAL( clicked() ), aSignalMapper, SLOT( map() ) );
+    connect( aSignalMapper, SIGNAL( mapped( int ) ), this, SLOT( onMove( int ) ) );
+  } else {
+    myTop = myUp = myDown = myBottom = 0;
+  }
 
   connect ( myList->selectionModel(), SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), 
             this, SIGNAL( selectionChanged() ) );
@@ -352,10 +357,12 @@ HYDROGUI_ListModel* HYDROGUI_OrderedListWidget::getSourceModel() const
 void HYDROGUI_OrderedListWidget::setOrderingEnabled( const bool theIsToEnable )
 {
   // enable/disable arrow buttons
-  myTop->setEnabled( theIsToEnable );
-  myUp->setEnabled( theIsToEnable );
-  myDown->setEnabled( theIsToEnable );
-  myBottom->setEnabled( theIsToEnable );
+  if ( myTop && myUp && myDown && myBottom ) {
+    myTop->setEnabled( theIsToEnable );
+    myUp->setEnabled( theIsToEnable );
+    myDown->setEnabled( theIsToEnable );
+    myBottom->setEnabled( theIsToEnable );
+  }
 
   // enable/disable drag and drop
   myList->setDragEnabled( theIsToEnable );