]> Creatis software - clitk.git/blobdiff - vv/vvMainWindow.cxx
Attempt to fix the blend image actor for the new vtk release (5.10)
[clitk.git] / vv / vvMainWindow.cxx
index bbbb2d8f4d89979c1f42bdd1a91eb306cfdc0174..46b0ecbb2fd9f2bb1a7656876978d531c734631c 100644 (file)
@@ -316,8 +316,8 @@ vvMainWindow::vvMainWindow():vvMainWindowBase()
   connect(overlayPanel,SIGNAL(VFPropertyUpdated(int,int,int,int,double,double,double)),this,SLOT(SetVFProperty(int,int,int,int,double,double,double)));
   connect(overlayPanel,SIGNAL(OverlayPropertyUpdated(int,int,double,double)),
           this,SLOT(SetOverlayProperty(int,int,double,double)));
-  connect(overlayPanel,SIGNAL(FusionPropertyUpdated(int,int,int,double,double)),
-          this,SLOT(SetFusionProperty(int,int,int,double,double)));
+  connect(overlayPanel,SIGNAL(FusionPropertyUpdated(int,int,int,double,double, bool)),
+          this,SLOT(SetFusionProperty(int,int,int,double,double, bool)));
   connect(landmarksPanel,SIGNAL(UpdateRenderWindows()),this,SLOT(UpdateRenderWindows()));
 
   playMode = 0;//pause
@@ -2221,7 +2221,7 @@ void vvMainWindow::SetOverlayProperty(int color, int linked, double window, doub
 //------------------------------------------------------------------------------
 
 //------------------------------------------------------------------------------
-void vvMainWindow::SetFusionProperty(int opacity, int thresOpacity, int colormap,double window, double level)
+void vvMainWindow::SetFusionProperty(int opacity, int thresOpacity, int colormap,double window, double level, bool showLegend)
 {
   int index = GetSlicerIndexFromItem(DataTree->selectedItems()[0]);
   if (mSlicerManagers[index]->GetSlicer(0)->GetFusion()) {
@@ -2230,6 +2230,7 @@ void vvMainWindow::SetFusionProperty(int opacity, int thresOpacity, int colormap
     mSlicerManagers[index]->SetFusionThresholdOpacity(thresOpacity);
     mSlicerManagers[index]->SetFusionWindow(window);
     mSlicerManagers[index]->SetFusionLevel(level);
+    mSlicerManagers[index]->SetFusionShowLegend(showLegend);
     mSlicerManagers[index]->SetColorMap(0);
     mSlicerManagers[index]->Render();
   }
@@ -2779,19 +2780,19 @@ void vvMainWindow::SaveScreenshot(QVTKWidget *widget)
     w2i->Update();
     vtkImageData *image = w2i->GetOutput();
 
-    const char *ext = fileName.toStdString().c_str() + strlen(fileName.toStdString().c_str()) - 4;
+    std::string ext(itksys::SystemTools::GetFilenameLastExtension(fileName.toStdString()));
 
     // Image
     vtkImageWriter *imgwriter = NULL;
-    if (!strcmp(ext, ".bmp"))
+    if (ext==".bmp")
       imgwriter = vtkBMPWriter::New();
-    else if (!strcmp(ext, ".tif"))
+    else if (ext==".tif")
       imgwriter = vtkTIFFWriter::New();
-    else if (!strcmp(ext, ".ppm"))
+    else if (ext==".ppm")
       imgwriter = vtkPNMWriter::New();
-    else if (!strcmp(ext, ".png"))
+    else if (ext==".png")
       imgwriter = vtkPNGWriter::New();
-    else if (!strcmp(ext, ".jpg"))
+    else if (ext==".jpg")
       imgwriter = vtkJPEGWriter::New();
 
     // Snapshot image if not null
@@ -2805,7 +2806,7 @@ void vvMainWindow::SaveScreenshot(QVTKWidget *widget)
     // Video
     vtkGenericMovieWriter *vidwriter = NULL;
 #if CLITK_EXPERIMENTAL == 1
-    if (!strcmp(ext, ".gif")) {
+    if (ext==".gif") {
       vvAnimatedGIFWriter *gif = vvAnimatedGIFWriter::New();
       vidwriter = gif;
 
@@ -2821,10 +2822,17 @@ void vvMainWindow::SaveScreenshot(QVTKWidget *widget)
                                      tr("Number of loops (0 means infinite):"), 0, 0, 1000000000, 1, &ok);
       if(ok)
         gif->SetLoops(loops);
+
+      // Dithering
+      QString msg = "Would you like to activate dithering?";
+      QMessageBox msgBox(QMessageBox::Question, tr("Dithering"),msg, 0, this);
+      msgBox.addButton(tr("Yes"), QMessageBox::AcceptRole);
+      msgBox.addButton(tr("No"), QMessageBox::RejectRole);
+      gif->SetDither(msgBox.exec() == QMessageBox::AcceptRole);
     }
 #endif
 #ifdef VTK_USE_VIDEO_FOR_WINDOWS
-    if (!strcmp(ext, ".avi")) {
+    if (ext==".avi") {
       vtkAVIWriter *mpg = vtkAVIWriter::New();
       vidwriter = mpg;
       mpg->SetQuality(2);
@@ -2837,7 +2845,7 @@ void vvMainWindow::SaveScreenshot(QVTKWidget *widget)
     }
 #endif
 #ifdef VTK_USE_FFMPEG_ENCODER
-    if (!strcmp(ext, ".avi")) {
+    if (ext==".avi") {
       vtkFFMPEGWriter *mpg = vtkFFMPEGWriter::New();
       vidwriter = mpg;
       mpg->SetQuality(2);
@@ -2851,7 +2859,7 @@ void vvMainWindow::SaveScreenshot(QVTKWidget *widget)
     }
 #endif
 #ifdef VTK_USE_MPEG2_ENCODER
-    if (!strcmp(ext, ".mpg")) {
+    if (ext==".mpg") {
       vtkMPEG2Writer *mpg = vtkMPEG2Writer::New();
       vidwriter = mpg;
     }