]> Creatis software - clitk.git/blobdiff - vv/vvToolROIManager.h
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvToolROIManager.h
index 4bbf39493a0e111dab74185e189422f981a22b44..db630c641b059c4838a376d7bdfdf380a70d4fd5 100644 (file)
 #ifndef VVTOOLROIMANAGER_H
 #define VVTOOLROIMANAGER_H
 
+#include <QtGlobal>
+#if QT_VERSION >= 0x050000
+#include <QtUiPlugin/QDesignerExportWidget>
+#else
 #include <QtDesigner/QDesignerExportWidget>
+#endif
 #include <QSharedPointer>
 
 #include "vvToolBase.h"
@@ -43,14 +48,22 @@ class vvToolROIManager:
   static void Initialize();
   virtual void InputIsSelected(vvSlicerManager *m);
 
-  void AddImage(vvImage * binaryImage, std::string filename, double BG, bool m_modeBG=true);
+  void AddImage(vvImage * binaryImage, std::string name, std::string filename, double BG, bool m_modeBG=true);
   void UpdateAllContours();
   void UpdateAllROIStatus();
+#if __cplusplus > 199711L
+  virtual void SaveState(std::shared_ptr<QXmlStreamWriter> & m_XmlWriter);
+#else
+  virtual void SaveState(std::auto_ptr<QXmlStreamWriter> & m_XmlWriter);
+#endif
+  virtual void InitializeNewTool(bool ReadStateFlag);
 
   public slots:
   void AnImageIsBeingClosed(vvSlicerManager *);
   void SelectedImageHasChanged(vvSlicerManager *);
-  void OpenBinaryImage();
+  void Open();
+  void OpenBinaryImage(QStringList & filenames);
+  void OpenDicomImage(std::string filaneme);
   void SelectedItemChangedInTree();
   void VisibleROIToggled(bool b);
   void VisibleContourROIToggled(bool b);
@@ -60,23 +73,27 @@ class vvToolROIManager:
   void ChangeContourWidth(int n);
   void ChangeDepth(int n);
   void AllVisibleROIToggled(int b);
-  void AllVisibleContourROIToggled(bool b);
+  void AllVisibleContourROIToggled(int b);
   void ReloadCurrentROI();  
   void close();
+  void RemoveROI();
+  vvSlicerManager * GetCurrentSlicerManager() { return mCurrentSlicerManager; }
 
 protected:
   Ui::vvToolROIManager ui;
-  vvSlicerManager * mSlicerManager;
+  vvSlicerManager * mCurrentSlicerManager; // need it because do not inherit from vvToolWidgetBase
   vvImage * mCurrentImage;
   vvMainWindowBase * mMainWindow;
   int mIndexFirstTab;
+  bool mOpenFileBrowserFlag;
   
   int mNumberOfVisibleROI;
   int mNumberOfVisibleContourROI;
+  static int nbTotalROI;
 
   vtkSmartPointer<vtkLookupTable> mDefaultLUTColor;
 
-  std::vector<vvImage::Pointer> mOpenedBinaryImage;
+  QStringList mOpenedBinaryImageFilenames;
   std::vector<clitk::DicomRT_ROI::Pointer> mROIList;
   std::vector<QSharedPointer<vvROIActor> > mROIActorsList;
 
@@ -88,6 +105,13 @@ protected:
   // Data for current selected roi
   clitk::DicomRT_ROI::Pointer mCurrentROI;
   QSharedPointer<vvROIActor> mCurrentROIActor;
+  
+  // Data for XML Reader
+  void ReadXMLInformation();
+  void ReadXMLInformation_ROI();
+  uint mInitialImageIndex;
+  QStringList mROIFilenames;
+  std::vector<QSharedPointer<vvROIActor> > mROIActorsParamList;
  
 }; // end class vvToolROIManager
 //------------------------------------------------------------------------------