1 #ifndef VVTOOLINPUTSELECTORWIDGET_CXX
2 #define VVTOOLINPUTSELECTORWIDGET_CXX
3 #include "vvToolSimpleInputSelectorWidget.h"
4 #include "vvSlicerManager.h"
5 #include <QAbstractButton>
7 //------------------------------------------------------------------------------
8 vvToolSimpleInputSelectorWidget::vvToolSimpleInputSelectorWidget(QWidget * parent, Qt::WindowFlags f):
12 mSlicerManagerList.clear();
14 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
18 void vvToolSimpleInputSelectorWidget::Initialize() {
19 // Connect signals & slots
20 connect(mInputSelectionButtonBox, SIGNAL(accepted()), this, SLOT(accept()));
21 connect(mInputSelectionButtonBox, SIGNAL(rejected()), this, SLOT(reject()));
22 connect(mInputSequenceBox, SIGNAL(currentIndexChanged(int)), this, SLOT(changeInput(int)));
23 if (mSlicerManagerList.size() == 1) {
24 if (!mAllowSkip) accept();
26 if (mSlicerManagerList.size() == 0) {
30 //------------------------------------------------------------------------------
33 //------------------------------------------------------------------------------
34 void vvToolSimpleInputSelectorWidget::SetText(QString & s) {
35 mGroupBox->setTitle(s);
37 //------------------------------------------------------------------------------
40 //------------------------------------------------------------------------------
41 void vvToolSimpleInputSelectorWidget::EnableAllowSkip(bool b) {
44 mInputSelectionButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Discard);
45 connect(mInputSelectionButtonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(skip(QAbstractButton*)));
48 mInputSelectionButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
50 //------------------------------------------------------------------------------
53 //------------------------------------------------------------------------------
54 void vvToolSimpleInputSelectorWidget::SetInputList(const std::vector<vvSlicerManager*> & l, int index) {
57 DD("no input > error message");
60 mInputSequenceBox->clear();
61 for(unsigned int i=0; i<l.size(); i++)
62 mSlicerManagerList.push_back(l[i]);
63 mCurrentIndex = index;
64 for (unsigned int i = 0; i < mSlicerManagerList.size(); i++) {
65 mInputSequenceBox->addItem(mSlicerManagerList[i]->GetFileName().c_str());
67 mInputSequenceBox->setCurrentIndex(mCurrentIndex);
68 changeInput(mCurrentIndex);
70 //------------------------------------------------------------------------------
73 //------------------------------------------------------------------------------
74 void vvToolSimpleInputSelectorWidget::setEnabled(bool b) {
75 QWidget::setEnabled(b);
76 mInputSelectionButtonBox->setEnabled(b);
77 mInputSequenceBox->setEnabled(b);
79 //------------------------------------------------------------------------------
82 //------------------------------------------------------------------------------
83 void vvToolSimpleInputSelectorWidget::accept() {
84 mInputSelectionButtonBox->setEnabled(false);
85 mInputSequenceBox->setEnabled(false);
88 //------------------------------------------------------------------------------
92 //------------------------------------------------------------------------------
93 void vvToolSimpleInputSelectorWidget::reject() {
96 //------------------------------------------------------------------------------
99 //------------------------------------------------------------------------------
100 void vvToolSimpleInputSelectorWidget::skip(QAbstractButton* b) {
101 if (b->text() == "Discard") emit sigskip();
103 //------------------------------------------------------------------------------
106 //------------------------------------------------------------------------------
107 void vvToolSimpleInputSelectorWidget::changeInput(int index) {
109 mCurrentIndex = index;
110 vvImage * mCurrentImage = mSlicerManagerList[index]->GetImage();
111 unsigned int d = mCurrentImage->GetNumberOfDimensions();
114 for(unsigned int i=0; i<d-1; i++) {
115 size.append(QString("%1").arg(mCurrentImage->GetSize()[i]));
117 spacing.append(QString("%1").arg(mCurrentImage->GetSpacing()[i]));
120 size.append(QString("%1").arg(mCurrentImage->GetSize()[d-1]));
121 spacing.append(QString("%1").arg(mCurrentImage->GetSpacing()[d-1]));
122 mLabelInputInfo->setText(QString("Image: %1D %2 %3 %4")
124 .arg(mCurrentImage->GetScalarTypeAsString().c_str())
128 //------------------------------------------------------------------------------
131 //------------------------------------------------------------------------------
132 vvSlicerManager * vvToolSimpleInputSelectorWidget::GetSelectedInput() {
133 return mSlicerManagerList[GetSelectedInputIndex()];
135 //------------------------------------------------------------------------------