Salome HOME
Make same planes cannot be used twice in partition tool
[modules/shaper.git] / src / XGUI / XGUI_ObjectsBrowser.h
index 8c33e24f9b8bc83f09ddcec3277a97f3ebc9294f..b1a70d487ec1cab3f2d1c6bdc6baf1e8bc89df45 100644 (file)
@@ -11,7 +11,7 @@
 
 #include <QWidget>
 #include <QTreeView>
-#include <QLineEdit>
+#include <QLabel>
 
 class ModuleBase_IDocumentDataModel;
 class XGUI_DataModel;
@@ -20,26 +20,35 @@ class XGUI_DataModel;
 * \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)
    virtual bool event(QEvent* theEvent);
+#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:
@@ -51,6 +60,30 @@ private:
   bool myIsSelected;
 };
 
+
+#if (!defined HAVE_SALOME) && (defined WIN32)
+#include <QWindowsVistaStyle>
+/**
+* \ingroup GUI
+* Implementation of XGUI_DataTree custom style
+*/
+class XGUI_TreeViewStyle : public QWindowsVistaStyle
+{
+  Q_OBJECT
+public:
+  XGUI_TreeViewStyle() : QWindowsVistaStyle() {}
+
+  void drawPrimitive(PrimitiveElement theElement, const QStyleOption* theOption,
+                     QPainter* thePainter, const QWidget* theWidget = 0) const;
+
+  void setIndex(const QModelIndex& theIndex) { myIndex = theIndex; }
+  QModelIndex index() const { return myIndex; }
+
+private:
+  QModelIndex myIndex;
+};
+#endif
+
 /**
 * \ingroup GUI
 * Implementation of Data Tree object for Object Browser
@@ -90,6 +123,13 @@ public slots:
    /// Redefinition of virtual method
   virtual void resizeEvent(QResizeEvent* theEvent);
 
+#if (!defined HAVE_SALOME) && (defined WIN32)
+  virtual void drawRow(QPainter* thePainter,
+                        const QStyleOptionViewItem& theOptions,
+                        const QModelIndex& theIndex) const;
+private:
+  XGUI_TreeViewStyle* myStyle;
+#endif
 };
 
 /**\class XGUI_ObjectsBrowser
@@ -132,7 +172,7 @@ Q_OBJECT
   }
 
   /// Returns active doc label object
-  QLineEdit* activeDocLabel() const { return myActiveDocLbl; }
+  QLabel* activeDocLabel() const { return myActiveDocLbl; }
 
   /// Rebuild data tree
   void rebuildDataTree();
@@ -167,6 +207,7 @@ signals:
   void onSelectionChanged(const QItemSelection& theSelected, const QItemSelection& theDeselected);
 
  private:
+  QModelIndexList expandedItems(const QModelIndex& theParent = QModelIndex()) const;
 
   //! Internal model
   XGUI_DataModel* myDocModel;