X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolWidgetBase.cxx;h=d5632dca6eaa71ed8099fd8e2e6daade568247a4;hb=e7f88877b4e3d136e9cfa08613490df94e2728d7;hp=e08d54f9b3b6ef85a1cb38f497b84d2caefe38a3;hpb=1c8e61413a024c1f3a15f344dcceec45399911b5;p=clitk.git diff --git a/vv/vvToolWidgetBase.cxx b/vv/vvToolWidgetBase.cxx index e08d54f..d5632dc 100644 --- a/vv/vvToolWidgetBase.cxx +++ b/vv/vvToolWidgetBase.cxx @@ -1,33 +1,25 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Module: $RCSfile: vvToolWidgetBase.cxx,v $ - Language: C++ - Date: $Date: 2010/03/17 11:22:18 $ - Version: $Revision: 1.3 $ - Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr) + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr - Copyright (C) 2008 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr - CREATIS-LRMN http://www.creatis.insa-lyon.fr + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, version 3 of the License. + It is distributed under dual licence - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - - =========================================================================*/ + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +======================================================================-====*/ #include "vvToolWidgetBase.h" #include "vvMainWindowBase.h" #include "vvSlicerManager.h" +#include //------------------------------------------------------------------------------ vvToolWidgetBase::vvToolWidgetBase(vvMainWindowBase * parent, Qt::WindowFlags f) @@ -38,7 +30,7 @@ vvToolWidgetBase::vvToolWidgetBase(vvMainWindowBase * parent, Qt::WindowFlags f) // parent is set at construction mIsInitialized = false; mFilter = 0; - mMainWindowBase = parent; + mMainWindow = parent; setModal(false); setAttribute(Qt::WA_DeleteOnClose); mCurrentSlicerManager = 0; @@ -47,7 +39,7 @@ vvToolWidgetBase::vvToolWidgetBase(vvMainWindowBase * parent, Qt::WindowFlags f) setupUi(this); // Connect signals & slots - connect(mMainWindowBase, SIGNAL(AnImageIsBeingClosed(vvSlicerManager*)), + connect(mMainWindow, SIGNAL(AnImageIsBeingClosed(vvSlicerManager*)), this, SLOT(AnImageIsBeingClosed(vvSlicerManager*))); connect(mToolInputSelectionWidget, SIGNAL(accepted()), this, SLOT(InputIsSelected())); connect(mToolInputSelectionWidget, SIGNAL(rejected()), this, SLOT(close())); @@ -77,58 +69,69 @@ vvToolWidgetBase::~vvToolWidgetBase() { //------------------------------------------------------------------------------ -void vvToolWidgetBase::AddInputSelector(clitk::ImageToImageGenericFilterBase * f) { - DD("AddInputSelector with filter"); - DD(mMainWindowBase->GetSlicerManagers().size()); +void vvToolWidgetBase::AddInputSelector(QString s, clitk::ImageToImageGenericFilterBase * f, bool allowSkip) { + // DD("AddInputSelector with filter"); + // DD(mMainWindowBase->GetSlicerManagers().size()); int j=0; mFilter = f; mSlicerManagersCompatible.clear(); - // mToolInputSelectionWidget->setToolTip(QString("%1").arg(mFilter->GetAvailableImageTypes().c_str())); - for(unsigned int i=0; iGetSlicerManagers().size(); i++) { - DD(i); - vvImage * s = mMainWindowBase->GetSlicerManagers()[i]->GetImage(); + mToolInputSelectionWidget->setToolTip(QString("%1").arg(mFilter->GetAvailableImageTypes().c_str())); + for(unsigned int i=0; iGetSlicerManagers().size(); i++) { + // DD(i); + vvImage * s = mMainWindow->GetSlicerManagers()[i]->GetImage(); + // DD(s->GetScalarTypeAsString()); if (mFilter->CheckImageType(s->GetNumberOfDimensions(), s->GetNumberOfScalarComponents(), s->GetScalarTypeAsString())) { - mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]); - if ((int)i == mMainWindowBase->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j; + mSlicerManagersCompatible.push_back(mMainWindow->GetSlicerManagers()[i]); + if ((int)i == mMainWindow->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j; j++; } } - mToolInputSelectionWidget->AddInputSelector(mSlicerManagersCompatible, mCurrentCompatibleIndex); + if (mSlicerManagersCompatible.size() == 0) { + QMessageBox::information(this, "No image","Sorry, could not perform operation. No (compatible) opened image type."); + close(); + return; + } + mToolInputSelectionWidget->AddInputSelector(s, mSlicerManagersCompatible, mCurrentCompatibleIndex, allowSkip); } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvToolWidgetBase::AddInputSelector() { - DD("AddInput without filter"); - DD(mMainWindowBase->GetSlicerManagers().size()); +void vvToolWidgetBase::AddInputSelector(QString s, bool allowSkip) { + // DD("AddInput without filter"); + // DD(mMainWindow->GetSlicerManagers().size()); mSlicerManagersCompatible.clear(); - for(unsigned int i=0; iGetSlicerManagers().size(); i++) { - mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]); + for(unsigned int i=0; iGetSlicerManagers().size(); i++) { + mSlicerManagersCompatible.push_back(mMainWindow->GetSlicerManagers()[i]); } - mToolInputSelectionWidget->AddInputSelector(mMainWindowBase->GetSlicerManagers(), - mMainWindowBase->GetSlicerManagerCurrentIndex()); + if (mMainWindow->GetSlicerManagers().size() == 0) { + QMessageBox::information(this, "No image","Sorry, could not perform operation. No opened image type."); + close(); + return; + } + mToolInputSelectionWidget->AddInputSelector(s, mMainWindow->GetSlicerManagers(), + mMainWindow->GetSlicerManagerCurrentIndex(), allowSkip); } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ void vvToolWidgetBase::show() { - if (!mIsInitialized) { - DD("show -> init"); - mToolInputSelectionWidget->Initialize(); - mIsInitialized = true; - } - QDialog::show(); + if (!mIsInitialized) { + // DD("show -> init"); + mToolInputSelectionWidget->Initialize(); + mIsInitialized = true; + } + QDialog::show(); } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ bool vvToolWidgetBase::close() { - DD("vvToolWidgetBase::close()"); + // DD("vvToolWidgetBase::close()"); return QDialog::close(); } //------------------------------------------------------------------------------ @@ -136,7 +139,7 @@ bool vvToolWidgetBase::close() { //------------------------------------------------------------------------------ void vvToolWidgetBase::AnImageIsBeingClosed(vvSlicerManager * m) { - mToolInputSelectionWidget->AnImageIsBeingClosed(m); + mToolInputSelectionWidget->AnImageIsBeingClosed(m); if (m == mCurrentSlicerManager) { close(); } @@ -147,27 +150,27 @@ void vvToolWidgetBase::AnImageIsBeingClosed(vvSlicerManager * m) { //------------------------------------------------------------------------------ void vvToolWidgetBase::InitializeInputs() { /* - if (mFilter) { + if (mFilter) { int j=0; mToolInputSelectionWidget->setToolTip(QString("%1").arg(mFilter->GetAvailableImageTypes().c_str())); - for(unsigned int i=0; iGetSlicerManagers().size(); i++) { - vvImage * s = mMainWindowBase->GetSlicerManagers()[i]->GetImage(); - if (mFilter->CheckImageType(s->GetNumberOfDimensions(), - s->GetNumberOfScalarComponents(), - s->GetScalarTypeAsString())) { - mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]); - if ((int)i == mMainWindowBase->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j; - j++; - } + for(unsigned int i=0; iGetSlicerManagers().size(); i++) { + vvImage * s = mMainWindow->GetSlicerManagers()[i]->GetImage(); + if (mFilter->CheckImageType(s->GetNumberOfDimensions(), + s->GetNumberOfScalarComponents(), + s->GetScalarTypeAsString())) { + mSlicerManagersCompatible.push_back(mMainWindow->GetSlicerManagers()[i]); + if ((int)i == mMainWindow->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j; + j++; } - } - else { - mSlicerManagersCompatible = mMainWindowBase->GetSlicerManagers(); - mCurrentCompatibleIndex = mMainWindowBase->GetSlicerManagerCurrentIndex(); - } - mToolInputSelectionWidget->Initialize(mSlicerManagersCompatible, - mCurrentCompatibleIndex); - mIsInitialized = true; + } + } + else { + mSlicerManagersCompatible = mMainWindow->GetSlicerManagers(); + mCurrentCompatibleIndex = mMainWindow->GetSlicerManagerCurrentIndex(); + } + mToolInputSelectionWidget->Initialize(mSlicerManagersCompatible, + mCurrentCompatibleIndex); + mIsInitialized = true; */ } //------------------------------------------------------------------------------ @@ -183,7 +186,7 @@ void vvToolWidgetBase::InitializeInputs() { //------------------------------------------------------------------------------ void vvToolWidgetBase::InputIsSelected() { - DD("InputIsSelected"); + // DD("InputIsSelected"); buttonBox->setEnabled(true); std::vector & l = mToolInputSelectionWidget->GetSelectedInputs(); mCurrentSlicerManager = l[0]; @@ -207,12 +210,12 @@ void vvToolWidgetBase::InputIsSelected(vvSlicerManager * m) { //------------------------------------------------------------------------------ void vvToolWidgetBase::InputIsSelected(std::vector & l) { buttonBox->setEnabled(true); - DD("InputIsSelected(vector)"); - DD(l.size()); + // DD("InputIsSelected(vector)"); + // DD(l.size()); if (l.size() == 1) InputIsSelected(l[0]); else { - std::cerr << "You MUST overwrite this method vvToolWidgetBase::InputIsSelected(vector m) if you use several input" << std::endl; - exit(0); + std::cerr << "You MUST overwrite this method vvToolWidgetBase::InputIsSelected(vector m) if you use several input" << std::endl; + exit(0); } } //------------------------------------------------------------------------------