Salome HOME
patch for install error on Linux
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ListModel.cxx
index 8c1cb7208e2660b4b08a192b88fa450f345f0549..254cb7c3f06fcf8ffd786e76451a5ab4e0e02226 100644 (file)
@@ -63,6 +63,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
@@ -82,6 +100,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:
     {
@@ -372,6 +400,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;
@@ -487,4 +516,10 @@ bool HYDROGUI_ListModel::isDragAndDropAllowed( const QList<int>& theItems,
 void HYDROGUI_ListModel::setDecorationEnabled( const bool theIsToEnable )
 {
   myIsDecorationEnabled = theIsToEnable;
-}
\ No newline at end of file
+}
+
+void HYDROGUI_ListModel::undoLastMove()
+{
+  myObjects = myPrevObjects;
+  reset();
+}