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
mMainWindowBase = parent;
setModal(false);
setAttribute(Qt::WA_DeleteOnClose);
+ mCurrentSlicerManager = 0;
// GUI Initialization
setupUi(this);
//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+// void vvToolWidgetBase::SetNumberOfNeededInputs(int nb) {
+// mNumberOfInputs = nb;
+// mListOfFilters.resize(nb);
+// for(int i=0; i<mNumberOfInputs; i++) mListOfFilters[i] = 0;
+// }
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolWidgetBase::AddInputSelector(clitk::ImageToImageGenericFilterBase * f) {
+ DD("AddInputSelector with filter");
+ DD(mMainWindowBase->GetSlicerManagers().size());
+ int j=0;
+ mFilter = f;
+ mSlicerManagersCompatible.clear();
+ // mToolInputSelectionWidget->setToolTip(QString("%1").arg(mFilter->GetAvailableImageTypes().c_str()));
+ for(unsigned int i=0; i<mMainWindowBase->GetSlicerManagers().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; i<mMainWindowBase->GetSlicerManagers().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();
}
//------------------------------------------------------------------------------
bool vvToolWidgetBase::close() {
+ DD("vvToolWidgetBase::close()");
return QDialog::close();
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void vvToolWidgetBase::AnImageIsBeingClosed(vvSlicerManager * m) {
+ mToolInputSelectionWidget->AnImageIsBeingClosed(m);
if (m == mCurrentSlicerManager) {
close();
}
//------------------------------------------------------------------------------
void vvToolWidgetBase::InitializeInputs() {
+ /*
if (mFilter) {
int j=0;
mToolInputSelectionWidget->setToolTip(QString("%1").arg(mFilter->GetAvailableImageTypes().c_str()));
for(unsigned int i=0; i<mMainWindowBase->GetSlicerManagers().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++;
}
}
}
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<vvSlicerManager*> & 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<vvSlicerManager*> & 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<vvSlicerManager *> m) if you use several input" << std::endl;
+ exit(0);
+ }
+}
+//------------------------------------------------------------------------------