35 #include <QPushButton>
36 #include "boost/bind.hpp"
37 #include "boost/function.hpp"
56 this->createActions();
58 QVBoxLayout* topLayout =
new QVBoxLayout(
this);
59 QHBoxLayout* buttonLayout =
new QHBoxLayout;
61 topLayout->addWidget(mBrowser);
62 topLayout->addLayout(buttonLayout);
64 buttonLayout->addStretch(1);
65 this->addToolButtonFor(buttonLayout, mImportAction);
66 this->addToolButtonFor(buttonLayout, mPreviousAction);
67 CXToolButton* button = this->addToolButtonFor(buttonLayout, mCurrentAction);
68 button->setToolButtonStyle(Qt::ToolButtonIconOnly);
70 this->addToolButtonFor(buttonLayout, mNextAction);
72 connect(mImportAction, &QAction::triggered,
this, &TrainingWidget::onImportSimulatedPatient);
73 connect(mPreviousAction, &QAction::triggered, boost::function<
void()>(boost::bind(&TrainingWidget::onStep,
this, -1)));
74 connect(mCurrentAction, &QAction::triggered, boost::function<
void()>(boost::bind(&TrainingWidget::onStep,
this, 0)));
75 connect(mNextAction, &QAction::triggered, boost::function<
void()>(boost::bind(&TrainingWidget::onStep,
this, +1)));
78 func_t welcome = boost::bind(&TrainingWidget::toWelcomeStep,
this);
94 mTransitions.push_back(transition);
95 int numberOfSteps = mTransitions.size();
96 this->createSteps(numberOfSteps);
99 void TrainingWidget::createActions()
102 QIcon(
":/icons/open_icon_library/document-open-7.png"),
103 "Import new training dataset",
"Clear current data and import new training patient folder",
108 QIcon(
":/icons/open_icon_library/arrow-left-3.png"),
109 "Previous",
"Go to previous training step",
114 QIcon(
":/icons/open_icon_library/button-green.png"),
115 "Reload",
"Reload the current training step",
119 QIcon(
":/icons/open_icon_library/arrow-right-3.png"),
120 "Next",
"Go to next training step",
125 void TrainingWidget::createSteps(
unsigned numberOfSteps)
130 for (
unsigned i=1; i<=numberOfSteps; ++i)
131 mSessionIDs << QString(
"org_custusx_training_sessionA_step%1").arg(i);
136 CXToolButton* TrainingWidget::addToolButtonFor(QHBoxLayout* layout, QAction* action)
139 button->setDefaultAction(action);
140 button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
142 layout->addWidget(button);
146 void TrainingWidget::toWelcomeStep()
151 void TrainingWidget::onImportSimulatedPatient()
160 void TrainingWidget::onStep(
int delta)
162 this->stepTo(mCurrentStep+delta);
165 void TrainingWidget::stepTo(
int step)
168 step = std::min<int>(step, mSessionIDs.size()-1);
169 step = std::max<int>(step, 0);
176 this->transitionToStep(step);
179 void TrainingWidget::transitionToStep(
int step)
182 int transitionNumber = step;
183 if(transitionNumber >= 0)
186 func_t transition = mTransitions.at(transitionNumber);
198 std::map<QString, DataPtr> datas =
mServices->patient()->getDatas();
199 std::map<QString, DataPtr>::iterator iter = datas.begin();
201 for(; iter != datas.end(); ++iter)
206 if (image && image->getModality().contains(
"US"))
214 std::map<QString, MeshPtr> datas =
mServices->patient()->getDataOfType<
Mesh>();
215 std::map<QString, MeshPtr>::iterator iter = datas.begin();
216 for(; iter != datas.end(); ++iter)
219 if(mesh && mesh->getUid().contains(uidPart))
227 std::map<QString, DataPtr> datas =
mServices->patient()->getDatas();
228 this->setAvailability(datas,
false, uidPart, makeModalityUnavailable);
235 this->setAvailability(datas,
true, uidPart, makeModalityUnavailable);
238 void TrainingWidget::setAvailability(std::map<QString, DataPtr> datas,
bool available, QString uidPart,
bool makeModalityUnavailable)
240 std::map<QString, DataPtr>::iterator iter = datas.begin();
242 for(; iter != datas.end(); ++iter)
247 if (makeModalityUnavailable && image && image->getModality().contains(uidPart))
248 mServices->patient()->makeAvailable(image->getUid(), available);
249 else if (data && data->getUid().contains(uidPart))
250 mServices->patient()->makeAvailable(data->getUid(), available);
boost::shared_ptr< class Image > ImagePtr
void triggerMainWindowActionWithObjectName(QString actionName)
virtual QString getUid() const
boost::shared_ptr< class Data > DataPtr
void showHelpForKeyword(const QString &id)
boost::shared_ptr< class RegServices > RegServicesPtr
boost::shared_ptr< class Mesh > MeshPtr