Index: mitk/Core/Code/Controllers/mitkRenderingManager.cpp =================================================================== --- mitk/Core/Code/Controllers/mitkRenderingManager.cpp (revision 21850) +++ mitk/Core/Code/Controllers/mitkRenderingManager.cpp (working copy) @@ -939,6 +939,7 @@ m_PropertyList = PropertyList::New(); } + this->SetProperty("zoom-factor", DoubleProperty::New(1.05)); this->SetProperty("coupled-zoom", BoolProperty::New(false)); this->SetProperty("coupled-plane-rotation", BoolProperty::New(false)); this->SetProperty("MIP-slice-rendering", BoolProperty::New(false)); Index: mitk/Core/Code/Interactions/mitkDisplayInteractor.cpp =================================================================== --- mitk/Core/Code/Interactions/mitkDisplayInteractor.cpp (revision 21850) +++ mitk/Core/Code/Interactions/mitkDisplayInteractor.cpp (working copy) @@ -29,6 +29,8 @@ #include +#include "mitkProperties.h" + mitk::DisplayInteractor::DisplayInteractor(mitk::BaseRenderer * ren) { m_ParentRenderer = ren; @@ -62,14 +64,27 @@ //float factor= 1.0 + distance * 0.05; // stupid because factors from +1 and -1 dont give results that represent inverse zooms float factor = 1.0; + + mitk::DoubleProperty* doubleProperty = dynamic_cast(mitk::RenderingManager::GetInstance()->GetProperty("zoom-factor")); + double zoomFactorFromManager( 1.05 ); + if (doubleProperty != NULL) + { + zoomFactorFromManager = doubleProperty->GetValue(); + } + if(zoomFactorFromManager == 0.0) + { + zoomFactorFromManager = 1.05; + } + if (distance < 0.0) { - factor = 1.0 / 1.05; + + factor = 1.0 / zoomFactorFromManager; } else if (distance > 0.0) { - factor = 1.0 * 1.05; // 5% + factor = 1.0 * zoomFactorFromManager; // 5% } else // distance == 0.0 { Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/files.cmake =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/files.cmake (revision 21850) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/files.cmake (working copy) @@ -24,6 +24,7 @@ src/QmitkFileExitAction.h src/QmitkProgressBar.h src/QmitkPreferencesDialog.h + src/QmitkGeneralPreferencePage.h src/QmitkDnDFrameWidget.h ) Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/manifest.cpp =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/manifest.cpp (revision 21850) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/manifest.cpp (working copy) @@ -23,6 +23,7 @@ #include "src/QmitkStdMultiWidgetEditor.h" #include "src/internal/QmitkCommonActivator.h" #include "src/QmitkGeneralPreferencePage.h" +#include "src/QmitkGeneralPreferencePage.h" POCO_BEGIN_NAMED_MANIFEST(berryIEditorPart, berry::IEditorPart) POCO_EXPORT_CLASS(QmitkStdMultiWidgetEditor) @@ -35,3 +36,7 @@ POCO_BEGIN_NAMED_MANIFEST(berryIPreferencePage, berry::IPreferencePage) POCO_EXPORT_CLASS(QmitkGeneralPreferencePage) POCO_END_MANIFEST + +POCO_BEGIN_NAMED_MANIFEST(berryIQtPreferencePage, berry::IQtPreferencePage) +POCO_EXPORT_CLASS(QmitkGeneralPreferencePage) +POCO_END_MANIFEST \ No newline at end of file Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/plugin.xml =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/plugin.xml (revision 21850) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/plugin.xml (working copy) @@ -8,4 +8,14 @@ class="QmitkStdMultiWidgetEditor"> + + + + + + + + + + Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkGeneralPreferencePage.cpp =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkGeneralPreferencePage.cpp (revision 21850) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkGeneralPreferencePage.cpp (working copy) @@ -25,6 +25,8 @@ #include #include +#include "mitkRenderingManager.h" + using namespace berry; QmitkGeneralPreferencePage::QmitkGeneralPreferencePage() @@ -47,7 +49,24 @@ // m_StartMaximized = new QCheckBox("Start Main Window &Maximized", this); m_MainControl = new QWidget(parent); - QGridLayout* layout = new QGridLayout; + QVBoxLayout* layout = new QVBoxLayout; + + QWidget* zoomWidget = new QWidget(); + layout->addWidget(zoomWidget); + layout->insertStretch(1); + + QHBoxLayout* hLayout = new QHBoxLayout(zoomWidget); + + hLayout->addWidget(new QLabel("Zoom factor: ", parent)); + hLayout->addWidget(new QLabel("slow", parent)); + zoomSlider = new QSlider( Qt::Orientation::Horizontal, parent); + zoomSlider->setRange(1, 50); + zoomSlider->setTickInterval(5); + zoomSlider->setValue(5); + hLayout->addWidget(zoomSlider); + hLayout->addWidget(new QLabel("fast", parent)); + hLayout->insertStretch(4); + // layout->addWidget(m_StartMaximized, 0,0); // layout->setRowStretch(0, 0); // layout->setRowStretch(1, 20); @@ -70,7 +89,14 @@ // _GeneralPreferencesNode->Flush(); // return true; // } - return false; + + double zoomFactorValue(1.05); + zoomFactorValue = 1 + (double)((double)zoomSlider->value() / 100.0); + + mitk::DoubleProperty::Pointer doubleProperty = mitk::DoubleProperty::New(zoomFactorValue); + mitk::RenderingManager::GetInstance()->SetProperty("zoom-factor", doubleProperty); + + return true; } void QmitkGeneralPreferencePage::PerformCancel() Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkGeneralPreferencePage.h =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkGeneralPreferencePage.h (revision 21850) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkGeneralPreferencePage.h (working copy) @@ -32,6 +32,8 @@ //class QCheckBox; +#include + struct MITK_QT_COMMON QmitkGeneralPreferencePage : public berry::IQtPreferencePage { @@ -74,6 +76,8 @@ QWidget* m_MainControl; + QSlider* zoomSlider; + }; #endif /* QMITKGENERALPREFERENCEPAGE_H_ */