-// 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
-//
+// Copyright (C) 2014-2015 EDF-R&D
// 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.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@param theParent the parent object
*/
HYDROGUI_ListModel::HYDROGUI_ListModel( QObject* theParent )
- : QAbstractListModel( theParent )
+ : QAbstractListModel( theParent ), myIsDecorationEnabled( true )
{
// Get resource manager
SUIT_ResourceMgr* aResMgr = 0;
case Qt::DecorationRole:
{
- if( aColumn==0 && aRow >=0 && aRow < myObjects.count() )
- {
+ if( myIsDecorationEnabled &&
+ aColumn==0 && aRow >=0 && aRow < myObjects.count() ) {
bool isVisible = isObjectVisible( aRow );
if( isVisible )
return myEye;
return anObjects;
}
+/**
+ Add the object to the end of the list.
+ @param theObjects the pair (object; visibility)
+*/
+void HYDROGUI_ListModel::addObject( const Object2Visible& theObject )
+{
+ myObjects << theObject;
+
+ reset();
+}
+
+/**
+ Remove the object from the list.
+ @param theObjectName the name of the object to remove
+*/
+void HYDROGUI_ListModel::removeObjectByName( const QString& theObjectName )
+{
+ Object2Visible anItem;
+ foreach( anItem, myObjects ) {
+ if ( anItem.first->GetName() == theObjectName ) {
+ break;
+ }
+ }
+
+ myObjects.removeAll(anItem);
+
+ reset();
+}
+
+
/**
Check if the object is visible.
@param theIndex the object index
if ( aDestinationIndex >= 0 && aDestinationIndex < myObjects.count() ) {
int aDestinationRow = isInsertBefore ? aDestinationIndex : aDestinationIndex + 1;
if ( beginMoveRows( QModelIndex(), theItem, theItem, QModelIndex(), aDestinationRow ) ) {
+ myPrevObjects = myObjects;
myObjects.move( theItem, aDestinationIndex );
endMoveRows();
aRes = true;
return isAllowed;
}
+
+/**
+ Enable/disable decoration (eye icon).
+ @param theIsToEnable if true - the decoration will be enabled
+*/
+void HYDROGUI_ListModel::setDecorationEnabled( const bool theIsToEnable )
+{
+ myIsDecorationEnabled = theIsToEnable;
+}
+
+void HYDROGUI_ListModel::undoLastMove()
+{
+ myObjects = myPrevObjects;
+ reset();
+}