X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=vv%2FvvToolWidgetBase.cxx;h=e08d54f9b3b6ef85a1cb38f497b84d2caefe38a3;hb=61d57d331b0459560f6714c0c6bb8298868a662e;hp=080e29857e45e999aedd82a415f9c30c0aee7323;hpb=98bdb72d057c122863776f8c3fb74659e8c87beb;p=clitk.git diff --git a/vv/vvToolWidgetBase.cxx b/vv/vvToolWidgetBase.cxx index 080e298..e08d54f 100644 --- a/vv/vvToolWidgetBase.cxx +++ b/vv/vvToolWidgetBase.cxx @@ -3,8 +3,8 @@ Program: vv Module: $RCSfile: vvToolWidgetBase.cxx,v $ Language: C++ - Date: $Date: 2010/03/01 15:38:09 $ - Version: $Revision: 1.2 $ + Date: $Date: 2010/03/17 11:22:18 $ + Version: $Revision: 1.3 $ Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr) Copyright (C) 2008 @@ -41,6 +41,7 @@ vvToolWidgetBase::vvToolWidgetBase(vvMainWindowBase * parent, Qt::WindowFlags f) mMainWindowBase = parent; setModal(false); setAttribute(Qt::WA_DeleteOnClose); + mCurrentSlicerManager = 0; // GUI Initialization setupUi(this); @@ -66,10 +67,59 @@ vvToolWidgetBase::~vvToolWidgetBase() { //------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ +// void vvToolWidgetBase::SetNumberOfNeededInputs(int nb) { +// mNumberOfInputs = nb; +// mListOfFilters.resize(nb); +// for(int i=0; iGetSlicerManagers().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(); + if (mFilter->CheckImageType(s->GetNumberOfDimensions(), + s->GetNumberOfScalarComponents(), + s->GetScalarTypeAsString())) { + mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]); + if ((int)i == mMainWindowBase->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j; + j++; + } + } + mToolInputSelectionWidget->AddInputSelector(mSlicerManagersCompatible, mCurrentCompatibleIndex); +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +void vvToolWidgetBase::AddInputSelector() { + DD("AddInput without filter"); + DD(mMainWindowBase->GetSlicerManagers().size()); + mSlicerManagersCompatible.clear(); + for(unsigned int i=0; iGetSlicerManagers().size(); i++) { + mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]); + } + mToolInputSelectionWidget->AddInputSelector(mMainWindowBase->GetSlicerManagers(), + mMainWindowBase->GetSlicerManagerCurrentIndex()); +} +//------------------------------------------------------------------------------ + + //------------------------------------------------------------------------------ void vvToolWidgetBase::show() { if (!mIsInitialized) { - InitializeInputs(); + DD("show -> init"); + mToolInputSelectionWidget->Initialize(); + mIsInitialized = true; } QDialog::show(); } @@ -78,6 +128,7 @@ void vvToolWidgetBase::show() { //------------------------------------------------------------------------------ bool vvToolWidgetBase::close() { + DD("vvToolWidgetBase::close()"); return QDialog::close(); } //------------------------------------------------------------------------------ @@ -85,6 +136,7 @@ bool vvToolWidgetBase::close() { //------------------------------------------------------------------------------ void vvToolWidgetBase::AnImageIsBeingClosed(vvSlicerManager * m) { + mToolInputSelectionWidget->AnImageIsBeingClosed(m); if (m == mCurrentSlicerManager) { close(); } @@ -94,17 +146,18 @@ void vvToolWidgetBase::AnImageIsBeingClosed(vvSlicerManager * m) { //------------------------------------------------------------------------------ void vvToolWidgetBase::InitializeInputs() { + /* 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++; + s->GetNumberOfScalarComponents(), + s->GetScalarTypeAsString())) { + mSlicerManagersCompatible.push_back(mMainWindowBase->GetSlicerManagers()[i]); + if ((int)i == mMainWindowBase->GetSlicerManagerCurrentIndex()) mCurrentCompatibleIndex = j; + j++; } } } @@ -113,21 +166,53 @@ void vvToolWidgetBase::InitializeInputs() { mCurrentCompatibleIndex = mMainWindowBase->GetSlicerManagerCurrentIndex(); } mToolInputSelectionWidget->Initialize(mSlicerManagersCompatible, - mCurrentCompatibleIndex); + mCurrentCompatibleIndex); mIsInitialized = true; + */ } //------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ +// void vvToolWidgetBase::SetNumberOfNeededInputs(int i) { +// DD("SetNumberOfNeededInputs"); +// DD(i); +// } +//------------------------------------------------------------------------------ + + //------------------------------------------------------------------------------ void vvToolWidgetBase::InputIsSelected() { - // Common - int index = mToolInputSelectionWidget->GetSelectedInputIndex(); - mCurrentSlicerManager = mSlicerManagersCompatible[index]; + DD("InputIsSelected"); + buttonBox->setEnabled(true); + std::vector & l = mToolInputSelectionWidget->GetSelectedInputs(); + mCurrentSlicerManager = l[0]; mCurrentImage = mCurrentSlicerManager->GetImage(); mToolWidget->setEnabled(true); if (!mCurrentSlicerManager) close(); - InputIsSelected(mCurrentSlicerManager); + if (l.size() == 1) InputIsSelected(mCurrentSlicerManager); + else InputIsSelected(l); +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +void vvToolWidgetBase::InputIsSelected(vvSlicerManager * m) { + std::cerr << "You MUST overwrite this method vvToolWidgetBase::InputIsSelected(vvSlicerManager * m) if you use one single input" << std::endl; + exit(0); } //------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +void vvToolWidgetBase::InputIsSelected(std::vector & l) { + buttonBox->setEnabled(true); + 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); + } +} +//------------------------------------------------------------------------------