diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/files.cmake b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/files.cmake index 725a26d759..8d551b3b8e 100644 --- a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/files.cmake +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/files.cmake @@ -1,94 +1,98 @@ SET(SRC_CPP_FILES QmitkODFDetailsWidget.cpp QmitkODFRenderWidget.cpp QmitkPartialVolumeAnalysisWidget.cpp QmitkIVIMWidget.cpp ) SET(INTERNAL_CPP_FILES mitkPluginActivator.cpp QmitkQBallReconstructionView.cpp QmitkPreprocessingView.cpp QmitkDiffusionDicomImportView.cpp QmitkDiffusionQuantificationView.cpp QmitkTensorReconstructionView.cpp QmitkDiffusionImagingPublicPerspective.cpp QmitkControlVisualizationPropertiesView.cpp QmitkODFDetailsView.cpp QmitkGibbsTrackingView.cpp QmitkFiberBundleOperationsView.cpp QmitkFiberBundleDeveloperView.cpp QmitkPartialVolumeAnalysisView.cpp QmitkIVIMView.cpp + QmitkScreenshotMaker.cpp ) SET(UI_FILES src/internal/QmitkQBallReconstructionViewControls.ui src/internal/QmitkPreprocessingViewControls.ui src/internal/QmitkDiffusionDicomImportViewControls.ui src/internal/QmitkDiffusionQuantificationViewControls.ui src/internal/QmitkTensorReconstructionViewControls.ui src/internal/QmitkControlVisualizationPropertiesViewControls.ui src/internal/QmitkODFDetailsViewControls.ui src/internal/QmitkGibbsTrackingViewControls.ui src/internal/QmitkFiberBundleOperationsViewControls.ui src/internal/QmitkFiberBundleDeveloperViewControls.ui src/internal/QmitkPartialVolumeAnalysisViewControls.ui src/internal/QmitkIVIMViewControls.ui + src/internal/QmitkScreenshotMakerControls.ui ) SET(MOC_H_FILES src/internal/mitkPluginActivator.h src/internal/QmitkQBallReconstructionView.h src/internal/QmitkPreprocessingView.h src/internal/QmitkDiffusionDicomImportView.h src/internal/QmitkDiffusionImagingPublicPerspective.h src/internal/QmitkDiffusionQuantificationView.h src/internal/QmitkTensorReconstructionView.h src/internal/QmitkControlVisualizationPropertiesView.h src/internal/QmitkODFDetailsView.h src/QmitkODFRenderWidget.h src/QmitkODFDetailsWidget.h src/internal/QmitkGibbsTrackingView.h src/internal/QmitkFiberBundleOperationsView.h src/internal/QmitkFiberBundleDeveloperView.h src/internal/QmitkPartialVolumeAnalysisView.h src/QmitkPartialVolumeAnalysisWidget.h src/internal/QmitkIVIMView.h + src/internal/QmitkScreenshotMaker.h ) SET(CACHED_RESOURCE_FILES # list of resource files which can be used by the plug-in # system without loading the plug-ins shared library, # for example the icon used in the menu and tabs for the # plug-in views in the workbench plugin.xml resources/preprocessing.png resources/dwiimport.png resources/quantification.png resources/reconodf.png resources/recontensor.png resources/vizControls.png resources/OdfDetails.png resources/GibbsTracking.png resources/FiberBundleOperations.png resources/PartialVolumeAnalysis_24.png resources/IVIM_48.png + resources/screenshot_maker.png ) SET(QRC_FILES # uncomment the following line if you want to use Qt resources resources/QmitkDiffusionImaging.qrc ) SET(CPP_FILES ) foreach(file ${SRC_CPP_FILES}) SET(CPP_FILES ${CPP_FILES} src/${file}) endforeach(file ${SRC_CPP_FILES}) foreach(file ${INTERNAL_CPP_FILES}) SET(CPP_FILES ${CPP_FILES} src/internal/${file}) endforeach(file ${INTERNAL_CPP_FILES}) diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/plugin.xml b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/plugin.xml index 45d0de0ebc..424de4d1b8 100644 --- a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/plugin.xml +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/plugin.xml @@ -1,96 +1,103 @@ + + + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/resources/screenshot_maker.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/resources/screenshot_maker.png new file mode 100644 index 0000000000..ee2840db6d Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/resources/screenshot_maker.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.cpp new file mode 100644 index 0000000000..89ede47d32 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.cpp @@ -0,0 +1,401 @@ +/*========================================================================= + + Program: Medical Imaging & Interaction Toolkit + Language: C++ + Date: $Date$ + Version: $Revision: 16947 $ + + Copyright (c) German Cancer Research Center, Division of Medical and + Biological Informatics. All rights reserved. + See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + + +#include "QmitkScreenshotMaker.h" +//#include "QmitkMovieMakerControls.h" +#include "QmitkStepperAdapter.h" +#include "QmitkStdMultiWidget.h" +#include "QmitkCommonFunctionality.h" + +#include "mitkVtkPropRenderer.h" +#include "mitkGlobalInteraction.h" + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "qapplication.h" + +#include "vtkImageWriter.h" +#include "vtkJPEGWriter.h" +#include "vtkPNGWriter.h" +#include "vtkRenderLargeImage.h" +#include "vtkRenderWindowInteractor.h" +#include "vtkRenderer.h" +#include "vtkTestUtilities.h" + +#include +#include "vtkMitkRenderProp.h" + +#include +#include +#include "vtkRenderWindowInteractor.h" +#include + +#include "mitkSliceNavigationController.h" +#include "mitkPlanarFigure.h" + +QmitkScreenshotMaker::QmitkScreenshotMaker(QObject *parent, const char * /*name*/) + +: + QmitkFunctionality(), m_Controls(NULL), + m_SelectedNode(0), + m_BackgroundColor(QColor(0,0,0)) +{ + + parentWidget = parent; + +} + +QmitkScreenshotMaker::~QmitkScreenshotMaker() +{ +} + +void QmitkScreenshotMaker::CreateConnections() +{ + if (m_Controls) + { + connect((QObject*) m_Controls->m_AllViews, SIGNAL(clicked()), (QObject*) this, SLOT(GenerateMultiplanar3DHighresScreenshot())); + connect((QObject*) m_Controls->m_View1, SIGNAL(clicked()), (QObject*) this, SLOT(View1())); + connect((QObject*) m_Controls->m_View2, SIGNAL(clicked()), (QObject*) this, SLOT(View2())); + connect((QObject*) m_Controls->m_View3, SIGNAL(clicked()), (QObject*) this, SLOT(View3())); + connect((QObject*) m_Controls->m_Shot, SIGNAL(clicked()), (QObject*) this, SLOT(GenerateMultiplanarScreenshots())); + connect((QObject*) m_Controls->m_BackgroundColor, SIGNAL(clicked()), (QObject*) this, SLOT(SelectBackgroundColor())); + + connect((QObject*) m_Controls->btnScreenshot, SIGNAL(clicked()), this, SLOT( + GenerateScreenshot())); + connect((QObject*) m_Controls->m_HRScreenshot, SIGNAL(clicked()), this, SLOT( + Generate3DHighresScreenshot())); + + // blocking of ui elements during movie generation + connect((QObject*) this, SIGNAL(StartBlockControls()), (QObject*) this, SLOT(BlockControls())); + + connect((QObject*) this, SIGNAL(EndBlockControls()), (QObject*) this, SLOT(UnBlockControls())); + + connect((QObject*) this, SIGNAL(EndBlockControlsMovieDeactive()), (QObject*) this, SLOT( + UnBlockControlsMovieDeactive())); + + + } +} + +void QmitkScreenshotMaker::Activated() +{ + QmitkFunctionality::Activated(); +} + +void QmitkScreenshotMaker::Deactivated() +{ + QmitkFunctionality::Deactivated(); +} + +void QmitkScreenshotMaker::GenerateScreenshot() +{ + emit StartBlockControls(); + + QString fileName = QFileDialog::getSaveFileName(NULL, "Save screenshot to...", QDir::currentPath(), "JPEG file (*.jpg);;PNG file (*.png)"); + + vtkRenderer* renderer = mitk::GlobalInteraction::GetInstance()->GetFocus()->GetVtkRenderer(); + if (renderer == NULL) + return; + this->TakeScreenshot(renderer, 1, fileName); + + emit EndBlockControlsMovieDeactive(); +} + +void QmitkScreenshotMaker::GenerateMultiplanarScreenshots() +{ + QString fileName = QFileDialog::getExistingDirectory(NULL, "Save screenshots to...", QDir::currentPath()); + + emit StartBlockControls(); + + mitk::DataNode* n; + n = GetDataStorage()->GetNamedNode("widget1Plane"); + if(n) + { + n->SetProperty( "color", mitk::ColorProperty::New( 1,1,1 ) ); +// n->SetProperty("helper object", mitk::BoolProperty::New(false)); + } + + n = GetDataStorage()->GetNamedNode("widget2Plane"); + if(n) + { + n->SetProperty( "color", mitk::ColorProperty::New( 1,1,1 ) ); +// n->SetProperty("helper object", mitk::BoolProperty::New(false)); + } + + n = GetDataStorage()->GetNamedNode("widget3Plane"); + if(n) + { + n->SetProperty( "color", mitk::ColorProperty::New( 1,1,1 ) ); +// n->SetProperty("helper object", mitk::BoolProperty::New(false)); + } + + // only works correctly for 3D RenderWindow + vtkRenderer* renderer = m_MultiWidget->mitkWidget1->GetRenderer()->GetVtkRenderer(); + if (renderer != NULL) + this->TakeScreenshot(renderer, 1, fileName+"/widget_1.png"); + + renderer = m_MultiWidget->mitkWidget2->GetRenderer()->GetVtkRenderer(); + if (renderer != NULL) + this->TakeScreenshot(renderer, 1, fileName+"/widget_2.png"); + + renderer = m_MultiWidget->mitkWidget3->GetRenderer()->GetVtkRenderer(); + if (renderer != NULL) + this->TakeScreenshot(renderer, 1, fileName+"/widget_3.png"); + + n = GetDataStorage()->GetNamedNode("widget1Plane"); + if(n) + { + n->SetProperty( "color", mitk::ColorProperty::New( 1,0,0 ) ); +// n->SetProperty("helper object", mitk::BoolProperty::New(false)); + } + + n = GetDataStorage()->GetNamedNode("widget2Plane"); + if(n) + { + n->SetProperty( "color", mitk::ColorProperty::New( 0,1,0 ) ); +// n->SetProperty("helper object", mitk::BoolProperty::New(false)); + } + + n = GetDataStorage()->GetNamedNode("widget3Plane"); + if(n) + { + n->SetProperty( "color", mitk::ColorProperty::New( 0,0,1 ) ); +// n->SetProperty("helper object", mitk::BoolProperty::New(false)); + } + + emit EndBlockControlsMovieDeactive(); +} + +void QmitkScreenshotMaker::Generate3DHighresScreenshot() +{ + QString fileName = QFileDialog::getSaveFileName(NULL, "Save screenshot to...", QDir::currentPath(), "JPEG file (*.jpg);;PNG file (*.png)"); + GenerateHR3DAtlasScreenshots(fileName); +} + +void QmitkScreenshotMaker::GenerateMultiplanar3DHighresScreenshot() +{ + QString fileName = QFileDialog::getExistingDirectory( NULL, "Save screenshots to...", QDir::currentPath()); + + GetCam()->Azimuth( -7.5 ); + GetCam()->Roll(-4); + GenerateHR3DAtlasScreenshots(fileName+"/screen1.png"); + GetCam()->Roll(4); + + GetCam()->Azimuth( 90 ); + GetCam()->Elevation( 4 ); + GenerateHR3DAtlasScreenshots(fileName+"/screen2.png"); + + GetCam()->Elevation( 90 ); + GetCam()->Roll( -2.5 ); + GenerateHR3DAtlasScreenshots(fileName+"/screen3.png"); + +} + +void QmitkScreenshotMaker::GenerateHR3DAtlasScreenshots(QString fileName) +{ + emit StartBlockControls(); + + // only works correctly for 3D RenderWindow + vtkRenderer* renderer = m_MultiWidget->mitkWidget4->GetRenderer()->GetVtkRenderer(); + if (renderer == NULL) + return; + this->TakeScreenshot(renderer, this->m_Controls->m_MagFactor->text().toFloat(), fileName); + + emit EndBlockControlsMovieDeactive(); +} + +vtkCamera* QmitkScreenshotMaker::GetCam() +{ + mitk::BaseRenderer* renderer = mitk::BaseRenderer::GetInstance(GetActiveStdMultiWidget()->mitkWidget4->GetRenderWindow()); + vtkCamera* cam = 0; + const mitk::VtkPropRenderer *propRenderer = dynamic_cast( renderer ); + if (propRenderer) + { + // get vtk renderer + vtkRenderer* vtkrenderer = propRenderer->GetVtkRenderer(); + if (vtkrenderer) + { + // get vtk camera + vtkCamera* vtkcam = vtkrenderer->GetActiveCamera(); + if (vtkcam) + { + // vtk smart pointer handling + cam = vtkcam; + cam->Register( NULL ); + } + } + } + return cam; +} + +void QmitkScreenshotMaker::View1() +{ +// GetCam()->Azimuth( -7.5 ); +// GetCam()->Roll(-4); + mitk::RenderingManager::GetInstance()->RequestUpdateAll(); +} + +void QmitkScreenshotMaker::View2() +{ +// GetCam()->Azimuth( -7.5 ); +// GetCam()->Roll(-4); + GetCam()->Azimuth( 90 ); +// GetCam()->Elevation( 4 ); + mitk::RenderingManager::GetInstance()->RequestUpdateAll(); +} + +void QmitkScreenshotMaker::View3() +{ +// GetCam()->Azimuth( -7.5 ); +// GetCam()->Roll(-4); + GetCam()->Azimuth( 90 ); +// GetCam()->Elevation( 4 ); + GetCam()->Elevation( 90 ); +// GetCam()->Roll( -2.5 ); + mitk::RenderingManager::GetInstance()->RequestUpdateAll(); +} + +void QmitkScreenshotMaker::OnSelectionChanged( std::vector nodes ) +{ + if(nodes.size()) + m_SelectedNode = nodes[0]; +} + +void QmitkScreenshotMaker::CreateQtPartControl(QWidget *parent) +{ + if (!m_Controls) + { + m_Controls = new Ui::QmitkScreenshotMakerControls; + m_Controls->setupUi(parent); + + // Initialize "Selected Window" combo box + const mitk::RenderingManager::RenderWindowVector rwv = + mitk::RenderingManager::GetInstance()->GetAllRegisteredRenderWindows(); + + } + + this->CreateConnections(); + +} + +void QmitkScreenshotMaker::StdMultiWidgetAvailable(QmitkStdMultiWidget& stdMultiWidget) +{ + m_MultiWidget = &stdMultiWidget; + m_Parent->setEnabled(true); +} + +void QmitkScreenshotMaker::StdMultiWidgetNotAvailable() +{ + m_MultiWidget = NULL; + m_Parent->setEnabled(false); +} + +void QmitkScreenshotMaker::TakeScreenshot(vtkRenderer* renderer, unsigned int magnificationFactor, QString fileName) +{ + if ((renderer == NULL) ||(magnificationFactor < 1) || fileName.isEmpty()) + return; + + bool doubleBuffering( renderer->GetRenderWindow()->GetDoubleBuffer() ); + renderer->GetRenderWindow()->DoubleBufferOff(); + + vtkImageWriter* fileWriter; + + QFileInfo fi(fileName); + QString suffix = fi.suffix(); + if (suffix.compare("png", Qt::CaseInsensitive) == 0) + { + fileWriter = vtkPNGWriter::New(); + } + else // default is jpeg + { + vtkJPEGWriter* w = vtkJPEGWriter::New(); + w->SetQuality(100); + w->ProgressiveOff(); + fileWriter = w; + } + vtkRenderLargeImage* magnifier = vtkRenderLargeImage::New(); + magnifier->SetInput(renderer); + magnifier->SetMagnification(magnificationFactor); + //magnifier->Update(); + fileWriter->SetInput(magnifier->GetOutput()); + fileWriter->SetFileName(fileName.toLatin1()); + + // vtkRenderLargeImage has problems with different layers, therefore we have to + // temporarily deactivate all other layers. + // we set the background to white, because it is nicer than black... + double oldBackground[3]; + renderer->GetBackground(oldBackground); + + +// QColor color = QColorDialog::getColor(); + double bgcolor[] = {m_BackgroundColor.red()/255.0, m_BackgroundColor.green()/255.0, m_BackgroundColor.blue()/255.0}; + renderer->SetBackground(bgcolor); + + m_MultiWidget->DisableColoredRectangles(); + m_MultiWidget->DisableDepartmentLogo(); + m_MultiWidget->DisableGradientBackground(); + + m_MultiWidget->mitkWidget1->ActivateMenuWidget( false ); + m_MultiWidget->mitkWidget2->ActivateMenuWidget( false ); + m_MultiWidget->mitkWidget3->ActivateMenuWidget( false ); + m_MultiWidget->mitkWidget4->ActivateMenuWidget( false ); + + fileWriter->Write(); + fileWriter->Delete(); + + m_MultiWidget->mitkWidget1->ActivateMenuWidget( true ); + m_MultiWidget->mitkWidget2->ActivateMenuWidget( true ); + m_MultiWidget->mitkWidget3->ActivateMenuWidget( true ); + m_MultiWidget->mitkWidget4->ActivateMenuWidget( true ); + + m_MultiWidget->EnableColoredRectangles(); + m_MultiWidget->EnableDepartmentLogo(); + m_MultiWidget->EnableGradientBackground(); + renderer->SetBackground(oldBackground); + + renderer->GetRenderWindow()->SetDoubleBuffer(doubleBuffering); +} + +void QmitkScreenshotMaker::SelectBackgroundColor() +{ + m_BackgroundColor = QColorDialog::getColor(); + + m_Controls->m_BackgroundColor->setAutoFillBackground(true); + + + QString styleSheet = "background-color:rgb("; + styleSheet.append(QString::number(m_BackgroundColor.red())); + styleSheet.append(","); + styleSheet.append(QString::number(m_BackgroundColor.green())); + styleSheet.append(","); + styleSheet.append(QString::number(m_BackgroundColor.blue())); + styleSheet.append(")"); + m_Controls->m_BackgroundColor->setStyleSheet(styleSheet); +} diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.h new file mode 100644 index 0000000000..3013d138ab --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.h @@ -0,0 +1,133 @@ +/*========================================================================= + + Program: Medical Imaging & Interaction Toolkit + Language: C++ + Date: $Date$ + Version: $Revision: 15436 $ + + Copyright (c) German Cancer Research Center, Division of Medical and + Biological Informatics. All rights reserved. + See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + +#if !defined(QMITK_ScreenshotMaker_H__INCLUDED) +#define QMITK_ScreenshotMaker_H__INCLUDED + +#include "QmitkFunctionality.h" +#include "mitkCameraRotationController.h" +#include "mitkStepper.h" +#include "mitkMultiStepper.h" +#include "mitkMovieGenerator.h" +#include "itkCommand.h" + +#include "QVTKWidget.h" +#include "vtkEventQtSlotConnect.h" +#include "vtkRenderWindow.h" +#include "mitkVtkPropRenderer.h" + +#include "ui_QmitkScreenshotMakerControls.h" +//#include "../MovieMakerDll.h" + +//class QmitkStdMultiWidget; +//class QmitkMovieMakerControls; +class QmitkStepperAdapter; +class vtkCamera; +class QTimer; +class QTime; + +/** + * \brief Functionality for creating movies (AVIs) + * \ingroup Functionalities + */ +class QmitkScreenshotMaker: public QmitkFunctionality +{ + Q_OBJECT + +public: + /** \brief Constructor. */ + QmitkScreenshotMaker(QObject *parent=0, const char *name=0); + + /** \brief Destructor. */ + virtual ~QmitkScreenshotMaker(); + + /** \brief Method for creating the widget containing the application + * controls, like sliders, buttons etc. + */ + void CreateQtPartControl(QWidget *parent); + // virtual QWidget * CreateControlWidget(QWidget *parent); + + /** \brief Method for creating the connections of main and control widget. + */ + virtual void CreateConnections(); + + /** \brief Method for creating an QAction object, i.e. button & menu entry. + * @param parent the parent QWidget + */ + // virtual QAction * CreateAction(QActionGroup *parent); + + virtual void Activated(); + + virtual void Deactivated(); + + /// + /// Called when a StdMultiWidget is available. + /// + virtual void StdMultiWidgetAvailable(QmitkStdMultiWidget& stdMultiWidget); + /// + /// Called when no StdMultiWidget is available. + /// + virtual void StdMultiWidgetNotAvailable(); + + signals: + void StartBlockControls(); + void EndBlockControls(); + void EndBlockControlsMovieDeactive(); + +protected slots: + + void GenerateScreenshot(); + void GenerateMultiplanarScreenshots(); + void Generate3DHighresScreenshot(); + void GenerateMultiplanar3DHighresScreenshot(); + void View1(); + void View2(); + void View3(); + void SelectBackgroundColor(); + +protected: + + QObject *parentWidget; + QVTKWidget * widget; + QmitkStdMultiWidget* m_MultiWidget; + vtkEventQtSlotConnect * connections; + vtkRenderWindow * renderWindow; + mitk::VtkPropRenderer::Pointer m_PropRenderer; + + Ui::QmitkScreenshotMakerControls* m_Controls; + +private: + + void OnSelectionChanged( std::vector nodes ); + + vtkCamera* GetCam(); + void GenerateHR3DAtlasScreenshots(QString fileName); + void GenerateMultiplanarScreenshots(QString fileName); + + /*! + \brief taking a screenshot "from" the specified renderer + \param magnificationFactor specifying the quality of the screenshot (the magnification of the actual RenderWindow size) + \param fileName file location and name where the screenshot should be saved + */ + void TakeScreenshot(vtkRenderer* renderer, unsigned int magnificationFactor, QString fileName); + + QColor m_BackgroundColor; + + mitk::DataNode* m_SelectedNode; +}; +#endif // !defined(QMITK_ScreenshotMaker_H__INCLUDED) + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMakerControls.ui b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMakerControls.ui new file mode 100644 index 0000000000..fa16a58d74 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMakerControls.ui @@ -0,0 +1,244 @@ + + + QmitkScreenshotMakerControls + + + + 0 + 0 + 503 + 140 + + + + ScreenshotMaker + + + + 0 + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + + + + 30 + 0 + + + + + 10 + 16777215 + + + + 1 + + + + + + + + 30 + 16777215 + + + + 2 + + + + + + + + 30 + 16777215 + + + + 3 + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + + + + 0 + 0 + + + + + + + Writes a screenshot of the selected window. + + + Normal Screenshot + + + + + + + Multiplanar Shot + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + + + + 0 + 0 + + + + + + + Writes a screenshot of the selected window. + + + High-res 3D Screenshot + + + + + + + Multiplanar High-res + + + + + + + Zoom: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 1 + + + 5 + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + + + Background Color: + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 31 + + + + + + + + + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/mitkPluginActivator.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/mitkPluginActivator.cpp index 1a528667c1..96a030db11 100644 --- a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/mitkPluginActivator.cpp +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/mitkPluginActivator.cpp @@ -1,48 +1,50 @@ #include "mitkPluginActivator.h" #include #include "src/internal/QmitkDiffusionImagingPublicPerspective.h" #include "src/internal/QmitkQBallReconstructionView.h" #include "src/internal/QmitkPreprocessingView.h" #include "src/internal/QmitkDiffusionDicomImportView.h" #include "src/internal/QmitkDiffusionQuantificationView.h" #include "src/internal/QmitkTensorReconstructionView.h" #include "src/internal/QmitkControlVisualizationPropertiesView.h" #include "src/internal/QmitkODFDetailsView.h" #include "src/internal/QmitkGibbsTrackingView.h" #include "src/internal/QmitkFiberBundleOperationsView.h" #include "src/internal/QmitkFiberBundleDeveloperView.h" #include "src/internal/QmitkPartialVolumeAnalysisView.h" #include "src/internal/QmitkIVIMView.h" +#include "src/internal/QmitkScreenshotMaker.h" namespace mitk { void PluginActivator::start(ctkPluginContext* context) { BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionImagingPublicPerspective, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkQBallReconstructionView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkPreprocessingView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionDicomImport, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionQuantificationView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkTensorReconstructionView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkControlVisualizationPropertiesView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkODFDetailsView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkGibbsTrackingView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkFiberBundleOperationsView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkFiberBundleDeveloperView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkPartialVolumeAnalysisView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkIVIMView, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkScreenshotMaker, context) } void PluginActivator::stop(ctkPluginContext* context) { Q_UNUSED(context) } } Q_EXPORT_PLUGIN2(org_mitk_gui_qt_diffusionimaging, mitk::PluginActivator) diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml index d40c00f69d..cef878fe63 100644 --- a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml @@ -1,100 +1,67 @@ - - - - - - - - - - - - - - - - - -