Salome HOME
Import of shapefile - bug fixes; #refs 614
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_PriorityWidget.cxx
index fe011338dd2644189f5b1cc74cb6282b5467a70c..6c85d3e0ab54c76392207576a17c5f2a088dca11 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
@@ -189,6 +185,7 @@ HYDROGUI_PriorityWidget::HYDROGUI_PriorityWidget( QWidget* theParent )
             this, SLOT( onSelectionChanged() ) );
 
   connect( aModel, SIGNAL( showError( const QString& ) ), this, SLOT( onShowError( const QString& ) ) );
+  connect( aModel, SIGNAL( ruleChanged() ), this, SIGNAL( ruleChanged() ) );
 }
 
 /**
@@ -208,6 +205,7 @@ void HYDROGUI_PriorityWidget::onAddRule()
   if ( aModel ) {
     if (aModel->createNewRule()) {
       updateControls();
+      emit ruleChanged();
     }
   }
 }
@@ -230,6 +228,7 @@ void HYDROGUI_PriorityWidget::onRemoveRule()
     
     if ( aModel->removeRows( aRows ) ) {
       updateControls();
+      emit ruleChanged();
     }
   }
 }
@@ -243,13 +242,15 @@ void HYDROGUI_PriorityWidget::onClearRules()
     dynamic_cast<HYDROGUI_PriorityTableModel*>( myTable->model() );
   if ( aModel && aModel->removeAll() ) {
     updateControls();
+    emit ruleChanged();
   }
 }
 
 /**
-  Set objects.
+  Set objects which could be used for rules definition.
+  @param theObjects the ordered list of objects
  */
-void HYDROGUI_PriorityWidget::setObjects( const QList<Handle(HYDROData_Object)>& theObjects )
+void HYDROGUI_PriorityWidget::setObjects( const QList<Handle(HYDROData_Entity)>& theObjects )
 {
   HYDROGUI_PriorityTableModel* aModel = 
     dynamic_cast<HYDROGUI_PriorityTableModel*>( myTable->model() );
@@ -290,6 +291,15 @@ void HYDROGUI_PriorityWidget::setRules( const HYDROData_ListOfRules& theRules )
   }
 }
 
+/**
+  Get table view.
+  @return the table view
+ */
+QTableView* HYDROGUI_PriorityWidget::getTable() const
+{
+  return myTable;
+}
+
 /**
  Slot called on table selection change.
 */
@@ -319,4 +329,15 @@ void HYDROGUI_PriorityWidget::updateControls()
  */
 void HYDROGUI_PriorityWidget::onShowError( const QString& theMsg ) {
   SUIT_MessageBox::warning( this, tr( "INCORRECT_INPUT" ), theMsg );
-}
\ No newline at end of file
+}
+
+/**
+ Undo last change in priority rules table.
+ */
+void HYDROGUI_PriorityWidget::undoLastChange()
+{
+  HYDROGUI_PriorityTableModel* aModel = 
+    dynamic_cast<HYDROGUI_PriorityTableModel*>( myTable->model() );
+  if ( aModel )
+    aModel->undoLastChange();
+}