Salome HOME
icons are applied for visible objects
authorasl <asl@opencascade.com>
Wed, 19 Mar 2014 08:07:15 +0000 (08:07 +0000)
committerasl <asl@opencascade.com>
Wed, 19 Mar 2014 08:07:15 +0000 (08:07 +0000)
src/ZLEVEL/HYDROGUI_ZLevelsDlg.cxx
src/ZLEVEL/HYDROGUI_ZLevelsModel.cxx [new file with mode: 0644]
src/ZLEVEL/HYDROGUI_ZLevelsModel.h [new file with mode: 0644]
src/ZLEVEL/eye.png [new file with mode: 0644]
src/ZLEVEL/gen.bat
src/ZLEVEL/zlevel.pro

index a6663624922c25f0ef75c8553d0cf5c1a3729dbb..238badf2f6d2952e6e9f3ad7c7b154471973b9c0 100644 (file)
@@ -21,7 +21,7 @@
 //
 
 #include "HYDROGUI_ZLevelsDlg.h"
-#include "HYDROGUI_ListModel.h"
+#include "HYDROGUI_ZLevelsModel.h"
 
 #include <QCheckBox>
 #include <QLayout>
@@ -38,7 +38,7 @@ HYDROGUI_ZLevelsDlg::HYDROGUI_ZLevelsDlg( QWidget* theParent )
   QHBoxLayout* aListLayout = new QHBoxLayout();
 
   myList = new QListView( this );
-  myList->setModel( new HYDROGUI_ListModel );
+  myList->setModel( new HYDROGUI_ZLevelsModel );
 
   myTop = new QPushButton( tr("TOP") );
   myUp = new QPushButton( tr("UP") );
@@ -72,6 +72,6 @@ HYDROGUI_ZLevelsDlg::~HYDROGUI_ZLevelsDlg()
 
 void HYDROGUI_ZLevelsDlg::setObjects( const QList<QString>& theObjects )
 {
-  HYDROGUI_ListModel* aModel = dynamic_cast<HYDROGUI_ListModel*>( myList->model() );
+  HYDROGUI_ZLevelsModel* aModel = dynamic_cast<HYDROGUI_ZLevelsModel*>( myList->model() );
   aModel->setObjects( theObjects );
 }
