1 /*=========================================================================
4 Module: $RCSfile: vvToolInputSelectorWidget.cxx,v $
6 Date: $Date: 2010/03/17 11:22:18 $
7 Version: $Revision: 1.4 $
8 Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr)
11 Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
12 CREATIS http://www.creatis.insa-lyon.fr
14 This program is free software: you can redistribute it and/or modify
15 it under the terms of the GNU General Public License as published by
16 the Free Software Foundation, version 3 of the License.
18 This program is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU General Public License for more details.
23 You should have received a copy of the GNU General Public License
24 along with this program. If not, see <http://www.gnu.org/licenses/>.
26 =========================================================================*/
28 #ifndef VVTOOLINPUTSELECTORWIDGET_CXX
29 #define VVTOOLINPUTSELECTORWIDGET_CXX
31 #include "vvToolSimpleInputSelectorWidget.h"
32 #include "vvToolInputSelectorWidget.h"
33 #include "vvSlicerManager.h"
35 //------------------------------------------------------------------------------
36 vvToolInputSelectorWidget::vvToolInputSelectorWidget(QWidget * parent, Qt::WindowFlags f):
40 mNumberOfAcceptedInputs = 0;
42 //------------------------------------------------------------------------------
44 //------------------------------------------------------------------------------
45 int vvToolInputSelectorWidget::GetNumberOfInput() {
46 return mListOfSimpleInputWidget.size();
48 //------------------------------------------------------------------------------
51 //------------------------------------------------------------------------------
52 void vvToolInputSelectorWidget::AddInputSelector(const std::vector<vvSlicerManager*> & l, int index) {
53 DD("ICICICICICICICIC AddInputSelector ADD layout");
56 vvToolSimpleInputSelectorWidget * input = new vvToolSimpleInputSelectorWidget;
57 mListOfSimpleInputWidget.push_back(input);
60 std::vector<vvSlicerManager*> * ll = new std::vector<vvSlicerManager*>;
61 for(unsigned int i=0; i<l.size(); i++)
65 input->SetInputList(*ll, index);
66 input->setObjectName(QString::fromUtf8("TOTO"));
67 mVerticalLayout->addWidget(input);
70 if (GetNumberOfInput() == 1) input->setEnabled(true);
71 else input->setEnabled(false);
72 DD(GetNumberOfInput());
74 // Connect signals & slots
75 connect(input, SIGNAL(accepted()), this, SLOT(accept()));
76 connect(input, SIGNAL(rejected()), this, SLOT(reject()));
78 //------------------------------------------------------------------------------
81 //------------------------------------------------------------------------------
82 void vvToolInputSelectorWidget::Initialize() {
83 for(unsigned int i=0; i<mListOfSimpleInputWidget.size(); i++)
84 mListOfSimpleInputWidget[i]->Initialize();
86 //------------------------------------------------------------------------------
89 //------------------------------------------------------------------------------
90 void vvToolInputSelectorWidget::accept() {
91 DD("vvToolInputSelectorWidget::accept");
92 DD(mNumberOfAcceptedInputs);
93 mNumberOfAcceptedInputs++;
94 if (mNumberOfAcceptedInputs == GetNumberOfInput()) {
100 // for(unsigned int i=mNumberOfAcceptedInputs; i<mListOfSimpleInputWidget.size(); i++) {
101 // mListOfSimpleInputWidget[i]->Initialize();
102 mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(true);
106 //------------------------------------------------------------------------------
109 //------------------------------------------------------------------------------
110 void vvToolInputSelectorWidget::reject() {
111 DD("vvToolInputSelectorWidget::reject");
112 if (mNumberOfAcceptedInputs != 0) {
113 // for(unsigned int i=mNumberOfAcceptedInputs; i<mListOfSimpleInputWidget.size(); i++) {
114 // mListOfSimpleInputWidget[i]->Initialize();
115 DD(mNumberOfAcceptedInputs);
116 mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(false);
117 mListOfSimpleInputWidget[mNumberOfAcceptedInputs-1]->setEnabled(true);
118 mNumberOfAcceptedInputs--;
125 //------------------------------------------------------------------------------
128 //------------------------------------------------------------------------------
129 std::vector<vvSlicerManager*> & vvToolInputSelectorWidget::GetSelectedInputs() {
130 std::vector<vvSlicerManager*> * l = new std::vector<vvSlicerManager*>;
131 for(unsigned int i=0; i<mListOfSimpleInputWidget.size(); i++)
132 l->push_back(mListOfSimpleInputWidget[i]->GetSelectedInput());
135 //------------------------------------------------------------------------------
138 //------------------------------------------------------------------------------
139 void vvToolInputSelectorWidget::AnImageIsBeingClosed(vvSlicerManager * m) {
140 DD("TODO : verify that the image still exist !!");
143 //------------------------------------------------------------------------------