]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
*** empty log message ***
authorvsr <vsr@opencascade.com>
Tue, 24 Jul 2007 13:11:46 +0000 (13:11 +0000)
committervsr <vsr@opencascade.com>
Tue, 24 Jul 2007 13:11:46 +0000 (13:11 +0000)
src/Qtx/QtxTreeView.cxx
src/Qtx/QtxTreeView.h

index 3199ed645b6248f5268f59658fd552d3d4a3374b..ef1801ad4b894ff39b831bf8bfb770df63610e8d 100644 (file)
@@ -133,3 +133,54 @@ QtxTreeView::QtxTreeView( QWidget* parent )
 QtxTreeView::~QtxTreeView()
 {
 }
+
+/*!
+  \brief Expand all branches for specified number of levels.
+  
+  If \c levels < 0, all branches are expanded (the same results can
+  be achieved with expandAll() method).
+
+  \param levels number of levels to be opened
+  \sa collapseLevels(), setOpened()
+*/
+void QtxTreeView::expandLevels( const int levels )
+{
+  setOpened( rootIndex(), levels+1, true );
+}
+
+/*!
+  \brief Collapse all branches for specified number of levels.
+  
+  If \c levels < 0, all branches are collapsed (the same results can
+  be achieved with collapseAll() method).
+
+  \param levels number of levels to be collapsed
+  \sa expandLevels(), setOpened()
+*/
+void QtxTreeView::collapseLevels( const int levels )
+{
+  setOpened( rootIndex(), levels+1, false );
+}
+
+/*!
+  \brief Expand/collapse the specified item (recursively).
+  \param index model index
+  \param levels number of levels to be expanded/collapsed
+  \param open if \c true, item is expanded, otherwise it is collapsed
+  \sa expandLevels(), collapseLevels()
+*/
+void QtxTreeView::setOpened( const QModelIndex& index, const int levels, bool open )
+{
+  if ( !levels )
+    return;
+
+  if ( !index.isValid() && index != rootIndex() )
+    return;
+
+  setExpanded( index, open );
+
+  for ( int i = 0; i < model()->rowCount( index ); i++ ) {
+    QModelIndex child = model()->index( i, 0, index );
+    setOpened( child, levels-1, open );
+  }
+}
index 6ee7a526a1d7279a6de32c12f78539e2d47ebb41..03e54206560651ecd8173896bfe28a8248c8b8d4 100644 (file)
@@ -40,6 +40,12 @@ class QTX_EXPORT QtxTreeView : public QTreeView
 public:
   QtxTreeView( QWidget* = 0 );
   virtual ~QtxTreeView();
+
+  void     expandLevels( const int );
+  void     collapseLevels( const int );
+
+protected:
+  void     setOpened( const QModelIndex&, const int, bool );
 };
 
 #ifdef WIN32