]> Creatis software - clitk.git/blobdiff - vv/vvToolSimpleInputSelectorWidget.cxx
- correct crop 2D bug
[clitk.git] / vv / vvToolSimpleInputSelectorWidget.cxx
index 70700fc93c975d83da9255197820e95fa123a157..02d02775d7025e97d8180d9e65646c7eaac17dc2 100644 (file)
@@ -1,35 +1,25 @@
 /*=========================================================================
+  Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
 
-  Program:   vv
-  Module:    $RCSfile: vvToolSimpleInputSelectorWidget.cxx,v $
-  Language:  C++
-  Date:      $Date: 2010/03/17 11:23:46 $
-  Version:   $Revision: 1.1 $
-  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://oncora1.lyon.fnclcc.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 <http://www.gnu.org/licenses/>.
-
-  =========================================================================*/
+  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
-
 #include "vvToolSimpleInputSelectorWidget.h"
 #include "vvSlicerManager.h"
+#include <QAbstractButton>
 
 //------------------------------------------------------------------------------
 vvToolSimpleInputSelectorWidget::vvToolSimpleInputSelectorWidget(QWidget * parent, Qt::WindowFlags f):
@@ -47,20 +37,43 @@ void vvToolSimpleInputSelectorWidget::Initialize() {
   connect(mInputSelectionButtonBox, SIGNAL(accepted()), this, SLOT(accept()));
   connect(mInputSelectionButtonBox, SIGNAL(rejected()), this, SLOT(reject()));
   connect(mInputSequenceBox, SIGNAL(currentIndexChanged(int)), this, SLOT(changeInput(int)));  
-  DD("vvToolSimpleInputSelectorWidget::Initialize");
-  DD(mSlicerManagerList.size());
   if (mSlicerManagerList.size() == 1) {
-    DD("Initialize::accept");
-    accept();
+    if (!mAllowSkip) accept();
+  }
+  if (mSlicerManagerList.size() == 0) {
+    reject();
   }
 }
 //------------------------------------------------------------------------------
 
 
+//------------------------------------------------------------------------------
+void vvToolSimpleInputSelectorWidget::SetText(QString & s) {
+  mGroupBox->setTitle(s);
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolSimpleInputSelectorWidget::EnableAllowSkip(bool b) {
+  mAllowSkip = b;
+  if (mAllowSkip) {
+    mInputSelectionButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Discard);
+    connect(mInputSelectionButtonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(skip(QAbstractButton*)));
+  }
+  else 
+    mInputSelectionButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
+}
+//------------------------------------------------------------------------------
+
+
 //------------------------------------------------------------------------------
 void vvToolSimpleInputSelectorWidget::SetInputList(const std::vector<vvSlicerManager*> & l, int index) {
-  DD("vvToolSimpleInputSelectorWidget::SetInputList");
-  DD(index);
+  if (l.size() == 0) {
+    // TODO !!!
+    DD("no input > error message");
+    reject();
+  }
   mInputSequenceBox->clear();
   for(unsigned int i=0; i<l.size(); i++)
     mSlicerManagerList.push_back(l[i]);
@@ -69,11 +82,7 @@ void vvToolSimpleInputSelectorWidget::SetInputList(const std::vector<vvSlicerMan
     mInputSequenceBox->addItem(mSlicerManagerList[i]->GetFileName().c_str());
   }
   mInputSequenceBox->setCurrentIndex(mCurrentIndex);
-  if (mSlicerManagerList.size() == 0) {
-    // TODO !!!
-    DD("no input > error message");
-    reject();
-  }
+  changeInput(mCurrentIndex);
 }
 //------------------------------------------------------------------------------
 
@@ -96,18 +105,23 @@ void vvToolSimpleInputSelectorWidget::accept() {
 //------------------------------------------------------------------------------
 
 
+
 //------------------------------------------------------------------------------
 void vvToolSimpleInputSelectorWidget::reject() {
-  DD("vvToolSimpleInputSelectorWidget::reject()");
   emit rejected();
 }
 //------------------------------------------------------------------------------
 
 
+//------------------------------------------------------------------------------
+void vvToolSimpleInputSelectorWidget::skip(QAbstractButton* b) {
+  if (b->text() == "Discard") emit sigskip();
+}
+//------------------------------------------------------------------------------
+
+
 //------------------------------------------------------------------------------
 void vvToolSimpleInputSelectorWidget::changeInput(int index) {
-  DD("changeInput");
-  DD(index);
   if (index<0) return;
   mCurrentIndex = index;
   vvImage * mCurrentImage = mSlicerManagerList[index]->GetImage();