Salome HOME
Add tests for drag and drop algo.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ZLevelsDlg.cxx
index bb899965b4689dad32259879c3d859555c15faa4..9e85de975c455ed1be26c4bbfb1e7697ef95ffa4 100644 (file)
 #include "HYDROGUI_ZLevelsDlg.h"
 #include "HYDROGUI_ZLevelsModel.h"
 
+#include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
+
 #include <QCheckBox>
 #include <QLayout>
 #include <QListView>
 #include <QPushButton>
+#include <QToolButton>
 #include <QSignalMapper>
 #include <QSortFilterProxyModel>
 
@@ -34,6 +38,8 @@
 HYDROGUI_ZLevelsDlg::HYDROGUI_ZLevelsDlg( QWidget* theParent )
 : QDialog( theParent )
 {
+  setWindowTitle( tr( "CHANGE_LAYER_ORDER" ) );
+
   QVBoxLayout* aMainLayout = new QVBoxLayout( this );
   aMainLayout->setMargin( 5 );
 
@@ -55,10 +61,19 @@ HYDROGUI_ZLevelsDlg::HYDROGUI_ZLevelsDlg( QWidget* theParent )
 
   myList->setModel( aFilteredModel );
 
-  myTop = new QPushButton( tr("TOP") );
-  myUp = new QPushButton( tr("UP") );
-  myDown = new QPushButton( tr("DOWN") );
-  myBottom = new QPushButton( tr("BOTTOM") );
+  SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
+  myTop = new QToolButton;
+  myTop->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_TOP_ICO" ) ) );
+  myTop->setIconSize( QSize( 32, 32 ) );
+  myUp = new QToolButton;
+  myUp->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_UP_ICO" ) ) );
+  myUp->setIconSize( myTop->iconSize() );
+  myDown = new QToolButton;
+  myDown->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_DOWN_ICO" ) ) );
+  myDown->setIconSize( myTop->iconSize() );
+  myBottom = new QToolButton;
+  myBottom->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "ARROW_BOTTOM_ICO" ) ) );
+  myBottom->setIconSize( myTop->iconSize() );
   QVBoxLayout* aListButtonsLayout = new QVBoxLayout();
   aListButtonsLayout->addWidget( myTop );
   aListButtonsLayout->addWidget( myUp );
@@ -102,21 +117,24 @@ HYDROGUI_ZLevelsDlg::~HYDROGUI_ZLevelsDlg()
 {
 }
 
-void HYDROGUI_ZLevelsDlg::setObjects( const QList<QString>& theObjects )
+void HYDROGUI_ZLevelsDlg::setObjects( const HYDROGUI_ZLevelsModel::Object2VisibleList& theObjects )
 {
-  QSortFilterProxyModel* aFilterModel = dynamic_cast<QSortFilterProxyModel*>( myList->model() );
-  if( aFilterModel )
-  {
-    HYDROGUI_ZLevelsModel* aModel = dynamic_cast<HYDROGUI_ZLevelsModel*>( aFilterModel->sourceModel() );
-    if( aModel ) {
-      // TODO: to be reimplemented
-      QList<QPair<QString, bool>> anObjects;
-      for ( int i = 0; i < theObjects.count(); i++ ) {
-        anObjects << QPair<QString, bool>( theObjects.at(i), i%2 == 0 );
-      }
-      aModel->setObjects( anObjects );
-    }
+  HYDROGUI_ZLevelsModel* aModel = getListSourceModel();
+  if( aModel ) {
+    aModel->setObjects( theObjects );
+  }
+}
+
+QList<Handle(HYDROData_Entity)> HYDROGUI_ZLevelsDlg::getObjects() const
+{
+  QList<Handle(HYDROData_Entity)> anObjects;
+
+  HYDROGUI_ZLevelsModel* aModel = getListSourceModel();
+  if( aModel ) {
+    anObjects = aModel->getObjects();
   }
+
+  return anObjects;
 }
 
 void HYDROGUI_ZLevelsDlg::onMove( int theType )
@@ -144,3 +162,15 @@ void HYDROGUI_ZLevelsDlg::OnStateChanged()
   QString anExpr = isAll ? "true|false" : "true";
   aFilterModel->setFilterRegExp( anExpr );
 }
+
+HYDROGUI_ZLevelsModel* HYDROGUI_ZLevelsDlg::getListSourceModel() const
+{
+  HYDROGUI_ZLevelsModel* aSourceModel = 0;
+
+  QSortFilterProxyModel* aFilterModel = dynamic_cast<QSortFilterProxyModel*>( myList->model() );
+  if( aFilterModel ) {
+    aSourceModel = dynamic_cast<HYDROGUI_ZLevelsModel*>( aFilterModel->sourceModel() );
+  }
+
+  return aSourceModel;
+}
\ No newline at end of file