X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ListModel.cxx;h=a452d2b3ba7145356f386adaf93f09285c28c6ca;hb=6ba63abdcb5832a1773cb33cf67d6b34aee4139d;hp=e6deaf424f59039bb74062064f55339eddb091e4;hpb=c7917bada8643db80254fe2a3b3a91d25548b484;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ListModel.cxx b/src/HYDROGUI/HYDROGUI_ListModel.cxx index e6deaf42..a452d2b3 100644 --- a/src/HYDROGUI/HYDROGUI_ListModel.cxx +++ b/src/HYDROGUI/HYDROGUI_ListModel.cxx @@ -1,12 +1,8 @@ -// 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 @@ -55,9 +51,6 @@ HYDROGUI_ListModel::HYDROGUI_ListModel( QObject* theParent ) myEye = QPixmap( 16, 16 ); myEye.fill( Qt::black ); } - - // Set the supported drag actions for the items in the model - setSupportedDragActions( Qt::MoveAction | Qt::CopyAction ); } /** @@ -67,6 +60,24 @@ HYDROGUI_ListModel::~HYDROGUI_ListModel() { } +void HYDROGUI_ListModel::setBackgroundColor(int theInd, QColor theColor) +{ + myColoredRow[theInd] = theColor; +} + +void HYDROGUI_ListModel::clearAllBackgroundColors() +{ + myColoredRow.clear(); +} + +QColor HYDROGUI_ListModel::getBackgroundColor(int theInd) const +{ + if (myColoredRow.count( theInd )) + return myColoredRow[theInd]; + else + return QColor(); +} + /** */ QVariant HYDROGUI_ListModel::data( const QModelIndex &theIndex, int theRole ) const @@ -86,6 +97,16 @@ QVariant HYDROGUI_ListModel::data( const QModelIndex &theIndex, int theRole ) co return QVariant(); } break; + case Qt::BackgroundRole: + { + if( aColumn==0 && aRow >=0 && aRow < myObjects.count() && myColoredRow.contains(aRow)) + { + QBrush aBackgr(myColoredRow[aRow]); + return aBackgr; + } + else + return QVariant(); + } case Qt::DecorationRole: { @@ -132,9 +153,9 @@ int HYDROGUI_ListModel::rowCount( const QModelIndex &theParent ) const */ void HYDROGUI_ListModel::setObjects( const Object2VisibleList& theObjects ) { + beginResetModel(); myObjects = theObjects; - - reset(); + endResetModel(); } /** @@ -158,9 +179,9 @@ HYDROGUI_ListModel::ObjectList HYDROGUI_ListModel::getObjects() const */ void HYDROGUI_ListModel::addObject( const Object2Visible& theObject ) { + beginResetModel(); myObjects << theObject; - - reset(); + endResetModel(); } /** @@ -176,9 +197,9 @@ void HYDROGUI_ListModel::removeObjectByName( const QString& theObjectName ) } } + beginResetModel(); myObjects.removeAll(anItem); - - reset(); + endResetModel(); } @@ -291,6 +312,14 @@ Qt::DropActions HYDROGUI_ListModel::supportedDropActions() const return Qt::MoveAction | Qt::CopyAction; } +/** +*/ +Qt::DropActions HYDROGUI_ListModel::supportedDragActions() const +{ + // Set the supported drag actions for the items in the model + return Qt::MoveAction | Qt::CopyAction; +} + /** Get list of ids by the list model indexes. @param theIsToSort defines if the list of ids should be sorted in ascending order @@ -376,6 +405,7 @@ bool HYDROGUI_ListModel::move( const int theItem, const OpType theType, 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; @@ -491,4 +521,11 @@ bool HYDROGUI_ListModel::isDragAndDropAllowed( const QList& theItems, void HYDROGUI_ListModel::setDecorationEnabled( const bool theIsToEnable ) { myIsDecorationEnabled = theIsToEnable; -} \ No newline at end of file +} + +void HYDROGUI_ListModel::undoLastMove() +{ + beginResetModel(); + myObjects = myPrevObjects; + endResetModel(); +}