From: asl Date: Wed, 19 Mar 2014 08:07:15 +0000 (+0000) Subject: icons are applied for visible objects X-Git-Tag: BR_hydro_v1_0_1~52 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=8657ead135f2f29d953905595b05f5e1ef7bf03d;p=modules%2Fhydro.git icons are applied for visible objects --- diff --git a/src/ZLEVEL/HYDROGUI_ZLevelsDlg.cxx b/src/ZLEVEL/HYDROGUI_ZLevelsDlg.cxx index a6663624..238badf2 100644 --- a/src/ZLEVEL/HYDROGUI_ZLevelsDlg.cxx +++ b/src/ZLEVEL/HYDROGUI_ZLevelsDlg.cxx @@ -21,7 +21,7 @@ // #include "HYDROGUI_ZLevelsDlg.h" -#include "HYDROGUI_ListModel.h" +#include "HYDROGUI_ZLevelsModel.h" #include #include @@ -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& theObjects ) { - HYDROGUI_ListModel* aModel = dynamic_cast( myList->model() ); + HYDROGUI_ZLevelsModel* aModel = dynamic_cast( 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 index 00000000..57ce54e7 --- /dev/null +++ b/src/ZLEVEL/HYDROGUI_ZLevelsModel.cxx @@ -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& 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 index 00000000..5ae5675e --- /dev/null +++ b/src/ZLEVEL/HYDROGUI_ZLevelsModel.h @@ -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 +#include + +/** + * \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& theObjects ); + +protected: + bool IsObjectVisible( int theIndex ) const; + +private: + QList myObjects; + QPixmap myEmpty, myEye; +}; + +#endif diff --git a/src/ZLEVEL/eye.png b/src/ZLEVEL/eye.png new file mode 100644 index 00000000..f30a8877 Binary files /dev/null and b/src/ZLEVEL/eye.png differ diff --git a/src/ZLEVEL/gen.bat b/src/ZLEVEL/gen.bat index 84d4206e..9cd2c72b 100755 --- a/src/ZLEVEL/gen.bat +++ b/src/ZLEVEL/gen.bat @@ -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 diff --git a/src/ZLEVEL/zlevel.pro b/src/ZLEVEL/zlevel.pro index 0d71118b..3193122f 100644 --- a/src/ZLEVEL/zlevel.pro +++ b/src/ZLEVEL/zlevel.pro @@ -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