1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
5 - University of LYON http://www.universite-lyon.fr/
6 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
7 - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the copyright notices for more information.
13 It is distributed under dual licence
15 - BSD See included LICENSE.txt file
16 - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ======================================================================-====*/
18 #ifndef VVTOOLINPUTSELECTORWIDGET_CXX
19 #define VVTOOLINPUTSELECTORWIDGET_CXX
20 #include "vvToolSimpleInputSelectorWidget.h"
21 #include "vvToolInputSelectorWidget.h"
22 #include "vvSlicerManager.h"
24 //------------------------------------------------------------------------------
25 vvToolInputSelectorWidget::vvToolInputSelectorWidget(QWidget * parent, Qt::WindowFlags f):
29 mNumberOfAcceptedInputs = 0;
31 //------------------------------------------------------------------------------
33 //------------------------------------------------------------------------------
34 int vvToolInputSelectorWidget::GetNumberOfInput() {
35 return mListOfSimpleInputWidget.size();
37 //------------------------------------------------------------------------------
40 //------------------------------------------------------------------------------
41 void vvToolInputSelectorWidget::AddInputSelector(QString & s,
42 const std::vector<vvSlicerManager*> & l,
45 // DD("ICICICICICICICIC AddInputSelector ADD layout");
48 vvToolSimpleInputSelectorWidget * input = new vvToolSimpleInputSelectorWidget;
49 mListOfSimpleInputWidget.push_back(input);
50 mSkipInput.push_back(false);
53 input->EnableAllowSkip(allowSkip);
56 std::vector<vvSlicerManager*> * ll = new std::vector<vvSlicerManager*>;
57 for(unsigned int i=0; i<l.size(); i++)
61 input->SetInputList(*ll, index);
62 // input->setObjectName(QString::fromUtf8("TOTO"));
63 mVerticalLayout->addWidget(input);
66 if (GetNumberOfInput() == 1) input->setEnabled(true);
67 else input->setEnabled(false);
68 //DD(GetNumberOfInput());
70 // Connect signals & slots
71 connect(input, SIGNAL(accepted()), this, SLOT(accept()));
72 connect(input, SIGNAL(rejected()), this, SLOT(reject()));
73 connect(input, SIGNAL(sigskip()), this, SLOT(skip()));
75 //------------------------------------------------------------------------------
78 //------------------------------------------------------------------------------
79 void vvToolInputSelectorWidget::Initialize() {
80 for(unsigned int i=0; i<mListOfSimpleInputWidget.size(); i++)
81 mListOfSimpleInputWidget[i]->Initialize();
83 //------------------------------------------------------------------------------
86 //------------------------------------------------------------------------------
87 void vvToolInputSelectorWidget::accept() {
88 // DD("vvToolInputSelectorWidget::accept");
89 //DD(mNumberOfAcceptedInputs);
90 mNumberOfAcceptedInputs++;
91 if (mNumberOfAcceptedInputs == GetNumberOfInput()) {
97 // for(unsigned int i=mNumberOfAcceptedInputs; i<mListOfSimpleInputWidget.size(); i++) {
98 // mListOfSimpleInputWidget[i]->Initialize();
99 mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(true);
103 //------------------------------------------------------------------------------
106 //------------------------------------------------------------------------------
107 void vvToolInputSelectorWidget::reject() {
108 // DD("vvToolInputSelectorWidget::reject");
109 if (mNumberOfAcceptedInputs != 0) {
110 // for(unsigned int i=mNumberOfAcceptedInputs; i<mListOfSimpleInputWidget.size(); i++) {
111 // mListOfSimpleInputWidget[i]->Initialize();
112 // DD(mNumberOfAcceptedInputs);
113 mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(false);
114 mListOfSimpleInputWidget[mNumberOfAcceptedInputs-1]->setEnabled(true);
115 mNumberOfAcceptedInputs--;
122 //------------------------------------------------------------------------------
125 //------------------------------------------------------------------------------
126 void vvToolInputSelectorWidget::skip() {
128 mSkipInput[mNumberOfAcceptedInputs] = true;
129 accept();//mNumberOfAcceptedInputs++;
131 //------------------------------------------------------------------------------
134 //------------------------------------------------------------------------------
135 std::vector<vvSlicerManager*> & vvToolInputSelectorWidget::GetSelectedInputs() {
136 std::vector<vvSlicerManager*> * l = new std::vector<vvSlicerManager*>;
137 for(unsigned int i=0; i<mListOfSimpleInputWidget.size(); i++) {
139 l->push_back(mListOfSimpleInputWidget[i]->GetSelectedInput());
143 //------------------------------------------------------------------------------
146 //------------------------------------------------------------------------------
147 void vvToolInputSelectorWidget::AnImageIsBeingClosed(vvSlicerManager * m) {
148 // DD("TODO : verify that the image still exist !!");
151 //------------------------------------------------------------------------------