\ No newline at end of file
diff --git a/src/ZLEVEL/HYDROGUI_ZLevelsModel.cxx b/src/ZLEVEL/HYDROGUI_ZLevelsModel.cxx
new file mode 100644 (file)
index 0000000..57ce54e
--- /dev/null
@@ -0,0 +1,102 @@
+// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007  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 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
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#include "HYDROGUI_ZLevelsModel.h"
+
+HYDROGUI_ZLevelsModel::HYDROGUI_ZLevelsModel( QObject* theParent )
+ : QAbstractListModel( theParent )
+{
+  myEmpty = QPixmap( 16, 16 );
+  myEmpty.fill( Qt::white );
+  myEye = QPixmap( "eye.png" );
+}
+
+HYDROGUI_ZLevelsModel::~HYDROGUI_ZLevelsModel()
+{
+}
+
+QVariant HYDROGUI_ZLevelsModel::data( const QModelIndex &theIndex, int theRole ) const
+{
+  QVariant aVariant;
+
+  int aRow = theIndex.row();
+  int aColumn = theIndex.column();
+
+  switch( theRole )
+  {
+  case Qt::DisplayRole:
+    {
+      if( aColumn==0 && aRow >=0 && aRow < myObjects.count() )
+        return myObjects.at( aRow );
+      else
+        return QVariant();
+    }
+    break;
+  case Qt::DecorationRole:
+    {
+      if( aColumn==0 && aRow >=0 && aRow < myObjects.count() )
+      {
+        bool isVisible = IsObjectVisible( aRow );
+        if( isVisible )
+          return myEye;
+        else
+          return myEmpty;
+      }
+      return QVariant();
+    }
+    break;
+  }
+
+  return aVariant;
+}
+
+int HYDROGUI_ZLevelsModel::rowCount( const QModelIndex &theParent ) const
+{
+  return myObjects.count();
+}
+
+void HYDROGUI_ZLevelsModel::setObjects( const QList<QString>& theObjects )
+{
+  myObjects = theObjects;
+}
+
+bool HYDROGUI_ZLevelsModel::IsObjectVisible( int theIndex ) const
+{
+  return theIndex%2==0;//TODO: implement real visibility state
+}
+
+QVariant HYDROGUI_ZLevelsModel::headerData( int theSection,
+                                            Qt::Orientation theOrientation,
+                                            int theRole ) const
+{
+  if( theOrientation==Qt::Horizontal && theRole==Qt::DisplayRole )
+  {
+    switch( theSection )
+    {
+    case 0:
+      return tr( "VISIBLE" );
+    case 1:
+      return tr( "OBJECT_NAME" );
+    };
+  }
+  return QVariant();
+}
diff --git a/src/ZLEVEL/HYDROGUI_ZLevelsModel.h b/src/ZLEVEL/HYDROGUI_ZLevelsModel.h
new file mode 100644 (file)
index 0000000..5ae5675
--- /dev/null
@@ -0,0 +1,58 @@
+// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007  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 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
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef HYDROGUI_ZLEVELSMODEL_H
+#define HYDROGUI_ZLEVELSMODEL_H
+
+#include <QAbstractListModel>
+#include <QPixmap>
+
+/** 
+ * \class HYDROGUI_ZLevelsModel
+ * \brief The class representing custom list model for the Z levels
+ */
+class HYDROGUI_ZLevelsModel : public QAbstractListModel
+{
+  Q_OBJECT
+
+public:
+  HYDROGUI_ZLevelsModel( QObject* theParent = 0 );
+  ~HYDROGUI_ZLevelsModel();
+
+  virtual QVariant data( const QModelIndex &theIndex, int theRole = Qt::DisplayRole ) const;  
+
+  virtual int rowCount( const QModelIndex& theParent = QModelIndex() ) const;
+  virtual QVariant headerData( int theSection,
+                               Qt::Orientation theOrientation,
+                               int theRole = Qt::DisplayRole ) const;
+
+  void setObjects( const QList<QString>& theObjects );
+
+protected:
+  bool IsObjectVisible( int theIndex ) const;
+
+private:
+  QList<QString> myObjects;
+  QPixmap myEmpty, myEye;
+};
+
+#endif
diff --git a/src/ZLEVEL/eye.png b/src/ZLEVEL/eye.png
new file mode 100644 (file)
index 0000000..f30a887
Binary files /dev/null and b/src/ZLEVEL/eye.png differ
index 84d4206ea5bbb5d043e9a88690d1dbb0e051bb34..9cd2c72b5b8fb0eba6d924d1aba10bcbe71c50e1 100755 (executable)
@@ -6,4 +6,4 @@ call %PDIR%\env_compile.bat
 
 echo %PATH%
 
-qmake -tp vc -spec win32-msvc2008 zlevel.pro -r
\ No newline at end of file
+qmake -tp vc -spec win32-msvc2008 zlevel.pro -r
index 0d71118b2e74c9f486d80c624b28ebebd11ded8b..3193122f6ec6455b905050d52369870a96c02d11 100644 (file)
@@ -1,6 +1,6 @@
-HEADERS = HYDROGUI_ZLevelsDlg.h HYDROGUI_ListModel.h
+HEADERS = HYDROGUI_ZLevelsDlg.h HYDROGUI_ZLevelsModel.h
 
-SOURCES = main.cpp HYDROGUI_ZLevelsDlg.cxx HYDROGUI_ListModel.cxx
+SOURCES = main.cpp HYDROGUI_ZLevelsDlg.cxx HYDROGUI_ZLevelsModel.cxx
 CONFIG += qt
 
-TEMPLATE = app
\ No newline at end of file
+TEMPLATE = app