qMRMLTractographyDisplayTreeView.h 2.39 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
/*==============================================================================

  Program: 3D Slicer

  Copyright (c) Kitware Inc.

  See COPYRIGHT.txt
  or http://www.slicer.org/copyright/copyright.txt for details.

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

  This file was originally developed by Julien Finet, Kitware Inc.
  and was partially funded by NIH grant 3P41RR013218-12S1

==============================================================================*/

#ifndef __qMRMLTractographyDisplayTreeView_h
#define __qMRMLTractographyDisplayTreeView_h

// Qt includes
#include <QTreeView>
// TractographyDisplay QT includes
#include "qSlicerTractographyDisplayModuleWidget.h"

// CTK includes
#include <ctkPimpl.h>

// qMRML includes
#include "qMRMLTreeView.h"

#include "qSlicerTractographyDisplayModuleWidgetsExport.h"

// Logic includes

class qMRMLSortFilterProxyModel;
class qMRMLTractographyDisplayTreeViewPrivate;
class vtkMRMLNode;
class vtkMRMLScene;
class vtkSlicerFiberBundleLogic;

/// \ingroup Slicer_QtModules_TractographyDisplay
class Q_SLICER_MODULE_TRACTOGRAPHYDISPLAY_WIDGETS_EXPORT qMRMLTractographyDisplayTreeView : public qMRMLTreeView
{
  Q_OBJECT

public:
  typedef qMRMLTreeView Superclass;

  qMRMLTractographyDisplayTreeView(QWidget *parent=0);
  virtual ~qMRMLTractographyDisplayTreeView();

  virtual void setMRMLScene(vtkMRMLScene* scene);

  // Register the logic
  void setLogic(vtkSlicerFiberBundleLogic* logic);

  virtual bool clickDecoration(const QModelIndex& index);


signals:
  void onPropertyEditButtonClicked(QString id);
  // type 0-line 1-tube 2-glyph
  void visibilityChanged(int type);
68
public slots:
69 70 71 72 73 74 75 76


protected:
  QScopedPointer<qMRMLTractographyDisplayTreeViewPrivate> d_ptr;
  #ifndef QT_NO_CURSOR
    bool viewportEvent(QEvent* e);
  #endif

77 78 79
protected slots:
  void dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight );

80 81 82 83 84 85 86 87 88 89 90 91
private:
  Q_DECLARE_PRIVATE(qMRMLTractographyDisplayTreeView);
  Q_DISABLE_COPY(qMRMLTractographyDisplayTreeView);

  vtkSlicerFiberBundleLogic* m_Logic;
  
  // toggle the visibility of an TractographyDisplay
  void onVisibilityColumnClicked(vtkMRMLNode* node);

};

#endif