<number>2</number>
</property>
<item row="0" column="0">
- <widget class="QVTKWidget" name="NOViewWidget">
+ <widget class="QVTKWidget" name="NOViewWidget" native="true">
<property name="mouseTracking">
<bool>true</bool>
</property>
<number>2</number>
</property>
<item row="0" column="0">
- <widget class="QVTKWidget" name="SOViewWidget">
+ <widget class="QVTKWidget" name="SOViewWidget" native="true">
<property name="mouseTracking">
<bool>true</bool>
</property>
<number>2</number>
</property>
<item row="0" column="0">
- <widget class="QVTKWidget" name="NEViewWidget">
+ <widget class="QVTKWidget" name="NEViewWidget" native="true">
<property name="mouseTracking">
<bool>true</bool>
</property>
<number>2</number>
</property>
<item row="0" column="0">
- <widget class="QVTKWidget" name="SEViewWidget">
+ <widget class="QVTKWidget" name="SEViewWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<addaction name="actionNorth_East_Window"/>
<addaction name="actionSouth_West_Window"/>
<addaction name="actionSouth_East_Window"/>
+ <addaction name="separator"/>
+ <addaction name="actionSave_all_slices"/>
</widget>
<widget class="QMenu" name="menuExperimental">
<property name="title">
<string>Register vv</string>
</property>
</action>
+ <action name="actionSave_all_slices">
+ <property name="text">
+ <string>Save all slices (Top-Left view)</string>
+ </property>
+ </action>
</widget>
<customwidgets>
<customwidget>
connect(actionNorth_West_Window,SIGNAL(triggered()),this,SLOT(SaveNOScreenshot()));
connect(actionSouth_East_Window,SIGNAL(triggered()),this,SLOT(SaveSEScreenshot()));
connect(actionSouth_West_Window,SIGNAL(triggered()),this,SLOT(SaveSOScreenshot()));
+ connect(actionSave_all_slices,SIGNAL(triggered()),this,SLOT(SaveScreenshotAllSlices()));
connect(DataTree,SIGNAL(itemSelectionChanged()),this,SLOT(ImageInfoChanged()));
connect(DataTree,SIGNAL(itemClicked(QTreeWidgetItem*, int)),this,
//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+void vvMainWindow::SaveScreenshotAllSlices()
+{
+ QVTKWidget *widget = NOViewWidget;
+ vtkSmartPointer<vtkRenderWindow> renderWindow = widget->GetRenderWindow();
+
+ int index = 0;// GetSlicerIndexFromItem(DataTree->selectedItems()[0]);
+ vvSlicerManager * SM = mSlicerManagers[index];
+ vvImage * image = SM->GetImage();
+ vvSlicer * slicer = SM->GetSlicer(0);
+ int orientation = slicer->GetOrientation();
+ int nbSlices = image->GetSize()[orientation];
+
+ // Select filename base
+ QString filename = QFileDialog::getSaveFileName(this,
+ tr("Save As (filename will be completed by slice number)"),
+ itksys::SystemTools::GetFilenamePath(mSlicerManagers[index]->GetFileName()).c_str(),
+ "Images( *.png);;");
+
+ // Loop on slices
+ for(uint i=0; i<nbSlices; i++) {
+ // Change the slice
+ slicer->SetSlice(i);
+
+ // Screenshot
+ vtkSmartPointer<vtkWindowToImageFilter> windowToImageFilter = vtkSmartPointer<vtkWindowToImageFilter>::New();
+ windowToImageFilter->SetInput(renderWindow);
+ windowToImageFilter->SetMagnification(1);
+ windowToImageFilter->SetInputBufferTypeToRGBA(); //also record the alpha (transparency) channel
+ windowToImageFilter->Update();
+
+ vtkSmartPointer<vtkPNGWriter> writer = vtkSmartPointer<vtkPNGWriter>::New();
+ std::string fn = itksys::SystemTools::GetFilenameWithoutLastExtension(filename.toStdString());
+ fn = fn + "_" + clitk::toString(i) + itksys::SystemTools::GetFilenameLastExtension(filename.toStdString());
+ writer->SetFileName(fn.c_str());
+ writer->SetInput(windowToImageFilter->GetOutput());
+ writer->Write();
+ }
+}
+//------------------------------------------------------------------------------
+
+
//------------------------------------------------------------------------------
void vvMainWindow::SaveScreenshot(QVTKWidget *widget)
{