Salome HOME
Rebuild data tree in case of inconsistence with data model. Correct warning with...
[modules/shaper.git] / src / XGUI / XGUI_ObjectsBrowser.h
index 22b45c08aca2c5ce8fb78ff846d83f4fffdac55c..eff2ffc1091a402077579384272a907d80cba1eb 100644 (file)
 
 #include <QWidget>
 #include <QTreeView>
-#include <QLineEdit>
+#include <QLabel>
 
 class ModuleBase_IDocumentDataModel;
 class XGUI_DataModel;
+class Config_DataModelReader;
 
 /**
 * \ingroup GUI
 * Implementation of root label in Object Browser
 */
-class XGUI_ActiveDocLbl: public QLineEdit
+class XGUI_ActiveDocLbl: public QLabel
 {
 Q_OBJECT
  public:
    /// Constructor
+   /// \param theText a text
    /// \param theParent a parent widget
    XGUI_ActiveDocLbl(const QString& theText, QWidget* theParent );
 
+   /// Sets tree view
+   /// \param theView a view
    void setTreeView(QTreeView* theView);
 
+   /// Returns tree view
    QTreeView* treePalette() const { return myTreeView;}
 
 #if (!defined HAVE_SALOME) && (defined WIN32)
@@ -37,11 +42,14 @@ Q_OBJECT
 #endif
 
 public slots:
+  /// On unselect
   void unselect();
 
 protected:
+  /// On mouse release
   virtual void mouseReleaseEvent( QMouseEvent* e);
 
+  /// Filter event
   bool eventFilter(QObject* theObj, QEvent* theEvent);
 
 private:
@@ -165,7 +173,7 @@ Q_OBJECT
   }
 
   /// Returns active doc label object
-  QLineEdit* activeDocLabel() const { return myActiveDocLbl; }
+  QLabel* activeDocLabel() const { return myActiveDocLbl; }
 
   /// Rebuild data tree
   void rebuildDataTree();
@@ -173,6 +181,8 @@ Q_OBJECT
   /// Resets the object browser into initial state
   void clearContent();
 
+  void setXMLReader(Config_DataModelReader* theReader);
+
 public slots:
   //! Called on Edit command request
   void onEditItem();
@@ -199,12 +209,20 @@ signals:
   //! Called when selection in Data Tree is changed
   void onSelectionChanged(const QItemSelection& theSelected, const QItemSelection& theDeselected);
 
+  void onBeforeReset();
+
+  void onAfterModelReset();
+
  private:
+  QModelIndexList expandedItems(const QModelIndex& theParent = QModelIndex()) const;
 
   //! Internal model
   XGUI_DataModel* myDocModel;
   XGUI_ActiveDocLbl* myActiveDocLbl;
   XGUI_DataTree* myTreeView;
+
+  /// A field to store expanded items before model reset
+  QModelIndexList myExpandedItems;
 };
 
 #endif