X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolInputSelectorWidget.cxx;h=ca1ed293ec30b5a30b948e43b4d3d85bb7de4922;hb=HEAD;hp=257966013c7fdb011685f108f9fa2d2ba245bbdb;hpb=1c8e61413a024c1f3a15f344dcceec45399911b5;p=clitk.git diff --git a/vv/vvToolInputSelectorWidget.cxx b/vv/vvToolInputSelectorWidget.cxx index 2579660..ca1ed29 100644 --- a/vv/vvToolInputSelectorWidget.cxx +++ b/vv/vvToolInputSelectorWidget.cxx @@ -1,30 +1,20 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Module: $RCSfile: vvToolInputSelectorWidget.cxx,v $ - Language: C++ - Date: $Date: 2010/03/17 11:22:18 $ - Version: $Revision: 1.4 $ - 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://www.centreleonberard.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr - Copyright (C) 2010 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr - CREATIS 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. - - 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 . - - =========================================================================*/ + It is distributed under dual licence + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +===========================================================================**/ #ifndef VVTOOLINPUTSELECTORWIDGET_CXX #define VVTOOLINPUTSELECTORWIDGET_CXX @@ -34,52 +24,59 @@ //------------------------------------------------------------------------------ vvToolInputSelectorWidget::vvToolInputSelectorWidget(QWidget * parent, Qt::WindowFlags f): - QWidget(parent, f) { - setupUi(this); + QWidget(parent, f) +{ + setupUi(this); setEnabled(true); mNumberOfAcceptedInputs = 0; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -int vvToolInputSelectorWidget::GetNumberOfInput() { +int vvToolInputSelectorWidget::GetNumberOfInput() +{ return mListOfSimpleInputWidget.size(); } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvToolInputSelectorWidget::AddInputSelector(const std::vector & l, int index) { - DD("ICICICICICICICIC AddInputSelector ADD layout"); - DD(index); - DD(l.size()); +void vvToolInputSelectorWidget::AddInputSelector(QString & s, + const std::vector & l, + int index, + bool allowSkip) +{ + // Create a input selector widget vvToolSimpleInputSelectorWidget * input = new vvToolSimpleInputSelectorWidget; mListOfSimpleInputWidget.push_back(input); + mSkipInput.push_back(false); + input->SetText(s); + input->EnableAllowSkip(allowSkip); - // copy list + // Copy the list of slicermanager std::vector * ll = new std::vector; for(unsigned int i=0; ipush_back(l[i]); - // add + // Add input->SetInputList(*ll, index); - input->setObjectName(QString::fromUtf8("TOTO")); mVerticalLayout->addWidget(input); // Enable or disable if (GetNumberOfInput() == 1) input->setEnabled(true); else input->setEnabled(false); - DD(GetNumberOfInput()); - // Connect signals & slots + // Connect signals & slots connect(input, SIGNAL(accepted()), this, SLOT(accept())); - connect(input, SIGNAL(rejected()), this, SLOT(reject())); + connect(input, SIGNAL(rejected()), this, SLOT(reject())); + connect(input, SIGNAL(sigskip()), this, SLOT(skip())); } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvToolInputSelectorWidget::Initialize() { +void vvToolInputSelectorWidget::Initialize() +{ for(unsigned int i=0; iInitialize(); } @@ -87,38 +84,27 @@ void vvToolInputSelectorWidget::Initialize() { //------------------------------------------------------------------------------ -void vvToolInputSelectorWidget::accept() { - DD("vvToolInputSelectorWidget::accept"); - DD(mNumberOfAcceptedInputs); +void vvToolInputSelectorWidget::accept() +{ mNumberOfAcceptedInputs++; if (mNumberOfAcceptedInputs == GetNumberOfInput()) { setEnabled(false); emit accepted(); - } - else { - DD("accepted"); - // for(unsigned int i=mNumberOfAcceptedInputs; iInitialize(); - mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(true); - //} + } else if (mNumberOfAcceptedInputs < GetNumberOfInput()) { + mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(true); } } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvToolInputSelectorWidget::reject() { - DD("vvToolInputSelectorWidget::reject"); +void vvToolInputSelectorWidget::reject() +{ if (mNumberOfAcceptedInputs != 0) { - // for(unsigned int i=mNumberOfAcceptedInputs; iInitialize(); - DD(mNumberOfAcceptedInputs); mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(false); mListOfSimpleInputWidget[mNumberOfAcceptedInputs-1]->setEnabled(true); mNumberOfAcceptedInputs--; - //} - } - else { + } else { emit rejected(); } } @@ -126,18 +112,31 @@ void vvToolInputSelectorWidget::reject() { //------------------------------------------------------------------------------ -std::vector & vvToolInputSelectorWidget::GetSelectedInputs() { +void vvToolInputSelectorWidget::skip() +{ + mSkipInput[mNumberOfAcceptedInputs] = true; + accept(); +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +std::vector & vvToolInputSelectorWidget::GetSelectedInputs() +{ std::vector * l = new std::vector; - for(unsigned int i=0; ipush_back(mListOfSimpleInputWidget[i]->GetSelectedInput()); + for(unsigned int i=0; ipush_back(mListOfSimpleInputWidget[i]->GetSelectedInput()); + } return *l; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvToolInputSelectorWidget::AnImageIsBeingClosed(vvSlicerManager * m) { - DD("TODO : verify that the image still exist !!"); +void vvToolInputSelectorWidget::AnImageIsBeingClosed(vvSlicerManager * m) +{ + // DD("TODO : verify that the image still exist !!"); // for(int i=0; i< } //------------------------------------------------------------------------------