Salome HOME
refs #1457
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_PriorityWidget.h
index 39b45a3b2112beb67fc5b42b06fbd9eb29df1780..ff1cfc41a9349c1788645e64a188112eebba0a47 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
 
 #include <HYDROGUI.h>
 
-#include <HYDROData_Object.h>
+#include <HYDROData_Entity.h>
 #include <HYDROData_PriorityQueue.h>
 
+#include <QStyledItemDelegate>
 #include <QWidget>
 
 class QTableView;
@@ -50,14 +47,21 @@ public:
   HYDROGUI_PriorityWidget( QWidget* theParent );
   virtual ~HYDROGUI_PriorityWidget();
 
-  void setObjects( const QList<Handle(HYDROData_Object)>& theObjects );
+  void setObjects( const QList<Handle(HYDROData_Entity)>& theObjects );
 
   HYDROData_ListOfRules getRules() const;
   void setRules( const HYDROData_ListOfRules& theRules );
 
+  QTableView* getTable() const;
+
+  void undoLastChange();
+
 protected:
   void updateControls();
 
+signals:
+  void ruleChanged();
+
 protected slots:
   void onAddRule();
   void onRemoveRule();
@@ -74,4 +78,25 @@ private:
   QToolButton* myClear;  ///< the clear all rules button
 };
 
+/** 
+ * \class HYDROGUI_PriorityWidget::Delegate
+ * \brief The class representing custom item delegate (combobox)
+ */
+class HYDROGUI_PriorityWidget::Delegate : public QStyledItemDelegate
+{
+  Q_OBJECT
+
+public:
+  Delegate( QObject* theParent = 0 );
+  
+  QWidget* createEditor( QWidget*, const QStyleOptionViewItem&,
+                         const QModelIndex& ) const;
+  
+  void setEditorData( QWidget*, const QModelIndex& ) const;
+  void setModelData( QWidget*, QAbstractItemModel*, const QModelIndex& ) const;
+
+protected slots:
+  void finishEditing();
+};
+
 #endif