Salome HOME
refs #550: fix crash when myObject is NULL
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_OrderedListWidget.cxx
index b4bf9a1bc5b4ee6f2943eb7a30941261f538d3a8..1b551cfc17799a0f500add6305dadd8d2cd7b94e 100644 (file)
@@ -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
@@ -310,6 +306,8 @@ QStringList HYDROGUI_OrderedListWidget::getAllNames() const
 */
 void HYDROGUI_OrderedListWidget::onMove( int theType )
 {
+  bool isMoved = false;
+
   QSortFilterProxyModel* aFilterModel = dynamic_cast<QSortFilterProxyModel*>( myList->model() );
   if( aFilterModel ) {
     HYDROGUI_ListModel* aModel = dynamic_cast<HYDROGUI_ListModel*>( aFilterModel->sourceModel() );
@@ -320,10 +318,15 @@ void HYDROGUI_OrderedListWidget::onMove( int theType )
         aSelectedSourceIndexes << aFilterModel->mapToSource( anIndex );
       }
       QList<int> aSelectedIds = aModel->getIds( aSelectedSourceIndexes );
-      aModel->move( aSelectedIds, ( HYDROGUI_ListModel::OpType )theType, 
-                    !myIsHiddenObjectsShown );      
+      isMoved = aModel->move( aSelectedIds, ( HYDROGUI_ListModel::OpType )theType, 
+                              !myIsHiddenObjectsShown );
     }
   }
+
+  if ( isMoved )
+  {
+    emit orderChanged();
+  }
 }
 
 /**
@@ -356,4 +359,11 @@ void HYDROGUI_OrderedListWidget::setOrderingEnabled( const bool theIsToEnable )
 
   // enable/disable drag and drop
   myList->setDragEnabled( theIsToEnable );
-}
\ No newline at end of file
+}
+
+void HYDROGUI_OrderedListWidget::undoLastMove()
+{
+  HYDROGUI_ListModel* aModel = getSourceModel();
+  if( aModel )
+    aModel->undoLastMove();
+}