/*=========================================================================
Program: vv http://www.creatis.insa-lyon.fr/rio/vv
- Authors belong to:
+ Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
#include <iostream>
#include <vector>
+#include <QDropEvent>
+#include "vtkVersion.h"
+#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 2) || VTK_MAJOR_VERSION >= 9
#include "ui_vvMainWindow.h"
+#else
+#include "ui_vvMainWindowVTK7.h"
+#endif
#include "vvMainWindowBase.h"
#include "vvToolManager.h"
#include "vvImageReader.h"
class vtkRenderer;
class vtkMatrix4x4;
class vvDicomSeriesSelector;
+#if CLITK_USE_PACS_CONNECTION
+class vvQPacsConnection;
+#endif
class vvSlicer;
class QTreeWidget;
void LoadImages(std::vector<std::string> filenames, vvImageReader::LoadedImageType type);
vvSlicerManager * AddImage(vvImage::Pointer image,std::string filename);
void AddField(QString file,int index);
+ bool CheckAddedImage(int index, QString imageType);
void AddOverlayImage(int index, std::vector<std::string> fileNames, vvImageReader::LoadedImageType type);
- void AddFusionImage(int index, QString filename);
+ void AddFusionImage(int index, std::vector<std::string> fileNames, vvImageReader::LoadedImageType type);
void AddROI(int index, QString filename);
//Process the sequence for fusion:
void SaveCurrentStateAs(const std::string& stateFile);
void ReadSavedStateFile(const std::string& stateFile);
void LinkAllImages();
- QString Get4x4MatrixDoubleAsString(vtkSmartPointer<vtkMatrix4x4> matrix, const int precision=3);
virtual void UpdateCurrentSlicer();
virtual QTabWidget * GetTab();
void SliceImages();
void MergeImagesWithTime();
void OpenDicom();
+#if CLITK_USE_PACS_CONNECTION
+ void ConnectPacs();
+#endif
///Open a vtkPolyData surface mesh and display it over the current image
void OpenVTKContour();
void SaveAs();
void UpdateRenderWindows();
void UpdateMemoryUsage();
void show();
+ void SlotFileChanged(const QString& pathname);
protected:
void createRecentlyOpenedFilesMenu();
void updateRecentlyOpenedFilesMenu(const std::list<std::string> &files);
+ // Drag and drop event handlers
+ virtual void dragEnterEvent(QDragEnterEvent *event);
+ virtual void dropEvent(QDropEvent *event);
+
private:
//variables
vvDocumentation *documentation;
vvDicomSeriesSelector *dicomSeriesSelector;
+#if CLITK_USE_PACS_CONNECTION
+ vvQPacsConnection *PacsConnection;
+#endif
+
bool viewMode;
bool playMode;
QString GetSizeInBytes(unsigned long size);
QString GetVectorDoubleAsString(std::vector<double> vectorDouble);
QString GetVectorIntAsString(std::vector<int> vectorInt);
+ std::vector<QTreeWidgetItem*> GetItemFromPathname(const QString& pathname);
int GetSlicerIndexFromItem(QTreeWidgetItem* item); //this actually returns the SlicerManager index TODO: rename it to GetSlicerManagerIndexFromItem
QTreeWidgetItem* GetItemFromSlicerManager(vvSlicerManager* sm);
+#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 2) || VTK_MAJOR_VERSION >= 9
+ void SaveScreenshot(QVTKOpenGLNativeWidget *widget);
+#else
void SaveScreenshot(QVTKWidget *widget);
+#endif
int GetImageDuplicateFilenameNumber(std::string filename);
QMenu contextMenu;