diff --git a/Plugins/org.mitk.gui.qt.moviemaker/src/internal/QmitkSliceAnimationWidget.cpp b/Plugins/org.mitk.gui.qt.moviemaker/src/internal/QmitkSliceAnimationWidget.cpp index c8fba8bd0c..bca0c6de77 100644 --- a/Plugins/org.mitk.gui.qt.moviemaker/src/internal/QmitkSliceAnimationWidget.cpp +++ b/Plugins/org.mitk.gui.qt.moviemaker/src/internal/QmitkSliceAnimationWidget.cpp @@ -1,127 +1,127 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #include "QmitkSliceAnimationItem.h" #include "QmitkSliceAnimationWidget.h" #include #include -static int GetNumberOfSlices(int renderWindow) +namespace { - const QString renderWindowName = QString("stdmulti.widget%1").arg(renderWindow); - vtkRenderWindow* theRenderWindow = mitk::BaseRenderer::GetRenderWindowByName(renderWindowName.toStdString()); - - if (theRenderWindow != nullptr) + int GetNumberOfSlices(int renderWindow) { - mitk::Stepper* stepper = mitk::BaseRenderer::GetInstance(theRenderWindow)->GetSliceNavigationController()->GetSlice(); + const QString renderWindowName = QString("stdmulti.widget%1").arg(renderWindow); + vtkRenderWindow* theRenderWindow = mitk::BaseRenderer::GetRenderWindowByName(renderWindowName.toStdString()); - if (stepper != nullptr) - return std::max(1, static_cast(stepper->GetSteps())); - } + if (theRenderWindow != nullptr) + { + mitk::Stepper* stepper = mitk::BaseRenderer::GetInstance(theRenderWindow)->GetSliceNavigationController()->GetSlice(); - return 1; + if (stepper != nullptr) + return std::max(1, static_cast(stepper->GetSteps())); + } + + return 1; + } } QmitkSliceAnimationWidget::QmitkSliceAnimationWidget(QWidget* parent) : QmitkAnimationWidget(parent), - m_Ui(new Ui::QmitkSliceAnimationWidget) + m_Ui(new Ui::QmitkSliceAnimationWidget), + m_AnimationItem(nullptr) { m_Ui->setupUi(this); - this->connect(m_Ui->windowComboBox, SIGNAL(currentIndexChanged(int)), - this, SLOT(OnRenderWindowChanged(int))); - - this->connect(m_Ui->sliceRangeWidget, SIGNAL(minimumValueChanged(double)), - this, SLOT(OnFromChanged(double))); - - this->connect(m_Ui->sliceRangeWidget, SIGNAL(maximumValueChanged(double)), - this, SLOT(OnToChanged(double))); - - this->connect(m_Ui->reverseCheckBox, SIGNAL(clicked(bool)), - this, SLOT(OnReverseChanged(bool))); + connect(m_Ui->windowComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(OnRenderWindowChanged(int))); + connect(m_Ui->sliceRangeWidget, SIGNAL(minimumValueChanged(double)), this, SLOT(OnFromChanged(double))); + connect(m_Ui->sliceRangeWidget, SIGNAL(maximumValueChanged(double)), this, SLOT(OnToChanged(double))); + connect(m_Ui->reverseCheckBox, SIGNAL(clicked(bool)), this, SLOT(OnReverseChanged(bool))); } QmitkSliceAnimationWidget::~QmitkSliceAnimationWidget() { } void QmitkSliceAnimationWidget::SetAnimationItem(QmitkAnimationItem* sliceAnimationItem) { m_AnimationItem = dynamic_cast(sliceAnimationItem); - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; m_Ui->windowComboBox->setCurrentIndex(m_AnimationItem->GetRenderWindow()); const int maximum = GetNumberOfSlices(m_AnimationItem->GetRenderWindow()) - 1; const int from = std::min(m_AnimationItem->GetFrom(), maximum); - const int to = std::min(m_AnimationItem->GetTo(), maximum); + int to = std::max(from, std::min(m_AnimationItem->GetTo(), maximum)); + + if (0 == to) + to = maximum; m_AnimationItem->SetFrom(from); m_AnimationItem->SetTo(to); m_Ui->sliceRangeWidget->setMaximum(maximum); m_Ui->sliceRangeWidget->setValues(from, to); m_Ui->reverseCheckBox->setChecked(m_AnimationItem->GetReverse()); } void QmitkSliceAnimationWidget::OnRenderWindowChanged(int renderWindow) { - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; const int lastSlice = static_cast(GetNumberOfSlices(renderWindow) - 1); if (lastSlice < m_AnimationItem->GetFrom()) m_AnimationItem->SetFrom(lastSlice); if (lastSlice < m_AnimationItem->GetTo()) m_AnimationItem->SetTo(lastSlice); m_Ui->sliceRangeWidget->setMaximum(lastSlice); m_Ui->sliceRangeWidget->setValues(m_AnimationItem->GetFrom(), m_AnimationItem->GetTo()); if (m_AnimationItem->GetRenderWindow() != renderWindow) m_AnimationItem->SetRenderWindow(renderWindow); } void QmitkSliceAnimationWidget::OnFromChanged(double from) { - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; int intFrom = static_cast(from); if (m_AnimationItem->GetFrom() != intFrom) m_AnimationItem->SetFrom(intFrom); } void QmitkSliceAnimationWidget::OnToChanged(double to) { - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; int intTo = static_cast(to); if (m_AnimationItem->GetTo() != intTo) m_AnimationItem->SetTo(intTo); } void QmitkSliceAnimationWidget::OnReverseChanged(bool reverse) { - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; if (m_AnimationItem->GetReverse() != reverse) m_AnimationItem->SetReverse(reverse); } diff --git a/Plugins/org.mitk.gui.qt.moviemaker/src/internal/QmitkTimeSliceAnimationWidget.cpp b/Plugins/org.mitk.gui.qt.moviemaker/src/internal/QmitkTimeSliceAnimationWidget.cpp index 2e45ee9b37..a5f2e52f7f 100644 --- a/Plugins/org.mitk.gui.qt.moviemaker/src/internal/QmitkTimeSliceAnimationWidget.cpp +++ b/Plugins/org.mitk.gui.qt.moviemaker/src/internal/QmitkTimeSliceAnimationWidget.cpp @@ -1,98 +1,99 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #include "QmitkTimeSliceAnimationItem.h" #include "QmitkTimeSliceAnimationWidget.h" #include #include #include #include -static int GetNumberOfSlices() +namespace { - mitk::Stepper* stepper = mitk::RenderingManager::GetInstance()->GetTimeNavigationController()->GetTime(); + int GetNumberOfSlices() + { + mitk::Stepper* stepper = mitk::RenderingManager::GetInstance()->GetTimeNavigationController()->GetTime(); - if (stepper != nullptr) - return std::max(1, static_cast(stepper->GetSteps())); + if (stepper != nullptr) + return std::max(1, static_cast(stepper->GetSteps())); - return 1; + return 1; + } } QmitkTimeSliceAnimationWidget::QmitkTimeSliceAnimationWidget(QWidget* parent) : QmitkAnimationWidget(parent), m_Ui(new Ui::QmitkTimeSliceAnimationWidget) { m_Ui->setupUi(this); - this->connect(m_Ui->sliceRangeWidget, SIGNAL(minimumValueChanged(double)), - this, SLOT(OnFromChanged(double))); - - this->connect(m_Ui->sliceRangeWidget, SIGNAL(maximumValueChanged(double)), - this, SLOT(OnToChanged(double))); - - this->connect(m_Ui->reverseCheckBox, SIGNAL(clicked(bool)), - this, SLOT(OnReverseChanged(bool))); + connect(m_Ui->sliceRangeWidget, SIGNAL(minimumValueChanged(double)), this, SLOT(OnFromChanged(double))); + connect(m_Ui->sliceRangeWidget, SIGNAL(maximumValueChanged(double)), this, SLOT(OnToChanged(double))); + connect(m_Ui->reverseCheckBox, SIGNAL(clicked(bool)), this, SLOT(OnReverseChanged(bool))); } QmitkTimeSliceAnimationWidget::~QmitkTimeSliceAnimationWidget() { } void QmitkTimeSliceAnimationWidget::SetAnimationItem(QmitkAnimationItem* sliceAnimationItem) { m_AnimationItem = dynamic_cast(sliceAnimationItem); - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; const int maximum = GetNumberOfSlices() - 1; const int from = std::min(m_AnimationItem->GetFrom(), maximum); - const int to = std::min(m_AnimationItem->GetTo(), maximum); + int to = std::max(from, std::min(m_AnimationItem->GetTo(), maximum)); + + if (0 == to) + to = maximum; m_AnimationItem->SetFrom(from); m_AnimationItem->SetTo(to); m_Ui->sliceRangeWidget->setMaximum(maximum); m_Ui->sliceRangeWidget->setValues(from, to); m_Ui->reverseCheckBox->setChecked(m_AnimationItem->GetReverse()); } void QmitkTimeSliceAnimationWidget::OnFromChanged(double from) { - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; int intFrom = static_cast(from); if (m_AnimationItem->GetFrom() != intFrom) m_AnimationItem->SetFrom(intFrom); } void QmitkTimeSliceAnimationWidget::OnToChanged(double to) { - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; int intTo = static_cast(to); if (m_AnimationItem->GetTo() != intTo) m_AnimationItem->SetTo(intTo); } void QmitkTimeSliceAnimationWidget::OnReverseChanged(bool reverse) { - if (m_AnimationItem == nullptr) + if (nullptr == m_AnimationItem) return; if (m_AnimationItem->GetReverse() != reverse) m_AnimationItem->SetReverse(reverse); }