]> Creatis software - clitk.git/blob - vv/vvToolInputSelectorWidget.cxx
removed headers
[clitk.git] / vv / vvToolInputSelectorWidget.cxx
1 #ifndef VVTOOLINPUTSELECTORWIDGET_CXX
2 #define VVTOOLINPUTSELECTORWIDGET_CXX
3 #include "vvToolSimpleInputSelectorWidget.h"
4 #include "vvToolInputSelectorWidget.h"
5 #include "vvSlicerManager.h"
6
7 //------------------------------------------------------------------------------
8 vvToolInputSelectorWidget::vvToolInputSelectorWidget(QWidget * parent, Qt::WindowFlags f):
9   QWidget(parent, f) {
10   setupUi(this);  
11   setEnabled(true);
12   mNumberOfAcceptedInputs = 0;
13 }
14 //------------------------------------------------------------------------------
15
16 //------------------------------------------------------------------------------
17 int vvToolInputSelectorWidget::GetNumberOfInput() {
18   return mListOfSimpleInputWidget.size();
19 }
20 //------------------------------------------------------------------------------
21
22
23 //------------------------------------------------------------------------------
24 void vvToolInputSelectorWidget::AddInputSelector(QString & s, 
25                                                  const std::vector<vvSlicerManager*> & l, 
26                                                  int index, 
27                                                  bool allowSkip) {
28   //  DD("ICICICICICICICIC AddInputSelector ADD layout");
29   //  DD(index);
30   //DD(l.size());
31   vvToolSimpleInputSelectorWidget * input = new vvToolSimpleInputSelectorWidget;
32   mListOfSimpleInputWidget.push_back(input);
33   mSkipInput.push_back(false);
34   
35   input->SetText(s);
36   input->EnableAllowSkip(allowSkip);
37
38   // copy list
39   std::vector<vvSlicerManager*> * ll = new std::vector<vvSlicerManager*>;
40   for(unsigned int i=0; i<l.size(); i++)
41     ll->push_back(l[i]);
42
43   // add
44   input->SetInputList(*ll, index);
45   // input->setObjectName(QString::fromUtf8("TOTO"));
46   mVerticalLayout->addWidget(input);
47
48   // Enable or disable
49   if (GetNumberOfInput() == 1) input->setEnabled(true);
50   else input->setEnabled(false);
51   //DD(GetNumberOfInput());
52
53   // Connect signals & slots  
54   connect(input, SIGNAL(accepted()), this, SLOT(accept()));
55   connect(input, SIGNAL(rejected()), this, SLOT(reject()));  
56   connect(input, SIGNAL(sigskip()), this, SLOT(skip()));  
57 }
58 //------------------------------------------------------------------------------
59
60
61 //------------------------------------------------------------------------------
62 void vvToolInputSelectorWidget::Initialize() {
63   for(unsigned int i=0; i<mListOfSimpleInputWidget.size(); i++)
64     mListOfSimpleInputWidget[i]->Initialize();
65 }
66 //------------------------------------------------------------------------------
67
68
69 //------------------------------------------------------------------------------
70 void vvToolInputSelectorWidget::accept() {
71   //  DD("vvToolInputSelectorWidget::accept");
72   //DD(mNumberOfAcceptedInputs);
73   mNumberOfAcceptedInputs++;
74   if (mNumberOfAcceptedInputs == GetNumberOfInput()) {
75     setEnabled(false);
76     emit accepted();
77   }
78   else {
79     //DD("accepted");
80     //    for(unsigned int i=mNumberOfAcceptedInputs; i<mListOfSimpleInputWidget.size(); i++) {
81     //      mListOfSimpleInputWidget[i]->Initialize();
82     mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(true);
83     //}
84   }
85 }
86 //------------------------------------------------------------------------------
87
88
89 //------------------------------------------------------------------------------
90 void vvToolInputSelectorWidget::reject() {
91   //  DD("vvToolInputSelectorWidget::reject");
92   if (mNumberOfAcceptedInputs != 0)  {
93     //    for(unsigned int i=mNumberOfAcceptedInputs; i<mListOfSimpleInputWidget.size(); i++) {
94     //      mListOfSimpleInputWidget[i]->Initialize();
95     //    DD(mNumberOfAcceptedInputs);
96     mListOfSimpleInputWidget[mNumberOfAcceptedInputs]->setEnabled(false);
97     mListOfSimpleInputWidget[mNumberOfAcceptedInputs-1]->setEnabled(true);
98     mNumberOfAcceptedInputs--;
99     //}
100   }
101   else {
102     emit rejected();
103   }
104 }
105 //------------------------------------------------------------------------------
106
107
108 //------------------------------------------------------------------------------
109 void vvToolInputSelectorWidget::skip() {
110   //  DD("SKIP");
111   mSkipInput[mNumberOfAcceptedInputs] = true;
112   accept();//mNumberOfAcceptedInputs++;
113 }
114 //------------------------------------------------------------------------------
115
116
117 //------------------------------------------------------------------------------
118 std::vector<vvSlicerManager*> & vvToolInputSelectorWidget::GetSelectedInputs() {
119   std::vector<vvSlicerManager*> * l = new std::vector<vvSlicerManager*>;
120   for(unsigned int i=0; i<mListOfSimpleInputWidget.size(); i++) {
121     if (!mSkipInput[i])
122       l->push_back(mListOfSimpleInputWidget[i]->GetSelectedInput());
123   }
124   return *l;
125 }
126 //------------------------------------------------------------------------------
127
128
129 //------------------------------------------------------------------------------
130 void vvToolInputSelectorWidget::AnImageIsBeingClosed(vvSlicerManager * m) {
131   //  DD("TODO : verify that the image still exist !!");
132   //  for(int i=0; i<
133 }
134 //------------------------------------------------------------------------------
135
136
137 #endif
138